/*
 * the following code is copied from
 * intl-searchweb/searchweb/control/asc/historyTrackJS.vm
 */
function logProductHistoryById(itemId){
	var imageObj = get("limage_" + itemId);
	var subjectObj = get("lsubject_" + itemId);
	var imgurl = imageObj ? imageObj.src : "";
	var linkurl = subjectObj ? subjectObj.href : "#";
	var subject = subjectObj && subjectObj.innerText ? subjectObj.innerText : subjectObj.textContent;
	logProductHistory(itemId, [subject, linkurl, imgurl, "product"]);
}
function logSellOfferHistoryById(itemId){
	var imageObj = get("limage_" + itemId);
	var subjectObj = get("lsubject_" + itemId);
	var imgurl = imageObj ? imageObj.src : "";
	var linkurl = subjectObj ? subjectObj.href : "#";
	var subject = subjectObj && subjectObj.innerText ? subjectObj.innerText : subjectObj.textContent;
	logSellOfferHistory(itemId, [subject, linkurl, imgurl, "selloffer"]);
}

function logCompanyHistoryById(itemId){
	var subjectObj = get("lsubject_" + itemId);
	var linkurl = subjectObj ? subjectObj.href : "#";
	var subject = subjectObj && subjectObj.innerText ? subjectObj.innerText : subjectObj.textContent;
	logCompanyHistory(itemId, [subject, linkurl]);
}

function logBuyOfferHistoryById(itemId){
	var subjectObj = get("lsubject_" + itemId);
	var linkurl = subjectObj ? subjectObj.href : "#";
	var subject = subjectObj && subjectObj.innerText ? subjectObj.innerText : subjectObj.textContent;
	logBuyOfferHistory(itemId, [subject, linkurl]);
}

function onProductClick(itemId){
	logProductHistoryById(itemId);
	if(typeof showProductAndSellOfferHistory=="function")showProductAndSellOfferHistory();
	if(typeof reloadPSHistoryView=="function")reloadPSHistoryView();//
}

function onSellOfferClick(itemId){
	logSellOfferHistoryById(itemId);
	if(typeof showProductAndSellOfferHistory=="function")showProductAndSellOfferHistory();
	if(typeof reloadPSHistoryView=="function")reloadPSHistoryView();//
}

function onCompanyClick(itemId){
	logCompanyHistoryById(itemId);
	if(typeof showCompanyHistory=="function")showCompanyHistory();
}

function onBuyOfferClick(itemId){
	logBuyOfferHistoryById(itemId);
	if(typeof showBuyOfferHistory=="function")showBuyOfferHistory();
}

/* 
 * the following code is copied from intl-searchweb/searchweb/control/asc/historyTrack.vm
 * @global param {historyTrackData} is output by vm(historyTrack.vm etc.)
*/
function histroyInit(){
	if(historyTrackData.listType == "buyoffer")
		showBuyOfferHistory();
	else{
		showProductAndSellOfferHistory();
		showCompanyHistory();
		cloneAllHistoryFloatDiv(MAX_PRODUCT_SELLOFFER);
	}
	showCategoryHistory();
	showHistoryOuterBox();
}

function showHistoryOuterBox(){
	var psgroup = getHistoryCookieGroup(GROUP_PRODUCT_SELLOFFER);
	var buyoffergroup = getHistoryCookieGroup(GROUP_BUYOFFER);
	var companygroup = getHistoryCookieGroup(GROUP_COMPANY);
	var categorygroup = getHistoryCookieGroup(GROUP_CATEGORY);
	var closehistorybox = false;
	var box = get("historyOuterBox");
	if(historyTrackData.listType == "buyoffer"){
		if((null == buyoffergroup || buyoffergroup.size() <=0) && (null == categorygroup || categorygroup.size() <=0)){
			box.style.display = "none";
		}else if(box.style.display == "none"){
			box.style.display = "";
		}
	}else{
		if((null == psgroup || psgroup.size() <=0) && (null == companygroup || companygroup.size() <=0) && (null == categorygroup || categorygroup.size() <=0)){
			box.style.display = "none"
		}else if(box.style.display == "none"){
			box.style.display = "";
		}
	}
}

function getPSHistoryItems(){
	var group = getHistoryCookieGroup(GROUP_PRODUCT_SELLOFFER);
	return null != group ? group.getReverse() : [];
}

