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 validateSearchBar() {

	// region_id
	if (document.getElementById("region_id").value == 0) {
		alert("Please select a region.");
		document.getElementById("region_id").focus();
		return false;
	}
	
	// town_id
	if (document.getElementById("town_id").value == 0) {
		alert("Please select a town.");
		document.getElementById("town_id").focus();
		return false;
	}
	
}

function validateRegisterStep1() {
		
		// registration_type
		if (document.getElementById("registration_type").value == 'select') {
			alert("Please select a registration type.");
			document.getElementById("registration_type_label").style.color = "red";
			document.getElementById("registration_type").focus();
			return false;
		} else {
			document.getElementById("registration_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";
		}
		
		// password_1
		if (document.getElementById("password_1").value.length < 8) {
			alert("Your password must be longer than 8 characters.");
			document.getElementById("password_1_label").style.color = "red";
			document.getElementById("password_1").focus();
			return false;
		} else {
			document.getElementById("password_1_label").style.color = "black";
		}
		
		// password_2
		if (document.getElementById("password_2").value.length != document.getElementById("password_1").value.length) {
			alert("Please make sure the passwords are the same.");
			document.getElementById("password_2_label").style.color = "red";
			document.getElementById("password_2").focus();
			return false;
		} else {
			document.getElementById("password_2_label").style.color = "black";
		}
		
		// address
		if (document.getElementById("address").value.length < 5) {
			alert("Please enter a valid street address.");
			document.getElementById("address_label").style.color = "red";
			document.getElementById("address").focus();
			return false;
		} else {
			document.getElementById("address_label").style.color = "black";
		}
		
		// postal_code
		if (document.getElementById("postal_code").value.length < 4) {
			alert("Please enter a valid postal code.");
			document.getElementById("postal_code_label").style.color = "red";
			document.getElementById("postal_code").focus();
			return false;
		} else {
			document.getElementById("postal_code_label").style.color = "black";
		}
		
		// city
		if (document.getElementById("city").value.length < 1) {
			alert("Please enter a valid city.");
			document.getElementById("city_label").style.color = "red";
			document.getElementById("city").focus();
			return false;
		} else {
			document.getElementById("city_label").style.color = "black";
		}
		
		// province
		if (document.getElementById("province").value.length < 1) {
			alert("Please enter a valid province.");
			document.getElementById("province_label").style.color = "red";
			document.getElementById("province").focus();
			return false;
		} else {
			document.getElementById("province_label").style.color = "black";
		}
		
		// country
		if (document.getElementById("country").value.length < 1) {
			alert("Please enter a valid country.");
			document.getElementById("country_label").style.color = "red";
			document.getElementById("country").focus();
			return false;
		} else {
			document.getElementById("country_label").style.color = "black";
		}
		
		// work_tel
		if (document.getElementById("work_tel").value.length < 10) {
			alert("Please enter a valid work tel number.");
			document.getElementById("work_tel_label").style.color = "red";
			document.getElementById("work_tel").focus();
			return false;
		} else {
			document.getElementById("work_tel_label").style.color = "black";
		}
		
		// listing_type
		if (document.getElementById("listing_type").value == 'select') {
			alert("Please select a listing type.");
			document.getElementById("listing_type_label").style.color = "red";
			document.getElementById("listing_type").focus();
			return false;
		} else {
			document.getElementById("listing_type_label").style.color = "black";
		}
		
		// agree
		//if (!document.getElementById("agree").checked) {
			//alert("Please read our terms and conditions and check that you agree with them.");
			//return false;
		//}
		
}

function validateEditProfile() {
		
		// 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";
		}
		
		// password_1
		if (document.getElementById("password_1").value.length < 8) {
			alert("Your password must be longer than 8 characters.");
			document.getElementById("password_1_label").style.color = "red";
			document.getElementById("password_1").focus();
			return false;
		} else {
			document.getElementById("password_1_label").style.color = "black";
		}
		
		// password_2
		if (document.getElementById("password_2").value.length != document.getElementById("password_1").value.length) {
			alert("Please make sure the passwords are the same.");
			document.getElementById("password_2_label").style.color = "red";
			document.getElementById("password_2").focus();
			return false;
		} else {
			document.getElementById("password_2_label").style.color = "black";
		}
		
		// address
		if (document.getElementById("address").value.length < 5) {
			alert("Please enter a valid street address.");
			document.getElementById("address_label").style.color = "red";
			document.getElementById("address").focus();
			return false;
		} else {
			document.getElementById("address_label").style.color = "black";
		}
		
		// postal_code
		if (document.getElementById("postal_code").value.length < 4) {
			alert("Please enter a valid postal code.");
			document.getElementById("postal_code_label").style.color = "red";
			document.getElementById("postal_code").focus();
			return false;
		} else {
			document.getElementById("postal_code_label").style.color = "black";
		}
		
		// city
		if (document.getElementById("city").value.length < 1) {
			alert("Please enter a valid city.");
			document.getElementById("city_label").style.color = "red";
			document.getElementById("city").focus();
			return false;
		} else {
			document.getElementById("city_label").style.color = "black";
		}
		
		// province
		if (document.getElementById("province").value.length < 1) {
			alert("Please enter a valid province.");
			document.getElementById("province_label").style.color = "red";
			document.getElementById("province").focus();
			return false;
		} else {
			document.getElementById("province_label").style.color = "black";
		}
		
		// country
		if (document.getElementById("country").value.length < 1) {
			alert("Please enter a valid country.");
			document.getElementById("country_label").style.color = "red";
			document.getElementById("country").focus();
			return false;
		} else {
			document.getElementById("country_label").style.color = "black";
		}
		
		// work_tel
		if (document.getElementById("work_tel").value.length < 10) {
			alert("Please enter a valid work tel number.");
			document.getElementById("work_tel_label").style.color = "red";
			document.getElementById("work_tel").focus();
			return false;
		} else {
			document.getElementById("work_tel_label").style.color = "black";
		}
		
		// agree
		//if (!document.getElementById("agree").checked) {
			//alert("Please read our terms and conditions and check that you agree with them.");
			//return false;
		//}
		
}

