/* Private Member */
__events = [/* Dynamic Array */];
var __xPriceList;

Window = {
	Uri: {
		/* Return the window current location */
		Referer: function() {
			return window.location.href;
		}
		,
		QueryString: {
			Text: null,
			Save: function() {
				var qsIndexOf;
				qsIndexOf = Window.Uri.Referer().indexOf("?");
				if (qsIndexOf > -1) {
					Window.Uri.QueryString.Text = Window.Uri.Referer().substring(qsIndexOf + 1, Window.Uri.Referer().length);
				}
				else {
					Window.Uri.QueryString.Text = '';
				}
			}
			,
			Embbed: function(anchor, uri, redirect) {
				var addchar;
				var reffer;
				addchar = (uri.indexOf("?") > -1) ? "&" : "?";
				if ('' != Window.Uri.QueryString.Text) {
					uri += addchar + Window.Uri.QueryString.Text;
					uri = (uri.indexOf("Ref=") > -1) ? uri : uri + "&Ref=" + window.location;
				}
				else {
					uri = (uri.indexOf("?") > -1) ? uri + "&Ref=" + window.location : uri + "?Ref=" + window.location;
				}

				if (redirect == true) {
					window.location.href = uri;
				}
				else {
					anchor.href = uri;
				}
			}
		}
	}
	,
	/* Event basket of window.onload */
	AddEventListnerOnLoad: function(e) {
		__events[__events.length + 1] = e;
	}
	,
	Bind: function() {
		/* Register window.onload's events */
		window.onload = function() {
			/* If there is no event then... */
			if (__events.length == 'undefined') return;
			/* Execute event one by one */
			for (var index = 0; index < __events.length; index++) {
				/* Evaluate */
				eval(__events[index]);
			}
		}
	}
};

Price = {

	setPrice: function() {
		
		// Set Logo 
		if (__IWouldLikeToUseATextLogo == true) {
			if (document.getElementById('dvLogo__')) {
				document.getElementById('dvLogo__').innerHTML = "<font color=" + __LogoTextColor + " size=" + __LogoFontSize + ">" + __LogoText + "</font>";
			}
		}

		if (document.getElementById('dvSiteName__')) {
			document.getElementById('dvSiteName__').innerHTML = __WebsiteName;
		}

		var priceDivs, priceSpans, compareDivs, compareSpans, productId, indexOfProductId;
		var priceContainers = [];
		var compareContainers = [];
		var saveContainers = [];
		var priceDivPrefix = "dvPrice__";
		var compareDivPrefix = "dvCompareTo__";
		var saveDivPrefix = "dvSaveTo__";

		priceSpans = document.getElementsByTagName("span");
		priceDivs = document.getElementsByTagName("div");

		for (i = 0; i < priceDivs.length; i++) {
			if (priceDivs[i].id.indexOf(priceDivPrefix) > -1) {

				indexOfProductId = priceDivs[i].id.indexOf(priceDivPrefix) + priceDivPrefix.length;
				productId = priceDivs[i].id.substring(indexOfProductId, priceDivs[i].id.length);


				priceContainers[priceContainers.length] = productId;
			}

			else if (priceDivs[i].id.indexOf(compareDivPrefix) > -1) {

				indexOfProductId = priceDivs[i].id.indexOf(compareDivPrefix) + compareDivPrefix.length;
				productId = priceDivs[i].id.substring(indexOfProductId, priceDivs[i].id.length);


				compareContainers[compareContainers.length] = productId;
			}
			else if (priceDivs[i].id.indexOf(saveDivPrefix) > -1) {
				indexOfProductId = priceDivs[i].id.indexOf(saveDivPrefix) + saveDivPrefix.length;
				productId = priceDivs[i].id.substring(indexOfProductId, priceDivs[i].id.length);
				saveContainers[saveContainers.length] = productId;
			}
		}

		for (i = 0; i < priceSpans.length; i++) {
			if (priceSpans[i].id.indexOf(priceDivPrefix) > -1) {

				indexOfProductId = priceSpans[i].id.indexOf(priceDivPrefix) + priceDivPrefix.length;
				productId = priceSpans[i].id.substring(indexOfProductId, priceSpans[i].id.length);


				priceContainers[priceContainers.length] = productId;
			}

			else if (priceSpans[i].id.indexOf(compareDivPrefix) > -1) {

				indexOfProductId = priceSpans[i].id.indexOf(compareDivPrefix) + compareDivPrefix.length;
				productId = priceSpans[i].id.substring(indexOfProductId, priceSpans[i].id.length);


				compareContainers[compareContainers.length] = productId;
			}
			else if (priceSpans[i].id.indexOf(saveDivPrefix) > -1) {
				indexOfProductId = priceSpans[i].id.indexOf(saveDivPrefix) + saveDivPrefix.length;
				productId = priceSpans[i].id.substring(indexOfProductId, priceSpans[i].id.length);
				saveContainers[saveContainers.length] = productId;
			}
		}

/*
		for (var i = 0; i < _Products.length; i++) {
			for (var j = 0; j < priceContainers.length; j++) {
				if (priceContainers[j] == _Products[i].Id) {
					document.getElementById(priceDivPrefix + priceContainers[j]).innerHTML = formatCurrency(_Products[i].Price);
					priceDivsByName = document.getElementsByName(priceDivPrefix + priceContainers[j])

					for (var k = 0; k < priceDivsByName.length; k++) {
						priceDivsByName[k].innerHTML = formatCurrency(_Products[i].Price);
					}

					break;
				}
			}
		}
*/
		for (var i = 0; i < _Products.length; i++) {
			for (var j = 0; j < compareContainers.length; j++) {
				if (compareContainers[j] == _Products[i].Id) {
					document.getElementById(priceDivPrefix + compareContainers[j]).innerHTML = formatCurrency(_Products[i].Price);
					priceDivsByName = document.getElementsByName(priceDivPrefix + compareContainers[j]);
					compareDivsByName = document.getElementsByName(compareDivPrefix + compareContainers[j]);
					saveDivByName = document.getElementsByName(saveDivPrefix + compareContainers[j]);

					for (var k = 0; k < priceDivsByName.length; k++) {
						priceDivsByName[k].innerHTML = formatCurrency(_Products[i].Price);
					}

					for (var k = 0; k < compareDivsByName.length; k++) {
						compareDivsByName[k].innerHTML = formatCurrency(_Products[i].CompareTo);
					}
					for (var k = 0; k< saveDivByName.length; k++) {
						saveDivByName[k].innerHTML = formatPercentage((_Products[i].CompareTo - _Products[i].Price)/_Products[i].CompareTo);
					}
					break;
				}
			}
		}

	}
	,
	youSave: function(dvYouSave, productId) {
		dvYouSave = document.getElementById(dvYouSave);
		dvYouSave.innerHTML = formatCurrency(Price.Items['Id:' + productId][Price.Type['CompareTo']] - Price.Items['Id:' + productId][Price.Type['Price']]);
	}
};

