// Javascript pour la fonction du moteur DP 

// DP departure cities management
function DepartureCity(code, city) {
	this.code = code;
	this.city = city;
}		

var	dpDepartureCities = new Array;
dpDepartureCities[0] = new DepartureCity("PAR", "Paris");
dpDepartureCities[1] = new DepartureCity("MLH", "Bâle / Mulhouse");
dpDepartureCities[2] = new DepartureCity("BCN", "Barcelone");
dpDepartureCities[3] = new DepartureCity("BOD", "Bordeaux");
dpDepartureCities[4] = new DepartureCity("BRU", "Bruxelles");
dpDepartureCities[5] = new DepartureCity("CFE", "Clermont-Ferrand");
dpDepartureCities[6] = new DepartureCity("GVA", "Genève");
dpDepartureCities[7] = new DepartureCity("LIL", "Lille");
dpDepartureCities[8] = new DepartureCity("LON", "Londres");
dpDepartureCities[9] = new DepartureCity("LUX", "Luxembourg City");
dpDepartureCities[10] = new DepartureCity("LYS", "Lyon");
dpDepartureCities[11] = new DepartureCity("MRS", "Marseille");
dpDepartureCities[12] = new DepartureCity("MPL", "Montpellier");
dpDepartureCities[13] = new DepartureCity("NTE", "Nantes");
dpDepartureCities[14] = new DepartureCity("NCE", "Nice");
dpDepartureCities[15] = new DepartureCity("RNS", "Rennes");
dpDepartureCities[16] = new DepartureCity("SXB", "Strasbourg");
dpDepartureCities[17] = new DepartureCity("TLS", "Toulouse");

function writeDpDepartureOptions(){
	for (var i = 0; i < dpDepartureCities.length; i++)
		document.write('<option value="'+dpDepartureCities[i].code+'">'+dpDepartureCities[i].city+'</option>'+'\n');
}

//Departure and return hour
	function Hour(code, hour) {
      this.code = code;
      this.hour = hour;
   }

	var dpHour = new Array;
	dpHour[0] = new Hour("", "Horaire indifférent");
	dpHour[1] = new Hour("MORNING", "Matin (9:00-12:00)");
	dpHour[2] = new Hour("AFTERNOON", "Après-Midi (12:00-18:00)");
	dpHour[3] = new Hour("EVENING", "Soirée (18:00-00:00)");
	dpHour[4] = new Hour("00:00", "00:00");
	dpHour[5] = new Hour("0100", "01:00");
	dpHour[6] = new Hour("0200", "02:00");
	dpHour[7] = new Hour("0300", "03:00");
	dpHour[8] = new Hour("0400", "04:00");
	dpHour[9] = new Hour("0500", "05:00");
	dpHour[10] =new Hour("0600", "06:00");
	dpHour[11] = new Hour("0700", "07:00");
	dpHour[12] = new Hour("0800", "08:00");
	dpHour[13] = new Hour("0900", "09:00");
	dpHour[14] = new Hour("1000", "10:00");
	dpHour[15] = new Hour("1100", "11:00");
	dpHour[16] = new Hour("1200", "12:00");
	dpHour[17] = new Hour("1300", "13:00");
	dpHour[18] = new Hour("1400", "14:00");
	dpHour[19] = new Hour("1500", "15:00");
	dpHour[20] = new Hour("1600", "16:00");
	dpHour[21] =  new Hour("1700", "17:00");
	dpHour[22] = new Hour("1800", "18:00");
	dpHour[23] = new Hour("1900", "19:00");
	dpHour[24] = new Hour("2000", "20:00");
	dpHour[25] = new Hour("2100", "21:00");
	dpHour[26] = new Hour("2200", "22:00");
	dpHour[27] = new Hour("2300", "23:00");

	function writeHourOptions() {
		
		for (var i = 0; i < dpHour.length; i++)
		document.write('<option value="'+	dpHour[i].code+'">'+	dpHour[i].hour+'</option>'+'\n');
	}
	




// Affichage des Jours, Mois et Année et horaire Départ et Retour
var dpDelay = 3;
var all_month = new Array("JAN", "FEV", "MAR", "AVR", "MAI", "JUN", "JUL", "AOU", "SEP", "OCT", "NOV", "DEC");
var all_monthLitteral = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre");
	









function writeHoraire()	{	
	document.write('<option value="">Aucune préférence</option>');
	document.write('<option value="MORNING"/>Matin (9:00-12:00)');
	document.write('<option value="AFTERNOON"/>Après-Midi (12:00-18:00)');
	document.write('<option value="EVENING"/>Soirée (18:00-00:00)');
	for(var i=1;i<10;i++)
		document.write('<option value="0'+i+'00"/>0'+i+':00');
	for(var i=10;i<=23;i++)
		document.write('<option value="'+i+'00"/>'+i+':00');
}	


	
function getNumericOptions(beginIndex, endIndex) {
	var numericOptions = '';
	for(var i=beginIndex; i <= endIndex; i++)
		numericOptions += '<option value="'+i+'">'+i+'</option>\n';
	return numericOptions;
}

