timeDifference = function(startDate, endDate) {
	
	date2 = startDate;
	date1 = endDate;
	
	laterdate = date1.split("-");
	laterD = laterdate[0];
	laterM = laterdate[1];
	laterY = laterdate[2];
	
	earlierdate = date2.split("-");
	earlierD = earlierdate[0];
	earlierM = earlierdate[1];
	earlierY = earlierdate[2];
	
	var laterdate = new Date(laterY,laterM,laterD);
	var earlierdate = new Date(earlierY,earlierM,earlierD);
	
	var difference = laterdate.getTime() - earlierdate.getTime();
	
	var daysDifference = Math.floor(difference / 1000 / 60/ 60 / 24);
	difference -= daysDifference * 1000 * 60 * 60 * 24
	var hoursDifference = Math.floor(difference / 1000 / 60 / 60);
	difference -= hoursDifference * 1000 * 60 * 60
	var minutesDifference = Math.floor(difference / 1000 / 60);
	difference -= minutesDifference * 1000 * 60
	var secondsDifference = Math.floor(difference / 1000);
	
	return daysDifference;

}

function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		//alert("Invalid E-mail ID")
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		//alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 return true					
}

function validate_booking() {
		
	// enquire_type
	if (document.getElementById("enquire_type").value == 'select') {
		alert("Please select an enquire type.");
		document.getElementById("enquire_type_label").style.color = "red";
		document.getElementById("enquire_type").focus();
		return false;
	} else {
		document.getElementById("enquire_type_label").style.color = "black";
	}
	
	// title
	if (document.getElementById("title").value == 'select') {
		alert("Please select a title.");
		document.getElementById("title_label").style.color = "red";
		document.getElementById("title").focus();
		return false;
	} else {
		document.getElementById("title_label").style.color = "black";
	}
	
	// first_name
	if (document.getElementById("first_name").value.length < 1) {
		alert("Please enter a valid first name.");
		document.getElementById("first_name_label").style.color = "red";
		document.getElementById("first_name").focus();
		return false;
	} else {
		document.getElementById("first_name_label").style.color = "black";
	}
	
	// last_name
	if (document.getElementById("last_name").value.length < 1) {
		alert("Please enter a valid last name.");
		document.getElementById("last_name_label").style.color = "red";
		document.getElementById("last_name").focus();
		return false;
	} else {
		document.getElementById("last_name_label").style.color = "black";
	}
	
	// email_1 (validate)
	if (echeck(document.getElementById("email_1").value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById("email_1_label").style.color = "red";
		document.getElementById("email_1").focus();
		return false;
	} else {
		document.getElementById("email_1_label").style.color = "black";
	}
	
	// email_2
	if (document.getElementById("email_2").value != document.getElementById("email_1").value) {
		alert("Please make sure the email addresses are the same.");
		document.getElementById("email_2_label").style.color = "red";
		document.getElementById("email_2").focus();
		return false;
	} else {
		document.getElementById("email_2_label").style.color = "black";
	}
	
	// adult_number
	if (document.getElementById("adult_number").value == 0) {
		alert("Please select the number of adults.");
		document.getElementById("adult_number_label").style.color = "red";
		document.getElementById("adult_number").focus();
		return false;
	} else {
		document.getElementById("adult_number_label").style.color = "black";
	}
	
	// arrival_date
	if (document.getElementById("arrival_date").value.length < 10) {
		alert("Please enter a valid arrival date.");
		document.getElementById("arrival_date_label").style.color = "red";
		document.getElementById("arrival_date").focus();
		return false;
	} else {
		document.getElementById("arrival_date_label").style.color = "black";
	}
	
	// departure_date
	if (document.getElementById("departure_date").value.length < 10) {
		alert("Please enter a valid departure date.");
		document.getElementById("departure_date_label").style.color = "red";
		document.getElementById("departure_date").focus();
		return false;
	} else {
		document.getElementById("departure_date_label").style.color = "black";
	}
	
	// departure_date
	if (timeDifference(document.getElementById("arrival_date").value, document.getElementById("departure_date").value) < 1) {
		alert('Please make sure that your departure date is correct.');
		document.getElementById("departure_date_label").style.color = "red";
		document.getElementById("departure_date").focus();
		return false;
	} else {
		document.getElementById("departure_date_label").style.color = "black";
	}
	
	// contact_by
	if (document.getElementById("contact_by").value == 'select') {
		alert("Please select how we should contact you.");
		document.getElementById("contact_by_label").style.color = "red";
		document.getElementById("contact_by").focus();
		return false;
	} else {
		document.getElementById("contact_by_label").style.color = "black";
	}
	
	// work_phone
	if (document.getElementById("work_phone").value.length < 10) {
		alert("Please enter a valid work phone number.");
		document.getElementById("work_phone_label").style.color = "red";
		document.getElementById("work_phone").focus();
		return false;
	} else {
		document.getElementById("work_phone_label").style.color = "black";
	}
	
	// found_by
	if (document.getElementById("found_by").value == 'select') {
		alert("Please select how you found us.");
		document.getElementById("found_by_label").style.color = "red";
		document.getElementById("found_by").focus();
		return false;
	} else {
		document.getElementById("found_by_label").style.color = "black";
	}
		
	if (document.getElementById("txtCaptcha").value.length == 5) {
	
		$.ajax({
			type	: "POST",
			url		: "captcha.php",
			data	: "txtCaptcha=" + document.getElementById("txtCaptcha").value + "&key=" + key(10000),
			success	: function(html){
				$("#result").empty();
				$("#result").append(html);
				
				if (html == "FAIL") {
					alert("The code you entered was incorrect. Please try again.");
					$("#imgCaptcha").attr("src", "create_image.php?key=" + key(10000));
				} else {
					document.booking_form.submit();
				}
			}
		});
		return false;
	} else {
		alert("Please enter the exact code on the image into the text box and try again.");
		document.getElementById("txtCaptcha").focus();
		return false;
	}
		
		// agree
		//if (!document.getElementById("agree").checked) {
			//alert("Please read our terms and conditions and check that you agree with them.");
			//return false;
		//}
		
}

function renderNumbers(startNumber, endNumber, selectedNumber) {
	while (startNumber <= endNumber) {
		if (startNumber == selectedNumber) {
			document.write('<option value="' + startNumber + '" selected>' + startNumber + '</option>');
		} else {
			document.write('<option value="' + startNumber + '">' + startNumber + '</option>');
		}
		startNumber = startNumber + 1;
	}
}

function validate_register() {
	
	// first_name
	if (document.getElementById("first_name").value.length < 1) {
		alert("Please enter a valid first name.");
		document.getElementById("first_name_label").style.color = "red";
		document.getElementById("first_name").focus();
		return false;
	} else {
		document.getElementById("first_name_label").style.color = "black";
	}
	
	// last_name
	if (document.getElementById("last_name").value.length < 1) {
		alert("Please enter a valid last name.");
		document.getElementById("last_name_label").style.color = "red";
		document.getElementById("last_name").focus();
		return false;
	} else {
		document.getElementById("last_name_label").style.color = "black";
	}
	
	// email_1 (validate)
	if (echeck(document.getElementById("email_1").value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById("email_1_label").style.color = "red";
		document.getElementById("email_1").focus();
		return false;
	} else {
		document.getElementById("email_1_label").style.color = "black";
	}
	
	// email_2
	if (document.getElementById("email_2").value != document.getElementById("email_1").value) {
		alert("Please make sure the email addresses are the same.");
		document.getElementById("email_2_label").style.color = "red";
		document.getElementById("email_2").focus();
		return false;
	} else {
		document.getElementById("email_2_label").style.color = "black";
	}
	
	/*if (!document.getElementById("agree").checked) {
		alert("Please read our terms and conditions and tick the checkbox if you agree with them.");
		return false;
	}*/
			
	if (document.getElementById("txtCaptcha").value.length == 5) {
	
		$.ajax({
			type	: "POST",
			url		: "captcha.php",
			data	: "txtCaptcha=" + document.getElementById("txtCaptcha").value + "&key=" + key(10000),
			success	: function(html){
				$("#result").empty();
				$("#result").append(html);
				
				if (html == "FAIL") {
					alert("The code you entered was incorrect. Please try again.");
					$("#imgCaptcha").attr("src", "create_image.php?key=" + key(10000));
				} else {
					document.register_form.submit();
				}
			}
		});
		return false;
	} else {
		alert("Please enter the exact code on the image into the text box and try again.");
		document.getElementById("txtCaptcha").focus();
		return false;
	}
	
}

function validate_enquire() {
	
	// title
	if (document.getElementById("title").value == 'select') {
		alert("Please select a title.");
		document.getElementById("title_label").style.color = "red";
		document.getElementById("title").focus();
		return false;
	} else {
		document.getElementById("title_label").style.color = "black";
	}
	
	// first_name
	if (document.getElementById("first_name").value.length < 1) {
		alert("Please enter a valid first name.");
		document.getElementById("first_name_label").style.color = "red";
		document.getElementById("first_name").focus();
		return false;
	} else {
		document.getElementById("first_name_label").style.color = "black";
	}
	
	// last_name
	if (document.getElementById("last_name").value.length < 1) {
		alert("Please enter a valid last name.");
		document.getElementById("last_name_label").style.color = "red";
		document.getElementById("last_name").focus();
		return false;
	} else {
		document.getElementById("last_name_label").style.color = "black";
	}
	
	// email_1 (validate)
	if (echeck(document.getElementById("email_1").value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById("email_1_label").style.color = "red";
		document.getElementById("email_1").focus();
		return false;
	} else {
		document.getElementById("email_1_label").style.color = "black";
	}
	
	// email_2
	if (document.getElementById("email_2").value != document.getElementById("email_1").value) {
		alert("Please make sure the email addresses are the same.");
		document.getElementById("email_2_label").style.color = "red";
		document.getElementById("email_2").focus();
		return false;
	} else {
		document.getElementById("email_2_label").style.color = "black";
	}

	// message
	if (document.getElementById("message").value == '') {
		alert("Please enter a valid message.");
		document.getElementById("message_label").style.color = "red";
		document.getElementById("message").focus();
		return false;
	} else {
		document.getElementById("message_label").style.color = "black";
	}
	
	/*if (!document.getElementById("agree").checked) {
		alert("Please read our terms and conditions and tick the checkbox if you agree with them.");
		return false;
	}*/
	
	if (document.getElementById("txtCaptcha").value.length == 5) {
		
		$.ajax({
			type	: "POST",
			url		: "captcha.php",
			data	: "txtCaptcha=" + document.getElementById("txtCaptcha").value + "&key=" + key(10000),
			success	: function(html){
				$("#result").empty();
				$("#result").append(html);
				
				if (html == "FAIL") {
					alert("The code you entered was incorrect. Please try again.");
					$("#imgCaptcha").attr("src", "create_image.php?key=" + key(10000));
				} else {
					document.enquiry_form.submit();
				}
			}
		});
		return false;
	} else {
		alert("Please enter the exact code on the image into the text box and try again.");
		document.getElementById("txtCaptcha").focus();
		return false;
	}
	
}

function changeImage(img_src) {
	//document.write(img_src);
	document['main_image'].src = img_src;
}