$(document).ready(function() {

   if(showOtherCustomersAlsoBought == 'True')
        GetCustomersAlsoBought();
    
});

_cabBulkPrices = [];
_cabBulkQtyThresholds = [];

function _hideCabOnError(){
		$("#new_cab").hide();
		$('#new_cab_header').hide();
}

function GetCustomersAlsoBought() {
    $.ajax({
        type: "POST",
        url: "/CartA.aspx/GetCustomersAlsoBought",
        data: "{'storeID':'" + document.siteObject.storeID  + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function(XMLHttpRequest, textStatus, errorThrown) { _hideCabOnError(); },
        success: function(msg) {
			var cabUL = document.createElement('ul');
				cabUL.className = 'cab_container';
				
            if (msg.d.length > 0) {
                _otherCustomersAlsoBoughtCols = msg.d.length; //so we know how many columns we've built, so that recommended items can backfill properly
                //add item columns
                var colWidth = parseFloat(99 / msg.d.length);
                for (var i = 0; i < msg.d.length; i++) {
                    var obj =  msg.d[i];
                    if (!isValidInstanceNonEmpty(obj))
                        continue;

                    var colClass = "cabMiddle";
                    if (i == 0)
                        colClass = "cabFirst";
                    else if (i == (msg.d.length - 1))
                        colClass = "cabLast";

                    var tbId = "txtCustomersAlsoBought" + i;
                    var lblPriceId = "lblPrice" + i;
					
					var cabLI = document.createElement('li'); 
						cabLI.className = colClass;
						cabLI.style.width = colWidth.toFixed(1)+'%';
					
					var cabA = document.createElement('a'); 
						cabA.setAttribute("href",obj.ItemUrl);
						cabA.className = "customers_also_bought_img_holder";
						var cabIMG = document.createElement('img');
							cabIMG.setAttribute("src",obj.ImageUrl);
							cabIMG.className = "customers_also_bought_img";
						cabA.appendChild(cabIMG);
					
					var cabA2 = document.createElement('a');
						cabA2.setAttribute("href",obj.ItemUrl);
						cabA2.className = "productName thickbox diffMatLink";
						cabA2.appendChild(document.createTextNode(obj.ItemName));
						
						cabLI.appendChild(cabA);
						cabLI.appendChild(cabA2);
					
                    if (obj.IsRecommended == 1)
                    {
                        var cabTEMP1 = document.createElement('span');
							cabTEMP1.className = "cab_template_description";
							cabTEMP1.appendChild(document.createTextNode(obj.Description)); 
						
						var cabTEMP2 = document.createElement('span');
							cabTEMP2.className = "cab_template_choose_text";
							cabTEMP2.appendChild(document.createTextNode("Choose Your Design!")); 
							
						var cabTEMP3 = document.createElement('a');
							cabTEMP3.className = "cab_template_choose_link";
							cabTEMP3.setAttribute("href",obj.NavigateUrl);
							cabTEMP3.appendChild(document.createTextNode("Shop Now!")); 
							
						cabLI.appendChild(cabTEMP1);
						cabLI.appendChild(cabTEMP2);
						cabLI.appendChild(cabTEMP3);	
						
                    } else {
                        //"Also Bought" - show price/qty txt/add to cart button
                        //alert('BulkPrices: ' + obj.BulkPrices.toString() + ' BulkQtyThresholds: ' + obj.BulkQtyThresholds.toString());
                        _cabBulkPrices[tbId] = obj.BulkPrices;
                        _cabBulkQtyThresholds[tbId] = obj.BulkQtyThresholds;

                        var onclick = "cabAddToCart('" +obj.AddToCart + "', '"+tbId+"');return false;";
                        var onQtyChange = "cabTxtQtyChanged('"+tbId+"', '"+lblPriceId+"');";
						
						
						var cabPRODpricehold = document.createElement('span');
							cabPRODpricehold.className = "cab_product_price_holder";
						
							var cabPRODprice = document.createElement('span');
								cabPRODprice.className = 'cab_product_price';
								cabPRODprice.id = lblPriceId;
								cabPRODprice.innerHTML = obj.ItemPrice.toString();
							
							var cabPRODeach = document.createElement('span');
								cabPRODeach.className = 'cab_product_each';
								cabPRODeach.appendChild(document.createTextNode(" each")); 
							
							cabPRODpricehold.appendChild(cabPRODprice);
							cabPRODpricehold.appendChild(cabPRODeach);
						
						var cabPRODqhold = document.createElement('label');
							cabPRODqhold.setAttribute('for', tbId);
							cabPRODqhold.appendChild(document.createTextNode("Quantity")); 
							
							var cabPRODquantity = document.createElement('input');
								cabPRODquantity.className = 'cab_product_quantity';
								cabPRODquantity.id = tbId;
								cabPRODquantity.value = obj.Qty;
								//attach event using jquery to avoid nasty xbrowser stuff
								$(cabPRODquantity).bind("keyup", {pTextboxId: tbId, pPriceLabelId: lblPriceId}, cabTxtQtyChanged);
								$(cabPRODquantity).bind("change", {pTextboxId: tbId, pPriceLabelId: lblPriceId}, cabTxtQtyChanged);
								$(cabPRODquantity).bind("blur", {pTextboxId: tbId, pPriceLabelId: lblPriceId}, cabTxtQtyChanged);
								
							cabPRODqhold.appendChild(cabPRODquantity); 
						
						var cabPRODaddToCart = document.createElement('a');
							cabPRODaddToCart.className = 'addToCartLinkButton buttonsSprite';
							cabPRODaddToCart.setAttribute('href', 'javascript:;');
							var newAT = obj.AddToCart.toString();
							//attach event using jquery to avoid nasty xbrowser stuff
							$(cabPRODaddToCart).bind("click", {pBaseUrl: newAT, pElIdContainingQty: tbId}, cabAddToCart);
							cabPRODaddToCart.appendChild(document.createTextNode("Add to Cart")); 
							
						cabLI.appendChild(cabPRODpricehold);
						cabLI.appendChild(cabPRODqhold);
						cabLI.appendChild(cabPRODaddToCart);
                       
                    }
					cabUL.appendChild(cabLI);
                } //end for

				document.getElementById('new_cab').appendChild(cabUL);
                $("#new_cab").show();
            } else {
                //wow - no items at all - we should hide the whole section
                _hideCabOnError();
            }
           $("#new_cab_loading").hide();
        }
    });
}

