var ongletEnCours = "Vol";
var curseurPrecisionJoursSejour = null;
var curseurBudgetHotel = null;
document.observe('dom:loaded',function() {
	
	// Gestion du capping
	compteCap();
	
	// Slider Précisions Budget Hotel
	$('curseurBudgetHotel').setStyle({'height':'14px','width':'27px'});
	$('sliderBudgetHotel').setStyle({'height':'15px','width':'207px'});
	curseurBudgetHotel = new Control.Slider('curseurBudgetHotel','sliderBudgetHotel',{
		increment: 3,
		range:$R(25,600),
		values:[25,50,100,200,300,400,500,600],
		sliderValue:$F('budgetHotel'),
		onChange:function(v){
			$('budgetHotel').setValue(v);
		},
		onSlide:function(v) {
			if(v==600) {
				$('limiteDroiteBudgetHotel').innerHTML = ">" + v + " &euro;";
			}
			else {
				$('limiteDroiteBudgetHotel').innerHTML = v + " &euro;";
			}
		}
	});
		

	$('curseurPrecisionJoursSejour').setStyle({'height':'14px','width':'27px'});
	$('sliderPrecisionJoursSejour').setStyle({'height':'15px','width':'207px'});
	// Slider Précisions Jours Séjour
	curseurPrecisionJoursSejour = new Control.Slider('curseurPrecisionJoursSejour','sliderPrecisionJoursSejour',{
		increment: 3,
		range:$R(0,7),
		values:[0,1,2,3,4,5,6,7],
		sliderValue:7,
		onChange:function(v){$('precisionJoursSejour').setValue(v);}
	});

	$('curseurPrecisionBudgetSejour').setStyle({'height':'14px','width':'27px'});
	$('sliderPrecisionBudgetSejour').setStyle({'height':'15px','width':'207px'});
	// Slider Précisions Budget Séjour
	new Control.Slider('curseurPrecisionBudgetSejour','sliderPrecisionBudgetSejour',{
		increment: 3,
		range:$R(0,3000),
		values:[0,250,500,1000,1500,2000,2500,3000],
		sliderValue:3000,
		onChange:function(v){
			$('precisionBudgetSejour').setValue(v);
		},
		onSlide:function(v) {
			if(v==3000) {
				$('limiteDroiteBudgetSejour').innerHTML = ">"+v;
			}
			else {
				$('limiteDroiteBudgetSejour').innerHTML = v;
			}
		}
	});

	$('curseurHeureDepartVolMin').setStyle({'height':'14px','width':'27px'});
	$('curseurHeureDepartVolMax').setStyle({'height':'14px','width':'27px'});
	$('sliderHeureDepartVol').setStyle({'height':'15px','width':'207px'});
	// Slider Heure Depart Vol
	new Control.Slider([$('curseurHeureDepartVolMin'),$('curseurHeureDepartVolMax')],
		'sliderHeureDepartVol',{
		increment: 3,
		range:$R(0,24),
		sliderValue:[0,24],
		restricted:true,
		values:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],
		onChange:function(v){
			$("txtminHeureDepartAller").innerHTML = v[0]+'h00';
			$("txtmaxHeureDepartAller").innerHTML = v[1]+'h00';
			getResults();
		}
	});

	$('curseurHeureRetourVolMin').setStyle({'height':'14px','width':'27px'});
	$('curseurHeureRetourVolMax').setStyle({'height':'14px','width':'27px'});
	$('sliderHeureRetourVol').setStyle({'height':'15px','width':'207px'});
	// Slider Heure Retour Vol
	new Control.Slider([$('curseurHeureRetourVolMin'),$('curseurHeureRetourVolMax')],
		'sliderHeureRetourVol',{
		increment: 3,
		range:$R(0,24),
		sliderValue:[0,24],
		restricted:true,
		values:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],
		onChange:function(v){
			$("txtminHeureDepartRetour").innerHTML = v[0]+'h00';
            $("txtmaxHeureDepartRetour").innerHTML = v[1]+'h00';
            getResults();
		}
	});
	
	//  Calendrier
	var dpckDepartSejour  = new DatePicker({
		relative    : 'dateDepartSejour',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false
	});

	dpckDepartSejour.setDateFormat([ "dd", "mm", "yyyy" ], "/");

	plusjamais = new Date();

	if($F('dateDepartSejour') == '') {	
		$('dateDepartSejour').setValue(plusjamais.getDate().toPaddedString(2)+"/"+(plusjamais.getMonth()+1).toPaddedString(2)+"/"+plusjamais.getFullYear().toPaddedString(4));
	}

	$('dateDepartSejourImg').observe('click',function(e) {
		dpckDepartSejour.click();
	});

	var dpckRetourSejour  = new DatePicker({
		relative    : 'dateRetourSejour',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false,
		onClick: function(v) { 
				$('dateRetourSejour').setValue($F('dateDepartSejour'));
		}, 
		afterClose: function() { 
			var dateDepartSejour = $F('dateDepartSejour');
			var dateRetourSejour = $F('dateRetourSejour');
		
		// On met la date de départ sous la forme dune date javascript
		dayDepartSejour = dateDepartSejour.substring(0,2); 
		monthDepartSejour = dateDepartSejour.substring(3,5);
		yearDepartSejour = dateDepartSejour.substring(6,10);
		departSejour = new Date();
		departSejour.setDate(dayDepartSejour);
		departSejour.setMonth(monthDepartSejour);
		departSejour.setFullYear(yearDepartSejour); 
		// On met la date de retour sous la forme dune date javascript
		dayRetourSejour = dateRetourSejour.substring(0,2); 
		monthRetourSejour = dateRetourSejour.substring(3,5);
		yearRetourSejour = dateRetourSejour.substring(6,10);
		retourSejour = new Date();
		retourSejour.setDate(dayRetourSejour);
		retourSejour.setMonth(monthRetourSejour);
		retourSejour.setFullYear(yearRetourSejour); 
		// On teste les dates
		//cas bidon : probleme avec le 31
		if((dayRetourSejour == 31) && (monthDepartSejour == monthRetourSejour)){
		} 
		else if( dayDepartSejour == 31 && monthDepartSejour == monthRetourSejour) {
			alert('Attention, vous avez sélectionné une date de retour antérieure à la date de départ. Veuillez recommencer.');
			$('dateRetourSejour').setValue('jj/mm/aaaa');
		}
		else if(departSejour.getTime()-retourSejour.getTime()>0){	
			alert('Attention, vous avez sélectionné une date de retour antérieure à la date de départ. Veuillez recommencer.');
			$('dateRetourSejour').setValue('jj/mm/aaaa');
		}
      }		
	});
	

	dpckRetourSejour.setDateFormat([ "dd", "mm", "yyyy" ], "/");

	$('dateRetourSejourImg').observe('click',function(e) {
		dpckRetourSejour.click();
	});

	var dpckDepartVol  = new DatePicker({
		relative    : 'dateDepartVol',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false,
		afterClose: function(v) { 
			// Mise à jour de la date de retour vol en fonction de la date sélectionnée
			if($F('dateRetourVol') == 'jj/mm/aaaa') {
				$('dateRetourVol').setValue($F('dateDepartVol'));
			}
		}
	});

	dpckDepartVol.setDateFormat([ "dd", "mm", "yyyy" ], "/");

	$('dateDepartVolImg').observe('click',function(e) {
		dpckDepartVol.click();
	});
	
	plusjamais = new Date();
	if($F('dateDepartVol') == '') {
		$('dateDepartVol').setValue(plusjamais.getDate().toPaddedString(2)+"/"+(plusjamais.getMonth()+1).toPaddedString(2)+"/"+plusjamais.getFullYear().toPaddedString(4));
	}

	var dpckRetourVol  = new DatePicker({
		relative    : 'dateRetourVol',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false,
		onClick: function(v) { 
				$('dateRetourVol').setValue($F('dateDepartVol'));
		}, 
		afterClose: function() { 
			var dateDepartVol = $F('dateDepartVol');
			var dateRetourVol = $F('dateRetourVol');
		
		// On met la date de départ sous la forme dune date javascript
		dayDepartVol = dateDepartVol.substring(0,2); 
		monthDepartVol = dateDepartVol.substring(3,5);
		yearDepartVol = dateDepartVol.substring(6,10);
		departVol = new Date();
		departVol.setDate(dayDepartVol);
		departVol.setMonth(monthDepartVol);
		departVol.setFullYear(yearDepartVol); 
		// On met la date de retour sous la forme dune date javascript
		dayRetourVol = dateRetourVol.substring(0,2); 
		monthRetourVol = dateRetourVol.substring(3,5);
		yearRetourVol = dateRetourVol.substring(6,10);
		retourVol = new Date();
		retourVol.setDate(dayRetourVol);
		retourVol.setMonth(monthRetourVol);
		retourVol.setFullYear(yearRetourVol); 
		// On teste les dates
		//cas bidon : probleme avec le 31
		if((dayRetourVol == 31) && (monthDepartVol == monthRetourVol)){
		} 
		else if( dayDepartVol == 31 && monthDepartVol == monthRetourVol) {
			alert('Attention, vous avez sélectionné une date de retour antérieure à la date de départ. Veuillez recommencer.');
			$('dateRetourSejour').setValue('jj/mm/aaaa');
		}
		else if(departVol.getTime()-retourVol.getTime()>0){	
			alert('Attention, vous avez sélectionné une date de retour antérieure à la date de départ. Veuillez recommencer.');
			$('dateRetourSejour').setValue('jj/mm/aaaa');
		}
		}
	});

	dpckRetourVol.setDateFormat([ "dd", "mm", "yyyy" ], "/");

	$('dateRetourVolImg').observe('click',function(e) {
		dpckRetourVol.click();
	});
