(function($) {

    $.openProductQuickViewDialog = function(id) {
        $.globalVars.dialogs.$loading.dialog("open");
        $.get("/Browse/GetProductQuickView/" + id, null, function(html) {
            $.globalVars.dialogs.$loading.dialog("close");
            $.globalVars.dialogs.$productQuickView.html(html);
            var wrapper = $.globalVars.dialogs.$productQuickView;
            var $mainImgWrapper = wrapper.find('#mainImgWrapper');
            var $productImg = wrapper.find('#product_img');
            wrapper.find('.images .altImages a').click(function() {
                var imgSrc = $(this).attr('href');
                var prodImgSrc = $productImg.attr("src");
                prodImgSrc = prodImgSrc.substr(0, prodImgSrc.indexOf("p=", 0));
                $productImg.attr("src", prodImgSrc + "p=" + imgSrc);
                return false;
            });

            var $tabs = wrapper.find('#relatedItemTabs').tabs();

            var $btnAddToCart = wrapper.find('#product_btn_addToCart');
            var $btnEmailFriend = wrapper.find('#product_btn_emailFriend');
            var $btnAddToWishList = wrapper.find('#product_btn_addToWishList');
            var $addToCartForm = wrapper.find('#addToCartForm');
            var $qty = $addToCartForm.find('#product_qty');

            $addToCartForm.submit(function() {
                $.globalVars.dialogs.$loading.dialog("open");
                if (isNaN($qty.val())) $qty.val("1");
                $.get($addToCartForm.attr("action") + "/" + id, $addToCartForm.serialize(), function(html) {
                    $.globalVars.dialogs.newItemInCart.html(html);
                    $.globalVars.dialogs.newItemInCart.find('#newItemInCart_close').click(function() { $.globalVars.dialogs.newItemInCart.dialog("close"); return false; });
                    $.globalVars.dialogs.newItemInCart.dialog("open");
                    $.globalVars.dialogs.$loading.dialog("close");
                }, "html");
                return false;
            });


            $btnAddToWishList.click(function() {
                $.globalVars.dialogs.$loading.dialog("open");
                $.get("/Browse/AddItemToWishList/" + id, null, function(html) {
                    $.globalVars.dialogs.newItemInWishList.html(html);
                    $.globalVars.dialogs.newItemInWishList.find('#newItemInWishList_close').click(function() { $.globalVars.dialogs.newItemInWishList.dialog("close"); return false; });
                    $.globalVars.dialogs.newItemInWishList.dialog("open");
                    $.globalVars.dialogs.$loading.dialog("close");
                }, "html");
                return false;
            });
            
            $btnEmailFriend.click(function() {
                $.globalVars.dialogs.$emailFriend.find('#dialog_emailFriend_productId').val(id);
                $.globalVars.dialogs.$emailFriend.dialog("open");
                return false;
            });

            wrapper.find('select[fixedpricing=1]').change(function() {
                wrapper.find('#attributePrice').html($(this).find('option:selected').attr("price"));
            });

            $.globalVars.dialogs.$productQuickView.dialog("open");
        }, "html");
    };

    $.register = $.extend({
        browseScript: function(json) {
            $(document).ready(function() {
                var wrapper = $(json.wrapper);
                wrapper.find('#pager_dropdown').change(function() {
                    window.location = "?page=" + $(this).val() + "&pageSize=" + json.pageSize + "&sortBy=" + json.sortBy;
                });
                wrapper.find('#pageSize_dropdown').change(function() {
                    window.location = "?page=1&pageSize=" + $(this).val() + "&sortBy=" + json.sortBy;
                });
                wrapper.find('#sortBy_dropdown').change(function() {
                    window.location = "?page=" + json.currentPage + "&pageSize=" + json.pageSize + "&sortBy=" + $(this).val();
                });

                wrapper.find('a[rel=productImg]').hover(function() {
                    $(this).nextAll('.quickView').show();
                }, function() {
                    $(this).nextAll('.quickView').hide();
                });
                wrapper.find('.quickView').hover(function() {
                    $(this).show();
                }, function() {
                    $(this).hide();
                });

                $.globalVars.dialogs.$productQuickView = wrapper.find('#dialog_productQuickView').dialog({
                    productId: -1,
                    autoOpen: false,
                    modal: true,
                    width: json.productQuickViewDialogWidth,
                    sticky: false
                });
                $.globalVars.dialogs.newItemInCart = wrapper.find('#dialog_newItemInCart').dialog({
                    autoOpen: false,
                    modal: true,
                    width: 500
                });
                $.globalVars.dialogs.newItemInWishList = wrapper.find('#dialog_newItemInWishList').dialog({
                    autoOpen: false,
                    modal: true,
                    width: 500
                });
            });
        }
    }, $.register);

})(jQuery);