/* ==========================================================
Steel Site Javascript Functions

This file contains all javascript functions for PHP version of Steel Site.
Any site-wide script should be placed here. Custom or page-specific
javascript should be created in dedicated javascript files and loaded
as required.

version:   0.1
author:    Sam Hocking
website:   http://www.parkertools.co.uk
============================================================ */

var noOfPartners = 1; // holds number of partners the user has displayed in Account application form.

/* General window popping function. Handles all scenarios

Usage (px): <a href="#" onclick="openNewWindow('http://www.google.com/', 'Google', '710','548',true,'scrollbars=no, toolbar=no');" > Popup </a>
Usage (%): <a href="#" onclick="openNewWindow('http://www.google.com/', 'Google', '100%','50%',true,'scrollbars=no, toolbar=no');" > Popup </a>
============================================================ */

function openNewWindow(url, name, width, height, center, options ) {
	var win;
	var l;
	var t;
	// Strip % symbol
	if(width.charAt(width.length-1) == "%") {
		width  = parseInt(width.replace("%",""));
		height = parseInt(height.replace("%",""));
	}
	
	// Convert percent to users screen width in px equivalent
	//width = (width/100) * screen.availWidth;
	//height = (height/100) * screen.availHeight;
	
	// Center window
	if(center){
		l = (screen.width-width)/2;
		t = (screen.height-height)/2;
	} else {
		l = 0;
		t = 0;
	}
	
	var settings = "height=" + height + ", width=" + width + ", top=" + t + ", left=" + l + ", " + options;
	win = window.open(url,name,settings);
	win.focus();
}

/* Toggle element (display: block/none) or (visibility: visible/hidden) */ 
function toggleMe(me, cssProperty){
	var property = eval(cssProperty);
	if (cssProperty == "display") {
		if (me.style.display == "block") {
			me.style.display = "none";
		} else if (me.style.display == "none") {
				me.style.display = "block";
		}
	} else if (cssProperty == "visibility") {
		if (me.style.visibility == "visible") {
			me.style.visibility = "hidden";
		} else if (me.style.visibility=="hidden") {
			me.style.visibility = "visible";
		}
	}
}


/* Quick search processing  */ 
function quickSearch(vID, sts) {
	var searchStr = document.getElementById("searchBox").value;
	searchStr = searchStr.replace(/-/g, "");
	if(isNaN(searchStr)) {
		location.replace('/ProductResults.php?str=' + searchStr + '&lvl=1');
	} else {
		location.replace('/StockResults.php?str=' + searchStr);
	}  
}


/* Advanced search processing */ 
function advancedSearch(type) {
	
	// Handle product search.
	if( type == "product" ) {
		var searchStr = escape(document.getElementById(type).value);
		location.replace('/ProductResults.php?str=' + searchStr + '&lvl=1');
		//var sel = document.getElementById("searchCategory");
		//var cat = escape(sel.options[sel.selectedIndex].value);
		//if ( cat != "" ) {
		//    location.replace('/ProductResults.php?str=' + searchStr + '&cat=' + cat + '&lvl=1');
		//} else {
		//}
    
	// Handle brand search.
	} else if( type == "quality" ) {
		var sel = document.getElementById(type);
		searchStr = sel.options[sel.selectedIndex].value;
		location.replace('/QualityResults.php?str=' + escape(searchStr) + '&lvl=1');

    // Handle stock number search. 
	} else if( type == "stock" ) {
		searchStr = escape(document.getElementById(type).value);
	    location.replace('/StockResults.php?str=' + searchStr);
	   
	// Handle part number search.
	} else if( type == "part" )  {
		searchStr = escape(document.getElementById(type).value);
        location.replace('PartResults.php?str=' + searchStr);
	}
}


/* Check numeric entry */ 
function checkNumeric(id) {
   var val = document.getElementById(id).value;
   if(isNaN(val)) {
	   alert("Please enter only numeric values");
	   document.getElementById(id).value = "";
	   document.getElementById(id).focus();
   }
}



/* Limit form submission to once. */ 
var form_submitted = false;
function submit_form() {
    if ( form_submitted ) {
        alert ( "Updating quantities & totals. Please wait..." );
        return false;
    } else {
        form_submitted = true;
        return true;
    }
}
  


/* Limit text entry in text area */
function textAreaLimit(id,limit) {
	var area = document.getElementById(id);
	if (area.value.length > limit) {
		area.value = area.value.substring(0, limit);
		alert("You have reached the text entry limit.");
	}
}

