// Author of this script Cabel Sasser, (C) 2006 Panic Inc (www.panic.com)

var fadeActive = new Array();
var fadeQueue	= new Array();
var fadeTimer	= new Array();
var fadeClose	= new Array();

function fadeElementSetup(theID, fdStart, fdEnd, fdSteps, fdClose) {
	if (fadeActive[theID] == true) {
	fadeQueue[theID] = new Array(theID, fdStart, fdEnd, fdSteps);
	} else {
	fadeSteps = fdSteps;
	fadeCurrent = 0;
	fadeAmount = (fdStart - fdEnd) / fadeSteps;
	fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 40);
	fadeActive[theID] = true;
	if (fdClose == 1) {
		fadeClose[theID] = true;
	} else {
		fadeClose[theID] = false;
	}
	}
}

function fadeElement(theID, fadeCurrent, fadeAmount, fadeSteps) {
	fadeCurrent++;
	if (fadeAmount < 0) {
	setOpacity(Math.abs(fadeCurrent * fadeAmount), theID);
	} else {
	setOpacity(100 - (fadeCurrent * fadeAmount), theID);
	}
	if (fadeCurrent == fadeSteps) {
	clearInterval(fadeTimer[theID]);
	fadeActive[theID] = false;
	
	if (fadeClose[theID] == true) {
		document.getElementById(theID).style.visibility = "hidden";
	}
	
	if (fadeQueue[theID] && fadeQueue[theID] != false) {
		fadeElementSetup(fadeQueue[theID][0], fadeQueue[theID][1], fadeQueue[theID][2], fadeQueue[theID][3]);
		fadeQueue[theID] = false;
	}
	
	} else {
	clearInterval(fadeTimer[theID]);
	fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 40);
	}
}

function setOpacity(opacity, theID) {

	var object = document.getElementById(theID).style;

	if (navigator.userAgent.indexOf("Firefox") != -1) {
	if (opacity == 100) { opacity = 99.999; } // This is majorly retarded
	}

	object.filter = "alpha(opacity=" + opacity + ")";
	object.KhtmlOpacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.opacity = (opacity / 100);
}
