

function $(objname)
{
	if (document.getElementById) return document.getElementById(objname);
	if (document.all) return document.all[objname];
	if (document.layers) return document.layers[objname];
}

// **************************************************************************
// find out what browser we're using
if (document.getElementById)
{
	DOMtype = "std";
}
else if (document.all)
{
	DOMtype = "ie4";
}
else if (document.layers)
{
	DOMtype = "ns4";
}

// **************************************************************************
// grab object by ID on page
function grabobj(objname) // v1.0
{

var ret = null;
	switch (DOMtype)
	{
		case "std":
		{
			ret = document.getElementById(objname);
		}
		break;

		case "ie4":
		{
			ret = document.all[objname];
		}
		break;
		case "ns4":
		{
			ret = document.layers[objname];
		}
		break;
	}
return ret;
}

function lightup(imageobject, opacity)
{
	var object = imageobject.style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")"; 
}

var fading=0;
var fadertimer;
var faderobj;
function fadeinBag(objid) {
	if (top.bagTotalQty<=0) return;
	fadein(objid);
}
function updateBag(obj) {
	var bag=grabobj('bagloader');
	
	var orderLines=obj.orderLines;
	var orderLinesStr='';

	for(var i=0; i<orderLines.length; i++) {
		var justAdded= ((obj.justAdd) && (i===0)) ? 'bagProdDescJustAdded':'bagProdDesc';
		orderLinesStr+='<div class="bagloaderBox"><table cellspacing="0" cellpadding="0" border="0"><tr><td><div class="bagProdImg"><img src="'+orderLines[i].prodImage+'" border="0" width="57px" height="70px"></div></td><td valign="middle"><div class="'+justAdded+'">'+orderLines[i].desc+'</div></td></tr></table></div>';
	}
	
	var justAddClass	= (obj.justAdd) ? 'JustAdded':'';
	var t=bag.innerHTML='<div class="bagLoaderInner">'+orderLinesStr+'</div>';
}
function fadein(objid) {
	if (grabobj(objid)) {
		grabobj(objid).style.display="";
		fading=0;
		faderobj=objid;
		window.clearInterval(fadertimer);
		fadertimer=setInterval(fadeinset, 20);
	}
}
function fadeinset ()
{
	fading=fading+10;
	lightup(grabobj(faderobj),fading);
	if (fading>=100) window.clearInterval(fadertimer);
}

function fadeout(objid) {
	if (grabobj(objid)) {
		faderobj=objid;
		window.clearInterval(fadertimer);
		fadertimer=setInterval(fadeoutset, 20);
	}
}
function fadeoutset ()
{
	fading=fading-20;
	lightup(grabobj(faderobj),fading);
	if (fading<=0)
	{
		window.clearInterval(fadertimer);
		grabobj(faderobj).style.display="none";
	}
}

// Used for highlighting/unhiglighting page input fields.
function hlinput (obj,b)
{
	obj.style.background='#F2F9FD';
	if (b=='border') obj.style.borderColor='#F2F9FD';
}
function unhlinput (obj,b)
{
	obj.style.background='#FFFFFF';
	if (b=='border') obj.style.borderColor='#FFFFFF';
}

function matrixhl(sizeobj,colobj)
{
	//grabobj(sizeobj).style.fontWeight="bold";
	//grabobj(colobj).style.fontWeight="bold";
	if (grabobj(sizeobj)) grabobj(sizeobj).style.textDecoration="underline";
	if (grabobj(colobj)) grabobj(colobj).style.textDecoration="underline";
	try {
	if (grabobj(colobj).childNodes[0])
	{
		grabobj(colobj).childNodes[0].style.textDecoration="underline";
	}
	} catch (e) {}
}

function matrixunhl(sizeobj,colobj)
{
	//grabobj(sizeobj).style.fontWeight="";
	//grabobj(colobj).style.fontWeight="";
	if (grabobj(sizeobj)) grabobj(sizeobj).style.textDecoration="none";
	if (grabobj(colobj)) grabobj(colobj).style.textDecoration="";
	
	
	try {
	if (grabobj(colobj).childNodes[0])
	{
		grabobj(colobj).childNodes[0].style.textDecoration="";
	}
	} catch (e) {}
}