/* Handle offers per page on the special offers page */
function changeNumPerPage(f) {
	f.page.value = 1; 
	f.submit();
}

function getClientHeight() {
    var myHeight = 0;
	if( typeof( window.innerHeight ) == 'number' ) {
	   //Non-IE
	    myHeight = window.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
	    //IE 6+ in 'standards compliant mode'
	    myHeight = document.documentElement.clientHeight;
	} else if( document.body && document.body.clientHeight ) {
	    //IE 4 compatible
	    myHeight = document.body.clientHeight;
	}
	return myHeight;
}


/* Handle table display and pagination when displaying products from searches */  
function productPaging (curPag,totPag,totRow,perPag) {
	var objPage;
	var objControl;
	var objControl2;
	var objPaging; 
	var objTable; 
	var hgt; 
	var row;
	var pageStart; 
	var pageEnd;
	
	var browser = detectBrowser();
	
	// Set default table height; 
	objTable = document.getElementById("productsContent");
	if (perPag == 20) {
		if ( browser == "IE" ) {
	        objTable.style.height = "645px";
		} else {
			objTable.style.height = "655px";
		}
	} else if (perPag == 50) {
		if ( browser == "IE" ) {
		    objTable.style.height = "1545px";
		} else {
		    objTable.style.height = "1555px";
	    }
	} else if (perPag == 100) {
		if ( browser == 100 ) {
		    objTable.style.height = "3045px";
		} else {
			objTable.style.height = "3055px";
		}	
	}
	
    for( var i = 1; i <= totPag; i++ ) { 
    	objPage     = document.getElementById("prodPage" + i);
    	objControl  = document.getElementById("prodControlA" + i);
    	objControl2 = document.getElementById("prodControlB" + i);
	    if( i == curPag ) {
	        objPage.style.display = "block";
	       
	        // Style page controls. 
	        if( totPag > 1) {
	            objControl.style.fontWeight  = "bold";
	            objControl2.style.fontWeight = "bold";
	        }
	        
	        // Set height of table. 
	        if( curPag == totPag ) {
	            row = totRow - ((totPag-1)*perPag);
	            if ( browser == "IE" ) {	            	
	                hgt = (row * 30) + 45;
	            } else {
	            	hgt = (row * 30) + 55;
	            }
	            objTable = document.getElementById("productsContent");
	            objTable.style.height = hgt + "px";
	        }
	    } else {
	    	objPage.style.display = "none";
	    	
	    	// Style page controls.
	    	if ( totPag > 1) {
	    	    objControl.style.fontWeight  = "normal";
	    	    objControl2.style.fontWeight = "normal";
	    	}
	    }
    }
      
    // Show page controls. 
    objPaging = document.getElementById("productsPaging");
    objPaging.style.visibility = "visible";
    
    // Initialize current page hidden field. 
    // document.getElementById('currPage').value = curPag;
    document.getElementById('page').value = curPag;
    
    // Output page totals? 
    pageEnd = curPag * perPag; 
    if( pageEnd > totRow) {
     	pageEnd = totRow;
    }
    pageStart = ((curPag-1)*perPag) + 1;
    if ( totPag > 1 ) {
        document.getElementById("productsResults").innerHTML = "Showing " + pageStart + " to " + pageEnd + " of " + totRow;
        document.getElementById("productsResults2").innerHTML = "Showing " + pageStart + " to " + pageEnd + " of " + totRow;
    }
}


function detectBrowser() {
	var browserName = navigator.appName;
	if ( browserName =="Microsoft Internet Explorer" ) {
		return "IE"; 
	} else { 
		return "";
    }	
}


/* Clear FastOrder Form */
function clearFastOrder(itemToClear) {
	var selObj; 
    for (var i=1;i<=5;i++) {
        if(itemToClear == "stockNo") {
            for(var j=1;j<=3;j++) {
                //clear stock numbers
                document.getElementById(itemToClear + i + "_" + j).value='';
            }
            // clear shotblast option 
            document.getElementById("shot" + i).checked = false; 
            // clear painting options
            selObj = document.getElementById("paint" + i);
        	selObj.selectedIndex = 0;
            // clear packaging options
        	selObj = document.getElementById("pack" + i);
        	selObj.selectedIndex = 0;
            // clear stock number quantities
            document.getElementById(itemToClear + "Qnty" + i).value='';
            // clear messages
            document.getElementById(itemToClear + i + "Message").innerHTML='';
        } else if(itemToClear == "myPartNo") {
            // clear my part numbers
            document.getElementById(itemToClear + i).value='';
            // clear my part number quantities
            document.getElementById(itemToClear + "Qnty" + i).value='';
            // clear messages
            document.getElementById(itemToClear + i + "Message").innerHTML='';
        }
    }
}


