﻿var AddToCartJsonUrl = '/addToCart.aspx?ref=json';

// overwrite all add to cart links with the overlay calls when the page is loaded
$(document).ready(function(){
    var links = $("a");
    var href;
    var index;
    var queryString;
    var qsValueArray;
    var qsArray;
    var onClick;
    var pid;
    var gid;
    var rempid;
    var giftNow;
    var buyNow;
    var removeAll;
    
    // loop through list of links
    jQuery.each(links, function(i, link){
        href = $(link).attr("href");
        if (href && href.toLowerCase().indexOf("addtocart.aspx") > -1)
        {
            pid = gid = rempid = 0;
            giftNow = buyNow = removeAll = null;
            
            // look for querystring
            index = href.indexOf("?");
            queryString = href.substring(index + 1);
            qsArray = queryString.split("&");
            
            // go through each key/value pair
            for(var i = 0; i < qsArray.length; i++)
            {
                qsValueArray = qsArray[i].split("=");
                
                // assign values based on querystring
                switch (qsValueArray[0].toLowerCase())
                {
                    case "pid": 
                        pid = qsValueArray[1]; 
                        break;
                    case "gid":
                        gid = qsValueArray[1];
                        break;
                    case "rempid":
                        rempid = qsValueArray[1];
                        break;
                    case "giftnow":
                        giftNow = qsValueArray[1];
                        break;
                    case "buynow":
                        buyNow = qsValueArray[1];
                        break;
                    case "removeall":
                        removeAll = qsValueArray[1];
                        break;
                }
            }
            
            // replace href in links with javascript
            if (!(giftNow || buyNow || removeAll))
            {
                if (rempid > 0)
                    $(link).attr("href", "javascript:removeProductFromCart(" + rempid + ");");    
                else if (gid > 0 && pid > 0)
                    $(link).attr("href", "javascript:addProductToCart(" + pid + ", " + gid + ");");
                else if (pid > 0)
                    $(link).attr("href", "javascript:addProductToCart(" + pid + ");");
            }
        }
    })
})

function getData()
{
    showLoading();
    $.getJSON(AddToCartJsonUrl, showData);
}

function addProductToCart(productID)
{
    showLoading();
    $.getJSON(AddToCartJsonUrl, {pid: productID}, overlayShowData);
}

function addProductToCart(productID, genreID)
{
    showLoading();
    $.getJSON(AddToCartJsonUrl, {pid: productID, gid: genreID}, overlayShowData);
}

function removeProductFromCart(productID)
{
    $.getJSON(AddToCartJsonUrl, {rempid: productID}, showData);
}

function removeProductFromOverlay(productID)
{
    $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
    showLoading();
    
    $.getJSON(AddToCartJsonUrl, {rempid: productID}, overlayShowData);
}

function overlayShowData(jsonData)
{
    showData(jsonData);
    
    var height = $("#cartOverlayWrapper").height() + 10;
    
    // display overlay
    tb_callshow("", "#TB_inline?width=584&height=" + height + "&inlineId=cartOverlayWrapper", "");
}

