// JavaScript Document
// 20 December 2005
<!--
//
// INITIALISE FORM
// ---------------
var bookingForm, td_village, td_ville, dep_year, dep_month, dep_day, td_adultes, td_enfants, td_duree, num_of_guest, sortByZone, lb_enfants, td_enfant_1, td_enfant_2, td_enfant_3, td_enfant_4, td_enfant_5, zone_enfant,chp_enfants_cm, zoneArr, lb_datenaissanceenfants;

function initBookingForm(formName, bHomePage) {
	
			if(pageName == 'VILLAGE'){
					fixColumns();
			}else if(pageName == 'HOME'){
					onloadBouton('nofix');
			}
	
			bookingForm = document.forms[formName];
			td_village = bookingForm.td_village;
			td_ville = bookingForm.td_ville;
			dep_year = bookingForm.dep_year;
			dep_month = bookingForm.dep_month;
			dep_day = bookingForm.dep_day;
			td_adultes = bookingForm.td_adultes;
			td_enfants = bookingForm.td_enfants;
			td_enfant_1 = bookingForm.td_enfant_1;
			td_enfant_2 = bookingForm.td_enfant_2;
			td_enfant_3 = bookingForm.td_enfant_3;
			td_enfant_4 = bookingForm.td_enfant_4;
			td_enfant_5 = bookingForm.td_enfant_5;
			
			lb_datenaissanceenfants = bookingForm.lb_datenaissanceenfants;
			chp_enfants_cm = bookingForm.chp_enfants_cm;
			zone_enfant = bookingForm.zone_enfant;
			td_duree = bookingForm.td_duree;
			num_of_guest = bookingForm.num_of_guest;
			input_calendar=bookingForm.input_calendar;

			//sortByZone = (document.getElementById("sortVillageByZone") ? true : false);
			
			populateVillage();
			
			// Ajout FC
			populateCity();
			// Fin Ajout
	
			// GLA 07/07/2006 Gestion double clic : remise ? NOCLIC pour g?rer le back navigateur
			if (document.getElementById("clic")) {
					var clic = document.getElementById("clic");
					clic.value = "NOCLIC";
			}
}

//
// MAKE VILLAGE SELECTION
// ----------------------
function selectVillage(bHomePage) { //called when user change village selection
	
		if (sortByZone) {
				zoneSelected = false;
				var theOption = td_village.options[td_village.selectedIndex];
				for (var j = 0; j < zoneArr.length; j++) {
						var theZone = zoneArr[j];			
			      
			      if (theZone["zonelib"] == theOption.text){
            		zoneSelected = true;
            }
				}

				if (!zoneSelected){
						populateCity(); //rebuild city drop down
						
						if (bHomePage)
								populateDate(); //rebuild date drop down
						} else {
										document.getElementById("td_ville").style.display = "none";	
										document.getElementById("lb_ville").style.display = "none";	
						}
	
		} else {
			
					populateCity(); //rebuild city drop down
					if (bHomePage)
							populateDate(); //rebuild date drop down
		
		}
}

//
// Display Enfants
// ----------------------
//
function displayEnfants() { 
	//Regle of Village
	//if adulte=1, adult over 18 are allowed (not childrens)
		if (sortByZone) {
				for (var i = 0; i < td_village.length; i++) {
						var theVillage = td_village[i];
						
						if (theVillage["id"] == td_village.value) {
								var theData = td_village[i];
								break;
						}
				}
		} else {
					var theOption = td_village.selectedIndex;
					var theData = td_village[theOption];
		}
		
		if (adulteUniquement == "1" || adulteUniquement == 1 ){
	
				document.getElementById("nb_enfants").style.display="none";
				document.getElementById("lb_datenaissanceenfants").style.display="none";
				//hide fields for birth
		
				hideFieldsBirth(true);
				td_enfants.selectedIndex=0;
		} else {
					if (document.getElementById("nb_enfants").style.display =="none"){
							document.getElementById("nb_enfants").style.display="";
					}				
		}
}

// POPULATE DATA TO FORM
// ----------------------
// populate village

function decode_utf8_browser(utftext) {	
		
		Nom = navigator.appName; 
		if (Nom == 'Microsoft Internet Explorer') {
				return utftext;			
		} else {	
	  			return decode_utf8(utftext);	
		}	
}				

