FadeObjects = new Object();
FadeTimers = new Object();

function Fade(object, destOp, rate, delta){
	if (!document.all) return;
	
	if (object != "[object]"){
    setTimeout("Fade("+object+","+destOp+","+rate+","+delta+")",0);
    return;
	}
	
	clearTimeout(FadeTimers[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){
		FadeObjects[object.sourceIndex]=object;
		FadeTimers[object.sourceIndex] = setTimeout("Fade(FadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
	}
}