function validateRegisterStep2() {
		
		// name
		if (document.getElementById("name").value.length < 1) {
			alert("Please enter a valid name.");
			document.getElementById("name_label").style.color = "red";
			document.getElementById("name").focus();
			return false;
		} else {
			document.getElementById("name_label").style.color = "black";
		}

}

function validateEnquire() {
		
		// 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";
		}
		
		// work_tel
		if (document.getElementById("work_tel").value.length < 10) {
			alert("Please enter a valid work tel number.");
			document.getElementById("work_tel_label").style.color = "red";
			document.getElementById("work_tel").focus();
			return false;
		} else {
			document.getElementById("work_tel_label").style.color = "black";
		}
		
		// agree
		//if (!document.getElementById("agree").checked) {
			//alert("Please read our terms and conditions and check that you agree with them.");
			//return false;
		//}
		
}

function validateTravelWizard() {
		
		// 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";
		}
		
		// postal_address
		if (document.getElementById("postal_address").value.length < 5) {
			alert("Please enter a valid street address.");
			document.getElementById("postal_address_label").style.color = "red";
			document.getElementById("postal_address").focus();
			return false;
		} else {
			document.getElementById("postal_address_label").style.color = "black";
		}
		
		// postal_code
		if (document.getElementById("postal_code").value.length < 4) {
			alert("Please enter a valid postal code.");
			document.getElementById("postal_code_label").style.color = "red";
			document.getElementById("postal_code").focus();
			return false;
		} else {
			document.getElementById("postal_code_label").style.color = "black";
		}
		
		// city
		if (document.getElementById("city").value.length < 1) {
			alert("Please enter a valid city.");
			document.getElementById("city_label").style.color = "red";
			document.getElementById("city").focus();
			return false;
		} else {
			document.getElementById("city_label").style.color = "black";
		}
		
		// province
		if (document.getElementById("province").value.length < 1) {
			alert("Please enter a valid province.");
			document.getElementById("province_label").style.color = "red";
			document.getElementById("province").focus();
			return false;
		} else {
			document.getElementById("province_label").style.color = "black";
		}
		
		// country
		if (document.getElementById("country").value.length < 1) {
			alert("Please enter a valid country.");
			document.getElementById("country_label").style.color = "red";
			document.getElementById("country").focus();
			return false;
		} else {
			document.getElementById("country_label").style.color = "black";
		}
		
		// work_tel
		if (document.getElementById("work_tel").value.length < 10) {
			alert("Please enter a valid work tel number.");
			document.getElementById("work_tel_label").style.color = "red";
			document.getElementById("work_tel").focus();
			return false;
		} else {
			document.getElementById("work_tel_label").style.color = "black";
		}
		
		// visit_type
		if (document.getElementById("visit_type").value == 'select') {
			alert("Please select a visit type.");
			document.getElementById("visit_type_label").style.color = "red";
			document.getElementById("visit_type").focus();
			return false;
		} else {
			document.getElementById("visit_type_label").style.color = "black";
		}
		
		// payment_type
		if (document.getElementById("payment_type").value == 'select') {
			alert("Please select a payment type.");
			document.getElementById("payment_type_label").style.color = "red";
			document.getElementById("payment_type").focus();
			return false;
		} else {
			document.getElementById("payment_type_label").style.color = "black";
		}
		
		// room_type
		if (document.getElementById("room_type").value == 'select') {
			alert("Please select a room type.");
			document.getElementById("room_type_label").style.color = "red";
			document.getElementById("room_type").focus();
			return false;
		} else {
			document.getElementById("room_type_label").style.color = "black";
		}
		
		// cost
		if (document.getElementById("cost").value.length < 1) {
			alert("Please enter a valid cost.");
			document.getElementById("cost_label").style.color = "red";
			document.getElementById("cost").focus();
			return false;
		} else {
			document.getElementById("cost_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";
		}
		
		// region
		if (document.getElementById("region").value == 'select') {
			alert("Please select a region.");
			document.getElementById("region_label").style.color = "red";
			document.getElementById("region").focus();
			return false;
		} else {
			document.getElementById("region_label").style.color = "black";
		}

		// accommodation_types
		//if (!document.getElementById("accommodation_types").checked) {
			//alert("Please select at least one accommodation type.");
			//return false;
		//}
		
}

