function Delegate(){}Delegate.create = function(o,f){var a = new Array();var l = arguments.length;for(var i = 2;i < l;i++)a[i - 2] = arguments[i];return function(){ var aP = [].concat(arguments,a); f.apply(o,aP);};};var Tween;Tween = function(obj,prop,func,begin,finish,duration,suffixe){this.init(obj,prop,func,begin,finish,duration,suffixe);};var t = Tween.prototype;t.obj = new Object();t.prop='';t.func = function(t,b,c,d){return c*t/d + b;};t.begin = 0;t.change = 0;t.prevTime = 0;t.prevPos = 0;t.looping = false;t._duration = 0;t._time = 0;t._pos = 0;t._position = 0;t._startTime = 0;t._finish = 0;t.name = '';t.suffixe = '';t._listeners = new Array();t.setTime = function(t){this.prevTime = this._time;if(t > this.getDuration()){ if(this.looping){ this.rewind(t - this._duration); this.update(); this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});}else{ this._time = this._duration; this.update(); this.stop(); this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});}}else if(t < 0){ this.rewind(); this.update();}else{ this._time = t; this.update();}};t.getTime = function(){return this._time;};t.setDuration = function(d){this._duration =(d == null || d <= 0)? 100000 :d;};t.getDuration = function(){return this._duration;};t.setPosition = function(p){this.prevPos = this._pos;var a = this.suffixe != '' ? this.suffixe :'';this.obj[this.prop] = Math.round(p)+ a;this._pos = p;this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});};t.getPosition = function(t){if(t == undefined)t = this._time;return this.func(t,this.begin,this.change,this._duration);};t.setFinish = function(f){this.change = f - this.begin;};t.geFinish = function(){return this.begin + this.change;};t.init = function(obj,prop,func,begin,finish,duration,suffixe){if(!arguments.length)return;this._listeners = new Array();this.addListener(this);if(suffixe)this.suffixe = suffixe;this.obj = obj;this.prop = prop;this.begin = begin;this._pos = begin;this.setDuration(duration);if(func!=null && func!=''){ this.func = func;}this.setFinish(finish);};t.start = function(){this.rewind();this.startEnterFrame();this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});};t.rewind = function(t){this.stop();this._time =(t == undefined)? 0 :t;this.fixTime();this.update();};t.fforward = function(){this._time = this._duration;this.fixTime();this.update();};t.update = function(){this.setPosition(this.getPosition(this._time));};t.startEnterFrame = function(){this.stopEnterFrame();this.isPlaying = true;this.onEnterFrame();};t.onEnterFrame = function(){if(this.isPlaying){ this.nextFrame(); setTimeout(Delegate.create(this,this.onEnterFrame),0);}};t.nextFrame = function(){this.setTime((this.getTimer()- this._startTime)/ 1000);};t.stop = function(){this.stopEnterFrame();this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});};t.stopEnterFrame = function(){this.isPlaying = false;};t.continueTo = function(finish,duration){this.begin = this._pos;this.setFinish(finish);if(this._duration != undefined) this.setDuration(duration); this.start();};t.resume = function(){this.fixTime();this.startEnterFrame();this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});};t.yoyo = function(){this.continueTo(this.begin,this._time);};t.addListener = function(o){this.removeListener(o);return this._listeners.push(o);};t.removeListener = function(o){var a = this._listeners; var i = a.length;while(i--){ if(a[i] == o){ a.splice(i,1); return true;}}return false;};t.broadcastMessage = function(){var arr = new Array();for(var i = 0;i < arguments.length;i++){ arr.push(arguments[i])}var e = arr.shift();var a = this._listeners;var l = a.length;for(var i=0;i<l;i++){ if(a[i][e]) a[i][e].apply(a[i],arr);}};t.fixTime = function(){this._startTime = this.getTimer()- this._time * 1000;};t.getTimer = function(){return new Date().getTime()- this._time;};Tween.backEaseIn = function(t,b,c,d,a,p){if(s == undefined)var s = 1.70158;return c*(t/=d)*t*((s+1)*t - s)+ b;};Tween.backEaseOut = function(t,b,c,d,a,p){if(s == undefined)var s = 1.70158;return c*((t=t/d-1)*t*((s+1)*t + s)+ 1)+ b;};Tween.backEaseInOut = function(t,b,c,d,a,p){if(s == undefined)var s = 1.70158; if((t/=d/2)< 1)return c/2*(t*t*(((s*=(1.525))+1)*t - s))+ b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s)+ 2)+ b;};Tween.elasticEaseIn = function(t,b,c,d,a,p){ if(t==0)return b;  if((t/=d)==1)return b+c;  if(!p)p=d*.3; if(!a || a < Math.abs(c)){ a=c;var s=p/4;} else   var s = p/(2*Math.PI)* Math.asin(c/a);  return -(a*Math.pow(2,10*(t-=1))* Math.sin((t*d-s)*(2*Math.PI)/p))+ b;};Tween.elasticEaseOut = function(t,b,c,d,a,p){ if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3; if(!a || a < Math.abs(c)){a=c;var s=p/4;} else var s = p/(2*Math.PI)* Math.asin(c/a); return(a*Math.pow(2,-10*t)* Math.sin((t*d-s)*(2*Math.PI)/p)+ c + b);};Tween.elasticEaseInOut = function(t,b,c,d,a,p){if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(!a || a < Math.abs(c)){a=c;var s=p/4;}else var s = p/(2*Math.PI)* Math.asin(c/a);if(t < 1)return -.5*(a*Math.pow(2,10*(t-=1))* Math.sin((t*d-s)*(2*Math.PI)/p))+ b;return a*Math.pow(2,-10*(t-=1))* Math.sin((t*d-s)*(2*Math.PI)/p)*.5 + c + b;};Tween.bounceEaseOut = function(t,b,c,d){if((t/=d)<(1/2.75)){ return c*(7.5625*t*t)+ b;}else if(t <(2/2.75)){ return c*(7.5625*(t-=(1.5/2.75))*t + .75)+ b;}else if(t <(2.5/2.75)){ return c*(7.5625*(t-=(2.25/2.75))*t + .9375)+ b;}else{ return c*(7.5625*(t-=(2.625/2.75))*t + .984375)+ b;}};Tween.bounceEaseIn = function(t,b,c,d){return c - Tween.bounceEaseOut(d-t,0,c,d)+ b;};Tween.bounceEaseInOut = function(t,b,c,d){if(t < d/2)return Tween.bounceEaseIn(t*2,0,c,d)* .5 + b;else return Tween.bounceEaseOut(t*2-d,0,c,d)* .5 + c*.5 + b;};Tween.strongEaseInOut = function(t,b,c,d){return c*(t/=d)*t*t*t*t + b;};Tween.regularEaseIn = function(t,b,c,d){return c*(t/=d)*t + b;};Tween.regularEaseOut = function(t,b,c,d){return -c *(t/=d)*(t-2)+ b;};Tween.regularEaseInOut = function(t,b,c,d){if((t/=d/2)< 1)return c/2*t*t + b;return -c/2 *((--t)*(t-2)- 1)+ b;};Tween.strongEaseIn = function(t,b,c,d){return c*(t/=d)*t*t*t*t + b;};Tween.strongEaseOut = function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t + 1)+ b;};Tween.strongEaseInOut = function(t,b,c,d){if((t/=d/2)< 1)return c/2*t*t*t*t*t + b;return c/2*((t-=2)*t*t*t*t + 2)+ b;};
