var sUrl = window.location.href;

try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

var Node = {
	ELEMENT_NODE : 1,
	ATTRIBUTE_NODE : 2,
	TEXT_NODE : 3,
	CDATA_SECTION_NODE : 4,
	ENTITY_REFERENCE_NODE : 5,
	ENTITY_NODE : 6,
	PROCESSING_INSTRUCTIONS_NODE : 7,
	COMMENT_NODE : 8,
	DOCUMENT_NODE : 9,
	DOCUMENT_TYPE_NODE : 10,
	DOCUMENT_FRAGMENT_NODE : 11,
	NOTATION_NODE : 12
}

getElementsByClassName = function(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function testFlag(){
	if(document.getElementById('formPresent')){
		if(document.getElementById('step1')){
			document.getElementById('step1').className = '';
		}
		if(document.getElementById('removeOne')){
			document.getElementById('removeOne').innerHTML = '&nbsp;';
		}
		var container = document.getElementById("detailsTable");
		if(container){
			var removeTwos = getElementsByClassName(container, "div", "removeTwo");
			if(removeTwos.length){
				for(i=0;i<removeTwos.length;i++){
					removeTwos[i].innerHTML = '&nbsp;';
				}
			}
		}
		if(document.getElementById('hideThisDiv')){
			document.getElementById('hideThisDiv').className = '';
		}
		if(document.getElementById('leftNav')){
			document.getElementById('leftNav').className = 'shopTwo';
		}
	}
	if(document.getElementById('detailsTable')){
		document.getElementById('detailsTable').className = 'visible';
    }

    // hides the "view cart" on the cart itself
    if (window.location.href.indexOf('cgi-bin/trolleyed_cart.cgi') != -1) 
    {
        if (window.location.search.indexOf('action=show_cart') != -1) 
        {
            document.getElementById('shopRightDisplay').className = 'hide';
        }
    }
    
	if(window.location.href.indexOf('/cgi-bin/paygate/')!=-1){
		
		if(window.location.search.indexOf('action=finish')!=-1){

			if(document.getElementById('yourBasket')){
				document.getElementById('yourBasket').className = '';
				document.getElementById('step4').className = '';
				document.getElementById('step4hr').className = 'hide';
			}
			if(document.getElementById('paymentDetails')){
				document.getElementById('paymentDetails').className = 'hide';
			}
			if(document.getElementById('leftNav')){
				document.getElementById('leftNav').className = 'shopTwo';
			}
			
		}else{

			if(document.getElementById('yourBasket')){
				document.getElementById('yourBasket').className = 'hide';
			}
			if(document.getElementById('paymentDetails')){
				document.getElementById('paymentDetails').className = '';
			}
			if(document.getElementById('leftNav')){
				document.getElementById('leftNav').className = 'shopTwo';
			}
			
		}
		
		
		
		
	}else{
		if(!document.getElementById('formPresent')){
			if(document.getElementById('yourBasket')){
				document.getElementById('yourBasket').className = '';
			}
		}
	}
}

/* ###### UFO START #####
Unobtrusive Flash Objects (UFO) v3.02 <http://www.bobbyvandersluis.com/ufo/>
Copyright 2005, 2006 Bobby van der Sluis
*/
var UFO = {
	requiredAttrParams: ["movie", "width", "height", "majorversion", "build"],
	optionalAttrEmb: ["name", "swliveconnect", "align"],
	optionalAttrObj: ["id", "align"],
	optionalAttrParams: ["play", "loop", "menu", "quality", "scale", "salign", "wmode", "bgcolor", "base", "flashvars", "devicefont", "allowscriptaccess"],
	ximovie: "ufo.swf",
	xiwidth: "215",
	xiheight: "138",
	
	is_w3cdom: (typeof document.getElementById != "undefined" && typeof document.getElementsByTagName != "undefined" && (typeof document.createElement != "undefined" || typeof document.createElementNS != "undefined")),
	is_ie: (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1),
	is_safari: (navigator.userAgent.toLowerCase().indexOf("safari") != -1),
	is_win: (navigator.userAgent.toLowerCase().indexOf("win") != -1),
	is_mac: (navigator.userAgent.toLowerCase().indexOf("mac") != -1),
	is_XML: (typeof document.contentType != "undefined" && document.contentType.indexOf("xml") > -1),
	
	foList: [],
		
	create: function(FO, id) {
		if (!UFO.is_w3cdom) return;
		UFO.foList[id] = UFO.updateFO(FO);
		UFO.createStyleRule("#" + id, "visibility:hidden;");
		UFO.domLoad(id);
	},

	updateFO: function(FO) {
		if (typeof FO.xi != "undefined" && FO.xi == "true") {
			if (typeof FO.ximovie == "undefined") FO.ximovie = UFO.ximovie;
			if (typeof FO.xiwidth == "undefined") FO.xiwidth = UFO.xiwidth;
			if (typeof FO.xiheight == "undefined") FO.xiheight = UFO.xiheight;
		}
		else {
			FO.xi = false;
		}
		FO.domLoaded = false;
		return FO;
	},

	domLoad: function(id) {
		var timer = setInterval(function() { // doesn't work in IE/Mac
			if((document.getElementsByTagName("body")[0] != null || document.body != null) &&  document.getElementById(id) != null) {
				UFO.main(id);
				clearInterval(timer);
			}
		}, 250);
		if (typeof document.addEventListener != "undefined") {
			document.addEventListener("DOMContentLoaded", function() { UFO.main(id); clearInterval(timer); } , null); // Mozilla only
		}
	},

	main: function(id) {
		var FO = UFO.foList[id];
		if (FO.domLoaded) return; // for Mozilla, only execute once
		UFO.foList[id].domLoaded = true;
		document.getElementById(id).style.visibility = "hidden";
		if (UFO.hasRequiredAttrParams(id)) {
			if (UFO.hasFlashVersion(FO.majorversion, FO.build)) {
				UFO.writeFlashObject(id);
			}
			else if (FO.xi && UFO.hasFlashVersion("6", "65")) {
				UFO.createModalDialog(id);
			}
		}
		document.getElementById(id).style.visibility = "visible";
	},
	
	createStyleRule: function(selector, declaration) {
		if (UFO.is_ie && UFO.is_mac) return; // bugs in IE/Mac
		var head = document.getElementsByTagName("head")[0]; 
		var style = UFO.createElement("style");
		if (!(UFO.is_ie && UFO.is_win)) {
			var styleRule = document.createTextNode(selector + " {" + declaration + "}");
			style.appendChild(styleRule); // bugs in IE/Win
		}
		style.setAttribute("type", "text/css");
		style.setAttribute("media", "screen"); 
		head.appendChild(style);
		if (UFO.is_safari && UFO.is_XML) { head.innerHTML += ""; } // force Safari repaint for MIME type application/xhtml+xml
		if (UFO.is_ie && UFO.is_win && document.styleSheets && document.styleSheets.length > 0) {
			var lastStyle = document.styleSheets[document.styleSheets.length - 1];
			if (typeof lastStyle.addRule == "object") {
				lastStyle.addRule(selector, declaration);
			}
		}
	},

	createElement: function(el) {
		return (typeof document.createElementNS != "undefined") ?  document.createElementNS("http://www.w3.org/1999/xhtml", el) : document.createElement(el);
	},

	hasRequiredAttrParams: function(id) {
		var FO = UFO.foList[id];
		for (var i = 0; i < UFO.requiredAttrParams.length; i++) {
			if (typeof FO[UFO.requiredAttrParams[i]] == "undefined") return false;
		}
		return true;
	},
	
	hasFlashVersion: function(majorVersion, buildVersion) {
		var reqVersion = parseFloat(majorVersion + "." + buildVersion);
		if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
			var desc = navigator.plugins["Shockwave Flash"].description;
			if (desc) {
				var versionStr = desc.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				var major = parseInt(versionStr.replace(/^(.*)\..*$/, "$1"));
				var build = parseInt(versionStr.replace(/^.*r(.*)$/, "$1"));
				var flashVersion = parseFloat(major + "." + build);
			}
		}
		else if (window.ActiveXObject) {
			try {
				var flashObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				var desc = flashObj.GetVariable("$version");
				if (desc) {
					var versionArr = desc.replace(/^\S+\s+(.*)$/, "$1").split(",");
					var major = parseInt(versionArr[0]);
					var build = parseInt(versionArr[2]);
					var flashVersion = parseFloat(major + "." + build);
				}
			}
			catch(e) {}
		}
		if (typeof flashVersion != "undefined"){
			return (flashVersion >= reqVersion ? true : false); 
		}
		return false;
	},

	writeFlashObject: function(id) {
		var el = document.getElementById(id);
		if (typeof el.innerHTML == "undefined") return;
		var FO = UFO.foList[id];
		if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
			try	{ // older versions of Gecko only support innerHTML get and not set
				el.innerHTML = "ufo-test";
			}
			catch (e) {}
			if (el.innerHTML != "ufo-test") {
				while(el.hasChildNodes()) {
					el.removeChild(el.firstChild);
				}
				var embed = UFO.createElement("embed");
				embed.setAttribute("type", "application/x-shockwave-flash");
				embed.setAttribute("pluginspage", "http://www.macromedia.com/go/getflashplayer");
				embed.setAttribute("src", FO.movie);
				embed.setAttribute("width", FO.width);
				embed.setAttribute("height", FO.height);
				for (var i = 0; i < UFO.optionalAttrEmb.length; i++) {
					if (typeof FO[UFO.optionalAttrEmb[i]] != "undefined") {
						embed.setAttribute(UFO.optionalAttrEmb[i], FO[UFO.optionalAttrEmb[i]]);
					}
				}
				for (var i = 0; i < UFO.optionalAttrParams.length; i++) {
					if (typeof FO[UFO.optionalAttrParams[i]] != "undefined") {
						embed.setAttribute(UFO.optionalAttrParams[i], FO[UFO.optionalAttrParams[i]]);
					}
				}	
				el.appendChild(embed);
			}
			else {
				var embHTML = "";
				for (var i = 0; i < UFO.optionalAttrEmb.length; i++) {
					if (typeof FO[UFO.optionalAttrEmb[i]] != "undefined") {
						embHTML += ' ' + UFO.optionalAttrEmb[i] + '="' + FO[UFO.optionalAttrEmb[i]] + '"';
					}
				}
				for (var i = 0; i < UFO.optionalAttrParams.length; i++) {
					if (typeof FO[UFO.optionalAttrParams[i]] != "undefined") {
						embHTML += ' ' + UFO.optionalAttrParams[i] + '="' + FO[UFO.optionalAttrParams[i]] + '"';
					}
				}
				el.innerHTML = '<embed type="application/x-shockwave-flash" src="' + FO.movie + '" width="' + FO.width + '" height="' + FO.height + '" pluginspage="http://www.macromedia.com/go/getflashplayer"' + embHTML + '></embed>';
			}
		}
		else {
			var objAttrHTML = "";
			for (var i = 0; i < UFO.optionalAttrObj.length; i++) {
				if (typeof FO[UFO.optionalAttrObj[i]] != "undefined") {
					objAttrHTML += ' ' + UFO.optionalAttrObj[i] + '="' + FO[UFO.optionalAttrObj[i]] + '"';
				}
			}
			var objParamHTML = "";
			for (var i = 0; i < UFO.optionalAttrParams.length; i++) {
				if (typeof FO[UFO.optionalAttrParams[i]] != "undefined") {
					objParamHTML += '<param name="' + UFO.optionalAttrParams[i] + '" value="' + FO[UFO.optionalAttrParams[i]] + '" />';
				}
			}
			var protocol = (window.location.protocol == "https:" ? "https:" : "http:");
			el.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + objAttrHTML + ' width="' + FO.width + '" height="' + FO.height + '" codebase="' + protocol + '//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + FO.majorversion + ',0,' + FO.build + ',0"><param name="movie" value="' + FO.movie + '" />' + objParamHTML + '</object>';
		}
	},

	createModalDialog: function(id) {
		var FO = UFO.foList[id];
		UFO.createStyleRule("html", "height:100%; overflow:hidden;");
		UFO.createStyleRule("body", "height:100%; overflow:hidden;");
		UFO.createStyleRule("#xi-con", "position:absolute; left:0; top:0; z-index:1000; width:100%; height:100%; background-color:#333; filter:alpha(opacity:50); -khtml-opacity:0.5; -moz-opacity:0.5; opacity:0.5;");
		UFO.createStyleRule("#xi-mod", "position:absolute; left:50%; top:50%; margin-left: -" + (parseInt(FO.xiwidth)/2) + "px; margin-top: -" + (parseInt(FO.xiheight)/2) + "px; width:" + FO.xiwidth + "px; height:" + FO.xiheight + "px;");
		var body = document.getElementsByTagName("body")[0];
		var container = UFO.createElement("div");
		container.setAttribute("id", "xi-con");
		var dialog = UFO.createElement("div");
		dialog.setAttribute("id", "xi-mod");
		container.appendChild(dialog);
		body.appendChild(container);
		var MMredirectURL = window.location; // MM code
		document.title = document.title.slice(0, 47) + " - Flash Player Installation"; // MM code
		var MMdoctitle = document.title; // MM code
		if (UFO.is_ie && UFO.is_win) {
			var xiFO = { movie:FO.ximovie, width:FO.xiwidth, height:FO.xiheight, majorversion:"6", build:"65", flashvars:"MMredirectURL=" + MMredirectURL + "&amp;MMplayerType=ActiveX&amp;MMdoctitle=" + MMdoctitle };
		}
		else {
			var xiFO = { movie:FO.ximovie, width:FO.xiwidth, height:FO.xiheight, majorversion:"6", build:"65", flashvars:"MMredirectURL=" + MMredirectURL + "&amp;MMplayerType=PlugIn&amp;MMdoctitle=" + MMdoctitle };
		}
		UFO.foList["xi-mod"] = xiFO;
		UFO.writeFlashObject("xi-mod");
	},

	expressInstallCallback: function() {
		var body = document.getElementsByTagName("body")[0];
		var dialog = document.getElementById("xi-con");
	    body.removeChild(dialog);
		UFO.createStyleRule("body", "height:auto; overflow:auto;");
		UFO.createStyleRule("html", "height:auto; overflow:auto;");
	}

};
/* ###### UFO END ##### */