function hidetooltip ()
{
	grabobj("tooltip").style.display="none";
}
function displayToolTip (e)
{
	if (grabobj("tooltip").style.display=="none")
	{
// 11-08-10; LJB; Now detects browser width and compensates, taking in to account that tooltip is inside #wrapper and this has relative positioning
//		grabobj("tooltip").style.left=(mouseX(e)-435)+'px';
		leftOffSet=$('wrapper').offsetLeft;
		grabobj("tooltip").style.left=((mouseX(e)-204)-leftOffSet)+'px';
		grabobj("tooltip").style.top=mouseY(e)+3;
		grabobj("tooltip").style.display="";
		grabobj("tooltip").innerHTML="Sorry, this selection is<br> currently sold out.";
	}
}

function prodImageSwap (num,opt,obj)
{
if (obj)
{
	obj=grabobj(obj);
	if (obj)
	{
		obj.src=obj.src.replace('/opt3/','/opt'+opt+'/');
		obj.src=obj.src.replace('/opt2/','/opt'+opt+'/');
		obj.src=obj.src.replace('/opt1/','/opt'+opt+'/');
	}
}

}
function displayView(pic)
{
	var display=window.open('/csp/smp/wrapn/view.csp?pno='+pic,'_blank','scrollbars=no,resizable=yes,width=375,height=480,left=200,top=150');
	if (!display) return true;
	if (display) return false;
}

function mouseX(evt) {
if (evt.pageX) return evt.pageX;
else if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else return null;
}
function mouseY(evt) {
if (evt.pageY) return evt.pageY;
else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else return null;
}

var gloAllowSearch=false;
function chkSearch (obj)
{
gloAllowSearch=false;
	if (obj)
	{
		if (obj.value!="")
		{
			gloAllowSearch=true;
		}
	}
if (!gloAllowSearch) alert("Please enter a search term");
return gloAllowSearch;
}



window.onload=checkheight;

function checkheight () {
	return;
// Not using anymore
	if(document.location.search.indexOf('contentOnly=1')>-1) {
		return;
	}
	if (navigator.userAgent.indexOf("Firefox")!=-1) 
	{
	 if (grabobj("contentarea"))
	 {
		if (grabobj("rcontent"))
		{
			if ((parseFloat(grabobj("rcontent").offsetHeight)+112)>520)
			{
				grabobj("contentarea").style.height=parseFloat(grabobj("rcontent").offsetHeight)+112;
			} else {
				grabobj("contentarea").style.height="520px";
			}
		} else {
			grabobj("contentarea").style.height="100%";
		}
	 }
	}
}
// turn ajax off
var ajaxoff=false;

var validajax=false;
function ajaxValidate (url)
{
 if (!ajaxoff)
 {
	if (!validajax)
	{
		runOnce=false;
		var xmlHttpReq;
		try { xmlHttpReq=new XMLHttpRequest(); } catch (e) {
			try { xmlHttpReq=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
				try { xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
		}	}	}
	
		if (xmlHttpReq)
		{
			xmlHttpReq.open("GET", url, true);
			xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlHttpReq.onreadystatechange = function() {
				if (xmlHttpReq.readyState == 4) {
					validajax=xmlHttpReq.responseText;
					
				}
			}
			xmlHttpReq.send('');
		}
	}
 } else {
	validajax=false;
 }
}

function swapOpt (set,num) {
	var currentnum=imageset[set];
	if (currentnum!=num) {
//		opacity('mainproddiv_'+set+'_'+imageset[set],100,0,50);
// LJB; 24-06-10
		opacity('mainproddiv_'+set+'_'+imageset[set],100,0,1);
		imageset[set]=num;
		changeOpac(0,'mainproddiv_'+set+'_'+imageset[set]);
//		opacity('mainproddiv_'+set+'_'+imageset[set],0,100,49);
// LJB; 24-06-10
		opacity('mainproddiv_'+set+'_'+imageset[set],0,300,0.3);
		//$('mainproddiv_'+set+'_'+imageset[set]).style.display='';
	}
}
function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
//    var speed = Math.round(millisec / 100);
// LJB; 24-06-10
	var speed=millisec;
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}
//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
	if(0==opacity) object.display='none';
	if(0<opacity) object.display='';
}





