// JavaScript Document
// 20 December 2005
<!--
//
// INITIALISE FORM
// ---------------
var bookingFM, villageDD, cityDD, yearDD, monthDD, dayDD, adultDD, childDD, lengthDD, numguestDD, sortByZone;
function initBookingForm(formName, bHomePage) {
	bookingFM = document.forms[formName];
	villageDD = bookingFM.village_name;
	cityDD = bookingFM.city_name;
	yearDD = bookingFM.dep_year;
	monthDD = bookingFM.dep_month;
	dayDD = bookingFM.dep_day;
	adultDD = bookingFM.adult;
	childDD = bookingFM.child;
	lengthDD = bookingFM.vacation_length;
	numguestDD = bookingFM.num_of_guest;
	input_calendarDD=bookingFM.input_calendar;
	sortByZone = (document.getElementById("sortVillageByZone") ? true : false);
	//submitDD = bookingFM.booking_btn;
	//guest1DD = bookingFM.guest1;
	//
	// Disable booking form if XMl feedback an error
	if (villageArr != undefined && cityArr != undefined) {
		populateVillage(bHomePage);
		populateGuest();
		selectVillage(bHomePage);
		displayEnfants();
		//submitDD.disabled = false;
		//guest1DD.disabled = false;
	}

	// GLA 07/07/2006 Gestion double clic : remise a NOCLIC pour gerer le back navigateur
	if (document.getElementById('clic')) {
		var clic = document.getElementById('clic');
		clic.value = "NOCLIC";
	}
}

//CMA 13/06/2008
function initEngineTarifForm(formName, bHomePage) {
	engineFM = document.forms[formName];
	villageDD = engineFM.village_name;
	cityDD = engineFM.city_name;
	yearDD = engineFM.dep_year;
	monthDD = engineFM.dep_month;
	dayDD = engineFM.dep_day;
	input_calendarDD = engineFM.input_calendar;
	sortByZone = (document.getElementById("sortVillageByZone") ? true : false);

	// Disable booking form if XMl feedback an error
	if (villageArr != undefined && cityArr != undefined) {
		populateVillage(bHomePage);
		populateCity(); //rebuild city drop down
	}
}
//
// MAKE VILLAGE SELECTION
// ----------------------
function selectVillage(bHomePage) { //called when user change village selection
	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 < villageArr.length; i++) {
			var theVillage = villageArr[i];
			if (theVillage["id"] == villageDD.value) {
				var theData = villageArr[i];
				break;
			}
		}
	} else {
		var theOption = villageDD.selectedIndex;
		var theData = villageArr[theOption];
	}
	if (theData["adulte"] == 1 ){
			document.getElementById("title_enfants").style.display="none"
			document.getElementById("select_enfants").style.display="none"
			//hide fields for birth
			hideFieldsBirth(true)
			childDD.selectedIndex=0
	} else {
			document.getElementById("title_enfants").style.display="block"
			document.getElementById("select_enfants").style.display="block"
	}
}

// POPULATE DATA TO FORM
// ----------------------
// populate village
function populateVillage(bHomePage) { //execute once only!
	if (sortByZone) {
		for (var j = 0; j < zoneArr.length; j++) {

				villageDD.options.length += 1;
				var theZone = zoneArr[j];
				var theOption = villageDD.options[villageDD.options.length - 1];
				// Nom de la zone geographique
				theOption.text = theZone["zonelib"];
				theOption.value = "";
				theOption.disabled = true;
				// Villages de cette zone
				var nbvillagedelazone=0;
				for (var i = 0; i < villageArr.length; i++) {
					var theData = villageArr[i];
					if (theZone["zonecod"] == theData["zonegeo"]) {
						villageDD.options.length += 1;
						theOption = villageDD.options[villageDD.options.length - 1];
						if (bHomePage) {
							theOption.text = document.getElementById("sortVillageByZone").value + theData["label"] + ", " + theData["pays"];
						} else {
							theOption.text = document.getElementById("sortVillageByZone").value + theData["label"];
						}
						theOption.idx = i;
						theOption.name = theData["season"];
						theOption.value = theData["id"];
						nbvillagedelazone+=1;
					}
				}
				if(nbvillagedelazone==0){
					villageDD.options.length -= 1;
				}
		}
		villageDD.selectedIndex = 1;
	} else {
		for (var i = 0; i < villageArr.length; i++) {
			villageDD.options.length += 1;
			var theData = villageArr[i];
			var theOption = villageDD.options[villageDD.options.length - 1];
	
			if (bHomePage) {
				theOption.text = theData["label"] + ", " + theData["pays"];
			} else {
				theOption.text = theData["label"];
			}
			theOption.name = theData["season"];
			theOption.value = theData["id"];
		}
		villageDD.selectedIndex = 0;
	}
	villageDD.disabled = false;
}

