// JavaScript Document

  $(document).ready(function(){

	
$.validator.addMethod("ukpostcode", function(value, element) { 
return this.optional(element) || checkPostCode(value); 
}, 
"Post Code Invalid"  
); 
// validate form on keyup and submit  



jQuery.validator.addMethod("matches", function(value, element, param) {
if($('#' + param).val() != $(element).val())
return false;
return true;
}, "Please ensure that your password fields match.");




$("#new_account").validate({ 
rules: { 
   postcode: "required ukpostcode",
    re_upassword: {
	equalTo: "#upassword"
	} 
   }
}); // end validate


$("#checkout_form").validate({ 
rules: { 
   billing_postcode: "required ukpostcode",
   delivery_postcode: "required ukpostcode"
   }
}); // end validate


$("#form_basket").validate({
rules: {
     variant: {
       required: true
     }
   },

messages: {
     variant: {
		required: "Please choose a product colour/variant."
	
	    }
     }		   
						   
						   }); // end validate



}); // jquery
  
  
  


//To use this, in your rules, just have something like:

  
  
  
  
  
  
  function checkPostCode(postcode){ 
  
  
 var parts = postcode.toUpperCase().split(" "); 
  if(parts.length != 2){ return false; } 
  if(!checkPartOne(parts[0])){ return false; } 
  if(!checkPartTwo(parts[1])){ return false; } 
  return true; } 
  
  function checkPartOne(value){ 
  //Most common first  //AA9  
  if(/^[A-PR-UWYZ][A-HK-Y][0-9]$/.test(value)){ return true; } //AA99 
   if(/^[A-PR-UWYZ][A-HK-Y][0-9][0-9]$/.test(value)){ return true; } //Check for the rest  //A9 
   if(/^[BEGLMNSW][0-9]$/.test(value)){ return true; } //A99  
   if(/^[BEGLMNSW][0-9][0-9]$/.test(value)){ return true; } //A9A 
    if(/^[ENW][0-9][WCGPQ]$/.test(value)){ return true; } //AA9A  
	if(/^[ENS][CWE][0-9][A-HK-Y]$/.test(value)){ return true; } return false; } 
	
	function checkPartTwo(value){ //9AA  
	return /^[0-9][ABD-HJLN-UW-Z][ABD-HJLN-UW-Z]$/.test(value); 
	} 
