jQuery.validator.addMethod("ukpostcode", function(value,element) {
	test = value;
  size = test.length;
  test = test.toUpperCase(); //Change to uppercase
  invalid = false;

  while (test.slice(0,1) == " ") //Strip leading spaces
  {
    test = test.substr(1,size-1); size = test.length
  }

  while(test.slice(size-1,size)== " ") //Strip trailing spaces
  {
    test = test.substr(0,size-1); size = test.length
  }



  if (size < 6 || size > 8){
    invalid = true;
  }

  if (!(isNaN(test.charAt(0)))){
    invalid = true;
  }

  if (isNaN(test.charAt(size-3))){
    invalid = true;
  }

  if ( !( isNaN(test.charAt(size-1)) ) && !( isNaN(test.charAt(size-2)) ) 
         && ( !isNaN(test.charAt(size-3)) || test.charAt(size-3) == " ")){
    if ( (test.charAt(0) != 'B' || test.charAt(1) != 'F' || test.charAt(2) != 'P' || test.charAt(3) != 'O') ){
      invalid = true;
    }
  }else{
    if (!(isNaN(test.charAt(size-1)))){
      invalid = true;
    }

    if (!(test.charAt(size-4) == " ")){
      invalid = true;
    }

  }


  count1 = test.indexOf(" ");
  count2 = test.lastIndexOf(" ");

  if (count1 != count2){
    invalid = true;
  }

  if(invalid){
    return false;
    }else{
    return true;
  }
}, "Please enter a valid UK postcode.");