var XWiki=(function(c){var a=c.widgets=c.widgets||{};a.Carousel=Class.create({defaultOptions:{duration:0.5,frequency:10},initialize:function(d,e){this.scrolling=false;this.container=$(d);this.scroller=this.container.down(".scroller");this.sections=this.container.select(".section");this.controls=this.container.select(".controls a");this.options=Object.extend(Object.clone(this.defaultOptions),e||{});this.sections.each(function(g,f){g._index=f;g._control=this.container.down('.controls a[href="#'+g.id+'"]')}.bind(this));this.addObservers();if(this.options.initialSection){this.moveTo(this.options.initialSection)}if(this.options.autoGlide||this.container.hasClassName("autostart")){this.start()}},addObservers:function(){this.controls.invoke("observe","click",this.click.bindAsEventListener(this))},click:function(e){e.stop();this.stop();var d=e.findElement("a");if(this.scrolling){this.scrolling.cancel()}this.moveTo(this.container.down("#"+d.href.split("#")[1]))},moveTo:function(e){this.current=$(e);Position.prepare();var f=Position.cumulativeOffset(this.scroller),d=Position.cumulativeOffset($(e));this.scrolling=new Effect.SmoothScroll(this.scroller,{duration:this.options.duration,x:(d[0]-f[0]),y:(d[1]-f[1]),afterFinish:this.onAnimationEnded.bind(this)})},next:function(){if(this.current){var e=this.current._index;var d=(this.sections.length-1==e)?0:e+1}else{var d=1}this.moveTo(this.sections[d])},previous:function(){if(this.current){var d=this.current._index;var e=(d==0)?this.sections.length-1:d-1}else{var e=this.sections.length-1}this.moveTo(this.sections[e])},stop:function(){clearTimeout(this.timer)},start:function(){this.periodicallyUpdate()},periodicallyUpdate:function(){if(this.timer!=null){clearTimeout(this.timer);this.next()}this.timer=this.periodicallyUpdate.bind(this).delay(this.options.frequency)},onAnimationEnded:function(){this.scrolling=false;var d=this.current._control;this.controls.each(function(e){if(e==d){e.addClassName("on")}else{e.removeClassName("on")}})}});Effect.SmoothScroll=Class.create(Effect.Base,{initialize:function(e,d){this.element=$(e);var d=Object.extend({x:0,y:0,mode:"absolute"},d||{});this.start(d)},setup:function(){if(this.options.continuous&&!this.element._ext){this.element.cleanWhitespace();this.element._ext=true;this.element.appendChild(this.element.firstChild)}this.originalLeft=this.element.scrollLeft;this.originalTop=this.element.scrollTop;if(this.options.mode=="absolute"){this.options.x-=this.originalLeft;this.options.y-=this.originalTop}},update:function(d){this.element.scrollLeft=this.options.x*d+this.originalLeft;this.element.scrollTop=this.options.y*d+this.originalTop}});function b(){$$(".carousel").each(function(d){new a.Carousel(d)})}(c.domIsLoaded&&b())||document.observe("xwiki:dom:loaded",b);return c}(XWiki||{}));