﻿YAHOO.namespace("example.container");
var SystemALL = 0;

var aProductVariantSKU = new Array();
var aProductSKU = new Array();
var aStoreID = new Array();
var aCategoryID = new Array();

var aTabID = ["btMyAccount","btWishBuy","btCompare","btGift","btPDView"];
var hBagName = $H();
hBagName["btWishBuy"] = "WishListBag";
hBagName["btCompare"] = "CampareListBag";
hBagName["btGift"] = "SendGiftListBag";
hBagName["btPDView"] = "ProductReview";	

/*========================================================================================*/

if(BagList == 'PersonalList'){
	if(BagHeight == 39){OpenControl('btMyAccount');}
}

function BagAction(type)
{
	var  tHashParm = $H();
	tHashParm["EncryptKey"] = EncryptKey;
	tHashParm["CartListName"] = hBagName[type];		 
	//------------------------------------------------
	//要回傳的Data
	var tCallBackParm = $H();
	/*tCallBackParm["BagName"] = Cstr;*/  
	tCallBackParm["CallBagName"] = hBagName[type];                       	               
	//------------------------------------------------
	var myAjaxEntity = new AjaxProtal();
	myAjaxEntity.ControllerPage = "Controller_ShoppingCartListBag.aspx"; 	
	myAjaxEntity.ActionType = "POST";
	myAjaxEntity.Parm = tHashParm;
	myAjaxEntity.CallBackFunction = "RunCallBackList";
	myAjaxEntity.CallBackParm = tCallBackParm;
	//RunMethod();
	myAjaxEntity.RunMethod();		
}

function RunCallBackList(myObjData)
{
	var asStateObject = myObjData.StateObject.parseJSON();		

	if(myObjData.StateCode =='1')
	{
		ListControl(asStateObject.Data.Repeater,myObjData.CallBackParm.CallBagName);
	}
	else{alert(myObjData.StateMessage);}
}
		
/*商品列表*/		
function GetCartList(obj,CallStr)
{
	obj = ConverCont(obj);
	SystemALL = obj.length+1;
	var allstr ='';
	for(var i=0;i<obj.length;i++)
	{
		allstr += GetCartListDiv(obj[i],CallStr);
	}
	$('BagContentList').innerHTML = allstr;
	if(obj.length !=0 ){$('Arrow').innerHTML='<div class="bt_ArrowL" id="prev-'+CallStr+'"></div><div class="bt_ArrowR" id="next-'+CallStr+'"></div>';}
	eval('pageLoad_'+CallStr)();
}		

/*組單一商品html*/
function GetCartListDiv(Listobj,CallStr)
{
	var ProductSKU = Listobj.ProductSKU;
	var StoreID = Listobj.StoreID;	
	var CategoryID = Listobj.CategoryID;
	var ProductImage = Listobj.ProductImage;	
	var ProductName = Listobj.ProductName;
	var Price = Listobj.Price;		
	var SelectedPrice = Listobj.SelectedPrice;	
	var Quantity = Listobj.Quantity;
	var ProductVariantSKU = Listobj.ProductVariantSKU;	
	var ProductOnline = Listobj.ProductOnline;
	
 	var sBuilder = new StringBuilder();
	sBuilder.append('<li class="sbProduct" id="CartProduct_'+ProductVariantSKU+'" ProductVariantSKU="'+ProductVariantSKU+'" ProductSKU="'+ProductSKU+'" StoreID="'+StoreID+'" CategoryID="'+CategoryID+'" CallStr="'+CallStr+'">');
	sBuilder.append('<p class="sbPName">'+ProductName+'</p>');
	sBuilder.append('<p class="btRm" id="btRm">');
	sBuilder.append('<a href="javascript:;" onClick="removeProduct(\'CartProduct_'+ProductVariantSKU+'\');"><img src="../R6Images/R6Bag/bt_del.gif" width="17" height="17" border="0"/></a>');
	sBuilder.append('</p>');
	sBuilder.append('<div class="bgFramP">');
	
	if(ProductOnline == 'N')
	{
		sBuilder.append('<p class="bgPImg"><a href="ProductDetail.aspx?StoreID='+StoreID+'&CategoryID='+CategoryID+'&ProductSKU='+ProductSKU+'" target="_top"><img src="../R6Images/shoppingBag/ProductNotOnLine.gif" width="60" height="60" border="0"></a></p>');
	}
	else
	{
		sBuilder.append('<p class="bgPImg"><a href="ProductDetail.aspx?StoreID='+StoreID+'&CategoryID='+CategoryID+'&ProductSKU='+ProductSKU+'" target="_top"><img src="'+ProductImage+'" border="0" /></a></p>');		
	}
	sBuilder.append('<p class="sbPrice">＄<span class="sbPNum">'+Price+'</span>元</p>');
	
	if(ProductOnline == 'N')
	{
		sBuilder.append('<p class="clickBuy"><input type="checkbox" class="inputM" disabled="disabled"/>立即結帳</p>');
	}
	else if(CallStr == 'SendGiftListBag')
	{
		sBuilder.append('<p class="clickBuy"><input type="checkbox" id="ProductChecked_'+ProductVariantSKU+'" name="ProductChecked_'+ProductVariantSKU+'" class="inputM" onclick="SetGoToBasketStr(\'CartProduct_'+ProductVariantSKU+'\');"/>加入寄送</p>');
	}
	else
	{
		sBuilder.append('<p class="clickBuy"><input type="checkbox" id="ProductChecked_'+ProductVariantSKU+'" name="ProductChecked_'+ProductVariantSKU+'" class="inputM" onclick="SetGoToBasketStr(\'CartProduct_'+ProductVariantSKU+'\');"/>立即結帳</p>');
	}

	sBuilder.append('</div>');
	sBuilder.append('</li>');	
		
	var sBuilderstr =  sBuilder.toString();  
	return sBuilderstr;
}