/*	
	// Champ Date Hotel
	var dpckDepartHotel  = new DatePicker({
		relative    : 'dateArriveeHotel',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false
	});
	
	$('dateArriveeHotelImg').observe('click',function(e) {
		dpckDepartHotel.click();
	});

	dpckDepartHotel.setDateFormat([ "dd", "mm", "yyyy" ], "/");
	plusjamais = new Date();
	if($F('dateArriveeHotel') == '') {
		$('dateArriveeHotel').setValue(plusjamais.getDate().toPaddedString(2)+"/"+(plusjamais.getMonth()+1).toPaddedString(2)+"/"+plusjamais.getFullYear().toPaddedString(4));
	}
*/
	
/*	
	// Champ date Ecotransport
	var dpckDepartEcotransport  = new DatePicker({
		relative    : 'inputDateDepEcotransport',
		language    : 'fr',
		enableCloseEffect : true,
		enableShowEffect : true,
		closeEffect : 'fade',
		showEffect    : 'appear',
		showDuration : '0.5',
		disablePastDate : true,
		disableFutureDate : false
	});
	
	$('dateDepartEcotransportImg').observe('click',function(e) {
		dpckDepartEcotransport.click();
	});

	dpckDepartEcotransport.setDateFormat([ "dd", "mm", "yyyy" ], "/");
	plusjamais = new Date();
	if($F('inputDateDepEcotransport') == '') {
		$('inputDateDepEcotransport').setValue(plusjamais.getDate().toPaddedString(2)+"/"+(plusjamais.getMonth()+1).toPaddedString(2)+"/"+plusjamais.getFullYear().toPaddedString(4));
	}
*/	
	
	
	
	// Recherche Avancée Sejours
	var etatNavBaseSejour = false;
	$('rechercheAvanceeSejour').observe('click',function(e) {
		if(!etatNavBaseSejour) {
			etatNavBaseSejour = true;
			$('navSejour').morph('height:279px;');
			$('rechercheAvanceeSejourImage').src = "/styles/imgv6/fleche-nav-tab-haut.gif";
		}
		else {
			etatNavBaseSejour = false;
			$('navSejour').morph('height:120px;');
			$('rechercheAvanceeSejourImage').src = "/styles/imgv6/fleche-nav-tab-bas.gif";
		}
	});

	// Recherche Avancée Vol
	var etatNavBaseVol = false;
	$('rechercheAvanceeVol').observe('click',function(e) {
		if(!etatNavBaseVol) {
			etatNavBaseVol = true;
			$('navVol').morph('height:279px;');
			$('rechercheAvanceeVolImage').src = "/styles/imgv6/fleche-nav-tab-haut.gif";
		}
		else {
			etatNavBaseVol = false;
			$('navVol').morph('height:120px;');
			$('rechercheAvanceeVolImage').src = "/styles/imgv6/fleche-nav-tab-bas.gif";
		}
	});
	
	// Recherche Avancée Hotel
	var etatNavBaseHotel = false;
	$('rechercheAvanceeHotel').observe('click',function(e) {
		if(!etatNavBaseHotel) {
			etatNavBaseHotel = true;
			$('navHotel').morph('height:279px;');
			$('rechercheAvanceeHotelImage').src = "/styles/imgv6/fleche-nav-tab-haut.gif";
		}
		else {
			etatNavBaseHotel = false;
			$('navHotel').morph('height:120px;');
			$('rechercheAvanceeHotelImage').src = "/styles/imgv6/fleche-nav-tab-bas.gif";
		}
	});

	// Onglets
	$('navSejour').setStyle({'display':'none'});
	$('navHotel').setStyle({'display':'none'});
	//$('navEcotransport').setStyle({'display':'none'});
	
	$('navOngletVolOff').observe('click',function(e) {
		ongletSwitchTo('Vol');
		e.stop();
	});

	$('navOngletSejourOff').observe('click',function(e) {
		ongletSwitchTo('Sejour');
		e.stop();
	});
	
	$('navOngletHotelOff').observe('click',function(e) {
		ongletSwitchTo('Hotel');
		e.stop();
	});
	
	/*$('navOngletEcotransportOff').observe('click',function(e) {
		ongletSwitchTo('Ecotransport');
		e.stop();
	});*/

	ongletSwitchTo(ongletEnCours);
	
	// Gestion de la mise à jour des villes en fonctions du pays
	// dans la recherche séjour
	$('destinationSejourPays').observe('change',function(e) {
		afficheVille();
	});
	
	// Enfin, il faut afficher le block de nav !!!
	$('navigation').setStyle({'display':'block'});
	$('navigationLoading').setStyle({'display':'none'});
	
	// Gestion aller simple
	$('allerSimpleVol').observe('click',function() {
		if($('allerSimpleVol').checked == true) {
			$('dateRetourVol').disabled = true;
			$('dateRetourVol').removeClassName('required');
		}
		else {
			$('dateRetourVol').disabled = false;
			$('dateRetourVol').addClassName('required');
		}
	});
	
		
	
	// Soumission du formulaire de recherche
