(function($){  
     $.fn.extend({
        bannerRotator: function(settings) {  
			settings = jQuery.extend({
				timeout: 8000,
				imagePath:'/files/images/home_slider/',
				buttonsPath:'/gfx/headers/',
				banners:new Array()
			},settings);
			var play = null;
			var objectId = this.attr("id");
			var lastEl = null;
			function _initialize(){
				$(" <div />" ).addClass("banner_image").html('<a href=""><img src="" alt="" border="0"></a><div style="display: block;" class="desc"><div style="margin-bottom: 0px; display: block;" class="block"></div></div>').appendTo($('#'+objectId));
				var html = '<ul>';
				$.each(settings.banners, function(i,item){
					var btNum = new Number(i+1);
					_preload(settings.buttonsPath+'bt'+btNum+'_on.gif');
					_preload(settings.imagePath+item.image);
					html += '<li class="" style="background: url('+settings.buttonsPath+'bt'+btNum+'_off.gif) no-repeat;height:'+item.btnHeight+'px;"><a href="'+settings.imagePath+item.image+'"></a><div class="block">'+item.title+'</div><div class="banner_id">'+i+'</div></li>';
				});
				html += '</ul>';
				$(" <div />" ).addClass("banner_menu").html(html).appendTo($('#'+objectId));
				_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_image .block').animate({ opacity: 1.00 }, 1 );

				$('div#'+objectId+' div.banner_menu ul li:first').addClass('active'); 
				_swapButton($('div#'+objectId+' div.banner_menu ul li:first'),'on');
				$('div#'+objectId+' div.banner_menu ul li').click(function(){ 
					var indx = $(this).find('.banner_id').html();
					var imgLink = settings.banners[indx]['link'];
					window.location.href=imgLink;
				}) .hover(function(){
					$(this).addClass('hover');
					_swapButton($(this),'on');
					}, function() {
					$(this).removeClass('hover');
					_swapButton($(this),'off');
				});
				play = setTimeout(_auto,settings.timeout);
			}
			function _load(el){
					var indx = el.find('.banner_id').html();
					
					var imgTitle = settings.imagePath+settings.banners[indx]['image'];
					var imgDesc = settings.banners[indx]['text'];
					var imgAlt = settings.banners[indx]['title'];
					var imgLink = settings.banners[indx]['link'];
					
					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');
					if(lastEl != null){
						_swapButton($('div#'+objectId+' div.banner_menu ul li:first'),'off');
						_swapButton(lastEl,'off');
					}
					el.addClass('active');
					_swapButton(el,'on');
					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 _swapButton(el,type){
				var bgImg = el.css("background-image");
				if(type == 'on'){
					var newBgImg = bgImg.replace("_off", "_on");
					el.css("background-image", newBgImg);
				}else{
					if(!el.hasClass("active")){
						var newBgImg = bgImg.replace("_on", "_off");
						el.css("background-image", newBgImg);
					}
				}
			}
			function _preload(image){
				var preload_image_object = new Image();
				preload_image_object.src = image;
			}
			_initialize();
		}
	});
})(jQuery);  