nereidFadeObjects = new Object();
nereidFadeTimers = new Object();
 
/* object - image to be faded (actual object, not name);
 * destop - destination transparency level (ie 80, for mostly solid)
 * rate   - time in milliseconds between trasparency changes (best under 100)
 * delta  - amount of change each time (ie 5, for 5% change in transparency)
 * usage: <img src="images/img.gif" style="filter:alpha(opacity=40)" onmouseover="picturefade(this,100,30,10)" onmouseout="picturefade(this,40,50,5)">
 */

function picturefade(object, destOp, rate, delta) {
 if (!document.all)
 return

 if (object != "[object]") {
     setTimeout("picturefade("+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("picturefade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
 }
}