var GoodCarousel=new Class({container:null,inner:null,animate:null,nav:null,data:null,timer:null,ticks:0,options:{width:624,height:282,delay:5100,duration:700,transition:Fx.Transitions.Sine.easeInOut,structure:{header:"h3",data:".carousel-data",link:"p a",img:"img"}},Implements:[Options],initialize:function(a,b){this.setOptions(b);this.container=document.id(a);this.parseData();this.setup()},parseData:function(){var a=[];this.container.getElements(this.options.structure.data).each(function(e,d){var b={},f=e.getElement(this.options.structure.link),c=e.getElement(this.options.structure.img);b.title=e.getElement(this.options.structure.header).get("text");b.desc=f.get("text");b.url=f.get("href");b.img=c.get("src");b.alt=c.get("title");b.rel=f.get("rel");b.index=d;a.push(b)},this);this.data=a;this.container.empty()},setup:function(){function b(c){return new Element("div",{html:c}).getFirst()}this.container.setStyle("width",this.options.width).addClass("carousel");this.inner=new Element("div",{"class":"carousel-inner",styles:{width:this.options.width,height:this.options.height}});this.container.grab(this.inner);this.animate=new Element("div",{"class":"carousel-animate",styles:{width:this.options.width}}).set("tween",{duration:this.options.duration,transition:this.options.transition});this.inner.grab(this.animate);var a=this.data;this.animate.setStyle("width",this.options.width*a.length);this.nav=new Element("ul",{"class":"carousel-nav"});this.container.grab(this.nav);a.each(function(f,d){var h={url:f.url,img:f.img,height:this.options.height,width:this.options.width,title:f.title,desc:f.desc},e=('<a class="carousel-item" href="{url}"><img src="{img}" height="{height}" width="{width}" border="0" /><span class="carousel-item-info"><strong><span>{title}</span></strong><br /><span>{desc}</span></span></a>').substitute(h);e=b(e);e.setStyle("width",this.options.width).set("rel",f.rel);this.animate.grab(e);var c={link:f.url,title:f.title},g=('<li><a id="carousel-link" href="{link}" data="{data}" title="{title}">{title}</a></li>').substitute(c);g=b(g);g.store("data",f).setStyle("width",Math.floor(this.options.width/a.length)).getFirst().set("rel",f.rel);if(d===0){g.addClass("selected")}if(d===(a.length-1)){g.addClass("last")}g.addEvents({mouseenter:this.events.over.bind(this),mouseleave:this.events.out.bind(this)});this.nav.grab(g)},this);this.tick()},tick:function(){var a=this.nav.getElements("li a");a.removeClass("selected").each(function(c,b){if(this.ticks===b){c.addClass("selected")}},this);this.slide();this.ticks++;if(this.ticks>(a.length-1)){this.ticks=0}$clear(this.timer);this.timer=this.tick.delay(this.options.delay,this)},events:{over:function(a){var b=a.target.getParent().retrieve("data",{index:0});this.ticks=b.index;this.tick();$clear(this.timer)},out:function(a){this.timer=this.tick.delay(this.options.delay,this)}},slide:function(){this.animate.tween("left",0-(this.ticks*this.options.width))}});

