xFadeObjects = new Object();
xFadeTimers = new Object();

function xFade(object, destOp, rate, delta){
	if (object != "[object]"){  
		setTimeout("xFade("+object+","+destOp+","+rate+","+delta+")", 1);
		return;
	}

	if (xFadeTimers) clearTimeout(xFadeTimers[object.sourceIndex]);

	diff = destOp-object.filters.alpha.opacity;
	direction = 1;
	if (object.filters.alpha.opacity > destOp){
		direction = -1;
	}
	delta=Math.min(direction*diff,delta);
	object.filters.alpha.opacity+=direction*delta;

	if (object.filters.alpha.opacity != destOp){
		xFadeObjects[object.sourceIndex]=object;
		xFadeTimers[object.sourceIndex]=setTimeout("xFade(xFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
	}
}

function xFadeOver(object){
	if (!document.all) return;
	xFade(object,100,50,100)
}

function xFadeOut(object){
	if (!document.all) return;
	xFadeObjects[object.sourceIndex]=object;
	xFadeTimers[object.sourceIndex]=setTimeout("xFade(xFadeObjects["+object.sourceIndex+"],"+60+","+50+","+5+")", 5000);
}
