

var myTripType = "";
var myTripNoStop = "N";
var myTripPubAvail = "";
var myTripAirCod1 = "";
var myTripYRless = 1; // Years allowed before today
var myTripYRmore = 1; // Years allowed after today
var myTripDDmore = 3; // Departure Day more after today Day
//var myTripDDweek = 0; // Departure Week Day 0=sunday
var myTripRDmore = 7; // Return Day more after Departure Day

function chgTrip(frm,trip) {
	var lensel = 1;
	var valtrp = "";
	if(frm.TripType) {
		if(trip) valtrp = trip;
		if(frm.TripType.type == "hidden") {
			frm.TripType.value = valtrp;
		} else {
			if(frm.TripType.length) lensel = frm.TripType.length;
			if(lensel == 1) {
				if(frm.TripType.value == valtrp) 
					frm.TripType.checked = true;
				else	frm.TripType.checked = false;
			} else for(var i=0; i<lensel; i++) {
				if(frm.TripType[i].value == valtrp) 
					frm.TripType[i].checked = true;
				else	frm.TripType[i].checked = false;
			}
		}
	}
}
function getTrip(frm) {
	var lensel = 1;
	var valtrp = "";
	if(frm.TripType) {
		if(frm.TripType.type == "hidden") {
			valtrp = frm.TripType.value;
		} else {
			if(frm.TripType.length) lensel = frm.TripType.length;
			if(lensel == 1) {
			   if(frm.TripType.checked) valtrp = frm.TripType.value;
			} else for(var i=0; i<lensel; i++) {
				if(frm.TripType[i].checked) {
					valtrp = frm.TripType[i].value;
					break;
				}
			}
		}
	}
	return valtrp;
}

function onewayTrip(onclk) {
	var frm = document.searchAvailabilityForm;
	if(onclk) {
		if(myTripType == "J") {
			frm.Key.value = "Repeat";
			if(frm.Go) frm.Go.disabled = true;
			frm.submit();
			return;
		}
	}
	myTripType = "O";  // Set to O=Oneway
	if(frm.DDMMYY2) {
		frm.DDMMYY2.disabled = true;
		frm.DDMMYY2.readonly = true;
	}
	else if(frm.MMYY2) {
		frm.DD2.disabled = true;
		frm.MMYY2.disabled = true;
	}
	frm.HHMN2.disabled = true;
	if(frm.DDMMYY2) {
		frm.DDMMYY2.className='txtFixOff';
	}
	else if(frm.MMYY2) {
		frm.DD2.className='selDrpOff';
		frm.MMYY2.className='selDrpOff';
	}
	frm.HHMN2.className='selDrpOff';
}
function returnTrip(onclk) {
	var frm = document.searchAvailabilityForm;
	if(onclk) {
		if(myTripType == "J") {
			frm.Key.value = "Repeat";
			if(frm.Go) frm.Go.disabled = true;
			frm.submit();
			return;
		}
	}
	myTripType = "R";  // Set to R=Return
	if(frm.DDMMYY2) {
		frm.DDMMYY2.disabled = false;
		frm.DDMMYY2.readonly = false;
	}
	else if(frm.MMYY2) {
		frm.DD2.disabled = false;
		frm.MMYY2.disabled = false;
	}
	frm.HHMN2.disabled = false;
	if(frm.DDMMYY2) {
		frm.DDMMYY2.className='txtFix';
	}
	else if(frm.MMYY2) {
		frm.DD2.className='selDrp';
		frm.MMYY2.className='selDrp';
	}
	frm.HHMN2.className='selDrp';
}
function openjawTrip(onclk) {
	var frm = document.searchAvailabilityForm;
	if(onclk) {
		if(myTripType != "J") {
			frm.Key.value = "Repeat";
			if(frm.Go) frm.Go.disabled = true;
			frm.submit();
			return;
		}
	}
	myTripType = "J";  // Set to J=openJaw
	if(frm.DDMMYY2) {
		frm.DDMMYY2.disabled = false;
		frm.DDMMYY2.readonly = false;
	}
	else if(frm.MMYY2) {
		frm.DD2.disabled = false;
		frm.MMYY2.disabled = false;
	}
	frm.HHMN2.disabled = false;
	if(frm.DDMMYY2) {
		frm.DDMMYY2.className='txtFix';
	}
	else if(frm.MMYY2) {
		frm.DD2.className='selDrp';
		frm.MMYY2.className='selDrp';
	}
	frm.HHMN2.className='selDrp';
}

function nonstopTrip() {
	var tripNonStop = document.getElementById("TripNonStop");
	if(tripNonStop.checked){
		alert("checked");
		alert(tripNonStop.checked);
		myTripNoStop = "Y";
		tripNonStop.value = "true";
	}
	else{
		alert("Nonchecked");
		alert(tripNonStop.checked);
		myTripNoStop = "N";
		tripNonStop.value = "false";
	}
}

function availTrip(onclick) {
	var frm = document.searchAvailabilityForm;
	if(frm.NoQueryPublic) {
	   if(frm.NoQueryPublic.disabled)
	      frm.NoQueryPublic.disabled = false;
	   if(frm.NoQueryPublic.checked) {
	      if(myTripPubAvail == "Y") frm.NoQueryPublic.checked = false;
	   }
	}
}
function noavailTrip(onclick) {
	var frm = document.searchAvailabilityForm;
	if(frm.NoQueryPublic) {
	   if(!frm.NoQueryPublic.disabled)
	      frm.NoQueryPublic.disabled = true;
	   if(!frm.NoQueryPublic.checked) {
	      frm.NoQueryPublic.checked = true;
	      myTripPubAvail = "Y"; // Save previous status
	   }
	}
}

function aircodeTrip(idx) {
	var frm = document.searchAvailabilityForm;
	if(idx == 1 && frm.AirlineCode1 && frm.AirlineCode1.value != "") {
		if(frm.AirlineCode1.value.length >= 2) { // 2 to 3 char
		   myTripAirCod1 = frm.AirlineCode1.value.toUpperCase();
		   frm.AirlineCode1.value = myTripAirCod1;
		   if(frm.AirlineList) {
			var tot = frm.AirlineList.length;
			var idx = 0;
			for(var i=0; i<tot; i++) {
			   if(frm.AirlineList.options[i].value == myTripAirCod1)
				{ idx = i; break; }
			}
			frm.AirlineList.selectedIndex = idx;
		   }
		}
		else frm.AirlineCode1.value = "";
	}
	if(idx == 2 && frm.AirlineCode2 && frm.AirlineCode2.value != "") {
		if(frm.AirlineCode2.value.length >= 2) { // 2 to 3 char
		   frm.AirlineCode2.value = frm.AirlineCode2.value.toUpperCase();
		} else frm.AirlineCode2.value = "";
	}
	if(idx == 3 && frm.AirlineCode3 && frm.AirlineCode3.value != "") {
		if(frm.AirlineCode3.value.length >= 2) { // 2 to 3 char
		   frm.AirlineCode3.value = frm.AirlineCode3.value.toUpperCase();
		} else frm.AirlineCode3.value = "";
	}
}
function airlistTrip() {
	var frm = document.searchAvailabilityForm;
	if(frm.AirlineList) {
	   if(frm.AirlineList.selectedIndex >= 1 &&
	      frm.AirlineList.selectedIndex < frm.AirlineList.length) {
		var idx = frm.AirlineList.selectedIndex;
		myTripAirCod1 = frm.AirlineList.options[idx].value;
		if(frm.AirlineCode1) {
		   frm.AirlineCode1.value = myTripAirCod1.toUpperCase();
		}
	   }
	   else if(frm.AirlineCode1) frm.AirlineCode1.value = "";
	}
}


