function validateForm(f) {
	var errormsg = document.getElementById("ValidationSummary1");
	
	var fname = document.getElementById("FirstName");
	var lname = document.getElementById("LastName");
	var respre = document.getElementById("ResPrefix");
	var resnum = document.getElementById("ResNumber");
	var mobpre = document.getElementById("MobilePrefix");
	var mobnum = document.getElementById("MobileNumber");
	var acctholder = document.getElementById("AccountHolder");
	var email = document.getElementById("EmailAddress");
	var confirm_email = document.getElementById("ConfirmEmailAddress");
	var chkAgree = document.getElementById("chkAgree");
	
	var email_pattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;
	
	var errors = "";
	
	if (fname.value == "") {
		errors += "<li>Please enter your First Name</li>";
	}
	
	if (lname.value == "") {
		errors += "<li>Please enter your Last Name</li>";
	}
	
	if (respre.value == "" && resnum.value == "") {
		errors += "<li>Please enter a residential Phone number</li>";
	} else {
		if (respre.value == "" || respre.value != parseInt(respre.value, 10)) {
			errors += "<li>Please select a residential phone number prefix</li>";
		}
		if (resnum.value == "" || resnum.value != parseInt(resnum.value, 10) || resnum.value.length != 7) {
			errors += "<li>Please enter a valid residential phone number</li>";
		}
	}
	
	if (mobnum.value != "") {
		if (mobnum.value != parseInt(mobnum.value, 10)) {
			errors += "<li>Please enter a valid mobile phone number</li>";
		}
		if (mobpre.value != parseInt(mobpre.value, 10)) {
			errors += "<li>Please select a mobile phone number prefix</li>";
		}
	}
	
	if (acctholder.checked == false) {
		errors += "<li>Are you the account holder of the land line?</li>";
	}
	
	if (!email_pattern.test(email.value)) {
		errors += "<li>Please enter a valid email address.</li>";
	} else {
		if (!email_pattern.test(confirm_email.value)) {
			errors += "<li>Please re-enter a valid email address.</li>";
		} else if (confirm_email.value != email.value) {
			errors += "<li>Please check that both email address fields contain the same email address.</li>";
		}
	}
	
	if (chkAgree.checked == false) {
		errors += "<li>Have you agreed to the Calling Special weekend terms and conditions?</li>";
	}
	
	if (errors != "") {
		alert("Oops, please scroll up to the top of the form to check what you have forgotten to fill in.");
		errormsg.innerHTML = "<b>Registration Incomplete</b><br/><ul>" + errors + "</ul>";
		return false;
	} else {
		errormsg.innerHTML = "";
		alert("We are now processing your registration, this may take a few seconds. Please do not reload your browser.");
		return true;
	}
}
