jQuery.validator.addMethod("courserating9hole", function(value, element) {
    return this.optional(element) || (value >=250 && value <=450);
}, "9-Hole course rating must be between 250 and 450");

jQuery.validator.addMethod("courserating18hole", function (value, element) {
    return this.optional(element) || (value >= 500 && value <= 900);
}, "18-Hole course rating<br />must be between<br />500 and 900");  

jQuery.validator.addMethod("courseslope", function(value, element) {
    return this.optional(element) || (value >= 60 && value <= 160);
}, "Slope values must be<br />between 60 and 160");

jQuery.validator.addMethod("handicapNumber", function (value, element) {
    return this.optional(element) || /^([+-]?\d{1,2})((\.[\d]{1})?)$/i.test(value);
}, "Please enter a valid handicap");

jQuery.validator.addMethod("address2", function (value, element) {
    return this.optional(element) || /^[a-zA-ZÀàÁáÂâÄäÆæÉéÈèÊêËëÎîÏïÔôŒœÒòÔôÖöŸÿÇçÙÛÜùûü«»0-9-#.,()'\\\/\"\s]+$/i.test(value);
}, "Letters, numbers or punctuation only");

jQuery.validator.addMethod("email3", function (value, element) {
    return this.optional(element) || /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9-_]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/i.test(value);
}, jQuery.validator.messages.email);

jQuery.validator.addMethod("facebookURL", function (value, element) {
    return this.optional(element) || (value.indexOf("http://www.facebook.com/") == 0);
}, "Please enter a valid Facebook URL ie. http://www.facebook.com/...");

jQuery.validator.addMethod("linkedInURL", function (value, element) {
    return this.optional(element) || (value.indexOf("http://www.linkedin.com/in/") == 0);
}, "Please enter a valid LinkedIn URL ie. http://www.linkedin.com/in/...");

jQuery.validator.addMethod(
    "dateBefore",
    function (value, element, param) {
        var validDates = true;
        if (value != "" && $(param).val() != "") {
            var startDate = new Date($(param).val());
            var endDate = new Date(value);
            if (endDate > startDate) {
                validDates = false;
            }
        }
        return validDates;
    },
    "The start date cannot be past the end date."
);

jQuery.validator.addMethod(
    "datePast",
    function (value, element, param) {
        var validDates = true;
        if (value != "" && $(param).val() != "") {
            var startDate = new Date($(param).val());
            var endDate = new Date(value);
            if (endDate < startDate) {
                validDates = false;
            }
        }
        return validDates;
    },
    "The end date cannot be before the start date."
);

jQuery.validator.addMethod(
    "moreThan",
    function (value, element, param) {
        var moreThan = true;
        if ($(param).val() != "" && (!isNaN(value) && (!isNaN($(param).val()))))
        {
            var num1 = new Number(value);
            var num2 = new Number($(param).val());
            moreThan = (num1 > num2);
        }
        return moreThan;
    },
    "Something wrong"
);

    jQuery.validator.addMethod(
    "lessThan",
    function (value, element, param) {
        var lessThan = true;
        if ($(param).val() != "" && (!isNaN(value) && (!isNaN($(param).val())))) {
            var num1 = new Number(value);
            var num2 = new Number($(param).val());
            lessThan = (num1 < num2);
        }
        return lessThan;
    },
    "Something wrong"
);