function isLeapYear(yyyy) {
	return ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0);
}
function isYMDvalid(yyyy,mm,dd) {
	if(dd < 1 || dd > 31 || mm < 1 || mm > 12) return false;
	if(mm == 2) {
		if(dd >= 30) return false;
		if(dd == 29) return isLeapYear(yyyy);
	}
	else if(dd == 31) return (!(mm == 4 || mm == 6 || mm == 9 || mm == 11));
	return true;
}
var WeekDay_FR = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
var WeekDay_EN = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

var MaxdMonth = [31,28,31,30,31,30,31,31,30,31,30,31];

function chgWeekDay(pwkday,year,month,day) {
	var mkday = new Date(year,month-1,day);
	var wkday = mkday.getDay();
	if(wkday >= 0 && wkday < 7){
		
		if(myLang == "FR")
			pwkday.value = WeekDay_FR[ wkday ];
		else
			pwkday.value = WeekDay_EN[ wkday ];
	}
	else 
		pwkday.value = "";
}

function emptyTheDrop(thedrop) {
	var ln = thedrop.length;
	for(var i=0; i<ln; i++) thedrop.options[i] = null;
	thedrop.selectedindex = 0;
	thedrop.length = 0;
}
function getDDMMYYYY(v_dmy) {
	var ls_dte = "/0123456789";
	var vs_dte = "";
	var rs_ch  = "";
	// Elimination des caracteres parasites
	for(var i=0; i < v_dmy.length; i++) {
		rs_ch = "" + v_dmy.charAt(i);
		if(ls_dte.indexOf(rs_ch) >= 0) vs_dte += rs_ch;
	}
	// Analyse de la nouvelle chaine
	var t_dmy = vs_dte.split("/");
	var dd = 0;
	var mm = 0;
	var yy = 0;
	if(t_dmy.length >= 2) {
		for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd = parseInt(t_dmy[i],10);
			else if(i == 1) mm = parseInt(t_dmy[i],10);
			else if(i == 2) yy = parseInt(t_dmy[i],10);
		}
	}
	else if(vs_dte.length >= 6) {
		dd = parseInt(vs_dte.substring(0,2),10);
		mm = parseInt(vs_dte.substring(2,4),10);
		yy = parseInt(vs_dte.substring(4,7),10);
	}
	if(dd && mm && yy < 99) {
		// var today = new Date( mySystemTime );
		var nowY = myTodayDate.getFullYear();
		yy += (Math.floor( (nowY / 100) ) * 100);
	}
	v_dmy = "";
	if(dd <= 9) v_dmy += "0";
	v_dmy += dd.toString() + "/";
	if(mm <= 9) v_dmy += "0";
	v_dmy += mm.toString() + "/";
	if(yy <= 9) v_dmy += "0";
	v_dmy += yy.toString();
	return( v_dmy );
}

