//These are the functions we want onLoad
initFunctions.push(addBrandObserver);
initFunctions.push(addQuickLinkObserver);
initFunctions.push(timerServStrip);

var servIndex = 0;
var thisNiceThing;

function addBrandObserver() {
	new Form.Element.EventObserver('evoBrandDropDown',doBrandRedirect);
}
function addQuickLinkObserver() {
	new Form.Element.EventObserver('evoQuickLink',doQuickLinkRedirect);
}

function doBrandRedirect(obj,param) {
	if(IsNumeric(param)) {
		window.location = evoDefaultURL + 'index.cfm?event=catalogue.brand&brandID=' + param;
	}
	else if(param == 'more') {
		window.location = evoDefaultURL + 'index.cfm?event=catalogue.brandDirectory';
	}
}

function doQuickLinkRedirect(obj,param) {
	var aQLink;
	var QLink;
	var i;
	//If just a number, it's a categoryID
	if(IsNumeric(param)) {
		QLink = evoDefaultURL + 'index.cfm?event=catalogue.categoryList&categoryID=' + param;
	}
	else {
		if(param.indexOf('|') > 0) {
		
		//  Format of hardcoded values is:
		//  categoryID|featureIDList|brandID|rangeID
		QLink = evoDefaultURL + 'index.cfm?event=catalogue.categoryList';
		aQLink = param.split('|');
		for (i=0; i < aQLink.length; i++) {
			if(aQLink[i] != '') {
			switch(i) {
				case 0: QLink = QLink + '&categoryID='; break;
				case 1: QLink = QLink + '&featureIDList='; break;
				case 2: QLink = QLink + '&brandID='; break;
				case 3: QLink = QLink + '&rangeID='; break;
			}
			QLink = QLink + aQLink[i];
			}
		}
		}
		else {
			QLink = param;
		}
	}
	window.location = QLink;
}

function IsNumeric(str) {
   var validChars = "0123456789";
   var char;
   var blnResult = true;
   var i;

   if (str.length == 0) return false;
   for (i = 0; i < str.length && blnResult == true; i++)
      {
      char = str.charAt(i);
      if (validChars.indexOf(char) == -1)
         blnResult = false;
      }
   return blnResult;
}

function checkIt(formID,formItem) {
	var thisForm = $(formID);
	if(thisForm[formItem].checked && thisForm[formItem].type != 'radio')
		thisForm[formItem].checked = false;	
	else
		thisForm[formItem].checked = true;	
}

function timerServStrip() {
	if($('servStripHolder'))
		new PeriodicalExecuter(fadeServStrip,8);
}

function fadeServStrip()	{
	var i;
	Effect.Fade('servStrip');
	setTimeout("updateStrip()",1000);
	setTimeout("Effect.Appear('servStrip')",1000);
}

function updateStrip() {
	var index;
	var servStrip = $('servStrip');
	var debug = $('debug');
	var time = Number(new Date().valueOf());
	var time2;
	//get a valid random element that is different to previous element
	do
		while (!aEvoServices[index] || servIndex == index) index = Math.floor((Math.random()*aEvoServices.length)+1) - 1;
	while(servIndex == index)
	servIndex = index;
	//Update HTML
	servStrip.innerHTML = '<div class="' + aEvoServices[servIndex][0] + '"><div class="left"></div><div class="right"></div><a href="' + aEvoServices[servIndex][0] + '" title="' + aEvoServices[servIndex][0] + '">' + aEvoServices[servIndex][1] + '</a></div>';
}

/*
initFunctions.push(timerTestimonials);
function timerTestimonials() {
	if($('testimonials'))
		//new PeriodicalExecuter(fadeTestimonials,8);
		setTimeout(fadeTestimonials,3000);
	}

function fadeTestimonials() {
	var i;
	var index;
	var niceThings = $('testimonials');
	var aNiceThing = niceThings.getElementsByTagName('li');	
	//fade out everything in the list
	Effect.Fade('testimonials');
	//random element
	do 
		index = Math.round(aNiceThing.length*Math.random());
	while(thisNiceThing == index)
	thisNiceThing = index;
	//thisNiceThing = aNiceThing[index].innerHTML;
	//Effect.Appear(aNiceThing[thisNiceThing]);
	//Small delay so you can see the fade-out effect first
	//setTimeout("Effect.Appear(aNiceThing[thisNiceThing])",1000);
} */