/* Proceed with order from the shopping basket. */ 
function proceedOrder(f,vid,sts) {
	var num = f.custOrdNum.value; 
	var dsc = f.orderDesc.value;
	location.replace("/macros/Delivery.mac/Delivery?VisitorID=" + vid + "&Status=" + sts + "&CustOrdNum=" + num + "&CustOrdDesc=" + dsc);
}


/* Save basket from the shopping basket. */ 
function saveBasket(f,tot) {
	var num = f.custOrdNum.value; 
	var dsc = f.orderDesc.value; 
	location.replace("/SaveBasket?CustOrdNum=" + num + "&CustOrdDesc=" + dsc + "&subTotal=" + tot);
}



//supplementary AJAX functions to validate FindAddress in Registration forms
var findAddressURL;
var outputTD;
var addressGroup;

function findAddress(postcode, output, address) {
	outputTD = output;
	addressGroup = address;
	if (document.getElementById) {
		findAddressURL = "/FindAddress.php?postcode=" + postcode;
		getAddresses();
		document.body.style.cursor = "wait";
		document.getElementById(outputTD).innerHTML = "<span class=\"red\">Retrieving addresses for " + postcode.toUpperCase() + "...</span>";
	}
}

//Get Addresses
function getAddresses() {
 var meth = "GET";
 var str = null;
 
 try {
     // post the data and wait for response
     getXMLAddresses(findAddressURL, meth, str);
 } catch(e) {
     var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
     alert("Sorry, there was a problem fetching any addresses. Please try again.");
     document.getElementById(outputTD).innerHTML = "";
     return;
 }
}

//Fetch the XML Request
function getXMLAddresses(file, meth, str) {
 var doc = null;
 if (typeof window.ActiveXObject != 'undefined' ) {
	 xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
     xmlReq.onreadystatechange = displayAddressesState;
 } else {
     xmlReq = new XMLHttpRequest();
     xmlReq.onload = displayAddressesState;
 }
 xmlReq.open( meth, file, true ); 
 xmlReq.send(str);
}

//Handle onreadystatechange event of req object
function displayAddressesState() {
 // only if req shows "loaded"
 if (xmlReq.readyState == 4) {
     // only if "OK"
     if (xmlReq.status == 200) {
	        if (xmlReq.responseText.length <= 3) {
	        	document.getElementById(outputTD).innerHTML = "";
	            alert("Sorry, no addresses found matching that postcode, please try again.");
	            document.getElementById("lookup" + addressGroup + "Postcode").focus();
	        } else {
	            document.getElementById(outputTD).innerHTML = xmlReq.responseText;
	        }
     } else {
     	 alert("Sorry, there was a problem fetching any addresses. Please try again.");
     	 document.getElementById(outputTD).innerHTML = "";
     }
 }
 document.body.style.cursor = "default";
}

//Fills the address fields
function fillOutAddress(address) {
	var line = address.split("|");
	if (line.length < 7)
	{
		for (i=0; i<=7; i++)
		{
			if (line[i]== undefined)
		    	line[i]= " ";
		}
	}
	document.getElementById('address' + addressGroup + 'Line1').value = line[0];
	document.getElementById('address' + addressGroup + 'Line2').value = line[1];
	if(document.getElementById('address' + addressGroup + 'Line3')) {
		document.getElementById('address' + addressGroup + 'Line3').value = line[2];
	}
	document.getElementById('town' + addressGroup).value = line[3];
	document.getElementById('county' + addressGroup).value = line[4];
	document.getElementById('postcode' + addressGroup).value = line[5] + " " + line[6];
	
	if(document.getElementsByName('statementInvoiceAddress')[1] != undefined) {
		if(document.getElementsByName('statementInvoiceAddress')[1].checked == true) {
			toggleStatementInvoiceAddresses('Company', 'Statement', false);
			toggleStatementInvoiceAddresses('Company', 'Invoice', false);
		}
	}
}

// Toggles registration fields according to company or individual registering
function toggleCompanyFields(status) {
	var title="";
	if(status == true) {
		var title = "This field has been disabled because it only applies if you are a Company";
	}
	document.getElementById('individual').checked = status;
	document.getElementById('companyName').disabled = status;
	document.getElementById('companyName').title = title;
	document.getElementById('jobFunction').disabled = status;
	document.getElementById('jobFunction').title = title;
	document.getElementById('areaOfBusiness').disabled = status;
	document.getElementById('areaOfBusiness').title = title;
}

