rem: this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn  += effect.finishOn; e.finishOn += effect.finishOn; }); 
add: for(var i = 0; i < this.effects.length; i++) if(this.effects[i].state == 'idle') { this.effects[i].startOn  += effect.finishOn; this.effects[i].finishOn += effect.finishOn; } 
context:   add: function(effect) {    var timestamp = new Date().getTime();        switch(effect.options.queue) {      case 'front':        // move unstarted effects after this effect          this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {            e.startOn  += effect.finishOn;            e.finishOn += effect.finishOn;          });        break;      case 'end':        // start effect after last queued effect has finished        timestamp = this.effects.pluck('finishOn').max() || timestamp;        break;    }        effect.startOn  += timestamp;    effect.finishOn += timestamp;    this.effects.push(effect);    if(!this.interval)       this.interval = setInterval(this.loop.bind(this), 40);  },
meta: 3991	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3991/57687341792749db94b850962ee7ed7f18e1087d/effects.js/buggy/manager/media/script/scriptaculous/effects.js