(function($){  

	
	$.fn.bannerNext= function(options){
		var selectorUsed = this.selector;
		return this.each(function() { 
			el = $(this);

			var zindex = el.data("zindex");
			var slides = $(el).find('a');
			slides.css("z-index",zindex);
			
			if($(el).find('a.active').length != 1){
				$(el).find('a.active').removeClass('active');
				var active = slides.eq(0);
			} else {
				var active = $(el).find('a.active');
			}
			
			var interval = el.data("interval");
			
			if(active.next().length ==1){
				active.next().css("z-index",zindex+1).addClass('active').stop().hide().css("opacity",1).fadeIn(function(){
					active.hide();
					active.removeClass('active');
					clearInterval(el.data("intervalHandler"));
					el.data("intervalHandler", setInterval("jQuery('"+selectorUsed+"').bannerNext()",interval*1000));
				});
				
			} else {
				slides.eq(0).addClass('active').css("z-index",zindex+1).stop().hide().css("opacity",1).fadeIn(function(){
					active.hide();
					active.removeClass('active');
					clearInterval(el.data("intervalHandler"));
					el.data("intervalHandler", setInterval("jQuery('"+selectorUsed+"').bannerNext()",interval*1000));
				});
			}
		});
	}
	
	$.fn.bannerPrev= function(options){
		var selectorUsed = this.selector;
		return this.each(function() {
			el = $(this);
			var zindex = el.data("zindex");

			var slides = $(el).find('a');
			slides.css("z-index",zindex);
			
			if($(el).find('a.active').length != 1){
				$(el).find('a.active').removeClass('active');
				var active = slides.eq(0);
			} else {
				var active = $(el).find('a.active');
			}
			
			active.removeClass('active');
			var interval = el.data("interval");
			
			if(active.prev().length >0){
				active.prev().css("z-index",zindex+1).addClass('active').stop().hide().css("opacity",1).fadeIn(function(){
					active.hide();
					active.removeClass('active');
					clearInterval(el.data("intervalHandler"));
					el.data("intervalHandler", setInterval("jQuery('"+selectorUsed+"').bannerNext()",interval*1000));
				});
			} else {
				slides.eq(slides.length-1).css("z-index",zindex+1).addClass('active').stop().hide().css("opacity",1).fadeIn(function(){
					active.hide();
					active.removeClass('active');
					clearInterval(el.data("intervalHandler"));
					el.data("intervalHandler", setInterval("jQuery('"+selectorUsed+"').bannerNext()",interval*1000));
				});
			}
		});
	}
	
	

	$.fn.banner = function(options) {  
		var defaults = {  
			height: -1,
			width: -1, 
			interval: 5,
			zindex: 100,
			aCss: {"display": "none", "margin":"0", "padding":"0", "border":"0", "position":"absolute"},
			imgCss: {"display": "block", "margin":"0", "padding":"0", "border":"0"}
		};  
		
		var selectorUsed = this.selector;
		
		function findHeight(o){
			var h=0;
			o.find('img').each(function(){
				if($(this).height() > h){
					h = $(this).height();
				}
			});
			return h;
		}
		
		function findWidth(o){
			var w=0;
			o.find('img').each(function(){
				if($(this).width() > w){
					w = $(this).width();
				}
			});
			return w;
		}
		
		var options = $.extend(defaults, options);  
		return this.each(function() {  
			
			obj = $(this);
			if(options.height <0){
				options.height = findHeight(obj);
			}
			if(options.width <0){
				options.width = findWidth(obj);
			}
			obj.css({"height":options.height+"px","width":options.width+"px"});
			var slides = obj.find('a');
			slides.css(options.aCss);
			obj.find('img').css(options.imgCss);
			slides.eq(0).addClass('active').css("z-index",options.zindex+1).stop().fadeIn();
			$(this).data("intervalHandler", setInterval("jQuery('"+selectorUsed+"').bannerNext()",options.interval*1000));
			$(this).data("interval",options.interval);
			$(this).data("zindex",options.zindex);
		});  
	};  
	
	
})(jQuery);  