﻿function SetOpacity(elem, opacityAsInt) {
	if (opacityAsInt > 100)
		opacityAsInt = 100;
	else if (opacityAsInt < 0)
		opacityAsInt = 0;

	var opacityAsDecimal = opacityAsInt / 100;
	if (opacityAsInt <= 0) {
		elem.style.visibility = "hidden";
		elem.style.opacity = "";
		elem.style.filter = "";
		return;
	}
	elem.style.visibility = "visible";
	elem.style.opacity = (opacityAsDecimal);
	elem.style.filter = "alpha(opacity=" + opacityAsInt + ")";
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps, finishCommand) {
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;

	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps), finishCommand);
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep, finishCommand) {
	SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

	if (stepNum < steps)
		setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum + 1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ", \"" + finishCommand + "\");", timePerStep);
	else
		eval(finishCommand);
}