if(typeof Widget=="undefined")Widget={};Widget.Fader=Class.create();
Widget.Fader.prototype={initialize:function(a,b,c){this.img=$(a);this.list=b;this.options=Object.extend({id:this.img.id,fadeInDuration:2.5,fadeOutDuration:1.5,displayDuration:2.5,autoSize:false,autoStart:true,attributes:{},dir:"",beforeFade:null,startIndex:0},c||{});this.options.attributes.id=this.options.id;this.index=this.options.startIndex;this.container=$(this.img.parentNode);this.loadedObserver=this.loaded.bind(this);this.fadeInObserver=this.fadeIn.bind(this);this.nextObserver=this.next.bind(this);
this.options.autoStart&&setTimeout(this.start.bind(this),this.options.displayDuration*1000)},start:function(){this.stopped=false;this.next()},stop:function(){this.stopped=true;try{clearTimeout(this.timeout)}catch(a){}try{Effect.Queues.get(this.options.id).each(function(c){c.cancel()})}catch(b){}if(this.oldImg){this.img=this.oldImg;--this.index}Element.setOpacity(this.img,1)},next:function(){this.oldImg=this.img;if(!(this.stopped||this.list.length==0)){++this.index;if(this.index>=this.list.length)this.index=
0;this.img=new Element("img",this.options.attributes);Event.observe(this.img,"load",this.loadedObserver);this.img.src=this.options.dir+this.list[this.index]}},loaded:function(){Event.stopObserving(this.img,"load",this.loadedObserver);typeof this.options.beforeFade=="function"&&this.options.beforeFade(this.oldImg,false);new Effect.Opacity(this.oldImg,{duration:this.options.fadeOutDuration,from:1,to:0,queue:{scope:this.options.id}});this.timeout=setTimeout(this.fadeInObserver,this.options.fadeOutDuration*
1000)},fadeIn:function(){typeof this.options.beforeFade=="function"&&this.options.beforeFade(this.img,true);this.img.id=this.id;Element.setOpacity(this.img,0);this.options.autoSize&&this.resize(this.img);this.container.replaceChild(this.img,this.oldImg);this.oldImg=null;new Effect.Opacity(this.img,{duration:this.options.fadeInDuration,from:0,to:1,queue:{scope:this.options.id}});this.timeout=setTimeout(this.nextObserver,(this.options.fadeInDuration+this.options.displayDuration)*1000)},resize:function(a){var b=
this.container.getDimensions();b.width-=parseInt(this.container.getStyle("padding-left"))+parseInt(this.container.getStyle("padding-right"))+parseInt(this.container.getStyle("border-left-width"))+parseInt(this.container.getStyle("border-right-width"));b.height-=parseInt(this.container.getStyle("padding-top"))+parseInt(this.container.getStyle("padding-bottom"))+parseInt(this.container.getStyle("border-top-width"))+parseInt(this.container.getStyle("border-bottom-width"));var c=b.width/a.width,d=b.height/
a.height,e=a.width*d,f=a.height*c;if(c>d){a.width=e;a.height=b.height}else{a.width=b.width;a.height=f}}};var Fader=Widget.Fader;