function getColor(start, end, percent)
{
	function hex2dec(hex){return(parseInt(hex,16));}
	function dec2hex(dec){return (dec < 16 ? "0" : "") + dec.toString(16);}
	start = start.substr(1);
	end = end.substr(1);
	var r1 = hex2dec(start.slice(0,2)), g1=hex2dec(start.slice(2,4)), b1=hex2dec(start.slice(4,6));
	var r2 = hex2dec(end.slice(0,2)),   g2=hex2dec(end.slice(2,4)),   b2=hex2dec(end.slice(4,6));
	var pc = percent/100;
	var r  = Math.floor(r1+(pc*(r2-r1)) + .5), g=Math.floor(g1+(pc*(g2-g1)) + .5), b=Math.floor(b1+(pc*(b2-b1)) + .5);
	return("#" + dec2hex(r) + dec2hex(g) + dec2hex(b));
}

var arrayStylesElements = new Array();
var intStylesCycleDirection = 10;
var intStylesPercentage = 0;
var strStartColour = "#0000CF";
var strEndColour = "#339966";

function stylesBuildClassArray()
{
	var strClassName = "linkcycle";
	var reClass = new RegExp('\\b' + strClassName + '\\b');
	var eleList = document.getElementsByTagName("a");
	
	for (var u = 0; u < eleList.length; u++)
	{
		if (reClass.test(eleList[u].className))
		{
			arrayStylesElements.push(eleList[u]);
		}
	}
	
	setTimeout("stylesCycle()", 100);
}

function stylesCycle()
{
	for (var u = 0; u < arrayStylesElements.length; u++)
	{
		arrayStylesElements[u].style.color = getColor(strStartColour, strEndColour, intStylesPercentage);
	}
	
	intStylesPercentage += intStylesCycleDirection;
	if (intStylesPercentage > 100)
	{
		intStylesCycleDirection = -10;
		intStylesPercentage = 100;
	}
	else if (intStylesPercentage < 0)
	{
		intStylesCycleDirection = 10;
		intStylesPercentage = 0;
	}
	
	setTimeout("stylesCycle()", 100);
}

if (window.attachEvent)
	window.attachEvent("onload", stylesBuildClassArray);
else
	window.addEventListener("load", stylesBuildClassArray, false);