function removeProduct(id)
{
	var hParm = getIDAttribute(id);;
	hParm["Action"] = "Remove";
	hParm["PageName"] = $(id).getAttribute("CallStr");
	hParm["RunCallBack"] = "RunCallBackAddToCartListed";
	ProductAction(hParm);		
}

function GoToBasket(CallStr)
{	
	dcsMultiTrack('DCS.dcsuri','bag.aspx','DCSext.PH','Bag_'+CallStr+'CheckOut');
	if(aProductVariantSKU.length == 0)
	{
		parent.ControlMask();
		top.location.href= parent.getUrlObj.getHttpsURL('Basket.aspx');
	}
	else
	{
		var hParm = $H();
		if(CallStr == hBagName["btPDView"]){hParm["Action"] = "AddCartList";}else{hParm["Action"] = "Change";}
		hParm["PageName"] = CallStr;
		hParm["RunCallBack"] = "GoToBasketCallBack";
		ProductAction(hParm);		
	}	
}

function GoToGift(CallStr)
{
	if(aProductVariantSKU.length == 0)
	{
		alert('請點選禮物清單以利寄送');
		return;
	}
	else
	{
		if(aProductVariantSKU.length >5){
			alert('最多只能選擇五樣禮物');
			return;
		}		
		dcsMultiTrack('DCS.dcsuri','bag.aspx','DCSext.PH','Bag_'+CallStr+'_Send');
		var hParm = $H();
		hParm["Action"] = "AddGiftList";
		hParm["PageName"] = CallStr;
		hParm["RunCallBack"] = "GoToGiftCallBack";		
		ProductAction(hParm);			
	}	
}


function ClearTabClass()
{
	for(var i=0;i<aTabID.length;i++)
	{
		$(aTabID[i]).className = 'raised01';		
	}
}