Window.Uri.QueryString.Save();

function SayHello() {
	__xPriceList = "../PriceList.xml";

}



function CJL_loadXmlDocument(xmlFile, cbFun) {

	cbFun(xdoc);

	var xdoc;
	if (window.ActiveXObject && /Win/.test(navigator.userAgent)) {
		xdoc = new ActiveXObject("Microsoft.XMLDOM");
		xdoc.async = false;
		xdoc.load(xmlFile);
		cbFun(xdoc);
		return true;
	}
	else if (document.implementation && document.implementation.createDocument) {
		xdoc = document.implementation.createDocument("", "", null);
		xdoc.load(xmlFile);
		xdoc.onload = function() {
			cbFun(xdoc);
		}
		return true;
	}
	else {
		return false;
	}
}

/* Buy Now URL */

function writeCookie(cname, cvalue, cexpire) {
	document.cookie = cname + '=' + escape(cvalue) + (typeof cexpire == 'date' ? 'expires=' + cexpire.toGMTString() : '');
}


// set cmp cookie
var g_queryString = document.location.search;
var g_arrVars = g_queryString.split("&");

for (var i = 0; i < g_arrVars.length; i++) {

	var bits = g_arrVars[i].split("=");
	bits[0] = bits[0].replace("?", "");
	bits[0] = bits[0].replace("&", "");

	if (bits[0].toUpperCase() == "cmp".toUpperCase()) {
		//alert(bits[1]);
		writeCookie("cmp", bits[1], 500);
	}
}

function ReadCookie(cookieName) {
	var theCookie = "" + document.cookie;
	var ind = theCookie.indexOf(cookieName);
   	if (ind == -1 || cookieName == "") return "";
	var ind1 = theCookie.indexOf(';', ind);
	if (ind1 == -1) ind1 = theCookie.length;
	return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));
	
}


function updateURL(hyperlink) {
	try {

		onlyURL = hyperlink.href.toString().split("?")[0];
		queryString = hyperlink.href.toString().split("?")[1];
		allParameters = queryString.split("&");
		

		for (i = 0; i < allParameters.length; i++) {

			
			if (allParameters[i].split("=")[0].toUpperCase() == "Pid".toUpperCase())
			{
					Pid = allParameters[i].split("=")[1];
					
			}
			
			if (allParameters[i].split("=")[1].toUpperCase() == "fromJs".toUpperCase() || allParameters[i].split("=")[1].toUpperCase() == '') {
				// get value from JS file 
				if (allParameters[i].toUpperCase() == "Ohp=fromJs".toUpperCase()) {
					queryString = queryString.replace(allParameters[i], "Ohp=" + __Ohp + "");
				}
				
				
				if (allParameters[i].split("=")[0].toUpperCase() == "cmp".toUpperCase()) {
					if (ReadCookie("cmp") != "") {
						queryString = queryString.replace(allParameters[i], "cmp=" + ReadCookie("cmp") + "");
						
					}
				}

				else if (allParameters[i].toUpperCase() == "cmp=fromJs".toUpperCase()) {
					queryString = queryString.replace(allParameters[i], "Cmp=" + __CampaignCode + "");
				}
				
				if (allParameters[i].toUpperCase() == "Wsid=fromJs".toUpperCase()) {
					queryString = queryString.replace(allParameters[i], "WsId=" + __WebsiteID + "");
					 
				}
				
				if (allParameters[i].toUpperCase() == "Qty=fromJs".toUpperCase()) {
					queryString = queryString.replace(allParameters[i], "Qty=" + document.getElementById( Pid + "_qty").value);
					 
				}
				
				
			}
			else {
				; // use what is supplied i.e. do nothing
			}
		} // for (i=0; i < allParameters.length ; i++)
		
		finalurl = onlyURL + "?" + queryString;
		hyperlink.href = finalurl;
	}
	catch (err) {
		alert("Following problem occured, something must be wrong with your browser's javascript processing capabilities.\n" + err.toString());
	}
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function formatPercentage(num) {
	sign = (num == (num = Math.abs(num)));
	num = Math.round(num*10000);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if (cents<10) {
		cents = "0" + cents;
	}
	return (((sign)?'':'-') + num + '.' + cents + '%');
}