showBrand = function(){
	return;
}

showBrand.displayPic = function(obj){
	var sValue = obj.innerHTML.toLowerCase();
	sValue = sValue.replace(/\s+/g,"_");
	// seeing a strange bug in IE hence the next stupid line
	sValue = (sValue.substr(sValue.length-1,1)=='_')? sValue.substring(0,sValue.length-1):sValue;
	var sPath = '/images/brands/brand_' + sValue + '.jpg';
	var sImg = document.getElementById('brandImage');
	sImg.src = sPath;
	sImg.alt = obj.innerHTML;
}

var sIsOn = '';
var bIsOn = true;

showBrand.getBrands = function() {
	if(!document.getElementsByTagName){
		return;
	}
	var aLists = document.getElementsByTagName('ul');
	for(i=0; i < aLists.length; i++){
		if(aLists[i].className=='brandList'){
			var aChildren = aLists[i].childNodes;
			for(x=0; x < aChildren.length; x++){
				if(bIsOn&&(x==1)){
					sIsOn = aChildren[1];					
					bIsOn = false;
				}
				aChildren[x].onmouseover = function() {
					this.className = 'on';
				}
				aChildren[x].onmouseout = function() {
					if(this!=sIsOn) 
					this.className = '';
				}
				aChildren[x].onclick = function() {
					sIsOn.className = '';
					showBrand.displayPic(this);
					sIsOn = this;
					this.className = 'on';
				}
			}
		}
	}
}

