constCol = 65793;

function change(id, destOp, rate, delta, textObject, destBri){
    if ((id != "[id]")&&(!document.all)){  //do this so I can take a string too
      setTimeout("change("+id+","+destOp+","+rate+","+delta+","+textObject+","+destBri+")",0);
      return;
    }
object = findObj(id);	
textToChange = findObj(textObject);
textToChange.style.color = destBri;
nereidFade(object, destOp, rate, delta);
}
	
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)
 * textObject - text object id
 * destBri    - destination brightness level (00 - 255)
 */

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);
    }
}

function findObj(theObj,theDoc)
{
  var foundObj;
  if(!theDoc) theDoc = document;
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  return foundObj;
}