﻿
function UpdateBasket()
{
    var updatePageAndBasketHeaders = false;
    var items = document.getElementById("ctl00_ContentPlaceHolder1_ucBasket1_noOfDifferentItems").value;
    var qty = 0;
    var itemCost = 0;
    var totalItemCost = 0;
    var totalNoOfItems = 0;
    var basketTotal = 0;
    var i=0;
    
    if(items > 0)
    {
        for (i=0;i<items;i++)
        {
            if(document.getElementById("tablerow" + i ).style.display != "none")
            {
                updatePageAndBasketHeaders = true;
                
                qty = document.getElementById("qty" + i).value;
                
                itemCost = document.getElementById("itemCost" + i).innerHTML;
                itemCost = itemCost.replace(",", "");
                
                if(itemCost == "")
                {
                    itemCost = 0;
                }
                totalItemCost = parseFloat(qty) * parseFloat(itemCost);
                totalNoOfItems = totalNoOfItems + parseInt(qty);
            
                document.getElementById("totalItemCost" + i).innerHTML = addCommas(totalItemCost);
                basketTotal = basketTotal + totalItemCost;
            
                Basket_xmlhttpPost("/PageTemplates/ShopBasketProcessing.aspx?" + 
                                "FormType=UpdateBasket" +
                                "&ProductID=" + escape(document.getElementById("productID" + i).value) +
                                "&ItemID=" + escape(document.getElementById("lineItemID" + i).value) +
                                "&Qty=" + escape(qty) +
                                "&ItemPrice=" + escape(itemCost) +
                                "&goToIfError=" + escape(document.getElementById('ctl00_ContentPlaceHolder1_ucBasket1_currentPageURL').value) );
            }
        }
        
        if(updatePageAndBasketHeaders)
        {
            document.getElementById("basketTotal").innerHTML = addCommas(basketTotal);
        
            //update the page header
            document.getElementById('headerbasketitems').innerHTML = totalNoOfItems;
            document.getElementById('headerbasketcost').innerHTML = addCommas(basketTotal);
        
            //update the basket heading
            if(document.getElementById('basketheading') != null)
            {
                document.getElementById('basketheading').innerHTML = totalNoOfItems;
            }
        }
    }
    return false;
}

function AddToBasketFromDetailPage()
{
    var quantity = document.getElementById('qty').value;
    var itemPrice = document.getElementById('itemprice').innerText?document.getElementById('itemprice').innerText:document.getElementById('itemprice').textContent;
    itemPrice = itemPrice.replace(",", "");
    var headerbasketcost = document.getElementById('headerbasketcost').innerText?document.getElementById('headerbasketcost').innerText:document.getElementById('headerbasketcost').textContent;
    headerbasketcost = headerbasketcost.replace(",", "");
    var totalPrice = parseFloat(headerbasketcost) + (parseFloat(itemPrice) * parseInt(quantity));  
    var headerbasketitems =  document.getElementById('headerbasketitems').innerText?document.getElementById('headerbasketitems').innerText:document.getElementById('headerbasketitems').textContent;

    var noOfItems = parseInt(headerbasketitems) + parseInt(quantity);
      
    //update the header
    document.getElementById('headerbasketitems').innerHTML = noOfItems;
    document.getElementById('headerbasketcost').innerHTML = addCommas(totalPrice);
 
    //populate popup with the item details details           
    document.getElementById('basketPopupQty').innerHTML = quantity;
    document.getElementById('basketPopupProductName').innerHTML = document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productName')?document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productName').value: document.getElementById('ctl00_ContentPlaceHolder1_ucDrinkOverview1_productName').value;
    document.getElementById('basketPopupLineItemPartCode').innerHTML = document.getElementById('lineItemPartCode').innerText?document.getElementById('lineItemPartCode').innerText:document.getElementById('lineItemPartCode').textContent;
    document.getElementById('ctl00_ContentPlaceHolder1_ucBasketPopup1_productImage').innerHTML = document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productImage')?document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productImage').value: document.getElementById('ctl00_ContentPlaceHolder1_ucDrinkOverview1_productImage').value;
    document.getElementById('CheckoutLink').style.display = "inline";
    
    //Update the basket in Session
    Basket_xmlhttpPost("/PageTemplates/ShopBasketProcessing.aspx?" + 
                "FormType=AddToBasket" +
                "&ProductID=" + escape(document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productID')?document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$productID').value : document.getElementById('ctl00_ContentPlaceHolder1_ucDrinkOverview1_productID').value) +
                "&ItemID=" + escape(document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$lineItemID')?document.getElementById('ctl00$ContentPlaceHolder1$ucDrinkOverview1$lineItemID').value : document.getElementById('ctl00_ContentPlaceHolder1_ucDrinkOverview1_lineItemID').value) +
                "&Qty=" + escape(quantity) +
                "&ItemPrice=" + escape(itemPrice) );
    
    return false;
}

