/*
* function: option shopping cart.
* Created by: Frankie Chen.
* Created date: 2010-01-03
*/
var xmlHttp

/*
* function: add item to shopping cart.
*/
function addShoppingCart(prdId)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	removeFlag = false;
	//START_VIG_0000976_20110902
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"SaveShoppingCartHttps.do";
	}else{
		url=url+"SaveShoppingCart.do";
	}
	
	//var url="SaveShoppingCart.do";
	//END_VIG_0000976_20110902
	url=url+"?prdId="+prdId;
	url=url+"&sid="+Math.random();
 	whereLoad = "";
	xmlHttp.onreadystatechange=addChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/*
* function: clear all item to shopping cart.
*/
function clearShoppingCart(opt)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	//START_VIG_0000976_20110902
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"GetShoppingListHttps.do";
	}else{
		url=url+"GetShoppingList.do";
	}
	
	//var url="GetShoppingList.do";
	//END_VIG_0000976_20110902
	url=url+"?opt="+opt;
	url=url+"&sid="+Math.random();
 
	xmlHttp.onreadystatechange=clearChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function clearChanged() 
{
    document.getElementById("productContent").innerHTML = "";
    document.getElementById("totalAmount").innerHTML = "$ 0.0";
    document.getElementById("totalAmountTop").innerHTML = "$ 0.0";
    document.getElementById("currentPage").innerHTML = "0";
	document.getElementById("totalPage").innerHTML = "0";
	document.getElementById("totalItems").innerHTML = "0";
	var emptyMsg = emptyContent();
	document.getElementById("productContent").innerHTML = emptyMsg;
	prdIdArray = new Array();
	prdNameEnuArray = new Array();
	prdNameZhtArray = new Array();
	prdBrandEnuArray = new Array();
	prdBrandZhtArray = new Array();
	prdPriceArray = new Array();
	prdQtyArray = new Array();
	prdSizeArray = new Array();
	totalRecord = 0;
	//start add by timk 2011-07-07
	prdPromProductStrArray = new Array();
	prdCodeArray = new Array();
	//end add by timk 2011-07-07
	removeFlag = false;
}

/*
* function: remove item from shopping cart.
*/
function removeShoppingCart(opt,prdId)
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	removeFlag = true;
    
    //START_VIG_0000976_20110902 
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"GetShoppingListHttps.do";
	}else{
		url=url+"GetShoppingList.do";
	}
     
	//var url="GetShoppingList.do";
	//END_VIG_0000976_20110902
	url=url+"?opt="+opt+"&prdId="+prdId;
	url=url+"&sid="+Math.random();
	whereLoad = "remove";
	xmlHttp.onreadystatechange=addChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/*
* function: change Qty.
*/
function changeQty(prdId, qty, Obj){
	//alert(prdId + "||" + qty);
    //alert(prdId + "||" + parseFloat(qty));

    if(qty == "" || prdId == "" || isNaN(qty)){
    	//alert(defaultBuyQty);
    	Obj.value = defaultBuyQty;
    	return;
    }
    
    xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	removeFlag = false;
	
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"GetShoppingListHttps.do";
	}else{
		url=url+"GetShoppingList.do";
	}
	
	//var url="GetShoppingList.do";
	url=url+"?opt=changeQty&prdId=" + prdId + "&qty=" + qty;
	url=url+"&sid="+Math.random();
 	whereLoad = "changeQty";
	xmlHttp.onreadystatechange=addChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/*
* function: add Product for Qty.
*/
function addProductForQty(prdId, qty){
    //alert(prdId + "||" + qty);

    if(qty == "" || prdId == "" || isNaN(parseFloat(qty))){
    	alert("Please input the Product and Qty!");
    	return;
    }
    
    xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	removeFlag = false;
	
	//START_VIG_0000976_20110902
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"SaveShoppingCartHttps.do";
	}else{
		url=url+"SaveShoppingCart.do";
	}
	
	//var url="SaveShoppingCart.do";
	//END_VIG_0000976_20110902
	url=url+"?prdId=" + prdId + "&qty=" + qty;
	url=url+"&sid="+Math.random();
 	whereLoad = "";
	xmlHttp.onreadystatechange=addChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
    
