nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta)
{
    if (destOp == 100)  
    {
        if (!document.all) return;       
        if (navigator.appName == "Microsoft Internet Explorer") document.all[object].filters.alpha.opacity=100;
        document.all[object].style.visibility="visible";
    }
    else
    { 
        if (navigator.appName == "Microsoft Internet Explorer")
        {  
            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]); 
            
            if (object.filters.alpha.opacity == destOp+10)
            {    
                object.style.visibility="hidden";  
                object.filters.alpha.opacity=100;
                return;
            }  
            
            diff = destOp-object.filters.alpha.opacity;
            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);
            } 
        }
        else document.all[object].style.visibility="hidden";
    }
}