function initDate1(frm,yb,ye,yy,mm,dd,mkmore) {
	var Ybeg = yb;
	var Yend = ye;
	var depY = yy;
	var depM = mm;
	var depD = dd;
	if(mkmore) {
		var mkday = new Date(yy,mm-1,dd);
		var nowY = mkday.getFullYear();
		var nowM = mkday.getMonth()+1;
		var nowD = mkday.getDate();
		var nowW = mkday.getDay();
		var depW = nowW;
		depY = nowY;
		depM = nowM;
		depD = nowD + myTripDDmore;
		var lastDay = 0;
		if(myTripDDmore >= 1) { // Calcul of depW
   		   for(var j=0; j<myTripDDmore; j++)
			{ if(++depW >= 7) depW = 0; }
		}
//		for(var j=0; j<7; j++) { // Search of 1st Saturday
//			if(depW == myTripDDweek) break; // ok Saturday
//			++depD; if(++depW >= 7) depW = 0;
//		}
		if(depM==2 && isLeapYear(depY))
			lastDay = 29; // February on Leap year
		else	lastDay = MaxdMonth[depM-1];
		if(depD > lastDay) {
			depD -= lastDay;
			++depM; if(depM > 12) { depM = 1; ++depY; }
		}
	}

	if(document.getElementById("DDMMYY1")) {
		document.getElementById("DDMMYY1").value = depD.toString() + "/" + depM.toString() + "/" + depY.toString();
		document.getElementById("DDMMYY1").value = getDDMMYYYY(document.getElementById("DDMMYY1").value);
	}
	else if(frm.MMYY1) {
		var v_my = 0;
		var o_my = 0;
		var tmy = 0;
		var idx = 0;
		v_my = (depM * 10000) + depY;
		tmy = frm.MMYY1.length;
		for(var i=0; i<tmy; i++) {
			o_my = parseInt(frm.MMYY1.options[i].value,10);
			if(o_my == v_my) { idx = i; break; }
		}
		frm.DD1.selectedIndex = depD-1;
		frm.MMYY1.selectedIndex = idx;
	}
	if(document.getElementById("WD1")) { chgWeekDay(document.getElementById("WD1"),depY,depM,depD); }
	if(document.getElementById("hiddenWD1")) { chgWeekDay(document.getElementById("hiddenWD1"),depY,depM,depD); }
}
function initDate2(frm,yb,ye,yy,mm,dd,mkmore) {
	var Ybeg = yb;
	var Yend = ye;
	var retY = yy;
	var retM = mm;
	var retD = dd;
	if(mkmore) {
		var lastDay = 0;
		retD += myTripRDmore;
		if(retM==2 && isLeapYear(retY))
			lastDay = 29; // February on Leap year
		else	lastDay = MaxdMonth[retM-1];
		if(retD > lastDay) {
			retD -= lastDay;
			++retM; if(retM > 12) { retM = 1; ++retY; }
		}
	}

	if(document.getElementById("DDMMYY2")) {
		document.getElementById("DDMMYY2").value = retD.toString() + "/" + retM.toString() + "/" + retY.toString();
		document.getElementById("DDMMYY2").value = getDDMMYYYY(document.getElementById("DDMMYY2").value);
	}
	else if(frm.MMYY2) {
		var v_my = 0;
		var o_my = 0;
		var tmy = 0;
		var idx = 0;
		v_my = (retM * 10000) + retY;
		tmy = frm.MMYY2.length;
		for(var i=0; i<tmy; i++) {
			o_my = parseInt(frm.MMYY2.options[i].value,10);
			if(o_my == v_my) { idx = i; break; }
		}
		frm.DD2.selectedIndex = retD-1;
		frm.MMYY2.selectedIndex = idx;
	}
	if(document.getElementById("WD2")) { chgWeekDay(document.getElementById("WD2"),retY,retM,retD); }
	if(document.getElementById("hiddenWD2")) { chgWeekDay(document.getElementById("hiddenWD2"),retY,retM,retD); }
}
function checkDate1(frm,onclk) {
	var dd1 = 0;
	var mm1 = 0;
	var yy1 = 0;

	if(document.getElementById("DDMMYY1")) {
		
		document.getElementById("DDMMYY1").value = getDDMMYYYY(document.getElementById("DDMMYY1").value);
		var t_dmy = document.getElementById("DDMMYY1").value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd1 = parseInt(t_dmy[i],10);
			else if(i == 1) mm1 = parseInt(t_dmy[i],10);
			else if(i == 2) yy1 = parseInt(t_dmy[i],10);
		   }
		}
	}
	else if(frm.MMYY1) {
		var my1 = 0;
		dd1 = parseInt(frm.DD1.options[frm.DD1.selectedIndex].value,10);
		my1 = parseInt(frm.MMYY1.options[frm.MMYY1.selectedIndex].value,10);
		mm1 = Math.floor( (my1 / 10000) );
		yy1 = (my1 % 10000);
	}
	if(!isYMDvalid(yy1,mm1,dd1)) return;
	if(document.getElementById("WD1")) { chgWeekDay(document.getElementById("WD1"),yy1,mm1,dd1); }
	if(document.getElementById("hiddenWD1")) { chgWeekDay(document.getElementById("hiddenWD1"),yy1,mm1,dd1); }

	// Check chronological order
	var dd2 = 0;
	var mm2 = 0;
	var yy2 = 0;
	if(document.getElementById("DDMMYY2")) {
		if(document.getElementById("DDMMYY2").value.length < 6) return;
		if(document.getElementById("DDMMYY2").value.length != 10) // Si pas au format
		   document.getElementById("DDMMYY2").value = getDDMMYYYY(document.getElementById("DDMMYY2").value);
		var t_dmy = document.getElementById("DDMMYY2").value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd2 = parseInt(t_dmy[i],10);
			else if(i == 1) mm2 = parseInt(t_dmy[i],10);
			else if(i == 2) yy2 = parseInt(t_dmy[i],10);
		   }
		}
	}
	else if(frm.MMYY2) {
		var my2 = 0;
		dd2 = parseInt(frm.DD2.options[frm.DD2.selectedIndex].value,10);
		my2 = parseInt(frm.MMYY2.options[frm.MMYY2.selectedIndex].value,10);
		mm2 = Math.floor( (my2 / 10000) );
		yy2 = (my2 % 10000);
	}

	var ymd2 = (yy2*10000) + (mm2*100) + dd2;
	var ymd1 = (yy1*10000) + (mm1*100) + dd1;
	if(ymd2 < ymd1) {
		var Ybeg = yy1 - myTripYRless; // Year less
		var Yend = yy1 + myTripYRmore; // Year more
		initDate2(frm,Ybeg,Yend,yy1,mm1,dd1,true);
	}
}
function checkDate2(frm,onclk) {
	var dd2 = 0;
	var mm2 = 0;
	var yy2 = 0;
	if(document.getElementById("DDMMYY2")) {
		document.getElementById("DDMMYY2").value = getDDMMYYYY(document.getElementById("DDMMYY2").value);
		var t_dmy = document.getElementById("DDMMYY2").value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd2 = parseInt(t_dmy[i],10);
			else if(i == 1) mm2 = parseInt(t_dmy[i],10);
			else if(i == 2) yy2 = parseInt(t_dmy[i],10);
		   }
		}
	}
	else if(frm.MMYY2) {
		var my2 = 0;
		dd2 = parseInt(frm.DD2.options[frm.DD2.selectedIndex].value,10);
		my2 = parseInt(frm.MMYY2.options[frm.MMYY2.selectedIndex].value,10);
		mm2 = Math.floor( (my2 / 10000) );
		yy2 = (my2 % 10000);
	}
	if(!isYMDvalid(yy2,mm2,dd2)) return;
	if(document.getElementById("WD2")) { chgWeekDay(document.getElementById("WD2"),yy2,mm2,dd2); }
	if(document.getElementById("hiddenWD2")) { chgWeekDay(document.getElementById("hiddenWD2"),yy2,mm2,dd2); }
}
function checkDates() {
	if(document.searchAvailabilityForm) {
		checkDate1(document.searchAvailabilityForm,0);
		checkDate2(document.searchAvailabilityForm,0);
	}
}
function initDates() {
	// var today = new Date( mySystemTime );
	var nowY = myTodayDate.getFullYear();
	var nowM = myTodayDate.getMonth()+1;
	var nowD = myTodayDate.getDate();
	var nowW = myTodayDate.getDay();
	var Ybeg = nowY - myTripYRless; // Year less
	var Yend = nowY + myTripYRmore; // Year more
	var depY = nowY;
	var depM = nowM;
	var depD = nowD + myTripDDmore;
	var depW = nowW;
	var lastDay = 0;
	if(myTripDDmore >= 1) { 
		// Calcul of depW
	   for(var j=0; j<myTripDDmore; j++) { if(++depW >= 7) depW = 0; }
	}
//	for(var j=0; j<7; j++) { 
//		// Search of 1st Saturday
//		if(depW == myTripDDweek) break; // ok Saturday
//		++depD; if(++depW >= 7) depW = 0;
//	}
	if(depM==2 && isLeapYear(depY))
		lastDay = 29; // February on Leap year
	else	lastDay = MaxdMonth[depM-1];
	if(depD > lastDay) {
		depD -= lastDay;
		++depM; if(depM > 12) { depM = 1; ++depY; }
	}
	if(document.searchAvailabilityForm) {
		initDate1(document.searchAvailabilityForm,Ybeg,Yend,depY,depM,depD,false);
		initDate2(document.searchAvailabilityForm,Ybeg,Yend,depY,depM,depD,true);
	}
}
function initTrip() {
	if(document.searchAvailabilityForm) {
		var frm = document.searchAvailabilityForm;
		if(frm.TripType) {
			var valtrp = getTrip(frm);
			     if(valtrp == "O")	onewayTrip(0);
			else if(valtrp == "J")	openjawTrip(0);
			else 			returnTrip(0);
		}
		// verifier si select ou input
		if(frm.AirportFrom1) {
			var defFr1 = "GVA"; // default
			var oapFr1 = frm.AirportFrom1;
			if(oapFr1.type != 'select-one') {
			   if(oapFr1.value == "")
			      oapFr1.value = defFr1;
			   if(frm.AirportTo2 && frm.AirportTo2.type == oapFr1.type)
			      frm.AirportTo2.value = oapFr1.value;
			}
			else if(oapFr1.selectedIndex <= 0) {
			   var idx = oapFr1.selectedIndex;
			   var val = oapFr1.options[idx].value;
			   var vch = "" + val.charAt(0);
			   if(val == "" || vch == "-") {
			      var tot = oapFr1.length;
			      for(var i=0; i<tot; i++) {
			          if(oapFr1.options[i].value == defFr1)
			             { idx = i; break; }
			      }
			      oapFr1.selectedIndex = idx;
			      if(frm.AirportTo2 && frm.AirportTo2.type == oapFr1.type)
			         frm.AirportTo2.selectedIndex = oapFr1.selectedIndex;
			   }
			}
		}
	}
}

