/********************************************************
 **                                                    **
 ** FILE: prevView.js                                  **
 **                                                    **
 ** DATE: 07/27/2005                                   **
 **                                                    **
 ** DESC: Previously Viewed Products on the product    **
 **       detail pages, using cookie technology        **
 **                                                    **
 ** Uses cookie functions from standard.js             **
 **                                                    **
 ********************************************************/
 
//DECLARING CONSTANTS
var PREVNAME 	= new String("prev_view");
var PREVDELIM 	= new String("++");
var ITEMDELIM	= new String("*");
var PREVMAX		= 4;

//OBJECT TYPE DECLARATION
function PREVOBJ() {
	this.id;
	this.catId;
	this.img;
	this.desc;
}

function hasPrevProd() {
	return getCookie(PREVNAME)!=null;
}

//this will return null if no cookies exist
function getPrevProds() {
	var cookieValue = getCookie(PREVNAME);
	var tempArray = new Array();
	var tempArray2 = new Array();
	
	if (hasPrevProd()) {
		tempArray = cookieValue.split(PREVDELIM);
		for (i=0; i<tempArray.length; i++) {
			tempArray2[i] 		= new PREVOBJ();
			tempArray2[i].id 	= tempArray[i].split(ITEMDELIM)[0];
			tempArray2[i].catId = tempArray[i].split(ITEMDELIM)[1];
			tempArray2[i].img	= tempArray[i].split(ITEMDELIM)[2];
			tempArray2[i].desc	= tempArray[i].split(ITEMDELIM)[3];
		}
		return tempArray2;
	} else {
		return null;
	}
}

//This function writes the new previously viewed cookie
function writePrevCookie(cookieArray) {
	var cookieVal = new String();
	
	for (i=0; i<cookieArray.length; i++) {
		cookieVal += (i==0) ? "" : PREVDELIM;
		cookieVal += cookieArray[i].id+ITEMDELIM;
		cookieVal += cookieArray[i].catId+ITEMDELIM;
		cookieVal += cookieArray[i].img+ITEMDELIM;
		cookieVal += cookieArray[i].desc;
	}
	
	setCookie(PREVNAME, cookieVal);
}

//This function will add a product to the previously viewed queue (FIFO) -=- this should be called on page unload
function setPrevProd(id, catId, img, desc) {
	var tempArray = (hasPrevProd()) ? getPrevProds() : new Array();
	var sendArray = new Array();
	var loopmax = (tempArray.length>6) ? 7 : tempArray.length;
	var dupes = false;
	var sendArrayCount = 1;
	var tmpStrB="";

	
	sendArray[0] = new PREVOBJ();
	sendArray[0].id = id;
	sendArray[0].catId = (isNaN(catId) ? "" : catId);
	sendArray[0].img = img;
	
	if (BLOOMIES.util.Url.getPathname().indexOf('/registry/wedding/') != -1) {	
		sendArray[0].desc = 'true';
	}
	else{
		sendArray[0].desc = 'false';
	}
	//alert(sendArray[0].desc);
	
	
	tmpStrB+="sendArray[0]:" + sendArray[0].desc + "\n";

	for (i=0; i<loopmax; i++) {
		if (sendArray[0].id!=tempArray[i].id) {
			sendArray[sendArrayCount]=tempArray[i];
			tmpStrB+= "sendArray[" + sendArrayCount.toString() + "]=" + "tempArray[" + i.toString() + "]:" + tempArray[i].desc + "\n";
			sendArrayCount++;
		}
	}

	writePrevCookie(sendArray);
}

function writePrevTable(srv, currentID) {
	var returnString = new String();
	var prevArray = getPrevProds();
	var imgSvr = srv+"/products/";
	var scene7Str = "?wid=52&qlt=90,0&layer=comp&op_sharpen=0&resMode=bilin&op_usm=0.7,1.0,0.5,0&fmt=jpeg";
	var dupe=false;
	var loopmax;
	var counter=0;
	
	
	
	if (hasPrevProd()) {

		for (i=0; i<prevArray.length; i++){
			if (prevArray[i].id==currentID){
				dupe=true;
			}
			
		}


		if (dupe)
			loopmax = (prevArray.length>4)?5:prevArray.length;		
		else
			loopmax = (prevArray.length>4)?4:prevArray.length;
			for (var i=0; i<loopmax; i++) {
				if (prevArray[i].id!=currentID ) {
				//alert(prevArray[i].desc);
					if (prevArray[i].desc== 'true') {	
						returnString += '\
							<div class="bl_pdp_prevview_img">\
								<a href="/registry/wedding/catalog/product/index.ognc?ID='+prevArray[i].id+'&CategoryID='+prevArray[i].catId+'">\
									<img src="'+imgSvr+prevArray[i].img+scene7Str+'" width=52 class="PDPImageDisplay">\
								</a>\
							</div>\n';
					}
					else{
						returnString += '\
							<div class="bl_pdp_prevview_img">\
								<a href="/catalog/product/index.ognc?ID='+prevArray[i].id+'&CategoryID='+prevArray[i].catId+'">\
									<img src="'+imgSvr+prevArray[i].img+scene7Str+'" width=52 class="PDPImageDisplay">\
								</a>\
							</div>\n';
					}	
					counter++;
					
				}
				if ((counter%2==0 && counter!=0) || i+1 == loopmax){
					returnString += '<div class="clearBoth"></div>';
				}
			}
	}

	if (!prevArray)
	{
		return new String();
	}
	
	if (prevArray.length==1 && prevArray[0].id==currentID) returnString = new String();	

	return returnString;
}