/*組左邊圖片*/
function ListControl(obj,CallStr)
{
	OpenMyWp(false);

	aProductVariantSKU.clear(); 
	aProductSKU.clear(); 
	aStoreID.clear(); 
	aCategoryID.clear(); 	
	$('BagContentList').innerHTML = '';
	$('Arrow').innerHTML = '';
	switch(CallStr)
	{
		case 'WishListBag':
			$('BagIMG').innerHTML ='<p class="csBt"><a href="javascript:;" onclick="GoToBasket(\''+CallStr+'\');"><img src="../R6Images/R6Bag/bt_checkOutNow.png" name="bt_checkOut" border="0" id="bt_checkOut" width="85" height="30"/></a></p>';
			if(obj !="" && obj != null){GetCartList(obj.WishListItem,CallStr);}	
			break;
		case 'CampareListBag':
			$('BagIMG').innerHTML ='<p class="csBtc"><a href="CompareList.aspx?PH=Bag_CompareList" target="_top"><img src="../R6Images/R6Bag/bt_compare.png" name="bt_checkOut" border="0" id="bt_checkOut" width="85" height="30"/></a><a href="javascript:;" onclick="GoToBasket(\''+CallStr+'\');"><img src="../R6Images/R6Bag/bt_checkOutNow.png" name="bt_checkOut" border="0" id="bt_checkOut" width="85" height="30"/></a></p>';	
			if(obj !="" && obj != null){GetCartList(obj.ProductCompareItem,CallStr);}
			break;
		case 'SendGiftListBag':
			$('BagIMG').innerHTML ='<p class="csBtg"><a href="javascript:;" onclick="GoToGift(\''+CallStr+'\');"><img src="../R6Images/R6Bag/bt_sendGList.png" name="bt_checkOut" border="0" id="bt_checkOut" width="100" height="30"/></a></p>';
			if(obj !="" && obj != null){GetCartList(obj.SendGiftItem,CallStr);}
			break;
		case 'ProductReview':
			$('BagIMG').innerHTML ='<p class="csBtc"><a href="javascript:;" onclick="removeAllProduct(\''+CallStr+'\');"><img src="../R6Images/R6Bag/bt_delete.png" name="bt_checkOut" border="0" id="bt_checkOut" width="85" height="30"/></a><a href="javascript:;" onclick="GoToBasket(\''+CallStr+'\');"><img src="../R6Images/R6Bag/bt_checkOutNow.png" name="bt_checkOut" border="0" id="bt_checkOut" width="85" height="30"/></a></p>';	
			if(obj !="" && obj != null){GetCartList(obj.ProductReview,CallStr);}
			break;
		default:break;
	}
	if(myBrowser() == "IE6"){pngAction();}
}




function init(ProductVariantSKU) {
	var chooseDivId = 'CartProduct_'+ProductVariantSKU;
	YAHOO.example.container.overlay = new YAHOO.widget.Overlay(chooseDivId, {effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:1} } );
	YAHOO.example.container.overlay.render("example");
	YAHOO.example.container.overlay.hide();
	setTimeout('RemoveProductSKUDIV(\''+chooseDivId+'\')',1000);	
}

function RemoveProductSKUDIV(chooseDivId)
{
	$(chooseDivId).style.display = 'none';
}

function getIDAttribute(id)
{
	var hData = $H();
	hData["ProductVariantSKU"] = $(id).getAttribute("ProductVariantSKU");
	hData["ProductSKU"]	= $(id).getAttribute("ProductSKU");
	hData["StoreID"] = $(id).getAttribute("StoreID");
	hData["CategoryID"] = $(id).getAttribute("CategoryID");
	return hData;
}

function SetGoToBasketStr(id)
{
	var hData = getIDAttribute(id);
	
	if($('ProductChecked_'+hData["ProductVariantSKU"]).checked == true)
	{
		hData["type"] = "ADD";
	}
	else
	{
		hData["type"] = "REMOVE";
	}
	setProductArray(hData);
}

function setProductArray(hData)
{
	if(hData["type"] == "ADD")
	{
		aProductVariantSKU[aProductVariantSKU.length] = hData["ProductVariantSKU"];
		aProductSKU[aProductSKU.length] = hData["ProductSKU"];
		aStoreID[aStoreID.length] = hData["StoreID"];
		aCategoryID[aCategoryID.length] = hData["CategoryID"];
	}
	else if(hData["type"] == "REMOVE")
	{
		aProductVariantSKU = aProductVariantSKU.without(hData["ProductVariantSKU"]); 
		aProductSKU = aProductSKU.without(hData["ProductSKU"]);
		aStoreID = aStoreID.without(hData["StoreID"]); 
		aCategoryID = aCategoryID.without(hData["CategoryID"]);
	}
}