function checkString(sval,sopt,sadd) {
var l1_digit = "0123456789";
var l2_alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var l3_accent = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüý";
var ls_tot = "";
var rs_ch = "";
var no_ch = "";
var nb_sp = 0;
	if(sval == null || sval == "") return false;
	if(sopt == null) ls_tot = l1_digit + l2_alpha;
	else for(i=0; i<sopt.length; i++) {
		rs_ch = "" + sopt.charAt(i);
		     if(rs_ch == "1") ls_tot += l1_digit;
		else if(rs_ch == "2") ls_tot += l2_alpha;
		else if(rs_ch == "3") ls_tot += l3_accent;
	}
	if(sadd != null && sadd != "") ls_tot += sadd;
	for(i=0; i < sval.length; i++) {
		rs_ch = "" + sval.charAt(i);
		if(ls_tot.indexOf(rs_ch) < 0) { no_ch += rs_ch; break; }
		if(rs_ch == " ") nb_sp++;
	}
	if(no_ch != "" || nb_sp == sval.length) return false;
	return true;
}

function msg_AirportDep(opt) {
var ma_EN = new Array( "The Departure City/Airport name or code is mandatory!", "Invalid Departure City/Airport name or code!", "Bad characters in the Departure City/Airport field!" );
var ma_FR = new Array( "Le nom ou code Ville/Aéroport de Départ est obligatoire !", "Nom ou code Ville/Aéroport de Départ invalide !", "Caractères invalides dans le champ Ville/Aéroport de Départ !" );
var pmsg = "";
	if(opt <= 0 || opt > 3) opt = 2;
	opt -= 1;
	if(myLang == "FR") pmsg = ma_FR[opt]; else pmsg = ma_EN[opt];
	alert(pmsg);
}
function msg_AirportRet(opt) {
var ma_EN = new Array( "The Destination Airport name or code is mandatory!", "Invalid Destination Airport name or code!", "Bad characters in the Destination Airport field!" );
var ma_FR = new Array( "Le nom ou code Aéroport de Destination est obligatoire !", "Nom ou code Aéroport de Destination invalide !", "Caractères invalides dans le champ Aéroport de Destination !" );
var pmsg = "";
	if(opt <= 0 || opt > 3) opt = 2;
	opt -= 1;
	if(myLang == "FR") pmsg = ma_FR[opt]; else pmsg = ma_EN[opt];
	alert(pmsg);
}
function msg_AirportOpj() {
var m_EN = "The Destination City/Airport name or code must be the same as the Departure one"; 
var m_FR = "Le nom ou code Ville/Aéroport de Destination doit être égal à celui du Départ en mode open-jaw";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	alert(pmsg);
}
function msg_dtOutdatedDep() {
var m_EN = "The Outward Departure Date is now outdated!";
var m_FR = "La Date de Départ est maintenant périmée !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesDeparture").style.display = "block";
	document.getElementById("errorsDatesDepartureText").innerHTML = pmsg;
	document.getElementById("DDMMYY1").className = "txtFixError";
	
}
function msg_dtOutwardDep() {
var m_EN = "Invalid Outward Departure Date !";
var m_FR = "Date de Départ invalide !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesDeparture").style.display = "block";
	document.getElementById("errorsDatesDepartureText").innerHTML = pmsg;
	document.getElementById("DDMMYY1").className = "txtFixError";
}
function msg_dtNullOutwardDep(){

var m_EN = "Blanck Outward Departure Date !";
var m_FR = "Date de Départ vide !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesDeparture").style.display = "block";
	document.getElementById("errorsDatesDepartureText").innerHTML = pmsg;
	document.getElementById("DDMMYY1").className = "txtFixError";

}

function msg_dtReturnDep() {
var m_EN = "Invalid Return Departure Date !";
var m_FR = "Date de Retour invalide !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesArrival").style.display = "block";
	document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;
	document.getElementById("DDMMYY2").className = "txtFixError";
}

function msg_dtNullReturnDep() {
	var m_EN = "Blanck Return Departure Date !";
	var m_FR = "Date de Retour vide !";
	var pmsg = "";
		if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
		document.getElementById("errorsDatesArrival").style.display = "block";
		document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;
		document.getElementById("DDMMYY2").className = "txtFixError";
	}



function msg_tmReturnDep() {
var m_EN = "Invalid Return Departure time !";
var m_FR = "Heure de Retour invalide !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesArrival").style.display = "block";
	document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;
	
}
function msg_dtChronoOrder() {
var m_EN = "Please, check the chronological order of the Dates !";
var m_FR = "Svp, Vérifiez l'ordre chronologique des dates !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesArrival").style.display = "block";
	document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;
}
function msg_tmChronoOrder() {
var m_EN = "Please, check the chronological order of the Times !";
var m_FR = "Svp, Vérifiez l'ordre chronologique des heures !";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesArrival").style.display = "block";
	document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;

}
function msg_tmMinimumHours() {
var m_EN = "Please make sure there is a Minimum of 1 hour between outward and return travel times !\n(note times are local).";
var m_FR = "Assurez vous qu'un délai minimum de 1 heure sépare l'aller du retour !\n(NB: heures locales).";
var pmsg = "";
	if(myLang == "FR") pmsg = m_FR; else pmsg = m_EN;
	document.getElementById("errorsDatesArrival").style.display = "block";
	document.getElementById("errorsDatesArrivalText").innerHTML = pmsg;
}
function msg_Passengers(opt) {
var ma_EN = new Array( "Invalid choice of passengers. You have to select at least one passenger!", "Invalid total number of passengers!\n(The maximum possible is 9 passengers)", "Your passengers choice is not accepted.\nThere must be at least one adult to be with one or more children.", "Your passenger choice is not accepted.\nThere must be one adult at least for each infant." );
var ma_FR = new Array( "Choix de voyageurs invalide. Il faut au moins un passager !", "Nombre total de voyageurs invalide !\n(Le maximum possible est de 9 passagers)", "Choix de voyageurs non accepté.\nIl faut au minimum un adulte pour accompagner un ou plusieurs enfants.", "Choix de voyageurs non accepté.\nIl faut au minimum un adulte par bébé." );
var pmsg = "";
	if(opt <= 0 || opt > 4) opt = 2;
	opt -= 1;
	if(myLang == "FR") pmsg = ma_FR[opt]; else pmsg = ma_EN[opt];
	document.getElementById("errorsPassengers").style.display = "block";
	document.getElementById("errorsPassengersText").innerHTML = pmsg;
	if (opt == 3 || opt == 1){
		//document.getElementById("Adults").className = "selDrpError";
		document.getElementById("pAdults").className = "pDrpError";
		//document.getElementById("Infants").className = "selDrpError";
		document.getElementById("pInfants").className = "pDrpError";
	}
	if (opt == 1){
		//document.getElementById("Children").className = "selDrpError";
		document.getElementById("pChildren").className = "pDrpError";
	}
}

