/*

	Custom version for the lauder brandrooms, to avoid conflicts with prototype and jQuery libraries
	
	Authors: Adam Silver, Adam Osborne
	Cookie is: bdccookie_bsktSumm
		Cookie values are:
			coNumItems
			coTotal
			coAdcPts
	Notes:	currency escape char	currency: "\u00A3"
*/
salmon.namespace.addNamespace("boots.shoppingtrolley");
$(document).ready(function(){ 
	boots.shoppingtrolley = new (function() {
		
		/*
		 * 	bi = basket items
		 * 	bt = basket total
		 * 	bp = basket points
		 * 	pi = prescription items
		 *	pp = prescription points
		 */
		
		var cookieKeys = {bi: "bi",bt: "bt",bp: "bp",pi: "pi",pp: "pp"}
		
		var cookie = {};
		var cookieRawString = unescape(boots.common.cookie.getCookie("_bdccookie_bsktSumm"));
		cookieRawString = cookieRawString.replace("{", "");
		cookieRawString = cookieRawString.replace("}", "");
		var cookieArray = cookieRawString.split(",");
		for (var i=0; i<cookieArray.length; i++) {
			var s = cookieArray[i];
			var keyAndValue = s.split(":");
			if (keyAndValue.length>1) {
				cookie[keyAndValue[0]]=keyAndValue[1];
			}
		}
		
		var config = {
			bi: "0",	
			basketItemsText: " items",
			bt: "00.00",
			bp: "0", 
			basketPointsText: " points",
			pi: "0",	
			prescriptionBasketItemsText: " prescriptions",
			pp: "0", 
			prescriptionBasketPointsText: " Advantage points"
		}
		
		var fields = {
			bi: document.getElementById("trolleyitems"),
			bt: document.getElementById("trolleyprice"),
			bp: document.getElementById("trolleypoints"),
			pi: document.getElementById("presTrolleyItems"),
			pp: document.getElementById("presTrolleypoints")
		}
		
		// set values
		config.bi = cookie[cookieKeys.bi] || config.bi;
		config.bt = cookie[cookieKeys.bt] || config.bt;
		config.bp = cookie[cookieKeys.bp] || config.bp;
		config.pi = cookie[cookieKeys.pi] || config.pi;
		config.pp = cookie[cookieKeys.pp] || config.pp;

		// set dom nodes
		if(fields.bi !== null) { fields.bi.innerHTML = config.bi + config.basketItemsText; }
		if(fields.bt !== null) { fields.bt.innerHTML = config.bt; }
		if(fields.bp !== null) { fields.bp.innerHTML = config.bp + config.basketPointsText; }
		if(fields.pi !== null) { fields.pi.innerHTML = config.pi + config.prescriptionBasketItemsText; }
		if(fields.pp !== null) { fields.pp.innerHTML = config.pp + config.prescriptionBasketPointsText; }
		
	});
});

salmon.namespace.addNamespace("boots.Header");
$(document).ready(function(){
	boots.Header = new (function() {
		var personalMessage = jQuery("div#userPersonalisation p.welcome")[0];
		if(personalMessage == null) {
			return;
		}
		
		if(personalMessage[0] !== undefined) {
			personalMessage = personalMessage[0];
		}
		
		var config = {
			preText: "Welcome back ",
			firstName: "guest"
		}
		
		var cookieArr = boots.common.cookie.getCookie("DISPLAYNAME").split("|");
		
		config.firstName = cookieArr[0] || config.firstName;
		personalMessage.innerHTML = config.preText + config.firstName;
	});
});

salmon.namespace.addNamespace("boots.signOutLink");
$(document).ready(function(){ 
	boots.signOutLink = new (function(){
		var URLPrefix = "&URL=";
		var link = jQuery("a.signOutLink")[0];
		if(link == null) {
			return;
		}
		link.href = link.href + URLPrefix + getURL();
		function getURL() {
			var URL = ""+window.location;
			URL = filterUrl(URL,'cm_re');
			URL = filterUrl(URL,'cm_sp');		
			URL = encodeURIComponent(URL.substring(URL.indexOf("/webapp"), URL.length));
			return URL;
		}
		function filterUrl(url,param) {
			var newUrl = url;
			var firstParam = false;
			try {
				var startIndex =  url.indexOf('&'+param);
				if (startIndex == -1 ) {
					startIndex =  url.indexOf('?'+param);
					if (startIndex != -1 ) {
						startIndex=startIndex+1;
						firstParam = true;
					}
				}
				if (startIndex != -1 ) { 
							var endIndex =  url.indexOf('&',startIndex+param.length);
							
							if (endIndex != -1 ) {
								if (firstParam) {
									endIndex=endIndex+1;
								}
								newUrl = url.substring(0,startIndex)+url.substring(endIndex,url.length);					
							} else {
								newUrl = url.substring(0,startIndex);
							}
				}
			} catch (err) {}
			return newUrl;		
		}		
	});
});