function changeImage(img_src) {
 	//document.write(img_src);
	document['main_image'].src = img_src;
}

function remove_record(id, table, delete_record, sort_table, record_start) {
	if (confirm("You are about to delete the record - ID: " + id + ". Continue?")) {
		window.location = "panel_view.php?table=" + table + "&id=" + id + "&delete_record=" + delete_record + "&sort=" + sort_table + "&record_start=" + record_start;
	}
}

function remove_image(id, table, img_url, delete_image) {
	if (confirm("You are about to delete the image " + img_url + " - ID: " + id + ". Continue?")) {
		window.location = table + ".php?table=" + table + "&id=" + id + "&img_url=" + img_url + "&delete_image=" + delete_image;
	}
}

function remove_register_image(id, table, img_url, delete_image) {
	if (confirm("You are about to delete the image " + img_url + " - ID: " + id + ". Continue?")) {
		window.location = "http://www.stfrancistourism.za.cx/register/delete_image.php?table=" + table + "&id=" + id + "&img_url=" + img_url + "&delete_image=" + delete_image;
	}
}

function show_register_image(id, table, img_url, image_status) {
	window.location = "http://www.stfrancistourism.za.cx/register/show_image.php?table=" + table + "&id=" + id + "&img_url=" + img_url + "&image_status=" + image_status;
}

function remove(cart_id, name) {
	if (confirm("You are about to remove the product, " + name + ".")) {
		window.location = "remove.php?cart_id=" + cart_id;
	}
}

function addtocart(product_id, quantity, for_purchase, for_hire) {
	window.location = "addtocart.php?product_id=" + product_id + "&quantity=" + quantity + "&for_purchase=" + for_purchase + "&for_hire=" + for_hire;
}

function resetMenus() {
	
	document.getElementById("region_id").value = 0;
	document.getElementById("town_id").value = 0;
	
}

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 populateTown(drop_down_list) {
	
	document.getElementById("status").value = "processing...";
	
	var index = drop_down_list.selectedIndex;
	var value = drop_down_list[index].value;
	var text = drop_down_list[index].text;
	
	var region_id = value;
	
	//var table_index = document.getElementById("search").selectedIndex;
	//var table = document.getElementById("search")[table_index].value;
	
	// bypasses the first selection box
	var table = 'accommodation';
	
	url = "http://www.stfrancistourism.za.cx/xml_maker.php?menu=town&region_id=" + region_id + "&table=" + table;
	
	ajaxCallback = displayTown;
	
	ajaxRequest(url);
	
}

function displayTown() {
	
	names = ajaxreq.responseXML.getElementsByTagName("name");
	ids = ajaxreq.responseXML.getElementsByTagName("id");
	document.getElementById("town_id").length = 2;
	
	for (i = 0; i < names.length; i++) {
		name = names[i].firstChild.nodeValue;
		id = ids[i].firstChild.nodeValue;
		text = document.createTextNode(name);
		addOption(document.getElementById("town_id"), name, id);
	}
	
	document.getElementById("status").value = "";
}

function addOption(selectbox, text, value) {

	var option = document.createElement("OPTION");
	option.text = text;
	option.value = value;
	selectbox.options.add(option);
	
}