jQuery(document).ready(function () {
    jQuery.ajaxSetup({
        async: false
    });

    // Globals 
    var frmStep1 = jQuery("#frmStep1");

    // Check qualify and uk_resident are checked
    jQuery.validator.addMethod("isUkRes", function (value, element) {
        if (jQuery("#uk_resident").is(':checked')) {
            return true;
        }
        else {
            return false;
        }
    }, "Please confirm that you are suitable for the Aptamil baby club by ticking the boxes above, alternatively keep browsing <a href=\"www.aptamil.co.uk\">Aptamil.co.uk</a>");

    // Check qualify and uk_resident are checked
    jQuery.validator.addMethod("isOK", function (value, element) {
        if (jQuery("#qualify").is(':checked')) {
            return true;
        }
        else {
            return false;
        }
    }, "Please confirm that you are suitable for the Aptamil baby club by ticking the boxes above, alternatively keep browsing <a href=\"www.aptamil.co.uk\">Aptamil.co.uk</a>");

    jQuery.validator.addMethod("UsernameProfanityCheck", function (value, element) {
        var allowed = true;
        jQuery.ajax({
            url: "/services/VerifyUsernameProfanity.ashx",
            global: false,
            cache: false,
            type: "GET",
            data: "profile_name=" + jQuery("#profile_name").val(),
            dataType: "text",
            success: function (msg) {
                if (msg == 1) {
                    allowed = true;
                }
                else {
                    allowed = false;
                }
            }
        });
        return allowed;
    }, "Please enter a valid username");

    // Validate step 1
    frmStep1.validate({
        errorContainer: "#val-warning",
        onsubmit: true,
        onfocusout: false,
        onkeyup: false,
        invalidHandler: function (form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                if (!jQuery("#uk_resident").is(':checked') || !jQuery("#qualify").is(':checked')) {
                    location.href = "#register-steps";
                }
            }
        },
        groups: {
            qualifies: "uk_resident qualify"
        },
        errorPlacement: function (error, element) {
            if (element.attr("name") == "uk_resident" || element.attr("name") == "qualify") {
                error.insertAfter("#qrow");
            }
            else
                error.insertAfter(element);
        },
        rules: {
            uk_resident: {
                isUkRes: true
            },
            qualify: {
                isOK: true
            },
            profile_name: {
                required: true,
                UsernameProfanityCheck: true,
                remote: "/services/VerifyUserAvailability.ashx"
            }
        },
        messages: {
            profile_name: {
                required: "You must enter a username to post in our forums",
                remote: "Sorry, that username is already being used by somebody else"
            }
        }
    });

    // Set to validate on submit button, this is done to allow postcode look up
    jQuery("#btnSubmit", frmStep1).click(function () {
        if (frmStep1.valid()) {
            jQuery("#btnSubmit", frmStep1).disabled = true;
            return true;
        }
        else {
            return false;
        }
    });

}
);
