﻿$(function() {

    //restrict to only numeric inputs plus delete and backspace
    $('.quantity').keypress(function(e) {
        if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
            return false;
        }
    });

    jQuery.validator.addMethod('required_group', function(val, el) {
        var nonemptyfields = $("input[value!=][value!=0].quantity");
        return nonemptyfields.length > 0;
    }, 'Please choose at least one hamper.');

    $("#validation_summary.hide").hide();

    $("#orderForm").validate({
        groups: {
            isrequired: "CustomerTitle FirstName Surname Email Phone BillingAddress BillingCity BillingPostcode ShippingAddress ShippingCity ShippingPostcode "

        },
        errorPlacement: function(error, element) {

        error.insertAfter("#validation_summary");
        },
        messages: {
            Email: {
                required: "All fields are required",
                email: "Please enter a valid email address"
            },
            CustomerTitle: {
                required: "All fields are required"
            },
            FirstName: {
                required: "All fields are required"
            },
            Surname: {
                required: "All fields are required"
            },
            Phone: {
                required: "All fields are required"
            },
            BillingAddress: {
                required: "All fields are required"
            },
            BillingCity: {
                required: "All fields are required"
            },
            BillingPostcode: {
                required: "All fields are required"
            },
            ShippingAddress: {
                required: "All fields are required"
            },
            ShippingCity: {
                required: "All fields are required"
            },
            ShippingPostcode: {
                required: "All fields are required"
            }
        },

        errorLabelContainer: "#validation_summary",
        wrapper: "li"
    });

    SetShippingAddressState();

    $("#UseBilling").change(function() {
        SetShippingAddressState();
    });
});

function SetShippingAddressState() {
    if ($("#UseBilling").attr('checked')) {
        $("#ShippingAddress").removeClass("required").attr("disabled", true);
        $("#ShippingAddress2").attr("disabled", true);
        $("#ShippingCity").removeClass("required").attr("disabled", true);
        $("#ShippingPostcode").removeClass("required").attr("disabled", true);
    }
    else {
        $("#ShippingAddress").addClass("required").attr("disabled", false);
        $("#ShippingAddress2").attr("disabled", false);
        $("#ShippingCity").addClass("required").attr("disabled", false);
        $("#ShippingPostcode").addClass("required").attr("disabled", false);
    }
}
