(function($){
	$.fn.extend({ 
		slideSwitch: function(options)
		{
			
		var defaults = 
		{
			transitionSpeed: 500,
			displayTime: 5000,
			inView: 0,
			advance: 1,
			autoStart: true,
			prevNextInternal: true
		};
		var options = $.extend(defaults, options);

		var obj = $('ul', this);
		var hdCount = $('li', obj).length; // Number of elements
		 
		var clearInt = 50;
		var o=options;
		if(o.inView > hdCount-1) o.inView=hdCount-1;
		
		$('#next').css('opacity',.5).click(function(){
			forcePrevNext('next');
		}).hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.5'},250)});
		
		$('#prev').css('opacity',.5).click(function(){
			forcePrevNext('prev');
		}).hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.5'},250)});		

		$('.text').css('opacity',.80).hover(function(){$(this).animate({opacity:'1'},250)},function(){$(this).animate({opacity:'.80'},250)});
		
		function forcePrevNext(dir)
		{
			autopilot = 0;
			status='pause';
			clearTimeout(clearInt);
			(dir=='prev') ? doPrev():doNext();
			setTimeout(function(){},o.transitionSpeed);
		}
		
		function doNext(dist)
		{
			d = o.inView;
			o.inView = o.inView + 1;
			
			if(o.inView > hdCount-1) { o.inView = 0 };
			
			$('li', obj).eq(d).css({opacity: 1.0}).animate({opacity: 0.0}, 600);
			$('li', obj).eq(d).css('display', 'none');
			
			$('li', obj).eq(o.inView).css('display', 'block');
			$('li', obj).eq(o.inView).css({opacity: 0.0}).animate({opacity: 1.0}, 600);
			$('li', obj).eq(o.inView).find('div').css({marginBottom: '-85px'}).animate({marginBottom: '0px'}, 600);
			
		}		
		
		function doPrev(dist)
		{
			d = o.inView;
			o.inView = o.inView - 1;
			
			if(o.inView < 0) { o.inView = hdCount-1 };
			
			$('li', obj).eq(d).css({opacity: 1.0}).animate({opacity: 0.0}, 600);
			$('li', obj).eq(d).css('display', 'none');
			
			$('li', obj).eq(o.inView).css('display', 'block');
			$('li', obj).eq(o.inView).css({opacity: 0.0}).animate({opacity: 1.0}, 600);
			$('li', obj).eq(o.inView).find('div').css({marginBottom: '-85px'}).animate({marginBottom: '0px'}, 600);
		}			
		
    	if(o.autostart)
		{
			var clearInt = setInterval(function(){doNext();},o.displayTime+o.transitionSpeed);
		}	
	}

	});
})(jQuery);
