/* Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dojo._base.fx"]){ dojo._hasResource["dojo._base.fx"]=true; dojo.provide("dojo._base.fx"); dojo.require("dojo._base.Color"); dojo.require("dojo._base.connect"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.html"); (function(){ var d=dojo; var _1=d._mixin; dojo._Line=function(_2,_3){ this.start=_2; this.end=_3; }; dojo._Line.prototype.getValue=function(n){ return ((this.end-this.start)*n)+this.start; }; dojo.Animation=function(_4){ _1(this,_4); if(d.isArray(this.curve)){ this.curve=new d._Line(this.curve[0],this.curve[1]); } }; d._Animation=d.Animation; d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){ var _5=this._percent,_6=this.easing; return _6?_6(_5):_5; },_fire:function(_7,_8){ var a=_8||[]; if(this[_7]){ if(d.config.debugAtAllCosts){ this[_7].apply(this,a); }else{ try{ this[_7].apply(this,a); } catch(e){ console.error("exception in animation handler for:",_7); console.error(e); } } } return this; },play:function(_9,_a){ var _b=this; if(_b._delayTimer){ _b._clearTimer(); } if(_a){ _b._stopTimer(); _b._active=_b._paused=false; _b._percent=0; }else{ if(_b._active&&!_b._paused){ return _b; } } _b._fire("beforeBegin",[_b.node]); var de=_9||_b.delay,_c=dojo.hitch(_b,"_play",_a); if(de>0){ _b._delayTimer=setTimeout(_c,de); return _b; } _c(); return _b; },_play:function(_d){ var _e=this; if(_e._delayTimer){ _e._clearTimer(); } _e._startTime=new Date().valueOf(); if(_e._paused){ _e._startTime-=_e.duration*_e._percent; } _e._active=true; _e._paused=false; var _f=_e.curve.getValue(_e._getStep()); if(!_e._percent){ if(!_e._startRepeatCount){ _e._startRepeatCount=_e.repeat; } _e._fire("onBegin",[_f]); } _e._fire("onPlay",[_f]); _e._cycle(); return _e; },pause:function(){ var _10=this; if(_10._delayTimer){ _10._clearTimer(); } _10._stopTimer(); if(!_10._active){ return _10; } _10._paused=true; _10._fire("onPause",[_10.curve.getValue(_10._getStep())]); return _10; },gotoPercent:function(_11,_12){ var _13=this; _13._stopTimer(); _13._active=_13._paused=true; _13._percent=_11; if(_12){ _13.play(); } return _13; },stop:function(_14){ var _15=this; if(_15._delayTimer){ _15._clearTimer(); } if(!_15._timer){ return _15; } _15._stopTimer(); if(_14){ _15._percent=1; } _15._fire("onStop",[_15.curve.getValue(_15._getStep())]); _15._active=_15._paused=false; return _15; },status:function(){ if(this._active){ return this._paused?"paused":"playing"; } return "stopped"; },_cycle:function(){ var _16=this; if(_16._active){ var _17=new Date().valueOf(); var _18=(_17-_16._startTime)/(_16.duration); if(_18>=1){ _18=1; } _16._percent=_18; if(_16.easing){ _18=_16.easing(_18); } _16._fire("onAnimate",[_16.curve.getValue(_18)]); if(_16._percent<1){ _16._startTimer(); }else{ _16._active=false; if(_16.repeat>0){ _16.repeat--; _16.play(null,true); }else{ if(_16.repeat==-1){ _16.play(null,true); }else{ if(_16._startRepeatCount){ _16.repeat=_16._startRepeatCount; _16._startRepeatCount=0; } } } _16._percent=0; _16._fire("onEnd",[_16.node]); !_16.repeat&&_16._stopTimer(); } } return _16; },_clearTimer:function(){ clearTimeout(this._delayTimer); delete this._delayTimer; }}); var ctr=0,_19=null,_1a={run:function(){ }}; d.extend(d.Animation,{_startTimer:function(){ if(!this._timer){ this._timer=d.connect(_1a,"run",this,"_cycle"); ctr++; } if(!_19){ _19=setInterval(d.hitch(_1a,"run"),this.rate); } },_stopTimer:function(){ if(this._timer){ d.disconnect(this._timer); this._timer=null; ctr--; } if(ctr<=0){ clearInterval(_19); _19=null; ctr=0; } }}); var _1b=d.isIE?function(_1c){ var ns=_1c.style; if(!ns.width.length&&d.style(_1c,"width")=="auto"){ ns.width="auto"; } }:function(){ }; dojo._fade=function(_1d){ _1d.node=d.byId(_1d.node); var _1e=_1({properties:{}},_1d),_1f=(_1e.properties.opacity={}); _1f.start=!("start" in _1e)?function(){ return +d.style(_1e.node,"opacity")||0; }:_1e.start; _1f.end=_1e.end; var _20=d.animateProperty(_1e); d.connect(_20,"beforeBegin",d.partial(_1b,_1e.node)); return _20; }; dojo.fadeIn=function(_21){ return d._fade(_1({end:1},_21)); }; dojo.fadeOut=function(_22){ return d._fade(_1({end:0},_22)); }; dojo._defaultEasing=function(n){ return 0.5+((Math.sin((n+1.5)*Math.PI))/2); }; var _23=function(_24){ this._properties=_24; for(var p in _24){ var _25=_24[p]; if(_25.start instanceof d.Color){ _25.tempColor=new d.Color(); } } }; _23.prototype.getValue=function(r){ var ret={}; for(var p in this._properties){ var _26=this._properties[p],_27=_26.start; if(_27 instanceof d.Color){ ret[p]=d.blendColors(_27,_26.end,r,_26.tempColor).toCss(); }else{ if(!d.isArray(_27)){ ret[p]=((_26.end-_27)*r)+_27+(p!="opacity"?_26.units||"px":0); } } } return ret; }; dojo.animateProperty=function(_28){ var n=_28.node=d.byId(_28.node); if(!_28.easing){ _28.easing=d._defaultEasing; } var _29=new d.Animation(_28); d.connect(_29,"beforeBegin",_29,function(){ var pm={}; for(var p in this.properties){ if(p=="width"||p=="height"){ this.node.display="block"; } var _2a=this.properties[p]; if(d.isFunction(_2a)){ _2a=_2a(n); } _2a=pm[p]=_1({},(d.isObject(_2a)?_2a:{end:_2a})); if(d.isFunction(_2a.start)){ _2a.start=_2a.start(n); } if(d.isFunction(_2a.end)){ _2a.end=_2a.end(n); } var _2b=(p.toLowerCase().indexOf("color")>=0); function _2c(_2d,p){ var v={height:_2d.offsetHeight,width:_2d.offsetWidth}[p]; if(v!==undefined){ return v; } v=d.style(_2d,p); return (p=="opacity")?+v:(_2b?v:parseFloat(v)); }; if(!("end" in _2a)){ _2a.end=_2c(n,p); }else{ if(!("start" in _2a)){ _2a.start=_2c(n,p); } } if(_2b){ _2a.start=new d.Color(_2a.start); _2a.end=new d.Color(_2a.end); }else{ _2a.start=(p=="opacity")?+_2a.start:parseFloat(_2a.start); } } this.curve=new _23(pm); }); d.connect(_29,"onAnimate",d.hitch(d,"style",_29.node)); return _29; }; dojo.anim=function(_2e,_2f,_30,_31,_32,_33){ return d.animateProperty({node:_2e,duration:_30||d.Animation.prototype.duration,properties:_2f,easing:_31,onEnd:_32}).play(_33||0); }; })(); }