var LUCKYCHIC = function() {
    return {
        init: function() {

            LUCKYCHIC.shipping.init();

            LUCKYCHIC.gallery.init();

            LUCKYCHIC.nav.init();

            LUCKYCHIC.rollover.init();

            LUCKYCHIC.confirmationlinkHandler();

            LUCKYCHIC.externalLinkHandler();

            var redirectSubmit = function() {
                $("#payment-redirect FORM").each(function() { this.submit(); });
            };
            setTimeout(redirectSubmit, 3000);

            $("FORM A.submit-trigger").click(function() { $(this).closest("FORM").submit(); return false });

            try {
                document.execCommand('BackgroundImageCache', false, true);
            } catch(e) {}

        },

        shipping: {
            init: function() {
                $("#shipping-options-summary INPUT").click(LUCKYCHIC.shipping.tally);
            },


            tally: function() {

                var item_cost = $("#item-cost TD:first").asNumber();
                var tax_cost = $("#tax-cost TD:first").asNumber();
                var shipping_cost = $("#shipping-cost TD:first").asNumber();
                var selected_shipping = $(this).nextAll("SPAN:first").asNumber();
                var selected_shipping_type = $(this).nextAll("LABEL").text();

                $("FORM INPUT[name='shipping']").attr("value", $(this).attr("value"));
                $("FORM INPUT[name='shipping_type']").attr("value", selected_shipping_type);

                $("#shipping-cost TD:first").html(selected_shipping).formatCurrency();
                $("#total-cost TD:first STRONG").html(item_cost + tax_cost + selected_shipping).formatCurrency();

                return true;
            }

        },
        gallery: {
            init: function() {
                $("#product-thumbnails A").mouseover(LUCKYCHIC.gallery.display);
                if (typeof $.fn.jqzoom === "function") {
                    $("#product-thumbnails A").jqzoom({zoomWidth: 350, zoomHeight: 350});
                }
            },

            display: function(e) {
                $("#primary-image IMG:first").attr("src", $(this).attr('rel'));
                return true;
            }
        },

        nav: {
            init: function() {
                $("#site-nav-main-menu").superfish({hoverClass:'over', delay: 400, speed:'fast', dropShadows: false, autoArrows: false});
            }
        },

        rollover: {
            overPattern: /-over(.[gifjpn]{3}$)/,
            offPattern: /(.[gifjpn]{3}$)/,
            init: function() {
                $("#doc-body INPUT.rollover").mouseover(LUCKYCHIC.rollover.overState);
                $("#doc-body INPUT.rollover").mouseout(LUCKYCHIC.rollover.offState);
                $("IMG.rollover").mouseover(LUCKYCHIC.rollover.overState);
                $("IMG.rollover").mouseout(LUCKYCHIC.rollover.offState);

            },

            overState: function(e) {
                if ($(e.target).hasClass("block-rollover")) return true;
                if ($(this).attr("rel") == "login") {
                    e.target.src = e.target.src.replace("-bid", "-bid-login");
                } else {
                    e.target.src = e.target.src.replace(LUCKYCHIC.rollover.offPattern, "-over$1");
                }
                return true;
            },

            offState: function(e) {
                if ($(e.target).hasClass("block-rollover")) return true;
                if ($(this).attr("rel") == "login") {
                    e.target.src = e.target.src.replace("-bid-login", "-bid");
                } else {
                    e.target.src = e.target.src.replace(LUCKYCHIC.rollover.overPattern, "$1");
                }
                return true;
            }
        },

        /**
         * Open links with rel="external" in a new window.
         */
        externalLinkHandler: function() {
            jQuery("a[rel*='external']").attr("target","_blank");
        },

        /**
         * Open links with rel="confirm" in a new window.
         */
        confirmationlinkHandler: function() {
            var callback = function(e) {
                return confirm("Are you sure?");
            };
            jQuery("a[rel*='confirm']").click(callback);
        }


    };
}();

$(document).ready(LUCKYCHIC.init);