var slideGallery=new Class({Version:"1.2.3",Implements:[Options],options:{holder:".holder",elementsParent:"ul",elements:"li",nextItem:".next",prevItem:".prev",stop:".stop",start:".start",speed:600,duration:4000,steps:1,current:0,transition:Fx.Transitions.linear,direction:"horizontal",mode:"callback",disableClass:"disable",currentClass:"current",random:false,paging:false,autoplay:false,autoplayOpposite:false,onStart:function(b,c,a){},onPlay:function(b,c,a){}},initialize:function(a,b){this.gallery=a;this.setOptions(b);this.holder=this.gallery.getElement(this.options.holder);this.itemsParent=this.holder.getElement(this.options.elementsParent);this.items=this.itemsParent.getElements(this.options.elements);this.next=this.gallery.getElement(this.options.nextItem);this.prev=this.gallery.getElement(this.options.prevItem);this.stop=this.gallery.getElement(this.options.stop);this.start=this.gallery.getElement(this.options.start);this.current=this.options.current;this.bound={rotate:this.rotate.bind(this)};if(this.options.direction=="horizontal"){this.direction="margin-left";this.size=this.items[0].getWidth();this.visible=Math.round(this.holder.getWidth()/this.size)}else{this.direction="margin-top";this.size=this.items[0].getHeight();this.visible=Math.round(this.holder.getHeight()/this.size)}if(this.next==null){this.next=new Element("a").injectInside(this.gallery)}if(this.prev==null){this.prev=new Element("a").injectInside(this.gallery)}this.next.cl=this.next.className;this.prev.cl=this.prev.className;if(this.visible<this.items.length){if(this.options.random){Array.prototype.shuffle=function(d){var g=this.length,e,f;while(g){e=Math.floor((g--)*Math.random());f=d&&typeof this[g].shuffle!=="undefined"?this[g].shuffle():this[g];this[g]=this[e];this[e]=f}return this};this.items.shuffle(this.items);this.hidden=new Element("div");this.items.each(function(e,d){this.wrap=new Element("div").adopt(e);this.hidden.set("html",this.hidden.get("html"),this.wrap.get("html"))}.bind(this));this.itemsParent.set("html",this.hidden.get("html"));this.items=this.itemsParent.getElements(this.options.elements)}this.options.steps=this.options.steps>this.visible?this.visible:this.options.steps;this.options.duration=this.options.duration<1000?1000:this.options.duration;this.options.speed=this.options.speed>6000?6000:this.options.speed;for(var c=0;c<this.items.length;c++){if(this.items[c].hasClass(this.options.currentClass)){this.current=c}}if(this.options.mode!="circle"){if(this.visible+this.current>=this.items.length){this.margin=(this.items.length-this.visible)*this.size;this.current=this.items.length-this.visible}else{this.margin=this.current*this.size}if(this.options.paging){this.paging=new Element("ul").injectInside(this.gallery).addClass("paging");for(var c=0;c<Math.ceil((this.items.length-this.visible)/this.options.steps)+1;c++){this.paging.innerHTML+='<li><a href="#">'+parseInt(c+1)+"</a></li>"}this.paging=this.paging.getElements("a");this.paging.each(function(e,d){e.addEvent("click",function(){if(d*this.options.steps+this.visible>=this.items.length){this.margin=(this.items.length-this.visible)*this.size;this.current=this.items.length-this.visible}else{this.current=d*this.options.steps}this.margin=this.current*this.size;this.play(this.options.speed);return false}.bind(this))}.bind(this))}this.play(0)}else{for(;this.items.length<this.options.steps+this.visible;){this.items.clone().inject(this.itemsParent,"bottom");this.items=this.itemsParent.getElements(this.options.elements)}if(this.current>this.items.length-1){this.current=this.items.length-1}if(this.current<0){this.current=0}for(var c=0;c<this.current;c++){this.items[c].inject(this.itemsParent,"bottom")}if(this.options.paging){this.control=this.gallery.getElements(".control")[0];this.paging=new Element("ul").injectInside(this.control).addClass("paging");for(var c=0;c<Math.ceil((this.items.length-this.visible)/this.options.steps)+1;c++){this.paging.innerHTML+='<li><a href="#">'+parseInt(c+1)+"</a></li>"}this.paging=this.paging.getElements("a");this.paging.each(function(e,d){e.addEvent("click",function(){_kEvent=parseInt(d);if(this.current==(this.paging.length-1)&&_kEvent==0){this.next.fireEvent("click")}else{if(this.current<_kEvent){for(k=this.current;k<_kEvent;k++){this.next.fireEvent("click")}}else{if(this.current>_kEvent){for(k=this.current;k>_kEvent;k--){this.prev.fireEvent("click")}}}}return false}.bind(this))}.bind(this))}this.play(0)}this.next.addEvent("click",function(){if(this.options.mode!="circle"){if(this.visible+this.current>=this.items.length){if(this.options.mode=="callback"){this.margin=0;this.current=0}}else{if(this.visible+this.current+this.options.steps>=this.items.length){this.margin=(this.items.length-this.visible)*this.size;this.current=this.items.length-this.visible}else{this.current=this.current+this.options.steps;this.margin=this.current*this.size}}this.play(this.options.speed)}else{var d=this;this.margin=this.size*this.options.steps;this.itemsParent.set("tween",{duration:this.options.speed,transition:this.options.transition,property:this.direction,onComplete:function(){for(var e=0;e<d.options.steps;e++){if(d.current>=d.items.length){d.current=0}d.current++;if(d.options.paging){if(d.current==d.items.length){d.paging.removeClass("active");d.paging[0].addClass("active")}else{d.paging.removeClass("active");d.paging[d.current].addClass("active")}}d.items[d.current-1].inject(d.itemsParent,"bottom")}this.set(0);d.options.onPlay(d.current,d.visible,d.items.length)},onCancel:function(){this.onComplete()}});this.itemsParent.tween(-this.margin)}return false}.bind(this));this.prev.addEvent("click",function(){if(this.options.mode!="circle"){if(this.current<=0){if(this.options.mode=="callback"){this.margin=(this.items.length-this.visible)*this.size;this.current=this.items.length-this.visible}}else{if(this.current-this.options.steps<=0){this.margin=0;this.current=0}else{this.current=this.current-this.options.steps;this.margin=this.current*this.size}}this.play(this.options.speed)}else{for(var d=0;d<this.options.steps;d++){if(this.current-1<0){this.current=this.items.length}--this.current;this.items[this.current].inject(this.itemsParent,"top")}this.itemsParent.setStyle(this.direction,-this.size*this.options.steps+"px");this.margin=0;this.play(this.options.speed)}return false}.bind(this));if(this.options.autoplay||this.start||this.stop){if(!this.options.autoplay){this.gallery.addClass("stopped")}this.timer=this.bound.rotate.delay(this.options.duration);this.gallery.addEvent("mouseenter",function(){this.options.autoplay=false;$clear(this.timer)}.bind(this));this.gallery.addEvent("mouseleave",function(){if(!this.gallery.hasClass("stopped")){$clear(this.timer);this.options.autoplay=true;this.timer=this.bound.rotate.delay(this.options.duration)}}.bind(this))}if(this.stop){this.stop.addEvent("click",function(){this.gallery.addClass("stopped").fireEvent("mouseenter");return false}.bind(this))}if(this.start){this.start.addEvent("click",function(){this.gallery.removeClass("stopped").fireEvent("mouseenter");return false}.bind(this))}}else{this.next.addClass(this.next.cl+"-"+this.options.disableClass);this.prev.addClass(this.prev.cl+"-"+this.options.disableClass);this.next.addEvent("click",function(){return false}.bind(this));this.prev.addEvent("click",function(){return false}.bind(this));if(this.stop){this.stop.addEvent("click",function(){return false}.bind(this))}if(this.start){this.start.addEvent("click",function(){return false}.bind(this))}this.gallery.addClass("stopped")}this.options.onStart(this.current,this.visible,this.items.length)},play:function(a){this.sidesChecking();this.itemsParent.set("tween",{duration:a,transition:this.options.transition});this.itemsParent.tween(this.direction,-this.margin);if(this.options.paging){this.paging.removeClass("active");this.paging[Math.ceil(this.current/this.options.steps)].addClass("active")}this.options.onPlay(this.current,this.visible,this.items.length)},rotate:function(){if(this.options.autoplay){if(!this.options.autoplayOpposite){this.next.fireEvent("click")}else{this.prev.fireEvent("click")}this.timer=this.bound.rotate.delay(this.options.duration)}},sidesChecking:function(){if(this.options.mode=="line"){this.next.removeClass(this.next.cl+"-"+this.options.disableClass);this.prev.removeClass(this.prev.cl+"-"+this.options.disableClass);if(this.visible+this.current>=this.items.length){this.next.addClass(this.next.cl+"-"+this.options.disableClass)}else{if(this.current==0){this.prev.addClass(this.prev.cl+"-"+this.options.disableClass)}}}}});var fadeGallery=new Class({Extends:slideGallery,initialize:function(a,b){this.previous=null;if(b.mode=="circle"){b.mode="callback"}b.steps=1;this.parent(a,b);this.visible=1},play:function(a){if(this.previous==null){this.previous=this.items}this.sidesChecking();this.previous.set("tween",{duration:a,transition:this.options.transition});this.previous.tween("opacity",0);this.items[this.current].set("tween",{duration:a,transition:this.options.transition});this.items[this.current].tween("opacity",1);if(this.options.paging){this.paging.removeClass("active");this.paging[Math.ceil(this.current/this.options.steps)].addClass("active")}this.previous=this.items[this.current];this.options.onPlay(this.current,this.visible,this.items.length)}});
