	var requestProcessed = false;
	var resultProcessed = false;
	var controlButton;
	function updateCart(NoOfItemInCart,fld){
		var itemids = '';
		var quantities = '';
		var cartStatusChanged = false;
		controlButton = fld;
		controlButton.disabled = true;
		for (i=1; i <= NoOfItemInCart; i++){
			quantityOld = DWRUtil.getValue("quantityOld"+i)
			quantityEntered = DWRUtil.getValue("quantity"+i);
			
			// handling quantity entered when its zero
			if (quantityEntered < 1) {
				itemToDelete = "quantity" + i;
				rowNum = 'rowID' + i;
				itemNumber = document.getElementById(itemToDelete).name;
				myString = new String(itemNumber);
				//get the numeric portion from the item number
				newItemNumber = myString.replace('quantity', '');
				removeFromShopCart(rowNum,newItemNumber);
				cartStatusChanged = true;
				var randomnumber=Math.floor(Math.random()*1000)
				location.href='/shop/index.cfm?pk=cart&xx=xx&r='+randomnumber;
				window.location.refresh();
				
			}
			
			if (quantityOld != quantityEntered){
				itemids = itemids + ',' +DWRUtil.getValue("itemid"+i);
				quantities = quantities + ',' +quantityEntered;
				cartStatusChanged = true;
			}
		}
		
		if (cartStatusChanged)
			//alert(itemids +' - ' + quantities);
			updateCartItem(itemids,quantities);
		else{
			controlButton.disabled = false;
		}
	}

	//function to DollarFormat js value	
	function formatCurrency(num) {
		num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num))
			num = "0";
			sign = (num == (num = Math.abs(num)));
			num = Math.floor(num*100+0.50000000001);
			num = num.toFixed(2);
			cents = num%100;
			num = Math.floor(num/100).toString();
			if(cents<10)
				cents = "0" + cents;
			for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
				num = num.substring(0,num.length-(4*i+3))+','+
				num.substring(num.length-(4*i+3));
			return (((sign)?'':'-') + '$' + num + '.' + cents);
}


	
	function updateCartItem(itemids,quantities){
		DWRUtil.toggleDivBox('statusMsg',1);
		document.getElementById("statusMsg").innerHTML = 'Processing your request';
		DWREngine._execute(cfscriptLocation, null, 'updateShopCartItem',sessID,itemids,quantities, processResult);
	}

	function checkStatus(queID){
		DWREngine._execute(cfscriptLocation, null, 'checkStatus',sessID, processResult);
	}
			
	function removeFromQue(){
		if (!requestProcessed){
			DWREngine._execute(cfscriptLocation, null, 'removeFromQue',sessID,processResult);
			requestProcessed = true;
		}
	}
			
	function processResult(results){
		if (results.STATUS > 0 && results.STATUS ==4){
			DWRUtil.toggleDivBox('statusMsg',1);
			document.getElementById("statusMsg").innerHTML = 'Unable to process your request';
			removeFromQue();
		}
		else if (results.STATUS > 0 && results.STATUS == 5){
			DWRUtil.toggleDivBox('statusMsg',1);
			document.getElementById("statusMsg").innerHTML = 'Cart has been updated';
			removeFromQue();
			getCartTotalOnly();
		}
		else if (results.STATUS > 0 && results.STATUS !=3) {
			requestProcessed = false;
			resultProcessed = false;
			DWRUtil.toggleDivBox('statusMsg',1);
			document.getElementById("statusMsg").innerHTML = 'Processing your request';
			checkStatus();
		}
		else if (results.STATUS == 3){
			DWRUtil.toggleDivBox('statusMsg',1);
			document.getElementById("statusMsg").innerHTML = 'Sucessfully updated';
			removeFromQue();
			getCartTotalOnly();
		}	
	}
	function getCartTotalOnly(){
		//alert('getCartTotalOnly');
		resultProcessed = false;
		DWREngine._execute(cfscriptLocation, null, 'getCartTotalOnly',sessID, updateCartTotal);
	}
	function updateCartTotal(results){
	if (!resultProcessed){
		resultProcessed = true;
		//alert(DWRUtil._isArray(results));
		var returnValue = DWRUtil.toDescriptiveString(results[1],1)
		//alert(returnValue['SC_ITEM_ID']);
		//alert(DWRUtil.toDescriptiveString(results[1],1));
		var sc_sub_total= 0;
		for (i = 0; i < results.length; i++){
			var currentRow = i+1;		
			if (typeof results[i] == "object"){
				for (var prop in results[i]){
					var returnValue = results[i][prop];
					if (returnValue.KEY == 'SC_ITEM_SUB_TOTAL')
						var itemSubTotal = returnValue.VALUE;
					else if (returnValue.KEY == 'SC_ITEM_ID')
						var sc_item_id = returnValue.VALUE;	
					else if (returnValue.KEY == 'SC_ITEM_QUANTITY')	
						var sc_item_quantity = returnValue.VALUE;
					else if (returnValue.KEY == 'SC_SUB_TOTAL' && sc_sub_total == 0)
						var sc_sub_total = returnValue.VALUE;
				}
			}
			DWRUtil.setValue("quantity"+currentRow, sc_item_quantity);
			DWRUtil.setValue("quantityOld"+currentRow, sc_item_quantity);
			document.getElementById("itemSubTotal"+sc_item_id).innerHTML = itemSubTotal;
		}
		document.getElementById("cartSubTotal").innerHTML = formatCurrency(sc_sub_total);
		controlButton.disabled = false;
	}
	}
var rowID;
function removeFromShopCart(rowNum,scItemID){
	rowID = rowNum;
	DWREngine._execute(cfscriptLocation, null, 'removeShopCartItem',sessID,scItemID, processAfterResult);
}
function processAfterResult(results){
	//alert(results.CARTSUBTOTAL);
	if(results.STATUS ==3){
		//DWRUtil.toggleDivBox('statusMsg',1);
		//document.getElementById("statusMsg").innerHTML = 'Sucessfully Removed';
		if (results.CARTSUBTOTAL > 0){
			document.getElementById("cartSubTotal").innerHTML = formatCurrency(results.CARTSUBTOTAL);
			deleteRow(rowID);
		}
		else {
			deleteRow(rowID);deleteRow('rowHeader');deleteRow('rowcartTotal');deleteRow('rowcartUpdate');deleteRow('rowcartCheckout');
			DWRUtil.toggleDivBox('cartEmpty',1);
			document.getElementById("cartEmpty").innerHTML = 'Shopping cart is empty';
			checkCartItem();
		}
	}	
}

function deleteRow(rowID){
	var tableRow = document.getElementById(rowID); 
	tableRow.parentNode.deleteRow(tableRow.sectionRowIndex);
	checkCartItem();
}

function checkCartItem(){
	DWREngine.setShowStatus(false);
	DWREngine._execute(cfscriptLocation, null, 'getCartItemCount',sessID,processCartItemResult);
}
function processCartItemResult(result){
	var ItemCountText = '('+result.NOOFITEM+' item(s))&nbsp;&nbsp;&nbsp;';
	DWRUtil.setValue("noOfOItemInCart",ItemCountText);
	DWREngine.setShowStatus(true);
}
