function $ByID(){
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

// Set variables
var f = false;
var divid = '';

// Preload images
if(document.images){
	preloadImage = new Image();
	preloadImage.src = "/nav/home_allergy-relief.gif";
	preloadImage = new Image();
	preloadImage.src = "/nav/home_industrial.gif";
	preloadImage = new Image();
	preloadImage.src = "/nav/home_racing.gif";
	preloadImage = new Image();
	preloadImage.src = "/nav/home_sports-leisure.gif";
	preloadImage = new Image();
	preloadImage.src = "/nav/home_urban-commuting.gif";
	preloadImage = new Image();
	preloadImage.src = "/nav/roll_allergy-relief.jpg";
	preloadImage = new Image();
	preloadImage.src = "/nav/roll_industrial.jpg";
	preloadImage = new Image();
	preloadImage.src = "/nav/roll_racing.jpg";
	preloadImage = new Image();
	preloadImage.src = "/nav/roll_sports-leisure.jpg";
	preloadImage = new Image();
	preloadImage.src = "/nav/roll_urban-commuting.jpg";
	preloadImage = new Image();
	preloadImage.src = "/titles/racing.gif";
	preloadImage = new Image();
	preloadImage.src = "/titles/allergy-relief.gif";
	preloadImage = new Image();
	preloadImage.src = "/titles/industrial.gif";
	preloadImage = new Image();
	preloadImage.src = "/titles/sports-leisure.gif";
	preloadImage = new Image();
	preloadImage.src = "/titles/urban-commuting.gif";
	preloadImage = new Image();
	preloadImage.src = "/img/load.gif";
}

function writecontent(bodyInnerContent, divid){
	$ByID(divid).innerHTML=bodyInnerContent;

	if(divid=='shopping'){
		setTimeout('$ByID(\'items\').innerHTML=$ByID(\'itemsTotal\').value', 50);
	}
}

function dofooter() {
	var windowHeight=0;
	if(typeof(window.innerHeight)=='number'){
		//Non-IE
		windowHeight = window.innerHeight;
	}else if(document.documentElement&&document.documentElement.clientHeight){
		//IE 6+ in 'standards compliant mode'
		windowHeight = document.documentElement.clientHeight;
	}else if(document.body&&(document.body.clientHeight)){
		//IE 4 compatible
		windowHeight = document.body.clientHeight;
	}

	e=$ByID("heightAdjust");
	e.style.height = eval(windowHeight-147) + 'px';
}

function selecthome(whichImage){
	if(!f){
		if(whichImage=='home'){
			selectedHome=='';
			$ByID("homeRollover").src='/nav/blank.gif';
			$ByID("homeImage").src='/nav/home_main_default.jpg';
		}else{
			selectedHome=whichImage;
			$ByID("homeRollover").src='/nav/home_'+whichImage+'.gif';
			$ByID("homeImage").src='/nav/roll_'+whichImage+'.jpg';
		}
	}
}

function swaphome(whichImage){
	$ByID("homeRollover").src='/nav/home_'+whichImage+'.gif';
	$ByID("homeImage").src='/nav/roll_'+whichImage+'.jpg';
}

function swapoff(){
	if(selectedHome==''){
		$ByID("homeRollover").src='/nav/blank.gif';
		$ByID("homeImage").src='/nav/home_main_default.jpg';
	}else{
		$ByID("homeRollover").src='/nav/home_'+selectedHome+'.gif';
		$ByID("homeImage").src='/nav/roll_'+selectedHome+'.jpg';
	}
}

// Form functions
function selectCustomerType(customerType){
	$ByID("customerType"+customerType).checked=true;
}

function checkForm(theForm, existing){
	/*if(theForm.id=='checkoutForm' && $ByID("customerTypeNew").checked==true){
		var checkThese=new Array('emailAddressNew||Invalid email address');
	
	}else if(theForm.id=='checkoutForm' && $ByID("customerTypeExisting").checked==true){
		var checkThese=new Array('emailAddress||Invalid email address', 'password||Enter password');
	}
	else */
	if(theForm.id=='loginForm'){
		var checkThese=new Array('emailAddressLogin||Invalid email address', 'passwordLogin||Enter password');
	
	}else if(theForm.id=='newsletterForm'){
		var checkThese=new Array('newsletterEmail||Invalid email address');

	}else if(theForm.id=='passwordRetrieveForm'){
		var checkThese=new Array('emailAddress||Invalid email address');

	}else if(theForm.id=='passwordChangeForm'){
		var checkThese=new Array('passwordOld||Enter old password', 'passwordNew||Enter new password', 'passwordConfirm||Confirm new password');

	}else if(theForm.id=='checkoutPaymentForm'){
		var checkThese=new Array('CardHolder||Enter card holder name', 'ExpiryDateMonth||Select expiry date month', 'ExpiryDateYear||Select expiry date year','CV2||Enter security code');

	}else if(theForm.id=='contactForm'){
		var checkThese=new Array('enq_name||Enter name', 'enq_email||Enter email', 'enq_enquiry||Enter your enquiry');
	}else if(theForm.id=='checkoutPersonalForm'){
		var checkThese=new Array('emailAddress||Invalid email address');
		
		if(existing){
			checkThese=checkThese.concat('password||Enter password');
			checkThese=checkThese.concat('passwordConfirm||Confirm password');
		}

		var checkThesePd=new Array(
			'termsConditions||You must accept the terms & conditions',
			'firstName||Enter billing first name',
			'lastName||Enter billing last name',
			'landlinePhone||Enter billing phone number',
			'address1||Enter billing address',
			'townCity||Enter billing Town/City',
			'postcode||Enter billing postcode',
			'country||Enter billing country'
		);

		checkThese=checkThese.concat(checkThesePd);

		if($ByID("deliverySame").checked==false){
			var checkTheseDel=new Array(
				'address1Del||Enter delivery address',
				'townCityDel||Enter delivery Town/City',
				'postcodeDel||Enter delivery postcode',
				'countryDel||Enter delivery country'
			);
			
			checkThese=checkThese.concat(checkTheseDel);
		}
		
		//checkThese=checkThese.concat('termsConditions');
	}
	
	if(theForm.id=='checkoutPaymentForm'){
		if( checkCreditCard($ByID('CardNumber').value, $ByID('CardType').value)){
			return checkLoop(checkThese);
		}else{
			alert (ccErrors[ccErrorNo]);
			return false;
		}
	}else{
		return checkLoop(checkThese);
	}
	
}

function checkLoop(checkTheseArray){
	
	var alertBg = "#F9B800";
	var okBg = "#ffffff";
	var elementType;
	var elementName;
	var elementValue;
	var elementObject;

	var email_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	for (var loop=0;loop<checkTheseArray.length;loop++){

		valuesArray=checkTheseArray[loop].split("|");
		
		elementObject=$ByID(valuesArray[0]);
		elementDefault=valuesArray[1];
		elementErrorMsg=valuesArray[2];		

		elementType=elementObject.type;
		elementName=elementObject.name.toLowerCase();
		elementValue=elementObject.value;
		
		if(((elementValue=="")&&(elementType=="text" || elementType=="password"))||((elementName.toLowerCase().match("email"))&&(elementType=="text")&&(!email_regex.test(elementValue)))){
			elementObject.style.background = alertBg;
			elementObject.focus();
			if (elementName=='newsletteremail')
			{
				if($ByID('errorMsg2')){$ByID('errorMsg2').innerHTML = elementErrorMsg;}

			}
			else if (elementName=='emailaddresslogin'||elementName=='passwordlogin')
			{
				if($ByID('errorMsg3')){$ByID('errorMsg3').innerHTML = elementErrorMsg;}
			}
			else{
				if($ByID('errorMsg')){$ByID('errorMsg').innerHTML = elementErrorMsg;}
			}
			return false;
		}else if((elementValue=="")&&(elementType=="textarea")){
			elementObject.style.background = alertBg;
			elementObject.focus();
			if($ByID('errorMsg')){$ByID('errorMsg').innerHTML = elementErrorMsg;}
			return false;
		}else if((elementType=="select-one")&&((elementObject.options[elementObject.selectedIndex].value=="Select country") || (elementObject.options[elementObject.selectedIndex].value==""))){
			elementObject.style.background = alertBg;
			elementObject.focus();
			if($ByID('errorMsg')){$ByID('errorMsg').innerHTML = elementErrorMsg;}
			return false;
		}else if((elementObject.checked==false)&&(elementType=="checkbox")){
			elementObject.style.background = alertBg;
			elementObject.focus();
			if($ByID('errorMsg')){$ByID('errorMsg').innerHTML = elementErrorMsg;}
			return false;
		}else{
			if(elementType=="checkbox"){
				elementObject.style.background = "";
			}else{
				elementObject.style.background = okBg;
			}
			$ByID('errorMsg').innerHTML = "";
		}
	}
	return true;
}

function copyToDelivery(){
	var copyArray=new Array('company', 'address1', 'address2', 'townCity', 'postcode', 'country');

	if($ByID("deliverySame").checked==true){
		for (x=0; x<(copyArray.length)-1; x++){
			$ByID(copyArray[x] + "Del").value=$ByID(copyArray[x]).value;
			$ByID(copyArray[x] + "Del").disabled=true;
		}
		$ByID(copyArray[x] + "Del").selectedIndex=$ByID(copyArray[x]).selectedIndex;
		$ByID(copyArray[x] + "Del").disabled=true;
	}else{
		for (x=0; x<copyArray.length; x++){
			$ByID(copyArray[x] + "Del").disabled=false;
		}
	}
}

function copyOnChange(object){
	if($ByID("deliverySame").checked==true){
		if(object.id=='country'){
			$ByID(object.id + "Del").selectedIndex=object.selectedIndex;
		}else{
			$ByID(object.id + "Del").value=object.value;
		}
	}
}

function enlargeImage(url,rel){
	e=$ByID("productImageOverlayed");
	e.src = url;

	if (rel > '')
	{
		$(".largeImgLink").show().attr({href:rel});
	}
	else
	{
		$(".largeImgLink").hide();
	}

	return false;

}

function ajaxAction(url, divupdate, formId) {
	
	divid=divupdate;
	
	if (!f && (pageRequest.readyState==4 || pageRequest.readyState==0)) {
		f = true;
		
		// Shopping basket stuff
		if(formId!=''){
			if(formId!='loginForm'){
				basketUpdated('basketStatus');
			}

			var fields = new Array();
			
			if(formId){
				var ajaxForm = $ByID(formId);
			}
			//loop through form elements and retrieve field NAMEs and Values
			for (var x = 0; x < ajaxForm.elements.length; x++){
				// join them into a string.

				elementObject=ajaxForm.elements[x];
				elementType=elementObject.type;
				elementName=elementObject.name;

				if(elementType=="text" || elementType=="password" || elementType=="hidden" || elementType=="textarea"){
					elementValue=elementObject.value;
				}else if(elementType=="select-one"){
					elementValue=elementObject.options[elementObject.selectedIndex].value;
				}

				fields[x]=elementName+'='+elementValue;
			}

			var sendf = fields.join('&');
			pageRequest.open("POST", url, true);

		// Mostpopular
		}else{
			pageRequest.open('GET', url, true);
		}

		insertAjaxLoader(divid);

		pageRequest.onreadystatechange = Response;
		pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		pageRequest.send(sendf);

		return false;
	}else if(pageRequest.readyState!=4 || pageRequest.readyState!=0){
		return false;
	}else{
		return true;
	}
}

function insertAjaxLoader(divid){
	e=$ByID(divid);
	e.style.height = e.offsetHeight + 'px';
	writecontent('<img src="/img/load.gif" width="22" height="16" alt="Loading" title="Loading" />', divid);
}

function Response(){
	if (pageRequest.readyState == 4) {
		results = pageRequest.responseText; // http.responseXML;
		e=$ByID(divid);
		e.style.height = 'auto';
		writecontent(results, divid);

		f = false;
	}
}

function basketUpdated(statusId){
	if($ByID(statusId)){
		writecontent('<p>Updating basket...</p>', statusId);
		setTimeout('writecontent(\'\', \''+statusId+'\')', 1500);
	}
}

function XMLHTTPObject(){
	var xmlhttp;
	if (window.ActiveXObject) {
		// Instantiate the latest Microsoft ActiveX Objects
		if(_XML_ActiveX){
			xmlhttp = new ActiveXObject(_XML_ActiveX);
		}else{
			// loops through the various versions of XMLHTTP to ensure we're using the latest
			var versions = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0"];
			for (var i = 0; i < versions.length ; i++) {
				try {
					// Try and create the ActiveXObject for Internet Explorer, if it doesn't work, try again.
					xmlhttp = new ActiveXObject(versions[i]);
					if(xmlhttp){
						var _XML_ActiveX = versions[i];
						//alert(_XML_ActiveX);
						break;
					}
				}
				catch (e) {
					// TRAP
				};
			};
		}
	}
	
	// Well if there is no ActiveXObject available it must be firefox, opera, or something else
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}
var pageRequest = XMLHTTPObject(); // Create the XMLHttpRequest Object.




/*============================================================================*/
/*
If you're wondering what this is doing here, check the repository for the
log on revision #57.
*/

var ccErrorNo = 0;
var ccErrors = new Array ()

ccErrors [0] = "Unknown card type";
ccErrors [1] = "No card number provided";
ccErrors [2] = "Card number is in an invalid format";
ccErrors [3] = "Card number is invalid";
ccErrors [4] = "Card number has an inappropriate number of digits";

function checkCreditCard (cardnumber, cardname) { return true; }

/*============================================================================*/

//Scroller

var pageCounter = 1;
var pages;

function pageUp() {
	$('#description').scrollTo({top:'-='+scrollHeight},950);
	$('.page-forward').show();
	pageCounter--;
	if(pageCounter == 1){
		$('.page-back').hide();
		$('.page-top').hide();
	}
}

function pageTop() {
	$('#description').scrollTo({top:0},950);
	$('.page-forward').show();
	pageCounter=1;
	$('.page-back').hide();
	$('.page-top').hide();
}

function pageDown(){
	$('#description').scrollTo({top:'+='+scrollHeight},950)
	pageCounter++;
	$('.page-back').show();
	$('.page-top').show();
	if(pageCounter >= pages){
		$('.page-forward').hide();
	}
}

function paginate(){

scrollHeight = $('#description').height();

contentHeight = $('#height-measurer').height();

if (contentHeight > scrollHeight)
{

pages = (contentHeight/scrollHeight);

$('#description').css({'overflow':'hidden'})
				 .after($('<div class="page-top"><p><a href="#">&laquo;&laquo; Back to the top</a></p></div>').css({'float':'left','paddingTop':5,'paddingLeft':30,'display':'none'}).click(function(){pageTop();return false;}))

				 .after($('<div class="page-back"><p><a href="#">&laquo; Page Up</a></p></div>').css({'float':'left','paddingTop':5,'display':'none'}).click(function(){pageUp();return false;}))
				 .after($('<div class="page-forward"><p><a href="#">Page Down &raquo;</a></p></div>').css({'float':'right','paddingTop':5}).click(function(){pageDown(); return false;}));	

}
}

/*$(document).ready(function(){

	$("a[rel='lightbox']").lightBox({
		imageLoading: '/img/lightbox/loading.gif',
		imageBtnClose: '/img/lightbox/close.gif',
		imageBtnPrev: '/img/lightbox/prev.gif',
		imageBtnNext: '/img/lightbox/next.gif',
		imageBlank: '/img/lightbox/blank.gif'
	});

});*/

$(window).load(function(){
paginate();
})

window.onresize = dofooter;
