/*global jQuery, carSelector, carServiceURL, genderException, displayGlossary, displayWarranty, mediaCCordion, mediaMoves, popMap, printDocument, reload, removePop, resizeFooter, resizeHeader, selectorView, evt, xmlhttp, alert, blur, clearInterval, clearTimeout, close, closed, confirm, console, Debug, defaultStatus, document, event, focus, frames, getComputedStyle, getElementTextNS, history, Image, length, location, moveBy, moveTo, name, navigator, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, Option, parent, print, prompt, resizeBy, resizeTo, screen, scroll, scrollBy, scrollTo, self, setInterval, setTimeout, status, top, window, XMLHttpRequest */

jQuery(document).ready(function () {
	//jQuery(".test").bind("click", {mediaSize: "120px", mediaTarget:"#B_MediaNavigationLevel1"}, mediaMoves);
	//jQuery(".test2").bind("click", {mediaSize: "100px", mediaTarget:"#B_MediaNavigationLevel2"}, mediaMoves);
	
	//jQuery("#A_header div").bind("mouseleave", {mediaSize: "70px", mediaTarget:"#B_MediaNavigationLevel1"}, mediaMoves);
	//jQuery("#A_footer div").bind("mouseleave", {mediaSize: "54px", mediaTarget:"#B_MediaNavigationLevel2"}, mediaMoves);
	
	/* ! RETRIEVE URL SERVICES */
	carServiceURL = jQuery(".CarSelectorServices").val();
	/* ! Accordion 1 ini t*/
	jQuery(".accordionList1 > li > a").bind("click", mediaCCordion);
	jQuery(".accordionList1 > li > a.openDefault:first").trigger("click");
	
	/* ! Accordion 2 init */
	jQuery(".accordionList2 > li > h3 > a").bind("click", mediaCCordion);
	jQuery(".accordionList2 > li > h3 > a.openDefault").trigger("click");
	
	/**/
	/* ! Glossary init */
	jQuery(".descriptionList > li > a").bind("click", displayGlossary);
	jQuery(".descriptionList > li.openDefault > a").trigger("click");
	
	/* ! Glossary init */
	jQuery(".warrantyList > li > a").bind("click", displayWarranty);
	jQuery(".warrantyList > li.openDefault > a").trigger("click");
	
	
	/* ! Glossary init */
	jQuery(".carSelectorList > li > a").bind("click", selectorView);
	jQuery(".carSelectorList > li.openDefault > a").trigger("click");
	
	
	/* ! Print Function */
	jQuery(".printDocument").bind("click", printDocument);
	/**/
	
	jQuery(".mapPop").bind("click", popMap);
	jQuery(".removePop").bind("click", removePop);
		
	/* ! Car selector init */
	jQuery("#vehicleMake").bind("change", carSelector);
	
	/* ! Gender Exception init */
	jQuery("#selectGender").bind("change", genderException);
	
});

jQuery(window).load(function () {
});

/* ! Gender Selector execption */
function genderException() {
	var myGenderSelectorValue = this.value.toLowerCase();
	if (myGenderSelectorValue === "other") {
		jQuery(".genderException").show();
	}else{
		jQuery(".genderException").hide();
		jQuery(".genderException input").attr("value","");
	}
}

/* ! CarSelector */
function carSelector() {
	var myBrandSelectorValue = this.value;
	var myBrandSelectorCaseValue = this.value.toLowerCase();
	var myModelSelectorValue = jQuery("#vehicleModel");
	//Manage Nissan Exception
	
	switch(myBrandSelectorCaseValue) {
	
	case "nissan":
				
		jQuery.ajax({ 
			url: carServiceURL,
			data: "brandValue="+myBrandSelectorValue,
			beforeSend: function () { }, 
			success: function (data) {
				jQuery(myModelSelectorValue).empty().append(data);
				jQuery(myModelSelectorValue).attr("disabled", "");
				jQuery(".nissanException").show();
			}, 
			complete:function (data) {
				 //on rajoute des events si besoin
			},
			error: function (theRequest, errorType, exceptionObject) {
				//on rajoute des events si besoin
				console.log("error");
			} 
		});

		break;
	case "other":
		jQuery(myModelSelectorValue).empty().append("<option value='other'>...</option>");
		jQuery(myModelSelectorValue).attr("disabled", "disabled");
		jQuery(".nissanException").hide();
		jQuery(".nissanException input").attr("value","");
		
		break;
	default:
		jQuery(".nissanException").hide();
		jQuery(".nissanException input").attr("value","");
		
		jQuery.ajax({ 
			url: carServiceURL,
			data: "brandValue="+myBrandSelectorValue,
			beforeSend: function () { }, 
			success: function (data) {
				jQuery(myModelSelectorValue).empty().append(data);
				jQuery(myModelSelectorValue).attr("disabled", "");
			}, 
			complete:function (data) {
				 //on rajoute des events si besoin
			},
			error: function (theRequest, errorType, exceptionObject) {
				//on rajoute des events si besoin
				console.log("error");
			} 
		});
		
	break;
	}
}




/* ! Flash reload */
function reload() {
	location.reload( true );
	//console.log("Flash call reload");
}

/* ! Display Flash pop */
function popMap() {
	jQuery("#theDocument").append("<div id='popContainer'></div>");
	jQuery("#popContainer").load("flashLocator/module/index.html");
	return false;
}

/* ! Remove Flash pop */
function removePop() {
	jQuery("#popContainer").remove();
	return false;
}

/* ! Display Glossary content */
function displayGlossary() {
	var myTarget = this.hash;
	jQuery(".glossaryTab").hide();
	jQuery(".descriptionList li").removeClass("openDefault");
	jQuery(this).parent().addClass("openDefault");
	jQuery(myTarget).fadeIn("slow");
	return false;
}

/* ! Display Glossary content */
function displayWarranty() {
	var myTarget = this.hash;
	jQuery(".warrantyTab").hide();
	jQuery(".warrantyList li").removeClass("openDefault");
	jQuery(this).parent().addClass("openDefault");
	jQuery(myTarget).fadeIn("slow");
	return false;
}


/* ! Selector View */
function selectorView() {
	var myTarget = this.hash;
	jQuery(".carSelectorTab").hide();
	jQuery(".carSelectorList li").removeClass("openDefault");
	jQuery(this).parent().addClass("openDefault");
	jQuery(myTarget).fadeIn("slow");
	return false;
}

/* ! Display Accordion content */
function mediaCCordion() {
	var myTarget = this.hash;
	jQuery(".accordionContent").hide();
	jQuery(myTarget).show();
	return false;
}

/* ! Media resizing */
function mediaMoves(event) {
	jQuery(event.data.mediaTarget).stop().css("height", event.data.mediaSize).css("background", "pink");
	return false;
}
/* ! Print function */
function printDocument() {
	window.print();
	return false;
}

/* ! Resizing Header */
function resizeHeader(val) {
	var flashHeader = document.getElementById('B_MediaNavigationLevel1');
	flashHeader.style.height=val+'px';
	var flashObject = document.getElementById('shell_header');
	flashObject.style.height=val+'px';
}
/* ! Resizing footer */
function resizeFooter(val) {
	var flashFooter = document.getElementById('B_MediaNavigationLevel2');
	flashFooter.style.height=val+'px';
	var flashFooterObject = document.getElementById('shell_footer');
	flashFooterObject.style.height=val+'px';
}
