(function($) {
	$.fn.extend({

		lsnSlider : function(options) {

			var defaults = {
				slideButtons		: '.slidebuttons',
				slideDiv			: '.slides',
				slideEasing			: '',
				buttonEasing		: 'easeInExpo',
				delayOut			: 900,
				timerDelay			: 3000,
				normalZIndex		: 1,
				activeZIndex		: 5,
				cufonReplace		: true,
				CufonFontList		: CufonFontList
			};

			var options = $.extend(defaults, options);
			
			var selectedSlide = null;
			
			return this.each(function() {
				var o 			= options;
				var obj			= $(this);
				var objButtons 	= obj.find(o.slideButtons);
				var slideDiv	= obj.find(o.slideDiv);
				var timer	    = setTimeout('void(0)',0);
				var isManual	= false;
				activeSlideID	= -1;
				
				objButtons.find('li a').click(itemClicked);
				objButtons.find('li').hover(itemHover,itemHout);
				slideDiv.find('.slide').hover(itemHover,itemHout);
						
				itemHout();				
					
				function itemHover(){
					window.clearTimeout(timer);
					isManual = true;
				};
				
				function itemHout(){
					timer = setTimeout(itemClicked,o.timerDelay);
					isManual = false;
				};
				
				var goToSlideID = 0;
				
				function itemClicked (){
					
					if(isManual == false){
						goToSlideID++;
					}else{
						goToSlideID = $(this).parent().index();	
					}
					
					goToSlideID %=	objButtons.find('li').length;		
										
					if(activeSlideID == goToSlideID){ return false; }
					
					li = $(objButtons.find('li')[goToSlideID]);
					li.stop();
					objButtons.find('li.activebutton').css('z-index',o.normalZIndex).removeClass('activebutton');
					li.addClass('activebutton');
					li.css('z-index',o.normalZIndex);
					
					li.animate({left:'-20px'},200,o.buttonEasing,function(){
						$(this).css('z-index',o.activeZIndex);
					});
										
					li.animate({left:'0'},300,o.buttonEasing);
					
					if(selectedSlide){
						selectedSlide.fadeOut(o.delayOut);
					}
					
					activeSlideID = goToSlideID;
					
					selectedSlide		= $(slideDiv.find('.slide')[activeSlideID]);
					selectedSlide.fadeIn(o.delayOut);					
					
					if(isManual == false){
						timer = setTimeout(itemClicked,o.timerDelay);
					}	
					
					cufonReReplace(objButtons.find('li a'),{fontFamily : 'GothamBold'}); 
					
					return false;
				};
				
			});

		}
	});
})(jQuery);

