var GoodCarousel=new Class({container:null,inner:null,animate:null,nav:null,data:null,timer:null,ticks:0,options:{width:624,height:282,delay:4500,duration:700},Implements:[Options],initialize:function(a,b){this.setOptions(b);this.container=document.id(a);this.parseData();this.setup()},parseData:function(){var b=[];var a=this.container.getElements(".carousel-data");a.each(function(f,e){var c={},g=f.getElement("p a"),d=f.getElement("img");c.title=f.getElement("h3").get("text");c.desc=g.get("text");c.url=g.get("href");c.img=d.get("src");c.alt=d.get("title");c.rel=g.get("rel");c.index=e;b.push(c)},this);this.data=b;this.container.empty()},setup:function(){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}});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(g,h){var l='<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>',c={url:g.url,img:g.img,height:this.options.height,width:this.options.width,title:g.title,desc:g.desc};var d=l.substitute(c);var j=new Element("div",{html:d}).getFirst();j.setStyle("width",this.options.width);j.set("rel",g.rel);this.animate.grab(j);var k='<li><a id="carousel-link" href="{link}" data="{data}" title="{title}">{title}</a></li>',e={link:g.url,title:g.title};var b=k.substitute(e);var f=(new Element("div",{html:b})).getFirst();f.store("data",g);f.getFirst().set("rel",g.rel);if(h==0){f.addClass("selected")}if(h==(a.length-1)){f.addClass("last")}f.addEvents({mouseenter:this.events.over.bind(this),mouseleave:this.events.out.bind(this)});this.nav.grab(f)},this);this.tick()},tick:function(){var a=this.nav.getElements("li a");a.removeClass("selected");a.each(function(c,b){if(this.ticks==b){c.addClass("selected")}},this);this.slide(this.ticks*this.options.width);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(a){this.animate.set("tween",{duration:this.options.duration});this.animate.tween("left",0-a)}});

