var Accordion=Class.create({elem:null,options:{handle:"h2 a",handleContainer:"li",handleContent:"div"},initialize:function(elem,options){this.elem=$(elem);if(!this.elem){throw"Unable to bind to element"}this.options=Object.extend(this.options,options);this.elem.select(this.options.handleContent).invoke("hide");this.elem.select(this.options.handleContainer).invoke("removeClassName","on");this.elem.select(this.options.handle).invoke("observe","click",this.accord.bindAsEventListener(this));this.elem.down(this.options.handleContainer).addClassName("on").down(this.options.handleContent).show()},accord:function(evt){var cont=evt.findElement(this.options.handleContainer);if(!cont.hasClassName("on")){evt.stop();this.elem.select(".on").each(function(s){var e=s.down(this.options.handleContent);Effect.SlideUp(e,{duration:0.4,afterFinish:function(effct){$(effct.element).up(this.options.handleContainer).removeClassName("on")}.bind(this)})},this);Effect.SlideDown(cont.down(this.options.handleContent),{duration:0.4,afterFinish:function(effct){$(effct.element).up(this.options.handleContainer).addClassName("on")}.bind(this)})}}});var Carousel=Class.create({elem:null,running:false,initialize:function(elem){this.elem=$(elem);if(!this.elem){throw"Unable to bind to element"}},advance:function(){if(!this.running){this.running=true;var e=this.elem.childElements().first();new Effect.Tween(e,0,(-1*e.measure("padding-box-width")),{duration:0.6,transition:Effect.Transitions.EaseFromTo,afterFinish:function(count,effect){this.elem.insert(this.elem.childElements().first().remove().setStyle({marginLeft:0}));this.running=false}.bind(this)},function(p){this.setStyle({marginLeft:p+"px"})})}}});Effect.Transitions.EaseFromTo=function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,4)}return -0.5*((pos-=2)*Math.pow(pos,3)-2)};var c=new Carousel($$("#carousel ul").first());setInterval(c.advance.bind(c),5000);var a=new Accordion($$("#features ul").first());
