(function($){
 
        $.fn.nervSlider = function(options){
         
        $timer = null;
        $index = 0;
	$clicked = false;
	$triggered = true;
	
        $.fn.nervSlider.options = $.extend({}, $.fn.nervSlider.defaults, options);
         
        return this.each(function(){
			
            $this = $(this);
            $images = $this.find($.fn.nervSlider.defaults.selector);
        
            $.fn.nervSlider.arrangeImages();
            $.fn.nervSlider.runSlideshow();
            
            $triggers = $($.fn.nervSlider.defaults.listing+" li a");
            
            $triggers.bind("click",function(event){

                event.preventDefault();
                var timer = $.fn.nervSlider.defaults.transitionTime;
                var index = $(this).index($.fn.nervSlider.defaults.listing+" li a");
		$clicked = true;
		$.fn.nervSlider.setActiveIndex(index);
                $images.eq(index).nextAll($.fn.nervSlider.defaults.selector).show();
                $images.eq(index).prevAll($.fn.nervSlider.defaults.selector).fadeOut(timer);
		$timer = clearInterval($timer);
                $images.eq(index).stop(true,true).fadeIn(timer, function(){
			$timer = clearInterval($timer);
			$.fn.nervSlider.runSlideshow();	
		});
                
             })
	    
	$viewport = {   
	StartX:$this.position().left,
	EndX:$this.position().left+$($.fn.nervSlider.defaults.selector).width(),
	StartY:$this.position().top,
	EndY:$this.position().top + $($.fn.nervSlider.defaults.selector).height()
	}

	$(document).mousemove(function(e){
	    
	    if($.fn.nervSlider.withinBounds(e,$viewport)){
		$timer = clearInterval($timer);
		$triggered = false;
	    }else{
		if(!$triggered){
		$.fn.nervSlider.runSlideshow();
		$triggered = true;
		}
	    }
	
	});

	    
        })
     
        };
         
        $.fn.nervSlider.arrangeImages = function(){
            $maxZindex = $images.length;
            $images.each(function(){
                $(this).css("z-index",$maxZindex);
                $maxZindex--;
            });
            $($.fn.nervSlider.defaults.textInfo).css("opacity","0.55");
            $.fn.nervSlider.setActiveIndex($index);
        };
        
        $.fn.nervSlider.setActiveIndex = function(index){
            var listClass = $.fn.nervSlider.defaults.listing;
            var listActiveClass = $.fn.nervSlider.defaults.activeClass;
            var textbox = $($.fn.nervSlider.defaults.textInfo);
	    var textItem = $.fn.nervSlider.defaults.textItem;
	    
	    $index = index;
	    
            $(listClass+" li a").removeClass(listActiveClass).eq(index).addClass(listActiveClass);
	    $(textItem).removeClass(listActiveClass).eq(index).addClass(listActiveClass);
	     $($.fn.nervSlider.defaults.textInfo).height($(textItem).eq(index).height()+20);
        };
        
        $.fn.nervSlider.runSlideshow = function(){
            
            $timer = setInterval(function(){
                $.fn.nervSlider.switchImages();
            },$.fn.nervSlider.defaults.switchDelay);
            
        };
            
        $.fn.nervSlider.switchImages = function(){
            var timer = $.fn.nervSlider.defaults.transitionTime;
            var image = $images.eq($index);
            $maxZindex = $images.length;
	    
	    
	    if($index < $maxZindex-1){
		$index++;	
		image.fadeOut(timer);
	    }else{
		$index = 0;
		$images.fadeIn(timer);
	    }
	
            $.fn.nervSlider.setActiveIndex($index);
        };
        
	
	$.fn.nervSlider.withinBounds = function(mouseevent,viewport){
		
		if(mouseevent.pageX>viewport.StartX && mouseevent.pageX<viewport.EndX){
			//is within X bounds
			if(mouseevent.pageY<viewport.EndY && mouseevent.pageY>viewport.StartY){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
		
	}
	
        $.fn.nervSlider.defaults = {
            listing:".imagenamelist",
            textInfo:".textOverlay",
            textContent:".textContent",
	    textItem:".textItem",
            activeClass:"active",
            switchDelay:3000,
            transitionTime:1000,
	    selector: ".heroImage"
        }
     
 
})(jQuery); 