function msg_CityDeparture(opt){
	var m_EN = new Array( "The Destination City/Airport name or code is mandatory!", "Invalid Destination City/Airport name or code!\nPlease, make your selection in the dynamic list of proposals.");
	var m_FR = new Array( "Le nom ou code Ville/Aéroport de Destination est obligatoire !", "Nom ou code Ville/Aéroport de Destination invalide !\nVeuillez faire votre sélection dans la liste dynamique de propositions.");
	var pmsg = "";
	if(myLang == "FR") 
		pmsg = m_FR[opt]; 
	else 
		pmsg = m_EN[opt];
	document.getElementById("errorsCityDeparture").style.display = "";
	document.getElementById("errorsCityDepartureText").innerHTML = pmsg;
}

function frmCheckCityDepature(){
	document.getElementById("errorsCityDeparture").style.display = "none";
	document.getElementById("errorsCityDepartureText").innerHTML = "";
	
	var frm = document.searchAvailabilityForm;
	if(frm.citydeparture.value ==""){
		msg_CityDeparture(0);
		return false;
	}
	if (frm.citydeparture.value != frm.citydepartureSelected.value){
		msg_CityDeparture(1);
		return false;
	}
	return true;
}



function checkAirport() {
	//  Si OJ, Aeroport de retour final = Aeroport de depart initial
	var frm = document.searchAvailabilityForm;
	if(frm.AirportTo2 && frm.AirportFrom1) {
	   var oapFr1 = frm.AirportFrom1;
	   var oapTo2 = frm.AirportTo2;
	   var valFr1 = "";
	   var valTo2 = "";
	   if(oapFr1.type == 'select-one') {
		if(oapFr1.selectedIndex >= 0 &&
		   oapFr1.selectedIndex < oapFr1.length) {
			var idx = oapFr1.selectedIndex;
			var val = oapFr1.options[idx].value;
			var vch = "" + val.charAt(0);
			if(val != "" && vch != "-")  valFr1 = val;
		}
	   } else { valFr1 = oapFr1.value; }
	   if(oapTo2.type == 'select-one') {
		if(oapTo2.selectedIndex >= 0 &&
		   oapTo2.selectedIndex < oapTo2.length) {
			var idx = oapTo2.selectedIndex;
			var val = oapTo2.options[idx].value;
			var vch = "" + val.charAt(0);
			if(val != "" && vch != "-")  valTo2 = val;
		}
		if(valFr1 != "" && valFr1 != valTo2) {
			var tot = oapTo2.length;
			var idx = 0;
			for(var i=0; i<tot; i++) {
			   if(oapTo2.options[i].value == valFr1)
				{ idx = i; break; }
			}
			oapTo2.selectedIndex = idx;
		}
	   } else {
		valTo2 = oapTo2.value;
		if(valFr1 != "" && valFr1 != valTo2) oapTo2.value = valFr1;
	   }
	}
}
function frmCheckAirports(frm) {
	var oapFr1 = null;
	var oapTo1 = null;
	var oapFr2 = null;
	var oapTo2 = null;
	var valFr1 = "";
	var valTo2 = "";
	if(frm.AirportFrom1 && frm.AirportTo1) {
		oapFr1 = frm.AirportFrom1;
		oapTo1 = frm.AirportTo1;
		if(frm.AirportFrom2 && frm.AirportTo2) {
			oapFr2 = frm.AirportFrom2;
			oapTo2 = frm.AirportTo2;
		}
	}
	else return false;

	if(oapFr1 != null && oapTo1 != null) {
	   if(oapFr1.type == 'select-one') {
		if(oapFr1.selectedIndex >= 0 &&
		   oapFr1.selectedIndex < oapFr1.length) {
			var idx = oapFr1.selectedIndex;
			var val = oapFr1.options[idx].value;
			var vch = "" + val.charAt(0);
			valFr1 = val;
			if(val == "" || vch == "-") {
				msg_AirportDep(1);
				return false;
			}
		}
	   } else {
		valFr1 = oapFr1.value;
		if(oapFr1.value == "" || oapFr1.value.length <= 0) {
		   msg_AirportDep(1); 
		   return false;
		}
		if(oapFr1.value.length < 3) { // 3 to 5 char
		   msg_AirportDep(2);
		   return false;
		}
		if(!checkString(oapFr1.value,"123"," '(),-./[]")) {
		   msg_AirportDep(3);
		   return false;
		}
	   }

	   if(oapTo1.type == 'select-one') {
		if(oapTo1.selectedIndex >= 0 &&
		   oapTo1.selectedIndex < oapTo1.length) {
			var idx = oapTo1.selectedIndex;
			var val = oapTo1.options[idx].value;
			var vch = "" + val.charAt(0);
			if(val == "" || vch == "-") {
				msg_AirportRet(1);
				return false;
			}
		}
	   } else {
		if(oapTo1.value == "" || oapTo1.value.length <= 0) {
		   msg_AirportRet(1);
		   return false;
		}
		if(oapTo1.value.length < 3) {
		   msg_AirportRet(2);
		   return false;
		}
		if(!checkString(oapTo1.value,"123"," '(),-./[]")) {
		   msg_AirportRet(3);
		   return false;
		}
	   }

	   if(oapFr2 != null && oapTo2 != null) { // Si OJ
	      if(oapFr2.type == 'select-one') {
		if(oapFr2.selectedIndex >= 0 &&
		   oapFr2.selectedIndex < oapFr2.length) {
			var idx = oapFr2.selectedIndex;
			var val = oapFr2.options[idx].value;
			var vch = "" + val.charAt(0);
			if(val == "" || vch == "-") {
				msg_AirportDep(1);
				return false;
			}
		}
	      } else {
		if(oapFr2.value == "" || oapFr2.value.length <= 0) {
		   msg_AirportDep(1);
		   return false;
		}
		if(oapFr2.value.length < 3) { // 3 to 5 char
		   msg_AirportDep(2);
		   return false;
		}
		if(!checkString(oapFr2.value,"123"," '(),-./[]")) {
		   msg_AirportDep(3);
		   return false;
		}
	      }
	      if(oapTo2.type == 'select-one') {
		if(oapTo2.selectedIndex >= 0 &&
		   oapTo2.selectedIndex < oapTo2.length) {
			var idx = oapTo2.selectedIndex;
			var val = oapTo2.options[idx].value;
			var vch = "" + val.charAt(0);
			valTo2 = val;
			if(val == "" || vch == "-") {
				msg_AirportRet(1);
				return false;
			}
		}
	      } else {
		valTo2 = oapTo2.value;
		if(oapTo2.value == "" || oapTo2.value.length <= 0) {
		   msg_AirportRet(1);
		   return false;
		}
		if(oapTo2.value.length < 3) {
		   msg_AirportRet(2);
		   return false;
		}
		if(!checkString(oapTo2.value,"123"," '(),-./[]")) {
		   msg_AirportRet(3); 
		   return false;
		}
	      }
	      if(valTo2 != valFr1) {
	      	if(oapTo2.type == oapFr1.type) {
	      	   if(oapTo2.type == 'select-one')
			oapTo2.selectedIndex = oapFr1.selectedIndex;
		   else oapTo2.value = oapFr1.value;
		}
		else { msg_AirportOpj(); return false; }
	      }
	   } // fin OJ


	} else return false;

	return true;
}

