var itemTimer;

jQuery(function($) {
    // Your code using failsafe $ alias here...



    $(".enterZip").live("click", function() {
        $(this).parent().siblings(".shipData").toggle();
        return false;
    });

    $(".mainNav .mainLink").each(function(i) {
        var sub = $(this).siblings(".sub");
        var rollover = $(this);
        $(this).parents("li").hoverIntent(function() {
            sub.css({ 'left': '-1px' }).bgiframe();
            rollover.addClass("active");
        }, function() {
            sub.css({ 'left': '-9999em' });
            rollover.removeClass("active");
        });
    });

    $(function() {
        $('#pane1').jScrollPane();
    });


    $("ul.sf-menu").superfish({
        animation: { height: 'show' },
        speed: 100,
        autoArrows: false,
        dropShadows: false
    }).find("ul").bgIframe();

    $(".itemWrapper ul.swatchList li a").live("mouseover", function() {
        $(this).parents(".swatchList").find("a").removeClass("active");
        $(this).addClass("active");
        var newImg = $(this).find(".swatchAlt").html();
        $(this).parents(".itemWrapper").find(".itemImage").attr({ src: newImg });
    });

    $('.altViews li a').live("click", function() {
        $('.zoomWrapper').zoomSwap('reset');

        //the new image
        var newimg = $(this).attr("href");

        //update active status
        var altViews = $(".altViews li")
        altViews.each(function(i) {
            var children = altViews.eq(i).children("a");
            children.each(function(j) {
                if (newimg.toLowerCase().replace('/large/', '').replace('/regular/', '') == children.eq(j).attr("href").toLowerCase().replace('/large/', '').replace('/regular/', '')) {
                    children.eq(j).addClass("active");
                } else {
                    children.eq(j).removeClass("active");
                }
            });
        });

        //find the regular image
        $(".productImage img.mainImage").attr({ src: newimg.toLowerCase().replace('/large/', '/regular/') });

        //find the large image
        $(".zoomWrapper img.mainImage").attr({ src: newimg.toLowerCase().replace('/regular/', '/large/') });

        return false;
    });

    //Banner slide show
    //    $("#homeSSW").cycle({
    //        fx: 'fade',
    //        speed: 300,
    //        timeout: 5000,
    //        pager: '.nav',
    //        pagerAnchorBuilder:pagerFactory

    //    });

    //    function pagerFactory(idx, slide) {
    //        return '<a href="#">&nbsp;</a>';
    //    };




    $(".truncate").truncate({
        max_length: 400,
        more: "read more",
        less: "read less"
    });

    // dialog windows 
    $(".uiModal").dialog({
        autoOpen: false,
        width: "620px",
        bgiframe: true,
        modal: true,
        resizable: false,
        live: false,
        buttons: {
            Close: function() {
                $(this).dialog('close');
            }
        }
    });

    $(".uiDialog").dialog({
        autoOpen: false,
        width: "720px",
        bgiframe: true,
        modal: false,
        resizable: false,
        buttons: {
            Close: function() {
                $(this).dialog('close');
            }
        }
    });

    $(".pageTools .recent").live("click", function() {
        $(".recentDialog").dialog("open");
        return false;
    });

    $(".productExtras a.enlarge").live("click", function() {
        $(".enlargeView").dialog("open");

        $('.zoomWrapper').zoomSwap({
            trigger: '.zoom-trigger',
            reset: '.zoom-reset',
            rPath: 'large'
        });
        
        return false;
    }).css("cursor", "pointer");
    // END dialog windows 


    // carousels 
    $(".modCarousel1 .scrollable").scrollable({
        size: 3,
        items: ".items",
        clickable: false
    });

    $(".modCarousel2 .scrollable").scrollable({
        size: 3,
        items: ".items",
        clickable: false
    });

    $(".modCarousel3 .scrollable").scrollable({
        size: 3,
        items: ".items",
        clickable: false
    });

    $(".modCarousel4 .scrollable").scrollable({
        size: 3,
        items: ".items",
        clickable: false
    });


    $(".modCarousel5 .scrollable").scrollable({
        size: 5,
        items: ".items",
        clickable: false
    });

    $(".scrollable").each(function() {
        var mcHeight = $(".itemWrapper:first", this).height();
        $(this).css({ 'height': 194 });
    });
    // END carousels 

    // tabs 
    $(".tabModule .tabsRow").tabs();
    $(".carouselTabModule .tabsRow").tabs();
    $(".rsrcsTabModule .tabsRow").tabs();
    $(".cartSupport .supportTabs").tabs();
    // END tabs 

    $(".swatchList a").cluetip({
        cluetipClass: 'swatch',
        width: '178px',
        positionBy: 'fixed',
        topOffset: '-122px',
        leftOffset: '-115px',
        local: true,
        dropShadow: false,
        showTitle: false
    });

    // Item Added to Cart Slider
    $("#item-dialog").mouseover(function() { clearTimeout(itemTimer); });
    $("#item-dialog").mouseout(function() { itemTimer = setTimeout(function() { hideItemSlider(); }, 1500); });
    // END Item Added

    /* BEGIN QUICK BUY */
    var sBuyNow = '';
    sBuyNow += '<div id="detailView">';
    sBuyNow += '	<input type="hidden" id="hdn_sel" />';
    sBuyNow += '	<h5 class="hdng2 hdng-item-dialog">Product Details</h5>';
    sBuyNow += '	<div class="close">CLOSE X</div>';
    sBuyNow += '	<div class="pad">';
    sBuyNow += '    	<div class="leftCol">';
    sBuyNow += '    		<div class="productImage"><a href="#" class="imgEnlarge"><img class="mainImage" src="/images/spacer.gif" alt="" /><img class="btnEnlarge" src="/images/layout/icon_enlarge.gif" style="width:37px; height:37px;" alt="Enlarge View" /></a></div>';
    sBuyNow += '	        <div class="productDetails">';
    sBuyNow += '        		<div class="imgLabel" style="width:88px; height:13px; background-image:url(/images/layout/lbl_altviews.gif);">Alternative Views</div>';
    sBuyNow += '            	<ul class="altViews" id="altImages">';
    sBuyNow += '            	</ul>';
    sBuyNow += '	            <div class="clear">&nbsp;</div>';
    sBuyNow += '	        </div>';
    sBuyNow += '	        <div class="productDetails center">';
    sBuyNow += '    		    <div class="detailsRow" id="itemCallouts">';
    sBuyNow += '	            </div>';
    sBuyNow += '	        </div>';
    sBuyNow += '	        <div class="productDetails center">';
    sBuyNow += '                <a class="itemAnchor" href="#">Go to Product &raquo;</a>';
    sBuyNow += '	        </div>';
    sBuyNow += '	    </div>';
    sBuyNow += '    	<div class="rightCol">';
    sBuyNow += '	    	<strong class="itemTitle center larger"><a class="itemAnchor" href="#" id="hdngItemName"></a></strong>';
    sBuyNow += '	        <div class="productDetails">';
    sBuyNow += '	        	<div class="itemSku">';
    sBuyNow += '	        		sku# <span id="spanSKU"></span>';
    sBuyNow += '	        	</div>';
    sBuyNow += '	        </div>';
    sBuyNow += '    		<p id="pShortDesc"></p>';
    sBuyNow += '    		<div id="Selections"></div>';
    sBuyNow += '    		<div class="productDetails">';
    sBuyNow += '    		    <div class="detailsRow">';
    sBuyNow += '    		        <div class="itemPrice">';
    sBuyNow += '    		            Price: <span id="spanPrice">';
    sBuyNow += '    		            </span>';
    sBuyNow += '    		            <div id="itemPricing"></div>';
    sBuyNow += '    		        </div>';
    sBuyNow += '    		    </div>';
    sBuyNow += '    		</div>';
    /* BEGIN CERTIFICATES */
    sBuyNow += '            <div class="itemDesc" id="qvCert">';
    sBuyNow += '                <div class="rowLabel">Customize</div>';
    sBuyNow += '                <div style="margin-bottom: 6px;" class="detailsRow">';
    sBuyNow += '                    Customize your Gift Certificate by completing the following fields. Fields in <span class="bold">bold</span> are required.';
    sBuyNow += '                </div>';
    sBuyNow += '                <div style="margin-bottom: 6px;" class="detailsRow">';
    sBuyNow += '                    <label class="bold">From Name:</label><input type="text" class="text" id="txtCertificateFromName" maxlength="30" size="30" name="txtCertificateFromName" autocomplete="off" />';
    sBuyNow += '                </div>';
    sBuyNow += '                <div style="margin-bottom: 6px;" class="detailsRow">';
    sBuyNow += '                    <label class="bold">To Name:</label><input type="text" class="text" id="txtCertificateToName" maxlength="25" size="25" name="txtCertificateToName" autocomplete="off" />';
    sBuyNow += '                </div>';
    sBuyNow += '                <div style="margin-bottom: 6px;" class="detailsRow">';
    sBuyNow += '                    <label class="bold">Delivery Method:</label>';
    sBuyNow += '                    <select id="drpCertificateType" name="drpCertificateType" onchange="this.value==\'Email\'?$(\'#cemail\').show():$(\'#cemail\').hide();" >';
    sBuyNow += '                    </select>';
    sBuyNow += '                </div>';
    sBuyNow += '                <div style="margin-bottom: 6px;" id="cemail" class="detailsRow">';
    sBuyNow += '                    <label class="bold">Recipient E-mail:</label>';
    sBuyNow += '                    <input type="text" class="text" id="txtCertificateToEmail" maxlength="50" name="txtCertificateToEmail" size="30" autocomplete="off" />';
    sBuyNow += '                </div>';
    sBuyNow += '                <div class="detailsRow">';
    sBuyNow += '                    <label>Message:</label>';
    sBuyNow += '                    <input type="text" class="text" id="txtCertificateMessage" maxlength="100" name="txtCertificateMessage" size="30" autocomplete="off" />';
    sBuyNow += '                </div>';
    sBuyNow += '            </div>';
    /* END CERTIFICATES */
    sBuyNow += '            <div class="productDetails">';
    sBuyNow += '                <div class="detailsRow">';
    sBuyNow += '                    <label class="rowLabel">Select a Qty</label>';
    sBuyNow += '                    <input type="text" class="text integer" style="width:30px;" id="txtQty" maxlength="4" name="txtQty" value="1" />';
    sBuyNow += '                </div>';
    sBuyNow += '            </div>';
    sBuyNow += '            <div class="productDetails" id="divRecipient">';
    sBuyNow += '                <div class="detailsRow">';
    sBuyNow += '                    <label class="rowLabel">Ship To</label>';
    sBuyNow += '                    <select id="drpRecipient"></select>';
    sBuyNow += '                    <div id="divNew" class="hide">';
    sBuyNow += '                        <input type="text" id="txtRecipient" class="text" columns="30" maxlength="50" style="width:130px;" />';
    sBuyNow += '                        <p class="note">Enter full name. We\'ll ask for delivery information at checkout.</p>';
    sBuyNow += '                    </div>';
    sBuyNow += '                </div>';
    sBuyNow += '            </div>';
    sBuyNow += '		    <div class="clear">&nbsp;</div>';
    sBuyNow += '		    <div id="emailContainer"></div>';
    sBuyNow += '    	    <div style="margin-top:10px;">';
    sBuyNow += '    	        <span class="btnWrapper btnAddToCart"><input type="button" class="btn" id="btnAdd2Cart" value="Add To Cart" /></span>';
    sBuyNow += '                <span class="btnWrapper btnWishlist"><input type="button" id="btnWishlist" class="btn" value="[ + ] Add To Wishlist" /></span>';
    sBuyNow += '    	    </div>';
    sBuyNow += '    	</div>';
    sBuyNow += '	    <div class="clear">&nbsp;</div>';
    sBuyNow += '    </div>';
    sBuyNow += '</div>';

    $(".itemWrapper").each(function() {
        var me = $(this);
        var wrp = $(this).find("span.btnWrapper");
        $(this).mouseenter(function() { wrp.show(); });
        $(this).mouseleave(function() { wrp.hide(); });

        var btn = wrp.find("input");
        btn.click(function() {
            $("#detailView").remove();
            var ItemId = me.find("input[type=hidden]").val();
            $.get("/ajax.aspx?F=BuyNow&ItemId=" + ItemId, function(o) {
                o = eval('(' + o + ')');
                if (!o.Success) return;
                $("body").prepend(sBuyNow);
                $(".productDetails ul.textLink").equalWidths(true);
                var dtl = $("#detailView");

                // initialize the selections script
                /* BEGIN CERTIFICATES */
                window[o.Variable] = new Selections({ IsQuickBuy: true, Variable: o.Variable, Container: 'Selections', EnableInventory: o.EnableInventory, AddToCartBtn: o.AddToCartBtn, AddToWishlistBtn: 'btnWishlist', EmailContainerId: o.EmailContainerId, QuantityTextBox: o.QuantityTextBox, RecipientDropDown: 'drpRecipient', RecipientTextBox: 'txtRecipient', Properties: o.Properties, Items: o.Items, SelectedItem: o.SelectedItem, IsCertificate: o.IsCertificate, CertFromName: 'txtCertificateFromName', CertToName: 'txtCertificateToName', CertType: 'drpCertificateType', CertToEmail: 'txtCertificateToEmail', CertMessage: 'txtCertificateMessage' });
                if (!window[o.Variable].options.IsCertificate) {
                    $("#qvCert").hide();
                } else {
                    var s = '';
                    if (o.CertificateType == 1 || o.CertificateType == 2) s += '<option value="Email">E-mail</option>';
                    if (o.CertificateType == 1 || o.CertificateType == 3) s += '<option value="Paper">Postal</option>';
                    var drp = $("#drpCertificateType");
                    drp.html(s);
                    drp.val() == 'Email' ? $('#cemail').show() : $('#cemail').hide();
                }
                /* END CERTIFICATES */

                // show/hide recipient information
                if (o.MultipleShipTo) {
                    $("#divRecipient").show();
                    var html = '';
                    for (var r = 0; r < o.Recipients.length; r++) {
                        var R = o.Recipients[r];
                        html += '<option value="' + R.Value + '">' + R.Text + '</option>';
                    }
                    html += '<option value="OtherSpecify">Other (specify)</option>';
                    $("#drpRecipient").change(function() { $(this).val() == "OtherSpecify" ? $("#divNew").show() : $("#divNew").hide(); }).html(html);
                    $("#txtRecipient").keypress(function(e) { return window[o.Variable].HandleKeyPress(e); });
                } else {
                    $("#divRecipient").hide();
                }

                // create the selections controls
                window[o.Variable].Create();

                // populate the item properties
                if (o.ItemProperties) window[o.Variable].HandleItemInfo(o);

                // allow only numeric values in quantity box and handle enter button
                $(".integer").numeric().keypress(function(e) { return window[o.Variable].HandleKeyPress(e); });

                $(".imgEnlarge").click(function() { NewWindow("/store/Enlarge.aspx?ItemId=" + ($("#hdnItem_" + o.Variable).val() == "" ? window[o.Variable].options.Items[0].i : $("#hdnItem_" + o.Variable).val()), 'EnlargeView', 720, 475, 'Yes', 'No') });

                // center the window, add dragging capability, bind click event for close button, and show the window
                dtl.center().draggable({ handle: ".hdng-item-dialog" }).find(".close").click(function() { dtl.remove(); return false; }).show();

                ////uncomment to keep window centered on page
                //$(window).scroll(function() {
                //    dtl.center();
                //});
            });

            return false;
        });
    });
    /* END QUICK BUY */

    $(".toggleMsg").click(function() {
        var target = $(".welcomMsg");
        target.toggle();
        $(this).toggleClass("active");
        if (target.length) {
            var targetOffset = target.offset().top;
            $("html,body").animate({ scrollTop: targetOffset }, "fast");
        }
        return false;
    });

    $(".emailSignup input[title]").inputHints();

    $('#promoOffer-trigger').click(function() {
        $.blockUI({
            message: $('#promoOfferPopup'),
            css: {
                textAlign: 'left',
                border: '0',
                width: '600px',
                top: '10%',
                left: '33%',
                cursor: 'default'
            },
            overlayCSS: {
                backgroundColor: '#fff',
                opacity: 0.75
            }
        });
        $('.blockOverlay, #promoOfferPopup .closeBtn').click($.unblockUI);
        return false;
    });


    $(".toolTip").bgIframe();

    $(".toolTipTrigger").tooltip({
        position: "top center",
        delay: 200,
        events: {
            def: 'click, mouseout'
        }
    }).dynamic({
        // customized configuration on bottom edge 
        bottom: {
            direction: 'down'
        },
        right: {
            direction: 'right'
        }
    });

    $(".ratingBreakdown-trigger").tooltip({
        position: "bottom center",
        delay: 200,
        offset: [15, 40],
        events: {
            def: 'mouseover, mouseout'
        }
    }).dynamic({
        // customized configuration on bottom edge 
        top: {
            direction: 'up',
            offset: [-5, 40]
        },
        right: {
            direction: 'right'
        }
    });

    $(".addTag-trigger").tooltip({
        position: "top center",
        delay: 700,
        events: {
            def: 'click, mouseout'
        }
    }).dynamic({
        // customized configuration on bottom edge 
        bottom: {
            direction: 'down'
        },
        right: {
            direction: 'right'
        }
    });

    $('.hover-star').rating({
        focus: function(value, link) {
            var tip = $(this).parent().find('.hover-text');
            tip[0].data = tip[0].data || tip.html();
            tip.html(link.title || 'value: ' + value);
        },
        blur: function(value, link) {
            var tip = $(this).parent().find('.hover-text');
            tip.html(tip[0].data || '');
        }
    });

    // keep at end
    $(".itemRow").equalHeights(true);
    $(".modCarousel .items").equalHeights(true);
    $(".columnRow").equalHeights(true);
    $(".productDetails ul.textLink").equalWidths(true);
});

