var request = false;

try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
       	} catch (failed) {
       		request = false;
       	}  
    }
}

if (!request)
	alert("Error initializing XMLHttpRequest!");


function selectAll(elementName) {
    var elementArray = new Array();
    if (document.getElementsByName(elementName) !== null) {
    	elementArray = document.getElementsByName(elementName);
    }
    for(var i=0; i<elementArray.length; i++){
        var elementObj = "";
        if (document.getElementsByName(elementName).item(i) !== null) {
        	elementObj = document.getElementsByName(elementName).item(i);
        	elementObj.checked = true;
        }        
    }    
}

function unselectAll(elementName) {
    var elementArray = new Array();
    if (document.getElementsByName(elementName) !== null) {
    	elementArray = document.getElementsByName(elementName);
    }
    for(var i=0; i<elementArray.length; i++){
        var elementObj = document.getElementsByName(elementName).item(i);
        elementObj.checked = false;
    }   
}

function hide(id) {
	document.getElementById(id).innerHTML = "";
}

function reload() {
	location.reload(true);
}

function redirect(link) {
	window.location.href = link;
}

function duplicateText(sourceElement,targetElement) {
	var source = "";
	if (document.getElementById(sourceElement) !== null) {
		source = document.getElementById(sourceElement);
	}
	//var target = document.getElementById(targetElement);
	//var target = document.getElementsByName(targetElement);
	
	//if (targetElement == "cartCoupon") {		
	//}
	//var url = "./cartResult.php?mode=duplicateText&cartTele="+encodeURIComponent(source.value);
	var url = "./cartResult.php?mode=duplicateText&cartValue="+encodeURIComponent(source.value)+"&cartMode="+encodeURIComponent(targetElement);
	
	request.open("GET", url, true);  										
	request.onreadystatechange = function addCartReply() {
									if (request.readyState == 4){
										var response = request.responseText; 
										//alert(response); 
										if (response.match("success")) {
											if (targetElement == "cartCoupon") {
												if (response.match("correct")) {	
													if (document.getElementById("cartbox_discountCouponCodeResponseBox") !== null) {
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.backgroundColor = "#00FF00";
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.padding = 3;
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.textAlign = "center";
														document.getElementById("cartbox_discountCouponCodeResponseBox").innerHTML = "<b><font color=\"#0000FF\">Valid Coupon Code</font></b>";
													}
													if (document.getElementById("cart_discountCouponCodeResponseBox") !== null) {
														document.getElementById("cart_discountCouponCodeResponseBox").style.backgroundColor = "#00FF00";
														document.getElementById("cart_discountCouponCodeResponseBox").style.padding = 3;
														document.getElementById("cart_discountCouponCodeResponseBox").style.textAlign = "center";
														document.getElementById("cart_discountCouponCodeResponseBox").innerHTML = "<b><font color=\"#0000FF\">Valid Coupon Code</font></b>";
													}	
												} else {		
													if (document.getElementById("cartbox_discountCouponCodeResponseBox") !== null) {
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.backgroundColor = "#FF0000";
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.padding = 3;
														document.getElementById("cartbox_discountCouponCodeResponseBox").style.textAlign = "center";
														document.getElementById("cartbox_discountCouponCodeResponseBox").innerHTML = "<b><font color=\"#0000FF\">Invalid Coupon Code</font></b>";
													}
													if (document.getElementById("cart_discountCouponCodeResponseBox") !== null) {
														document.getElementById("cart_discountCouponCodeResponseBox").style.backgroundColor = "#FF0000";
														document.getElementById("cart_discountCouponCodeResponseBox").style.padding = 3;
														document.getElementById("cart_discountCouponCodeResponseBox").style.textAlign = "center";
														document.getElementById("cart_discountCouponCodeResponseBox").innerHTML = "<b><font color=\"#0000FF\">Invalid Coupon Code</font></b>";
													}
												}
												
												//var grandTotalCouponCode = response.substring(response.indexOf("|")+1);
												var response1 = response.substring(response.indexOf("|")+1);
												var grandTotalCouponCodeEndIndex = response1.indexOf("|");		
												var grandTotalCouponCode = response1.substring(0,grandTotalCouponCodeEndIndex);	
												if (document.getElementById("cartbox_grandTotalCouponCode") !== null) {														
													document.getElementById("cartbox_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
												}
												if (document.getElementById("cart_grandTotalCouponCode") !== null) {														
													document.getElementById("cart_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
												}
												
												var discountPercentageCouponCode = response1.substring(grandTotalCouponCodeEndIndex+1);												
												if (document.getElementById("cartbox_discountPercentageCouponCode") !== null) {														
													document.getElementById("cartbox_discountPercentageCouponCode").innerHTML = discountPercentageCouponCode;
												}
												if (document.getElementById("cart_discountPercentageCouponCode") !== null) {														
													document.getElementById("cart_discountPercentageCouponCode").innerHTML = discountPercentageCouponCode;
												}
											}
											
											//target.value = source.value;
											for(var i=0; i<targetElement.length; i++){
										        var targetObj = document.getElementsByName(targetElement).item(i);
										        targetObj.value = source.value;
										    }
										} else {
											if (targetElement == "cartTele") {
												document.getElementById(responseName).innerHTML = "<div class=\"response\">Your telephone number cannot be saved!</div>";
											} else {
												if (response.match("notAvailable")) {
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The product is not available!</div>";
												} else {
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) cannot be added into cart!</div>";
												}
												//document.getElementById(responseName).innerHTML = "<div class=\"response\">Your coupon code cannot be saved!</div>";
											}
											setTimeout("hide('"+responseName+"')",2000);
										}											
									}
								 };
	request.send(null);
}

function addCart(form,mode,immediateLink) {
		var formname = "";
		if (document.getElementById(form) !== null) {
			formname = document.getElementById(form);				
		}
		var prodId = "";
		if (formname.elements["prodId"] !== null) {
			prodId = encodeURIComponent(formname.elements["prodId"].value);		
		}
		var currencyId = "";
		if (formname.elements["currencyId"] !== null) {
			currencyId = encodeURIComponent(formname.elements["currencyId"].value);		
		}
		var currencySymbol = "";
		if (formname.elements["currencySymbol"] !== null) {
			currencySymbol = formname.elements["currencySymbol"].value;		
		}
		var defaultCurrencyId = "";
		if (formname.elements["defaultCurrencyId"] !== null) {
			defaultCurrencyId = formname.elements["defaultCurrencyId"].value;		
		}
		var custId = "";
		if (formname.elements["custId"] !== null) {
			custId = encodeURIComponent(formname.elements["custId"].value);			
		}
		var prodName = "";
		if (formname.elements["prodName"] !== null) {
			prodName = formname.elements["prodName"].value;		
		}
		var prodImgPath = "";
		if (formname.elements["prodImgPath"] !== null) {
			prodImgPath = formname.elements["prodImgPath"].value;	
		}
		var prodPrice = "";
		if (formname.elements["prodPrice"] !== null) {
			prodPrice = formname.elements["prodPrice"].value;	
		}
		var prodLink = "";
		if (formname.elements["prodLink"] !== null) {
			prodLink = formname.elements["prodLink"].value;	
		}
						
		var numOption = 0;
		if (document.getElementById(prodId+"_numOption") !== null) {
			numOption = document.getElementById(prodId+"_numOption").value;
		}
		
		var optionAttr = "";
		/*for (var i=1; i<=numOption.value; i++) {
			var productOptionArray = document.getElementsByName(prodId+"_option_"+i);
			for (var j=0; j<productOptionArray.length; j++) {
				var productOptionObj = document.getElementsByName(prodId+"_option_"+i).item(j);      
				if (productOptionObj.checked) {
					optionAttr += productOptionObj.value;
				}		
			}
		}*/
		for (var i=1; i<=numOption; i++) {
			if (document.getElementById(prodId+"_option_"+i) !== null) {
				optionAttr += document.getElementById(prodId+"_option_"+i).value;
			}
		}
		
		var prodCode = "";
		if (document.getElementById(prodId+"_code") !== null) {
 			prodCode = document.getElementById(prodId+"_code").innerHTML;
 		}
 		
		var quantity = 0;
		if (document.getElementById("cartbox_"+prodId+optionAttr+"_quantity") !== null) {
			//quantity = document.getElementById("cartbox_"+prodId+"_quantity").innerHTML;
			quantity = document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").value;
		}
		quantity = parseInt(quantity) + 1;
		
		//alert(prodId+", "+quantity+", "+optionAttr);
						
		//var responseName = "addCartResponse_" + prodId;
		var responseName = "addCartResponse";
		var url = "./cartResult.php?mode=add&prodId="+prodId+"&currencyId="+currencyId+"&custId="+custId+"&quantity="+quantity+
				  "&optionAttr="+optionAttr;
		if (document.getElementById("cartbox_"+prodId+optionAttr+"_unitPrice") !== null) {
			unitPrice = encodeURIComponent(document.getElementById("cartbox_"+prodId+optionAttr+"_unitPrice").value);
			url = url +"&unitPrice="+unitPrice;
		}
		
		request.open("GET", url, true);
		request.onreadystatechange = function addCartReply() {
										if (request.readyState == 4){
											var response = request.responseText;
											//alert(response);
											if (response.match("success")) {												
												if (mode == "immediate") { // For Immediately Checkout: add product into cart + redirect to paypal	
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The product is added successfully!<br />You are redirected to Paypal for payment. Thanks!</div>";	    										
													setTimeout("hide('"+responseName+"')",2000);
													setTimeout("redirect('"+immediateLink+"')",1000);		    										
												} else { // For add product into cart only
													var response1 = response.substring(response.indexOf("_")+1);
													var totalPriceEndIndex = response1.indexOf("_");
													var totalPrice = response1.substring(0,totalPriceEndIndex);
																																							
													var response2 = response1.substring(totalPriceEndIndex+1);
													var rateTotalPriceEndIndex = response2.indexOf("_");
													var rateTotalPrice = response2.substring(0,rateTotalPriceEndIndex);
																										
													if (response.match("new")) { // For product not in cart, add product into cart and quantity is 1
														var table = document.getElementById("cartbox_table");

														var rowCount = table.rows.length;
														if (document.getElementById("cartbox_tableRow") !== null) {
															rowCount = document.getElementById("cartbox_tableRow").value;
														}	
														rowCount = parseInt(rowCount);
																														
														var row;
														var cell;
																														
														if (rowCount > 0) {
															row = table.insertRow(rowCount);
															cell = row.insertCell(0);
														} else { // rowCount == 0, i.e. cart is empty
															row = table.rows[0];
															cell = row.cells[0];
														}
															
														var cellContent;
														cellContent = "<tr bgcolor=\"#EEEEEE\"><td>" + 
																	  "<a href=\"" + prodLink + "\"><img src=\"" + prodImgPath + "\" width=\"75\" height=\"55\" border=\"0\" title=\"" + prodName + "\" /></a>" + 
																	  "<br />" + 
																	  "<font size=\"1\">" + prodCode + "</font>" + 
																	  "<br />" + 
																	  "<b>Qty:</b>&nbsp;" + 
																	  "<input id=\"cartbox_" + prodId + optionAttr + "_quantity\" name=\"cartbox_currentQuantity\" type=\"text\" size=\"2\" onkeydown=\"javascript:return checkKeycode(event);\" value=\"1\" />&nbsp;" + 
																	  "<input type=\"button\" id=\"submit\" name=\"submit\" style=\"width:40px\" value=\"Update\" onclick=\"javascript:updateOneCart('updateOneCartForm','" + prodId + "','" + optionAttr + "');\" />" + 
																	  "<br />" + 
																	  "<input type=\"hidden\" id=\"cartbox_" + prodId + optionAttr + "_unitPrice\" value=\"" + prodPrice + "\" />" + 
																	  "<input type=\"hidden\" id=\"cartbox_" + prodId + optionAttr + "_previousQuantity\" name=\"cartbox_previousQuantity\" value=\"1\" />" + 
																	  "<b>Total:</b> US$<span id=\"cartbox_" + prodId + optionAttr + "_totalPrice\">" + totalPrice + "</span>";
														if (parseInt(currencyId) != parseInt(defaultCurrencyId)) {															
															cellContent = cellContent + "("+currencySymbol+"<span id=\"cartbox_"+prodId+optionAttr+"_rateTotalPrice\">" + rateTotalPrice + "</span>)";
															
														}
														cellContent = cellContent + "</td></tr>";																												
														cell.innerHTML = cellContent;
															
														if (rowCount == 0) {
															table.rows[1].style.display = "";
															table.rows[2].style.display = "";
															table.rows[3].style.display = "";
															table.rows[4].style.display = "";
															table.rows[5].style.display = "";
															table.rows[6].style.display = "";
															table.rows[7].style.display = "";
															table.rows[8].style.display = "";
														}
																														
														if (document.getElementById("cartbox_tableRow") !== null) {
															document.getElementById("cartbox_tableRow").value = parseInt(rowCount) + 1;
														}													
													} else { // For product already in cart, update product quantity
														if (document.getElementById("cartbox_"+prodId+optionAttr+"_quantity") !== null) {
															//document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").innerHTML = quantity;
															document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").value = quantity;
														}
														if (document.getElementById("cartQuantity|"+prodId+optionAttr) !== null) {
															document.getElementById("cartQuantity|"+prodId+optionAttr).value = quantity;
														}
														if (document.getElementById("cartbox_"+prodId+optionAttr+"_previousQuantity") !== null) {
															document.getElementById("cartbox_"+prodId+optionAttr+"_previousQuantity").value = quantity;
														}
														
														if (document.getElementById("cartbox_"+prodId+optionAttr+"_totalPrice") !== null) {
															document.getElementById("cartbox_"+prodId+optionAttr+"_totalPrice").innerHTML = totalPrice;
														}
														if (document.getElementById("cart_"+prodId+optionAttr+"_totalPrice") !== null) {
															document.getElementById("cart_"+prodId+optionAttr+"_totalPrice").innerHTML = totalPrice;
														}
														
														if (document.getElementById("cartbox_"+prodId+optionAttr+"_rateTotalPrice") !== null) {
															document.getElementById("cartbox_"+prodId+optionAttr+"_rateTotalPrice").innerHTML = rateTotalPrice;
														}
														if (document.getElementById("cart_"+prodId+optionAttr+"_rateTotalPrice") !== null) {
															document.getElementById("cart_"+prodId+optionAttr+"_rateTotalPrice").innerHTML = rateTotalPrice;
														}
													}
													
													// Update subtotal and grand total of the cart		
													var response3 = response2.substring(rateTotalPriceEndIndex+1);
													var cartSubtotalEndIndex = response3.indexOf("_");		
													var cartSubtotal = response3.substring(0,cartSubtotalEndIndex);												
													//var response2 = response1.substring(totalPriceEndIndex+1);
													//var cartSubtotalEndIndex = response2.indexOf("_");		
													//var cartSubtotal = response2.substring(0,cartSubtotalEndIndex);
													if (document.getElementById("cartbox_subtotal") !== null) {
														document.getElementById("cartbox_subtotal").innerHTML = cartSubtotal;
													}
													if (document.getElementById("cart_subtotal") !== null) {
														document.getElementById("cart_subtotal").innerHTML = cartSubtotal;
													}
													
													//var grandTotal = response2.substring(cartSubtotalEndIndex+1);
													var response4 = response3.substring(cartSubtotalEndIndex+1);
													var grandTotalEndIndex = response4.indexOf("_");		
													var grandTotal = response4.substring(0,grandTotalEndIndex);													
													if (document.getElementById("cartbox_grandTotal") !== null) {
														document.getElementById("cartbox_grandTotal").innerHTML = grandTotal;
													}
													if (document.getElementById("cart_grandTotal") !== null) {
														document.getElementById("cart_grandTotal").innerHTML = grandTotal;
													}

													//var rateGrandTotal = response4.substring(grandTotalEndIndex+1);
													var response5 = response4.substring(grandTotalEndIndex+1);
													var rateGrandTotalEndIndex = response5.indexOf("_");
													var rateGrandTotal = response5.substring(0,rateGrandTotalEndIndex);
													if (document.getElementById("cartbox_rateGrandTotal") !== null) {
														document.getElementById("cartbox_rateGrandTotal").innerHTML = rateGrandTotal;
													}
													if (document.getElementById("cart_rateGrandTotal") !== null) {
														document.getElementById("cart_rateGrandTotal").innerHTML = rateGrandTotal;
													}
													
													//var discountPercentage = response5.substring(rateGrandTotalEndIndex+1);
													var response6 = response5.substring(rateGrandTotalEndIndex+1);
													var discountPercentageEndIndex = response6.indexOf("_");
													var discountPercentage = response6.substring(0,discountPercentageEndIndex);
													if (document.getElementById("cartbox_discountPercentage") !== null) {
														document.getElementById("cartbox_discountPercentage").innerHTML = discountPercentage;
													}
													if (document.getElementById("cart_discountPercentage") !== null) {
														document.getElementById("cart_discountPercentage").innerHTML = discountPercentage;
													}
													
													var grandTotalCouponCode = response6.substring(discountPercentageEndIndex+1);													
													if (document.getElementById("cartbox_grandTotalCouponCode") !== null) {														
														document.getElementById("cartbox_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
													}
													if (document.getElementById("cart_grandTotalCouponCode") !== null) {														
														document.getElementById("cart_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
													}

													/*
													 * Update the quantity of all products in cartbox
													 */
													var cartbox_previousQuantityArray = new Array();	
													cartbox_previousQuantityArray = document.getElementsByName("cartbox_previousQuantity");
													for(var i=0; i<cartbox_previousQuantityArray.length; i++){
														document.getElementsByName("cartbox_currentQuantity").item(i).value = document.getElementsByName("cartbox_previousQuantity").item(i).value;
													}
													
													
													// Display notification to customers
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) has/have been added into cart successfully!</div>";	    										
													setTimeout("hide('"+responseName+"')",2000);
												}
											} else {
												if (response.match("maxQuantity")) {
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The purchase quantity of the product reaches the maximum!</div>";
												} else {
													document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) cannot be added into cart!</div>";
												}
												setTimeout("hide('"+responseName+"')",2000);
											}									
										}
									 };
		request.send(null);	   										     																			 										 	
}		

function updateCart() {
	var custId = document.getElementById("custId").value;
	var responseName = "cartResponse";
	
	var prodId = "";
	var quantity = "";
		
	var quantityArray = new Array();	
    quantityArray = document.getElementsByName("cartQuantity");
    for(var i=0; i<quantityArray.length; i++){
        var quantityObj = document.getElementsByName("cartQuantity").item(i);
        var quantityId = quantityObj.id;
        var quantityIdx = quantityId.indexOf("|") + 1;
        quantityId = quantityId.substring(quantityIdx);
        
        prodId += quantityId + ",";
        quantity += quantityObj.value + ",";
    }

    /*
     * prodId contains the option attribute of the product
     */
	prodId = prodId.substr(0,prodId.length-1);
	quantity = quantity.substr(0,quantity.length-1);
	
    //alert(prodId);
    //alert(quantity);
	
    //var url = "./cartResult.php?mode=update&prodId="+encodeURIComponent(prodId)+"&custId="+encodeURIComponent(custId)+"&quantity="+encodeURIComponent(quantity);
    var url = "./cartResult.php?mode=update"+"&custId="+encodeURIComponent(custId)+"&quantity="+encodeURIComponent(quantity);
    if (quantityArray.length == 1) {
    	var extractProdId = prodId.substr(0,prodId.indexOf("_"));
    	var extractOptionAttr = prodId.substring(prodId.indexOf("_"));
    					
    	//alert(extractProdId);
    	//alert(extractOptionAttr);
    	//alert(quantity);
    	
    	url += "&prodId="+encodeURIComponent(extractProdId)+"&optionAttr="+encodeURIComponent(extractOptionAttr);
    } else {
    	url += "&prodId="+encodeURIComponent(prodId);
    }		  
	
    request.open("GET", url, true);  										
    request.onreadystatechange = function updateCartReply() {
    								if (request.readyState == 4){
    									var response = request.responseText;
    									//if (response == "success") {
										if (response.match("success")) {
    										document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) has/have been updated successfully!</div>";																				
											setTimeout("hide('"+responseName+"')",2000);
											setTimeout("reload()",2000);
											//setTimeout("maximumQuantity('"+prodId+"','"+quantity+"')",2000);
										} else {
											if (response.match("maxQuantity")) {
												var previousQuantity = response.substring(response.indexOf("_")+1);
												
												if (document.getElementById("cartbox_"+prodId+"_quantity") !== null) {
													document.getElementById("cartbox_"+prodId+"_quantity").value = previousQuantity;
												}
												if (document.getElementById("cartQuantity|"+prodId) !== null) {
													document.getElementById("cartQuantity|"+prodId).value = previousQuantity;
												}
												
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The purchase quantity of the product reaches the maximum!</div>";
											} else {
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) cannot be updated!</div>";
											}											
											setTimeout("hide('"+responseName+"')",2000);								
										}
    								}
    							 };
    request.send(null);
}

