Carousel=Class.create(Abstract,{initialize:function(a,d,b,c){this.scrolling=false;this.scroller=a;this.slides=d;this.controls=b;this.options=Object.extend({duration:1,frequency:3,controlClassName:"carousel-control",jumperClassName:"carousel-jumper"},c||{});this.slides.each(function(e,f){e._index=f});if(this.controls){this.controls.invoke("observe","click",this.click.bind(this))}if(this.options.auto){this.start();this.slides.invoke("observe","mouseover",this.pause.bind(this));this.slides.invoke("observe","mouseout",this.resume.bind(this))}},click:function(event){this.stop();var element=event.findElement("a");if(!element.hasClassName("disabled")){this.deactivateControls();if(element.hasClassName(this.options.controlClassName)){eval("this."+element.rel+"()")}else{if(element.hasClassName(this.options.jumperClassName)){this.moveTo(element,element.rel)}}}event.stop()},moveTo:function(b,c){this.moveToElement=$(c);if(this.options.beforeMove&&(typeof this.options.beforeMove=="function")){this.options.beforeMove()}if(this.controls&&this.options.selectedClassName){this.controls.each((function(e){e.removeClassName(this.options.selectedClassName)}).bind(this));b.addClassName(this.options.selectedClassName)}this.previous=this.current?this.current:this.slides[0];this.current=this.moveToElement;var d=this.scroller.cumulativeOffset();var a=this.current.cumulativeOffset();if(this.scrolling){this.scrolling.cancel()}this.scrolling=new Effect.SmoothScroll(this.scroller,{duration:this.options.duration,x:(a[0]-d[0]),y:(a[1]-d[1]),queue:{position:"end",limit:1,scope:this.scroller.id},afterFinish:(function(){if(this.options.afterMove&&(typeof this.options.afterMove=="function")){this.options.afterMove()}if(this.controls){this.activateControls()}}).bind(this)});return false},prev:function(){if(this.current){var a=this.current._index;var b=(a==0)?this.slides.length-1:a-1}else{var b=this.slides.length-1}this.moveTo(this.controls?this.controls[b]:false,this.slides[b])},next:function(){if(this.current){var b=this.current._index;var a=(this.slides.length-1==b)?0:b+1}else{var a=1}this.moveTo(this.controls?this.controls[a]:false,this.slides[a])},first:function(){var b=0;if(this.current){var a=this.current._index}this.moveTo(this.controls[b],this.slides[b])},last:function(){var b=(this.slides.length-1);if(this.current){var a=this.current._index}this.moveTo(this.controls[b],this.slides[b])},toggle:function(){if(this.previous){this.moveTo(this.controls[this.previous._index],this.slides[this.previous._index])}else{return false}},stop:function(){clearTimeout(this.timer)},start:function(){this.periodicallyUpdate()},pause:function(a){this.stop();this.activateControls()},resume:function(a){if(a){var b=a.relatedTarget||a.toElement;if(!b||(!this.slides.include(b)&&!this.slides.any(function(c){return b.descendantOf(c)}))){this.start()}}else{this.start()}},periodicallyUpdate:function(){if(this.timer!=null){clearTimeout(this.timer);this.next()}this.timer=setTimeout(this.periodicallyUpdate.bind(this),this.options.frequency*1000)},deactivateControls:function(){this.controls.invoke("addClassName","disabled")},activateControls:function(){this.controls.invoke("removeClassName","disabled")}});Effect.SmoothScroll=Class.create();Object.extend(Object.extend(Effect.SmoothScroll.prototype,Effect.Base.prototype),{initialize:function(b){this.element=$(b);var a=Object.extend({x:0,y:0,mode:"absolute"},arguments[1]||{});this.start(a)},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(a){this.element.scrollLeft=this.options.x*a+this.originalLeft;this.element.scrollTop=this.options.y*a+this.originalTop}});Event.observe(window,"load",function(){var a=$("page_loader");if(a){a.fade();$$(".pagination-control a").invoke("appear")}new Carousel($("pagination"),$$("#pagination_cont > div"),$$(".pagination-control a.carousel-control"));window.designCarousel=new Carousel($("design_carousel"),$$("#design_carousel div.contents"),$$("#design_control a",".carousel-jumper"),{beforeMove:function(){var d=window.designCarousel.moveToElement;var c=d.id;d.id="";Symbolika.placeAnchor(c.replace(/^#?design_/,""));d.id=c},afterMove:function(){document.title=document.title.replace(/, ([^,]+)$/,", "+window.designCarousel.current.down("h1").childNodes[0].data)}});var b=$("design_"+window.location.hash.replace(/^#/,""));if(b){window.designCarousel.moveTo($("jumper_"+b.id),b)}});Event.observe(window,"unload",function(){window.designCarousel=null});