$(document).ready(function(){ // Bind validation functions to the forms if jQuery is available
	if ($("#form_reg")) { $("#form_reg").submit( function() { return validateReg(); } ); }
	if ($("#join_emaillist")) { $("#join_emaillist").submit( function() { return validateJoin(); } ); }
});

//---------------------------------------------------------------------------------------------------------

function allValidChars(email) {
	var validchars										= "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
	for (var i=0; i < email.length; i++) {
		var letter										= email.charAt(i).toLowerCase();
		if (validchars.indexOf(letter) == -1) {
			return false;
		}
	}
	return true;
}

function isValidEmail(email) {
	if (email == null) { return false; }
	if (email.length < 9) { return false; }          								// there must be at least 9 characters
	if (!allValidChars(email)) { return false; }									// all characters must be valid
	if (email.indexOf("@") < 1) { return false; }    							// must contain @, and it must not be the first character
			
	// There must not be more than one @		
	var atcount											= 0;
	for (var i=0; i < email.length; i++) {
		var letter										= email.charAt(i).toLowerCase();
		if (letter == "@") { atcount++; }
	}
	if (atcount > 1) { return false; }																	
																					
	if (email.lastIndexOf("@") == email.length-1) { return false; }				// @ must not be the last character
	if (email.indexOf("..") >= 0) { return false; }                              // two dots in a row is not valid
    if (email.lastIndexOf(".") <= email.indexOf("@")) { return false; }         	// last dot must be after the @
    if (email.lastIndexOf(".") == email.length-1) { return false; }              // dot must not be the last character
    return true;
}

//--------------------------------------------------------------------------------------------------------- Registration forms

function validateReg() {

	$errorCount											= 0;
	$Err1												= "";
	
	$("#form_reg").find("p.error").remove();
	$("#form_reg").find("p.messageerror").remove();
	$(".error").removeClass("error");
	
	// Basic checks
	
	if ($("#title").val() == 'Select a Title'){
		$("#title").addClass("error").after("<p class=\"error\"><em>Please select your title</em></p>");														$errorCount++; if ($Err1 == "") { $Err1 = "#title"; }
	}
	
	if ($("#name_first").val() == ''){
		$("#name_first").addClass("error").after("<p class=\"error\"><em>Please enter your first name</em></p>");												$errorCount++; if ($Err1 == "") { $Err1 = "#name_first"; }
	} else if ($("#name_first").val().length > 64) {
		$("#name_first").addClass("error").after("<p class=\"error\"><em>Please make this <strong>64 characters or less</strong></em></p>");					$errorCount++; if ($Err1 == "") { $Err1 = "#name_first"; }
	}
	
	if ($("#name_last").val() == ''){
		$("#name_last").addClass("error").after("<p class=\"error\"><em>Please enter your last name</em></p>");												$errorCount++; if ($Err1 == "") { $Err1 = "#name_last"; }
	} else if ($("#name_last").val().length > 64) {
		$("#name_last").addClass("error").after("<p class=\"error\"><em>Please make this <strong>64 characters or less</strong></em></p>");					$errorCount++; if ($Err1 == "") { $Err1 = "#name_last"; }
	}
	
	if (!isValidEmail($("#reg_email").val())) {
		$("#reg_email").addClass("error").after("<p class=\"error\"><em>Please enter a valid email address</em></p>");											$errorCount++; if ($Err1 == "") { $Err1 = "#reg_email"; }
	} else if ($("#reg_email").val().length > 128) {
		$("#reg_email").addClass("error").after("<p class=\"error\"><em>Please make this <strong>128 characters or less</strong></em></p>");					$errorCount++; if ($Err1 == "") { $Err1 = "#reg_email"; }
	}
	
	if ($("#tel").val() == ''){
		$("#tel").addClass("error").after("<p class=\"error\"><em>Please enter your telephone number</em></p>");												$errorCount++; if ($Err1 == "") { $Err1 = "#tel"; }
	} else if ($("#tel").val().length > 32) {
		$("#tel").addClass("error").after("<p class=\"error\"><em>Please make this <strong>32 characters or less</strong></em></p>");							$errorCount++; if ($Err1 == "") { $Err1 = "#tel"; }
	}
	
	// Contact form
	
	if ($("#message").is("textarea") && $("#message").val() == '') {
		$("#message").addClass("error").after("<p class=\"messageerror\"><em>Please enter your message</em></p>");												$errorCount++; if ($Err1 == "") { $Err1 = "#message"; }
	}
	
	// Rent / Buy
	
	if ($("#interest_rent").is("input")) {
		if (!$("#interest_rent").is(":checked") && !$("#interest_buy").is(":checked")) {
			$("div.interests").after("<p class=\"messageerror\"><em>Please register your interest</em></p>");													$errorCount++; if ($Err1 == "") { $Err1 = "#interest_rent"; }
		}
		
	}
	
	// Hotel or Cruise
	
	if ($("#arr_date").is("select")) {
		
		if ($("#arr_date").val() == 'Day' || $("#arr_month").val() == 'Month' || $("#arr_year").val() == 'Year'){
			$("#arr_year").after("<p class=\"messageerror\"><em>Please complete your date of arrival</em></p>");												$errorCount++; if ($Err1 == "") { $Err1 = "#arr_date"; }
		}
		
		if ($("#people_no").val() == 'People') {
			$("#people_no").after("<p class=\"messageerror\"><em>Please select the number of people</em></p>");													$errorCount++; if ($Err1 == "") { $Err1 = "#arr_date"; }
		}
		
	}
	
	// Hotel
	
	if ($("#stay").is("input")) {
		if ($("#stay").val() == ''){
			$("#stay").addClass("error").after("<p class=\"error\"><em>Please enter the length of your stay</em></p>");										$errorCount++; if ($Err1 == "") { $Err1 = "#stay"; }
		} else if ($("#stay").val().length > 128) {
			$("#stay").addClass("error").after("<p class=\"error\"><em>Please make this <strong>128 characters or less</strong></em></p>");					$errorCount++; if ($Err1 == "") { $Err1 = "#stay"; }
		}	
	}
	
	//---------------------------------------------------------------------------------------------------------
	
	if ($errorCount > 0) {
		$($Err1).focus();
		return false;
	}
	
}

//--------------------------------------------------------------------------------------------------------- Registration forms

function validateJoin() {
	if (!isValidEmail($("#email").val())) {
		alert("Please enter a valid email address");																											return false;
	} else if ($("#email").val().length > 128) {
		alert("Please make this 128 characters or less");																										return false;
	}
}