
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function getElementsByClassName(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 bordereffect()
{
	var eleItem = document.getElementById("productrange");
	var eleItems = eleItem.getElementsByTagName("div");
	for(var i=0; i<eleItems.length; i++){
		var eleHref = eleItems[i].getElementsByTagName("a");
		if(!eleItems[i].id)
		{
			if(eleItems[i].id == "")
			{
			  eleItems[i].className = "jsnoborder";

			  eleItems[i].onmouseover = function ()
			  {
				this.className = "jsborder";
				// document.body.style.cursor = 'pointer';
			  }
			  eleItems[i].onmouseout = function ()
			  {
				this.className = "jsnoborder";
				document.body.style.cursor = 'default';
			  }
			  eleItems[i].onclick = function ()
			  {
			  	var elelinks = this.getElementsByTagName("a");
			  	strHref = elelinks[0].href;
				document.location.href=strHref;
			  }
			}
		}	
	}
}
// Stylesheet switcher

function getAllSheets() {
	if( !window.ScriptEngine && navigator.__ice_version ) {
        return document.styleSheets;
    }
	if( document.getElementsByTagName ) {
        var Lt = document.getElementsByTagName('link'), St = document.getElementsByTagName('style');
	} else if(
        document.styleSheets && document.all ) { var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
	} else { return []; } for( var x = 0, os = []; Lt[x]; x++ ) {
		var rel = Lt[x].rel ? Lt[x].rel : Lt[x].getAttribute ? Lt[x].getAttribute('rel') : '';
		if( typeof( rel ) == 'string' && rel.toLowerCase().indexOf('style') + 1 ) { os[os.length] = Lt[x]; }
	}
    for(var x = 0; St[x]; x++ ) {
        os[os.length] = St[x];
    }
    return os;
}
function changeStyle() {

	window.userHasChosen = window.MWJss;
	for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) 
	{
		if( ss[x].title ) 
		{ 
			ss[x].disabled = true; 
			// alert("switch off" + ss[x].title)
		}
		if(arguments.length == 1)
		{
			for( var y = 0; y < arguments.length; y++ ) 
			{ 
				if( ss[x].title == arguments[y] ) 
				{
					// alert("switch on" + ss[x].title)
					ss[x].disabled = false; 
				} 
			}
		}
	} 
	removeLink("fon1");
	backToRegularView()
}
function rememberStyle( cookieName, cookieLife ) {


	// Checks to see if a view has been used.

	for( var viewUsed = false, ss = getAllSheets(), x = 0; window.MWJss && ss[x]; x++ ) 
	{
		if( ss[x].disabled != MWJss[x] ) {
		    viewUsed = true;
		    break;
		}
    	}
    	
    	
	if( !window.userHasChosen && !viewUsed ) {
        return;
    }
    
    
	for( var x = 0, outLine = '', doneYet = []; ss[x]; x++ ) {
		if( ss[x].title && ss[x].disabled == false && !doneYet[ss[x].title] ) 
		{

           	 	doneYet[ss[x].title] = true;
            		outLine += ( outLine ? ' MWJ ' : '' ) + escape( ss[x].title );
        	}
    }
	if( ss.length ) {

        document.cookie = escape( cookieName ) + '=' + escape( outLine ) + ( cookieLife ? ';expires=' + new Date( ( new Date() ).getTime() + ( cookieLife * 86400000 ) ).toGMTString() : '' ) + ';path=/';
    }
}
function useStyleAgain( cookieName ) 
{
	
	for( var x = 0; x < document.cookie.split( "; " ).length; x++ ) {
		
		var oneCookie = document.cookie.split( "; " )[x].split( "=" );

		if( oneCookie[0] == escape( cookieName ) ) {
			var styleStrings = unescape( oneCookie[1] ).split( " MWJ " );
			for( var y = 0, funcStr = ''; styleStrings[y]; y++ ) 
			{ 
				
				funcStr += ( y ? ',' : '' ) + 'unescape( styleStrings[' + y + '] )'; 
			}
			eval( 'changeStyleColour(' + funcStr + ');' );
			eval( 'changeStyleFont(' + funcStr + ');' );
           	break;
	   }
    }
    window.MWJss = []; for( var ss = getAllSheets(), x = 0; ss[x]; x++ ) {
        MWJss[x] = ss[x].disabled;
    }    	
}

function clearBackToRegularView()
{
	if(document.getElementById("returnnormalview"))
	{
		eleRemove = document.getElementById("returnnormalview");
		document.body.removeChild(eleRemove)
	}
}