function populateVillage() { //execute once only!

		td_village.options.length = 0;		
   
		if (sortByZone) {
				for (var j = 0; j < zoneArr.length; j++) {
						td_village.options.length += 1;
						var theZone = zoneArr[j];
						var theOption = td_village.options[td_village.options.length - 1];
						
						//Nom de la zone geographique
						theOption.text = theZone["zonelib"];
						theOption.value = "";
						theOption.disabled = true;
						
						//Villages de cette zone
						for (var i = 0; i < mVillages.length; i++) {
								var theData = mVillages[i];
                if (theZone["zonecod"] == theData.getAttribute("zone")) {
										td_village.options.length += 1;
										theOption = td_village.options[td_village.options.length - 1];
										// On cree le label qui sera utilise comme un index pour ne pas comptabiliser les index de zone lors de la creation des villes de depart
									  theOption.idx = i;
										theOption.text = "  "+decode_utf8_browser(theData.getAttribute("label")) + ", " + decode_utf8_browser(theData.getAttribute("pays"));
										theOption.value = theData.getAttribute("id");
								}
						}
		
				}
				td_village.selectedIndex = 1;
		} else {
					if(choixVillagePlus){
							td_village.options.length = 2;
							td_village.options[0].text = chaine;
							td_village.options[1].text = chaine2;
				
							for (var i = 0; i < mVillages.length; i++) {
									td_village.options.length += 1;
									var theData = mVillages[i];
									var theOption = td_village.options[td_village.options.length - 1];
									theOption.text = decode_utf8_browser(theData.getAttribute("label")) + ", " + decode_utf8_browser(theData.getAttribute("pays"));
									theOption.value = theData.getAttribute("id");
							}
							td_village.selectedIndex = 0;
		
		
					} else {

									for (var i = 0; i < mVillages.length; i++) {
											td_village.options.length += 1;
											var theData = mVillages[i];
											var theOption = td_village.options[td_village.options.length - 1];
											theOption.idx = i;
											theOption.text = decode_utf8_browser(theData.getAttribute("label")) + ", " + decode_utf8_browser(theData.getAttribute("pays"));
											theOption.value = theData.getAttribute("id");
									}
									td_village.selectedIndex = 0;
				}
	
	
	}
	td_village.disabled = false;
}

