SportpostCarousel = function(app){
	var carousel = this;
	carousel.app = app;

	$(document).bind("activateContext", function(event, context){
		$("ul.jcarousel", context).not("carousel_activated").eq(0).each(function(){
			carousel.activate(this);
			return false;
		}).addClass("carousel_activated");
	})

	return carousel;
}

SportpostCarousel.prototype.activate = function(list){
	var list = $(list);
	
	var itemsCount = list.find("li").length;
	if (itemsCount > 0) {
		var btnNext = $('.carousel_next');
		var btnPrev = $('.carousel_prev');
		var indexText = $('.carousel_index');
		var updateButtons = function(index){
			var index = index || 1;
			indexText.text(index + " of " + itemsCount);
			if (index == 1) {
				btnPrev.addClass("disabled prev_disabled").removeClass("clickable");
			} else {
				btnPrev.removeClass("disabled prev_disabled").addClass("clickable");
			}
			
			if (index == itemsCount) {
				btnNext.addClass("disabled next_disabled").removeClass("clickable");
			} else {
				btnNext.removeClass("disabled next_disabled").addClass("clickable");
			}					
		}
	    list.show().css("display", "block").jcarousel({
	        scroll: 1,
	        initCallback: function (carousel) {
			    btnNext.bind('click', function() {
			        carousel.next();
			        return false;
			    });
			    btnPrev.bind('click', function() {
			        carousel.prev();
			        return false;
			    });
			},
	        buttonNextHTML: null,
	        buttonPrevHTML: null,
			itemVisibleInCallback: {
				onAfterAnimation: function(carousel, item, index, state){
					updateButtons(index);
				}
			}
	    });
	}
}