function backToRegularView()
{
	var eleForm;
	var eleDiv;
	var eleInput;
	
	clearBackToRegularView()

	for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) 
	{
		
		if (ss[x].rel == "alternate stylesheet")
		{
			
			if (ss[x].disabled == false )
			{
				if(ss[x].title == "col4")
				{
					var eleForm = document.createElement("form");
					var eleInput = document.createElement("input");
					var eleDiv = document.createElement("div");

					eleDiv.setAttribute("id", "returnnormalview");

					eleForm.setAttribute("action", "#");
					eleForm.setAttribute("class", "regview");
					eleForm.setAttribute("className", "regview");

					eleInput.setAttribute("type", "submit");
					eleInput.setAttribute("value", "Back to regular layout");
					eleInput.setAttribute("class", "button");
					eleInput.setAttribute("className", "button");

					eleForm.appendChild(eleInput);
					eleDiv.appendChild(eleForm);
					document.body.appendChild(eleDiv);

					eleDiv = document.getElementById("returnnormalview");
					eleInputs = eleDiv.getElementsByTagName("input");
					eleInputs[0].onclick = function () {changeStyle(''); return false}
				}
			}
		}
	}
}

function createElements(fullDisplayOptions)
{
	var div = document.createElement("div");
	var h2 = document.createElement("h2");
	var ulist = document.createElement("ul");

	h2.appendChild(document.createTextNode("Font size"));

	if (fullDisplayOptions == false)
	{
		ulist.setAttribute("id","fonts");
		

		
		var eleLiList1 = createElementLi("fon1", "Small font size", "A", "sma");
		var eleLiList2 = createElementLi("fon2", "Medium font size", "A", "med");
		var eleLiList3 = createElementLi("fon3", "large font size", "A", "lar");
		var eleFont = document.getElementById("fontch"); 

		ulist.appendChild(eleLiList1);
		ulist.appendChild(eleLiList2);
		ulist.appendChild(eleLiList3);
		div.appendChild(h2);
		div.appendChild(ulist);
	}
  	return div;

  
  }
  function fontDisplay() 
  {
  
  	/* This function check to see if the browser is recognised and calls the create elements function based on whether the divs are found. */
    	if (navigator.appName == 'Microsoft Internet Explorer' && navigator.platform == 'MacPPC' || !document.getElementById || !document.getElementById("accessibilty")) return false;
    
    		var eleFontResizer = createElements(false)
   		var eleFont = document.getElementById("accessibilty"); 
   		eleFont.appendChild(eleFontResizer);
 		var para = document.createElement("p");
		var ahref = document.createElement("a");  		
   		
		ahref.setAttribute("href","/viewopts.shtml");
		// ahref.appendChild(document.createTextNode("More viewing options"));

		para.appendChild(ahref);	
		eleFont.appendChild(para);
		
    		/* If a element is found with the id displayoptions then the full options will be included */
   	
		// alert(document.getElementById("accessibilty").innerHTML)
  }
  function createElementLi(strType, strTextNode, strLinkText, strClass)
  {
  
  	var listitem = document.createElement("li");
  	var ahref = document.createElement("a");
	var off = document.createElement("span");
	var span1 = document.createElement("span");
	var span2 = document.createElement("span");
	var span3 = document.createElement("span");
	var span4 = document.createElement("span");
	var span5 = document.createElement("span");
	var span6 = document.createElement("span");
	var span7 = document.createElement("span");
	var span8 = document.createElement("span");
	
	listitem.setAttribute("class", strClass);
	listitem.setAttribute("className", strClass);  
	ahref.setAttribute("href","#");
	off.setAttribute("class", "off");
	off.setAttribute("className", "off");
	off.appendChild(document.createTextNode(strTextNode));
	
	ahref.appendChild(off);
	span8.appendChild(document.createTextNode(strLinkText));
	span7.appendChild(span8);
	span6.appendChild(span7);
	span5.appendChild(span6);
	span4.appendChild(span5);
	span3.appendChild(span4);
	span2.appendChild(span3);
	span1.appendChild(span2);
	ahref.appendChild(span1);
	listitem.appendChild(ahref);

	if (strType.substr(0,3) == "fon")
	{
		ahref.onclick = function () 
		{
		
		changeStyleFont(strType); 
				
		return false
		}
		ahref.onmouseover = function () {window.status=''; return true}
		return listitem;
	}else if (strType.substr(0,3) == "col")
	{

	
		ahref.onclick = function () 
		{

		changeStyleColour(strType); 
		return false
		}
		
		ahref.onmouseover = function () {window.status=''; return true}
		
		if(strClass != "lay5")
		{
			var eleSpan = document.createElement("span");
			eleSpan.setAttribute("class", "displaytext");
			eleSpan.setAttribute("className", "displaytext");
			eleSpan.appendChild(document.createTextNode("Sample text"));
			listitem.appendChild(eleSpan);
		}
		
		return listitem;
	}
  }

