ElementCycle = function($items, $delay){
	var items = this.items = $items;
	var delay = $delay;
	var currentIndex = this.currentIndex = 0;
	var paused = false;
	var timer;
	
	this.jumpTo = function(newIndex){
		clearInterval(timer);
		jQuery(items[currentIndex]).fadeOut();
		jQuery(items[currentIndex = newIndex]).fadeIn();
		updateControls();
	}
	
	var updateControls = this.updateControls = function(){
		jQuery('ol#banner-controls li').each(function(){
			jQuery(this).removeClass('on');
		}).eq(currentIndex).addClass('on');
	}
	
	this.init = function(){
		items.each(function(){
			jQuery(this).fadeOut(0);
		}).eq(currentIndex).fadeIn();
		
		timer = setInterval(function(){
			jQuery(items[currentIndex]).fadeOut();
			currentIndex = (currentIndex + 1 > items.length-1) ? 0 : currentIndex + 1;
			jQuery(items[currentIndex]).fadeIn();
			updateControls();
		},delay);
	}();
}

jQuery(function(){
	elementCycle = new ElementCycle(jQuery('div#home-banner li'), 8000);
	for(var i = 0; i < elementCycle.items.length; i++){
		jQuery('ol#banner-controls').append(jQuery('<li>'+(i+1)+'</li>').click(function(){elementCycle.jumpTo(parseInt(jQuery(this).text())-1);}));
	}
	elementCycle.updateControls();
});

