// fgFadeIndex: the current item in fgFadeContent.
var fgFadeIndex = -1;
// fgFadePercent: percent of fade. (-64 to 510.)
var fgFadePercent = 510
// fgFadeSwitch: direction. (in or out)
var fgFadeSwitch = false;
// fgFadeScroller: the actual div to mess with.
var fgFadeScroller = document.getElementById('fgFadeScroller');
// The ranges to fade from for R, G, and B. (how far apart they are.)
var fgFadeRange = {
	'r': fgFadeFrom.r - fgFadeTo.r,
	'g': fgFadeFrom.g - fgFadeTo.g,
	'b': fgFadeFrom.b - fgFadeTo.b
};

// Divide by 20 because we are doing it 20 times per one ms.
fgFadeDelay /= 20;

// Start the fader!
window.setTimeout('fgFader();', 20);

// Main	fading function... called 50 times every second.
function fgFader()
{
	if (fgFadeContent.length <= 1)
		return;

	// A fix for Internet Explorer 4: wait until the document is loaded so we can use setInnerHTML().
	if (typeof(window.document.readyState) != "undefined" && window.document.readyState != "complete")
	{
		window.setTimeout('fgFader();', 20);
		return;
	}

	// Starting out?  Set up the first item.
	if (fgFadeIndex == -1)
	{
		setInnerHTML(fgFadeScroller, fgFadeBefore + fgFadeContent[0] + fgFadeAfter);
		fgFadeIndex = 1;

		// In Mozilla, text jumps around from this when 1 or 0.5, etc...
		if (typeof(fgFadeScroller.style.MozOpacity) != "undefined")
			fgFadeScroller.style.MozOpacity = "0.90";
		else if (typeof(fgFadeScroller.style.opacity) != "undefined")
			fgFadeScroller.style.opacity = "0.90";
		// In Internet Explorer, we have to define this to use it.
		else if (typeof(fgFadeScroller.style.filter) != "undefined")
			fgFadeScroller.style.filter = "alpha(opacity=100)";
	}

	// Are we already done fading in?  If so, fade out.
	if (fgFadePercent >= 510)
		fgFadeSwitch = !fgFadeSwitch;
	// All the way faded out?
	else if (fgFadePercent <= -64)
	{
		fgFadeSwitch = !fgFadeSwitch;

		// Go to the next item, or first if we're out of items.
		setInnerHTML(fgFadeScroller, fgFadeBefore + fgFadeContent[fgFadeIndex++] + fgFadeAfter);
		if (fgFadeIndex >= fgFadeContent.length)
			fgFadeIndex = 0;
	}

	// Increment or decrement the fade percentage.
	if (fgFadeSwitch)
		fgFadePercent -= 255 / fgFadeDelay * 2;
	else
		fgFadePercent += 255 / fgFadeDelay * 2;

	// If it's not outside 0 and 256... (otherwise it's just delay time.)
	if (fgFadePercent < 256 && fgFadePercent > 0)
	{
		// Easier... also faster...
		var tempPercent = fgFadePercent / 255, rounded;

		if (typeof(fgFadeScroller.style.MozOpacity) != "undefined")
		{
			rounded = Math.round(tempPercent * 100) / 100;
			fgFadeScroller.style.MozOpacity = rounded == 1 ? "0.99" : rounded;
		}
		else if (typeof(fgFadeScroller.style.opacity) != "undefined")
		{
			rounded = Math.round(tempPercent * 100) / 100;
			fgFadeScroller.style.opacity = rounded == 1 ? "0.99" : rounded;
		}
		else
		{
			var done = false;
			if (typeof(fgFadeScroller.filters.alpha) != "undefined")
			{
				// Internet Explorer 4 just can't handle "try".
				eval("try\
					{\
						fgFadeScroller.filters.alpha.opacity = Math.round(tempPercent * 100);\
						done = true;\
					}\
					catch (err)\
					{\
					}");
			}

			if (!done)
			{
				// Get the new R, G, and B. (it should be bottom + (range of color * percent)...)
				var r = Math.ceil(fgFadeTo.r + fgFadeRange.r * tempPercent);
				var g = Math.ceil(fgFadeTo.g + fgFadeRange.g * tempPercent);
				var b = Math.ceil(fgFadeTo.b + fgFadeRange.b * tempPercent);

				// Set the color in the style, thereby fading it.
				fgFadeScroller.style.color = 'rgb(' + r + ', ' + g + ', ' + b + ')';
			}
		}
	}

	// Keep going.
	window.setTimeout('fgFader();', 20);
}