/* DynAPI Distribution Fader Animation Extension The DynAPI Distribution is distributed under the terms of the GNU LGPL license. requires: DynLayer */ Fader = {}; // used by dynapi.library p = DynLayer.prototype; p._fadeMode = ''; p.fadeIn = function(inc,ms){ this._opacity=0; this._fadeMode='in'; this.fadeTo(100,(inc||4),ms); }; p.fadeOut = function(inc,ms){ this._opacity=100; this._fadeMode='out'; this.fadeTo(0,inc||4,ms); }; // Fades an object to "opacity" by "inc" increments in every "ms" millisenconds p.fadeTo = function(opacity,inc,ms){ if(this._opacity==null) this._opacity=100; inc=(inc)? Math.abs(inc):5; this._fadeMs=(ms)? ms:50; if (this._opacity>opacity) inc*=-1; this._fadeInc=inc; this._fadeToOpacity = opacity; this._fadeTimeout=window.setTimeout(this+'._fade()',this._fadeMs); }; p._fade = function(){ var ua=dynapi.ua; var fm=this._fadeMode; var inc = this._fadeInc; var opac = this._opacity; var fopac = this._fadeToOpacity; opac+=inc; if ((inc<0 && opac<=fopac)|| (inc>0 && opac>=fopac)) opac=fopac; this._opacity=opac; if(!ua.def) this.setVisible((opac>0)? true:false); else if(ua.dom && this.css){ if(opac>1 && this.visible==false) this.setVisible(true); if(ua.ie) this.css.filter='alpha(opacity=' + opac + ')'; else this.css.MozOpacity = parseInt(opac)/100; } if(opac!=fopac) this._fadeTimeout=window.setTimeout(this+'._fade()',this._fadeMs); else { this._fadeMode=''; window.clearTimeout(this._fadeTimeout); this.invokeEvent('fade'+fm); } }; p.getOpacity = function(){ if (this._opacity ||(this._opacity == 0)) return this._opacity; else return this._opacity=100; }; p.setOpacity = function(n){ var ua=dynapi.ua; if(n>100) n=100; else if(n<0)n=0; this._opacity = n; this.fadeTo(n); };