function showItemSlider() {
    clearTimeout(itemTimer);
    $("#item-dialog").slideDown(300).bgiframe();
    itemTimer = setTimeout(function() { hideItemSlider(); }, 5000);
}
function hideItemSlider() {
    $("#item-dialog").slideUp(150);
}

function showRecentCart() {
    var rcart = $(".recent-cart")
    var rcartTimer = 0;

    rcartTimer = setTimeout(function() { rcart.slideUp("fast"); }, 6000);

    rcart
		.css("top", "20px")
		.hide()
		.slideDown("fast")
		.animate({ "right": "30px" }, 30)
		.animate({ "right": "20px" }, 50)
		.animate({ "right": "26px" }, 20)
		.find(".close-cart").click(function() {
		    rcart.slideUp("fast");
		    return false;
		})
		.mouseenter(function() { clearTimeout(rcartTimer); })
		.mouseleave(function() {
		    rcartTimer = setTimeout(function() { rcart.slideUp("fast"); }, 50000);
		});

    name = ".recent-cart";
    var menuYloc = null;
    menuYloc = parseInt($(name).css("top").substring(0, $(name).css("top").indexOf("px")))
    rcart.css("top", $(this).scrollTop() + 20 + "px");
    $(window).scroll(function() {
        var offset = menuYloc + $(document).scrollTop() + "px";
        $(name).animate({ top: offset }, { duration: 500, queue: false });
    });
};

