var SierraNovaCarousel = Class.create({
	initialize: function() {
	},

	/**
	 * initCarousel
	 *
	 * Init's a carousel
	 *
	 * @since Fri May 28 2010
	 * @access public
	 * @param string container
	 * @return void
	 **/
	initCarousel: function(container) {

		var carouselcontent = $(container);
		var container = $(container).up(".carousel");
		var carouselslides = container.select(".carousel-slide");
		var firstslide = carouselslides.first().addClassName("carousel-slide-active");
		var lastslide = carouselcontent.appendChild(firstslide.cloneNode(true) );
		carouselslides.push(lastslide);
		lastslide.id = null;
		lastslide.select("*[id]").each(function(el) {
			el.id = null;
		} );
		
		var options = {};
		if (container.hasAttribute("rel") ) {
			options = container.readAttribute("rel").evalJSON();
		}

		options.frequency = 8;
		
		carouselcontent.style.width = ( (carouselslides.size() * carouselslides.first().getDimensions().width) + 10) + "px";

		var controls = container.select("a.carousel-control");
		
		if (container.select("a.carousel-jumper").size() > 0) {
			var jumpers = container.select("a.carousel-jumper");
			jumpers.first().addClassName("carousel-jumper-active");
			options["selectedClassName"] = "carousel-jumper-active";
			controls = (controls.size() > 0) ? controls.concat(jumpers) : jumpers;
		}

		var slidableid = container.down(".carousel-content").identify();
		var carousel = new Carousel(slidableid, carouselslides, controls, options);

		var jumperbuttons = container.down(".carousel-jumpers");
		jumperbuttons.setStyle( {
			visibility: "visible"
		} )
			
		carousel.options.afterMove = function(container, jumpers, carouselslides) {
			var id = container.identify();
			jumpers.invoke("removeClassName", this.options.selectedClassName);
			carouselslides.invoke("removeClassName", "carousel-slide-active");
			var index = this.current._index;
			var cindex = (typeof(jumpers[index] ) == "undefined") ? 0 : index;
			jumpers[cindex].addClassName(this.options.selectedClassName);
			this.current.addClassName("carousel-slide-active");
		}.bind(carousel, container, jumpers, carouselslides);
	}
});
var sierranovacarousel = new SierraNovaCarousel();

