
(function($) {
	$.fn.slider = function() {
		var container = $(this);
		var max = container.find('div').size()-1;
		var interval = "5s";
		
		var panel = '<div class="panel">';
		
		var rotate = function() {
			$('.banner_box button.btn-next').click();
		}

		container.find('div').each(function(index) {
			var tooltip = (typeof($(this).attr('title')) == "undefined" ? "" : $(this).attr('title'));

			panel += '<button class="control" title="' + tooltip + '">' + index + '</button>';
			if (index != 0) {
				$(this).hide();
			}
		});
		panel += '</div>';

		container
			.attr('current', 0)
			.addClass('banner_box')
			.append('<button class="control btn-prev">&lt;</button><button class="control btn-next">&gt;</button>')
			.append(panel)
			.bind('mouseenter', function() {
				$('.banner_box button.control').fadeIn('slow');
				$(document).stopTime("rotate");
			})
			.bind('mouseleave', function() {
				$('.banner_box button.control').fadeOut('slow');
				$(document).everyTime(interval, "rotate", rotate);
			});

		$('.banner_box div.panel button').bind('click', function() {
			var current = container.attr('current');
			var next = $(this).text();
			
			if (current != next) {
				$('.banner_box div:eq(' + current + ')')
					.fadeOut('slow', function() {
						$('.banner_box div:eq(' + next + ')').fadeIn('slow');
						container.attr('current', next);
					});
			}
			return false;
		});

		$('.banner_box button.btn-prev').bind('click', function() {
			var current = parseInt(container.attr('current'));
			current = (current == 0 ? max : current-1);
			$('.banner_box div.panel button:eq(' + current + ')').click();
			return false;
		});

		$('.banner_box button.btn-next').bind('click', function() {
			var current = parseInt(container.attr('current'));
			current = (current == max ? 0 : current+1);
			$('.banner_box div.panel button:eq(' + current + ')').click();
			return false;			
		});

		$(document).everyTime(interval, "rotate", rotate);
	};
})(jQuery);