function showCompanyHistory(group){
	var group = getHistoryCookieGroup(GROUP_COMPANY);
	var box = get("companyHistoryBox");
	if(box && null != box){
    	box.style.display = (null == group || group.size() == 0) ? "none" : "";
    	showHistoryList(GROUP_COMPANY, MAX_COMPANY, group);
    	showHistoryOuterBox();
	}
}

function showBuyOfferHistory(group){
	var group = getHistoryCookieGroup(GROUP_BUYOFFER);
	var box = get("buyofferHistoryBox");
	if(box && null != box){
    	box.style.display = (null == group || group.size() == 0) ? "none" : "";
    	showHistoryList(GROUP_BUYOFFER, MAX_BUYOFFER, group);
    	showHistoryOuterBox();
	}
}

function showCategoryHistory(group){
	var group = getHistoryCookieGroup(GROUP_CATEGORY);
	var box = get("categoryHistoryBox");
	if(box && null != box){
    	box.style.display = (null == group || group.size() == 0) ? "none" : "";
    	showHistoryList(GROUP_CATEGORY, MAX_CATEGORY, group);
    	showHistoryOuterBox();
	}
}

function showProductAndSellOfferHistory(cookieGroup){
	var group = cookieGroup ? cookieGroup : getHistoryCookieGroup(GROUP_PRODUCT_SELLOFFER);
	var box = get("PSHistoryBox");
	if((null == group || group.size() == 0)){
		box.style.display = "none";
	}else{
		box.style.display = "";
	}
	showHistoryOuterBox();
	var panel = document.getElementById(GROUP_PRODUCT_SELLOFFER + "_hispanel");
	if(null != group && group.size() >0 && null != panel){
		var len = group.size() > MAX_PRODUCT_SELLOFFER ? MAX_PRODUCT_SELLOFFER : group.size() ;
		var items = group.getReverse();
		for(var i=0, index=0; i<MAX_PRODUCT_SELLOFFER; i++){
			var link_a = document.getElementById(GROUP_PRODUCT_SELLOFFER + "_link_a_" + i);
			var imgobj = document.getElementById(GROUP_PRODUCT_SELLOFFER + "_img_" + i);
			var li = document.getElementById(GROUP_PRODUCT_SELLOFFER + "_li_" + i);
			if(i<len){
				var item = items[i];
				link_a.href = item.get(1);
				imgobj.src = item.get(2);
				li.style.display = "";
			}else{
				li.style.display = "none";
				continue;
			}
		}
	}
}

function showHistoryList(tagName, max, cookieGroup){
	var group = cookieGroup ? cookieGroup : getHistoryCookieGroup(tagName);
	var panel = document.getElementById(tagName + "_hispanel");
	if(null != group && group.size() >0 && null != panel){
		var len = group.size() > max ? max : group.size() ;
		var items = group.getReverse();
		for(var i=0; i<max; i++){
			var link = document.getElementById(tagName + "_link_" + i);
			var li = document.getElementById(tagName + "_li_" + i);
			if(i<len){
				var item = items[i];
				link.innerHTML = item.get(0);
				link.href = item.get(1);
				li.style.display = "";
			}else{
				li.style.display = "none";
				continue;
			}
		}
	}
}

function onHistoryTabClick(obj, panelId){
	if(obj.tagName == "A" && panelId){
		var panel = document.getElementById(panelId);
		if(panel){
			panel.style.display = panel.style.display == "none" ? "" : "none";
		}
		obj.className = obj.className == "sortclose" ? "sortopen" : "sortclose";
	}
}

function onPSHistoryItemsMouseOver(index){
	var items = getPSHistoryItems();
	var item = index<items.length ? items[index] : null;
	
	if(null != item){
		showHistoryItemFloatView(item,index);
	}
}

var cboxSelectedMap = {};
var selectedAllHistoryItems = false;

function cloneAllHistoryFloatDiv(num){
		var dFloatDiv_Box = YUD.getElementsByClassName("historyBox",'*')[0];

		for(var i=0; i<num;i++){
			var dTarget	= get("product_selloffer_link_a_" + i);
			var dFloat_Model = get("floatdiv_model");
			var dNew_FloatDiv = dFloat_Model.cloneNode(true);
			dNew_FloatDiv.setAttribute("id","history_floatdiv_" + i);
			dFloatDiv_Box.appendChild(dNew_FloatDiv);	
			
			var oshow = new AE.widget.overShow; 
			oShow_config = {
						targetId:dTarget,
						contentId:dNew_FloatDiv,
						showDelayTime:500,
						hiddenDelayTime:100,
						excursion:[-parseInt(YUD.getStyle(dFloat_Model,"width"))+8,30],
						needMask:true
			}
			oshow.init(oShow_config);
		}
}

