var eGallery=new Class({options:{loadingMask:"#000",loadingOpacity:0.6,loadingImage:"loading.gif",fadeSpeed:250,animationSpeed:16,controls:".egallery-controls",animate:false,slideshow:"true",arrows:false,size:{x:"auto",y:"auto"}},initialize:function(a,b){this.setOptions(b);this.container=new Element("div",{"class":"egallery-container"});this.image=new Element("img",{src:""});this.images=new Array();this.effect=new Fx.Tween(this.image,{duration:this.options.fadeSpeed,transition:Fx.Transitions.Quad.easeOut});this.container.adopt(this.image);this.container.injectBefore(a);this.loadAllImages(a.getChildren());this.createControls();this.setImage(this.images[0],false)},createControls:function(){var d=this.container.getParent().getParent().getParent();if(!$defined(d.getElement(this.options.controls))){this.controls=new Element("div",{"class":this.options.controls});this.controls.injectInside(this.container)}else{this.controls=d.getElement(this.options.controls)}if(this.options.controls.arrows){var b=new Element("a",{events:{click:this.previous.bind(this)},"class":"egallery-controls previous",href:"javascript:void(0);"}).injectInside(this.controls)}this.dots=new Array();for(var c=0;c<this.images.length;c++){this.dots[c]=new Element("a",{"class":"egallery-controls dot",href:"javascript:void(0);"});this.dots[c].src=this.images[c].src;this.dots[c].addEvent("click",function(g,f){this.setImage(f.src)}.bind(this,this.dots[c]));this.dots[c].injectInside(this.controls)}if(this.options.controls.arrows){var a=new Element("a",{events:{click:this.next.bind(this)},"class":"egallery-controls next",href:"javascript:void(0);"}).injectInside(this.controls)}},loadAllImages:function(a){a.each(function(b){this.loadImage(b)},this)},loadImage:function(a){this.images.include(a);a.setStyle("display","none")},setDot:function(a){this.dots.each(function(b){b.removeClass("current");if(b.src==a){b.addClass("current")}})},getImageFromSrc:function(b){for(var a=0;a<this.images.length;a++){if(this.images[a].src==b){return this.images[a]}}return this.images[0]},setImage:function(a,b){b=$defined(b)?b:true;if(typeof a=="string"){a=this.getImageFromSrc(a)}if($defined(this.current)&&this.current.src==a.src){return}this.current=a;this.setDot(a.src);if(b){this.effect.start(0).chain(function(){this.image.setProperty("src",a.src);if(this.options.animate){this.setDimensions(a);this.animate()}this.effect.start(1)}.bind(this))}else{this.image.setProperty("src",a.src);if(this.options.animate){this.setDimensions(a);this.animate()}}},setDimensions:function(c){var b=c.getSize();var a=this.getContainerSize();if(b.size.x<b.size.y){this.image.setStyle("width",a.size.x+"px")}else{this.image.setStyle("height",a.size.y+"px")}},animate:function(){var d=this.image.getSize();if($defined(this.animateTop)){this.animateTop.stop();this.image.setStyle("margin-top","0")}if($defined(this.animateLeft)){this.animateLeft.stop();this.image.setStyle("margin-left","0")}if(d.size.x<d.size.y){var b=this.getContainerSize();var a=d.size.y-b.size.y;if(a<=0){return}var c=this.options.animationSpeed*a;this.animateTop=new Fx.Style(this.image,"margin-top",{duration:c}).start(-1*a)}else{var b=this.getContainerSize();var a=d.size.x-b.size.x;if(a<=0){return}var c=this.options.animationSpeed*a;this.animateLeft=new Fx.Style(this.image,"margin-left",{duration:c}).start(-1*a)}},getContainerSize:function(){var a=this.container.getSize();var b=this.container.getParent().getParent().getParent();a.size.y=b.getSize().size.y;a.size.y-=b.getStyle("padding-top")?parseInt(b.getStyle("padding-top")):0;a.size.y-=b.getStyle("padding-bottom")?parseInt(b.getStyle("padding-bottom")):0;return a},previous:function(){this.setImage(this.prevImage(this.current))},next:function(){this.setImage(this.nextImage(this.current))},prevImage:function(a){return($(a)==$(a).getParent().getFirst())?$(a).getParent().getLast():$(a).getPrevious()},nextImage:function(a){return($(a)==$(a).getParent().getLast())?$(a).getParent().getFirst():$(a).getNext()}});eGallery.implement(new Options);