function ProductAction(hData)
{
	var tsCont = "Controller_AddToShoppingCartListBag.aspx";
	try
	{
		var tsPageType = "POST";        
		var tsCallbackFunction = hData["RunCallBack"];
//		var tHashParm = $H();
//		//------------------------------------------------				
//		tHashParm["Action"] = Action;	//Remove , Change , GroupBuy , Update , AddGiftList
//		tHashParm["PageName"] = CallStr;	//CartListBag , WishListBag , CampareListBag
//		tHashParm["ProductVariantSKU"] = ProductVariantSKU;  
//		tHashParm["ProductSKU"]		= ProductSKU; 
//		tHashParm["StoreID"]	= StoreID; 
//		tHashParm["CategoryID"] = CategoryID; 
		//------------------------------------------------
		if(hData["ProductVariantSKU"] == null)
		{
			hData["ProductVariantSKU"] = aProductVariantSKU.toString();
			hData["ProductSKU"]	= aProductSKU.toString();
			hData["StoreID"] = aStoreID.toString();
			hData["CategoryID"] = aCategoryID.toString();			
		}
		var tXMLParm = BuildXMLParm(hData); 
		//alert(tXMLParm);
		AjaxHttpRequest(tsPageType, tsCont, tXMLParm, tsCallbackFunction);
		if(hData["Action"] == 'Change' || hData["Action"] == 'AddGiftList' || hData["Action"] == 'AddCartList'){parent.ControlMask();}
	}
	catch(ex)
	{
		alert("CreateAuthRank_"+ex.message);
	}		

}
		
function RunCallBackAddToCartListed(asStateCode,asStateMessage,asStateObject)
{

	var asStateObject = asStateObject.parseJSON();
	$('R5WishListInfo_ItemCount').innerHTML = asStateObject.Data.nItemCount;
	if(asStateObject.Data.CartTotalCount != '0')
	{	
		$('CartTotalCount').innerHTML = '<a href="'+parent.getUrlObj.getHttpsURL('Basket.aspx')+'" target="_parent">已加入未結帳共有<span class="sbListNum">'+asStateObject.Data.CartTotalCount+'</span>件商品<span class="sideR"></span></a>';
		
	}
	else if(asStateObject.Data.nItemCount != '0' && asStateObject.Data.CartTotalCount == '0')
	{
		$('CartTotalCount').innerHTML='<a href="javascript:OpenControl(\'btWishBuy\');">請點選購物清單進行結帳</a>';
	}
	else
	{
		$('CartTotalCount').innerHTML ='已加入未結帳共有<span class="sbListNum">'+asStateObject.Data.CartTotalCount+'</span>件商品<span class="sideR"></span>';				
	}
	if(asStateCode =='1')
	{
		var hData = $H();
		hData["type"] = "REMOVE";
		hData["ProductVariantSKU"] = asStateObject.Data.ProductVariantSKU;
		hData["ProductSKU"] = asStateObject.Data.ProductSKU;
		hData["StoreID"] = asStateObject.Data.StoreID;
		hData["CategoryID"] = asStateObject.Data.CategoryID;
		setProductArray(hData);
		init(hData["ProductVariantSKU"]);
	}
}
		
function GoToBasketCallBack(asStateCode,asStateMessage,asStateObject)
{
	/**********************************************************/
	//asStateCode =='1'  完全加入成功
	//asStateCode =='2'  加入多項其中有一項成功

	//asStateCode =='-1' 失敗
	//asStateCode =='-2' 加入結帳失敗	
	/**********************************************************/
	if(asStateCode =='1')
	{
		var asStateObject = asStateObject.parseJSON();
		//top.location.href = parent.getUrlObj.getHttpsURL('Basket.aspx');
		top.location.href ='Basket.aspx';
	}else if( asStateCode =='2')
	{
		alert(asStateMessage);
		//top.location.href = parent.getUrlObj.getHttpsURL('Basket.aspx');
		top.location.href ='Basket.aspx';
	}else if( asStateCode =='-2')
	{
		parent.hidePopWin(false);
		alert(asStateMessage);
		var asStateObject = asStateObject.parseJSON();
        var hRemoves = $H();
		hRemoves["ProductVariantSKU"] =  asStateObject.Data.ProductVariantSKU;
		hRemoves["ProductSKU"] =  asStateObject.Data.ProductSKU;
		hRemoves["StoreID"] =  asStateObject.Data.StoreID;
		hRemoves["CategoryID"] =  asStateObject.Data.CategoryID;		
		removeProducts(hRemoves);
	}
	else
	{
		parent.hidePopWin(false);
		alert(asStateMessage); 
		return;
	}
}
		
		
function GoToGiftCallBack(asStateCode,asStateMessage,asStateObject)
{
	/**********************************************************/
	//asStateCode =='1'  完全加入成功
	//asStateCode =='2'  加入多項其中有一項成功



	//asStateCode =='-1' 失敗
	//asStateCode =='-2' 加入結帳失敗	
	/**********************************************************/
	
	//asStateCode ='-2'
	if(asStateCode =='1')
	{
		var asStateObject = asStateObject.parseJSON();
		//top.location.href = parent.getUrlObj.getHttpsURL('GiftSendList.aspx');
		top.location.href = 'GiftSendList.aspx';
	}else if( asStateCode =='2')
	{
		alert(asStateMessage);
		//top.location.href = parent.getUrlObj.getHttpsURL('GiftSendList.aspx');
		top.location.href = 'GiftSendList.aspx';
	}else if( asStateCode =='-2')
	{
		parent.hidePopWin(false);
		alert(asStateMessage);
		var asStateObject = asStateObject.parseJSON();
        var hRemoves = $H();
		hRemoves["ProductVariantSKU"] =  asStateObject.Data.ProductVariantSKU;
		hRemoves["ProductSKU"] =  asStateObject.Data.ProductSKU;
		hRemoves["StoreID"] =  asStateObject.Data.StoreID;
		hRemoves["CategoryID"] =  asStateObject.Data.CategoryID;		
		removeProducts(hRemoves);
	}
	else
	{
		parent.hidePopWin(false);
		alert(asStateMessage); 
		return;
	}
}
		