blurAnchors = function(){
  if(document.getElementsByTagName){
    var a = document.getElementsByTagName("a");
    for(var i = 0; i < a.length; i++){
      a[i].onfocus = function(){this.blur()};
    }
  }
}

var WindowListener = {
  add : function(event,func){
    var e = this.Functions[event];
    e[func] = func;
  },
  remove : function(event,func){
    var e = this.Functions[event];
    delete e[func];
  },
  addEvent : function(event){
    window["on"+event] = function(){WindowListener.run(event)};
    this.Functions[event] = {};
  },
  removeEvent : function(event){
    window["on"+event] = null;
    delete this.Functions[event];
  },
  run : function(event){
    var e = this.Functions[event];
    for(var i in e) eval(e[i]);
  },
  Functions : {}
};

checkForm = function(){
	var size = document.getElementById('selectSize');
	var color = document.getElementById('selectColour');
	var quantity = document.getElementById('selectQuantity');
	if(size){
		if(size.value=='none'){
			alert("You must select a size.")
			size.focus();
			return false;
		}
	}
	if(color){
		if(color.value=='none'){
			alert("You must select a colour.")
			color.focus();
			return false;
		}
	}
	if(quantity){
		if(quantity.value=='none'){
			alert("You must select a quantity.")
			quantity.focus();
			return false;
		}
	}
	return true;
}

