

var xmlHttp
var objEl
function showSub(subname)
	{ 
	
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
	alert ("Browser does not support HTTP Request")
	return
	} 
	
	//alert ("Started AddSIM")
	if (self.innerWidth)
	{
		varPW = self.innerWidth;
		varPH = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		varPW = document.documentElement.clientWidth;
		varPH = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		varPW = document.body.clientWidth;
		varPH = document.body.clientHeight;
	}
	
	//varPW=document.width
	//varPH=document.height
	varDivLeft=((varPW)/2)-320
	varDivTop=((varPH)/2)
	
//	alert("width:" + varDivLeft + " Height:" + varDivTop + "Here: " + coors[1])

	objEl=document.getElementById("dvSubH2");
	objEl.style.visibility='visible';
	objEl.style.left = varDivLeft + 'px';
	objEl.style.top = varDivTop + 'px' ;
	
	varDivTop += 30;
	objEl=document.getElementById("dvSub");
	objEl.style.visibility='visible';
	objEl.style.left = varDivLeft + 'px' ;
	objEl.style.top = varDivTop + 'px' ;
	
	var url="./"+subname
	//alert(url)
	xmlHttp.onreadystatechange=stateChanged
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
	
}
function goto(vURL) {
 window.location=vURL
 }
function hideSub()
	{ 
	objEl=document.getElementById("dvSub")
	objEl.style.visibility='hidden'
	objEl=document.getElementById("dvSubH2")
	objEl.style.visibility='hidden'
	//alert ("Started AddSIM 2")
}

function showHideSub(vSub)
	{ 
	
	var objEl = new getObj(vSub)
	//center(objEl)
	//objEl.style.top=100 + 'px';
	//objEl.style.left=100  + 'px';
	
	if (objEl.style.display=='none' || objEl.style.display=='') {
		objEl.style.display='block'
		} else{
		objEl.style.display='none'
		}
	//alert ("Started AddSIM 2")
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		objEl.innerHTML=xmlHttp.responseText
	} 
} 


function GetXmlHttpObject()
{ 
	var objXMLHttp=null
	if (window.XMLHttpRequest)
	{
	objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
	objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}

function shopping(vAction, vItemID)
{
	if (vAction!='head')
	{
		var url="/shopping.asp?action="+vAction+"&item="+vItemID
		window.location = url
		
	} else {
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null)
		{
		alert ("Browser does not support HTTP Request")
		return
		} 
		
		//alert ("Started AddSIM")
		objEl=document.getElementById("dvBasket")
		
		var url="/shopping.asp?action="+vAction+"&item="+vItemID
		
	//	alert(url)
		xmlHttp.onreadystatechange=stateChanged
		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
}

function UpdatePostage(vAmount)
{
	objEl=document.getElementById("txtPostage")
	objEl.value=vAmount
	
	objEl=document.getElementById("txtSubTotal")
	var nTotal = parseFloat(vAmount)+parseFloat(objEl.value)
	objEl=document.getElementById("txtTotal")
	objEl.value=nTotal.toFixed(2) //FormatNumber(nTotal,2,true,false,true)
	//fmtMoney(nTotal,2,'.',',');

}

function CheckPostage() {
	
//	if (document.getElementById("txtPostage").value=="" || document.getElementById("txtPostage").value==0) {
		if (document.getElementById("slcPostage").value=="0") {
			alert("Please choose a valid postage option");
		}
	else
		{
		document.basket.submit()
	}
}

function movepic(img_name,img_src) {
document[img_name].src=img_src;
}

function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=400,height=500,name=rws_popup');");
}

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum = num - Math.floor(num);
	tmpNum *= (Math.pow(10,decimalNum));
	tmpNum=Math.round(tmpNum);
	//alert (tmpNum);
	var tmpNumStr = new String(Math.floor(num) )
	if (tmpNum <= 0){ 
		tmpNumStr = tmpNumStr + '.00';
		} else {
		tmpNumStr = tmpNumStr + '.' + tmpNum;
		}
	
	return tmpNumStr
	
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

