var gsCty1 = "", gsCty2 = "", gsCty3 = "", gsAccom = "";

// ------------------------------------------------------------------
// Save the values of the dropdowns
// ------------------------------------------------------------------
function saveFormDetails() {
	if (gsGeogCty1 == 'Y') {$f('BackCTY1Code').value = $f('CTY1_ID').value;}
	if (gsGeogCty2 == 'Y') {$f('BackCTY2Code').value = $f('CTY2_ID').value;}
	$f('BackCTY3Code').value = $f('CTY3_ID').value;
	if ($f('ACC_ID')) {$f('BackACCCode').value = $f('ACC_ID').value;}
}

// ------------------------------------------------------------------
// Build child and infant ages for request
// ------------------------------------------------------------------
function ds_buildPaxAge() {
	/*var ldChdDate = getDateFromFormat($f("ST_DT").value, gsDateFormat, true);
	ldChdDate.setFullYear(ldChdDate.getFullYear() - 10);
	var lsChdDate = formatDate(ldChdDate, "dd-MM-yyyy");

	var ldInfDate = getDateFromFormat($f("ST_DT").value, gsDateFormat, true);
	ldInfDate.setFullYear(ldInfDate.getFullYear() - 1);
	var lsInfDate = formatDate(ldInfDate, "dd-MM-yyyy");

	var iPxC = 	Number($('#PXC').val());
	var iPxI = 	Number($('#PXI').val());
	var lsXML = "<PAXAGES>";
	if (iPxC > 0) {
		lsXML += "<CHD>";
		for (var i=1; i<=iPxC; i++) {lsXML += "<DOB>" + xmlDateValueBuild(lsChdDate, '') + "</DOB>";}
		lsXML += "</CHD>";
	}
	if (iPxI > 0) {
		lsXML += "<INF>";
		for (var i=1; i<=iPxI; i++) {lsXML += "<DOB>" + xmlDateValueBuild(lsInfDate, '') + "</DOB>";}
		lsXML += "</INF>";
	}
	lsXML += "</PAXAGES>";
	return lsXML;*/

	var ldChdDate = getDateFromFormat(getDateStr("ST"), gsDateFormat, true);
	ldChdDate.setFullYear(ldChdDate.getFullYear() - 10);
	var lsChdDate = formatDate(ldChdDate, "dd-MM-yyyy");

	var ldInfDate = getDateFromFormat(getDateStr("ST"), gsDateFormat, true);
	ldInfDate.setFullYear(ldInfDate.getFullYear() - 1);
	var lsInfDate = formatDate(ldInfDate, "dd-MM-yyyy");

	var iPxC = 	Number($('#PXC').val());
	var iPxI = 	Number($('#PXI').val());
	var lsXML = "<PAXAGES>";
	if (iPxC > 0) {
		lsXML += "<CHD>";
		for (var i=1; i<=iPxC; i++) {lsXML += "<DOB>" + xmlDateValueBuild(lsChdDate, '') + "</DOB>";}
		lsXML += "</CHD>";
	}
	if (iPxI > 0) {
		lsXML += "<INF>";
		for (var i=1; i<=iPxI; i++) {lsXML += "<DOB>" + xmlDateValueBuild(lsInfDate, '') + "</DOB>";}
		lsXML += "</INF>";
	}
	lsXML += "</PAXAGES>";
	return lsXML;
}

// ------------------------------------------------------------------
// Display end date and day name
// ------------------------------------------------------------------
function setEndDate() {
	/*if (isDate($f("ST_DT").value, gsDateFormat)) {
		setPanelErrorStatus(false);
		var ldDepDate = getDateFromFormat($f("ST_DT").value, gsDateFormat, true);
		$f('ST_DT_NAME').innerHTML = formatDate(ldDepDate, "E");
		if (ldDepDate != 0) {
			var alNewDays = ldDepDate.getDate();
			alNewDays += Number($f('STAY').value);
			ldDepDate.setDate(alNewDays);
		}
		$f('ENDDT_NAME').value = formatDate(ldDepDate, "E");
		$f('ENDDT_DD').value = formatDate(ldDepDate, "dd");
		$f('ENDDT_MMYY').value = formatDate(ldDepDate, "MM/yyyy");
	} else {
		setPanelErrorStatus(true);
		$f('ST_DT_NAME').innerHTML = "";
		$f('ENDDT_NAME').value = "";
		$f('ENDDT_DD').value = "";
		$f('ENDDT_MMYY').value = "";
	}*/

	if (isDate(getDateStr("ST"), gsDateFormat)) {
		setPanelErrorStatus(false);
		var ldDepDate = getDateFromFormat(getDateStr("ST"), gsDateFormat, true);
		$f('ST_DT_NAME').innerHTML = formatDate(ldDepDate, "E");
		if (ldDepDate != 0) {
			var alNewDays = ldDepDate.getDate();
			alNewDays += Number($f('STAYN').value);
			ldDepDate.setDate(alNewDays);
		}
		$f('ENDDT_NAME').value = formatDate(ldDepDate, "E");
		$f('ENDDT_DD').value = formatDate(ldDepDate, "dd");
		$f('ENDDT_MMYY').value = formatDate(ldDepDate, "MM/yyyy");
	} else {
		setPanelErrorStatus(true);
		$f('ST_DT_NAME').innerHTML = "";
		$f('ENDDT_NAME').value = "";
		$f('ENDDT_DD').value = "";
		$f('ENDDT_MMYY').value = "";
	}
}


