rem: this.finishOn     = this.startOn + (this.options.duration*1000); 
add: this.finishOn     = this.startOn+(this.options.duration*1000); this.fromToDelta  = this.options.to-this.options.from; this.totalTime    = this.finishOn-this.startOn; this.totalFrames  = this.options.fps*this.options.duration;  eval('this.render = function(pos){ '+ 'if (this.state=="idle"){this.state="running";'+ codeForEvent(this.options,'beforeSetup')+ (this.setup ? 'this.setup();':'')+ codeForEvent(this.options,'afterSetup')+ '};if (this.state=="running"){'+ 'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+ 'this.position=pos;'+ codeForEvent(this.options,'beforeUpdate')+ (this.update ? 'this.update(pos);':'')+ codeForEvent(this.options,'afterUpdate')+ '}}');  
context:   start: function(options) {    this.options      = Object.extend(Object.extend({},Effect.DefaultOptions), options || {});    this.currentFrame = 0;    this.state        = 'idle';    this.startOn      = this.options.delay*1000;    this.finishOn     = this.startOn + (this.options.duration*1000);    this.event('beforeStart');    if(!this.options.sync)      Effect.Queues.get(typeof this.options.queue == 'string' ?         'global' : this.options.queue.scope).add(this);  },
meta: 9100	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/9100/2d4247a14ff4ce25ad80cbc65b787dfde7ddb16e/effects.js/buggy/typo3/contrib/scriptaculous/effects.js