function changeStyleFont() 
{
	var strStyleSheetTitle;
	var strStyleForRemoval = "fon" + 1;
	
	// window.userHasChosen = window.MWJss;
	// alert(arguments.length);
	for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) 
	{
		strStyleSheetTitle = ss[x].title
		if( ss[x].title ) 
		{
			if (strStyleSheetTitle.substr(0,3) == "fon")
			{
				ss[x].disabled = true;
				
			}
		}
		if(arguments.length < 3)
		{
			for( var y = 0; y < arguments.length; y++ ) 
			{ 
				if( ss[x].title == arguments[y] ) 
				{ 
					ss[x].disabled = false; 
					strStyleForRemoval = ss[x].title;
				} 
			}
		}
	}
	removeLink(strStyleForRemoval);
}

function changeStyleColour() 
{
	var strStyleSheetTitle;
	var strStyleForRemoval;
	// window.userHasChosen = window.MWJss;
	// alert(arguments.length);
	for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) 
	{
		strStyleSheetTitle = ss[x].title
		if( ss[x].title ) 
		{
			if (strStyleSheetTitle.substr(0,3) == "col")
			{
				ss[x].disabled = true;
			}
		}
		if(arguments.length < 3)
		{
			for( var y = 0; y < arguments.length; y++ ) 
			{ 
				if( ss[x].title == arguments[y] ) 
				{ 			
					ss[x].disabled = false;	
				} 
			}
		}
	}
	backToRegularView();
}
function removeLink(strStyleForRemoval)
{
	//alert(strStyleForRemoval);
	if (document.getElementById("jsmorestyles"))
	{
		eleMoreStyleOptions = document.getElementById("jsmorestyles");
		// alert(eleMoreStyleOptions);
		eleLinks = eleMoreStyleOptions.getElementsByTagName('li');
		// alert("num of links " + eleLinks.length);
		removeAlllinks();
		 for( var numOfLinks = 0; numOfLinks < eleLinks.length; numOfLinks++ ) 
		 {
		 	
		 	// alert(eleLinks[numOfLinks].className + " : " + numOfLinks);
			if(eleLinks[numOfLinks].className == strStyleForRemoval)
			{
				//alert("match " + eleLinks[numOfLinks].className + " : " + numOfLinks);
				eleLinks[numOfLinks].setAttribute("id", "selected");
			}
		 }
	}
	// alert(document.getElementById("jsmorestyles").innerHTML)
}

function showOrHide()
{
	if (document.getElementById("detailp"))
	{
		var headID = document.getElementsByTagName("head")[0]; 
		var styleSheets = headID.childNodes;
		var blnFindSheet = false;
				
		for(var numOfSs = 0; numOfSs < styleSheets.length; numOfSs++)
		{
			if (styleSheets[numOfSs].title == "showhide")
			{
				blnFindSheet = true;
				// alert(styleSheets[numOfSs].title + "" + numOfSs)
				hideBasket(headID , numOfSs)
			}
		}
		if(blnFindSheet == false)
		{
			showBasket();
		}
		
	}
	
}
function hideBasket(eleParent, intNodeNumber)
{
	
	window.location = window.location.pathname + window.location.search;
	// eleParent.removeChild(eleParent.childNodes[intNodeNumber]);
	// alert(document.getElementsByTagName("head")[0].innerHTML);
	// var eleShowHide = document.getElementById("detailp");
	// eleShowHideLinks = eleShowHide.getElementsByTagName("a");
	// eleShowHideLinks[0].firstChild.nodeValue = "(view items)";

}
function showBasket()
{

	var headID = document.getElementsByTagName("head")[0]; 
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = '/css/showhide.css';
	cssNode.title = 'showhide';
	headID.appendChild(cssNode);
	
	var eleShowHide = document.getElementById("detailp");
	eleShowHideLinks = eleShowHide.getElementsByTagName("a");
	eleShowHideLinks[0].firstChild.nodeValue = "(hide items)";
}
function showHideBasket()
{
	if (navigator.appName == 'Microsoft Internet Explorer' && navigator.platform == 'MacPPC' || !document.getElementById || !document.getElementById("detailp")) return false;
    	
    	blnSafari = navigator.userAgent;
    	blnSafari = blnSafari.toLowerCase()
    	    	
    	if (blnSafari.indexOf("safari") == -1)
    	{
		var eleLink = document.createElement("a");
		var eleShowHide = document.getElementById("detailp");
		var eleLink = document.createElement("a");
		eleLink.setAttribute("href","#");
		eleLink.appendChild(document.createTextNode('(view items)'));

		eleLink.onclick = function () 
		{
			showOrHide();
		}
		eleShowHide.appendChild(eleLink);
	}
	
}

window.onload = function(e) {

    useStyleAgain('styleStore');
    
}

window.onunload = function(e) {

    rememberStyle('styleStore',10);
}


addLoadEvent(showHideBasket);
addLoadEvent(bordereffect);
addLoadEvent(fontDisplay);