// populate city
function populateCity() { //execute when user change village selection
		var cityList;
		var defaultCity;
	
		if (sortByZone) {
				if (td_ville.selectedIndex != -1) { //record selection by user
						var selectedCity = td_ville.options[td_ville.selectedIndex].value;
				} else {
							var selectedCity = "";
				}
				
				if(choixVillagePlus){
						document.getElementById("td_ville").style.display = "";	
						document.getElementById("lb_ville").style.display = "";	
						td_ville.options.length = 1;
						td_ville.options[0].text = "";
						td_ville.options[0].value = "";
						td_ville.selectedIndex = 0;
						
						document.getElementById("td_ville").style.display = "";	
						document.getElementById("lb_ville").style.display = "";	
					
						if(pageName == 'HOME'){
								document.getElementById("lb_reserv_home").style.display = "";																																			
						}
						document.getElementById("lb_rechercher").style.display = "none";	

						defaultCity = mTabVille["defaultVille"] //not required on japan
						for (var i = 0; i < mVilles.length; i++) {
								var theData = mVilles[i];
								for (j = 0; j < tabville.length; j++) {
										var theCode = tabville[j];
										if (theCode == theData["code"]) {
												td_ville.options.length += 1;
												var theOption = td_ville.options[td_ville.options.length - 1];
												theOption.text = theData["label"];
												theOption.value = theData["code"];
																									
												if (selectedCity == theOption.value) { //reapply selection by user
														td_ville.selectedIndex = theOption.index;
														selectedCity = undefined;
												}
												break; // GLA 04/05/2006 Evite les doublons des villes de depart
										}
								}
						}		
				} else {
						
							document.getElementById("td_ville").style.display = "";	
							document.getElementById("lb_ville").style.display = "";	
							if(pageName == 'HOME'){								
									document.getElementById("lb_reserv_home").style.display = "";	
							}
							td_ville.options.length = 1;
							td_ville.options[0].text = td_ville[0]["label"];
							td_ville.options[0].value = "";
							td_ville.selectedIndex = 0;
							
							tabville = mVillages[td_village.options[td_village.selectedIndex].idx].getAttribute("ville");				
							
							defaultCity = mTabVille["defaultVille"]; //not required on japan
							
							for (var i = 0; i < mVilles.length; i++) {
									var theData = mVilles[i];
									for (j = 0; j < tabville.length; j++) {
										
											var theCode = tabville[j];
											if (theCode == theData["code"]) {
													td_ville.options.length += 1;
													var theOption = td_ville.options[td_ville.options.length - 1];
													theOption.text = theData["label"];
													theOption.value = theData["code"];
													
													if (selectedCity == theOption.value) { //reapply selection by user
															td_ville.selectedIndex = theOption.index;
															selectedCity = undefined;
													}
													break; // GLA 04/05/2006 Evite les doublons des villes de depart
											}
											
									}
							}		
				}	
				
				// (commented away due to the default city not required on japan)
				if (typeof selectedCity != 'undefined' && selectedCity != '') { //when no selection by user, display default from system
					
						for (var k = 1; k < td_ville.options.length; k++) {
								var theOption = td_ville.options[k];
								
								if (defaultCity == theOption.value) {
										td_ville.selectedIndex = k;
										break;
								}
						}
				}
	
		} else {
					
					if (td_ville.selectedIndex != -1) { //record selection by user
							var selectedCity = td_ville.options[td_ville.selectedIndex].value;
					} else {
								var selectedCity = "";
					}
			
					if(choixVillagePlus){
							document.getElementById("td_ville").style.display = "";	
							document.getElementById("lb_ville").style.display = "";	
			
							td_ville.options.length = 1;
							td_ville.options[0].text = "";
							td_ville.options[0].value = "";
							td_ville.selectedIndex = 0;
							
							if ((td_village.selectedIndex == 0) ) {
									document.getElementById("td_ville").style.display = "";	
									document.getElementById("lb_ville").style.display = "";	
									
									if(pageName == 'HOME'){
											document.getElementById("lb_reserv_home").style.display = "";	
									}
									document.getElementById("lb_rechercher").style.display = "";	
									var theCode = "";
									td_ville.options.length += 1;
									var theOption = td_ville.options[0];
									theOption.text = "";
									theOption.value = "";
									selectedCity = undefined;
																	
							} else if ((td_village.selectedIndex == 1) ) {
										document.getElementById("td_ville").style.display = "none";	
										document.getElementById("lb_ville").style.display = "none";	
										if(pageName == 'HOME'){
												document.getElementById("lb_reserv_home").style.display = "none";	
										}
										document.getElementById("lb_rechercher").style.display = "";	
							} else {
										tabville = mVillages[td_village.selectedIndex-2].getAttribute("ville");
										document.getElementById("td_ville").style.display = "";	
										document.getElementById("lb_ville").style.display = "";	
										
										if(pageName == 'HOME'){
												document.getElementById("lb_reserv_home").style.display = "";	
										}
										document.getElementById("lb_rechercher").style.display = "none";	
										defaultCity = mTabVille["defaultVille"] //not required on japan
										for (var i = 0; i < mVilles.length; i++) {
												var theData = mVilles[i];
												for (j = 0; j < tabville.length; j++) {
														var theCode = tabville[j];
														if (theCode == theData["code"]) {
																td_ville.options.length += 1;
																var theOption = td_ville.options[td_ville.options.length - 1];
																theOption.text = theData["label"];
																theOption.value = theData["code"];
																												
																if (selectedCity == theOption.value) { //reapply selection by user
																		td_ville.selectedIndex = theOption.index;
																		selectedCity = undefined;
																}
																break; // GLA 04/05/2006 Evite les doublons des villes de depart
														}		
												}		
										}		
							}
					} else {
								document.getElementById("td_ville").style.display = "";	
								document.getElementById("lb_ville").style.display = "";	
						
								if(pageName == 'HOME'){
										document.getElementById("lb_reserv_home").style.display = "";	
								}
								td_ville.options.length = 1;
								td_ville.options[0].text = td_ville[0]["label"];
								td_ville.options[0].value = "";
								td_ville.selectedIndex = 0;
								tabville = mVillages[td_village.selectedIndex].getAttribute("ville");
		
								defaultCity = mTabVille["defaultVille"] //not required on japan
								for (var i = 0; i < mVilles.length; i++) {
										var theData = mVilles[i];
										for (j = 0; j < tabville.length; j++) {
												var theCode = tabville[j];
												if (theCode == theData["code"]) {
														td_ville.options.length += 1;
														var theOption = td_ville.options[td_ville.options.length - 1];
														theOption.text = theData["label"];
														theOption.value = theData["code"];
																
														if (selectedCity == theOption.value) { //reapply selection by user
																td_ville.selectedIndex = theOption.index;
																selectedCity = undefined;
														}
														break; // GLA 04/05/2006 Evite les doublons des villes de depart
												}
										}
								}
					}
		
					// (commented away due to the default city not required on japan)
					if (selectedCity != undefined) { //when no selection by user, display default from system
							for (var k = 1; k < td_ville.options.length; k++) {
									var theOption = td_ville.options[k];
									
									if (defaultCity == theOption.value) {
											td_ville.selectedIndex = k;
											break;
									}
							}
					}
		}			
		td_ville.disabled = false;
}		