// Toggles Statment & Invoice address with data from Company Address
function toggleStatementInvoiceAddresses(fromId, toId, clear) {
	var ids = new Array("Statement", "Invoice");
	if(clear == true) {
		if(toId == "both") {
			for(var i=0;i<ids.length;i++) {
				document.getElementById("address" + ids[i] + "Line1").value = "";
				document.getElementById("address" + ids[i] + "Line2").value = "";
				document.getElementById("address" + ids[i] + "Line3").value = "";
				document.getElementById("town" + ids[i]).value = "";
				document.getElementById("county" + ids[i]).value = "";
				document.getElementById("postcode" + ids[i]).value = "";
			}
		} else {
			document.getElementById("address" + toId + "Line1").value = "";
			document.getElementById("address" + toId + "Line2").value = "";
			document.getElementById("address" + toId + "Line3").value = "";
			document.getElementById("town" + toId).value = "";
			document.getElementById("county" + toId).value = "";
			document.getElementById("postcode" + toId).value = "";
		}
		
	} else if(clear == false){
		if(toId == "both") {
			for(var i=0;i<ids.length;i++) {
				document.getElementById("address" + ids[i] + "Line1").value = document.getElementById("address" + fromId + "Line1").value;
				document.getElementById("address" + ids[i] + "Line2").value = document.getElementById("address" + fromId + "Line2").value;
				document.getElementById("address" + ids[i] + "Line3").value = document.getElementById("address" + fromId + "Line3").value;
				document.getElementById("town" + ids[i]).value = document.getElementById("town" + fromId).value;
				document.getElementById("county" + ids[i]).value = document.getElementById("county" + fromId).value;
				document.getElementById("postcode" + ids[i]).value = document.getElementById("postcode" + fromId).value;
			}
		} else {
			document.getElementById("address" + toId + "Line1").value = document.getElementById("address" + fromId + "Line1").value;
			document.getElementById("address" + toId + "Line2").value = document.getElementById("address" + fromId + "Line2").value;
			document.getElementById("address" + toId + "Line3").value = document.getElementById("address" + fromId + "Line3").value;
			document.getElementById("town" + toId).value = document.getElementById("town" + fromId).value;
			document.getElementById("county" + toId).value = document.getElementById("county" + fromId).value;
			document.getElementById("postcode" + toId).value = document.getElementById("postcode" + fromId).value;
		}
	}
}

function customiseApplicationForm(companyType) {
	
	if(companyType == "PLC" || companyType == "LTD" || companyType == "LLP") {
		//show directors
		if(companyType != "LLP") {
			document.getElementById("directors").style.display="block";
			selectOption("positionDirector1","DIR");
			selectOption("positionDirector2","DIR");
			
			// hide rest
			for(var i=1;i<=noOfPartners;i++) {
			document.getElementById("partner" + i).style.display="none";
			}
			document.getElementById("partnerControls").style.display="none";
		}
		document.getElementById('registrationNumberLabel').style.display='';
		document.getElementById('registrationNumberInput').style.display='';
		
		
		document.getElementById("proprietors").style.display="none";
	}
	if (companyType == "Partnership" || companyType == "LLP") {
		//show partners
		document.getElementById("partner1").style.display="block";
		document.getElementById("partnerControls").style.display="block";
		if(companyType == "Partnership") {
			document.getElementById('registrationNumberLabel').style.display='none';
			document.getElementById('registrationNumberInput').style.display='none';
		}
		//noOfPartners=1;
		// hide rest
		document.getElementById("proprietors").style.display="none";
		document.getElementById("directors").style.display="none";
	} else if (companyType == "Sole Trader") {
		// show proprietors
		document.getElementById("proprietors").style.display="block";
		//hide rest
		for(var i=1;i<=noOfPartners;i++) {
			document.getElementById("partner" + i).style.display="none";
		}
		document.getElementById("partnerControls").style.display="none";
		document.getElementById("directors").style.display="none";
		document.getElementById('registrationNumberLabel').style.display='none';
		document.getElementById('registrationNumberInput').style.display='none';
	}
	noOfPartners = 1;
}