var mainHead = false;
var subHead = false;

showShopNav = function(){
if(sUrl.indexOf('cgi-bin/trolleyed_public.cgi?action=showprod')!=-1){
	sUrl = document.referrer;
}
if(sUrl.indexOf('cgi-bin/trolleyed_cart.cgi')!=-1){
	sUrl = "/shop/index.php";
}
var sNav = '<ul>';
for(i=0;i<links.length;i++){
	var aDirs = links[i].url.split('index.php');
	var isOn = '';
	if(sUrl.indexOf(aDirs[0])!=-1){
		isOn = ' class="on"';
		mainHead = links[i].name;
	}
	sNav	+=	'<li><a href="' + links[i].url + '" title="' + links[i].name + '"' + isOn + '>' + links[i].name + '</a>';
	if(isOn!=''&&links[i].sub){
		sNav	+=	'<ul>';	
			for(x=0;x<links[i].sub.length;x++){
				var aDirs = links[i].sub[x].url.split('index.php');
				var isOn = '';
				if(sUrl.indexOf(aDirs[0])!=-1){
					isOn = ' class="on"';
					subHead = links[i].sub[x].name;
				}
				sNav	+=	'<li><a href="' + links[i].sub[x].url + '" title="' + links[i].sub[x].name + '"' + isOn + '>' + links[i].sub[x].name + '</a>';
			}
		sNav	+=	'</ul>';	
	}
	sNav	+=	'</li>';
}
sNav 	+=	'</ul>';
return sNav;
}

