function ValidateForm() {
	
	RemoveHighlights("fastbuyform");
	
	var Name = NotEmpty($("name"));
	var telephone = NotEmpty($("telephone")) && NumberOnly($("telephone"));		
	var address = NotEmpty($("address"));

	
	return Name && telephone && address;
}

function validate(form) {
	
	if (form.name.value == "") {
		alert("Please enter your name!");
		return false;
	}
	
	if (form.tel.value == "") {
		alert("Please enter your telephone number!");
		return false;
	}
	
	if (form.reason.value == "") {
		alert("Please enter a reason of contact!");
		return false;
	}
	
	return true;
}

function ValidateRegForm() {
	RemoveHighlights("regform");
	
	var errorHTML = "<ul>";

		
	var email = Email($("email")) && NotEmpty($("email"));
	if (!email) 
		errorHTML += "<li class='errortext'>Enter email address</li>";
	
	var username = NotEmpty($("username"));
	if (!username) 
		errorHTML += "<li class='errortext'>Enter username</li>";
		
	var password = NotEmpty($("password")) && $("password").value.length >= 8;
	if (!password)
		errorHTML += "<li class='errortext'>Enter password (min 8 chars)</li>";
		
	var repeatpassword = NotEmpty($("repeatpassword")) && $("repeatpassword").value.length >= 8;
	if (!repeatpassword)
		errorHTML += "<li class='errortext'>Enter repeat password (min 8 chars)</li>";
		
	var match = $("password").value == $("repeatpassword").value;
	if (!match)
		errorHTML += "<li class='errortext'>Password and repeated password do not match</li>";
	
	errorHTML += "</ul>";
	
	var valid = username && email && password && repeatpassword && match;
			
	if (!valid) {
		$('errorlist').innerHTML = errorHTML;
		$('errorcontainer').style.display = "block";
	}
	
	return valid;
}

function TextOnly(element) {
	
	var re = new RegExp("[0-9]|[_]|[,\.\?;\[\]\+\-=!\"£$%\^&\*\(\)]");
	
	if (!(!element.value.match(re) || element.value == ""))
		HighlightField(element);
	
	return (!element.value.match(re) || element.value == "");
}

function NumberOnly(element) {
	var re = new RegExp("[^0-9]");
	var originalVal = element.value;
	var num = element.value.replace(" ","");
	num = num.replace(".","");
	num = num.replace(",","");
	
	element.value = originalVal;
	
	if (!(!num.match(re) || num == ""))
		HighlightField(element);
		
	return (!num.match(re) || num == "");
}

function PostCode(element) {
	
	var re = new RegExp("s/^([A-Z]{1,2}\d{1,2}[A-Z]?)\s?(O|\d)([A-Z]{2})$/\U$1 ${\(0+$2)}$3/i");
	
	if (!(element.value.match(re) || element.value == ""))
		HighlightField(element);
	return (element.value.match(re) || element.value == "");
}

function Email(element) {
	
	var re = new RegExp("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$");

	if (!(element.value.match(re) || element.value == ""))
		HighlightField(element);
		
	return (element.value.match(re) || element.value == "");
}

function NotEmpty(element) {
    
	if (!(element.value != null && element.value != ""))
    	HighlightField(element);
	
	return (element.value != null && element.value != "");
}

function HighlightField(element) {
	if (element.className.indexOf("invalid") == -1)
		element.className += " invalid";
}

function RemoveHighlights(formName) {
	var elementArray = [];
	elementArray = $(formName).descendants();	

	
	elementArray.each(function (element) {
		element.className = element.className.replace("invalid", "");
	});
}