(function($){ 
    $.fn.extend({ 
        slideshow: function(options) { 
 
            var defaults = { 
				arrLength: 3,
				speed: 7000,
				fadeSpeed: 1000,
				currentClass: "current",
				bannerHeight: 239
            }; 
            
            $(this).children("div.featured").each(function(i){
	            if (i == '0'){
		            $(this).addClass("current");
	            }
	            else{
		            $(this).hide();
	            }
            })
         
            var options = $.extend(defaults, options); 
             
            return this.each(function() { 
                
	            var obj = $(this);
				var arrLength = options.arrLength;
				var speed = options.speed;
				var fadeSpeed = options.fadeSpeed;
				var counter = 0;
				var activeControls = true;
				var currentPage = 0;
				var currentClass = options.currentClass;
				var bannerHeight = options.bannerHeight;
				var active = false;

				
				
				if(arrLength>1){
					$('ul#controls li a').each(function(){
						if ($(this).attr('rel')=='1'){
								$(this).parent().addClass(currentClass);
							}
						}
					);
					var timerInt = setInterval( changeImg, speed );
				}
				
				obj.mouseover(function(){
					active = true;
				})
				obj.mouseout(function(){
					active = false
				})

				
				function changeImg() {
					if(active == false){
						if(counter < (arrLength-1)){
							counter = counter+1;
						}
						else{
							counter=0;
						}
						fadeOut();
					}
				};
				
				function fadeOut(){
						activeControls = false;
							$('div.current').fadeOut(fadeSpeed);

							currentPage = counter+1;
							$('ul#controls li a').each(function(){
								if ($(this).attr('rel')==currentPage){
										$(this).parent().addClass(currentClass);
									}
									else{
										$(this).parent().removeClass(currentClass);
									}
								}
							);
							obj.children("div.featured").each(function(i){
								if (currentPage == (i+1)){
									$(this).addClass("current").fadeIn(fadeSpeed, function(){
										//$(this).children("div.desc").show("slide", { direction: "down" }, 200);
										activeControls = true;
									});
								}
								else{
									$(this).removeClass("current");
								}
								
							})
						
						
					
				}
				
				function resetInterval(){
					clearInterval(timerInt);
					timerInt = setInterval( changeImg, speed );
				}
				
				
				$('ul#controls li a').click(function(){
					if(activeControls == true){
						if(counter != $(this).attr('rel')-1){
							counter = $(this).attr('rel')-1;
							resetInterval();
							fadeOut();
						}
					}
					return false;
				})
				
                       
            }); 
        } 
    }); 
})(jQuery);