function frmGetYYYYMMDD(frm,mode) {
	var yyymmdd = 0;
	var dd = 0;
	var mm = 0;
	var yy = 0;
	if(frm.DDMMYY1) {
		var v_dmy = "";
		if(mode == 2) v_dmy = frm.DDMMYY2.value;
		else          v_dmy = frm.DDMMYY1.value;
		if(v_dmy.length < 6) return yyyymmdd;
		if(v_dmy.length != 10) v_dmy = getDDMMYYYY(v_dmy);
		var t_dmy = v_dmy.split("/");
		for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd = parseInt(t_dmy[i],10);
			else if(i == 1) mm = parseInt(t_dmy[i],10);
			else if(i == 2) yy = parseInt(t_dmy[i],10);
		}
	}
	else if(frm.MMYY1) {
		var p_dd, p_my;
		var my = 0;
		if(mode == 2) { p_dd = frm.DD2; p_my = frm.MMYY2; }
		else          { p_dd = frm.DD1; p_my = frm.MMYY1; }
		dd = parseInt(p_dd.options[p_dd.selectedIndex].value,10);
		my = parseInt(p_my.options[p_my.selectedIndex].value,10);
		mm = Math.floor( (my / 10000) );
		yy = (my % 10000);
	}
	yyyymmdd = (yy*10000) + (mm*100) + dd;
	return yyyymmdd;
}

function frmCheckDate1(frm) {
	var dd1 = 0;
	var mm1 = 0;
	var yy1 = 0;
	document.getElementById("errorsDatesDeparture").style.display = "none";
	document.getElementById("errorsDatesDepartureText").innerHTML = "";
	document.getElementById("DDMMYY1").className = "txtFix";
	var DDMMYY1 = document.getElementById("DDMMYY1");
	if(DDMMYY1) {
		if(DDMMYY1.value.length < 6 && DDMMYY1.value.length > 0){
			msg_dtOutwardDep();
			return false;
		}
		if (DDMMYY1.value.length == 0){
			msg_dtNullOutwardDep();
			return false;
		}
			
		DDMMYY1.value = getDDMMYYYY(DDMMYY1.value);
		var t_dmy = DDMMYY1.value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd1 = parseInt(t_dmy[i],10);
			else if(i == 1) mm1 = parseInt(t_dmy[i],10);
			else if(i == 2) yy1 = parseInt(t_dmy[i],10);
		   }
		}
	}
	if(!isYMDvalid(yy1,mm1,dd1)) {
		msg_dtOutwardDep(); // Invalid Outward Departure Date
		return false;
	}
	
	return true;
}

function frmCheckDate2(frm) {
	document.getElementById("errorsDatesArrival").style.display = "none";
	document.getElementById("errorsDatesArrivalText").innerHTML = "";
	document.getElementById("DDMMYY2").className = "txtFix";
	if(frm.TripType) {
		var valtrp = getTrip(frm);
		if(valtrp == "O") return true;
	}
	var dd2 = 0;
	var mm2 = 0;
	var yy2 = 0;
	var DDMMYY2 = document.getElementById("DDMMYY2");
	if(DDMMYY2) {
		if(DDMMYY2.value.length < 6 && DDMMYY2.value.length > 0){
			msg_dtReturnDep();
			return false;
		}
		if (DDMMYY2.value.length == 0){
			msg_dtNullReturnDep();
			return false;
		}
		DDMMYY2.value = getDDMMYYYY(DDMMYY2.value);
		var t_dmy = DDMMYY2.value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd2 = parseInt(t_dmy[i],10);
			else if(i == 1) mm2 = parseInt(t_dmy[i],10);
			else if(i == 2) yy2 = parseInt(t_dmy[i],10);
		   }
		}
	}
	if(!isYMDvalid(yy2,mm2,dd2)) {
		msg_dtReturnDep(); // Invalid Return Departure Date
		return false;
	}
	var dd1 = 0;
	var mm1 = 0;
	var yy1 = 0;
	var DDMMYY1 = document.getElementById("DDMMYY1");
	if(DDMMYY1) {
		DDMMYY1.value = getDDMMYYYY(DDMMYY1.value);
		var t_dmy = DDMMYY1.value.split("/");
		if(t_dmy.length >= 3) {
		   for(var i=0; i<t_dmy.length; i++) {
			     if(i == 0) dd1 = parseInt(t_dmy[i],10);
			else if(i == 1) mm1 = parseInt(t_dmy[i],10);
			else if(i == 2) yy1 = parseInt(t_dmy[i],10);
		   }
		}
	}
	var ymd1 = (yy1*10000) + (mm1*100) + dd1;
	var ymd2 = (yy2*10000) + (mm2*100) + dd2;
	if(ymd2 < ymd1) {
		msg_dtChronoOrder(); // Check chronological order of the Dates
		return false;
	}
	return true;
}

function frmCheckPassengers(frm) {
	var padu = 0;
	var pchd = 0;
	var pinf = 0;
	var ptot = 0;
	var validate = true;
	if(frm.Adults) {
		var iadu = frm.Adults.selectedIndex;
		if(iadu < 0) iadu = 0;
		padu = parseInt(frm.Adults.options[iadu].value,10);
	}
	if(frm.Children) {
		var ichd = frm.Children.selectedIndex;
		if(ichd < 0) ichd = 0;
		pchd = parseInt(frm.Children.options[ichd].value,10);
	}
	if(frm.Infants) {
		var iinf = frm.Infants.selectedIndex;
		if(iinf < 0) iinf = 0;
		pinf = parseInt(frm.Infants.options[iinf].value,10);
	}
	document.getElementById("errorsPassengers").style.display = "none";
	document.getElementById("errorsPassengersText").innerHTML = "";
	
	document.getElementById("pAdults").className = "pDrp";
	document.getElementById("pInfants").className = "pDrp";
	document.getElementById("pChildren").className = "pDrp";
//	document.getElementById("Adults").className = "selDrp";
//	document.getElementById("Infants").className = "selDrp";
//	document.getElementById("Children").className = "selDrp";
	
	ptot = padu + pchd + pinf;
	if(ptot <= 0) {
		msg_Passengers(1); 
		validate = false;
	}
	
	if(ptot > 9) {
		msg_Passengers(2);
		validate = false;
	}
	if(pchd >= 1 && padu <= 0) {
		msg_Passengers(3);
		validate = false;
	}
	if(pinf >= 1 && padu < pinf) {
		msg_Passengers(4);
		validate = false;
	}
	return validate;
}