function AddToBasketFromDrinksListingPage(i)
{
    var n = i;
    var quantity = document.getElementById("qty" + n).value;
    var itemPrice = document.getElementById("itemprice" + n).innerText ? document.getElementById("itemprice" + n).innerText : document.getElementById("itemprice" + n).textContent;
    itemPrice = itemPrice.replace(",", "");
    var headerbasketcost = document.getElementById("headerbasketcost").innerText ? document.getElementById("headerbasketcost").innerText : document.getElementById("headerbasketcost").textContent;
    headerbasketcost = headerbasketcost.replace(",", "");
    var totalPrice = parseFloat(headerbasketcost) + (parseFloat(itemPrice) * parseInt(quantity));
    var headerbasketitems = document.getElementById("headerbasketitems").innerText ? document.getElementById("headerbasketitems").innerText : document.getElementById("headerbasketitems").textContent;
    var noOfItems = parseInt(headerbasketitems) + parseInt(quantity);
    
    //update the header
    document.getElementById('headerbasketitems').innerHTML = noOfItems;
    document.getElementById('headerbasketcost').innerHTML = addCommas(totalPrice);
    
    //populate popup with the item details details
    document.getElementById('basketPopupQty').innerHTML = quantity;
    document.getElementById('basketPopupProductName').innerHTML = document.getElementById("productName" + n).value;
    document.getElementById('basketPopupLineItemPartCode').innerHTML = document.getElementById("lineItemPartCode" + n).innerText ? document.getElementById("lineItemPartCode" + n).innerText : document.getElementById("lineItemPartCode" + n).textContent;
    document.getElementById('ctl00_ContentPlaceHolder1_ucBasketPopup1_productImage').innerHTML = document.getElementById("productImage" + n).value;
    document.getElementById('CheckoutLink').style.display = "inline";
    
    //Update the basket in Session
    Basket_xmlhttpPost("/PageTemplates/ShopBasketProcessing.aspx?" + 
                "FormType=AddToBasket" +
                "&ProductID=" + escape(document.getElementById("productID" + n).value) +
                "&ItemID=" + escape(document.getElementById("lineItemID" + n).value) +
                "&Qty=" + escape(quantity) +
                "&ItemPrice=" + escape(itemPrice) );
    
    return false;
}

function DeleteItem(i)
{
    var n = i;
    
    var items = document.getElementById("headerbasketitems").innerHTML;
    var qty = document.getElementById("qty" + n).value;
    var itemCost = document.getElementById("itemCost" + n).innerHTML;
    itemCost = itemCost.replace(",", "");
    var totalItemCost = parseFloat(qty) * parseFloat(itemCost);
    var totalNoOfItems = parseInt(items) - parseInt(qty);
    var basketTotal = document.getElementById("basketTotal").innerHTML;
    basketTotal = basketTotal.replace(",", "");
    
    if(itemCost == "")
    {
        itemCost = 0;
    }
    
    //recalculate the basket total
    basketTotal = basketTotal - totalItemCost;
    
    //delete the item
    Basket_xmlhttpPost("/PageTemplates/ShopBasketProcessing.aspx?" + 
                        "FormType=DeleteItemFromBasket" +
                        "&ProductID=" + escape(document.getElementById("productID" + n).value) +
                        "&ItemID=" + escape(document.getElementById("lineItemID" + n).value) +
                        "&Qty=" + escape(qty) +
                        "&ItemPrice=" + escape(itemCost) +
                        "&goToIfError=" + escape(document.getElementById('ctl00_ContentPlaceHolder1_ucBasket1_currentPageURL').value) );
    
    //update the basket total
    document.getElementById("basketTotal").innerHTML = addCommas(basketTotal);
    
    //update the page header
    document.getElementById('headerbasketitems').innerHTML = totalNoOfItems;
    document.getElementById('headerbasketcost').innerHTML = addCommas(basketTotal);
    
    //update the basket heading
    if(document.getElementById('basketheading') != null)
    {
        document.getElementById('basketheading').innerHTML = totalNoOfItems;
    }
    
    //update table of items
    document.getElementById("tablerow" + n ).style.display = "none";
  
    //hide checkout buttons if no items left in basket
    if(totalNoOfItems == 0)
    {
        document.getElementById('ctl00_ContentPlaceHolder1_checkoutbtndiv').style.display = "none";
        document.getElementById('ctl00_ContentPlaceHolder1_checkout2btndiv').style.display = "none";
        document.getElementById('tablefooter').style.display = "none";
        document.getElementById('updatebasketbtndiv').style.display = "none";
    }
    return false;
}

function editbasketbtn_onclick()
{
    window.location = document.getElementById('ctl00_ContentPlaceHolder1_ucBasketCheckout1_viewBasketPageURL').value;
}


function Basket_xmlhttpPost(strURL) 
{
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('GET', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            Basket_updatepage(self.xmlHttpReq.responseText);
        }
    }
    self.xmlHttpReq.send(null);
}


function Basket_updatepage(str)
{
    if(str.length > 2)
    {
        window.location = str;
    }

}


function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