/*
function maximumQuantity(prodId,quantity) {
	var custId = document.getElementById("custId").value;
	//var responseName = "cartResponse";
	
	//var prodId = "";
	//var quantity = "";
		
	//var quantityArray = new Array();	
    //quantityArray = document.getElementsByName("cartQuantity");
   // for(var i=0; i<quantityArray.length; i++){
   //     var quantityObj = document.getElementsByName("cartQuantity").item(i);
   ///     var quantityId = quantityObj.id;
   //     var quantityIdx = quantityId.indexOf("_") + 1;
   //     quantityId = quantityId.substring(quantityIdx);
        
   //     prodId += quantityId + ",";
   //     quantity += quantityObj.value + ",";
   // }

	//prodId = prodId.substr(0,prodId.length-1);
	//quantity = quantity.substr(0,quantity.length-1);
	
    
    var url = "./cartResult.php?mode=maxQty&prodId="+encodeURIComponent(prodId)+"&custId="+encodeURIComponent(custId)+"&quantity="+encodeURIComponent(quantity);

	
    request.open("GET", url, true);  										
    request.onreadystatechange = function maximumQuantityReply() {
    								if (request.readyState == 4){
    									var response = request.responseText;

    									alert(response);
    									var responseArray = response.split(",");
    									
    									for (var i=0; i<responseArray.length; i++) {
    										if (document.getElementById("cart_"+responseArray[i]+"_maximumQuantity") !== null) {
    											document.getElementById("cart_"+responseArray[i]+"_maximumQuantity").innerHTML = "(Reach Maximum Quantity)";
    										}
    									}    									
    								}
    							 };
    request.send(null);
}
*/

