var Floom=new Class({Implements:[Events,Options],options:{prefix:"floom_",amount:24,animation:70,interval:8000,axis:"vertical",progressbar:true,captions:true,captionsFxOut:$empty,captionsFxIn:$empty,slidesBase:"",sliceFxIn:$empty,onSlideChange:function(){},onPreload:function(){}},initialize:function(c,b,a){this.setOptions(a);c=$(c);this.slides=this.driver(b);this.wrapper={el:c,width:$pick(parseInt(c.getStyles("width")["width"]),c.getSize().x),height:$pick(parseInt(c.getStyles("height")["height"]),c.getSize().y)};this.slices={els:[],width:(this.options.axis=="vertical"?this.wrapper.width/this.options.amount:this.wrapper.width).toInt(),height:(this.options.axis=="vertical"?this.wrapper.height:this.wrapper.height/this.options.amount).toInt()};this.current={slide:-1,overlay:0,counter:0};this.preloadImgs=[];this.createStructure()},driver:function(a){if($type(a[0]).contains("element")){this.slidesEl=[];a.each(function(b){this.slidesEl.push({image:b.get("src"),caption:b.get("title")})},this);a.destroy().empty();a=this.slidesEl}return a},horizontal:function(){return{"background-position":"0 -"+(this.slices.height*this.current.counter)+"px"}},vertical:function(){return{"background-position":"-"+(this.slices.width*this.current.counter)+"px 0"}},createProgressbar:function(){this.progressbar=new Element("div",{"class":this.options.prefix+"progressbar",morph:{duration:this.options.interval-(this.options.animation*this.options.amount),transition:"linear"}});this.progressbar.inject(this.wrapper.el)},createCaptions:function(){this.captions=new Element("div",{"class":this.options.prefix+"caption",html:"caption",styles:{opacity:0}});this.captions.inject(this.wrapper.el)},createStructure:function(){this.container=new Element("div",{"class":this.options.prefix+"container",styles:{height:this.wrapper.height,width:this.wrapper.width}});this.container.inject(this.wrapper.el);if(this.options.progressbar){this.createProgressbar()}if(this.options.captions){this.createCaptions()}this.preload()},createBlinds:function(a){this.current.counter=a;this.slices.els[a]=new Element("div",{"class":this.options.prefix+"slice "+this.options.prefix+this.options.axis,tween:{duration:this.options.animation*4},styles:$merge({opacity:0,width:this.slices.width,height:this.slices.height,"background-image":"url("+this.options.slidesBase+this.slides[this.current.slide].image+")"},this[this.options.axis]())}).inject(this.container);new Fx.Morph(this.slices.els[a]).start($merge({opacity:1},this.options.sliceFxIn));if(a==this.options.amount-1){this.step.delay(this.options.animation*4,this)}},preload:function(){this.slides.each(function(a){this.preloadImgs.push(this.options.slidesBase+a.image)},this);new Asset.images(this.preloadImgs,{onComplete:this.onPreload.bind(this)})},onPreload:function(){this.animateBlinds().periodical(this.options.interval,this);this.fireEvent("onPreload",this.slides[this.current.slide])},animateBlinds:function(){this.current.slide++;if(this.current.slide==this.slides.length){this.current.slide=0}for(var a=0;a<this.options.amount;a++){this.createBlinds.delay(this.options.animation*a,this,a)}if(this.options.progressbar){this.progressbar.fade("out")}if(this.options.captions){this.captions.morph($merge({opacity:0},this.options.captionsFxOut))}return this.animateBlinds},step:function(){this.container.set("styles",{"background-image":"url("+this.options.slidesBase+this.slides[this.current.slide].image+")"});this.slices.els.each(function(b){b.destroy()});if(this.options.progressbar){var a=this.container.getSize().x-(this.progressbar.getStyles("margin-left")["margin-left"].toInt()*2);this.progressbar.morph({width:[0,a]});this.progressbar.fade("in")}if(this.options.captions){this.captions.set("html",this.slides[this.current.slide].caption);this.captions.morph($merge({opacity:1},this.options.captionsFxIn))}this.fireEvent("onSlideChange",this.slides[this.current.slide])}});Element.implement({floom:function(b,a){return new Floom(this,b,a)}});