﻿var productRegistration = {
    errorSummary: Object,
    productTypeDropdown: Object,
    registrationForm: Object,
    stepTwoSecondaryFieldsets: Object,
    validationSettings: Object,
    init: function () {
        this.errorSummary = $("#errorSummary");
        this.productTypeDropdown = $("#productType");
        this.registrationForm = $("#productRegistrationForm");
        this.stepTwoSecondaryFieldsets = $("div#second fieldset:not(#productTypeFieldset)");
        this.validationSettings = {
            errorContainer: this.errorSummary,
            errorLabelContainer: $("ul.Error", this.errorSummary),
            wrapper: 'li',
            meta: "validate"
        };

        this.run();
    },
    onProductTypeChange: function () {
        var currentProductType = productRegistration.productTypeDropdown.val();
        var currentProductTypeFieldset;

        productRegistration.stepTwoSecondaryFieldsets.css("display", "none");
        productRegistration.stepTwoSecondaryFieldsets.find(":input,:checkbox,:radio").attr("name", function (index, val) { return "blocked_" + val.replace(/blocked\_/g, ""); });

        switch (currentProductType) {
            case "Hair Clippers":
                currentProductTypeFieldset = $("#hairClipperFieldset");
                break;
            case "Curling Iron":
                currentProductTypeFieldset = $("#curlingIronFieldset");
                break;
            case "Personal Trimmer":
                currentProductTypeFieldset = $("#personalTrimmerFieldset");
                break;
            case "Hair Dryer":
                currentProductTypeFieldset = $("#hairDryerFieldset");
                break;
            case "Massager":
                currentProductTypeFieldset = $("#massagerFields");
                break;
            case "Shaver":
                currentProductTypeFieldset = $("#shaverFieldset");
                break;
            case "Beard/Mustache Trimmer":
                currentProductTypeFieldset = $("#beardAndMustacheTrimmerFieldset");
                break;
            case "Home Pet":
                currentProductTypeFieldset = $("#homePetFieldset");
                break;
            default:
                currentProductTypeFieldset = null;

        }

        if (currentProductTypeFieldset) {
            currentProductTypeFieldset.css("display", "block");
            currentProductTypeFieldset.find(":input,:checkbox,:radio").attr("name", function (index, val) {
                return val.replace(/blocked\_/g, ""); 
             });
        }
    },
    run: function () {
        productRegistration.registrationForm.formwizard({ validationEnabled: true, focusFirstInput: true }, this.validationSettings);
        productRegistration.productTypeDropdown.change(productRegistration.onProductTypeChange);
        productRegistration.stepTwoSecondaryFieldsets.css("display", "none");
    }
};

$(function() { productRegistration.init(); });