// Gestion du popup Airlines
var myArlIdx = 0;
var pop_Airlines = null;
function Airlines_close() {
	if(pop_Airlines != null && pop_Airlines.close) pop_Airlines.close();
}
function Airlines_result(arlcode) {
	if(!arlcode) return false;
	else {
		var frm = document.searchAvailabilityForm;
		var oal = null;
		if(myArlIdx == 3)
		     { if(frm.AirlineCode3) oal = frm.AirlineCode3; }
		else if(myArlIdx == 2)
		     { if(frm.AirlineCode2) oal = frm.AirlineCode2; }
		else { if(frm.AirlineCode1) oal = frm.AirlineCode1; }
		if(oal && oal.type != 'select-one') oal.value = aptcode;
		return true;
	}
}
function Airlines_call(idx) {
	var pop_target = "popAirlines";
	var pop_url = "/iata-airlines/airlines.php";
	var pop_prm = "";
	var frm = document.searchAvailabilityForm;
	var oal = null;

	if(myArlIdx == 3)
	     { if(frm.AirlineCode3) oal = frm.AirlineCode3; }
	else if(myArlIdx == 2)
	     { if(frm.AirlineCode2) oal = frm.AirlineCode2; }
	else { if(frm.AirlineCode1) oal = frm.AirlineCode1; }
	if(oal && oal.type != 'select-one') {
		pop_prm = "?" + "Airline=" + oal.value;
		if(frm.Lang) myLang = frm.Lang.value;
		if(myLang != "") pop_prm += "&" + "Lang=" + myLang;
	} else return;

	var c_yy = 200;
	var c_xx = 400;
	if(window.screen) {
		c_yy = window.screen.height/2;
		c_xx = window.screen.width/2;
	}
	c_yy -= (180/2); c_xx -= (180/2);

	pop_Airlines = window.open(pop_url+pop_prm,pop_target,"width=330,height=450,innerWidth=330,innerHeight=450,top=10,left=10,resizable=yes,scrollbars=yes,status=no,statusbar=no,titlebar=no,toolbar=no,menubar=no,location=no,directories=no,copyhistory=no,dependent=yes");
	pop_Airlines.opener = self;
}
function popAirlines(idx) { Airlines_call(idx); }



// Gestion du popup Airports
var myAptIti = 0;
var myAptWay = 0;
var pop_Airports = null;
function Airports_close() {
	if(pop_Airports != null && pop_Airports.close) pop_Airports.close();
}
function Airports_result(aptcode) {
	if(!aptcode) return false;
	else {
		var frm = document.searchAvailabilityForm;
		var oap = null;
		if(myAptIti >= 2) {
			if(myAptWay == 2)
			     { if(frm.AirportTo2)   oap = frm.AirportTo2; }
			else { if(frm.AirportFrom2) oap = frm.AirportFrom2; }
		} else if(myAptIti == 1) {
			if(myAptWay == 2)
			     { if(frm.AirportTo1)   oap = frm.AirportTo1; }
			else { if(frm.AirportFrom1) oap = frm.AirportFrom1; }
		}
		if(oap && oap.type != 'select-one') oap.value = aptcode;
		return true;
	}
}
function Airports_call(iti,mode) {
	var pop_target = "popAirports";
	var pop_url = "/iata-oldairports/airports.php";
	var pop_prm = "";
	var frm = document.searchAvailabilityForm;
	var oap = null;

	myAptIti = iti;
	myAptWay = mode;
	if(myAptIti >= 2) {
		if(myAptWay == 2)
		     { if(frm.AirportTo2)   oap = frm.AirportTo2; }
		else { if(frm.AirportFrom2) oap = frm.AirportFrom2; }
	} else if(myAptIti == 1) {
		if(myAptWay == 2)
		     { if(frm.AirportTo1)   oap = frm.AirportTo1; }
		else { if(frm.AirportFrom1) oap = frm.AirportFrom1; }
	}
	if(oap && oap.type != 'select-one') {
		pop_prm = "?" + "Airport=" + oap.value;
		if(frm.Lang) myLang = frm.Lang.value;
		if(myLang != "") pop_prm += "&" + "Lang=" + myLang;
	} else return;

	var c_yy = 200;
	var c_xx = 400;
	if(window.screen) {
		c_yy = window.screen.height/2;
		c_xx = window.screen.width/2;
	}
	c_yy -= (180/2); c_xx -= (180/2);

	pop_Airports = window.open(pop_url+pop_prm,pop_target,"width=330,height=450,innerWidth=330,innerHeight=450,top=10,left=10,resizable=yes,scrollbars=yes,status=no,statusbar=no,titlebar=no,toolbar=no,menubar=no,location=no,directories=no,copyhistory=no,dependent=yes");
	pop_Airports.opener = self;

}
function popAirportsDep(iti) { Airports_call(iti,1); }
function popAirportsArr(iti) { Airports_call(iti,2); }



// Gestion du popup Calendrier
var myCalWay = 0;
var myCalYmdMin = 0;
var myCalYmdMax = 0;
function Cal_setup() {
	if(myCalYmdMin != 0) return;
	// var today = new Date( mySystemTime );
	var nowY = myTodayDate.getFullYear();
	var nowM = myTodayDate.getMonth()+1;
	var nowD = myTodayDate.getDate();
	var lastDay = MaxdMonth[nowM-1];
	if(nowM==2 && isLeapYear(nowY)) lastDay = 29; // February on Leap year
	myCalYmdMax = ((nowY + myTripYRmore)*10000)+ (nowM*100) + nowD;
	// nowD += myTripDDmore; en attendant de modifier le calendrier
	if(nowD > lastDay) {
		nowD -= lastDay;
		++nowM; if(nowM > 12) { nowM = 1; ++nowY; }
	}
	myCalYmdMin = (nowY*10000) + (nowM*100) + nowD;
}

function Cal_statusHandler(date, y, m , d) {
	var ymdDate = (y * 10000) + ((m + 1) * 100) + d;
	if(ymdDate < myCalYmdMin || ymdDate >= myCalYmdMax) return true;
	return false;
}

// And this gets called when the end-user clicks on the _selected_ date,
// or clicks on the "Close" button.  It just hides the calendar without
// destroying it.
function Cal_closeHandler(cal) {
	cal.hide();  // hide the calendar
	// cal.destroy();
	_dynarch_popupCalendar = null;
}

// This function gets called when the end-user clicks on some date.
function Cal_selected(cal, date) {
	// if we add this call we close the calendar on single-click.
	if (cal.dateClicked) {
		cal.sel.value = date; // update the date in the input field.
		cal.callCloseHandler();
		var frm = document.searchAvailabilityForm;
		if(myCalWay == 2) checkDate2(frm,0); else checkDate1(frm,0);
	}
}

// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function Cal_show(idIF, idOF, formatIF, align, firstDay, date, ymin, ymax, statusFunc) {
	var elIF = document.getElementById(idIF);
	var elOF = null;
	if (idOF != null) {
	    if (typeof idOF == "string") elOF = document.getElementById(idOF);
	}

	if (_dynarch_popupCalendar != null) {
		// we already have some calendar created
		_dynarch_popupCalendar.hide(); // so we hide it first.
	} else {
		// first-time call, create the calendar.
		var cal = new Calendar(firstDay,null,Cal_selected,Cal_closeHandler);
		cal.electric = true;
		cal.weekNumbers = false;
		cal.showsTime = false;
		cal.showsOtherMonths = false;
		if (typeof ymin == "number" && typeof ymax == "number") {
			cal.setRange(ymin,ymax); // min,max year allowed.
		}
		cal.setDateStatusHandler(statusFunc);

		_dynarch_popupCalendar = cal; // remember it in the global var
		if (elOF != null)  cal.create(elOF); // FLAT
		else  cal.create();
	}

	if (_dynarch_popupCalendar != null) {
		// - Set date format
		// - Try to parse field
		// - Inform it what input field we use
		_dynarch_popupCalendar.setDateFormat(formatIF);
		_dynarch_popupCalendar.parseDate(elIF.value);
		_dynarch_popupCalendar.sel = elIF;
		// show the calendar
		if (elOF != null) { // FLAT
			_dynarch_popupCalendar.show();
		} else { // POPUP
			_dynarch_popupCalendar.showAtElement(elIF,align);
		}
	}
}

