﻿(function ($) {

    $(document).ready(function () {

        $("input[type=text]").attr('maxlength', '50');

        $('#ShippingIsTheSameAsBilling').click(function () {
            if ($('#ShippingIsTheSameAsBilling').attr('checked')) {
                $('#ShippingFields').hide();
            } else {
                $('#ShippingFields').show();
            }
        });
        if ($('#ShippingIsTheSameAsBilling').attr('checked')) {
            $('#ShippingFields').hide();
        } else {
            $('#ShippingFields').show();
        }

        $('#UseMyEmailAsMyUsername').click(function () {
            if ($('#UseMyEmailAsMyUsername').attr('checked')) {
                $('#NewAccountUserNameArea').hide();
            } else {
                $('#NewAccountUserNameArea').show();
            }
        });
        if ($('#UseMyEmailAsMyUsername').attr('checked')) {
            $('#NewAccountUserNameArea').hide();
        } else {
            $('#NewAccountUserNameArea').show();
        }

        $("#bannerFeatureDisplay").after('<div id="bannerFeatureNav" />').cycle({
            pager: '#bannerFeatureNav',
            timeout: 7000
        });

        $('.emailList form').submit(function () {
            var formData = $(this).serialize();
            $.ajax({
                url: '/EmailList/Submit' + '?' + (new Date().getTime()),
                data: formData,
                beforeSend: function () {
                },
                success: function (data) {
                    $('#emailList').html(data);
                },
                error: function (data) {
                }
            });
            return false;
        });

        $('.deleteReviewLink').click(function () {
            if (confirm('Are you sure you want to delete this review?') == false) return;
            $.ajax({
                url: this.href + '?' + (new Date().getTime()),
                success: function (data) {
                }
            });
            $(this).closest('tr').remove();
            return false;
        });


        $('#shippingSelection').live('change', function () {
            var shippingSelection = $('#shippingSelection').val();
            $.ajax({
                url: '/ShippingSelection/Index/' + shippingSelection + '?' + (new Date().getTime()),
                success: function (data) {
                    $.ajax({
                        url: '/Checkout/RefreshReviewTopSection' + '?' + (new Date().getTime()),
                        success: function (data) {

                            $('#orderDetails').html(data);

                            $('select.styled, .checkoutBody select, .affiliateBody select, .createAccountBody select').each(function (idx, el) {
                                var text = $(el).find('option[value=' + $(el).val() + ']').text();
                                $(el).addClass('styled');
                                var className = "select";
                                if ($(this).hasClass('input-validation-error')) {
                                    className += " select-input-validation-error";
                                }
                                $(el).wrap('<span class="selectWrapper" />');
                                $(el).before('<span class="' + className + '" style="width: ' + $(el).width() + 'px;"><span>' + text + '</span></span>');
                            }).change(function () {
                                var text = $(this).find('option[value=' + $(this).val() + ']').text();
                                $(this).prev('.select').html('<span>' + text + '</span>');
                            }).keydown(function (e) {
                                if (e.keyCode == '38' || e.keyCode == '40') {
                                    $(this).change();
                                }
                            }).focus(function () {
                                $(this).prev('.select').addClass("selectActive");
                            }).blur(function () {
                                $(this).prev('.select').removeClass("selectActive");
                            });

                        }
                    });

                }
            });
        });

        $('.addToCart form').submit(function () {
            var formData = $(this).serialize();
            $('#youHaveJustAdded').remove();
            $.ajax({
                url: '/Catalog/JustAdded?nocache=' + new Date().getTime(),
                data: formData,
                beforeSend: function () {
                    $("#SectionBanner").after('<div id="youHaveJustAdded"><div id="youHaveJustAddedWrapper" /></div>');
                    $('#youHaveJustAddedWrapper').html("Adding to Cart...");
                    location.href = "#";
                },
                success: function (data) {
                    $('#youHaveJustAddedWrapper').html(data);
                    $('#closeJustAdded').html('<a href="javascript:void(0);">close [x]</a>');
                    $('#closeJustAdded a').click(function () {
                        $('#youHaveJustAdded').remove();
                    });

                    $("#continueShoppingLink").click(function () {
                        $('#youHaveJustAdded').remove();
                    });

                    window.setTimeout(function () {
                        $('#youHaveJustAdded').remove();
                    }, 10000);

                    $.ajax({
                        url: '/CartSummary/Index' + '?' + (new Date().getTime()),
                        success: function (data) {
                            $('#cartSummary').html(data);
                        }
                    });

                },
                error: function (data) {
                    $('#youHaveJustAddedWrapper').html(data);
                    $('#closeJustAdded').html('<a href="javascript:void(0);">close [x]</a>');
                    $('#closeJustAdded a').click(function () {
                        $('#youHaveJustAdded').remove();
                    });
                }
            });
            return false;
        });

        $('.buyNow form').submit(function () {
            var formData = $(this).serialize();
            $('#youHaveJustAdded').remove();
            $.ajax({
                url: '/Catalog/JustAdded' + '?' + (new Date().getTime()),
                data: formData,
                beforeSend: function () {
                    $("#SectionBanner").after('<div id="youHaveJustAdded"><div id="youHaveJustAddedWrapper" /></div>');
                    $('#youHaveJustAddedWrapper').html("Adding to Cart...");
                    location.href = '#';
                },
                success: function (data) {
                    $('#youHaveJustAddedWrapper').html(data);
                    $('#closeJustAdded').html('<a href="javascript:void(0);">close [x]</a>');
                    $('#closeJustAdded a').click(function () {
                        $('#youHaveJustAdded').remove();
                    });

                    window.setTimeout(function () {
                        $('#youHaveJustAdded').remove();
                    }, 10000);

                    $("#continueShoppingLink").click(function () {
                        $('#youHaveJustAdded').remove();
                    });

                    $('#continueShopping #continue').click(function () {
                        $('#youHaveJustAdded').remove();
                    });

                    $.ajax({
                        url: '/CartSummary/Index' + '?' + (new Date().getTime()),
                        success: function (data) {
                            $('#cartSummary').html(data);
                        }
                    });
                },
                error: function (data) {
                    $('#youHaveJustAddedWrapper').html(data);
                    $('#closeJustAdded').html('<a href="javascript:void(0);">close [x]</a>');
                    $('#closeJustAdded a').click(function () {
                        $('#youHaveJustAdded').remove();
                    });
                }
            });
            return false;
        });

        $('#searchContainer form, #searchContainer #searchButton').submit(function () {
            var searchTerm = jQuery.trim($('#searchField').val().replace(/[^a-zA-Z0-9 "]/g, ' '));
            if (searchTerm == '')
                alert('Please enter a search term.');
            else
                window.location = '/Search?search=' + $.URLEncode(searchTerm);
            return false;
        });

        $('.writeAReview').colorbox({ height: 500, iframe: true });
        $('.loginToShowReview').click(function () {
            parent.$.colorbox({ href: $(this).attr('href') + ' #Body', width: 500, height: 250 });
            return false;
        });

        var $selectCompanyLink = $('<a href="' + ('https:' == document.location.protocol ? '/OrganizationSecureSearch' : '/OrganizationSearch') + '" class="selectCompany"><span>&raquo;</span>Select&nbsp;Company</a>');
        $('#BillingOrganization').data('fields', {
            organization: $('#BillingOrganization'),
            address1: $('#BillingAddress'),
            address2: $('#BillingAddress2'),
            city: $('#BillingCity'),
            state: $('#BillingState'),
            zip: $('#BillingZip'),
            phone: $('#UserPhone'),
            accountId: $('#BillingAccountId')

        });
        $('#ShippingOrganization').data('fields', {
            organization: $('#ShippingOrganization'),
            address1: $('#ShippingAddress'),
            address2: $('#ShippingAddress2'),
            city: $('#ShippingCity'),
            state: $('#ShippingState'),
            zip: $('#ShippingZip')
        });

        $('#Organization').data('fields', {
            accountId: $('#OrganizationId'),
            organization: $('#Organization'),
            address1: $('#AddressLine1'),
            address2: $('#AddressLine2'),
            city: $('#City'),
            state: $('#State'),
            zip: $('#Zip')
        });

        $('#Company_StaticCompany').data('fields', {
            accountId: $('#CompanyId,#Company_AccountId,#Company_AccountId_Display'),
            organization: $('#Company_Company'),
            addressNumber: $('#Company_AddressNumber')
        });

        $('#Company_Company').data('fields', {
            accountId: $('#CompanyId,#Company_AccountId,#Company_AccountId_Display'),
            organization: $('#Company_Company'),
            address1: $('#Company_Address1'),
            address2: $('#Company_Address2'),
            city: $('#Company_City'),
            state: $('#Company_State'),
            zip: $('#Company_Zip'),
            country: $('#Company_Country'),
            phone: $('#Company_WorkPhone'),
            addressNumber: $('#Company_AddressNumber')
        });

        $('#loadCompanyInfo').live('click', function () {
            $.ajax({
                url: '/OrganizationSearch/Search' + '?' + (new Date().getTime()),
                data: "id=" + $('#Search').val(),
                beforeSend: function () {
                    $('#SearchResults').addClass('loadingResults');
                },
                success: function (data) {
                    $('#SearchResults').removeClass('loadingResults').html(data);
                }
            });
        });

        //companyFields.state.change();
        $('#BillingCountry').live('change', function () {
            var value = $('#BillingCountry').val();
            if (value == 'USA') {
                $('#billingStateInternationalContainer').css('display', 'none');
                $('#billingStateContainer').css('display', '');
            } else {
                $('#billingStateInternationalContainer').css('display', '');
                $('#billingStateContainer').css('display', 'none');
            }
        });
        $('#BillingCountry').change();

        $('#ShippingCountry').live('change', function () {
            var value = $('#ShippingCountry').val();
            if (value == 'USA') {
                $('#shippingStateInternationalContainer').css('display', 'none');
                $('#shippingStateContainer').css('display', '');
            } else {
                $('#shippingStateInternationalContainer').css('display', '');
                $('#shippingStateContainer').css('display', 'none');
            }
        });
        $('#ShippingCountry').change();

        $('#Country').live('change', function () {
            var value = $('#Country').val();
            if (value == 'USA') {
                $('#stateInternationalContainer').css('display', 'none');
                $('#stateContainer').css('display', '');
            } else {
                $('#stateInternationalContainer').css('display', '');
                $('#stateContainer').css('display', 'none');
            }
        });
        $('#Country').change();

        $('input[type=text]#Organization,input[type=text]#BillingOrganization,input[type=text]#Company_Company').after($selectCompanyLink);
        $('.selectCompany').colorbox({ width: 600, height: 600, iframe: false });
        $('.setCompanyInfo').live('click', function () {
            $.ajax({
                url: 'https:' == document.location.protocol ? '/OrganizationSecureSearch/Account/' + $(this).attr("id") + '?' + (new Date().getTime()) : '/OrganizationSearch/Account/' + $(this).attr("id") + '?' + (new Date().getTime()),
                data: "id=" + $(this).attr("id"),
                success: function (data) {
                    var companyInput = $.colorbox.element().prev();
                    if (companyInput) {
                        var companyFields = companyInput.data('fields');
                        if (companyFields) {
                            if (companyFields.accountId) companyFields.accountId.val(data.accountId).focus();
                            if (companyFields.addressNumber) companyFields.addressNumber.val(data.addressNumber).focus();
                            if (companyFields.address1) companyFields.address1.val(data.address1).focus();
                            if (companyFields.address2) companyFields.address2.val(data.address2).focus();
                            if (companyFields.city) companyFields.city.val(data.city).focus();
                            if (companyFields.state) {
                                companyFields.state.val(data.state).focus();
                                companyFields.state.change();
                            }
                            if (companyFields.zip) companyFields.zip.val(data.zip).focus();
                            if (companyFields.organization) companyFields.organization.val(data.organization).focus();
                            if (companyFields.email) companyFields.email.val(data.email).focus();
                            if (companyFields.phone) companyFields.phone.val(data.phone).focus();
                            $.colorbox.close();
                        }
                    }
                }
            });
        });

    });

})(jQuery);

