a:55:{s:9:"#provides";s:4:"dojo";s:9:"#resource";s:11:"_base/fx.js";s:9:"#requires";a:5:{i:0;a:2:{i:0;s:6:"common";i:1;s:16:"dojo._base.Color";}i:1;a:2:{i:0;s:6:"common";i:1;s:18:"dojo._base.connect";}i:2;a:2:{i:0;s:6:"common";i:1;s:18:"dojo._base.declare";}i:3;a:2:{i:0;s:6:"common";i:1;s:15:"dojo._base.lang";}i:4;a:2:{i:0;s:6:"common";i:1;s:15:"dojo._base.html";}}s:15:"dojo.__AnimArgs";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:15:"dojo.__FadeArgs";}s:4:"call";a:1:{i:0;s:15:"dojo.__FadeArgs";}}s:7:"private";b:1;s:9:"classlike";b:1;s:7:"summary";s:0:"";}s:26:"dojo.__AnimArgs.properties";a:4:{s:9:"prototype";s:15:"dojo.__AnimArgs";s:4:"type";s:6:"Object";s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:15:"dojo._Animation";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"args";a:1:{s:4:"type";s:6:"Object";}}s:6:"source";s:152:" _mixin(this, args); if(d.isArray(this.curve)){ /* curve: Array pId: a */ this.curve = new d._Line(this.curve[0], this.curve[1]); }";s:9:"classlike";b:1;s:7:"summary";s:0:"";}s:24:"dojo._Animation.duration";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:7:"Integer";s:7:"summary";s:54:"The time in milliseonds the animation will take to run";}s:21:"dojo._Animation.curve";a:4:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:17:"dojo._Line||Array";s:7:"summary";s:98:"A two element array of start and end values, or a dojo._Line instance to be used in the Animation.";s:8:"instance";s:15:"dojo._Animation";}s:22:"dojo._Animation.easing";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:7:"summary";s:91:"A Function to adjust the acceleration (or deceleration) of the progress across a dojo._Line";}s:22:"dojo._Animation.repeat";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:7:"Integer";s:7:"summary";s:41:"The number of times to loop the animation";}s:20:"dojo._Animation.rate";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:7:"Integer";s:7:"summary";s:102:"the time in milliseconds to wait before advancing to next frame (used as a fps timer: rate/1000 = fps)";}s:21:"dojo._Animation.delay";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:7:"Integer";s:7:"summary";s:96:"The time in milliseconds to wait before starting animation after it has been .play()'ed events";}s:27:"dojo._Animation.beforeBegin";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:75:"Synthetic event fired before a dojo._Animation begins playing (synchronous)";}s:23:"dojo._Animation.onBegin";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:67:"Synthetic event fired as a dojo._Animation begins playing (useful?)";}s:25:"dojo._Animation.onAnimate";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:59:"Synthetic event fired at each interval of a dojo._Animation";}s:21:"dojo._Animation.onEnd";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:64:"Synthetic event fired after the final frame of a dojo._Animation";}s:22:"dojo._Animation.onPlay";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:61:"Synthetic event fired any time a dojo._Animation is play()'ed";}s:23:"dojo._Animation.onPause";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:54:"Synthetic event fired when a dojo._Animation is paused";}s:22:"dojo._Animation.onStop";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:5:"Event";s:7:"summary";s:55:"Synthetic event fires when a dojo._Animation is stopped";}s:24:"dojo._Animation._percent";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:33:"dojo._Animation._startRepeatCount";a:3:{s:9:"prototype";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:21:"dojo._Animation._fire";a:7:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:3:"evt";a:2:{s:4:"type";s:5:"Event";s:7:"summary";s:18:"The event to fire.";}s:4:"args";a:3:{s:8:"optional";b:1;s:4:"type";s:5:"Array";s:7:"summary";s:35:"The arguments to pass to the event.";}}s:6:"source";s:596:" if(this[evt]){ if(dojo.config.debugAtAllCosts){ this[evt].apply(this, args||[]); }else{ try{ this[evt].apply(this, args||[]); }catch(e){ // squelch and log because we shouldn't allow exceptions in // synthetic event handlers to cause the internal timer to run // amuck, potentially pegging the CPU. I'm not a fan of this // squelch, but hopefully logging will make it clear what's // going on console.error("exception in animation handler for:", evt); console.error(e); } } } return this; // dojo._Animation";s:7:"summary";s:106:"Convenience function. Fire event "evt" and pass it the arguments specified in "args".";s:7:"returns";s:15:"dojo._Animation";s:7:"private";b:1;}s:20:"dojo._Animation.play";a:6:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"delay";a:3:{s:8:"optional";b:1;s:4:"type";s:3:"int";s:7:"summary";s:47:"How many milliseconds to delay before starting.";}s:9:"gotoStart";a:3:{s:8:"optional";b:1;s:4:"type";s:7:"Boolean";s:7:"summary";s:97:"If true, starts the animation from the beginning; otherwise, starts it from its current position.";}}s:6:"source";s:470:" var _t = this; if(_t._delayTimer){ _t._clearTimer(); } if(gotoStart){ _t._stopTimer(); _t._active = _t._paused = false; _t._percent = 0; }else if(_t._active && !_t._paused){ return _t; // dojo._Animation } _t._fire("beforeBegin"); var de = delay || _t.delay, _p = dojo.hitch(_t, "_play", gotoStart); if(de > 0){ _t._delayTimer = setTimeout(_p, de); return _t; // dojo._Animation } _p(); return _t;";s:7:"summary";s:20:"Start the animation.";s:7:"returns";s:15:"dojo._Animation";}s:21:"dojo._Animation._play";a:7:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:9:"gotoStart";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:540:" var _t = this; if(_t._delayTimer){ _t._clearTimer(); } _t._startTime = new Date().valueOf(); if(_t._paused){ _t._startTime -= _t.duration * _t._percent; } _t._endTime = _t._startTime + _t.duration; _t._active = true; _t._paused = false; var value = _t.curve.getValue(_t._percent); if(!_t._percent){ if(!_t._startRepeatCount){ _t._startRepeatCount = _t.repeat; } _t._fire("onBegin", [value]); } _t._fire("onPlay", [value]); _t._cycle(); return _t; // dojo._Animation";s:7:"returns";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:21:"dojo._Animation.pause";a:5:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:6:"source";s:246:" var _t = this; if(_t._delayTimer){ _t._clearTimer(); } _t._stopTimer(); if(!_t._active){ return _t; /*dojo._Animation*/ } _t._paused = true; _t._fire("onPause", [_t.curve.getValue(_t._percent)]); return _t; // dojo._Animation";s:7:"summary";s:27:"Pauses a running animation.";s:7:"returns";s:15:"dojo._Animation";}s:27:"dojo._Animation.gotoPercent";a:6:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"percent";a:2:{s:4:"type";s:7:"Decimal";s:7:"summary";s:69:"A percentage in decimal notation (between and including 0.0 and 1.0).";}s:7:"andPlay";a:3:{s:8:"optional";b:1;s:4:"type";s:7:"Boolean";s:7:"summary";s:55:"If true, play the animation after setting the progress.";}}s:6:"source";s:160:" var _t = this; _t._stopTimer(); _t._active = _t._paused = true; _t._percent = percent; if(andPlay){ _t.play(); } return _t; // dojo._Animation";s:7:"summary";s:35:"Sets the progress of the animation.";s:7:"returns";s:15:"dojo._Animation";}s:20:"dojo._Animation.stop";a:6:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"gotoEnd";a:3:{s:8:"optional";b:1;s:4:"type";s:7:"boolean";s:7:"summary";s:32:"If true, the animation will end.";}}s:6:"source";s:302:" var _t = this; if(_t._delayTimer){ _t._clearTimer(); } if(!_t._timer){ return _t; /* dojo._Animation */ } _t._stopTimer(); if(gotoEnd){ _t._percent = 1; } _t._fire("onStop", [_t.curve.getValue(_t._percent)]); _t._active = _t._paused = false; return _t; // dojo._Animation";s:7:"summary";s:26:"Stops a running animation.";s:7:"returns";s:15:"dojo._Animation";}s:22:"dojo._Animation.status";a:5:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:6:"source";s:114:" if(this._active){ return this._paused ? "paused" : "playing"; // String } return "stopped"; // String";s:7:"summary";s:138:"Returns a string token representation of the status of the animation, one of: "paused", "playing", "stopped"";s:7:"returns";s:6:"String";}s:22:"dojo._Animation._cycle";a:6:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:6:"source";s:811:" var _t = this; if(_t._active){ var curr = new Date().valueOf(); var step = (curr - _t._startTime) / (_t._endTime - _t._startTime); if(step >= 1){ step = 1; } _t._percent = step; // Perform easing if(_t.easing){ step = _t.easing(step); } _t._fire("onAnimate", [_t.curve.getValue(step)]); if(_t._percent < 1){ _t._startTimer(); }else{ _t._active = false; if(_t.repeat > 0){ _t.repeat--; _t.play(null, true); }else if(_t.repeat == -1){ _t.play(null, true); }else{ if(_t._startRepeatCount){ _t.repeat = _t._startRepeatCount; _t._startRepeatCount = 0; } } _t._percent = 0; _t._fire("onEnd"); _t._stopTimer(); } } return _t; // dojo._Animation";s:7:"returns";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:27:"dojo._Animation._clearTimer";a:5:{s:9:"prototype";s:15:"dojo._Animation";s:4:"type";s:8:"Function";s:6:"source";s:62:" clearTimeout(this._delayTimer); delete this._delayTimer;";s:7:"summary";s:26:"Clear the play delay timer";s:7:"private";b:1;}s:16:"_globalTimerList";a:2:{s:7:"private";b:1;s:7:"summary";s:0:"";}s:5:"timer";a:1:{s:7:"summary";s:0:"";}s:6:"runner";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:27:"PropLine.prototype.getValue";a:1:{s:7:"summary";s:0:"";}s:10:"dojo._Line";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"start";a:2:{s:4:"type";s:3:"int";s:7:"summary";s:25:"Beginning value for range";}s:3:"end";a:2:{s:4:"type";s:3:"int";s:7:"summary";s:22:"Ending value for range";}}s:6:"source";s:39:" this.start = start; this.end = end;";s:7:"summary";s:83:"dojo._Line is the object used to generate values from a start value to an end value";s:9:"classlike";b:1;}s:16:"dojo._Line.start";a:3:{s:8:"instance";s:10:"dojo._Line";s:4:"type";s:3:"int";s:7:"summary";s:25:"Beginning value for range";}s:14:"dojo._Line.end";a:3:{s:8:"instance";s:10:"dojo._Line";s:4:"type";s:3:"int";s:7:"summary";s:22:"Ending value for range";}s:19:"dojo._Line.getValue";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"n";a:2:{s:4:"type";s:5:"float";s:7:"summary";s:54:"a floating point number greater than 0 and less than 1";}}s:6:"source";s:63:" return ((this.end - this.start) * n) + this.start; // Decimal";s:7:"summary";s:29:"Returns the point on the line";s:7:"returns";s:7:"Decimal";s:9:"prototype";s:10:"dojo._Line";}s:27:"dojo._Animation._startTimer";a:6:{s:4:"type";s:8:"Function";s:6:"source";s:8362:"dojo.provide("dojo._base.fx"); dojo.require("dojo._base.Color"); dojo.require("dojo._base.connect"); dojo.require("dojo._base.declare"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.html"); /* Animation losely package based on Dan Pupius' work, contributed under CLA: http://pupius.co.uk/js/Toolkit.Drawing.js */ //>>excludeStart("webkitMobile", kwArgs.webkitMobile); (function(){ var d = dojo; //>>excludeEnd("webkitMobile"); var _mixin = d.mixin; dojo._Line = function(/*int*/ start, /*int*/ end){ // summary: // dojo._Line is the object used to generate values from a start value // to an end value // start: int // Beginning value for range // end: int // Ending value for range this.start = start; this.end = end; } dojo._Line.prototype.getValue = function(/*float*/ n){ // summary: Returns the point on the line // n: a floating point number greater than 0 and less than 1 return ((this.end - this.start) * n) + this.start; // Decimal } d.declare("dojo._Animation", null, { // summary // A generic animation class that fires callbacks into its handlers // object at various states. Nearly all dojo animation functions // return an instance of this method, usually without calling the // .play() method beforehand. Therefore, you will likely need to // call .play() on instances of dojo._Animation when one is // returned. constructor: function(/*Object*/ args){ _mixin(this, args); if(d.isArray(this.curve)){ /* curve: Array pId: a */ this.curve = new d._Line(this.curve[0], this.curve[1]); } }, // duration: Integer // The time in milliseonds the animation will take to run duration: 350, // curve: dojo._Line||Array // A two element array of start and end values, or a dojo._Line instance to be // used in the Animation. curve: null, // easing: Function // A Function to adjust the acceleration (or deceleration) of the progress // across a dojo._Line easing: null, // repeat: Integer // The number of times to loop the animation repeat: 0, // rate: Integer // the time in milliseconds to wait before advancing to next frame // (used as a fps timer: rate/1000 = fps) rate: 10 /* 100 fps */, // delay: Integer // The time in milliseconds to wait before starting animation after it has been .play()'ed delay: null, // events // // beforeBegin: Event // Synthetic event fired before a dojo._Animation begins playing (synchronous) beforeBegin: null, // onBegin: Event // Synthetic event fired as a dojo._Animation begins playing (useful?) onBegin: null, // onAnimate: Event // Synthetic event fired at each interval of a dojo._Animation onAnimate: null, // onEnd: Event // Synthetic event fired after the final frame of a dojo._Animation onEnd: null, // onPlay: Event // Synthetic event fired any time a dojo._Animation is play()'ed onPlay: null, // onPause: Event // Synthetic event fired when a dojo._Animation is paused onPause: null, // onStop: Event // Synthetic event fires when a dojo._Animation is stopped onStop: null, _percent: 0, _startRepeatCount: 0, _fire: function(/*Event*/ evt, /*Array?*/ args){ // summary: // Convenience function. Fire event "evt" and pass it the // arguments specified in "args". // evt: // The event to fire. // args: // The arguments to pass to the event. if(this[evt]){ if(dojo.config.debugAtAllCosts){ this[evt].apply(this, args||[]); }else{ try{ this[evt].apply(this, args||[]); }catch(e){ // squelch and log because we shouldn't allow exceptions in // synthetic event handlers to cause the internal timer to run // amuck, potentially pegging the CPU. I'm not a fan of this // squelch, but hopefully logging will make it clear what's // going on console.error("exception in animation handler for:", evt); console.error(e); } } } return this; // dojo._Animation }, play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ // summary: // Start the animation. // delay: // How many milliseconds to delay before starting. // gotoStart: // If true, starts the animation from the beginning; otherwise, // starts it from its current position. var _t = this; if(_t._delayTimer){ _t._clearTimer(); } if(gotoStart){ _t._stopTimer(); _t._active = _t._paused = false; _t._percent = 0; }else if(_t._active && !_t._paused){ return _t; // dojo._Animation } _t._fire("beforeBegin"); var de = delay || _t.delay, _p = dojo.hitch(_t, "_play", gotoStart); if(de > 0){ _t._delayTimer = setTimeout(_p, de); return _t; // dojo._Animation } _p(); return _t; }, _play: function(gotoStart){ var _t = this; if(_t._delayTimer){ _t._clearTimer(); } _t._startTime = new Date().valueOf(); if(_t._paused){ _t._startTime -= _t.duration * _t._percent; } _t._endTime = _t._startTime + _t.duration; _t._active = true; _t._paused = false; var value = _t.curve.getValue(_t._percent); if(!_t._percent){ if(!_t._startRepeatCount){ _t._startRepeatCount = _t.repeat; } _t._fire("onBegin", [value]); } _t._fire("onPlay", [value]); _t._cycle(); return _t; // dojo._Animation }, pause: function(){ // summary: Pauses a running animation. var _t = this; if(_t._delayTimer){ _t._clearTimer(); } _t._stopTimer(); if(!_t._active){ return _t; /*dojo._Animation*/ } _t._paused = true; _t._fire("onPause", [_t.curve.getValue(_t._percent)]); return _t; // dojo._Animation }, gotoPercent: function(/*Decimal*/ percent, /*Boolean?*/ andPlay){ // summary: // Sets the progress of the animation. // percent: // A percentage in decimal notation (between and including 0.0 and 1.0). // andPlay: // If true, play the animation after setting the progress. var _t = this; _t._stopTimer(); _t._active = _t._paused = true; _t._percent = percent; if(andPlay){ _t.play(); } return _t; // dojo._Animation }, stop: function(/*boolean?*/ gotoEnd){ // summary: Stops a running animation. // gotoEnd: If true, the animation will end. var _t = this; if(_t._delayTimer){ _t._clearTimer(); } if(!_t._timer){ return _t; /* dojo._Animation */ } _t._stopTimer(); if(gotoEnd){ _t._percent = 1; } _t._fire("onStop", [_t.curve.getValue(_t._percent)]); _t._active = _t._paused = false; return _t; // dojo._Animation }, status: function(){ // summary: Returns a string token representation of the status of // the animation, one of: "paused", "playing", "stopped" if(this._active){ return this._paused ? "paused" : "playing"; // String } return "stopped"; // String }, _cycle: function(){ var _t = this; if(_t._active){ var curr = new Date().valueOf(); var step = (curr - _t._startTime) / (_t._endTime - _t._startTime); if(step >= 1){ step = 1; } _t._percent = step; // Perform easing if(_t.easing){ step = _t.easing(step); } _t._fire("onAnimate", [_t.curve.getValue(step)]); if(_t._percent < 1){ _t._startTimer(); }else{ _t._active = false; if(_t.repeat > 0){ _t.repeat--; _t.play(null, true); }else if(_t.repeat == -1){ _t.play(null, true); }else{ if(_t._startRepeatCount){ _t.repeat = _t._startRepeatCount; _t._startRepeatCount = 0; } } _t._percent = 0; _t._fire("onEnd"); _t._stopTimer(); } } return _t; // dojo._Animation }, _clearTimer: function(){ // summary: Clear the play delay timer clearTimeout(this._delayTimer); delete this._delayTimer; } }); var ctr = 0, _globalTimerList = [], timer = null, runner = { run: function(){ } }; dojo._Animation.prototype._startTimer = function(){ // this._timer = setTimeout(dojo.hitch(this, "_cycle"), this.rate); if(!this._timer){ this._timer = d.connect(runner, "run", this, "_cycle"); ctr++; } if(!timer){ timer = setInterval(d.hitch(runner, "run"), this.rate); }";s:7:"returns";s:30:"Decimal|dojo._Animation|String";s:9:"prototype";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:22:"dojo._Animation._timer";a:3:{s:8:"instance";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:26:"dojo._Animation._stopTimer";a:5:{s:4:"type";s:8:"Function";s:6:"source";s:159:" if(this._timer){ d.disconnect(this._timer); this._timer = null; ctr--; } if(ctr <= 0){ clearInterval(timer); timer = null; ctr = 0; }";s:9:"prototype";s:15:"dojo._Animation";s:7:"private";b:1;s:7:"summary";s:0:"";}s:10:"dojo._fade";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"args";a:1:{s:4:"type";s:6:"Object";}}s:6:"source";s:425:" args.node = d.byId(args.node); var fArgs = _mixin({ properties: {} }, args), props = (fArgs.properties.opacity = {}); props.start = !("start" in fArgs) ? function(){ return +d.style(fArgs.node, "opacity")||0; } : fArgs.start; props.end = fArgs.end; var anim = d.animateProperty(fArgs); d.connect(anim, "beforeBegin", d.partial(_makeFadeable, fArgs.node)); return anim; // dojo._Animation";s:7:"summary";s:161:"Returns an animation that will fade the node defined by args.node from the start to end values passed (args.start args.end) (end is mandatory, start is optional)";s:7:"returns";s:15:"dojo._Animation";s:7:"private";b:1;}s:15:"dojo.__FadeArgs";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"node";a:2:{s:4:"type";s:14:"DOMNode|String";s:7:"summary";s:36:"The node referenced in the animation";}s:8:"duration";a:3:{s:4:"type";s:7:"Integer";s:8:"optional";b:1;s:7:"summary";s:42:"Duration of the animation in milliseconds.";}s:6:"easing";a:3:{s:4:"type";s:8:"Function";s:8:"optional";b:1;s:7:"summary";s:19:"An easing function.";}}s:6:"source";s:71:" this.node = node; this.duration = duration; this.easing = easing;";s:7:"private";b:1;s:9:"classlike";b:1;s:7:"summary";s:0:"";}s:20:"dojo.__FadeArgs.node";a:4:{s:8:"instance";s:15:"dojo.__FadeArgs";s:4:"type";s:14:"DOMNode|String";s:7:"summary";s:36:"The node referenced in the animation";s:14:"private_parent";b:1;}s:24:"dojo.__FadeArgs.duration";a:4:{s:8:"instance";s:15:"dojo.__FadeArgs";s:4:"type";s:8:"Integer?";s:7:"summary";s:42:"Duration of the animation in milliseconds.";s:14:"private_parent";b:1;}s:22:"dojo.__FadeArgs.easing";a:4:{s:8:"instance";s:15:"dojo.__FadeArgs";s:4:"type";s:9:"Function?";s:7:"summary";s:19:"An easing function.";s:14:"private_parent";b:1;}s:11:"dojo.fadeIn";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"args";a:1:{s:4:"type";s:15:"dojo.__FadeArgs";}}s:6:"source";s:62:" return d._fade(_mixin({ end: 1 }, args)); // dojo._Animation";s:7:"summary";s:100:"Returns an animation that will fade node defined in 'args' from its current opacity to fully opaque.";s:7:"returns";s:15:"dojo._Animation";}s:12:"dojo.fadeOut";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"args";a:1:{s:4:"type";s:15:"dojo.__FadeArgs";}}s:6:"source";s:62:" return d._fade(_mixin({ end: 0 }, args)); // dojo._Animation";s:7:"summary";s:105:"Returns an animation that will fade node defined in 'args' from its current opacity to fully transparent.";s:7:"returns";s:15:"dojo._Animation";}s:19:"dojo._defaultEasing";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"n";a:2:{s:8:"optional";b:1;s:4:"type";s:7:"Decimal";}}s:6:"source";s:51:" return 0.5 + ((Math.sin((n + 1.5) * Math.PI))/2);";s:7:"summary";s:50:"The default easing function for dojo._Animation(s)";s:7:"private";b:1;}s:20:"dojo.animateProperty";a:7:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"args";a:1:{s:4:"type";s:15:"dojo.__AnimArgs";}}s:6:"source";s:1667:" args.node = d.byId(args.node); if(!args.easing){ args.easing = d._defaultEasing; } var anim = new d._Animation(args); d.connect(anim, "beforeBegin", anim, function(){ var pm = {}; for(var p in this.properties){ // Make shallow copy of properties into pm because we overwrite // some values below. In particular if start/end are functions // we don't want to overwrite them or the functions won't be // called if the animation is reused. if(p == "width" || p == "height"){ this.node.display = "block"; } var prop = this.properties[p]; prop = pm[p] = _mixin({}, (d.isObject(prop) ? prop: { end: prop })); if(d.isFunction(prop.start)){ prop.start = prop.start(); } if(d.isFunction(prop.end)){ prop.end = prop.end(); } var isColor = (p.toLowerCase().indexOf("color") >= 0); function getStyle(node, p){ // dojo.style(node, "height") can return "auto" or "" on IE; this is more reliable: var v = {height: node.offsetHeight, width: node.offsetWidth}[p]; if(v !== undefined){ return v; } v = d.style(node, p); return (p == "opacity") ? +v : (isColor ? v : parseFloat(v)); } if(!("end" in prop)){ prop.end = getStyle(this.node, p); }else if(!("start" in prop)){ prop.start = getStyle(this.node, p); } if(isColor){ prop.start = new d.Color(prop.start); prop.end = new d.Color(prop.end); }else{ prop.start = (p == "opacity") ? +prop.start : parseFloat(prop.start); } } this.curve = new PropLine(pm); }); d.connect(anim, "onAnimate", d.hitch(d, "style", anim.node)); return anim; // dojo._Animation";s:7:"summary";s:134:"Returns an animation that will transition the properties of node defined in 'args' depending how they are defined in 'args.properties'";s:11:"description";s:187:"dojo.animateProperty is the foundation of most dojo.fx animations. It takes an object of "properties" corresponding to style properties, and animates them in parallel over a set duration.";s:7:"returns";s:15:"dojo._Animation";s:8:"examples";a:4:{i:0;s:362:"A simple animation that changes the width of the specified node. dojo.animateProperty({ node: "nodeId", properties: { width: 400 }, }).play(); Dojo figures out the start value for the width and converts the integer specified for the width to the more expressive but verbose form `{ width: { end: '400', units: 'px' } }` which you can also specify directly";i:1;s:453:"Animate width, height, and padding over 2 seconds... the pedantic way: dojo.animateProperty({ node: node, duration:2000, properties: { width: { start: '200', end: '400', unit:"px" }, height: { start:'200', end: '400', unit:"px" }, paddingTop: { start:'5', end:'50', unit:"px" } } }).play(); Note 'paddingTop' is used over 'padding-top'. Multi-name CSS properties are written using "mixed case", as the hyphen is illegal as an object key.";i:2;s:523:"Plug in a different easing function and register a callback for when the animation ends. Easing functions accept values between zero and one and return a value on that basis. In this case, an exponential-in curve. dojo.animateProperty({ node: "nodeId", // dojo figures out the start value properties: { width: { end: 400 } }, easing: function(n){ return (n==0) ? 0 : Math.pow(2, 10 * (n - 1)); }, onEnd: function(){ // called when the animation finishes } }).play(500); // delay playing half a second";i:3;s:431:"Like all `dojo._Animation`s, animateProperty returns a handle to the Animation instance, which fires the events common to Dojo FX. Use `dojo.connect` to access these events outside of the Animation definiton: var anim = dojo.animateProperty({ node:"someId", properties:{ width:400, height:500 } }); dojo.connect(anim,"onEnd", function(){ console.log("animation ended"); }); // play the animation now: anim.play();";}}s:33:"dojo.animateProperty.node.display";a:2:{s:8:"instance";s:20:"dojo.animateProperty";s:7:"summary";s:0:"";}s:26:"dojo.animateProperty.curve";a:2:{s:8:"instance";s:20:"dojo.animateProperty";s:7:"summary";s:0:"";}s:9:"dojo.anim";a:6:{s:4:"type";s:8:"Function";s:10:"parameters";a:6:{s:4:"node";a:2:{s:4:"type";s:14:"DOMNode|String";s:7:"summary";s:59:"a DOM node or the id of a node to animate CSS properties on";}s:10:"properties";a:1:{s:4:"type";s:6:"Object";}s:8:"duration";a:3:{s:8:"optional";b:1;s:4:"type";s:7:"Integer";s:7:"summary";s:122:"The number of milliseconds over which the animation should run. Defaults to the global animation default duration (350ms).";}s:6:"easing";a:3:{s:8:"optional";b:1;s:4:"type";s:8:"Function";s:7:"summary";s:259:"An easing function over which to calculate acceleration and deceleration of the animation through its duration. A default easing algorithm is provided, but you may plug in any you wish. A large selection of easing algorithms are available in `dojo.fx.easing`.";}s:5:"onEnd";a:3:{s:8:"optional";b:1;s:4:"type";s:8:"Function";s:7:"summary";s:60:"A function to be called when the animation finishes running.";}s:5:"delay";a:3:{s:8:"optional";b:1;s:4:"type";s:7:"Integer";s:7:"summary";s:81:"The number of milliseconds to delay beginning the animation by. The default is 0.";}}s:6:"source";s:184:" return d.animateProperty({ node: node, duration: duration||d._Animation.prototype.duration, properties: properties, easing: easing, onEnd: onEnd }).play(delay||0);";s:7:"summary";s:178:"A simpler interface to `dojo.animateProperty()`, also returns an instance of `dojo._Animation` but begins the animation immediately, unlike nearly every other Dojo animation API.";s:11:"description";s:438:"`dojo.anim` is a simpler (but somewhat less powerful) version of `dojo.animateProperty`. It uses defaults for many basic properties and allows for positional parameters to be used in place of the packed "property bag" which is used for other Dojo animation methods. The `dojo._Animation` object returned from `dojo.anim` will be already playing when it is returned from this function, so calling play() on it again is (usually) a no-op.";s:8:"examples";a:2:{i:0;s:50:"Fade out a node dojo.anim("id", { opacity: 0 });";i:1;s:75:"Fade out a node over a full second dojo.anim("id", { opacity: 0 }, 1000);";}}s:10:"runner.run";a:3:{s:4:"type";s:8:"Function";s:6:"source";s:3:" } ";s:7:"summary";s:0:"";}s:4:"dojo";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}