var nixSwitch=new Class({initialize:function(b,c){this.setOptions({onRotate:Class.empty,onStop:Class.empty,onAutoPlay:Class.empty,onShowSlide:Class.empty,panelSelector:'.panel',slidesSelector:'.slide',buttonsSelector:'.button',buttonNextSelector:'.button-next',buttonPrevSelector:'.button-prev',slideInterval:4000,transitionDuration:700,transitionEffect:'scroll',startIndex:0,buttonOnClass:'selectat',buttonOffClass:'off',rotateAction:'none',rotateActionDuration:100,rotateActionEffect:'scroll',autoplay:'on'},c);this.container=$(b);this.panel=this.container.getElement(this.options.panelSelector);this.slides=this.container.getElements(this.options.slidesSelector);this.buttons=this.container.getElements(this.options.buttonsSelector);this.buttonNext=this.container.getElement(this.options.buttonNextSelector);this.buttonPrev=this.container.getElement(this.options.buttonPrevSelector);this.currentSlide=null;if(this.options.transitionEffect=='crossfade'||this.options.rotateActionEffect=='crossfade'){this.fxCrossfade=new Array();this.slides.each(function(a,i){this.fxCrossfade[i]=new Fx.Style(a,'opacity');if(i!=this.options.startIndex)a.setStyle('opacity',0)},this);this.options.transitionEffect='crossfade';this.options.rotateActionEffect='crossfade'}else{this.fxScroll=new Fx.Scroll(this.panel,{'wait':false});this.fxFade=new Fx.Style(this.panel,'opacity',{'wait':false})}this.setupButtons();this.showSlide(this.options.startIndex,1);if(this.options.autoplay=='on'||this.options.autoplay=='once')this.autoplay()},setupButtons:function(){if(this.options.rotateAction!='none'){var b=null;this.buttons.each(function(a,i){$(a).addEvent(this.options.rotateAction,function(){if(this.options.rotateActionEffect=='scroll'){this.showSlide(i,this.options.rotateActionDuration,this.options.rotateActionEffect)}else{$clear(b);b=this.showSlide.delay(this.options.rotateActionDuration,this,[i,this.options.rotateActionDuration,this.options.rotateActionEffect])}this.stop()}.bind(this))},this)}if(this.buttonNext&&this.buttonPrev){this.buttonNext.addEvent('click',function(){if(this.currentSlide+1>=this.slides.length){next=0}else{next=this.currentSlide+1};this.showSlide(next,this.options.rotateActionDuration,this.options.rotateActionEffect);this.stop()}.bind(this));this.buttonPrev.addEvent('click',function(){if(this.currentSlide-1<0){next=this.slides.length-1}else{next=this.currentSlide-1};this.showSlide(next,this.options.rotateActionDuration,this.options.rotateActionEffect);this.stop()}.bind(this))}},showSlide:function(c,d,e){if(c==this.currentSlide)return;this.slides.each(function(a,i){var b=$(this.buttons[i]);if(i==c&&i!=this.currentSlide){if(b)b.removeClass(this.options.buttonOffClass).addClass(this.options.buttonOnClass)}else{if(b)b.removeClass(this.options.buttonOnClass).addClass(this.options.buttonOffClass)}},this);switch(e){case'fade':this.fxFade.setOptions({'duration':d});this.fxFade.start(1,0.01).chain(function(){this.fxScroll.setOptions({'duration':1});this.fxScroll.toElement(this.slides[c]);this.fxFade.start(0.01,1)}.bind(this));break;case'crossfade':this.slides.each(function(a,i){this.fxCrossfade[i].setOptions({'duration':d});if(i==c){this.fxCrossfade[i].start(1)}else if(a.getStyle('opacity')>0){this.fxCrossfade[i].start(0)}},this);break;case'scroll':this.fxScroll.setOptions({'duration':d});this.fxScroll.toElement(this.slides[c])}this.currentSlide=c;this.fireEvent('onShowSlide',c)},rotate:function(){if(this.currentSlide+1>=this.slides.length){next=0}else{next=this.currentSlide+1};if(this.options.autoplay=='once'&&next==0){this.stop();return};this.showSlide(next,this.options.transitionDuration,this.options.transitionEffect);this.fireEvent('onRotate')},autoplay:function(){this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);this.fireEvent('onAutoPlay')},stop:function(){clearInterval(this.slideshowInt);this.fireEvent('onStop')}});nixSwitch.implement(new Options);nixSwitch.implement(new Events);
