function chooseDateType(){
	if(!$("allerRetour") || !$("allerSimple")){
		return;
	}
	$("allerRetour").addEvent('click', function(evt){
		
		$("chooseType").setStyle("display", "block");
	});
	$("allerSimple").addEvent('click', function(evt){
		
		$("chooseType").setStyle("display", "none");
	});

}
/////////////tabs /////////////
var ShowHideTab = new Class({
	
	initialize: function(container, options){
		this.container = container;
		this.setOptions(options);
		this.initTab();
	},
	
	initTab: function(){
		var that = this;
		if(!$(that.container)) return;
		var tabsContainer = $(that.container);
		var items = tabsContainer.getElements('li:not([usejs="false"])');
		var contents = tabsContainer.getElements('div.proInfo');	
		var activeItem = tabsContainer.getElement('li.active');	
		var activeContent = tabsContainer.getElement('div');		
		
		// intégration
		//var idFolders = ["", "", "1488638774746284137", "1487922700612534311", "1488638774746284043", "1488638774746284228"];

		// préprod
		//var idFolders = ["", "", "1493946046315758864", "1493946046315759141", "1493946046315758970", "1493946046315759220"];

		// production
		var idFolders = ["", "", "1549523140625826913", "1549523140625826947", "1549523140625826929", "1549523140625826963"];
		
		items.each(function(item, index){
			item.addEvent('click', function(evt){
				new Event(evt).stop();
				if(activeItem != this){
					activeItem = this;
					if(activeItem){
						if(index == 0) {
							document.location.href = "/accueil.do";
						} else if(index==1){
							getQuickSearchCars("blockReservezVotre");
						} else {
							document.location.href = "/goFolder.do?f="+idFolders[index]+"&vue=detail";
						}
					};
				}			
			});
		});	
	}	
});
ShowHideTab.implement(new Chain, new Events, new Options);

function initMainTopMenu(){
	if(!$('lev1')){		return;		}
	
	
}

window.addEvent("domready", function(){ //safari cannot get style if window isnt fully loaded
	new ShowHideTab('proTab');
	chooseDateType();
	//initMainTopMenu();
});

//Permet de récuperer un parametre dans l'url
function getParameterFromUrl(param)
{
  var regexS = "[\\?&]"+param+"=([^&#]*)";
  var regex = new RegExp(regexS);
  var resultat = regex.exec(window.location.href);
  if(resultat == null)
    return null;
  else
    return resultat[1];
}

//Permet d'aller chercher le bon message d'erreur eretail
//et de le mettre dans la div tout en masquant les div de message de la home
function displayErrorMsg()
{
	var code = getParameterFromUrl("ERROR_LIST");
	var url     = '/errorsAirCaraibes/giveMsgByErrorCode.do';
 	var params  = {'code':code};

	var myAjax = new Request({
         url:url,
         method: 'get',
         data: params,
         onComplete: function(message) {
		    if (message != null && message.length > 0 && message != "null")
			{
				$('message_erreur').set('html', message); 
				if ($('message_erreur')){$('message_erreur').setStyle('display','block');}
				/* if ($('message_home_m')){$('message_home_m').setStyle('display','none');} */
				/* if ($('message_home_a')){$('message_home_a').setStyle('display','none');} */
			}
			else
			{
				if ($('message_erreur')){$('message_erreur').setStyle('display','none');}
				/* if ($('message_home_m')){$('message_home_m').setStyle('display','block');} */
				/* if ($('message_home_a')){$('message_home_a').setStyle('display','block');} */
			}
         }
    });
    myAjax.send();	
}

function getQuickSearchCars(idElementToReplace){
	var url     = '/getQuickSearchForView.do';
 	var params  = {'vue':"cars"};

	var myAjax = new Request({
         url:url,
         method: 'get',
         data: params,
         onComplete: function(codeHtml) {
		    if (codeHtml != null && codeHtml.length > 0 && codeHtml != "")	{
		    	var img = $$("img.visuPeople");
		    	
		    	// Si l'image visu est présente on l'ajoute au code
		    	// On peut surement faire mieux
		    	if(img!=""){
		    		var codeImage = "<img src='"+img.get("src")+"' alt='"+img.get("alt")+"' class='"+img.get('class')+"'>";
		    		codeHtml = codeImage + codeHtml; 
		    	}
		    	
		    	// on récupère les accès rapide pub
		    	var accesRapidePub = $$("div.accesPubQuicksearch");
		    	
		    	//On remplace le code de la quicksearch
		    	$(idElementToReplace).set('html', codeHtml);
		    	
		    	//On ajoute les accès rapide pub
		    	if(accesRapidePub!=""){
		    		accesRapidePub.inject(idElementToReplace);
		    	}
		    	
		    	// On initialise les calendriers
				Calendar.setup({
					inputField	:	"DATE_PRISE_EN_CHARGE",
					ifFormat	:	"%d/%m/%Y",
					showsTime	:	false,
					button		:	"priseEnChargeImg",
					firstDay	:	1,
					dateStatusFunc : IsDateDisabled,
					weekNumbers	:	false		
				});
				Calendar.setup({
					inputField	:	"DATE_RESTITUTION",
					ifFormat	:	"%d/%m/%Y",
					showsTime	:	false,
					button		:	"restitutionImg",
					firstDay	:	1,
					dateStatusFunc : IsDateDisabled,
					weekNumbers	:	false		
				});
		    	
		    	// On réinitialise les évènement sur les onglets
		    	new ShowHideTab('proTab');
			}
         }
    });
    myAjax.send();	
}