// populate city
function populateCity() { //execute when user change village selection
	var cityList;
	var defaultCity;
	cityDD.options.length = 1;
	cityDD.options[0].text = cityArr[0]["label"];
	cityDD.options[0].value = "";
	cityDD.selectedIndex = 0;
	
	if (sortByZone) {
		
		if (cityDD.selectedIndex != -1) { //record selection by user
			var selectedCity = cityDD.options[cityDD.selectedIndex].value;
		} else {
			var selectedCity = "";
		}
		for (var i = 0; i < villageArr.length; i++) {
			var theVillage = villageArr[i];
			if (theVillage["id"] == villageDD.value) {
				cityList = theVillage["ville"];
				defaultCity = theVillage["defaultville"];
				break;
			}
		}
		for (var i = 0; i < cityArr.length; i++) {
			var theData = cityArr[i]
			for (j = 0; j < cityList.length; j++) {
				var theCode = cityList[j];
			
				if (theCode == theData["code"]) {
					cityDD.options.length += 1;
					var theOption = cityDD.options[cityDD.options.length - 1];
					
					theOption.text = theData["label"];
					theOption.value = theData["code"];
					
					if (selectedCity == theOption.value) { //reapply selection by user
						cityDD.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 i = 1; i < cityDD.options.length; i++) {
				var theOption = cityDD.options[i];
				if (defaultCity == theOption.value) {
					cityDD.selectedIndex = i;
					break;
				}
			}
		}
	} else{
	
		if (cityDD.selectedIndex != -1) { //record selection by user
			var selectedCity = cityDD.options[cityDD.selectedIndex].value;
		} else {
			var selectedCity = "";
		}
		
		cityList = villageArr[villageDD.selectedIndex]["ville"];
		defaultCity = villageArr[villageDD.selectedIndex]["defaultville"]; //not required on japan
		for (var i = 0; i < cityArr.length; i++) {
			var theData = cityArr[i]
			for (j = 0; j < cityList.length; j++) {
				var theCode = cityList[j];
				if (theCode == theData["code"]) {
					cityDD.options.length += 1;
					var theOption = cityDD.options[cityDD.options.length - 1];
					
					theOption.text = theData["label"];
					theOption.value = theData["code"];
					
					if (selectedCity == theOption.value) { //reapply selection by user
						cityDD.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 i = 1; i < cityDD.options.length; i++) {
				var theOption = cityDD.options[i];
				if (defaultCity == theOption.value) {
					cityDD.selectedIndex = i;
					break;
				}
			}
		}
	}
	
	cityDD.disabled = false;
}


// populate guest
var maxPax = 6;
var minPax = 1;
var totalPax = 1;
function populateGuest(theSelect) {
	totalPax = 0;
	if (adultDD.selectedIndex != -1) { //record adult pax selection by user
		var selectedAdultPax = Number(adultDD.options[adultDD.selectedIndex].value);
		totalPax += selectedAdultPax;
	} else {
		var selectedAdultPax = "";
	}
	if (childDD.selectedIndex != -1) { //record child pax selection by user
		var selectedChildPax = Number(childDD.options[childDD.selectedIndex].value);
		totalPax += selectedChildPax;
	} else {
		var selectedChildPax = "";
	}
	
	if (selectedAdultPax == "" && selectedChildPax == "")
		totalPax = 1;
	
	var remainPax = maxPax - totalPax;
	//
	// adult //
	if (selectedAdultPax == "")
		adultDD.options.length = 1 + remainPax;
	else
		adultDD.options.length = selectedAdultPax + remainPax;
	
	for (var i = 0; i < adultDD.options.length; i++) {
		var theOption = adultDD.options[i];
		//
		theOption.text = theOption.value = i + 1;
		if (selectedAdultPax == theOption.value) {
			adultDD.selectedIndex = theOption.index;
			selectedAdultPax = undefined;
		}
	}
	if (selectedAdultPax != undefined) {
		for (var i = 0; i < adultDD.options.length; i++) {
			var theOption = adultDD.options[i];
			if (selectedAdultPax == theOption.value) {
				adultDD.selectedIndex = i;
				break;
			}
		}
	}
	if (adultDD.selectedIndex == -1) {
		adultDD.selectedIndex = 0;
	}
	selectedAdultPax = Number(adultDD.options[adultDD.selectedIndex].value);
	//
	// child //
	childDD.options.length = 1 + parseInt(selectedChildPax + remainPax);
	childDD.options[0].text = childDD.options[0].value = 0;
	for (var i = 1; i < childDD.options.length; i++) {
		var theOption = childDD.options[i];
		//
		theOption.text = theOption.value = i;
		if (selectedChildPax == theOption.value) {
			childDD.selectedIndex = theOption.index;
			selectedChildPax = undefined;
		}
	}
	if (selectedChildPax != undefined) {
		for (var i = 0; i < childDD.options.length; i++) {
			var theOption = childDD.options[i];
			if (selectedChildPax == theOption.value) {
				childDD.selectedIndex = i;
				break;
			}
		}
	}
	if (childDD.selectedIndex == -1) {
		childDD.selectedIndex = 0;
	}
	selectedChildPax = Number(childDD.options[childDD.selectedIndex].value);
	//
	adultDD.disabled = false;
	childDD.disabled = false;
	totalPax = selectedAdultPax + selectedChildPax;
	//
	// guest  Only for enfants//
	
	if (theSelect == 'child') {
		//hide enfants
		
		hideFieldsBirth(false)
		//number of enfants:
		numChilds=childDD.options[childDD.selectedIndex].value
		if (numChilds != 0){
				//document.getElementById('title1_enfants').style.display = 'block';
				if (numChilds==1)
					document.getElementById('title2_enfants').style.display = 'block';
				else
					document.getElementById('title3_enfants').style.display = 'block';
		}
		//show enfants:
		for (j=1; j <= numChilds; j++){
				document.getElementById('enfant'+(j)).style.display = 'block';
		}
		//num_ofGuest
		numguestDD.value=num_of_guest=numChilds // NOTE GLA ???? c'est normal ce "xxx=yyy=zzz" ?? c'est pas xxx=yyy-zzz plutot ?
	}
}

function hideFieldsBirth(reset){
	var numChilds = childDD.options[childDD.selectedIndex].value

	for (j=1; j<=5; j++){
		if (reset || j > numChilds) { // GLA 10/05/2006
			document.getElementById('guest'+(j)).value = '';
		}
		document.getElementById('enfant'+(j)).style.display = 'none';
	}
	//unselect childs
	//hide titles
	if (document.getElementById('title1_enfants'))
		document.getElementById('title1_enfants').style.display = 'none';
	if (document.getElementById('title2_enfants'))
		document.getElementById('title2_enfants').style.display = 'none';
	if (document.getElementById('title3_enfants'))
		document.getElementById('title3_enfants').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"
	}
}
//-->
