
var opacityChangeGo = false;

function setOpacity(imageobject, platform, opacity) {
	if (opacity < 0)
	opacity = 0;
	if (opacity > 1)
	opacity = 1;
	platform = parseInt(platform);
	switch (platform) {
		case 1:
			imageobject.style.MozOpacity = (opacity);
			break;
		case 2:
			imageobject.style.filter="alpha(opacity="+(100*opacity)+")";
			break;
		case 0:
		default:
			imageobject.style.opacity = (opacity);
			break;
	}
}

function getOpacity(imageobject, platform) {
	platform = parseInt(platform);
	var opacityONE;
	switch (platform) {
		case 1:
			opacityONE = imageobject.style.MozOpacity;
			return opacityONE;
			break;
		case 2:
			var IEcOpacity = imageobject.style.filter;
			var indexOfStr = IEcOpacity.indexOf("opacity=");
			var FinalValue = IEcOpacity.substring(indexOfStr+8);
			FinalValue = FinalValue.substring(0,(FinalValue.length-1));
			return (FinalValue/100);
			//return (imageobject.filters.alpha.opacity)/100;
			break;
		case 0:
		default:
			opacityONE = imageobject.style.opacity
			return opacityONE;
			break;
	}

}

function findPlatform(imageobject) {
	var platform;
	if (imageobject.style.opacity != undefined) { // Good browser, WebKit or Opera.
		platform = 0;
	} else if (navigator.appName.indexOf("Microsoft") !=-1 && parseInt(navigator.appVersion)>=4) { // Internet Explorer
		platform = 2;
	} else if (imageobject.style.MozOpacity.toString() != undefined) { // Firefox
		platform = 1;
	} // else { nothing, and you fail! };
	return platform;
}

// A good step count is about 20 per second (steps = 20 * delay)
// Opacity is 0-1
function changeOpacity(imageobject, opacity, delay, steps){
	opacityChangeGo = true;
	//console.log("Starting Opacity Change...\nChanging to: " + opacity*100 );
	GlobalObjectSlot = imageobject;
	var platform = findPlatform(imageobject);
	var finish = steps;
	var time = delay;
	var startOpacity = getOpacity(imageobject,platform);
	var stepsize = (startOpacity-opacity)/finish;
	
	theInterval = setInterval("calcNewOpacity(GlobalObjectSlot,'" + platform + "', " + stepsize + ");",((time)/finish));
	setTimeout('clearInterval(theInterval);opacityChangeGo=false;',(250+time)); // Time + 1/4 second to stop all fading
}

function calcNewOpacity(imageobject,platform,stepsize) {
	var newopacity = getOpacity(imageobject,platform) - stepsize;
	setOpacity(imageobject,platform,newopacity);

}