(function($){  
     $.fn.extend({
        bannerRotator: function(settings) {  
			settings = jQuery.extend({
				timeout_long: 10000,
				timeout: 5000,
				imagePath:'',
				buttonsPath:'/gfx/headers/',
				stopped: false,
				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(item.b_on);
					var img = settings.imagePath+item.image;
					_preload(img);
					
					
					html += '<li class="" style="background: url('+item.b_off+') no-repeat;height:'+item.btnHeight+'px;"><a href="'+img+'"></a><div class="block">'+item.title+'</div><div class="banner_id">'+i+'</div></li>';
//					html += '<li class="" style="background: url('+settings.buttonsPath+'bt'+btNum+'_off.gif) no-repeat;height:'+item.btnHeight+'px;"><a href="'+img+'"></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;
					settings.stopped = true;
					clearTimeout(play);
				_load($(this));
			

				}) .hover(function(){
					$(this).addClass('hover');
					_swapButton($(this),'on');
					}, function() {
					$(this).removeClass('hover');
					_swapButton($(this),'off');
				});
				if(!settings.stopped) {
				play = setTimeout(_auto,settings.timeout_long);
				}
			}
			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);
				if(settings.stopped) {
					clearTimeout(play);
				}
				if(!settings.stopped) {
					if(parseInt(lastEl.find('.banner_id').html()) == 0) {
						play = setTimeout(_auto,settings.timeout_long);
					} else {
						play = setTimeout(_auto,settings.timeout);
					}
				}
			}
			function _swapButton(el,type){
				var bgImg = el.css("background-image");
				el.innerHTML = bgImg;
				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;
				preload_image_object.onload = function() {
					if(this.src.indexOf("bnr_award") > -1 || this.src.indexOf("banner_lates") > -1) {
						_start();
					}
				}
			}
			_initialize();
		}
	});
})(jQuery);  