function getQty() 
{
    if (xmlHttp.readyState==4){
    	document.getElementById("totalAmount").innerHTML = xmlHttp.responseText;
    	document.getElementById("totalAmountTop").innerHTML = xmlHttp.responseText;
    }else{
        //alert("Have error!!!!!!!!!!!!!!");
    }
}
    
function addChanged() 
{ 

	if (xmlHttp.readyState==4)
	{
    	//*************Gen the Shopping list ***********************************************
		var xmlDoc=xmlHttp.responseXML.documentElement;
    	if(xmlDoc == null){ //no item.
    		clearChanged();
    		return;
    	}
	    var showElements = xmlDoc.getElementsByTagName("product_id").length;
	    totalRecord = showElements;
	    totalRecordDisplay = 0;
	    for(var i=0;i<showElements;i++){
        
        	prdIdArray[i] = xmlDoc.getElementsByTagName("product_id")[i].childNodes[0].nodeValue;
        	prdNameEnuArray[i] = xmlDoc.getElementsByTagName("product_name_enu")[i].childNodes[0].nodeValue;
        	prdNameZhtArray[i] = xmlDoc.getElementsByTagName("product_name_zht")[i].childNodes[0].nodeValue;
        	prdBrandEnuArray[i] = xmlDoc.getElementsByTagName("product_brand_enu")[i].childNodes[0].nodeValue;
        	prdBrandZhtArray[i] = xmlDoc.getElementsByTagName("product_brand_zht")[i].childNodes[0].nodeValue;
        	prdPriceArray[i] = xmlDoc.getElementsByTagName("product_price")[i].childNodes[0].nodeValue;
        	prdQtyArray[i] = xmlDoc.getElementsByTagName("product_quantity")[i].childNodes[0].nodeValue;
        	prdSizeArray[i] = xmlDoc.getElementsByTagName("product_prdsizedesc")[i].childNodes[0].nodeValue;
        	prdPromFlagArray[i] = xmlDoc.getElementsByTagName("product_promotion_flag")[i].childNodes[0].nodeValue;
			//start add by timk 2011-07-07
        	prdPromProductStrArray[i] = xmlDoc.getElementsByTagName("product_promproductstr")[i].childNodes[0].nodeValue;
        	prdCodeArray[i] = xmlDoc.getElementsByTagName("product_code")[i].childNodes[0].nodeValue;
        	//end add by timk 2011-07-07
        	if(prdPromFlagArray[i] == "Y"){	// Y -> Normal Product
        		totalRecordDisplay = totalRecordDisplay + 1;
        	}

	    }
	    //alert("currentIndex::" + currentIndex);
	    if(!removeFlag){
	    	currentIndex = 0;
	    }
	    Pagination(currentIndex);
		var massagestate="false";
	    //***************Total Amount***********************************************************
        if(showElements > 0){
		    var total = xmlDoc.getElementsByTagName("total")[0].childNodes[0].nodeValue;
		    if(whereLoad == ""){
		    	massagestate = xmlDoc.getElementsByTagName("massagestate")[0].childNodes[0].nodeValue;
		    }
		    document.getElementById("totalAmount").innerHTML = formatCurrency(total);
	        document.getElementById("totalAmountTop").innerHTML = formatCurrency(total);
	        //document.getElementById("totalItems").innerHTML = totalRecord;
	        document.getElementById("totalItems").innerHTML = totalRecordDisplay;
        }else{
            document.getElementById("totalAmount").innerHTML = "$ 0.0";
    		document.getElementById("totalAmountTop").innerHTML = "$ 0.0";
    		document.getElementById("totalItems").innerHTML = "0";
    		var emptyMsg = emptyContent();
			document.getElementById("productContent").innerHTML = emptyMsg;
			totalRecord = 0;
			totalRecordDisplay = 0;
        }
	//alert("massagestate==="+massagestate);
        if(whereLoad == ""){
        if(massagestate !="false"){
        	ShowAlert();
        }
    		
    		window.setTimeout("pop.close();", 2000 );
    	}
	}else{
        //alert("Have error!!!!!!!!!!!!!!");
    }
}
var pop = null;
function ShowAlert() //show the save success window.
{
             pop=new Popup({ contentType:4,isReloadOnClose:true,width:340,height:80});
             pop.setContent("title",popTitle);
             pop.setContent("alertCon",popAlertCon);
             pop.build();
             pop.show();
}