function PsetEndDate() {

	if (isDate(getDateStr("PST"), gsDateFormat)) {
		setPanelErrorStatus(false);
		var ldDepDate = getDateFromFormat(getDateStr("PST"), gsDateFormat, true);
		$f('PST_DT_NAME').innerHTML = formatDate(ldDepDate, "E");
		if (ldDepDate != 0) {
			var alNewDays = ldDepDate.getDate();
			alNewDays += Number($f('PSTAYN').value);
			ldDepDate.setDate(alNewDays);
		}
		$f('PENDDT_NAME').value = formatDate(ldDepDate, "E");
		$f('PENDDT_DD').value = formatDate(ldDepDate, "dd");
		$f('PENDDT_MMYY').value = formatDate(ldDepDate, "MM/yyyy");
	} else {
		setPanelErrorStatus(true);
		$f('PST_DT_NAME').innerHTML = "";
		$f('PENDDT_NAME').value = "";
		$f('PENDDT_DD').value = "";
		$f('PENDDT_MMYY').value = "";
	}
}



// ------------------------------------------------------------------
// Toggle error message status
// ------------------------------------------------------------------
function setPanelErrorStatus(abError) {
	if (abError) {
		setClassName($f('srchPanelDateSection'), "formSectionError");
		setClassName($f('srchPanelDateSection').getElementsByTagName("h4")[0], "info");
		setClassName($f('ENDDT_NAME'), "weekdayError");
		setClassName($f('ENDDT_DD'), "dayError");
		setClassName($f('ENDDT_MMYY'), "monthYearError");
	} else {
		setClassName($f('srchPanelDateSection'), "formSection");
		setClassName($f('srchPanelDateSection').getElementsByTagName("h4")[0], "");
		setClassName($f('ENDDT_NAME'), "weekday");
		setClassName($f('ENDDT_DD'), "day");
		setClassName($f('ENDDT_MMYY'), "monthYear");
	}
}

// ------------------------------------------------------------------
// validate the page
// ------------------------------------------------------------------
function ds_validate() {
	if (gdMinDate == 0) gdMinDate = gdTodaysDate;
	if (!isDate(getDateStr("ST"), gsDateFormat)) {
		setPanelErrorStatus(true);
		return false;
	}
	var ldCheckDate = getDateFromFormat(getDateStr("ST"), gsDateFormat, true);
	
	if (ldCheckDate < gdMinDate) {
		setPanelErrorStatus(true);
		return setFocus("Departure date cannot be before " + formatDate(gdMinDate, "dd-NNN-yyyy"), $f('STDD'));
	}
	var alNewDays = ldCheckDate.getDate();
	alNewDays += Number($f('STAY').value);
	ldCheckDate.setDate(alNewDays);

	var loAdults = $f('PPXA');
	var loChildren = $f('PPXC');
	var loInfants = $f('PPXI');
	var llAduVal = Number(loAdults.value);
	var llChdVal = Number(loChildren.value);
	var llInfVal = Number(loInfants.value);
	var lsCty1 = (gsGeogCty1 == 'Y') ? $f('CTY1_ID').value : '';
	var lsCty2 = (gsGeogCty2 == 'Y') ? $f('CTY2_ID').value : '';
	var loCty1 = (gsGeogCty1 == 'Y') ? $f('CTY1_ID') : (gsGeogCty2 == 'Y') ? $f('CTY2_ID') : $f('CTY3_ID');
	var lsAccom = ($f('ACC_ID')) ? $f('ACC_ID').value : '';
	if (($f('CTY3_ID').value == "") && (lsCty2 == "") && (lsCty1 == "") && (lsAccom == ""))
		if ($f('ACC_ID'))
			return setFocus("Please select location or an accommodation", loCty1);
		else
			return setFocus("Please select location", loCty1);
	return true;
}

// ------------------------------------------------------------------
// build search request
// ------------------------------------------------------------------
function panelSearchRequest() {
	if (ds_validate()) {
		var xml = "<BKGFLOWREQUEST>";
		xml += XmlControlDets();
		xml += "<APPLICDETS>";
		xml += "<FUNCTION>R</FUNCTION>";
		xml += "<REQKEY>";
		xml += "<STDD>" + $f('ST_DT').value.substr(0, 2) + "</STDD>";
		xml += "<STMM>" + $f('ST_DT').value.substr(3, 2) + "</STMM>";
		xml += "<STYYYY>" + $f('ST_DT').value.substr(6, 4) + "</STYYYY>";
		xml += "<STAY>" + $f('STAY').value + "</STAY>";
		xml += "<PXA>" + $f('PXA').value + "</PXA>";
		xml += "<PXC>" + $f('PXC').value + "</PXC>";
		xml += "<PXI>" + $f('PXI').value + "</PXI>";
		xml += "<ACC_FLX>" + isChecked("ACC_FLX") + "</ACC_FLX>";
		if (gsGeogCty1 == 'Y') {xml += "<CTY1_ID>" + $f('CTY1_ID').value + "</CTY1_ID>";}
		if (gsGeogCty2 == 'Y') {xml += "<CTY2_ID>" + $f('CTY2_ID').value + "</CTY2_ID>";}
		xml += "<CTY3_ID>" + $f('CTY3_ID').value + "</CTY3_ID>";
		if ($f('ACC_ID')) xml += "<ACC_ID>" + $f('ACC_ID').value + "</ACC_ID>";
		xml += ds_buildPaxAge();
		xml += "</REQKEY>";
		xml += addFlowCtl('MSEX');
		xml += "</APPLICDETS>";
		xml += "</BKGFLOWREQUEST>";

		document.frmXmlSubmit.XML.value = xml;
		saveFormDetails();
		document.frmXmlSubmit.submit();
	}
}