function IsDateDisabled(date, year, month, day) {
	var maintenant = new Date();
	if (date.getTime() < maintenant.getTime()) {
		return true;
	}
	return false;
}

function validationCars(){
	var msg = "Veuillez corriger les erreurs suivantes pour envoyer votre demande :\n\n";
	var result = true;
	/* ville de depart */
	
	if (document.formCars.B_LOCATION.value == null || document.formCars.B_LOCATION.value == -1 || document.formCars.B_LOCATION.value == ""){
		msg += "Selectionner une ville de départ\n";
		result = false;
	}
	
	/* date de prise en charge */
	if (document.formCars.DATE_PRISE_EN_CHARGE.value == null || document.formCars.DATE_PRISE_EN_CHARGE.value == -1 || document.formCars.DATE_PRISE_EN_CHARGE.value == ""){
		msg += "Selectionner une date de prise en charge\n";
		result = false;
	}
	
	/* heure de prise en charge */
	if (document.formCars.HEURE_PRISE_EN_CHARGE.value == null || document.formCars.HEURE_PRISE_EN_CHARGE.value == -1 || document.formCars.HEURE_PRISE_EN_CHARGE.value == ""){
		msg += "Selectionner une heure de prise en charge\n";
		result = false;
	}
	
	/* date de restitution */
   	if (document.formCars.DATE_RESTITUTION.value == null || document.formCars.DATE_RESTITUTION.value == -1 || document.formCars.DATE_RESTITUTION.value == ""){
   		msg += "Selectionner une date de restitution\n";
   		result = false;
   	}
   	
   	/* heure de resitution */
	if (document.formCars.HEURE_RESTITUTION.value == null || document.formCars.HEURE_RESTITUTION.value == -1 || document.formCars.HEURE_RESTITUTION.value == ""){
		msg += "Selectionner une heure de restitution\n";
		result = false;
	}
	
	if (!result){
		alert(msg);
	} else {
		/*on est encore bon, on valide les dates*/
		result = validationDateCars();
	}
	return result;
}


function validationDateCars()
{
	/* on fait la validation standard */
	var unjour = 24 * 60 * 60 * 1000;
	var msg = "Veuillez corriger les erreurs suivantes pour envoyer votre demande :\n\n";
	
	var datePriseEnCharge = null;
	var dateRetour = null;
	var res = true;
	
	/* date de prise en charge */
	var date1 = document.formCars.DATE_PRISE_EN_CHARGE.value;
	if (date1 != null){
		var jour = date1.split("/")[0];
		var mois = date1.split("/")[1];
		var annee = date1.split("/")[2];
		document.formCars.B_DATE.value = annee + mois + jour;
		dateAller = new Date(annee, (mois-1), jour, 0,0,0);
	}
	
	/* date de restitution */
	var date2 = document.formCars.DATE_RESTITUTION.value;
	if (date2 != null){
		var jour = date2.split("/")[0];
		var mois = date2.split("/")[1];
		var annee = date2.split("/")[2];
		document.formCars.E_DATE.value = annee + mois + jour;
		dateRetour = new Date(annee, (mois-1), jour, 0,0,0);
	}
	
	/* date de depart > a date du jour */
	if (dateAller != null && (dateAller.getTime() < maintenant.getTime())){
		res = false;
		msg += "La date de prise en charge doit être supérieure à la date du jour\n";
	}
	
	/* date de retour > a date depart */
	if (dateRetour != null && (dateAller.getTime() > dateRetour.getTime())){
		res = false;
		msg += "La date de restitution doit être supérieure à la date de prise en charge\n";
	}
	if (res == false){
		alert(msg);
	}
	return res;
}

function initPreferenceCar(){
	// On réinitialise les valeurs des listes et on les rend inactives
	document.formCars.CLASS.value='*';
	document.formCars.CLASS.disabled = true;
	document.formCars.AIR_CONDITIONING.value='*';
	document.formCars.AIR_CONDITIONING.disabled = true;
	document.formCars.TRANSMISSION.value='*';
	document.formCars.TRANSMISSION.disabled = true;
}