/*
* function: Create xmlHttp Object.
*/
function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
        xmlHttp.overrideMimeType("text/xml;charset=UTF-8");
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

var pageCount = 5;
var totalPage = 0;
var currentIndex = 0;
var totalRecord = 0;
var totalRecordDisplay = 0;
var prdIdArray = new Array();
var prdNameEnuArray = new Array();
var prdNameZhtArray = new Array();
var prdBrandEnuArray = new Array();
var prdBrandZhtArray = new Array();
var prdPriceArray = new Array();
var prdQtyArray = new Array();
var prdSizeArray = new Array();
var prdPromFlagArray = new Array();
//start add by timk 2011-07-07
var prdPromProductStrArray = new Array();
var prdCodeArray = new Array();
//end add by timk 2011-07-07
var language = "zh_TW";
var defaultBuyQty = 1;
var removeFlag = false;

function Pagination(pageNo){
//alert("pageNo:" + pageNo);
//alert("totalRecord:" + totalRecord);
	var productContent = "";

	if(prdIdArray.length <= 0){
		productContent = emptyContent();
		document.getElementById("productContent").innerHTML = productContent;
		return;
	}
	totalPage = totalRecord / pageCount;
	
	
	if(pageNo == -1 || pageNo == 0){
		currentIndex = 0;
	}else if(pageNo < totalPage){
		currentIndex = pageNo;
	}else{
		currentIndex = pageNo - 1;
	}
	//alert("currentIndex:" + currentIndex);
	var begin = currentIndex * pageCount;
	var end = currentIndex * pageCount + pageCount;
	//alert("begin:" + begin + "||end:" + end);

	
	productContent += "<table width='300' class=\"cartProduct\" border='0' style='table-layout:fixed; word-wrap:break-word;' >";
	for(var i=begin;i<end;i++){
		if(i>=totalRecord){
			break;
		}
		var prdId = prdIdArray[i];
		var prdNameEnu = prdNameEnuArray[i];
        var prdNameZht = prdNameZhtArray[i];
	   	var prdBrandEnu = prdBrandEnuArray[i];
        var prdBrandZht = prdBrandZhtArray[i];
	   	var prdPrice = prdPriceArray[i];
	    var prdQty = prdQtyArray[i];
	    var prdSize = prdSizeArray[i];
	    var prdPromFlag = prdPromFlagArray[i];
	    //start add by timk 2011-07-07
	    var prdPromProductStr=prdPromProductStrArray[i];
	    var prdCode=prdCodeArray[i];
	    //end add by timk 2011-07-07
	    
	    var prdBrand = language == "zh_TW" ? prdBrandZht : prdBrandEnu;
	    var prdName = language == "zh_TW" ? prdNameZht : prdNameEnu;
	    if(prdPromFlag == "Y"){	// Y -> Normal Product
			productContent += "<tr><td width='195'><a href=\"ShowProductDetailPage.do?prdId="+prdId+"\"><strong>" + prdBrand + "</strong>("+prdId+")<br />";
		    productContent += prdName + "<br />";
		    productContent += "<span>"+prdSize+"</span>";
		    productContent += "</a></td><td width='30'><input type=\"text\" name=\"productQty\" value=\""+parseFloat(prdQty)+"\" onclick=\"defaultBuyQty=this.value\" onchange=\"changeQty('"+prdId+"',this.value,this)\" style=\"width:25px\" maxlength=\"5\" /></td>";
			productContent += "<td width='60' class=\"price\">HK "+formatCurrency(prdPrice)+"</td><td width='15'><a href=\"#\" onclick=\"removeShoppingCart('removeCart','"+prdId+"')\" class=\"btnCancel\"></a></td></tr>";
			productContent += "<tr><td colspan=\"4\" class=\"line\" >&nbsp;</td></tr>";
		}else{
			productContent += "<tr><td width='195'><strong>" + prdBrand + "</strong>("+prdCode+")<br />";
		    productContent += prdName + "<br />";
		    productContent += promotion_item + "<br />";
		    productContent += prdPromProductStr+ "<br />";
		    //productContent += "<span>"+prdSize+"</span>";
		    productContent += "</td><td width='30'>"+parseFloat(prdQty)+"</td>";
			productContent += "<td width='60' class=\"price\">HK "+formatCurrency(prdPrice)+"</td><td width='15'>&nbsp;</td></tr>";
			productContent += "<tr><td colspan=\"4\" class=\"line\" >&nbsp;</td></tr>";
		}
	}
	productContent += "</table>";
	
	var currentPage = 0;
	if(totalRecord != 0){
		var currentPage = (currentIndex + 1);
	}else{
		productContent = emptyContent();
	}
	document.getElementById("productContent").innerHTML = productContent;
	document.getElementById("currentPage").innerHTML = currentPage;
	document.getElementById("totalPage").innerHTML = Math.ceil(totalPage);
}

