var Pluit={};Pluit.Carousel=Class.create({initialize:function(){var b=$A(arguments);var a={};if(typeof b.last()==="object"){a=b.pop()}b.each(function(c){new Pluit.Carousel.Element(c,a)})}});Pluit.Carousel.Element=Class.create({initialize:function(b,a){this.initOptions(a);this.initElements(b);this.initViewport();this.initNavigation();if(this.options.autoPlay){this.play()}},initOptions:function(a){this.options={circular:false,hideAutoNav:false,animDuration:0.5,autoPlay:false,slideDuration:3,viewportClassName:"viewport",navClassName:"nav",prevClassName:"prev",nextClassName:"next",pagesClassName:"pages",pageClassNamePrefix:"page-",activeClassName:"active"};Object.extend(this.options,a||{})},initElements:function(a){if(Object.isString(a)){if(a.startsWith("#")){a=a.substring(1)}}this.elCarousel=$(a);this.elViewport=this.elCarousel.down("."+this.options.viewportClassName);this.elSlidesPanel=this.elViewport.firstDescendant();this.elSlides=this.elSlidesPanel.childElements();this.elNav=this.elCarousel.down("."+this.options.navClassName);this.maxPageNo=this.elSlides.length;this.prevPageNo=this.curPageNo=1},initViewport:function(){if(this.elSlides.length===0){return}this.viewportDimension=this.getViewportDimension();this.elCarousel.setStyle({width:this.viewportDimension[0]+"px",height:this.options.CarouselHeight});this.elViewport.setStyle({width:this.viewportDimension[0]+"px",height:this.options.CarouselHeight});this.elSlides.invoke("setStyle",{width:this.viewportDimension[0]+"px"});this.elViewport.observe("click",this.onViewportClick.bindAsEventListener(this));this.elViewport.observe("mouseover",this.onViewportMouseOver.bindAsEventListener(this));this.elViewport.observe("mouseout",this.onViewportMouseOut.bindAsEventListener(this))},initNavigation:function(){this.elNav=this.elCarousel.down(".nav");if((!this.elNav)&&(!this.options.hideAutoNav)){this.elNav=this.buildNavigation();this.elNav=$(this.elNav)}if(!this.elNav){return}this.elNav.observe("click",this.onNavClick.bindAsEventListener(this))},buildNavigation:function(){var a=document.createElement("ul");a.className="nav";var c="";c+='<li class="'+this.options.prevClassName+'"><a href="#">Prev</a></li>';if(this.maxPageNo>0){c+='<li class="'+this.options.pagesClassName+'"><ul>';for(var b=0;b<this.maxPageNo;b++){c+='<li class="';if(b===0){c+=this.options.activeClassName+" "}c+=this.options.pageClassNamePrefix+(b+1)+'"><a href="#">'+(b+1)+"</a></li>"}c+="</ul></li>"}c+='<li class="'+this.options.nextClassName+'"><a href="#">Next</a></li>';a.innerHTML=c;this.elCarousel.insert(a);return a},getViewportDimension:function(){var c=this.elCarousel.up();var d=c.getWidth()-32;return[d.round(),c.getHeight()]},onNavClick:function(d){var b=d.findElement("li");if(!b){return}var c=b.className;if(c===this.options.prevClassName){this.movePrevious()}else{if(c===this.options.nextClassName){this.moveNext()}else{if(c.match(this.options.pageClassNamePrefix)){var a=parseInt(c.split("-")[1],10);this.movePage(a)}}}d.preventDefault()},onViewportClick:function(b){var a=b.element().parentNode;if((b.element().tagName!=="A")&&(a.tagName!=="A")&&(a.tagName==="LI")){this.moveNext()}},onViewportMouseOver:function(){this.options.autoPlay=false},onViewportMouseOut:function(){this.options.autoPlay=true},moveNext:function(){this.movePage(this.curPageNo+1)},movePrevious:function(){this.movePage(this.curPageNo-1)},movePage:function(a){if(this.onTheMove){return}if(a===this.curPageNo){return}a=this.checkPageNo(a,this.curPageNo);var c=this.getMoveDistance(a,this.curPageNo);this.onTheMove=true;this.activatePageNav(a);if(this.options.effect==="fade"){var b=this.options.animDuration/2;new Effect.Fade(this.elSlidesPanel,{duration:b,afterFinish:function(){new Effect.Move(this.elSlidesPanel,{x:c,duration:0,afterFinish:function(){this.onTheMove=false;new Effect.Appear(this.elSlidesPanel,{duration:b})}.bind(this)})}.bind(this)})}else{new Effect.Move(this.elSlidesPanel,{x:c,duration:this.options.animDuration,afterFinish:function(){this.onTheMove=false}.bind(this)})}this.curPageNo=a},play:function(){setTimeout(function(){if(this.options.autoPlay){this.moveNext()}this.play()}.bind(this),this.options.slideDuration*1000)},isMovePrevious:function(b,a){if(b<a){return true}},getMoveDistance:function(b,a){var d=0;if(b===a){return d}var c=this.isMovePrevious(b,a);if(c){while(b<a){d+=this.elSlides[b-1].getWidth();b+=1}return d}else{while(b>a){d+=this.elSlides[b-2].getWidth();b-=1}return -d}},activatePageNav:function(b){if(!this.elNav){return}var a=this.elNav.down(".page-"+b);var c=this.elNav.down(".page-"+this.curPageNo);if(!a&&!c){return}c.removeClassName(this.options.activeClassName);a.addClassName(this.options.activeClassName)},checkPageNo:function(b,a){var c=this.isMovePrevious(b,a);if(c){if(b<1){if(this.options.circular){return this.maxPageNo}else{return 1}}}else{if(b>this.maxPageNo){if(this.options.circular){return 1}else{return this.maxPageNo}}}return b}});Object.extend(Pluit.Carousel,{Version:"1.2.0",init:function(){var b=$A(arguments);var a=null;if(typeof b.last()==="object"){a=b.pop()}if(b.length===0){b=[".pluit-carousel"]}document.observe("dom:loaded",function(){$A(b).each(function(c){$$(c).each(function(d){new Pluit.Carousel(d,a)}.bind(this))})})}});
