 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);
     }
    }
