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