//**********************************************************************************************************************
/**
* COMPANY: Zipline Interactive
* EMAIL: info@gozipline.com
* AUTHOR: Ryan Stemkoski
* PHONE: 509-321-2849
* DESCRIPTION: This document contains programming required for the Lookout Pass website.  Requires the jQuery library.
*/
//***********************************************************************************************************************

//***********************************************************************************************************************
//ON DOCUMENT READY FUNCTIONS USING JQUERY USED TO TRIGGER VARIOUS EVENTS
//***********************************************************************************************************************
$(function() {


	if($('.slide ul li').length > 1) {
		//SET GLOBAL VARIABLES
		var interval = 8000;
		var width = '';
		var negative_width = '';


		//HOMEPAGE SLIDER: SETS THE WIDTH OF THE ELEMNTS ON PAGE LOAD
		set_variables();

		//HOMEPAGE SLIDER: MOVE A SLIDE OVER TO THE LEFT
		$('.slide ul li:first').before($('.slide ul li:last'));

		//HOMEPAGE SLIDER: HANDLE A SLIDE LEFT REQUEST
		$('#presentation_slide_left').click(function() {
			slide('left');
		});

		//HOMEPAGE SLIDER: HANDLE A SLIDE RIGHT REQUEST
		$('#presentation_slide_right').click(function() {
			slide('right');
		});

		//HOMEPAGE SLIDER: ADJUST MEASUREMENTS WHEN THE WINDOW IS RESIZED
		$(window).resize(function() {
			set_variables();
		});

		//HOMEPAGE SLIDER: SET  A TIMER TO SLIDE RIGHT 
		var timer = setInterval('slide("right")', interval);

		//HOMEPAGE SLIDER: CLEAR TIMEER IF MOUSING OVER UL SO IT DOESN MOVE DURING MOUSEOVER
		$('.slide ul').hover(function(){  
			clearInterval(timer)  
		},function(){  
			timer = setInterval('slide("right")', interval);  
		}); 	
	} else {
		$('.slider_controls').css('visibility', 'hidden');
		$('.slide ul').css('width', 'auto');
	}	
});

//***********************************************************************************************************************
// THIS FUNCTION IS USED TO SET SLIDE ELEMENTS TO THE PROPER WIDTHS FOR THE USERS WINDOW
//***********************************************************************************************************************
function set_variables() {

	//GET THE WIDTH OF THE USERS WINDOW 
	width = $(window).width();
	
	//ADJUST THE LIST ITEMS TO FILL THE BROWSER WINDOW
	$('.slide ul li').width(width);
	
	//DETERMINE THE NEGATIVE WIDTH FOR USE WHEN PANNING LEFT
	negative_width = width * -1;
	
	//OFFSET 1 SLIDE LEFT SO WE HAVE SOMEWHERE TO SLIDE TO
	$('.slide ul').css({'left' : negative_width});
	
}

var can_slide = true;
//***********************************************************************************************************************
// THIS FUNCTION DOES THE ACTUAL ANNIMATION ON REQUEST BY CLICK OR BY TIMER
//***********************************************************************************************************************
function slide(where) {
	
	if(!can_slide) return;
				
	//GET THE WIDTH OF THE ITEM
	var item_width = $('.slide ul li').outerWidth();
	
	//DETERMINE WHICH DIRECTION TO SLIDE
	if(where == 'left'){
		
		//CALCULATE THE LEFT INDENT OF THE UNORDERED LIST FOR LEFT SLIDE
		var left_indent = parseInt($('.slide ul').css('left')) + item_width;

	} else{
		can_slide = false;
		$('.slide ul li:last').after($('.slide ul li:first').clone());
		//CLACULATE THE LEFT INDENT OF THE UNORDERED LIST FOR RIGHT SLIDE
		var left_indent = parseInt($('.slide ul').css('left')) - item_width;
	
	}
	
	//ANIMATE THE SLIDE USING jQUERY 
	$('.slide ul:not(:animated)').animate({'left' : left_indent},700,function(){
	
		//WHEN THE ANIMATION COMPLETES MOVE ITEM TO END TO GIVE ILLUSION OF INFINITE SCROLLING
		if(where == 'left'){
			 $('.slide ul li:first').before($('.slide ul li:last'));
		} else {
			// $('.slide ul li:last').after($('.slide ul li:first'));
			$('.slide ul li:first').remove();
			can_slide = true;
		}

		//ADJUST FOR NEGATIVE WIDTH
	    $('.slide ul').css({'left' : negative_width});
	});
	
}
