﻿// prevents double click
var addToCartEnabled = true;

// Suppress Enter Key for form, allows qty to update
jQuery(document).ready(function() {
    jQuery(".order_summary").keydown(
        function(e){
            var key = e.charCode || e.keyCode || 0;
            if (key == 13) {
                e.cancelBubble = true;
                e.returnValue = false;
                e.preventDefault();
            }
        }
    );
}); 

//Remove
function removeOrderItem(orderItemId) {
	Order_ShoppingCart.RemoveItem(orderItemId, UpdateBasket_Callback);
}

//Change Quantity
function updateOrderItemQuantity(orderItemId, clientControlId) {
	var quantity = document.getElementById(clientControlId).value;
	Order_ShoppingCart.AmendItemQuantity(orderItemId, quantity, UpdateBasket_Callback);
}

//Add
function addToBasket(skuId) 
{
    if (addToCartEnabled)
    {
    
	    addToCartEnabled = false;
	    jQuery('#basketDetail').hide();
	    jQuery('#processingBasket').show();
	    var addToCartButton = document.getElementById('addToCartButton');

	    var qty = 0;
	    var qtyInput = document.getElementById('qty');
	    var personalisation = document.getElementById('personalisation');
	    
	    var personalisationText = personalisation==null ? "" : personalisation.value;

	    if (qtyInput == null) {
		    qty = 1;
	    }
	    else {
	        if (personalisation == null)
	        {	           
		        qty = qtyInput.value;
		    }
		    else
		    {
		        qty = 1;
		    }
	    }	    

	    AddToBasket.AddItemsToBasket(skuId, qty, personalisationText, AddToBasket_Callback);

	    
	}
}

//Add from Sku List
function addToBasketFromSkuList(skuId) 
{
    Controls_Orders_AddToBasketFromSkuList.AddItemsToBasket(skuId, 1, '', AddToBasket_Callback);
}


//Callbacks
function UpdateBasket_Callback(response) {

	if (response != null && response.error != null) {
		return;
	}

	var orderItem = response.value;

	if (typeof (orderItem) == "object") {

		var total = document.getElementById('ctl00_Header_MiniBasket_MiniBasketTotal');
		var quantity = document.getElementById('ctl00_Header_MiniBasket_TotalNumberOfItems');
		var totalOrderPrice = document.getElementById('TotalOrderPrice');

		total.innerText = orderItem.CartTotal;
		quantity.innerText = orderItem.CartQuantity;
		total.textContent = orderItem.CartTotal;
		quantity.textContent = orderItem.CartQuantity;
		if (totalOrderPrice  != null)
		{
		    totalOrderPrice.textContent = orderItem.CartTotal;
		    totalOrderPrice.innerHTML = orderItem.CartTotal;
		}
		
		var orderItemRow = document.getElementById(orderItem.Id);
		if (orderItemRow != null && orderItem.Quantity == 0) {
			orderItemRow.className = 'hidden';
		}

		if (orderItem.CartTotal == '£ 0.00') {
			var cartSummary = document.getElementById('cartSummary');
			var cartEmpty = document.getElementById('cartEmpty');

			if (cartSummary != null) {
				cartSummary.className = 'hidden';
				cartEmpty.className = 'body body_full_width basket_empty';
			}
		}
		
	}
}

function AddToBasket_Callback(response) {
	if (response != null && response.error != null) {
		return;
	}

	var order = response.value;

	if (typeof (order) == "object") {
		var total = document.getElementById('ctl00_Header_MiniBasket_MiniBasketTotal');
		var quantity = document.getElementById('ctl00_Header_MiniBasket_TotalNumberOfItems');

		total.innerText = order.TotalPrice;
		quantity.innerText = order.Quantity;
		total.textContent = order.TotalPrice;
		quantity.textContent = order.Quantity;
		
	    jQuery('#processingBasket').fadeOut(2000, function(){
	        jQuery('#basketDetail').fadeIn('fast');
	        addToCartEnabled = true;    
	    }); 
	}
}