function showData(jsonData)
{
    var productCount = jsonData.Products.length;
    var info = $("#cartOverlayDiv");
	var cartTotalDiv = $("#cartTotalDiv");
    var cartMiniDiv = $("#cartMiniDiv");
	var cartMaxItems = $("#cartMaxItems");
	var cartOverlayNoItems = $("#cartOverlayNoItems");
	var cartOverlayDP = $("#cartOverlayDP");
	var noItemsDiv = $("#noItemsDiv");
	var cartOverlayRight = $(".cartOverlayRight");
    var maxItemsDiv;
    var cartProductsDiv;
    
    
    // clear overlay contents
    info.html("");
    
    // clear cartmini html
    cartMiniDiv.html("");
	
    if (productCount == 0)
    {
        noItemsDiv.html('<div class="noitems">Your shopping cart is empty</div>');
        noItemsDiv.show();
        cartOverlayNoItems.show();
        cartMiniDiv.hide();
        cartOverlayDP.hide();
        cartTotalDiv.hide();
        cartOverlayRight.hide();
    }
    else
    {
        noItemsDiv.hide();
        cartOverlayNoItems.hide();
        cartMiniDiv.show();
		cartTotalDiv.show();
		cartOverlayDP.show();
		
		cartOverlayRight.show();
        
        // create divs for content
        cartMiniDiv.append('<div id="maxItemsDiv"/>');
        cartMiniDiv.append('<div id="cartProductsDiv"/>');
        
        maxItemsDiv = $("#maxItemsDiv");
        cartProductsDiv = $("#cartProductsDiv");
		
		cartOverlayDP.html('<div class="dpro">' +
						   '<div class="one">' +
						   '<img src="/Sites/RET/_img/checkout/overlay/dp_logo.gif" width="265" height="39" alt="Download Protection" />' +
						   '<div class="link">' +
						   '<a href="javascript:DP();">what is this?</a>' +
						   '</div>' +
						   '</div>' +
						   '<div class="two">' +
						   '<img src="/Sites/RET/_img/checkout/overlay/free.gif" width="57" height="32" alt="FREE" />' +
						   '</div>' +
						   '<div class="price">' +
						   '$0.00' +
						   '</div>' +
						   '</div>');


        if (productCount >= MaxProducts)
        {
            // cartmini max items warning
            maxItemsDiv.append('<div class="maxcontainer">' +
						       '<div class="max">' +
							   '<div class="exclamation"><img src="/Sites/RET/_img/icons/exclamation.gif" width="18" height="16" border="0" /></div>' +
							   '<div class="maxitems">Max Items:&nbsp;' + MaxProducts + '</div>' +
						       '</div>' +
					           '</div>');
			
			// overlay max items warning
            cartMaxItems.html('<a href="#" class="tt">' +
							  '<img src="/Sites/RET/_img/btnQuickLook_off.gif" width="18" height="17" border="0" />' +
							  '<span class="tooltip">' +
							  '<span class="middle">' +
							  'A maximum of ' + MaxProducts + ' products may be added to your shopping cart' +
							  '</span>' +
							  '</span>' +
							  '</a>' +
							  '&nbsp;Your Cart is Full');
            
            maxItemsDiv.show();
            cartMaxItems.show();
        }
        else
        {
            maxItemsDiv.hide();
            cartMaxItems.hide();
        }
					      
		// cartmini subtotal section
        cartMiniDiv.append('<div class="subtotalcontainer">' +
		                   '<div class="subtotal"></div>' +
	                       '</div>');
	                       
	    // cartmini checkout button
	    cartMiniDiv.append('<div class="checkoutbtn">' +
		                   '<a href="/checkout.aspx" class="chkOut">Checkout</a>' +
	                       '</div>');

    }

    // Generate HTML for each product
    for(var x = 0; x < productCount; x++)
    {    


		var couponList = jsonData.Products[x].Coupons;
		var couponsString = "";
		if(couponList !=null)
		{
			var couponsCount = couponList.length ;
	    
			for(var y = 0; y < couponsCount; y++)
			{
				couponsString = couponsString + ('<div class="promoprice_overlay">' + jsonData.Products[x].Coupons[y] + '</div>');
						
			}
		}         
		
		var priceDiv = '<div class="cartOverlayPrice">' +
				    jsonData.Products[x].Price  +
				    '</div>';
		if(jsonData.Products[x].Price != jsonData.Products[x].OriginalPrice)
		{
			priceDiv = '<div class="OriginalPrice_Overlay">' +
				    jsonData.Products[x].OriginalPrice  +
				    '</div>' + priceDiv;
		}
		
		
        // HTML for Cart Overlay
        info.append('<div id="cartOverlay">' +
				    '<div class="one">' +
				    '<div id="cartOverlayImage">' +
				    '<img src="/images/product/icon/' + jsonData.Products[x].ProductID + '.jpg">' +
				    '</div>' +
				    '<div class="cartOverlayName">' +
				    jsonData.Products[x].Name +
				    '</div>' +
				    couponsString +
				    '</div>' +
				    '<div class="two">' +
				    '1 - <a href="javascript:void(0);" onclick="removeProductFromCart(' + jsonData.Products[x].ProductID + ');">remove</a>' +
				    '</div>' +
				    '<div class="three2">' +
				     priceDiv +
				    '</div>' +
				    '</div>');
			

          
        // HTML for CartMini
        cartProductsDiv.append('<div class="icon">' +
                               '<div class="productname2">' +
                                jsonData.Products[x].Name);
                               


	
    
		//Hide if the price matches
		if(jsonData.Products[x].Price != jsonData.Products[x].OriginalPrice)
		{
			  cartProductsDiv.append( '<div class="original_padding">' +
			                          '<div class="originalprice_mini">' + jsonData.Products[x].OriginalPrice + '</div></div>');  
    
		}
		
		                
    
		
		cartProductsDiv.append( '<div class="original_padding2">' +
		                        '<div><a href="javascript:removeProductFromCart(' + jsonData.Products[x].ProductID + ');" class="remove">remove</a></div>' +
		                        '<div class="price">' + jsonData.Products[x].Price + '</div></div>');
    
    }
    
    
	        
    $(".subtotal").html("Total Cost: " + jsonData.Subtotal);
    
    cartTotalDiv.html('<div class="one">' +
				      'Total Cost:' +
				      '</div>' +
				      '<div class="sub">' +
				      jsonData.Subtotal +
				      '</div>');
				      		
    hideLoading();
    try
    {
        setCartOverlayEvents();
    }
    catch(err)
    {
    }
}