function OpenControl(type)
{	
	if(type == 'Close')
	{		
		dcsMultiTrack('DCS.dcsuri','bag.aspx','DCSext.PH','Bag_Close');
		CloseShoppingBag();
	}
	else if(type == 'Open')
	{
		dcsMultiTrack('DCS.dcsuri','bag.aspx','DCSext.PH','Bag_Open');
		OpenShoppingBag('btWishBuy');	
	}
	else
	{
		dcsMultiTrack('DCS.dcsuri','bag.aspx','DCSext.PH',type);
		OpenShoppingBag(type);
	}
}
	
function OpenMyWp(bool)
{
	if(bool)
	{
		$('sbMyWp').style.display = 'block';
		$('CartContent').style.display = 'none';				
	}
	else
	{
		$('sbMyWp').style.display = 'none';
		$('CartContent').style.display = 'block';			
	}
}
	
function OpenShoppingBag(type)
{
	document.getElementById('sbMyWp').style.display = "block";
	top.ContentControl('open');
	document.getElementById('caseOpen').innerHTML='<a href="javascript:OpenControl(\'Close\');" class="btClose"></a>';		
	
	ClearTabClass();
	document.getElementById(type).className = 'raised02';
	
	if(type == "btMyAccount")
	{
		OpenMyWp(true);	
	}
	else
	{
		OpenMyWp(false);
		BagAction(type);
	}
}

function CloseShoppingBag()
{
	document.getElementById('sbMyWp').style.display = "none";
	top.ContentControl('close');
	document.getElementById('caseOpen').innerHTML='<a href="javascript:OpenControl(\'Open\');" class="btOpen"></a>';
	ClearTabClass();		
}

/*disabled checkbox & remove array string*/
function removeProducts(hData)
{
	var asProductVariantSKU = hData["ProductVariantSKU"].split(',');
	var asProductSKU = hData["ProductSKU"].split(',');
	var asStoreID = hData["StoreID"].split(',');
	var asCategoryID = hData["CategoryID"].split(',');
	
	for(var i=0;i<asProductVariantSKU.length;i++)
	{
		var chooseDivId = 'ProductChecked_'+asProductVariantSKU[i]+'';
		$(chooseDivId).checked=false;
		$(chooseDivId).disabled='disabled';	
		
		var hData = $H();
		hData["type"] = "REMOVE";
		hData["ProductVariantSKU"] = asProductVariantSKU[i];
		hData["ProductSKU"] = asProductSKU[i];
		hData["StoreID"] = asStoreID[i];
		hData["CategoryID"] = asCategoryID[i];		
		setProductArray(hData);			
	}	
}

/*刪除全部瀏覽記錄*/
function removeAllProduct(CallStr)
{
	if(CallStr == hBagName["btPDView"])
	{
		var hParm = $H();
		hParm["Action"] = "AllRemove";
		hParm["PageName"] = CallStr;
		hParm["RunCallBack"] = "removeAllProductCallBack";
		ProductAction(hParm);			
	}
}

function removeAllProductCallBack(asStateCode,asStateMessage,asStateObject)
{
	if(asStateCode == "1")
	{
		$('BagContentList').innerHTML = '';	
	}
	else
	{
		alert(asStateMessage);
	}	
}