	sfHover = function() {
		var sfEls = document.getElementById("nav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);
	
	// Only proceed once DOM is ready
	$(document).ready(function() {
		$('#product-images a').lightBox();
		//preloadImages();
	});
	
	function switchClass(passTarget,passClass) {
		if (passTarget === undefined) {
		
		} else {
			document.getElementById(passTarget).className = passClass;
		};
	}
	
	function switchmultipleState(targetType,targetID, switchID){
		var itemCollection = document.getElementsByTagName(targetType);
		for (var i=0; i<itemCollection.length; i++) {
			if(itemCollection[i].className === targetID) {
				document.getElementById(itemCollection[i]).className = passClass;
			}
		}
	}
	
	function addLoadEvent(func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				if (oldonload) {oldonload();}
				func();
			}
		}
	}
	
	function initSIFR(targetElement, sifrWeight, sifrAlign, sifrColour, sifrLinkColour, sifrHoverColour, sifrTextcase){
	
		if (targetElement === undefined) {var targetElement = "h2";};
		if (sifrWeight === undefined) {var sifrWeight = "normal";};
		if (sifrAlign === undefined) {var sifrAlign = "left";};
		if (sifrColour === undefined) {var sifrColour = "#FFFFFF";};
		if (sifrLinkColour === undefined) {var sifrLinkColour = "#FFFFFF";};
		if (sifrHoverColour === undefined) {var sifrHoverColour = "#FFFFFF";};
		if (sifrTextcase === undefined) {var sifrTextcase = "none";};
	
		var smoothfont = {src: '/swf/sifr/sifr.swf'};
		sIFR.delayCSS  = false;
		sIFR.domains = ['*'];
		sIFR.activate(smoothfont);
		sIFR.replace(smoothfont, {selector:targetElement,css:['.sIFR-root {width:100%;text-align:' + sifrAlign + ';font-weight:' + sifrWeight + ';color:' + sifrColour + ';letter-spacing:-0.5;text-transform:' + sifrTextcase + ';}','a {color:' + sifrLinkColour + ';text-decoration:none;}','a:link {color:' + sifrLinkColour + ';}','a:hover {color:' + sifrHoverColour + ';}'],wmode:'transparent'});
	}
	
	Window = {	
		getWindowWidth : function() {return (document.layers||(document.getElementById&&!document.all)) ? window.outerWidth : (document.all ? document.body.clientWidth : 0);},
	 	getWindowHeight : function() {return window.innerHeight ? window.innerHeight :(document.getBoxObjectFor ? Math.min(document.documentElement.clientHeight, document.body.clientHeight) : ((document.documentElement.clientHeight != 0) ? document.documentElement.clientHeight : (document.body ? document.body.clientHeight : 0)));},	
	 	getScrollWidth : function() {return document.all ? Math.max(Math.max(document.documentElement.offsetWidth, document.documentElement.scrollWidth), document.body.scrollWidth) : (document.body ? document.body.scrollWidth : ((document.documentElement.scrollWidth != 0) ? document.documentElement.scrollWidth : 0));},
	 	getScrollHeight : function(){return document.all ? Math.max(Math.max(document.documentElement.offsetHeight, document.documentElement.scrollHeight), Math.max(document.body.offsetHeight, document.body.scrollHeight)) : (document.body ? document.body.scrollHeight : ((document.documentElement.scrollHeight != 0) ? document.documentElement.scrollHeight : 0));},
	 	getScrollLeft : function() {return document.all ? (!document.documentElement.scrollLeft ? document.body.scrollLeft : document.documentElement.scrollLeft) : ((window.pageXOffset != 0) ? window.pageXOffset : 0);},
	 	getScrollTop : function() {return document.all ? (!document.documentElement.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop) : ((window.pageYOffset != 0) ? window.pageYOffset : 0);}
	}
	
	function backingPosition(target,action){

		var imgTarget = document.getElementById(target);
		var scrollHeight = Window.getScrollHeight();
		var scrollHeight = scrollHeight + 72;
		var windowheight = Window.getWindowHeight();
		var contentTarget = document.getElementById("layout");
		var contentHeight = contentTarget.offsetHeight;
		
		// Firefox catch - does not recognise scrollHeight, therefore compare against content height and if greater set scrollHeight = contentHeight
		if (scrollHeight != contentHeight) {scrollHeight = contentHeight;}
		if (action = 0) {scrollHeight = contentHeight;}
		//if (action = 0) {scrollHeight = windowheight;}
		
		if ( scrollHeight < windowheight ) {
			document.body.style.height = windowheight + "px";
			imgTarget.style.height = windowheight + "px";
		}  else {
			document.body.style.height = scrollHeight + "px";
			imgTarget.style.height = scrollHeight + "px";
		}
	}

	function initImagesize(type,range,hex,action){
		
		var windowWidth = Window.getWindowWidth();
		var imgPath = "/images/range/" + type + "/" + range + "/";
		var imgStandard = "background.jpg";
		var imgHex = "#" + hex;
		var divTarget = document.getElementById("crm-background");
		
		if (windowWidth <= 1024){
			var fileUpdate = imgPath+"background-1024.jpg";
		} else if (windowWidth <= 1152) {
			var fileUpdate = imgPath+"background-1180.jpg";
		} else if (windowWidth <= 1280) {
			var fileUpdate = imgPath+"background-1280.jpg";
		} else if (windowWidth <= 1440) {
			var fileUpdate = imgPath+"background-1440.jpg";
		} else {
			var fileUpdate = imgPath+"background.jpg";
		}

		document.body.style.backgroundColor = imgHex;
		divTarget.style.background="url("+fileUpdate+") no-repeat center top";
	}
	
	function initHomepage(){
	
		var randomValue = Math.floor(Math.random()*17);
		var cssName = new Array(17)
		var hexValue = new Array(17)
		
		cssName[0]="linear-kitchens/glosslvoryandwalnut";
		cssName[1]="linear-kitchens/glosswhite/";
		cssName[2]="linear-kitchens/glosswhiteandnaturaloak";
		cssName[3]="linear-kitchens/glosswhiteandblack";
		cssName[4]="linear-kitchens/walnut";
		cssName[5]="linear-kitchens/walnutandblack";
		cssName[6]="linear-kitchens/naturaloak";
		cssName[7]="touch-kitchens/glossivory";
		cssName[8]="touch-kitchens/glosswhiteandebony";
		cssName[9]="framed-kitchens/walnut";
		cssName[10]="framed-kitchens/walnutandglossivory";
		cssName[11]="framed-kitchens/lissaoak-modern";
		cssName[12]="framed-kitchens/glossivory";
		cssName[13]="framed-kitchens/ivorypainted-modern";
		cssName[14]="framed-kitchens/lissaoak-traditional";
		cssName[15]="framed-kitchens/ivorypainted-traditional";
		cssName[16]="framed-kitchens/lissaoakandivorypainted";
		
		hexValue[0]="87908d";
		hexValue[1]="9c9690";
		hexValue[2]="c0a98a";
		hexValue[3]="747676";
		hexValue[4]="474135";
		hexValue[5]="4a1b1c";
		hexValue[6]="d7c3ad";
		hexValue[7]="898d9b";
		hexValue[8]="291306";
		hexValue[9]="302f38";
		hexValue[10]="302f38";
		hexValue[11]="FFFFFF";
		hexValue[12]="5c5747";
		hexValue[13]="cdc29f";
		hexValue[14]="5c523e";
		hexValue[15]="79838a";
		hexValue[16]="FFFFFF";
		
		var imageRef = cssName[randomValue];
		var hexRef = hexValue[randomValue];
		
		var windowWidth = Window.getWindowWidth();
		var imgPath = "/images/range/" + imageRef + "/";
		var imgStandard = "background.jpg";
		var imgHex = "#" + hexRef;
		var divTarget = document.getElementById("crm-background");

		if (windowWidth <= 1024){
			var fileUpdate = imgPath+"background-1024.jpg";
		} else if (windowWidth <= 1152) {
			var fileUpdate = imgPath+"background-1180.jpg";
		} else if (windowWidth <= 1280) {
			var fileUpdate = imgPath+"background-1280.jpg";
		} else if (windowWidth <= 1440) {
			var fileUpdate = imgPath+"background-1440.jpg";
		} else {
			var fileUpdate = imgPath+"background.jpg";
		}

		document.body.style.backgroundColor = imgHex;
		divTarget.style.background="url("+fileUpdate+") no-repeat center top";
		swfobject.embedSWF("/swf/bg.swf", "swf-placeholder", "100%", "100%", "9.0.0","expressInstall.swf", flashvars, params, attributes);
	}
	
	function preloadImages() {
		var i,newImage;
		var preImg = new Array(
			'/images/range/linear-kitchens/glosslvoryandwalnut/background-select.jpg','/images/range/linear-kitchens/glosslvoryandwalnut/background-1280.jpg','/images/range/linear-kitchens/glosslvoryandwalnut/background-1180.jpg',
			'/images/range/linear-kitchens/glosswhite/background-select.jpg','/images/range/linear-kitchens/glosswhite/background-1280.jpg','/images/range/linear-kitchens/glosswhite/background-1180.jpg',
			'/images/range/linear-kitchens/glosswhiteandnaturaloak/background-select.jpg','/images/range/linear-kitchens/glosswhiteandnaturaloak/background-1280.jpg','/images/range/linear-kitchens/glosswhiteandnaturaloak/background-1180.jpg',
			'/images/range/linear-kitchens/glosswhiteandblack/background-select.jpg','/images/range/linear-kitchens/glosswhiteandblack/background-1280.jpg','/images/range/linear-kitchens/glosswhiteandblack/background-1180.jpg',
			'/images/range/linear-kitchens/walnut/background-select.jpg','/images/range/linear-kitchens/walnut/background-1280.jpg','/images/range/linear-kitchens/walnut/background-1180.jpg',
			'/images/range/linear-kitchens/walnutandblack/background-select.jpg','/images/range/linear-kitchens/walnutandblack/background-1280.jpg','/images/range/linear-kitchens/walnutandblack/background-1180.jpg',
			'/images/range/linear-kitchens/naturaloak/background-select.jpg','/images/range/linear-kitchens/naturaloak/background-1280.jpg','/images/range/linear-kitchens/naturaloak/background-1180.jpg',
			'/images/range/touch-kitchens/glossivory/background-select.jpg','/images/range/touch-kitchens/glossivory/background-1280.jpg','/images/range/touch-kitchens/glossivory/background-1180.jpg',
			'/images/range/touch-kitchens/glosswhiteandebony/background-select.jpg','/images/range/touch-kitchens/glosswhiteandebony/background-1280.jpg','/images/range/touch-kitchens/glosswhiteandebony/background-1180.jpg',
			'/images/range/framed-kitchens/walnut/background-select.jpg','/images/range/framed-kitchens/walnut/background-1280.jpg','/images/range/framed-kitchens/walnut/background-1180.jpg',
			'/images/range/framed-kitchens/walnutandglossivory/background-select.jpg','/images/range/framed-kitchens/walnutandglossivory/background-1280.jpg','/images/range/framed-kitchens/walnutandglossivory/background-1180.jpg',
			'/images/range/framed-kitchens/lissaoak-modern/background-select.jpg','/images/range/framed-kitchens/lissaoak-modern/background-1280.jpg','/images/range/framed-kitchens/lissaoak-modern/background-1180.jpg',
			'/images/range/framed-kitchens/glossivory/background-select.jpg','/images/range/framed-kitchens/glossivory/background-1280.jpg','/images/range/framed-kitchens/glossivory/background-1180.jpg',
			'/images/range/framed-kitchens/naturaloak/background-select.jpg','/images/range/framed-kitchens/naturaloak/background-1280.jpg','/images/range/framed-kitchens/naturaloak/background-1180.jpg',
			'/images/range/framed-kitchens/ivorypainted-modern/background-select.jpg','/images/range/framed-kitchens/ivorypainted-modern/background-1280.jpg','/images/range/framed-kitchens/ivorypainted-modern/background-1180.jpg',
			'/images/range/framed-kitchens/lissaoak-traditional/background-select.jpg','/images/range/framed-kitchens/lissaoak-traditional/background-1280.jpg','/images/range/framed-kitchens/lissaoak-traditional/background-1180.jpg',
			'/images/range/framed-kitchens/ivorypainted-traditional/background-select.jpg','/images/range/framed-kitchens/ivorypainted-traditional/background-1280.jpg','/images/range/framed-kitchens/ivorypainted-traditional/background-1180.jpg',
			'/images/range/framed-kitchens/lissaoakandivorypainted/background-select.jpg','/images/range/framed-kitchens/lissaoakandivorypainted/background-1280.jpg','/images/range/framed-kitchens/lissaoakandivorypainted/background-1180.jpg'
			);
		
		for (i=0;i<preImg.length;i++){
			newImage = new Image();
			newImage.src = preImg[i];
		}
	}