fmtMoney = function( n, c, d, t ) {
	var m = ( c = Math.abs( c ) + 1 ? c : 2, d = d || ",", t = t || ".", /(\d+)(?:(\.\d+)|)/.exec( n + "" ) ), x = m[1].length % 3;
	return ( x ? m[1].substr( 0, x ) + t : "" ) + m[1].substr( x ).replace( /(\d{3})(?=\d)/g, "$1" + t ) + ( c ? d + ( +m[2] ).toFixed( c ).substr( 2 ) : "" );
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


//** from quirksmode.org **//
function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}



//** Dynamic Drive Equal Columns Height script v1.01 (Nov 2nd, 06)
//** http://www.dynamicdrive.com/style/blog/entry/css-equal-columns-height-script/

var ddequalcolumns=new Object()
//Input IDs (id attr) of columns to equalize. Script will check if each corresponding column actually exists:
ddequalcolumns.columnswatch=["leftcolumn", "rightcolumn", "contentcolumn", "contentcolumnwide"]

ddequalcolumns.setHeights=function(reset){
var tallest=0
var resetit=(typeof reset=="string")? true : false
for (var i=0; i<this.columnswatch.length; i++){
if (document.getElementById(this.columnswatch[i])!=null){
if (resetit)
document.getElementById(this.columnswatch[i]).style.height="auto"
if (document.getElementById(this.columnswatch[i]).offsetHeight>tallest)
tallest=document.getElementById(this.columnswatch[i]).offsetHeight
}
}
if (tallest>0){
for (var i=0; i<this.columnswatch.length; i++){
if (document.getElementById(this.columnswatch[i])!=null)
document.getElementById(this.columnswatch[i]).style.height=tallest+"px"
}
}
}

ddequalcolumns.resetHeights=function(){
this.setHeights("reset")
}

ddequalcolumns.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
}

ddequalcolumns.dotask(window, function(){ddequalcolumns.setHeights()}, "load")
ddequalcolumns.dotask(window, function(){if (typeof ddequalcolumns.timer!="undefined") clearTimeout(ddequalcolumns.timer); ddequalcolumns.timer=setTimeout("ddequalcolumns.resetHeights()", 200)}, "resize")


// Macromedia Dreamweaver stuff

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

  
function showHideLayers2() { //v3.0
  //alert("showhidelayers");
  var i,p,v,obj,args=showHideLayers2.arguments;
  for (i=0; i<(args.length-2); i+=3) {
     obj=document.getElementById(args[i])
  	 if (obj!=null) { 
		v=args[i+2];
   		if (obj.style) {
		 	 	obj=obj.style; 
				v=(v=='show')?'visible':(v='hide')?'hidden':v; 
			}
    	obj.visibility=v;
	 }
	 
	 
  }
}

function showBox(){
    objEl=document.getElementById("overlay")
    objEl.style.display="block";
    center(objEl,300,100);
}

function hideBox(){
    document.getElementById("overlay").style.display="none";
    document.getElementById("box").style.display="none";
}

function center(element){
    var my_width  = 0;
    var my_height = 0;

    if ( typeof( window.innerWidth ) == 'number' ){
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    }else if ( document.documentElement && 
             ( document.documentElement.clientWidth ||
               document.documentElement.clientHeight ) ){
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if ( document.body && 
		( document.body.clientWidth || document.body.clientHeight ) ){
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    element.style.position = 'absolute';
    element.style.zIndex   = 99;

    var scrollY = 0;

    if ( document.documentElement && document.documentElement.scrollTop ){
        scrollY = document.documentElement.scrollTop;
    }else if ( document.body && document.body.scrollTop ){
        scrollY = document.body.scrollTop;
    }else if ( window.pageYOffset ){
        scrollY = window.pageYOffset;
    }else if ( window.scrollY ){
        scrollY = window.scrollY;
    }

    //var elementDimensions = Element.getDimensions(element);

    var setX = ( my_width  - element.style.width  ) / 2;
    var setY = ( my_height - element.style.height ) / 2 + scrollY;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top  = setY + "px";

    element.style.display  = 'block';
}