// populate guest
var maxPax = 6;
var minPax = 1;
var totalPax = 1;
function populateGuest(theSelect) {

		totalPax = 0;
		if (td_adultes.selectedIndex != -1) { //record adult pax selection by user
				var selectedAdultPax = Number(td_adultes.options[td_adultes.selectedIndex].value);
				totalPax += selectedAdultPax;
		} else {
					var selectedAdultPax = "";
		}
		if (td_enfants.selectedIndex != -1) { //record child pax selection by user
				var selectedChildPax = Number(td_enfants.options[td_enfants.selectedIndex].value);
				totalPax += selectedChildPax;
		} else {
					var selectedChildPax = "";
		}
	
		if (selectedAdultPax == "" && selectedChildPax == "")
				totalPax = 1;

		var remainPax = maxPax - totalPax;
		// adult //
		if (selectedAdultPax == "")
				td_adultes.options.length = 1 + remainPax;
		else
					td_adultes.options.length = selectedAdultPax + remainPax;
	
		for (var i = 0; i < td_adultes.options.length; i++) {
				var theOption = td_adultes.options[i];
				theOption.text = theOption.value = i + 1;
				
				if (selectedAdultPax == theOption.value) {
						td_adultes.selectedIndex = theOption.index;
						selectedAdultPax = undefined;
				}
		}
		
		if (selectedAdultPax != undefined) {
				for (var i = 0; i < td_adultes.options.length; i++) {
						var theOption = td_adultes.options[i];
						if (selectedAdultPax == theOption.value) {
								td_adultes.selectedIndex = i;
								break;
						}
				}		
		}		
		if (td_adultes.selectedIndex == -1) {
				td_adultes.selectedIndex = 0;
		}
	
		selectedAdultPax = Number(td_adultes.options[td_adultes.selectedIndex].value);
		// child //
		td_enfants.options.length = 1 + parseInt(selectedChildPax + remainPax);
		td_enfants.options[0].text = td_enfants.options[0].value = 0;
		for (var i = 1; i < td_enfants.options.length; i++) {
				var theOption = td_enfants.options[i];
				theOption.text = theOption.value = i;
				if (selectedChildPax == theOption.value) {
						td_enfants.selectedIndex = theOption.index;
						selectedChildPax = undefined;
				}
		}
		if (selectedChildPax != undefined) {
				for (var i = 0; i < td_enfants.options.length; i++) {
						var theOption = td_enfants.options[i];
						if (selectedChildPax == theOption.value) {
								td_enfants.selectedIndex = i;
								break;
						}
				}
		}
		if (td_enfants.selectedIndex == -1) {
				td_enfants.selectedIndex = 0;
		}
		selectedChildPax = Number(td_enfants.options[td_enfants.selectedIndex].value);
		td_adultes.disabled = false;
		td_enfants.disabled = false;
		totalPax = selectedAdultPax + selectedChildPax;

		// guest  Only for enfants//
	
		if (theSelect == "child") {
				//hide enfants
				hideFieldsBirth(false);
				//number of enfants:
				numChilds=td_enfants.options[td_enfants.selectedIndex].value;
				if (numChilds != 0){
						document.getElementById("lb_datenaissanceenfants").style.display="";
						
						if (numChilds==1)
								document.getElementById("td_enfants").style.display = "";
						else
									document.getElementById("td_enfants").style.display = "";
				}

				//show enfants:
				for (j=1; j <= numChilds; j++){
						document.getElementById("td_enfant_"+(j)).style.display = "";
				}
				//num_ofGuest
				num_of_guest.value=num_of_guest=numChilds ;// NOTE GLA ???? c'est normal ce "xxx=yyy=zzz" ?? c'est pas xxx=yyy-zzz plutot ?
		}		
}


function hideFieldsBirth(reset){

		if (reset ) {
				document.getElementById("lb_datenaissanceenfants").style.display = "none";
				document.getElementById("td_enfant_1").style.display = "none";
  			document.getElementById("td_enfant_2").style.display = "none";
				document.getElementById("td_enfant_3").style.display = "none";
				document.getElementById("td_enfant_4").style.display = "none";
				document.getElementById("td_enfant_5").style.display = "none";
		}
		
}
	

	

// Use this method to get guest DOB (Mozilla only support this method)
function get(eN) {
		if(document.getElementById) {
				return(eval('document.getElementById(\'' + eN + '\')'));
		} else {
					if (document.all) {
							return (eval('document.all.' + eN));
					}
		}
}


function set(eN, eV) {
		if(document.getElementById) {
				eval('document.getElementById(\'' + eN + '\').value=\'' + eV + '\'');
		} else {
				if (document.all) {
						eval('document.all.' + eN + '.value=\'' + eV + '\'');
				}
		}
}		

function SetValuesInputsHidden(yy, mm, dd){
		document.getElementById("dep_year").value = yy;
		document.getElementById("dep_month").value = mm;
		document.getElementById("dep_day").value = dd;
}

function putSpaceCalendar(){
		if (document.getElementById("spacecalendar")) {
				document.getElementById("spacecalendar").style.display="block";
		}
}

function remSpaceCalendar(){
		if (document.getElementById("spacecalendar")) {
				document.getElementById("spacecalendar").style.display="none";
		}
}		
//-->