(function($){  
     $.fn.extend({
        bannerRotator: function(settings) {  
			settings = jQuery.extend({
				timeout: 4000
			},settings);
			var play = null;
			var objectId = this.attr("id");
			var lastEl = null;
			function _initialize(){
				_start();
			}
			function _start(){
				var first =  $('div#'+objectId+' div.banner_menu ul:first-child');
				_load(first);
				$('div#'+objectId+' div.banner_image .desc').show();
				$('div#'+objectId+' div.banner_menu ul li:first').addClass('active'); 
				$('div#'+objectId+' div.banner_menu ul li').click(function(){ 
					_load($(this));
					clearTimeout(play); 
				}) .hover(function(){
					$(this).addClass('hover');
					}, function() {
					$(this).removeClass('hover');
				});
				play = setTimeout(_auto,settings.timeout);
			}
			function _load(el){
					var imgAlt = el.find('a').attr("title"); //Get Alt Tag of Image
					var imgTitle = el.find('b').html(); //Get Main Image URL
					var imgDesc = el.find('p').html(); 	//Get HTML of block
					var imgDescHeight = $(".banner_image").find('.block').height();	//Calculate height of block	
					var imgLink = el.find('a').attr("href");
					
					var imgDescHeight = $('div#'+objectId+' div.banner_image').find('.block').height();
					if (el.is(".active")) {
						return false;
					} else {
						$('div#'+objectId+' div.banner_image .block').animate({ marginBottom: -imgDescHeight }, 250 , function() {
							$('div#'+objectId+' div.banner_image .block').html(imgDesc).animate({ marginBottom: "0" }, 250 );
							$('div#'+objectId+' div.banner_image img').attr({ src: imgTitle , alt: imgAlt});
							$('div#'+objectId+' div.banner_image a').attr({ href: imgLink });
						});
					}
					$('div#'+objectId+' div.banner_menu ul li').removeClass('active');
					el.addClass('active');
					lastEl = el;
					return false;
			}
			function _auto(){
				var current = ($('div#'+objectId+' div.banner_menu ul li.active')?  $('div#'+objectId+' div.banner_menu ul li.active') : $('div#'+objectId+' div.banner_menu ul li:first'));
				var next = ((current.next().length) ? ((current.next().hasClass('active')) ? $('div#'+objectId+' div.banner_menu ul li:first') :current.next()) : $('div#'+objectId+' div.banner_menu ul li:first'));
				_load(next);
				play = setTimeout(_auto,settings.timeout);
			}
			function _preload(image){
				var preload_image_object = new Image();
				preload_image_object.src = image;
			}
			_initialize();
		}
	});
})(jQuery);  
