// good-carousel
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},Implements:[Options],initialize:function(container,options){this.setOptions(options);this.container=document.id(container);this.parseData();this.setup();},parseData:function(){var data=[],slides=this.container.getElements(".carousel-data");slides.each(function(el,i){var slide={},link=el.getElement("p a"),img=el.getElement("img");slide.title=el.getElement("h3").get("text");slide.desc=link.get("text");slide.url=link.get("href");slide.img=img.get("src");slide.alt=img.get("title");slide.rel=link.get("rel");slide.index=i;data.push(slide);},this);this.data=data;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 slides=this.data;this.animate.setStyle("width",this.options.width*slides.length);this.nav=new Element("ul",{"class":"carousel-nav"});this.container.grab(this.nav);slides.each(function(data,i){var biglink_tpl='<a class="carousel-item" href="{url}"><img src="{img}" height="{height}" width="{width}" border="0" /></a>',biglink_data={url:data.url,img:data.img,height:this.options.height,width:this.options.width,title:data.title,desc:data.desc};var biglink=biglink_tpl.substitute(biglink_data);var biglink_e=new Element("div",{html:biglink}).getFirst();biglink_e.setStyle("width",this.options.width);biglink_e.set("rel",data.rel);this.animate.grab(biglink_e);var nav_tpl='<li><a id="carousel-link" href="{link}" data="{data}" title="{title}">{title}</a></li>',nav_data={link:data.url,title:data.title};var nav=nav_tpl.substitute(nav_data);var nav_e=(new Element("div",{html:nav})).getFirst();nav_e.store("data",data);nav_e.setStyle("width",Math.floor(this.options.width/slides.length));nav_e.getFirst().set("rel",data.rel);if(i==0){nav_e.addClass("selected");}
if(i==(slides.length-1)){nav_e.addClass("last");}
nav_e.addEvents({"mouseenter":this.events.over.bind(this),"mouseleave":this.events.out.bind(this)});this.nav.grab(nav_e);},this);this.tick();},tick:function(){var links=this.nav.getElements("li a");links.removeClass("selected");links.each(function(el,i){if(this.ticks==i){el.addClass("selected");}},this);this.slide(this.ticks*this.options.width);this.ticks++;if(this.ticks>(links.length-1)){this.ticks=0;}
$clear(this.timer);this.timer=this.tick.delay(this.options.delay,this);},events:{over:function(event){var data=event.target.getParent().retrieve("data",{index:0});this.ticks=data.index;this.tick();$clear(this.timer);},out:function(event){this.timer=this.tick.delay(this.options.delay,this);}},slide:function(to){this.animate.set("tween",{duration:this.options.duration});this.animate.tween("left",0-to);}});