/*	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/
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)
}
/*	This is a fix for IE8's bug with transparent black pixels.
	It will set the background for the supplied classNames (supply in an Array) to black
*/
function itmentry(classNames) {
//	if(navigator.appVersion.indexOf('MSIE')>-1) {
		if(classNames instanceof Array) {
			if(classNames.length==0) return
			for(var i=0; i<classNames.length; i++) {
				var className	= classNames[i];
				objs	= getElementsByClassName(document,'*',className);
				for(var x=0; x<objs.length; x++) {
//alert(objs[x]+'|'+i+'|'+x);
					objs[x].style.backgroundColor	= '#000000';
				}
			}
		}
//	}
}



function ajaxObject(url, callbackFunction)
{

  var that=this;      
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;                          
    if (window.XMLHttpRequest) {
      that.AJAX=new XMLHttpRequest();
    } else {
		try {
			that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			that.AJAX=new IFrameXMLHttpRequest();
		}
    }
    if (that.AJAX==null) {                             
      return false;                               
    } else {
      that.AJAX.onreadystatechange = function() {  
        if (that.AJAX.readyState==4) {             
          that.updating=false;
          that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);        
          that.AJAX=null;                                         
        }                                                      
      }                                                        
      that.updating = new Date();        
	  
	  if ($('ajaxcall')) $('ajaxcall').innerHTML=new Date();
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&stamp='+(that.updating.getTime()); 
        that.AJAX.open("GET", uri, true);                             
        that.AJAX.send(null);                                         
      }              
      return true;                                             
    }
  }
  var urlCall = url;
  this.callback = callbackFunction || function () { };
}
/*
coded by Kae - http://verens.com/
use this code as you wish, but retain this notice
*/

var kXHR_instances=0;
var kXHR_objs=[];


IFrameXMLHttpRequest=function()
{
	var i=0;
	var url='';
	var responseText='';
	var iframe='';
	this.onreadystatechange=function(){
		return false;
	}
	this.open=function(method,url)
	{
		//TODO: POST methods
		this.i=++kXHR_instances; // id number of this request
		this.url=url;
		iFrame	=	document.createElement('iframe');
		iFrame.id	=	"kXHR_iframe_"+this.i;
		iFrame.style.display = 'none';
		iFrame.style.width = '1px';
		iFrame.style.height = '1px';
		document.body.appendChild(iFrame);
	}
	this.send=function(postdata)
	{
		//TODO: use the postdata
		document.getElementById('kXHR_iframe_'+this.i).src=this.url;
		kXHR_objs[this.i]=this;
		setTimeout('XMLHttpRequest_checkState('+this.i+',2)',2);
	}
	return true;
}
XMLHttpRequest_checkState=function(inst,delay)
{
	var el=document.getElementById('kXHR_iframe_'+inst);
	if(el.readyState=='complete')
	{
		var responseText=document.frames['kXHR_iframe_'+inst].document.body.innerText;
		kXHR_objs[inst].responseText=responseText;
		kXHR_objs[inst].readyState=4;
		kXHR_objs[inst].status=200;
		kXHR_objs[inst].onreadystatechange();
		el.parentNode.removeChild(el);
	}else{
		delay*=1.5;
		setTimeout('XMLHttpRequest_checkState('+inst+','+delay+')',delay);
	}
}


//Email Newsletter Signup Validation
function isValidEmail() {
 var Email=document.form1.Email.value;
 if (Email.indexOf(' ')==-1 
      && 0<Email.indexOf('@')
      && Email.indexOf('@')+1 < Email.length
	  && 0<Email.indexOf('.')
 ) return true;
 else alert ('Invalid email address!')
 return false;
}


function doAjax (page,dat)
{
	var ajax = new ajaxObject(page,evalAjax2);
//	ajax.update(dat,'POST');
	ajax.update(dat,'POST');
}

function evalAjax2 (r,s)
{	
	eval(unescape(r));
}