function writeNumericOptions(beginIndex, endIndex){
	document.write(getNumericOptions(beginIndex, endIndex));
}


	


function selectPax(ObjMaster,ObjCustom){
	var minCustom = parseInt(ObjCustom.options[0].value);
	var ObjCustomMaxLength = 9 - parseInt(ObjMaster.value);
	var ObjCustomLength = ObjCustom.options.length;
	var ObjCustomSelect = ObjCustom.value;
	for (j = ObjCustomLength-1; j >0; j--)
		ObjCustom.options[j] = null;
	for (j=0;j<=ObjCustomMaxLength-minCustom;j++)
		ObjCustom.options[j] = new Option(j+minCustom,j+minCustom);
	if (parseInt(ObjCustomSelect) <= ObjCustomMaxLength)
		ObjCustom.value = ObjCustomSelect;
}
	
function updateBebe(ObjMaster,ObjCustom){
	var ObjCustomSelect = ObjCustom.value;
	var ObjCustomLength = ObjCustom.options.length;
	var ObjCustomMaxLength = parseInt(ObjMaster.value);
	for (j = ObjCustomLength-1; j >0; j--)
		ObjCustom.options[j] = null;
	for (j=0;j<=ObjCustomMaxLength;j++)
		ObjCustom.options[j] = new Option(j,j);
	if (parseInt(ObjCustomSelect) <= ObjCustomMaxLength)
		ObjCustom.value = ObjCustomSelect;
	else
		ObjCustom.value = ObjCustomMaxLength;
}

function displayChildrenAgeFields(nbChildren,idDivChildrenAgeFields) {
	var childrenAgeFields = '';
	if (nbChildren > 0)
    childrenAgeFields += '<p>Veuillez saisir l\'&acirc;ge des enfants :</p>';
 	for (var i=1; i <= nbChildren; i++){
    	childrenAgeFields += '<label for="CHILDREN_AGES_'+(i-1)+'">Enfant '+i+' :</label>';
    	childrenAgeFields += '<select name="CHILDREN_AGES" id="CHILDREN_AGES_'+(i-1)+'">'+getNumericOptions(2,16)+'</select>';
    }
    document.getElementById(idDivChildrenAgeFields).innerHTML = childrenAgeFields;
	document.getElementById(idDivChildrenAgeFields).style.display = "block";
	if (nbChildren == 0)
		document.getElementById(idDivChildrenAgeFields).style.display = "none";
}

function displayNbRoomsFields(idDiv,idp,nbAdults, nbChildren) {
	var maxNbRooms = 5;
	var maxNbPeoplePerRoom = 6;
	var maxNbChildrenPerRoom = 4;
	var nbRoomsFields = '';
	for (var nbRooms=1; nbRooms <= Math.min(nbAdults, maxNbRooms); nbRooms++) {
		var nbAdultsPerRoom = Math.ceil(nbAdults / nbRooms);
		var nbChildrenPerRoom = Math.ceil(nbChildren / nbRooms);
		var nbPeoplePerRoom = nbAdultsPerRoom + nbChildrenPerRoom;
		if (nbPeoplePerRoom <= maxNbPeoplePerRoom && nbChildrenPerRoom <= maxNbChildrenPerRoom) {
			var checkFirstField = (nbRoomsFields == '') ? 'checked' : '';
			nbRoomsFields += '\n <label class="radio"><input type="radio" name="NB_ROOMS" '+checkFirstField+' value="'+nbRooms+'" id="NB_ROOMS_'+nbRooms+'" /> '+nbRooms+' chambre(s) pour '+nbPeoplePerRoom+' personne(s)</label>';
		}
	}
	if (nbRoomsFields == '')
		nbRoomsFields = 'Aucune proposition pour les nombres d&#146;adultes et d&#146;enfants sélectionnés';
		document.getElementById(idp).innerHTML = nbRoomsFields;
		document.getElementById(idDiv).style.display = 'block';
}

function displayBaby(objBaby){
	if (objBaby.value > 0)
		document.getElementById('babyNote').style.display = "block";	
	else
		document.getElementById('babyNote').style.display = "none";	
}

function doOnload(form) { 
	with (form) {
		updateWeekDay(D_DAY, D_MONTH, W_D_DAY);
		updateWeekDay(R_DAY, R_MONTH, W_R_DAY);
		selectPax(NB_ADULTS, NB_CHILDREN); 
		updateBebe(NB_ADULTS, NB_INFANTS); 
		displayChildrenAgeFields(NB_CHILDREN.value); 
		displayNbRoomsFields(NB_ADULTS.value, NB_CHILDREN.value);
	}
	if (document.getElementById('volhotel')){
		var element = document.getElementById('volhotel');
		element.className = 'activeTab';
	}	
}