function cabTxtQtyChanged(event) {
    var prices = _cabBulkPrices[event.data.pTextboxId];
    var qtys = _cabBulkQtyThresholds[event.data.pTextboxId];

    if (!prices || !qtys || prices.length < 1 || qtys.length < 1 || prices.length != qtys.length)
        return; //we can't find custom pricing per qty info

    var price = prices[0]; //we'll try to set this later

    var tb = $('#' + event.data.pTextboxId);
    var qty = parseInt(tb.val(), 10);
    if (qty && qty > 0)
    {
        for (var i=0;i<prices.length;i++)
        {
            if (qty >= qtys[i])
            {
                price = prices[i];
            }
        }
    }
    $('#' + event.data.pPriceLabelId).text("$" + price.toFixed(2));
}

function cabAddToCart(event) {
    var tb = ge(event.data.pElIdContainingQty);
    qty = parseInt(tb.value);
    if (qty <= 0 || qty == "NaN")
        qty = 1;
    location.href = event.data.pBaseUrl + "&Quantity=" + qty;
	return false;
}

//Make sure an object not null/undefined/empty string
function isValidInstance(pObj)
{
    if((typeof pObj == "undefined") || (pObj == null))
        return false;
    return true;
}

//Make sure an object not null/undefined/empty string
function isValidInstanceNonEmpty(pObj)
{
    if((typeof pObj == "undefined") || (pObj == null) || (pObj == ""))
        return false;
    return true;
}

//Get an element given an id or an instance
function ge(id) {
    if (!isValidInstance(id)) 
        return null;
    
    if (typeof id != 'string') 
        return id; //already an object
        
    if (id != "") {
      if (document.getElementById)  
         return document.getElementById(id); 
      else if (document.all)  
         return document.all[id]; 
   }
}