function doAjaxColour(enteredColour,fs)
{
	doAjax("/ajaxSelectColour.htm","enteredColour="+enteredColour+"&fs="+fs)
}

function doAjaxSize(enteredSize,fs)
{
	doAjax("/ajaxSelectSize.htm","enteredSize="+enteredSize+"&fs="+fs)
}

function doAjaxLength(enteredLength,fs)
{
	doAjax("/ajaxSelectLength.htm","enteredLength="+enteredLength+"&fs="+fs)
}

// New add to basket functions

function doAjaxStock (stno,type)
{
	var ajax = new ajaxObject('/ajaxstock/',evalAjax2);
	ajax.update('STNO='+stno+'&type='+type,'GET');
}

function fadeinattempt() {
	fadeinStock('stockloader');
}
function fadeoutattempt() {
	fadeout('stockloader');
}


function lightup(imageobject, opacity)
{
	var object = imageobject.style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")"; 
}
var fading=0;
var fadertimer;
var faderobj;
function fadeinStock(objid) {
	fadein(objid);
}

function fadein(objid) {
	if (grabobj(objid)) {
		grabobj(objid).style.display="";
		fading=0;
		faderobj=objid;
		window.clearInterval(fadertimer);
		fadertimer=setInterval(fadeinset, 20);
	}
}
function fadeinset ()
{
	fading=fading+10;
	lightup(grabobj(faderobj),fading);
	if (fading>=100) window.clearInterval(fadertimer);
}

function fadeout(objid) {
	if (grabobj(objid)) {
		faderobj=objid;
		window.clearInterval(fadertimer);
		fadertimer=setInterval(fadeoutset, 20);
	}
}
function fadeoutset ()
{
	fading=fading-20;
	lightup(grabobj(faderobj),fading);
	if (fading<=0)
	{
		window.clearInterval(fadertimer);
		grabobj(faderobj).style.display="none";
	}
}

//New quick stock functions

function doAjaxQuickShop (fs,type)
{
	var ajax = new ajaxObject('/ajaxquickshop/',evalAjaxQS);
	ajax.update('FS='+fs+'&type='+type,'GET');
}

function evalAjaxQS (t,s)
{	
	displayBox('ajaxquickshop',unescape(t));
}

function doAjaxsizechart()
{
	var ajax = new ajaxObject('/sizechart/',evalAjax3);
	ajax.update('sizechart=1','GET');
}

function evalAjax3 (t,s)
{	
	displayBox('sizechart',unescape(t));
}


//email a friend
function doAjaxemailfriend(fs)
{
	var ajax = new ajaxObject('/emailfriend/',evalAjax4);
	ajax.update('FS='+fs,'POST');
}
function evalAjax4 (t,s)
{	
	displayBox('emailfriend',unescape(t));
}



function oos(stno,type)
{
//	13-05-10; LJB; returned value from ajax check is a string not a boolean value so no equal
//	if (validajax==true)
	if (validajax) {
		var ajax = new ajaxObject('/sm/',evalAjax);
		ajax.update('STNO='+stno+'&type='+type+'&fastorder=false','GET');
	} else {
		//window.location='/stockmessage/?STNO='+stno+'&type='+type+'&fastorder='+fastorder+'&viewmode=1&ret='+window.location;
	}
		
}
function evalAjax (t,s)
{	
	displayBox('stock',unescape(t));
}

function swapOptQS(code,season)
{
	var basephy='/csp/smp/wrapn/';
	var imgURL=basephy+season+'/colourimg/443x551/'+code+'.jpg';
	document.getElementById('QSimage').src=imgURL;
}

function currentlyShowing(colourDesc)
{
	if(colourDesc=='clearColour')
	{
		grabobj('currentlyShowingMain').style.display='none';	
	}else
	{
		grabobj('currentlyShowingMain').style.display='';	
		grabobj('currentlyShowing').innerHTML=colourDesc;	
	}
}


function inputBlur(el,defVal) {
	if (el.value=='') el.value=defVal;
	return;
}
function inputFocus(el,defVal) {
	if (el.value==defVal) el.value='';
	return;
}