function submitFormCars (){
	// Initialisation des dates
	document.formCars.B_DATE.value = document.formCars.B_DATE.value + document.formCars.HEURE_PRISE_EN_CHARGE.value;
	document.formCars.E_DATE.value = document.formCars.E_DATE.value + document.formCars.HEURE_RESTITUTION.value;
	document.formCars.submit();
	return false;
}

//Nom du cookie qui stocke la zone de résidence
var ZONE_RESIDENCE_COOKIE_SNAME = "ZONE_RESIDENCE";

function updateCookieZone(valueZone){
    var expDate = new Date();
    expDate.setTime(expDate.getTime() + (60 * 24 * 3600 * 1000));
	setCookie(ZONE_RESIDENCE_COOKIE_SNAME, valueZone, expDate);
}

// Méthode pour changer la zone de résidence
function changeZoneResidence(updatePopup){
	
	var valueZone = document.getElementById("zoneResidence").value;
	
	// Les cookies vivent 60 jours
	updateCookieZone(valueZone);
	
	// On soumet ensuite le formulaire
	document.formAuDepartDe.submit();
}

// Retourne la zone de résidence stockée dans le cookie
function getZoneResidenceFromCookie(){
	return getCookie(ZONE_RESIDENCE_COOKIE_SNAME);
}

//Retourne la valeur du cookie
function getCookie(sName) {
    var oRegex = new RegExp("(?:; )?" + sName + "=([^;]*);?");
    var sValue = null;

    if (oRegex.test(document.cookie)) {
            sValue = RegExp["$1"];
    }
    return sValue;
}

//Met à jour la valeur du cookie 
function setCookie(sName, sValue, expDate) {
	var expression = sName + "=" + sValue+";path=/";
	if(expDate!=null) {
		expression = expression + ";expires=" + expDate.toGMTString();
	}
    document.cookie = expression;
    
    //On est obligé car peut avoir ou non un context
	expression = sName + "=" + sValue+";path="+contextPathJs;
	if(expDate!=null) {
		expression = expression + ";expires=" + expDate.toGMTString();
	}
    document.cookie = expression;
}

function closeInfoPopup(popupInfo){
	popupInfo.style.display="none";
}


/*Appel Ajax pour les dates de disponibilités*/
function createXhrObject()	{
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject) {
		var names = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
		for(var i in names)	{
			try { 
				return new ActiveXObject(names[i]);
			} catch(e){}
		}
	}
	window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
	return null;
}

var listDatesAller ;
var listDatesRetour ;
var mapDatesAller;
var mapDatesRetour;
var clientAvailability;

function majCalendrierAsync(depart, arrivee, codeVue) {
	mapDatesAller = new Object();
	mapDatesRetour = new Object();
	clientAvailability = createXhrObject();
	if(clientAvailability!=null){
		var url = '/availabilityListDate/loadAvailabilityDateCalendar.do?source='+depart+'&destination='+arrivee+'&codeVue='+codeVue;	 
		clientAvailability.onreadystatechange = processReturnAsync;
		clientAvailability.open("GET", url);
		clientAvailability.send();	
	}
}

function majCalendrierPromoAsync(depart, arrivee, codeVue, codePromo) {
	if(depart!='-1' && arrivee!='-1'){
		mapDatesAller = new Object();
		mapDatesRetour = new Object();
		clientAvailability = createXhrObject();
		if(clientAvailability!=null){
			var url = '/availabilityListDate/loadAvailabilityDateCalendar.do?source='+depart+'&destination='+arrivee+'&codeVue='+codeVue+'&codePromo='+codePromo;	 
			clientAvailability.onreadystatechange = processReturnAsync;
			clientAvailability.open("GET", url);
			clientAvailability.send();	
		}
	}
}

function processReturnAsync() {
	if((clientAvailability.readyState == 4)&&(clientAvailability.status == 200)) {
		mapDatesAller = new Object();
		mapDatesRetour = new Object();
		/* recup de notre map de date */
		if(clientAvailability.responseText!=null && clientAvailability.responseText!=""){
			var calMap = eval("("+clientAvailability.responseText+")");
			
			/* initialisation du map pour les dates d'aller*/
			
			if(calMap != null) {
				listDatesAller = calMap[0];
				if(listDatesAller != null) {
					for (var i = 0; i < listDatesAller.length; i++) {
						mapDatesAller[listDatesAller[i]] = "1";
					}
				}
				listDatesRetour = calMap[1];
				if(listDatesRetour != null) {
					for (var i = 0; i < listDatesRetour.length; i++) {
						mapDatesRetour[listDatesRetour[i]] = "1";
					}
				}
			}
		}
	}
}
	
function pad(number, length) {
	var str = ''+number;
	while (str.length < length) {
		str = '0' + str;
	}
		return str;
}