/*	$('rechercheEcotransportForm').observe('submit',function(event){
		event.stop();
		if(verificationEcotransport()){
			$('rechercheEcotransportForm').submit();
		}
	});
*/	
	
	
});

function ongletSwitchTo(dest) {
	var div = $('nav'+dest);

	// On fait disparaitre le block en cours
	$('nav'+ongletEnCours).setStyle({'display':'none'});
	$('navOnglet'+ongletEnCours).setStyle({'display':'none'});
	$('navOnglet'+ongletEnCours+'Off').setStyle({'display':'block'});

	// On fait apparaitre le nouveau block
	div.setStyle({'display':'block'});
	$('navOnglet'+dest+'Off').setStyle({'display':'none'});
	$('navOnglet'+dest).setStyle({'display':'block'});

	ongletEnCours = dest;
}

	// Fonction qui selectionne le bon champ dans le menu deroulant du pays en fonction du pays ou de la zone correspondant a la page
function selectionnePaysDefaut(idchampselect) {
	selectValue('destinationSejourPays',idchampselect);
	afficheVille();
}

//fonction qui créer et affiche le menu deroulant ville
function afficheVille() {
	new Ajax.Updater('destinationSejourVille','/ajaxVilles.php',{
			parameters: { IdPays: $F('destinationSejourPays')},
			onSuccess: function() {
				$('destinationSejourVilleBlock').setStyle({visibility:'visible'});
			}
		}
	);
}


// Fonction qui vérifie la séléction dans un autocomplete et qui met le champ a vide au cas ou le choix ne soit pas effectuer
function checkSelectionAutocomplete (input,li) {
	expr = new RegExp("[0-9]*,.*","gi");
	if(!expr.test(input.value)){
		input.value = "";
	}
}
/*
function verificationEcotransport() {
	var valide = true;
	
	var exprDate = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}","gi");
	
	if(!exprDate.test($('inputDateDepEcotransport').value)){
		$('inputDateDepEcotransport').setStyle('border:2px solid red');
		valide = false;
	}

	if (valide && verificationRequired("rechercheEcotransportForm")) {
		return true;
	}
	else
	{
		return false;
	}
	
}*/