function showHistoryItemFloatView(item,index){
		var id = item.key;	//id
		var subject = item.get(0); //subject
		var linkurl = item.get(1); //detail url
		var imgurl = item.get(2);	// img url
		var bimgurl = imgurl.replace(/.summ/i, "");	//big image
		var type = item.get(3);		//type
		var floatDiv = get("history_floatdiv_" + index);	
		var dTitle = YUD.getElementsByClassName("fdiv_title",'*',floatDiv)[0];
		dTitle.innerHTML = subject;
		var dHrefs = YUD.getElementsByClassName("fdiv_href",'*',floatDiv);
		for(var i=0, len=dHrefs.length; i<len; i++){
			var dhref = dHrefs[i];
			dHrefs[i].setAttribute("href",linkurl);
		}
		var dImage = YUD.getElementsByClassName("fdiv_image",'*',floatDiv)[0];
		dImage.setAttribute("src",bimgurl);
		if(bimgurl != "http://img.alibaba.com/images/eng/no_photo.gif"){
			dImage.setAttribute("width","260");
		}
}

function isSelectedAllItems(){
	var items = getPSHistoryItems();
	for(var i=0; i<items.length; i++){
		if(!cboxSelectedMap[items[i].key]){
			return false;
		}
	}
	return true;
}

function hasSelectedItem(){
	var items = getPSHistoryItems();
	for(var i=0; i<items.length; i++){
		if(cboxSelectedMap[items[i].key]){
			return true;
		}
	}
	return false;
}

function showSelectedItems(){
	var items = getPSHistoryItems();
	var outer, check;
	var item;
	if(null != items){
		for(var i=0; i<items.length; i++){
			item = items[i];
			outer = get("product_selloffer_link_a_" + i).parentNode;
			outer.style.border = cboxSelectedMap[item.key] ? "solid 2px #D80808" : "solid 1px #CCCCCC";
			cboxSelectedMap[item.key] ? YUD.setStyle(outer, 'padding', '1px') : YUD.setStyle(outer, 'padding', '2px');
			check = get("mask_div_" + i);
			cboxSelectedMap [item.key] ? YUD.setStyle(check, 'display', '') : YUD.setStyle(check, 'display', 'none'); 
		}
	}
	selectedAllHistoryItems = isSelectedAllItems();
	
	
}

function setHistoryItemStatus(index, selectedStatus){
	var items = getPSHistoryItems();
	var status = false;
	if(null != items && index < items.length){
		var item = items[index];
		if(typeof selectedStatus == "boolean"){
			status = selectedStatus;
		}else{
			status = cboxSelectedMap[item.key] ? false : true;
		}
		cboxSelectedMap[item.key] = status;
	}
}

function selectAllHistoryItems(){
	var isSelectAll = selectedAllHistoryItems ? false : true;
	selectedAllHistoryItems = isSelectAll;
	var items = getPSHistoryItems();
	for(var i=0; i<items.length; i++){
		setHistoryItemStatus(i, isSelectAll);
	}
	showSelectedItems();
}

function getHistoryRequestName(type){
	var inputName = "chkProductIds";
	switch (type) {
		case "selloffer" :
			inputName = ELE_NAME_ARRAY[1];break;
		case "product" :
			inputName = ELE_NAME_ARRAY[2];break;
		case "company" :
			inputName = ELE_NAME_ARRAY[3];break;
		default :
			inputName = ELE_NAME_ARRAY[2];break;
	}
	return inputName;
}

function onHistoryInquirySubmit(ev,args){
		var form = get("historyContactForm");
		var innerForm = "";
		var items = getPSHistoryItems();
		if(null == items || items.length <=0){
			return ;
		}
		for(var i=0; i<items.length; i++){
			var item = items[i];
			var type = item.get(3);
			var inputName = getHistoryRequestName(type);
			if(cboxSelectedMap[item.key]){
				innerForm += '<input type="checkbox" name="'+ inputName +'" value="'+ item.key +'" checked />';
			}
		}
		if(innerForm == ""){
			alert("No item(s) selected.")
			return;
		}else{
			form.innerHTML = innerForm;
			//alert(form.innerHTML);
			form.submit();
		}
}

function reloadPSHistoryView(){
	showSelectedItems();
}