function addPartner() {
	if(noOfPartners < 4) {
		toggleMe(document.getElementById("partner" + (noOfPartners + 1)), "display");
		noOfPartners++;
	} else {
		alert('Only a maximum of 4 partners can be added!');
	}
}

function removePartner() {
	if(noOfPartners > 1) {
		toggleMe(document.getElementById("partner" + noOfPartners), "display");
		noOfPartners--;
	} else {
		alert('You can\'t remove Partner 1. At least one Partner must be filled out if your company type is a partnership!');
	}
}

// Select option in selection dropdown based on a comparison value
function selectOption(element, value) {
	var target = document.getElementById(element);
	for(var i=0;i<target.length;i++){
		if(target[i].value.toUpperCase() == value.toUpperCase()) {
			target.selectedIndex = i;
        }
	}
}

String.prototype.reverse = function() {
    return this.split('').reverse().join('');
};

function limitText(limitField, limitNumChars, limitNumLines) {
	dents = limitField.value.replace(/[^\r\n]/g, '').replace(/(\r|\n)/g, '#').length;
	ents = limitField.value.replace(/[^\r\n]/g, '').replace(/(\r\n|\r|\n)/g, '#').length;
	if (limitField.value.length - dents + ents > limitNumChars) {
		limitField.value = limitField.value.substring(0, limitNumChars + dents - ents);
		alert("You can enter no more than " + limitNumChars + " characters in total!");
	} 

	ans = limitField.value.replace(/[^\r\n]/g, '').replace(/(\r\n|\r|\n)/g, '#').length + 1;
	if (ans > limitNumLines) {
		limitField.value = limitField.value.reverse().replace(/\n/, '').replace(/\r/, '').reverse();
		alert("You can enter no more than " + limitNumLines + " lines of text!");
	}
}


/* Homepage conversion calculator */

// Load conversion factor array. 
var convFactor = new Array();
convFactor[0]  = 0.03281;
convFactor[1]  = 0.3937;
convFactor[2]  = 0.01;
convFactor[3]  = 10;
convFactor[4]  = 30.48;
convFactor[5]  = 0.3048;
convFactor[6]  = 304.8;
convFactor[7]  = 2.54;
convFactor[8]  = 0.0254;
convFactor[9]  = 25.4;
convFactor[10] = 1000;
convFactor[11] = 2.205;
convFactor[12] = 0.0009842;
convFactor[13] = 100;
convFactor[14] = 3.281;
convFactor[15] = 39.37;
convFactor[16] = 1000;
convFactor[17] = 0.1;
convFactor[18] = 0.003281;
convFactor[19] = 0.03937;
convFactor[20] = 0.001;
convFactor[21] = 15.444;
convFactor[22] = 144;
convFactor[23] = 0.0929;
convFactor[24] = 6.452;
convFactor[25] = 0.006944;
convFactor[26] = 104;
convFactor[27] = 10.76;
convFactor[28] = 1550;
convFactor[29] = 1016;
convFactor[30] = 0.06475;

function convCalculator() {
	var fromVal = document.getElementById("convFrom").value;
	trim(fromVal);
	
	// Check for numeric entry. 
	if( isNaN(fromVal) || fromVal == "" ) {
		alert("Please enter a numeric value");	
	} else {
		
		// Perform conversion.  
	    var sel      = document.getElementById("convSelect");
		var convVal  = sel.options[sel.selectedIndex].value;
		var convText = sel.options[sel.selectedIndex].text;
		var toVal    = fromVal * convFactor[convVal];
		
		// Format & output conversion text.
		var dp = toVal - Math.floor(toVal);
		var dpstr = dp.toString();
		var dpts = dpstr.length - 2;
		if ( dpts > 3 ) {
			toVal = toVal.toFixed(3);	
		}
		var pos      = convText.indexOf(" to ");
		var fromText = convText.substring(0,pos);
	    var toText   = convText.substring(pos+3); 
		document.getElementById("convOutput").innerHTML = "<b>" + fromVal + " " + fromText + " = " + toVal + toText + "</b>";
	}

}

/* Trim whitespace from a string */ 
function trim(str) {
    return str.replace(/^\s+/g,'').replace(/\s+$/g,'')
}


//Define delivery address arrays. 
var address1  = new Array();
var address2  = new Array();
var address3  = new Array();
var town      = new Array();
var county    = new Array();
var postCode1 = new Array();
var postCode2 = new Array();
var invRef    = new Array();
var dlvRef    = new Array();

