// JavaScript Document
$(document).ready(function(){
	// Global vars  
	var form = $("#customForm");  
	var accType = $("#accType");  
	var accTypeInfo = $("#accTypeInfo");  
	var name = $("#name");  
	var nameInfo = $("#nameInfo");  
	var telephone = $("#telephone");  
	var telephoneInfo = $("#telephoneInfo");  
	var postcode = $("#postcode");  
	var postcodeInfo = $("#postcodeInfo");   
	var email = $("#email");  
	var emailInfo = $("#emailInfo");   
	var contact = $("#contact");  
	var contactInfo = $("#contactInfo");   
	var date = $("#date");  
	var dateInfo = $("#dateInfo");  
	var details = $("#details"); 
	
	var summary = $("#validationSummary");
	
	//On blur  
	accType.blur(validateAccType);  
	name.blur(validateName); 
	telephone.blur(validateTelephone); 
	postcode.blur(validatePostcode); 
	email.blur(validateEmail); 
	contact.blur(validateContact); 
	date.blur(validateDate); 
	details.blur(validateDetails); 
	   
	//On key press  
	/*accType.keyup(validateAccType); 
	name.keyup(validateName); 
	telephone.keyup(validateTelephone); 
	postcode.keyup(validatePostcode); 
	email.keyup(validateEmail); 
	contact.keyup(validateContact); 
	date.keyup(validateDate); 
	details.keyup(validateDetails); */ 
	  
	//On Submitting  
	form.submit(function(){  
		if(validateName() & validateEmail() & validateAccType() & validateTelephone() & validatePostcode() & validateContact() & validateDate() & validateDetails()) { 
			summary.removeClass("error");
			return true; 
		} else {  
			summary.addClass("error");
			return false;  
		}
			
	});
	
	function validateAccType(){  
		//if it's NOT valid  
		if($('select#accType option:selected').val() == "0"){  
			accType.addClass("error");  
			accTypeInfo.text("Please select the type of accident you were invloved in");  
			accTypeInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			accType.removeClass("error");  
			accTypeInfo.text("What type of accident have you been involved in?");  
			accTypeInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateName(){  
		//if it's NOT valid  
		if(name.val().length < 4){  
			name.addClass("error");  
			nameInfo.text("Please enter your full name");  
			nameInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			name.removeClass("error");  
			nameInfo.text("Whats your full name?");  
			nameInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateTelephone(){  
		//if it's NOT valid  
		if(telephone.val().length < 6){  
			telephone.addClass("error");  
			telephoneInfo.text("Please enter a contact telephone number");  
			telephoneInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			telephone.removeClass("error");  
			telephoneInfo.text("A contact telephone number so a solicitor may contact you");  
			telephoneInfo.removeClass("error");  
			return true;  
		}  
	}
	function validatePostcode(){  
		//if it's NOT valid  ([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? [0-9]{1,2}[ABD-HJLN-UW-Z]{2}|GIR 0AA)
		if(!postcode.val().match(/^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? [0-9]{1,2}[ABD-HJLN-UW-Z]{2}|GIR 0AA)$/i)){  
			postcode.addClass("error");  
			postcodeInfo.text("Please enter your postcode");  
			postcodeInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			postcode.removeClass("error");  
			postcodeInfo.text("Your postcode is used to select a solicitor in your area");  
			postcodeInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateEmail(){  
		//if it's NOT valid  
		if(!email.val().match(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/i)){  
			email.addClass("error");  
			emailInfo.text("Please enter a valid email address");  
			emailInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			email.removeClass("error");  
			emailInfo.text("A valid email address so we can send you confirmation");  
			emailInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateContact(){  
		//if it's NOT valid  
		if($('select#contact option:selected').val() == "0"){  
			contact.addClass("error");  
			contactInfo.text("Please tell us what is the best time to contact you");  
			contactInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
		else{  
			contact.removeClass("error");  
			contactInfo.text("When's the best time to contact you?");  
			contactInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateDate(){  
		//if it's NOT valid  ^((([0][1-9]|[12][\d])|[3][01])[-/]([0][13578]|[1][02])[-/][1-9]\d\d\d)|((([0][1-9]|[12][\d])|[3][0])[-/]([0][13456789]|[1][012])[-/][1-9]\d\d\d)|(([0][1-9]|[12][\d])[-/][0][2][-/][1-9]\d([02468][048]|[13579][26]))|(([0][1-9]|[12][0-8])[-/][0][2][-/][1-9]\d\d\d)$
		value = date.val();
		if(!value.match(/^([0][1-9]|[12][0-9]|[3][01])[-\/]{1}([0][0-9]|[1][012])[-\/]{1}(20[0-9]{2})$/i)){  
			date.addClass("error");  
			dateInfo.text("Please enter a valid date (DD/MM/YYYY)");  
			dateInfo.addClass("error"); 
			return false;  
		}  
		//if it's valid  
		else{			
			date.removeClass("error");  
			dateInfo.text("Please enter the date of the accident (DD/MM/YYYY)");  
			dateInfo.removeClass("error");  
			return true;  
		}  
	}
	function validateDetails(){  
		//it's NOT valid  
		if(details.val().length < 10){  
			details.addClass("error");  
			return false;  
		}  
		//it's valid  
		else{
			details.removeClass("error");  
			return true;  
		}  
	}
});