var t;
var limit = 3
var speed = 5000

$(document).ready(function(){
	$('#carousel li').hide().eq(0).show();
	autoSwitchCarousel();
	$('#carouselControl li a').hover(function(){
		clearInterval(t);
		var elements = $("#carouselControl li a");
		var newIndex = elements.index(this);
		switchCarousel(newIndex,elements,true)
		return false;
	}, function(){
		autoSwitchCarousel();
	});
	$('#carousel').mouseenter(function(){
		clearInterval(t);
	});
	$('#carousel').mouseleave(function(){
		autoSwitchCarousel();
	});
});

function autoSwitchCarousel(){
	var elements = $("#carouselControl li a");
	var nextIndex = getActiveIndex(elements) + 1;
	t = self.setInterval(function(){
		if(nextIndex > limit){
			nextIndex = 0;
		} 
		switchCarousel(nextIndex++,elements);
	},speed);	
}

function switchCarousel(btnIndex,set,manual){
	if(btnIndex > limit){
		btnIndex = 0;
	} else if (btnIndex == -1){
		btnIndex = limit;
	}
	var buttonWidth = $("#carouselControl li a").width() + 13;
	var oldIndex = getActiveIndex(set);
	var target = btnIndex*buttonWidth;
	$('#slideMarker').stop(true,true);
	$('#carousel').stop(true,true);
	set.removeClass('active').eq(btnIndex).addClass('active');
	if(manual){
		$('#slideMarker').css({left: target}).show();	
	} else {
		$('#slideMarker').fadeOut(100, function(){
			$(this).css({left: target}).fadeIn(100);	
		});
	}
	$('#carousel li').css('z-index','1').fadeOut(100).eq(btnIndex).css('z-index','2').fadeIn(100);
}

function getActiveIndex(indexSet){
	var getIndex = -1;
	for(var i =0; i < indexSet.length; i ++) {
		if($(indexSet[i]).hasClass('active')) {
			getIndex = i;
			break;
		}			
	}
	return getIndex;
}
