/************************************
	Simple Slider  
	
	Author: Patrick Hildebrandt
	Last Update: 9.28.2011
	
	WIP
************************************/

(function(){
	
	$.fn.simpleSlider = function(options){
		
		var element = this;
		
		//set up default options
		var defaultOptions = {
			intervalTimer: 5000,
			animSpeed: 500,
			easing: 'linear',
			buildNav: true,
			autoPlay: true,
			pauseOnHover: true
		}
		
		//extend options if set
		$.extend(defaultOptions, options);	
	
		//copy & paste last & first slides for infinite loop
		var firstSlide = $('li:first', element).clone();
		var lastSlide = $('li:last', element).clone();
		firstSlide.appendTo(element);
		lastSlide.prependTo(element);
		
		//set and remeasure slider width
		var slide = $('li', element);
		var slideCount = slide.length;
		var slideWidth = slide.outerWidth();
		$(element).width(slideWidth * slideCount).css('left', -slideWidth);
		var sliderWidth = $(element).outerWidth();
		
		//build navigation
		if(defaultOptions.buildNav){
			$(element).parent().parent().append('<img src="images/arrow-left.png" class="arrowleft slidernav" /><img src="images/arrow-right.png" class="arrowright slidernav" />');
		}
		
		//slider animation function
		function sliderAnimate(dir){
			if(!dir){
				dir = '-';
			}
			$(element).animate({
				left : dir + '=' + slideWidth
			}, defaultOptions.animSpeed, defaultOptions.easing, function(){
				var sliderPosition = parseFloat($(element).css('left'));
				if(sliderPosition == -(sliderWidth - slideWidth)){
					$(element).css('left',-slideWidth);
				}
				if(sliderPosition == 0){
					$(element).css('left',-(sliderWidth - (slideWidth * 2)));	
				}
			});
		}
		
		//automatic play
		if(defaultOptions.autoPlay){
			var simpleSliderInt = setInterval(sliderAnimate, defaultOptions.intervalTimer);
		}
		
		//pause on hover
		if(defaultOptions.pauseOnHover){
			$(element).hover(function(){
				clearInterval(simpleSliderInt);
			}, function(){
				simpleSliderInt = setInterval(sliderAnimate, defaultOptions.intervalTimer);
			});
		}
		
		//advance right on click, reset timer
		$('.slidernav').click(function(){
			var navDirection = $(this).attr('class').replace(' slidernav','');
			if(!$(element).is(':animated')){
				if(navDirection == 'arrowright'){
					sliderAnimate('-');
				} else if(navDirection == 'arrowleft'){
					sliderAnimate('+');
				}
				clearInterval(simpleSliderInt);
				simpleSliderInt = setInterval(sliderAnimate, defaultOptions.intervalTimer);
			}
		});
		
		
	}
		
})(jQuery);