// Load delivery address array. 
function loadAddressArray(j,adr1,adr2,adr3,twn,cty,pc1,pc2,inv,dlv) {
    address1[j]  = adr1;
    address2[j]  = adr2; 
    address3[j]  = adr3; 
    town[j]      = twn;
    county[j]    = cty;
    postCode1[j] = pc1;
    postCode2[j] = pc2; 
    invRef[j]    = inv;
    dlvRef[j]    = dlv; 
} 

// Load delivery address form. 
function loadAddressForm(j) {
	  //if( j == " " ) {
	      sel = document.getElementById("dlvAddr");
          j = sel.options[sel.selectedIndex].value;
	  //}
	  document.getElementById("dlv_Adr1").value = address1[j];   
	  document.getElementById("dlv_Adr2").value = address2[j];
	  document.getElementById("dlv_Adr3").value = address3[j];
	  document.getElementById("dlv_Town").value = town[j];
	  document.getElementById("dlv_Cnty").value = county[j];    
	  document.getElementById("dlv_PC1").value  = postCode1[j];
	  document.getElementById("dlv_PC2").value  = postCode2[j];
	  document.getElementById("dlvPostCode1").value = postCode1[j];
	  document.getElementById("dlvPostCode2").value = postCode2[j];
	  document.getElementById("invRef").value = invRef[j];
	  document.getElementById("dlvRef").value = dlvRef[j];
}


function controlForgotPassword(f,mode) {
	/* Control form */
	if ( mode == "username" ) {
	    f.action = '/Password.php';
	} else if ( mode == "question" ) {
        f.action = '/GetPassword.php';		
	}
}


// Update Password Page                                                                            
var updPassURL; 
function updatePassword(user,pass) {
	if (document.getElementById) {
		updPassURL = "/UpdatePassword.php?username=" + user + "&password=" + pass;
		setTimeout("document.body.style.cursor = 'wait'", 1);
		getPassword();
	}
}

function getPassword() {
	var meth = "GET";
	var str = null;
	try {
		 // post the data and wait for response
	     getXMLPassword(updPassURL, meth, str);
	} catch(e) {
	    var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
	    alert("Sorry, there was a problem updating password. Please try again.");
	    return;
	}
}

//Fetch the XML Request
function getXMLPassword(file, meth, str) {
    var doc = null;
    if (typeof window.ActiveXObject != 'undefined' ) {
        xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
        xmlReq.onreadystatechange = displayPasswordState;
    } else {
        xmlReq = new XMLHttpRequest();
        xmlReq.onreadystatechange = displayPasswordState;
        xmlReq.onload = displayPasswordState;
    }
    xmlReq.open( meth, file, true );
    xmlReq.send(str);
}

//Handle onreadystatechange event of req object
function displayPasswordState() {

	// only if req shows "loaded"
    if (xmlReq.readyState == 4) {
    
    	// only if "OK"
        //if ( xmlReq.status == 200 ) {
        	
        // Password updated.
    	if ( trim(xmlReq.responseText) != "" ) {
            if ( trim(xmlReq.responseText) == "home" ) {
        	    location.replace("http://" + getHost() + "/");
            } else {
         	    location.replace("http://" + getHost() + "/Basket");
            }
    	}
    	
        //}
    	document.body.style.cursor = "default";
    }
}


function getHost() {
    var host; 
    if ( location.hostname == "jps400b" ) {
        host = location.hostname + ':' + location.port ; 	
    } else {
    	host = location.hostname; 
    }
    return host;
}


function custOrdNumLightbox(mode) {
	clearLightboxes();
	if ( mode == "on" ) {
	    document.getElementById("lightBox").style.display = "block";
	    document.getElementById("updCustNumContent").style.display = "block";
	    document.getElementById("orderReference").value = document.getElementById("orderRef").value;
	    document.getElementById("orderReference").focus();
	    
	} else if ( mode == "off" ) {
		document.getElementById("lightBox").style.display = "none";
	}
}

function clearLightboxes() {
	document.getElementById("lightBoxContent").style.display   = "none";
	document.getElementById("updCustNumContent").style.display = "none";
	document.getElementById("oneClickAuthenticate").style.display = "none";
}


function validateOrderRef() {
    var ref = document.getElementById("orderReference").value;
    if ( trim(ref) == "" ) {
        alert("An order reference must be entered.");
        document.getElementById("orderReference").focus();
        return false;
    }	
}


function oneClickAuthLightbox() {
	clearLightboxes();
	document.getElementById("lightBox").style.display = "block";
	document.getElementById("oneClickAuthenticate").style.display = "block";
}
