// 
// 2007.03.09
// recent accessed products
//
// Cookie name : RecentProduct
// Cookie val  : pid:escaped_pname:image:bool,pid:escaped_pname:image:bool,...; 
//
// usage:
//   show
//     <body onload="showRecentProduct('IMAGE_BASE_URL');">
//   put
//     <body onload="addRecentProduct('PID',escape('PNAME'),IMAGE,HORIZ);">
//     PID   : productID
//     PNAME : product name
//     IMAGE : image url start with document root, ex) 'product/tag.jpg' means 'http://site/product/tag.jpg'
//     HORIZ : true if the IMAGE is horizontal
//

var MAX_RECENT_ACCESSED_PRODUCT_NUM = 20;

// clear basket
function clearRecentProduct(){
	document.cookie = "RecentProduct=; path=/; ";
	//hideRecentProduct();
}

// add product
function addRecentProduct(pid,pname,image,horiz){
	if( !( pid  &&  pname && image ) ){ return; }
	var allrp = allRecentProduct();
	var isinit = false;
	for( var i=0; i<allrp.length; i++ ){
		if( allrp[i].pid == pid ){
			isinit = true;
		}
	}
	if( !isinit ){
		allrp.push({
			pid:   pid,
			pname: pname,
			image: image,
			horiz: horiz
		});
		if( allrp.length > MAX_RECENT_ACCESSED_PRODUCT_NUM ){
			allrp.shift();
		}
		updateRecentProductWith(allrp);
	}
}

// delete product
function deleteRecentProduct(pid){
	if( !pid ){ return; }
	var allrp = allRecentProduct();
	var newrp = new Array();
	for( var i=0; i<allrp.length; i++ ){
		if( allrp[i].pid != pid ){
			newrp.push(allrp[i]);
		}
	}
	updateRecentProductWith(newrp);
}

// get all products
function allRecentProduct(){
	var rpcook = getCookieValue("RecentProduct"); // is in default.js
	var rawrps;
	if( rpcook ){
		rawrps = rpcook.split(",");
	}else{
		rawrps = new Array();
	}
	var validrps = new Array();
	for( i=0; i<rawrps.length; i++ ){
		var rawrp = rawrps[i];
		var rpprops = rawrp.split(":");
		validrps.push({
			pid:   rpprops[0],
			pname: rpprops[1],
			image: rpprops[2],
			horiz: rpprops[3]
		});
	}
	return validrps;
}

// update cookie with recent product array 
function updateRecentProductWith(newRp){
	if( !newRp ){ return; }
	if( !(newRp.length > 0) ){ clearRecentProduct(); }
	var elements = new Array();
	for( i=0; i<newRp.length; i++ ){
		elements.push( newRp[i].pid + ':' + newRp[i].pname + ':' + newRp[i].image + ':' + newRp[i].horiz );
	}
	document.cookie = "RecentProduct=" + elements.join(",") + "; path=/; expires=Tue, 1 Jan 2030 00:00:00 GMT; ";
}

// make view
function makeRecentProduct(imagebase){
	if( !imagebase ){ return; }
	var allrp = allRecentProduct();
	if( !( allrp.length > 0) ){ return ''; }
	var data = '';
	data += '<div align="center">';
	data += '<table border="0" cellpadding="0" cellspacing="0" width="520" class="search_result_table"><tr><td>';
	for( var i=0; i<allrp.length; i++ ){
		data += '<div style="float:left;width:130px;height:130px;">';
		data += '<a href="/dp/-/' + allrp[i].pid + '/detail.html">';
		if( allrp[i].horiz == 1 ){
			data += '<img src="' + imagebase + allrp[i].image + '" title="' + unescape(allrp[i].pname) + '" width="100" border="1"><br>';
		}else{
			data += '<img src="' + imagebase + allrp[i].image + '" title="' + unescape(allrp[i].pname) + '" height="100" border="1"><br>';
		}
		data += unescape(allrp[i].pname);
		data += '</a>';
		data += '</div>';
	}
	data += '</td></tr></table>';
	data += '</div>';
	return data;
}

// prebuild view
function prebuildRecentProduct(imagebase){
	if( !imagebase ){ return; }
	var domID = 'recentAccessedProducts';
	document.getElementById(domID).innerHTML = makeRecentProduct(imagebase);
}

// show recent accessed products
function showRecentProduct(imagebase){
	if( !imagebase ){ return; }
	var domID = 'recentAccessedProducts';
	document.getElementById(domID).innerHTML = makeRecentProduct(imagebase);
	document.getElementById(domID).style.display = 'block';
}

// hide recent accessed products
function hideRecentProduct(){
	if( !imagebase ){ return; }
	var domID = 'recentAccessedProducts';
	document.getElementById(domID).innerHTML = '';
	document.getElementById(domID).style.display = 'none';
}

// show or hide recent accessed products
function showhideRecentProduct(imagebase){
	if( !imagebase ){ return; }
	var main_domID = 'main_section_swappable_1';
	var my_domID   = 'main_section_swappable_2';
	if( document.getElementById(main_domID).style.display == 'block' ){
		document.getElementById(main_domID).style.display = 'none';
		document.getElementById(my_domID).style.display = 'block';
	}else{
		document.getElementById(main_domID).style.display = 'block';
		document.getElementById(my_domID).style.display = 'none';	
	}
}






