$(document).ready(function() {
    var form = $('#warranty_form');

    function is_access_key(value) {
        var pattern = /^[0-9a-z]{5}-[0-9a-z]{5}-[0-9a-z]{5}$/i;
        return pattern.test(jQuery.trim(value));
    }

    jQuery.validator.addMethod('accesskey', is_access_key,
                               'Access keys should be in the form XXXXX-XXXXX-XXXXX');
    jQuery.validator.addClassRules('accesskey', {accesskey: true});
    
    var slave_mac_rules = common.slave_mac_rules('#SlaveMAC1Input',
                                                 '#SlaveMAC2Input',
                                                 '#SlaveMAC3Input');
    
    form.validate({
        debug: false,
        errorPlacement: common.place_error,
        groups: {
            master_mac: 'MasterMAC1 MasterMAC2 MasterMAC3',
            slave_mac: 'SlaveMAC1 SlaveMAC2 SlaveMAC3'
        },
        rules: {
            SlaveMAC1: slave_mac_rules,
            SlaveMAC2: slave_mac_rules,
            SlaveMAC3: slave_mac_rules,
            unit1_odu: common.odu_sn_rules('#MasterMAC1Input'),
            unit2_odu: common.odu_sn_rules('#SlaveMAC1Input')
        },
        submitHandler: function(form) {
            // Clear the ODU inputs if they are hidden
            common.clear_if_hidden('#unit1_odu_input, #unit2_odu_input');
            form.submit();
        }
    });

    common.configure_odu_input('#MasterMAC1Input', '#unit1_odu_input');
    common.configure_odu_input('#SlaveMAC1Input', '#unit2_odu_input');
});