function updateOneCart(form,prodId,optionAttr,action) {	
	var formname = document.getElementById(form);
	var custId = encodeURIComponent(formname.elements["custId"].value);
	var currencyId = encodeURIComponent(formname.elements["currencyId"].value);
	var defaultCurrencyId = formname.elements["defaultCurrencyId"].value;	
	var unitPrice = encodeURIComponent(document.getElementById("cartbox_"+prodId+optionAttr+"_unitPrice").value);
		
	//alert("unitPrice: " + unitPrice);
	
	//var quantity = encodeURIComponent(document.getElementById("cartbox_"+prodId+"_quantity").innerHTML);	
	var quantity = encodeURIComponent(document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").value);	
	
	//alert("quantity: " + quantity);
	
	var responseName = "updateOneCartResponse";

	var url = "";
	quantity = parseInt(quantity);
	if (action == "increase") {
		quantity = quantity + 1;
	}
	if (action == "decrease") {
		quantity = quantity - 1;
	}
	
	url = "./cartResult.php?mode=update&prodId="+prodId+"&optionAttr="+optionAttr+"&currencyId="+currencyId+"&custId="+custId+"&quantity="+quantity+"&unitPrice="+unitPrice;
	
	
	request.open("GET", url, true);  										
	request.onreadystatechange = function updateOneCartReply() {
									if (request.readyState == 4){
										var response = request.responseText;    										
										
										//alert(response);
										
										//if (response == "success") {
										if (response.match("success")) {
											if (response.match("remove")) {
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The quantity of the product has been updated successfully!</div>";	    										
												setTimeout("hide('"+responseName+"')",2000);
												setTimeout("reload()",2000);
											} else {
												if (document.getElementById("cartbox_"+prodId+optionAttr+"_quantity") !== null) {
													//document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").innerHTML = quantity;
													document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").value = quantity;
												}
												if (document.getElementById("cartQuantity|"+prodId+optionAttr) !== null) {
													document.getElementById("cartQuantity|"+prodId+optionAttr).value = quantity;
												}
												if (document.getElementById("cartbox_"+prodId+optionAttr+"_previousQuantity") !== null) {
													document.getElementById("cartbox_"+prodId+optionAttr+"_previousQuantity").value = quantity;
												}
											
												var response1 = response.substring(response.indexOf("_")+1);
												var totalPriceEndIndex = response1.indexOf("_");
												var totalPrice = response1.substring(0,totalPriceEndIndex);	
												if (document.getElementById("cartbox_"+prodId+optionAttr+"_totalPrice") !== null) {
													document.getElementById("cartbox_"+prodId+optionAttr+"_totalPrice").innerHTML = totalPrice;
												}
												if (document.getElementById("cart_"+prodId+optionAttr+"_totalPrice") !== null) {
													document.getElementById("cart_"+prodId+optionAttr+"_totalPrice").innerHTML = totalPrice;
												}
												
												var response2 = response1.substring(totalPriceEndIndex+1);
												var rateTotalPriceEndIndex = response2.indexOf("_");		
												var rateTotalPrice = response2.substring(0,rateTotalPriceEndIndex);
												if (document.getElementById("cartbox_"+prodId+optionAttr+"_rateTotalPrice") !== null) {
													document.getElementById("cartbox_"+prodId+optionAttr+"_rateTotalPrice").innerHTML = rateTotalPrice;
												}
												if (document.getElementById("cart_"+prodId+optionAttr+"_rateTotalPrice") !== null) {
													document.getElementById("cart_"+prodId+optionAttr+"_rateTotalPrice").innerHTML = rateTotalPrice;
												}
												
												var response3 = response2.substring(rateTotalPriceEndIndex+1);
												var cartSubtotalEndIndex = response3.indexOf("_");		
												var cartSubtotal = response3.substring(0,cartSubtotalEndIndex);
												if (document.getElementById("cartbox_subtotal") !== null) {
													document.getElementById("cartbox_subtotal").innerHTML = cartSubtotal;
												}
												if (document.getElementById("cart_subtotal") !== null) {
													document.getElementById("cart_subtotal").innerHTML = cartSubtotal;
												}
											
												var response4 = response3.substring(cartSubtotalEndIndex+1);
												var grandTotalEndIndex = response4.indexOf("_");		
												var grandTotal = response4.substring(0,grandTotalEndIndex);
												//var grandTotal = response3.substring(cartSubtotalEndIndex+1);
												if (document.getElementById("cartbox_grandTotal") !== null) {
													document.getElementById("cartbox_grandTotal").innerHTML = grandTotal;
												}
												if (document.getElementById("cart_grandTotal") !== null) {
													document.getElementById("cart_grandTotal").innerHTML = grandTotal;
												}
												
												//var rateGrandTotal = response4.substring(grandTotalEndIndex+1);
												var response5 = response4.substring(grandTotalEndIndex+1);
												var rateGrandTotalEndIndex = response5.indexOf("_");
												var rateGrandTotal = response5.substring(0,rateGrandTotalEndIndex);
												if (document.getElementById("cartbox_rateGrandTotal") !== null) {
													document.getElementById("cartbox_rateGrandTotal").innerHTML = rateGrandTotal;
												}
												if (document.getElementById("cart_rateGrandTotal") !== null) {
													document.getElementById("cart_rateGrandTotal").innerHTML = rateGrandTotal;
												}
																	
												//var discountPercentage = response5.substring(rateGrandTotalEndIndex+1);
												var response6 = response5.substring(rateGrandTotalEndIndex+1);
												var discountPercentageEndIndex = response6.indexOf("_");
												var discountPercentage = response6.substring(0,discountPercentageEndIndex);
												if (document.getElementById("cartbox_discountPercentage") !== null) {
													document.getElementById("cartbox_discountPercentage").innerHTML = discountPercentage;
												}
												if (document.getElementById("cart_discountPercentage") !== null) {
													document.getElementById("cart_discountPercentage").innerHTML = discountPercentage;
												}
												
												var grandTotalCouponCode = response6.substring(discountPercentageEndIndex+1);													
												if (document.getElementById("cartbox_grandTotalCouponCode") !== null) {														
													document.getElementById("cartbox_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
												}
												if (document.getElementById("cart_grandTotalCouponCode") !== null) {														
													document.getElementById("cart_grandTotalCouponCode").innerHTML = grandTotalCouponCode;
												}
												
												/*
												 * Update the quantity of all products in cartbox
												 */
												var cartbox_previousQuantityArray = new Array();	
											    cartbox_previousQuantityArray = document.getElementsByName("cartbox_previousQuantity");
											    for(var i=0; i<cartbox_previousQuantityArray.length; i++){
											       document.getElementsByName("cartbox_currentQuantity").item(i).value = document.getElementsByName("cartbox_previousQuantity").item(i).value;
											    }				
											    
																							
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The quantity of the product has been updated successfully!</div>";	    										
												setTimeout("hide('"+responseName+"')",2000);												
											}
										} else {
											if (response.match("maxQuantity")) {
												var previousQuantity = response.substring(response.indexOf("_")+1);
												
												if (document.getElementById("cartbox_"+prodId+optionAttr+"_quantity") !== null) {
													document.getElementById("cartbox_"+prodId+optionAttr+"_quantity").value = previousQuantity;
												}
												if (document.getElementById("cartQuantity|"+prodId+optionAttr) !== null) {
													document.getElementById("cartQuantity|"+prodId+optionAttr).value = previousQuantity;
												}
																								
												
												/*
												 * Update the quantity of all products in cartbox
												 */
												var cartbox_previousQuantityArray = new Array();	
											    cartbox_previousQuantityArray = document.getElementsByName("cartbox_previousQuantity");
											    for(var i=0; i<cartbox_previousQuantityArray.length; i++){
											       document.getElementsByName("cartbox_currentQuantity").item(i).value = document.getElementsByName("cartbox_previousQuantity").item(i).value;
											    }				
											    
												
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The purchase quantity of the product reaches the maximum!</div>";
											} else {
												document.getElementById(responseName).innerHTML = "<div class=\"response\">The quantity of the product cannot be updated!</div>";
											}
											setTimeout("hide('"+responseName+"')",2000);
										}											
									}
								 };
	request.send(null);	   	 
}

function removeCart() {
	var custId = document.getElementById("custId").value;
	var prodId = "";
		
	var checkboxArray = new Array();	
    checkboxArray = document.getElementsByName("cartCurrentcheckoutCheckbox");
    for(var i=0; i<checkboxArray.length; i++){
        var checkboxObj = document.getElementsByName("cartCurrentcheckoutCheckbox").item(i);       
        if (checkboxObj.checked) {
        	prodId += checkboxObj.value + ",";
        }
    }
    checkboxArray = document.getElementsByName("cartNextcheckoutCheckbox");
    for(var i=0; i<checkboxArray.length; i++){
        var checkboxObj = document.getElementsByName("cartNextcheckoutCheckbox").item(i);       
        if (checkboxObj.checked) {
        	prodId += checkboxObj.value + ",";
        }
    }
		
    /*
     * prodId in removeCart contains option attribute field
     */
	prodId = prodId.substr(0,prodId.length-1);
		
	var url = "./cartResult.php?mode=remove&prodId="+encodeURIComponent(prodId)+"&custId="+encodeURIComponent(custId);
	
	
	request.open("GET", url, true);
	request.onreadystatechange = function removeCartReply() {
									if (request.readyState == 4){
    									var response = request.responseText;										
    									//if (response == "success") {    	
										if (response.match("success")) {									
    										document.getElementById("cartResponse").innerHTML = "<div class=\"response\">The product(s) has/have been removed successfully!</div>";    										
    										setTimeout("hide('cartResponse')",2000);
    										setTimeout("reload()",2000);																					
										} else {
    										document.getElementById("cartResponse").innerHTML = "<div class=\"response\">The product(s) cannot be removed!</div>";    										
    										setTimeout("hide('cartResponse')",2000);							
										}
    								}								
								 };
	request.send(null);
}

function reservedProductCart(checkboxName,checkoutStatus) {
	var custId = document.getElementById("custId").value;
	var responseName = "cartReservedProductResponse";
	
	var checkoutProd = "";
	var checkboxArray = new Array();    
	checkboxArray = document.getElementsByName(checkboxName);
    for(var i=0; i<checkboxArray.length; i++){       
    	var checkboxObj = document.getElementsByName(checkboxName).item(i);
        if (checkboxObj.checked) {        	
        	checkoutProd += checkboxObj.value + ",";
        }
    }

    checkoutProd = checkoutProd.substr(0,checkoutProd.length-1);
   
    var url = "./cartResult.php?mode=reservedProduct&prodId="+encodeURIComponent(checkoutProd)+"&custId="+encodeURIComponent(custId)+"&checkoutStatus="+encodeURIComponent(checkoutStatus);

	
    request.open("GET", url, true);  										
    request.onreadystatechange = function updateCartReply() {
    								if (request.readyState == 4){
    									var response = request.responseText;
    									//if (response == "success") {
										if (response.match("success")) {
    										document.getElementById(responseName).innerHTML = "<div class=\"response\">The product(s) has/have been moved successfully!</div>";																				
											setTimeout("hide('"+responseName+"')",2000);
											setTimeout("reload()",2000);
										} else {
											document.getElementById(responseName).innerHTML = "<div class=\"response\">No product is selected!</div>";
											setTimeout("hide('"+responseName+"')",2000);								
										}
    								}
    							 };
    request.send(null);
}

function addOrderCart(orderId) {
	var responseName = "cartOrderResponse";
	
	var url = "./cartResult.php?mode=order&orderId="+encodeURIComponent(orderId);
	
	
    request.open("GET", url, true);  										
    request.onreadystatechange = function updateCartReply() {
    								if (request.readyState == 4){
    									var response = request.responseText;
    									//if (response == "success") {
										if (response.match("success")) {
    										document.getElementById(responseName).innerHTML = "<div class=\"response\">The order item(s) has/have been added into cart successfully!</div>";																				
											setTimeout("hide('"+responseName+"')",2000);											
										} else {
											document.getElementById(responseName).innerHTML = "<div class=\"response\">The order item(s) cannot be added into cart!</div>";
											setTimeout("hide('"+responseName+"')",2000);								
										}
    								}
    							 };
    request.send(null);
}
  
