nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta) {
	if (!document.all)
	return
	if (object != "[object]") {  //do this so I can take a string too
	        setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
	        return;
	}

	clearTimeout(nereidFadeTimers[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) {
	    nereidFadeObjects[object.sourceIndex] = object;
	    nereidFadeTimers[object.sourceIndex] = setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
	}
}
