﻿if (typeof pages == 'undefined' || !pages) {
    var pages = {};
}

pages.landing = (function () {
    var validation = (function () {
        return {
            checkZipCode: function (source, args) {
                if ($('#txtZip').val().length > 0) {
                    $.ajax({
                        type: 'POST',
                        url: '/Default.aspx/IsValidZipCode',
                        data: '{zip: "' + $('#txtZip').val() + '" }',
                        contentType: 'application/json; charset=utf-8',
                        context: this,
                        dataType: 'json',
                        async: false,
                        success: function (msg) {
                            args.IsValid = msg.d;
                        },
                        failure: function (msg) {
                            args.IsValid = false;
                        }
                    });
                }
            }
        };
    })();

    var initTimeout = function () {
        $('#timeoutTrigger').colorbox({ width: '50%', inline: true, href: '#session-timeout',
            onClosed: function () { window.location.href = '/home'; }
        });

        if ($('#hfShowTimeoutNotification').val() == 'true') {
            $('#timeoutTrigger').trigger('click');
        }
    };

    var initPlaceholders = function () {
        $('input:text').placeholder();
    };

    var prepDropdown = function (dropdownID) {
        $('#' + dropdownID + ' option:first').attr('selected', 'selected');
        $('#' + dropdownID).attr('disabled', 'disabled');
    };

    var bindCascadingSelections = function () {
        $('#ddlAssociation option').remove(); //first, remove any existing options in association (they're only there initially to allow viewstate validation to succeed).
        $('#ddlAssociation').append('<option value="Select Association">Select Association</option>'); //add default option.
        $('#ddlAssociation').attr('disbled', '');
        $('#ddlProfession option:first').attr('selected', 'selected');
        prepDropdown('ddlAssociation');

        $('#ddlProfession').change(function () {
            $('#ddlAssociation option').remove(); //first, remove any existing options.
            $('#ddlAssociation').append('<option value="Select Association">Select Association</option>'); //add default option.
            $('#ddlAssociation').attr('disabled', 'disabled');

            if ($(this).val() != 'Select Profession') {
                $('#ddlAllAssociation option[rel=' + $(this).val() + ']').clone().appendTo('#ddlAssociation');  //add all options relevant to selected profession.
                $('#ddlAssociation').removeAttr('disabled');
            }

            $.uniform.update("#ddlAssociation");
        });

        $.uniform.update("#ddlAssociation");

        //Fix to dynamically show wide list of selections in IE for any dropdowns with a class of wide.
        if ($.browser.msie) {
            $('select.wide')
                .bind('focus mouseover', function () { $(this).addClass('expand').removeClass('clicked'); })
                .bind('click', function () { $(this).toggleClass('clicked'); })
                .bind('mouseout', function () { if (!$(this).hasClass('clicked')) { $(this).removeClass('expand'); } })
                .bind('blur', function () { $(this).removeClass('expand clicked'); });
        }
    };

    return {
        init: function () {
            initTimeout();
            initPlaceholders();
            bindCascadingSelections();
        },
        checkZipCode: function (source, args) {
            return validation.checkZipCode(source, args);
        }
    };
})();