function showLoading()
{
    fadeBackground();
    $("body").append("<div id='TB_load'><img src='"+tb_pathToImage+"' /></div>"); //add loader to the page
	$('#TB_load').show(); //show loader
}

function hideLoading()
{
    $('#TB_load').remove();
}

function fadeBackground()
{
    if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
		$("body","html").css({height: "100%", width: "100%"});
		$("html").css("overflow","hidden");
		if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
			$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}else{//all others
		if(document.getElementById("TB_overlay") === null){
			$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}
    if(tb_detectMacXFF()){
		$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
	}else{
		$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
	}
}

function DP()
{
    window.open('/Sites/RET/_includes_prod/dp.htm', 'dp', 'width=430, height=280, resizable=no, scrollbars=no, status=no, toolbar=no'); 
}

function setCartOverlayEvents()
{
    urchinTracker("/atc_overlay");
    
    $("#TB_overlay").click(function() {cartOverlayClose("/atc_overlay/clickout")});
    $("#cartOverlay_close").click(function() {cartOverlayClose("/atc_overlay/close")});
    $("#cartOverlay_continue").click(function() {cartOverlayClose("/atc_overlay/continue")});
    $("#cartOverlay_checkout").click(function() {cartOverlayClose("/atc_overlay/checkout")});
    
    document.onkeyup = function(e)
    { 	
		if (e == null) { // ie
			keycode = event.keyCode;
		} else { // mozilla
			keycode = e.which;
		}
		if(keycode == 27){ // close
			cartOverlayClose("/atc_overlay/esc");
		}	
	};
}

function cartOverlayClose(path)
{
    urchinTracker(path);
    tb_remove();
}

function CreateCookie(name, value, days) 
{
    if (days) 
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function CheckCookieExists(name) 
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) 
    {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function DisplayPromotionOverlay()
 {
    $('#TB_load').show();
    tb_callshow("", "#TB_inline?width=534&height=487&inlineId=romotionOverlay", "");
}
