(function($) 
{	
	var banner_animating = false;
	var banner_currentItem = 0;
	var banner_items = 0;
	var banner_options = null;
	var banner_paused = false;
	var banner_reset = 0;
	var banner_reset_image = 0;
	var banner_timer = null;
		
	$.fn.banner = function(option)
	{		
		banner_options = $.extend({
			pixels:48,
			options: {},
			speed:100,
			fade:500,
			duration: 500,
			callback: null
		}, (option||{}));
		
		return this.each(function()
		{
			var e = $(this);
			var menu_items = $(this).find("li");
			banner_items = $(menu_items).length;
			banner_reset = $("#banner_indicator").offset().top;
			banner_reset_image = $("#banner_image_0").offset().top;
			
			$(menu_items).each(function(i)
			{
				$(this).bind("mouseover",function()
				{
					banner_paused = true;
					$.fn.banner.goCycle(false);
					$.fn.banner.goTo(parseInt(String(this.id).replace("banner_item_","")));
				});
				$(this).bind("mouseout",function()
				{
					banner_paused = false;
					$.fn.banner.goCycle(true);
				});
			});
			
			$.fn.banner.goCycle(true);
		});
	}
	
	$.fn.banner.goCycle = function(start)
	{
		if(start)
		{
			banner_timer = window.setInterval(function()
			{
				if(!banner_paused)
				{
					var position = banner_currentItem+1;
					if(position == banner_items)position = 0;
					$.fn.banner.goTo(position);
				}
			},5000);
		}
		else window.clearInterval(banner_timer);
	}
	
	$.fn.banner.goTo = function(position)
	{
		$("#banner_indicator").queue(function()
		{
			$(this).animate({top:(banner_reset+(position*$(this).height()))},banner_options.speed);
			$(this).dequeue();
		});
		
		if(banner_currentItem != position)
		{
			$("#banner_image_"+banner_currentItem).queue(function()
			{			
				$(this).fadeOut(banner_options.fade);
				$("#banner_image_"+position).fadeIn(banner_options.fade+200);
				$(this).dequeue();
			});
			banner_currentItem = position;
		}		
	}
})(jQuery);
