function valForm(thisForm) {
	// check destination entered for inclusive tour
	if (document.getElementById("sDAL").style.display != "none") {
		if (thisForm.frm_searchDestIT.selectedIndex == 0) {
			alert("Please enter where you would like to take your island holiday.");
			thisForm.frm_searchDestIT.focus();
			return false;
		}
	}
	// check destination entered for accommodation only
	if (document.getElementById("sDL").style.display != "none") {
		if (thisForm.frm_searchDestAO.selectedIndex == 0) {
			alert("Please enter where you would like to stay.");
			thisForm.frm_searchDestAO.focus();
			return false;
		}
	}
	// check destination entered for flight only
	if (document.getElementById("sDA").style.display != "none") {
		if (thisForm.frm_searchDestFO.selectedIndex == 0) {
			alert("Please enter where you wish to fly to.");
			thisForm.frm_searchDestFO.focus();
			return false;
		}
	}
	// check departing/arrival date entered
	if (thisForm.frm_searchDeptDate.value == "dd/mm/yyyy") {
		var str_dateText = "depart.";
		if (thisForm.frm_searchType[1].checked == true) {
			var str_dateText = "arrive.";
		}
		alert("Please select the date you wish to " + str_dateText);
		thisForm.frm_searchDeptDate.focus();
		return false;
	}
	// check returning/leaving date entered
	if (thisForm.frm_searchReturnDate.value == "dd/mm/yyyy") {
		var str_dateText = "return.";
		if (thisForm.frm_searchType[1].checked == true) {
			var str_dateText = "leave.";
		}
		alert("Please select the date you wish to " + str_dateText);
		thisForm.frm_searchReturnDate.focus();
		return false;
	}
	// check return date is later than departure date
	var str_date1_Text = "departure";
	var str_date2_Text = "return";
	if (thisForm.frm_searchType[1].checked == true) {
		var str_date1_Text = "arrival";
		var str_date2_Text = "leaving";
	}
	var date_departure = thisForm.frm_searchDeptDate.value;
	var firstSlash = date_departure.indexOf('/');
	var secondSlash = date_departure.indexOf('/',firstSlash+1);
	var thisDay = date_departure.substr(0,firstSlash);
	var thisMonth = parseInt(date_departure.substr(firstSlash+1, secondSlash-firstSlash-1)) - 1;
	var thisYear = date_departure.substr(secondSlash+1,4);
	var date_1 = new Date(thisYear, thisMonth, thisDay)
	var date_return = thisForm.frm_searchReturnDate.value;
	var firstSlash = date_return.indexOf('/');
	var secondSlash = date_return.indexOf('/',firstSlash+1);
	var thisDay = date_return.substr(0,firstSlash);
	var thisMonth = parseInt(date_return.substr(firstSlash+1, secondSlash-firstSlash-1)) - 1;
	var thisYear = date_return.substr(secondSlash+1,4);
	var date_2 = new Date(thisYear, thisMonth, thisDay)
	if (date_1 >= date_2) {
		alert("Please enter a "+str_date2_Text+" date later than your "+str_date1_Text+" date.");
		thisForm.frm_searchReturnDate.focus();
		return false;
	}
	return true;
}

// functions to dynamically generate the resorts list
if (window.XMLHttpRequest) { // code for Mozilla, etc.
	var xmlHttpResorts = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // code for IE
	var xmlHttpResorts = new ActiveXObject("Msxml2.XMLHTTP");
}
function getResorts(str_countryCode, int_selectedResort) {
	sendXmlRequest(
		xmlHttpResorts, 
		'/ajax/xml_resorts.cfm?str_countryCode='+str_countryCode+'&int_selectedResort='+int_selectedResort, 
		gotResorts
	);
}
function gotResorts() {
	if (xmlHttpResorts.readyState == 1) {
		var int_resortSelect = document.getElementById("frm_searchDestResort");
		emptySelectList(int_resortSelect);
		appendSelectOption(int_resortSelect, "", "Loading...", 1);
	} else if (xmlHttpResorts.readyState == 4) {
		if (checkValidXmlResponse(xmlHttpResorts)) {
			var xmlDoc = xmlHttpResorts.responseXML.documentElement;
			var xml_Resorts = xmlDoc.getElementsByTagName("resort");
			var int_resortSelect = document.getElementById("frm_searchDestResort");
			emptySelectList(int_resortSelect);
			if (xml_Resorts.length != 0) {
				int_resortSelect.disabled = false;
				appendSelectOption(int_resortSelect, "0", "All resorts", 1);
				var i;
				for (i=0; i<xml_Resorts.length; i++) {
					appendSelectOption(int_resortSelect, xml_Resorts[i].getAttribute('country')+"|"+xml_Resorts[i].getAttribute('airport')+"|"+xml_Resorts[i].getAttribute('id'), xml_Resorts[i].getAttribute('name'), xml_Resorts[i].getAttribute('selected'));
				}
			//	int_resortSelect[0].selected = true;
			} else {
				appendSelectOption(int_resortSelect, "0", "All resorts", 1);
				int_resortSelect.disabled = true;
			}
		} else {
			//alert('Failed to load resorts list, please re-select country');
		}
	}
}

// functions to dynamically generate the resorts list
if (window.XMLHttpRequest) { // code for Mozilla, etc.
	var xmlHttpHotels = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // code for IE
	var xmlHttpHotels = new ActiveXObject("Msxml2.XMLHTTP");
}

//new code below
function getHotels(str_countryCode, int_selectedResort, int_selectedHotel) {
	sendXmlRequest(
		xmlHttpHotels, 
		'/ajax/xml_hotels.cfm?str_countryCode='+str_countryCode+'&int_selectedResort='+int_selectedResort+'&int_selectedHotel='+int_selectedHotel, 
		gotHotels
	);
}

function gotHotels() {
	if (xmlHttpHotels.readyState == 1) {
		var int_hotelSelect = document.getElementById("frm_searchDestHotel");
		emptySelectList(int_hotelSelect);
		appendSelectOption(int_hotelSelect, "", "Loading...", 1);
	} else if (xmlHttpHotels.readyState == 4) {
		if (checkValidXmlResponse(xmlHttpHotels)) {
			var xmlDoc = xmlHttpHotels.responseXML.documentElement;
			var xml_Hotels = xmlDoc.getElementsByTagName("hotel");
			var int_hotelSelect = document.getElementById("frm_searchDestHotel");
			emptySelectList(int_hotelSelect);
			if (xml_Hotels.length != 0) {
				int_hotelSelect.disabled = false;
				appendSelectOption(int_hotelSelect, "0", "All hotels", 1);
				var i;
				for (i=0; i<xml_Hotels.length; i++) {
					appendSelectOptionHotel(int_hotelSelect, xml_Hotels[i].getAttribute('country')+"|"+xml_Hotels[i].getAttribute('airport')+"|"+xml_Hotels[i].getAttribute('resort')+"|"+xml_Hotels[i].getAttribute('id'), xml_Hotels[i].getAttribute('name'), xml_Hotels[i].getAttribute('selected'));
				}
			//	int_resortSelect[0].selected = true;
			} else {
				appendSelectOption(int_hotelSelect, "0", "All hotels", 1);
				int_hotelSelect.disabled = true;
			}
		} else {
			//alert('Failed to load hotel list, please re-select ');
		}
	}
}