function Calendar_result(year,month,day) {
	if(!(year>=2000 && month>=1 && month<=12 && day>=1 && day<=31))
		return false;
	var frm = document.searchAvailabilityForm;
	if(myCalWay == 2) {
		var ybeg = year - myTripYRless; // Year less
		var yend = year + myTripYRmore; // Year more
		initDate2(frm,ybeg,yend,year,month,day,false);
	} else {
		var ybeg = year - myTripYRless; // Year less
		var yend = year + myTripYRmore; // Year more
		initDate1(frm,ybeg,yend,year,month,day,false);
		checkDate1(frm,0);
	}
	return true;
}
function Calendar_call(mode) {
	var frm = null;
	var f_dmy = null;
	var f_my = null;
	var f_nam = null;
	var formatIF = "%d/%m/%Y";
	var month = 0;
	var year = 0;

	myCalWay = mode;
	if(document.searchAvailabilityForm) {
		frm = document.searchAvailabilityForm;
		if(frm.DDMMYY1) {
		   if(myCalWay == 2)
		        { f_dmy = frm.DDMMYY2; f_nam = 'DDMMYY2'; }
		   else { f_dmy = frm.DDMMYY1; f_nam = 'DDMMYY1'; }
		}
		else if(frm.MMYY1) {
		   if(myCalWay == 2)
		        { f_my = frm.MMYY2; f_nam = 'MMYY2'; }
		   else { f_my = frm.MMYY1; f_nam = 'MMYY1'; }
		}
	}

	if(f_dmy != null) {
		var v_dmy = f_dmy.value;
		if(v_dmy.length >= 6) {
		   var t_dmy = v_dmy.split("/");
		   if(t_dmy.length >= 3) {
			formatIF = "%d/%m/%Y";
			for(var i=0; i<t_dmy.length; i++) {
				     if(i == 1) month = parseInt(t_dmy[i],10);
				else if(i == 2) year  = parseInt(t_dmy[i],10);
			}
		   }
		   else if(v_dmy.length >= 6) {
			formatIF = "%d%m%Y";
			month = parseInt(v_dmy.substring(2,4),10);
			year  = parseInt(v_dmy.substring(4,7),10);
		   }
		}
	}
	else if(f_my != null) {
		var v_my = parseInt(f_my.options[f_my.selectedIndex].value,10);
		formatIF = "%m%Y";
		month = Math.floor( (v_my / 10000) ); year = (v_my % 10000);
	}
	else return;

	Cal_setup(); // pour initialiser myCalYmdMin et Max
	var ymin = Math.floor( (myCalYmdMin / 10000) );
	var ymax = Math.floor( (myCalYmdMax / 10000) );

	Cal_show( f_nam, null, formatIF, "Bl", 1, myTodayDate, ymin, ymax, Cal_statusHandler );

}
function popCalendDep() { Calendar_call(1); }
function popCalendRet() { if(myTripType != "0") Calendar_call(2); }


// Added By Fedi -------------------------------------



function displayListHotels(){
	var islands = document.getElementById("islands");
	if (islands) {
	var selectedValue = islands.value;
	if (selectedValue == "PTP"){

		document.getElementById("hotelsGL").style.display = "block";
		document.getElementById("hotelsMR").style.display = "none";
		document.getElementById("hotelsSM").style.display = "none";
		document.getElementById("hotelsSB").style.display = "none";
		document.getElementById("hotelsAN").style.display = "none";
	}
	else if (selectedValue == "FDF"){
		document.getElementById("hotelsSB").style.display = "none";
		document.getElementById("hotelsMR").style.display = "block";
		document.getElementById("hotelsSM").style.display = "none";
		document.getElementById("hotelsGL").style.display = "none";
		document.getElementById("hotelsAN").style.display = "none";
	}
	else if (selectedValue== "SXM"){
		document.getElementById("hotelsSM").style.display = "block";
		document.getElementById("hotelsSB").style.display = "none";
		document.getElementById("hotelsGL").style.display = "none";
		document.getElementById("hotelsMR").style.display = "none";
		document.getElementById("hotelsAN").style.display = "none";
	}
	else if (selectedValue == "SBH"){
		document.getElementById("hotelsSB").style.display = "block";
		document.getElementById("hotelsSM").style.display = "none";
		document.getElementById("hotelsGL").style.display = "none";
		document.getElementById("hotelsMR").style.display = "none";
		document.getElementById("hotelsAN").style.display = "none";
	}
	else if (selectedValue == "FDF"){
		document.getElementById("hotelsSB").style.display = "block";
		document.getElementById("hotelsSM").style.display = "none";
		document.getElementById("hotelsGL").style.display = "none";
		document.getElementById("hotelsMR").style.display = "none";
		document.getElementById("hotelsAN").style.display = "none";
	}
	else if (selectedValue == "ANU"){
		document.getElementById("hotelsSB").style.display = "none";
		document.getElementById("hotelsSM").style.display = "none";
		document.getElementById("hotelsGL").style.display = "none";
		document.getElementById("hotelsMR").style.display = "none";
		document.getElementById("hotelsAN").style.display = "block";
	}
	}
}
	
	
function valFormTRIP() { // Validation formulaire TRIP
	var frm = document.searchAvailabilityForm;
	var validateForm = true;
	
	if(!frmCheckCityDepature())
		validateForm = false;
 	if(!frmCheckDate1(frm))    
 		validateForm = false;
 	if(!frmCheckDate2(frm))    
 		validateForm = false;
 	if(!frmCheckPassengers(frm)) 
 		validateForm = false;
	return validateForm;
}

function butSubmitTRIP() { 
	if(valFormTRIP()){
		if (document.getElementById("tripNonStop")){
		
			if (document.getElementById("tripNonStop").checked){
				document.getElementById("tripNonStopValue").value = "true";
			}	
			else{
				document.getElementById("tripNonStopValue").value = "false";
			}
		}
		document.searchAvailabilityForm.submit();
	}
		
		
}


function myLoad() {
	var myTripStatus = "RESET"; // RESET or CONTEXT
	if(myTripStatus.toUpperCase() == "CONTEXT"){ 
		checkDates(); 
	    initTrip(); 
	}
	else { 
		initDates();  
		initTrip(); 
	}
	isLoaded = true;
}

function citySearch() {
	$(function(){
	    setAutoComplete("citydeparture", "results", "http://www.deshotelsetdesiles.com/hotel-guadeloupe/iata_cities.php?Site=dhdi&Lang="+myLang+"&Airports=no&Types=major,secondary&Search=");
	});
}

