﻿	jQuery.validator.addMethod(
	    "postcodeValidate", 
	    function(value) {
            try
            {
                return ValidatePostcode(value);
            }
            catch(err)
            {
                return false;
            }            
	    }, 
	    'Please enter a valid UK mainland postcode');
	    
	jQuery.validator.addMethod(
	    "foreignMilitaryNotSupported", 
	    function(value) {
            try
            {
                return !(value.indexOf("BFPO") != 0);
            }
            catch(err)
            {
                return false;
            }            
	    }, 
	    'Unfortunately this service is only available on the UK mainland');
	
    jQuery(document).ready(function(){
    // validate mainForm form on keyup and submit
    jQuery("#postcodeForm").validate({
        errorElement: "span",
        errorClass: xHLConst.FIELD_VALIDATION_ERROR_CLASS,
        // Customize placement of created error labels. 
        //  First argument: The created error label as a jQuery object. 
        //  Second argument: The invalid element as a jQuery object.
		errorPlacement: 
		    function(error, element) {
    	        var errorElem = element.parent();
			    errorElem.append(error);
			},
        highlight: 
            function(element, errorClass) {
            
                $(element.form).find("label[for=" + element.id + "]")
                    .addClass(errorClass);
            },
        unhighlight: 
            function(element, errorClass) {
            
                $(element.form).find("label[for=" + element.id + "]")
                    .removeClass(errorClass);
            },
	    rules: {
		    PostCode : "postcodeValidate"
	    },
	    messages: {
		    PostCode: "Please enter a valid UK mainland postcode"
	    }
    });
});