var Carousel=Class.create();
Carousel.prototype={cEl:null,cBox:null,itemClass:null,prevButton:null,nextButton:null,swButton:null,scrollInc:1,items:null,itemWidth:0,itemActual:0,itemsCount:0,itemsVisible:0,isMoreVisible:false,switchers:null,lastItemMove:0,lastDir:null,moveDur:0.5,fadeDur:0.25,fadeMin:0.7,circular:false,vertical:false,autoRun:false,autoRunStop:false,autoRunTimeout:null,autoRunDir:1,autoRunFreq:3,initInt:null,initialize:function(c,b,e,d,a){this.itemClass=e;this.cEl=$(c);this.cBox=$(b);this.items=$$("#"+b+" ."+this.itemClass);
if(this.items.length!=0){if(a!=null){if(a.vertical!=null&&a.vertical)this.vertical=a.vertical;if(a.autoRun!=null&&a.autoRun)this.autoRun=a.autoRun;if(a.autoRunDir!=null&&a.autoRunDir==-1)this.autoRunDir=-1;if(a.autoRunFreq!=null&&parseFloat(a.autoRunFreq)>0)this.autoRunFreq=a.autoRunFreq;if(a.circular!=null&&a.circular)this.circular=a.circular;if(a.scrollInc!=null&&parseInt(a.scrollInc)>0)this.scrollInc=parseInt(a.scrollInc);if(a.duration!=null&&parseFloat(a.duration)>0){this.moveDur=parseInt(a.duration*
10/2)/10;this.fadeDur=parseInt(a.duration*10/4)/10;if(this.autoRun&&this.autoRunFreq<a.duration)this.autoRunFreq=a.duration}if(a.noMove!=null&&a.noMove){this.moveDur=0;this.fadeMin=0.1;if(a.duration>0)this.fadeDur=parseInt(a.duration*10/2)/10}}this.prevButton=$(d.prev);this.nextButton=$(d.next);if(this.isVisible())this.init();else this.initInt=self.setInterval(function(){if(this.isVisible()){self.clearInterval(this.initInt);this.init()}}.bind(this),500)}},isVisible:function(){var c=true;this.cBox.ancestors().each(function(b){if(c)c=
b.visible()});return c},init:function(){this.itemsCount=this.items.length;this.itemWidth=this.vertical?this.items[0].getHeight():this.items[0].getWidth();var c={width:this.itemWidth*this.items.length+"px"};if(this.vertical)c={height:this.itemWidth*this.items.length+"px"};this.cBox.setStyle(c);c=$(this.cBox.parentNode);var b=parseInt(this.vertical?c.getStyle("borderUpWidth"):c.getStyle("borderLeftWidth")),e=parseInt(this.vertical?c.getStyle("borderBottomWidth"):c.getStyle("borderRightWidth"));b=(isNaN(b)?
0:b)+(isNaN(e)?0:e);c=(this.vertical?c.getHeight():c.getWidth())-b;b=c/this.itemWidth;this.itemsVisible=parseInt(b);if(this.itemsVisible>=this.itemsCount){this.prevButton.hide();this.nextButton.hide()}else{this.isMoreVisible=Math.ceil(b*10)/10>this.itemsVisible;this.lastItemMove=b*10%10==0?this.itemWidth:this.itemWidth-(c-this.itemsVisible*this.itemWidth);if(this.scrollInc>this.itemsVisible)this.scrollInc=this.itemsVisible;if(this.circular&&this.itemsVisible==1||!this.circular){this.swButton=$$("#"+
this.cEl.id+" .switcher");var d=this;this.items.each(function(a,f){a.nr=f;if(d.swButton[f]!=null){d.swButton[f].swNr=f;a.sw=d.swButton[f];if(f==0)d.swButton[f].checked=true}})}this.prevButton.dirt=-1;this.nextButton.dirt=1;this.listen();if(this.autoRun){d=this;self.setTimeout(function(){d.slide()},this.autoRunFreq*1E3)}}},listen:function(){this.prevButton.observe("click",function(b){this.move(b)}.bind(this));this.nextButton.observe("click",function(b){this.move(b)}.bind(this));if(this.swButton!=null){var c=
this;this.swButton.each(function(b){b.observe("change",function(e){this.move(e)}.bind(c))})}},stopListen:function(){this.prevButton.stopObserving("click");this.nextButton.stopObserving("click");this.swButton!=null&&this.swButton.each(function(c){c.stopObserving("change")})},move:function(c){var b=Event.findElement(c,"a");b.swNr!=null?this.slideTo(b.swNr):this.makeMove(b.dirt,this.scrollInc);if(this.items[this.itemActual].sw!=null)this.items[this.itemActual].sw.checked=true;this.autoRunStop=true;var e=
this;clearTimeout(this.autoRunTimeout);this.autoRunTimeout=self.setTimeout(function(){e.restart()},3*this.autoRunFreq*1E3);Event.stop(c);return false},slideTo:function(c){var b=0,e=0,d=this.items[this.itemActual].nr;this.items.each(function(f,g){if(d==f.nr)b=g;if(c==f.nr)e=g});var a=Math.abs(e-b);this.makeMove((e-b)/a,a)},makeMove:function(c,b){this.stopListen();var e=c*b,d=c>0?this.itemsCount-this.itemsVisible-this.itemActual:this.itemActual,a=this.circular?this.itemActual+e:this.itemActual+(d!=
0&&d<b?c*d:e);if(a>=0&&a+this.itemsVisible<=this.itemsCount)return this.switchSlide(a-this.itemActual,c,a);else if(this.circular){for(var f=Math.abs(e)-d,g=0;g<f;g++){a=c<0?this.itemsCount-f+g:g;this.cBox.removeChild(this.items[a]);c<0?this.cBox.insertBefore(this.items[a],this.items[0]):this.cBox.appendChild(this.items[a])}a=this.isMoreVisible&&this.itemActual!=0?this.lastItemMove:this.itemWidth;b=c<0?-((b-1)*this.itemWidth+a):-((this.itemsCount-this.itemsVisible-b-1)*this.itemWidth+a);this.items=
$$("#"+this.cBox.id+" ."+this.itemClass);b=this.vertical?{top:b+"px"}:{left:b+"px"};this.cBox.absolutize().setStyle(b).relativize();return this.switchSlide(e,c,c<0?0:this.itemActual+d)}this.listen();return false},switchSlide:function(c,b,e){var d=this.itemWidth;if(!(this.lastDir==null&&b<0)&&(this.lastDir!=b||this.lastDir!=b&&b<0&&this.itemActual!=0))d=this.lastItemMove;var a=this,f={x:-b*((Math.abs(c)-1)*this.itemWidth+d),y:0,mode:"relative",duration:this.moveDur,queue:{position:"end",scope:this.cBox.id}};
if(this.vertical){f.x=0;f.y=-b*((Math.abs(c)-1)*this.itemWidth+d)}new Effect.Fade(this.cBox,{duration:this.fadeDur,from:1,to:this.fadeMin,queue:{position:"end",scope:this.cBox.id}});new Effect.Move(this.cBox,f);new Effect.Fade(this.cBox,{duration:this.fadeDur,from:this.fadeMin,to:1,afterFinish:function(){a.listen()},queue:{position:"end",scope:this.cBox.id}});this.itemActual=e;this.lastDir=b;return true},slide:function(){if(this.autoRun&&!this.autoRunStop){for(;!this.makeMove(this.autoRunDir,this.scrollInc);)this.autoRunDir*=
-1;var c=this;self.setTimeout(function(){c.slide()},this.autoRunFreq*1E3)}},restart:function(){this.autoRunStop=false;this.autoRunDir=this.lastDir;this.slide()}};

