/* *** Recently Viewed Products *** */
/*	If JS file loaded in Head :
	-1) Comment the last line of this file => //CRVProducts.Init();
	-2) Add script in the body => CRVProducts.Init();

	Global var for hoverride parameters :
	var OxRVPTitle			=> to force title text
	var OxRVPDirection		=> ["left","right"] - moving direction on class insert
	var OxRVPMaxChar		=> [(number)] - max char of product name
	var OxRVPMaxImgHeight	=> [(number)] - max image height
	var OxRVPMaxImgWidth	=> [(number)] - max image width
	var OxRVPHideName		=> [1] - show name
	var OxRVPHideImage		=> [1] - show image
	var OxRVPHidePrice		=> [1] - show price
	var OxRVPInsertClassNu	=> [>0,99] - specify insert class nu (first, secont, ..) default 1, if 99 specify always last
	var OxRVPListPageEx		=> Array of page name list (to exclude) in the url or class name of #maincontainer ( http://gsk.oxatis.net/fr/css/Oxatis-Doc-CSS.pdf )
	var OxRVPListPageExAdd	=> Array of page name list (to exclude) in the url or class name of #maincontainer to add to default

	When add html block with class [OxRVPInsert] (default)
	Every CSS in Style would be report in block id [oxRVPCtnInsertID]

	Arguments : (look in script for "DEBUG CODES")	rvperasedatarvperasesession
	..?rvperasedata			=> Clean data cookie
	..?rvperasesession		=> Clean session cookie
	..?rvpposdefault		=> Default build
	..?rvpposclass			=> Build in class position
	..?rvpmoveleft			=> Move direction on the left
	..?rvpmoveright			=> Move direction on the right

	Global var for product insert :
	var OxPdtName
	var OxPdtPrice
	var OxPdtUrl
	var OxPdtImgUrl
*/
var CRVProducts = {
	m_ox$: null,

	m_cfgRVPLangID: 0,

	m_cfgRVPPosClassToInsert: "OxRVPInsert",

	m_cfgCookieNameData: "OxRVProducts",
	m_cfgCookieNameConfig: "OxRVProductsConfig",
	m_cfgCookieNameSession: "OxRVProductsSession",
	m_cfgCookieDayExpire: 1,

	m_cfgListPageToExclude: new Array("PBShoppingCart.asp", "PBSCOrderForm.asp", "PBSCShippingForm.asp", "PBSCPaymentForm.asp", "PBSCConfirmForm.asp", "PBSCCheckOut.asp", "PBUserLogin.asp", "PBUserAccount.asp"),
	m_cfgListPageProductToConsider: new Array("itemdetail", "PBProduct.asp", "PBSCProduct.asp"),

	m_cfgRVPShowFirstDelais: 1000,
	m_cfgRVPMoveDuration: "fast", 	/* "slow", "fast", 500 */

	m_cfgRVPMax: 10,

	m_cfgRVPBlockPosTop: 0,
	m_cfgRVPBlockWidth: 200,
	m_cfgRVPBlockHandleWidth: 32,
	m_cfgRVPBlockHandleHeight: 50,
	m_cfgRVPBlockHandleImgSrc: "DesignCss/SharedImages/RVPBtn.png",
	m_cfgRVPBlockTitleImgSrc: "DesignCss/SharedImages/RVPTitleBg.png",
	m_cfgPdtNameMax: 17,
	m_cfgPdtImgHeight: 37,
	m_cfgPdtImgWidth: 37,

	m_cfgRVPPosCode: "MainExtRight",
	m_cfgRVPInsertClassNu: 1,
	m_cfgRVPShowImage: true,
	m_cfgRVPShowName: true,
	m_cfgRVPShowPrice: true,

	m_cfgRVPShowAnim: true,

	m_nAction: 0,
	m_nPosStart: 0,
	m_nPosEnd: 0,
	m_nPosMin: 0,
	m_nPosMax: 0,

	m_bMoveOnLeft: false,

	IDS: {
		Title: function (nLangID) {
			var vRet = CRVProducts.CheckVar("OxRVPTitle");
			if (vRet && vRet.length > 0) return vRet;
			var strReturn = "Derniers Articles Consultés"
			if (nLangID == 1) strReturn = "Recently Viewed Products";
			return strReturn;
		}
	},

	Init: function (strCSSAdd) {
		// Array.indexOf not supported with IE
		if (!Array.indexOf) { Array.prototype.indexOf = function (o) { for (var i = 0; i < this.length; i++) { if (this[i] == o) return i; } return -1; } }
		if (this.m_ox$) {
			if (this.m_ox$("." + this.m_cfgRVPPosClassToInsert).size() > 0) {
				this.m_cfgRVPPosCode = "ClassInsert";
			}
			this.CSS.Render(strCSSAdd);
			if (CRVProducts.CheckPage(true) || CRVProducts.CheckPage(false)) {
				if (CRVProducts.m_cfgRVPPosCode == "MainExtRight") CRVProducts.m_bMoveOnLeft = true;
				if (CRVProducts.m_cfgRVPPosCode == "ClassInsert") CRVProducts.m_bMoveOnLeft = false;
				//----- Begin User Config -----
				CRVProducts.GetUserConfig();
				//----- End User Config -----
				//***** DEBUG CODES *****
				var strUrl = document.URL.toLowerCase();
				if (strUrl.indexOf("rvperasedata") > 0) { CCookieJS.strName = CRVProducts.m_cfgCookieNameData; CCookieJS.Erase(); alert('Data Cookie empty!'); }
				if (strUrl.indexOf("rvperasesession") > 0) { CCookieJS.strName = CRVProducts.m_cfgCookieNameSession; CCookieJS.Erase(); alert('Session Cookie empty!'); }
				if (strUrl.indexOf("rvpposdefault") > 0) { CRVProducts.m_cfgRVPPosCode = "MainExtRight"; }
				if (strUrl.indexOf("rvpposclass") > 0) { CRVProducts.m_cfgRVPPosCode = "ClassInsert"; }
				if (strUrl.indexOf("rvpmoveleft") > 0) { CRVProducts.m_bMoveOnLeft = true; }
				if (strUrl.indexOf("rvpmoveright") > 0) { CRVProducts.m_bMoveOnLeft = false; }
				CRVProducts.Show.Init();
			}
		}
	},

	CSS: {	//.oxRVPListPdt
		Render: function (strCSSAdd) {
			var strCSS = "", oHead = document.getElementsByTagName("head")[0];
			strCSS += " .OxRVPHandlerImgClass { height: " + CRVProducts.m_cfgRVPBlockHandleHeight + "px; width: " + CRVProducts.m_cfgRVPBlockHandleWidth + "px; background: url('" + CRVProducts.m_cfgRVPBlockHandleImgSrc + "') no-repeat; }";
			strCSS += " .OxRVPCtnInsert .OxRVPTitle { background: url('" + CRVProducts.m_cfgRVPBlockTitleImgSrc + "') repeat-x top #CCCCCC; }";
			strCSS += " " + ((strCSSAdd) ? strCSSAdd : "");
			CRVProducts.m_ox$("head meta").last().after("<style type=\"text/css\" id=\"OxRVP_CSSStyle\">" + strCSS + "</style>");
		}
	},

	GetUserConfig: function () {
		var vRet = null;
		vRet = this.CheckVar("OxLangID"); if (vRet && vRet >= 0) this.m_cfgRVPLangID = vRet;
		vRet = this.CheckVar("OxRVItemCount"); if (vRet && vRet >= 0) this.m_cfgRVPMax = vRet;
		vRet = this.CheckVar("OxRVPDirection");
		if (vRet) {
			if (vRet.toLowerCase() == "left") this.m_bMoveOnLeft = true;
			if (vRet.toLowerCase() == "right") this.m_bMoveOnLeft = false;
		}
		vRet = this.CheckVar("OxRVPMaxChar"); if (vRet && vRet > 0) this.m_cfgPdtNameMax = vRet;
		vRet = this.CheckVar("OxRVPMaxImgHeight"); if (vRet && vRet > 0) this.m_cfgPdtImgHeight = vRet;
		vRet = this.CheckVar("OxRVPMaxImgWidth"); if (vRet && vRet > 0) this.m_cfgPdtImgWidth = vRet;
		vRet = this.CheckVar("OxRVPHideName"); if (vRet && vRet > 0) this.m_cfgRVPShowName = false;
		vRet = this.CheckVar("OxRVPHideImage"); if (vRet && vRet > 0) this.m_cfgRVPShowImage = false;
		vRet = this.CheckVar("OxRVPHidePrice"); if (vRet && vRet > 0) this.m_cfgRVPShowPrice = false;
		vRet = this.CheckVar("OxRVPInsertClassNu"); if (vRet && vRet > 0) this.m_cfgRVPInsertClassNu = vRet;
		vRet = this.CheckVar("OxRVPListPageEx");
		if (vRet.constructor == Array) { if (vRet.length > 0) this.m_cfgListPageToExclude = vRet; }
		vRet = this.CheckVar("OxRVPListPageExAdd");
		if (vRet.constructor == Array) { if (vRet.length > 0) this.m_cfgListPageToExclude.push(vRet); }
	},

	CheckVar: function (strVarName) {
		var vVar = null;
		try {
			vVar = eval(strVarName);
			if (vVar != "undefined") return vVar;
		} catch (err) {
			return false;
		}
		return false;
	},

	ContainerBuilder: function (aProductList, strPosCode) {
		var nPdtNb, strHtml, strHtmlPdt, strPdtHref, strHtmlPdtFirst;
		var strMainCtnBegin, strMainCtnEnd;
		var strPdtId, strPdtName, strPdtNameFull, strPdtPrice, strPdtImage;
		var nWidth, strWidth;
		var aProductData;
		strHtml = "";
		nPdtNb = aProductList.length;
		if (nPdtNb > 0) {
			nWidth = this.m_cfgRVPBlockWidth;
			nHandleWidth = this.m_cfgRVPBlockHandleWidth;
			nHandleHeight = this.m_cfgRVPBlockHandleHeight;
			strMainCtnBegin = ""; strMainCtnEnd = "";

			if (!nWidth) {
				nWidth = document.getElementById("vmenu").offsetWidth;
				this.m_cfgRVPBlockWidth = nWidth;
			}
			strWidth = nWidth + "px";

			if (strPosCode == "MainExtRight") {
				strMainCtnBegin = "<div id=\"OxRVPCtnId\" class=\"OxRVPCtnClass\" style=\"position: absolute; display: block; right: -" + nHandleWidth + "px;\">"
				strMainCtnBegin += "<table cellpadding=\"0\" cellspacing=\"0\"><tr><td valign=\"top\">";
				strMainCtnBegin += "	<div id=\"OxRVPCacheId\" class=\"OxRVPCacheClass\" style=\"position: absolute; display: block; right: " + nHandleWidth + "px; overflow: hidden; width: " + strWidth + "px;\">";

				strMainCtnEnd = "	</div></td>";
				strMainCtnEnd += "<td valign=\"top\">";
				strMainCtnEnd += "<div id=\"OxRVPHandlerId\">";
				strMainCtnEnd += "<img id=\"OxRVPHandlerImgId\" class=\"OxRVPHandlerImgClass\" src=\"Images/T.gif\" />";
				strMainCtnEnd += "</div>";
				strMainCtnEnd += "</td></tr></table>";
			}
			if (strPosCode == "ClassInsert") {
				if (this.m_bMoveOnLeft) {
					strMainCtnBegin = "<div class=\"OxRVPCtnInsert\" id=\"OxRVPCtnInsertID\">";
					strMainCtnBegin += "<div id=\"OxRVPCtnId\" class=\"OxRVPCtnClass\" style=\"position: relative; display: block;\">";
					strMainCtnBegin += "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr>";
					strMainCtnBegin += "<td valign=\"top\">";
					strMainCtnBegin += "	<div id=\"OxRVPCacheId\" class=\"OxRVPCacheClass\" style=\"position: absolute; display: block; overflow: hidden; width: " + strWidth + "px; right: 0px;\">";

					strMainCtnEnd = "	</div>";
					strMainCtnEnd += "</td>";
					strMainCtnEnd += "<td width=\"auto\" valign=\"top\" align=\"center\">";
					strMainCtnEnd += "	<div id=\"OxRVPHandlerId\" style=\"width: 100%; height: auto;\">";
					strMainCtnEnd += "		<table cellpadding=\"0\" cellspacing=\"0\" height=\"100%\" width=\"100%\">";
					strMainCtnEnd += "		<tr><td valign=\"middle\" align=\"center\" class=\"OxRVPTitle\">" + this.IDS.Title(this.m_cfgRVPLangID) + "</td></tr>";
					strMainCtnEnd += "		<tr><td valign=\"middle\" align=\"center\" style=\"font-size: 8pt; padding: 4px;\">#FIRSTPRODUCT#</td></tr>";
					strMainCtnEnd += "		</table>";
					strMainCtnEnd += "	</div>";
					strMainCtnEnd += "</td>";
					strMainCtnEnd += "</tr></table>";
					strMainCtnEnd += "</div>";
				} else {
					strMainCtnBegin = "<div class=\"OxRVPCtnInsert\" id=\"OxRVPCtnInsertID\">";
					strMainCtnBegin += "<div id=\"OxRVPCtnId\" class=\"OxRVPCtnClass\" style=\"display: block;\">";
					strMainCtnBegin += "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td width=\"auto\" valign=\"top\" align=\"center\">";
					strMainCtnBegin += "<div id=\"OxRVPHandlerId\" style=\"width: auto; height: auto;\">";
					strMainCtnBegin += "<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\">";
					strMainCtnBegin += "<tr><td valign=\"middle\" align=\"center\" class=\"OxRVPTitle\">" + this.IDS.Title(this.m_cfgRVPLangID) + "</td></tr>";
					strMainCtnBegin += "<tr><td valign=\"middle\" align=\"center\" style=\"font-size: 8pt; padding: 4px;\">#FIRSTPRODUCT#</td></tr>";
					strMainCtnBegin += "</table>";
					strMainCtnBegin += "</div>";
					strMainCtnBegin += "</td>";
					strMainCtnBegin += "<td valign=\"top\">";
					strMainCtnBegin += "<div id=\"OxRVPCacheId\" class=\"OxRVPCacheClass\" style=\"position: absolute; display: block; overflow: hidden; width: " + strWidth + "px;\">";

					strMainCtnEnd = "</div>";
					strMainCtnEnd += "</td></tr></table>";
					strMainCtnEnd += "</div>";
				}
			}
			strHtml += strMainCtnBegin;
			if (CRVProducts.m_bMoveOnLeft) {
				strHtml += "<div class=\"OxRVPListPdt\" style=\"position: absolute; left: 0px; width: " + strWidth + ";\">";
			} else {
				strHtml += "<div class=\"OxRVPListPdt\" style=\"position: absolute; right: 0px; width: " + strWidth + ";\">";
			}
			strHtmlPdtFirst = null;
			for (var nIdx = 0; nIdx < nPdtNb; nIdx++) {
				aProductData = aProductList[nIdx].split("[-]");
				strPdtId = aProductData[0];
				strPdtNameFull = aProductData[1];
				strPdtName = this.FormatPdtName(strPdtNameFull);
				strPdtPrice = aProductData[2];
				strPdtImage = aProductData[3];
				strPdtHref = aProductData[4];

				if (window.location.toString().indexOf("//localhost/") > 0
					|| window.location.toString().indexOf("192.168.0./") > 0) strPdtHref = "PBSCProduct.asp?ItmID=" + aProductData[0];

				strHtmlPdt = "";
				strHtmlPdt += "<div class=\"OxRVPLineBlock OxRVPLineImg\" style=\"width: " + this.m_cfgPdtImgWidth + "px\">";
				if (this.m_cfgRVPShowImage && strPdtImage && strPdtImage != "") {
					strHtmlPdt += "<img id=\"OxRVPImg" + nIdx + "\" src=\"" + strPdtImage + "\" style=\"width: " + this.m_cfgPdtImgWidth + "px\" />";
				}
				strHtmlPdt += "</div><div class=\"OxRVPLineBlock OxRVPLineName\">";
				if (this.m_cfgRVPShowName && strPdtName && strPdtName != "") {
					if (strHtmlPdt.length > 1) strHtmlPdt += "&nbsp;&nbsp;";
					strHtmlPdt += strPdtName;
				}
				strHtmlPdt += "</div><div class=\"OxRVPLineBlock OxRVPLinePrice\">";
				if (this.m_cfgRVPShowPrice && strPdtPrice && strPdtPrice != "") {
					if (strHtmlPdt.length > 1) strHtmlPdt += "&nbsp;&nbsp;";
					strHtmlPdt += strPdtPrice + "";
				}
				strHtmlPdt += "</div><br class=\"OxRVPLineEnd\" />";

				if (strPosCode == "MainExtRight" && nIdx == 0) {
					strHtml += "<div class=\"OxRVPTitle\" style=\" background: url('" + CRVProducts.m_cfgRVPBlockTitleImgSrc + "') repeat-x top #CCCCCC;\">" + this.IDS.Title(this.m_cfgRVPLangID) + "</div>";
				}
				if (strPosCode == "ClassInsert" && nIdx == 0) {
					strHtmlPdt = "<a class=\"OxRVPPdtLine OxRVPPdt" + nIdx + "\" href=\"" + strPdtHref + "\" alt=\"" + strPdtNameFull + "\" title=\"" + strPdtNameFull + "\">" + strHtmlPdt + "</a>";
					if (this.m_bMoveOnLeft) {
						strHtmlPdtFirst = strHtmlPdt;
					} else {
						strHtml = strHtml.replace("#FIRSTPRODUCT#", strHtmlPdt);
					}
				} else {
					strHtml += "<a class=\"OxRVPPdtLine OxRVPPdt" + nIdx + "\" href=\"" + strPdtHref + "\" alt=\"" + strPdtNameFull + "\" title=\"" + strPdtNameFull + "\">";
					strHtml += strHtmlPdt;
					strHtml += "</a>";
				}
			}
			strHtml += "</div>";
			strHtml += strMainCtnEnd;
			if (strHtmlPdtFirst && strHtmlPdtFirst.length > 0) {
				strHtml = strHtml.replace("#FIRSTPRODUCT#", strHtmlPdtFirst);
			}
		}
		return strHtml;
	},

	GetCookieConfig: function () {
		var aPLVConfig = new Array;
		var strPLVConfig;
		CCookieJS.strName = this.m_cfgCookieNameConfig;
		CCookieJS.nDaysExpire = this.m_cfgCookieDayExpire;
		strPLVConfig = CCookieJS.Read();
		if (strPLVConfig) aPLVConfig = strPLVConfig.split("[|]");
		DBGTrace("<a style='cursor:pointer;' onclick='CCookieJS.strName = CRVProducts.m_cfgCookieNameConfig;CCookieJS.Erase();alert(\"Cookie empty!\");'><u>=>Empty CFG cookie<=</u></a> &nbsp; Config loaded from cookie : " + aPLVConfig.length + "<br />=> " + aPLVConfig.join("<br />=> ") + "<br />");
		return aPLVConfig;
	},

	SetCookieConfig: function (strMinMaximize, strAA, strBB) {
		var aPLVConfig = new Array, aPLVConfigSav = new Array("", "", "");
		var strPLVConfig;
		CCookieJS.strName = CRVProducts.m_cfgCookieNameConfig;
		strPLVConfig = CCookieJS.Read();
		if (strPLVConfig) aPLVConfig = strPLVConfig.split("[|]");
		for (var nIdx = 0; nIdx < aPLVConfigSav.length; nIdx++) {
			if (aPLVConfig[nIdx] && aPLVConfig[nIdx] != "") aPLVConfigSav[nIdx] = aPLVConfig[nIdx];
			if (nIdx == 0 && strMinMaximize && strMinMaximize != "") aPLVConfigSav[nIdx] = strMinMaximize;
			if (nIdx == 1 && strAA && strAA != "") aPLVConfigSav[nIdx] = strAA;
			if (nIdx == 2 && strBB && strBB != "") aPLVConfigSav[nIdx] = strBB;
		}
		strPLVConfig = aPLVConfigSav.join("[|]");
		CCookieJS.strValue = strPLVConfig;
		DBGTrace("Save to CFG cookie (" + strMinMaximize + "): <br />=> " + aPLVConfigSav.join("<br />=> ") + "<br />");
		CCookieJS.Create()
		return true;
	},

	MoveActionControl: function (strPosCode, bIsLeft, bIsHide) {
		var oObjMove = null, oObjCtn = null;
		var nHeight = (CRVProducts.m_ox$("#OxRVPCacheId .OxRVPListPdt").height() + 2);
		CRVProducts.m_ox$("#OxRVPCacheId").css("height", nHeight + "px");
		CRVProducts.m_nAction = 0;
		if (CRVProducts.m_cfgRVPShowAnim) {
			if (document.getElementById("OxRVPCacheId")) {
				CRVProducts.m_cfgRVPBlockWidth = document.getElementById("OxRVPCacheId").offsetWidth;
			}
			oObjMove = CRVProducts.m_ox$("#OxRVPCacheId");
			oObjCtn = CRVProducts.m_ox$("#OxRVPCtnId");
			if (bIsHide) {
				CRVProducts.m_nAction = 0;
				oObjMove.css("width", "0px");
			} else {
				if (CRVProducts.m_ox$("#OxRVPCtnId").position()) {
					CRVProducts.m_cfgRVPBlockPosTop = CRVProducts.m_ox$("#OxRVPCtnId").position().top;
				}
				CRVProducts.m_nAction = 1;
				CRVProducts.m_nPosMax = oObjMove.css("width");
				oObjMove.animate({ "width": "-=" + CRVProducts.m_cfgRVPBlockWidth + "px" },
						{ duration: CRVProducts.m_cfgRVPMoveDuration, queue: false, complete: function () {
							CRVProducts.m_nPosMin = CRVProducts.m_ox$(this).css("width"); CRVProducts.m_nAction = 0;
							DBGTrace("Pos:" + CRVProducts.m_nPosMin + " - " + CRVProducts.m_nPosMax);
						}
						}
				);
			}
			oObjCtn.mouseenter(function () {
				var nWidth = parseInt(CRVProducts.m_ox$("#OxRVPCacheId").width());
				var nHeight = parseInt(CRVProducts.m_ox$("#OxRVPCacheId").height());
				if (CRVProducts.m_nAction == 0 && nWidth <= parseInt(CRVProducts.m_nPosMin) && nHeight > 5) {
					CRVProducts.m_cfgRVPBlockWidth = CRVProducts.m_ox$("#OxRVPCacheId .OxRVPListPdt").width() + 2;
					CRVProducts.m_nAction = 1;
					CRVProducts.m_ox$("#OxRVPCacheId").animate({ "width": "+=" + CRVProducts.m_cfgRVPBlockWidth + "px" }, { duration: CRVProducts.m_cfgRVPMoveDuration, queue: false, complete: function () { CRVProducts.m_nAction = 0; } });
				}
				var nHeight = (CRVProducts.m_ox$("#OxRVPCacheId .OxRVPListPdt").height() + 2);
				CRVProducts.m_ox$("#OxRVPCacheId").css("height", nHeight + "px");
			});
			oObjCtn.mouseleave(function () {
				if (CRVProducts.m_nAction == 0) {
					CRVProducts.m_nAction = 1;
					CRVProducts.m_ox$("#OxRVPCacheId").animate({ "width": "-=" + CRVProducts.m_cfgRVPBlockWidth + "px" }, { duration: CRVProducts.m_cfgRVPMoveDuration, queue: false, complete: function () { CRVProducts.m_nAction = 0; } });
				}
				var nHeight = (CRVProducts.m_ox$("#OxRVPCacheId .OxRVPListPdt").height() + 2);
				CRVProducts.m_ox$("#OxRVPCacheId").css("height", nHeight + "px");
			});
			CRVProducts.m_ox$(window).scroll(function () {
				CRVProducts.m_ox$("#OxRVPCtnId").css({ "top": (CRVProducts.m_ox$(window).scrollTop() + CRVProducts.m_cfgRVPBlockPosTop) + "px" });
			});
		}
	},

	Show: {
		Init: function () {
			var aProductList = new Array, strProductList = "", aPLVConfig = new Array;
			var strProductData = null, strDataCookie, strDataCookieSession;
			var strPosCode = CRVProducts.m_cfgRVPPosCode;
			//DBGTraceReset();
			//CONFIG from Cookie
			aPLVConfig = CRVProducts.GetCookieConfig();
			if (aPLVConfig.length > 0) {
				//Cookies Config Value
			}
			//DATA from Cookie
			CCookieJS.strName = CRVProducts.m_cfgCookieNameData;
			strProductList = CCookieJS.Read();
			if (strProductList) aProductList = strProductList.split("[|]");
			DBGTrace("<a style='cursor:pointer;' onclick='CCookieJS.strName = CRVProducts.m_cfgCookieNameData;CCookieJS.Erase();alert(\"Cookie empty!\");'><u>=>Empty Data cookie<=</u></a> &nbsp; Data loaded from cookie : " + aProductList.length + "<br />=> " + aProductList.join("<br />=> ") + "<br />");
			if (aProductList.length >= 0 && CRVProducts.CheckPage(false)) {
				this.BuildInContainer(aProductList);
			}
			strProductData = CRVProducts.IsProductConsult();
			if (strProductData) {
				if (aProductList.indexOf(strProductData) == -1) {
					aProductList.splice(0, 0, strProductData);
					aProductList = aProductList.slice(0, CRVProducts.m_cfgRVPMax)
				}
				strDataCookie = aProductList.join("[|]");
				CCookieJS.strValue = strDataCookie;
				DBGTrace("Save to DATA cookie : <br />=> " + aProductList.join("<br />=> ") + "<br />");
				CCookieJS.Create()
			}
			//SESSION from Cookie
			CCookieJS.strName = CRVProducts.m_cfgCookieNameSession;
			CCookieJS.strValue = true;
			CCookieJS.nDaysExpire = 0.5;
			strDataCookieSession = CCookieJS.Read();
			//Action on page loaded
			if (aProductList.length > 0) {
				if (!strDataCookieSession && !CRVProducts.CheckPage(true)) {
					if (strPosCode == "ClassInsert") {
						if (aProductList.length > 1) {
							CCookieJS.Create();
							setTimeout(function () { CRVProducts.MoveActionControl(strPosCode, CRVProducts.m_bMoveOnLeft, false); }, CRVProducts.m_cfgRVPShowFirstDelais);
						}
					} else {
						CCookieJS.Create();
						setTimeout(function () { CRVProducts.MoveActionControl(strPosCode, CRVProducts.m_bMoveOnLeft, false); }, CRVProducts.m_cfgRVPShowFirstDelais);
					}
				} else {
					if (strPosCode == "ClassInsert") {
						CRVProducts.MoveActionControl(strPosCode, CRVProducts.m_bMoveOnLeft, true);
					} else {
						CRVProducts.MoveActionControl(strPosCode, CRVProducts.m_bMoveOnLeft, true);
					}
				}
			}
		},

		BuildInContainer: function (aProductList) {
			var ox$ = CRVProducts.m_ox$;
			var strPosCode = CRVProducts.m_cfgRVPPosCode;
			var strPLVHtml = CRVProducts.ContainerBuilder(aProductList, strPosCode);
			var oObj = null, oObjNu = null, strStyleUser = "";
			if (strPosCode == "MainExtRight") {
				ox$("#bodycontainer").first().append(ox$(strPLVHtml));
				if (ox$("#OxRVPCtnId").size() > 0) {
					ox$("#OxRVPCtnId").css("right", "-" + CRVProducts.m_cfgRVPBlockHandleWidth + "px")
				}
			}
			if (strPosCode == "ClassInsert") {
				oObj = ox$("." + CRVProducts.m_cfgRVPPosClassToInsert).first();
				if (CRVProducts.m_cfgRVPInsertClassNu == 99) {
					oObj = ox$("." + CRVProducts.m_cfgRVPPosClassToInsert).last();
				} else if (CRVProducts.m_cfgRVPInsertClassNu > 1) {
					oObjNu = ox$("." + CRVProducts.m_cfgRVPPosClassToInsert + ":eq(" + (CRVProducts.m_cfgRVPInsertClassNu - 1) + ")");
					if (oObjNu.size() > 0) oObj = oObjNu;
				}
				if (oObj.size() > 0) {
					strStyleUser = oObj.attr("style")
					ox$(strPLVHtml).insertAfter(oObj);
					oObj.remove();
					if (strStyleUser && strStyleUser.length > 0) ox$("#OxRVPCtnInsertID").first().attr("style", strStyleUser);
				}
				if (CRVProducts.m_bMoveOnLeft) {
					var nPosRight = ox$("#OxRVPCtnId").first().width(); // ox$("#OxRVPHandlerId")	alert("R:" + nPosRight + " - " + nPosRight1);
					ox$("#OxRVPCtnInsertID #OxRVPCacheId").css("right", nPosRight + "px");
				}
			}
			var oListPdt = ox$("#OxRVPCacheId .OxRVPListPdt")
			var nListHeight = oListPdt.height() + 2;
			var nListWidth = oListPdt.width();
			ox$("#OxRVPCacheId").css("height", nListHeight + "px");
			if (nListHeight > 5) ox$("#OxRVPCacheId").css("width", nListWidth + "px");
			// Unactive because of bug
			//this.CheckImgSize(aProductList);
		},

		CheckImgSize: function (aProductList) {
			var nImgWidth, nImgHeight, strIdImg, strIdTdImg;
			var nBound = aProductList.length;
			for (var nIdx = 0; nIdx < nBound; nIdx++) {
				strIdImg = "OxRVPImg" + nIdx;
				strIdTdImg = "OxRVPTdImg" + nIdx;
				if (document.getElementById(strIdImg)) {
					nImgWidth = document.getElementById(strIdImg).offsetWidth;
					nImgHeight = document.getElementById(strIdImg).offsetHeight;
					if (nImgHeight > CRVProducts.m_cfgPdtImgHeight) {
						document.getElementById(strIdImg).style.width = "auto";
						document.getElementById(strIdImg).style.height = CRVProducts.m_cfgPdtImgHeight + "px";
						DBGTrace("Modify (" + nImgWidth + "/" + nImgHeight + ") Height Size Img " + nIdx + " : " + nImgHeight + " - Max => " + CRVProducts.m_cfgPdtImgHeight);
					}
				}
			}
		}
	},

	IsProductConsult: function () {
		var strDataProduct, strReturn = null, oProductID, strProductName, strProductPrice, strProductUrl, strProductImgUrl;
		var oForm = document.MForm;
		if (oForm) {
			var oProductID = oForm.HVProductID;
			if (CRVProducts.CheckPage(true)) {
				if (oProductID) {
					nProductID = oProductID.value;
					strProductName = ""; strProductPrice = ""; strProductUrl = ""; strProductImgUrl = "";
					if (typeof OxPdtName != 'undefined') strProductName = this.FormatData(OxPdtName);
					if (typeof OxPdtPrice != 'undefined') strProductPrice = this.FormatPrice(OxPdtPrice);
					if (typeof OxPdtUrl != 'undefined') strProductUrl = this.FormatData(OxPdtUrl);
					if (typeof OxPdtImgUrl != 'undefined') strProductImgUrl = this.FormatData(OxPdtImgUrl);
					strReturn = nProductID + "[-]" + strProductName + "[-]" + strProductPrice + "[-]" + strProductImgUrl + "[-]" + strProductUrl;
				}
			}
		}
		return strReturn;
	},

	CheckPage: function (bLookForData) {
		var strPage, aUrlData, aPageList, aPageListExclude, aClassList;
		aPageList = null;
		aPageListExclude = null;
		aUrlData = document.URL.split("/");
		strPage = aUrlData[(aUrlData.length - 1)].split("?")[0];
		if (bLookForData) {
			aPageList = this.m_cfgListPageProductToConsider;
			if (typeof aPageList != "undefined" && aPageList != null && aPageList.constructor == Array) {
				if (aPageList.indexOf(strPage) >= 0) return true;
				strPage = this.m_ox$("#maincontainer").attr("class");
				if (typeof strPage != "undefined") {
					aClassList = strPage.split(" ");
					for (var nIdx = 0; nIdx < aClassList.length; nIdx++) {
						if (aPageList.indexOf(aClassList[nIdx]) >= 0) return true;
					}
				}
			}
		} else {
			aPageListExclude = this.m_cfgListPageToExclude;
			if (typeof aPageListExclude != "undefined" && aPageListExclude != null && aPageListExclude.constructor == Array) {
				if (aPageListExclude.indexOf(strPage) < 0) return true;
				strPage = this.m_ox$("#maincontainer").attr("class");
				if (typeof strPage != "undefined") {
					aClassList = strPage.split(" ");
					for (var nIdx = 0; nIdx < aClassList.length; nIdx++) {
						if (aPageListExclude.indexOf(aClassList[nIdx]) >= 0) return false;
					}
				}
			}
		}
		return false;
	},

	FormatData: function (strData) {
		strData = strData.replace(/'/gi, "");
		strData = strData.replace(/"/gi, "");
		return strData;
	},

	FormatPrice: function (strData) {
		return strData;
	},

	FormatPdtName: function (strData) {
		var aData = strData.split(" ");
		var nCpt = 0, strResult = "";
		for (var nIdx = 0; nIdx < aData.length; nIdx++) {
			nCpt += aData[nIdx].length + 1;
			if (nCpt > this.m_cfgPdtNameMax) break;
			if (strResult.length > 0) strResult += " ";
			strResult += aData[nIdx];
		}
		if (strData > strResult) strResult += "...";
		return strResult;
	},

	Destroy: function () { }
}

var CCookieJS = {
	strName: "OxRVProductsNameDefault", /* Set cookie name */
	strValue: "Done", 			/* Set cookie value */
	nDaysExpire: 1, 			/* */
	Create: function (bEraseCookie) {
		var nDays, strExpires, strValue;
		strExpires = "";
		nDays = this.nDaysExpire;
		strValue = this.strValue;
		if (bEraseCookie) { nDays = 0; strValue = ""; }
		if (!nDays) {
			strExpires = "; expires=";
		} else if (nDays >= 0) {
			var dDate = new Date();
			dDate.setTime(dDate.getTime() + (nDays * 24 * 60 * 60 * 1000));
			strExpires = "; expires=" + dDate.toGMTString();
		}
		document.cookie = this.strName + "=" + escape(strValue) + strExpires + "; path=/";
	},
	Read: function () {
		var sName = this.strName + "=", aCData = document.cookie.split(';');
		for (var nIdx = 0; nIdx < aCData.length; nIdx++) {
			var strData = aCData[nIdx];
			while (strData.charAt(0) == ' ') strData = strData.substring(1, strData.length);
			if (strData.indexOf(sName) == 0) return unescape(strData.substring(sName.length, strData.length));
		}
		return false;
	},
	Erase: function () { this.Create(true); }
}

if (typeof DBGTrace == 'undefined') var DBGTrace = function () {};
if (typeof DBGTraceReset == 'undefined') var DBGTraceReset = function () {};
if (typeof $ != 'undefined') {
	$(document).ready(function () {
		CRVProducts.m_ox$ = $;
		CRVProducts.Init();
	});
}