/*
* function: save cart.
*/
function saveShoppingCart()
{ 
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	var url="";
	var httpLink = window.location.href;
	if(httpLink!="" && httpLink.toLowerCase().indexOf("https") != -1){
		url=url+"GetShoppingListHttps.do";
	}else{
		url=url+"GetShoppingList.do";
	}
	
	url=url+"?opt=saveCart";
	url=url+"&sid="+Math.random();
 
	xmlHttp.onreadystatechange=saveCartChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function saveCartChanged() 
{
    if (xmlHttp.readyState==4){
    	var saveFlag = xmlHttp.responseText;
    	if(saveFlag == "SaveCartSuccess"){
    		//document.location.href = "RecallSaveCart.do";
    		//clearChanged();
    		alert(save_success);
    	}

    	if(saveFlag == "" || saveFlag == "SaveCartLogin"){
    		//START_VIG_0000976_20110902
    		var httpLink = window.location.href;
    		httpLink = httpLink.substring(0,httpLink.lastIndexOf("/"));
    		document.location.href = httpLink + "/Login.do";
    		//END_VIG_0000976_20110902

    	}
    	if(saveFlag == "SaveCartNull"){
    		alert(save_item);
    	}
    }else{
        //alert("Have error!!!!!!!!!!!!!!");
    }
}

//clear not number type
function clearNoNum(obj) 
{ 
   obj.value = obj.value.replace(/[^\d.]/g,"");  //clean other char(only allow number & .)
   obj.value = obj.value.replace(/^\./g,"");  //check first char, must be char
   obj.value = obj.value.replace(/\.{2,}/g,"."); //save first, other clean
   obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); 
} 

//format number to the money
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);
	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 emptyContent(){
	var productContent = "";
	productContent += "<table class=\"cartProduct\" id=\"cartpage1\">";
	productContent += "<tr><td colspan=\"3\">"+empty_msg+"</td></tr>";
	productContent += "</table>";
	return productContent;
}

function getHpptLink(){
	var httpLink = window.location.href;
	if(httpLink != "" && httpLink.lastIndexOf("/")){
		httpLink = httpLink.substring(0, httpLink.lastIndexOf("/")+1);
	}
	return httpLink;
}


//add by timk
function showpage(page, acthold,imagePath,otherimgPath){
		if (acthold == "hold")
		{
			if ($("#hiddenhold")[0].value != "hold")
			{
				$("#hiddenhold")[0].value = "hold";
				$("#btnhold").html('<img src='+otherimgPath+' border="0" style="padding-top:6px;"/>');
			}
			else
			{
				$("#hiddenhold")[0].value = "";
				$("#btnhold").html('<img src='+imagePath+'  border="0" style="padding-top:6px;"/>');
				closetimer = window.setTimeout(mclose, timeout);
			}
		}
		else
		{
			if (acthold == "page")
			{
				if (page == 2)
				{
					$("#cartpage1").hide();
					$("#cartpage2").show();
					$("#pagetitle").html("Page 2 of 2");
				}
				if (page == 1)
				{
					$("#cartpage2").hide();
					$("#cartpage1").show();
					$("#pagetitle").html("Page 1 of 2");
					
				}
			}
		}
	}