getSrc = function(str){
	var title = str.toLowerCase();
	return title.replace(/\s+/g,"_");
}

showHeaders = function(){
	if(mainHead){
		document.write('<h3><img src="/images/sub_hd_' + getSrc(mainHead) + '.gif" alt="' + mainHead + '" /></h3>');
	}
	if(subHead){
		document.write('<h4 class="productRange"><img src="/images/sub_hd_2_' + getSrc(subHead) + '.gif" alt="' + subHead + '" /></h4>');
	}
}

var sValue = '';
removeItem = function(obj){
	var aFoo = obj.name.split('_remove');
	var sName = "_" + aFoo[0];
	if(aFoo[0]&&document.getElementById(sName)){
		if(obj.checked){
			sValue = document.getElementById(sName).value;
			document.getElementById(sName).value = '0';
		}else{
			if(sValue==''){
				sValue = '0';
			}
			document.getElementById(sName).value = sValue;
		}
	}
}

function isEmpty(str){
	return (str==null)||(str.length==0);
}

function isEmail(str){
	if(isEmpty(str)) return false;
	var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
	return re.test(str);
}

var xmlHttp = false;
try{
 	xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
	try{
    	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  	}catch (e2){
    	xmlHttp = false;
  	}
}

if(!xmlHttp && typeof XMLHttpRequest != 'undefined'){
	xmlHttp = new XMLHttpRequest();
}

// sends our request for the basket
grabBasket = function() {
	if(!xmlHttp||!document.getElementById("theNewBasket")){
		return;
	}
	var loading = "<div class=\"loader\"><img src=\"/images/loading.gif\" alt=\"loading\" /></div>";
	document.getElementById("theNewBasket").innerHTML = loading;
	xmlHttp.open('get', '/cgi-bin/trolleyed_cart.cgi?action=show_cart_iframe');
	xmlHttp.onreadystatechange = grabBasketResult;
	xmlHttp.send(null);
}

// returns our results for the basket
grabBasketResult = function() {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        var response = xmlHttp.responseText;
        if (response) {
            document.getElementById("theNewBasket").innerHTML = response.substring(response.indexOf('<table>'),response.indexOf('</table>')+8);
        }
    }
}

checkDetailsForm = function(){
	var firstname = document.getElementById('yourFirstName');
	var surname = document.getElementById('yourSurName');
	var email = document.getElementById('yourEmail');
	var address = document.getElementById('yourDeliveryAddress');
	var city = document.getElementById('yourCity');
	var county = document.getElementById('yourCounty');
	var postcode = document.getElementById('yourPostCode');
	
	if(!firstname||isEmpty(firstname.value)){
		alert("Please enter your first name.");
		firstname.focus();
		return false;
	}
	if(!surname||isEmpty(surname.value)){
		alert("Please enter your surname.");
		surname.focus();
		return false;
	}
	if(!email||isEmpty(email.value)){
		alert("Please enter your email address.");
		email.focus();
		return false;
	}
	if(email&&!isEmpty(email.value)){
		if(!isEmail(email.value)){
			alert("Please enter a valid email address.");
			email.focus();
			return false;
		}
	}
	if(!address||isEmpty(address.value)){
		alert("Please enter your delivery address.");
		address.focus();
		return false;
	}
	if(!city||isEmpty(city.value)){
		alert("Please enter your Town or City.");
		city.focus();
		return false;
	}
	if(!county||isEmpty(county.value)){
		alert("Please enter your County.");
		county.focus();
		return false;
	}
	if(!postcode||isEmpty(postcode.value)){
		alert("Please enter your postcode.");
		postcode.focus();
		return false;
	}
	return true;
}

function blank(url){
	winId = "FrocksAway" + Math.floor((100*(Math.random())));
	properties = 'location=no, status=yes, toolbar=no, menubar=no, directories=no, resizable=no, scrollbars=no, width=416, height=400';
	window.open(url,winId,properties);
}

// add functions to listener
WindowListener.addEvent("load");
WindowListener.add("load","showBrand.getBrands()");
WindowListener.add("load","grabBasket()");
WindowListener.add("load","blurAnchors()");
WindowListener.add("load","testFlag()");