/*
	slider jQuery scripts
*/

jQuery(document).ready(function($) {
	
	function reIndex () {
		if (dir == 'prev') {
			if (slide_curr == slide_min + 1) {
				slide_prev = slide_max;
				slide_curr = slide_min;
				slide_next = slide_min + 1;
			} else if (slide_curr == slide_min) {
				slide_prev = slide_max - 1;
				slide_curr = slide_max;
				slide_next = slide_min;
			} else {
				slide_curr = slide_prev;
				slide_prev = slide_curr - 1;
				slide_next = slide_curr + 1;
			}
		} else {
			if (slide_curr == slide_max - 1) {
				slide_curr = slide_max;
				slide_prev = slide_max - 1;
				slide_next = slide_min;
			} else if (slide_curr == slide_max) {
				slide_curr = slide_min;
				slide_prev = slide_max;
				slide_next = slide_min + 1;
			} else {
				slide_curr = slide_next;
				slide_prev = slide_curr - 1;
				slide_next = slide_curr + 1;
			}
		}
	}
	
	function setDisplay () {
		// reset the z-index vals
		$(slides).css('z-index','1');
		$(slides[slide_curr]).css('z-index', '2');
		//$(slides).css('display','none');
		
		// turn on the display of the next slide
		if (dir == 'prev') {
			$(slides[slide_prev]).css('display','block');
		} else {
			$(slides[slide_next]).css('display','block');
		}
	}
	
	function doTransition () {
		// fade the current slide out (to zero opacity)
		$(slides[slide_curr]).fadeOut(900);
	}
	
	function printSelectors () {
		var li_string = '';
		var selector_class;
		for (var i=0; i<=slide_max; i++) {
			//display_num = i+1;
			display_num = '';
			if (slide_curr == i) {
				selector_class = ' class="current"';
			} else {selector_class = '';}
			li_string = li_string + '<li id="slider_sel_'+i+'"'+selector_class+'>'+display_num+'</li>';
		}
		$('#bx_slider ul.slide-selectors').html(li_string);
		
		// click number selector
		$('#bx_slider ul.slide-selectors li').click(function() {
			
			is_paused = true;
			slide_curr = $(this).index();
			
			if (slide_curr == slide_max) {
				slide_prev = slide_curr - 1;
				slide_next = slide_min;
			} else if (slide_curr == slide_min) {
				slide_prev = slide_max;
				slide_next = slide_curr + 1;
			} else {
				slide_prev = slide_curr - 1;
				slide_next = slide_curr + 1;
			}
			
			
			$(slides[slide_curr]).css('display','block');
			setDisplay();
			reClassSelectors();
			
			//$('#bx_state2').html('clicked: '+$(this).index()); // just for debugging purposes
		});
	}
	
	function reClassSelectors () {
		$('#bx_slider ul.slide-selectors li').removeClass('current');
		$('#slider_sel_'+slide_curr).addClass('current');
	}
	
	function slideShow_play () {
		$(slides).css('display','none');
		$(slides[slide_curr]).css('display','block');
		setDisplay();
		doTransition();
		reIndex();
		reClassSelectors();
		//printState();
		if (is_paused != true) {
			timeout = setTimeout(slideShow_play, interval);
		}
	}
	
	function slideShow_start () {
		$(slides[slide_curr]).css('display','block');
		printSelectors();
		setDisplay();
		//printState();
		timeout = setTimeout(slideShow_play, 3000);
	}
	
	// just for debugging purposes
	/*function printState () {
		
		var state_str = 'slide_prev='
			+ slide_prev
			+ '; slide_curr='
			+ slide_curr
			+ '; slide_next='
			+ slide_next
			+ '; slide_max='
			+ slide_max
			+ '; slide_min='
			+ slide_min;
		$('#bx_state').html(state_str);
		
	}*/
	
	// set hover
	$('#bx_slider').hover(function() {
		is_paused = true;
		clearTimeout(timeout);
	}, function() {
		is_paused = false;
		dir = 'next';
		timeout = setTimeout(slideShow_play, interval);
	});
	
	// prev-next
	$('#bx_slider .slide-btns').click(function() {
		if ($(this).hasClass('prev')) {dir = 'prev';} else {dir = 'next';}
		slideShow_play();
	});
		
		
		
	
	// variables, initialize the settings
	var slides = $('#bx_slider .slide');
	var interval = 4000;
	var is_paused = false;
	var dir = 'next';
	var slide_min = 0;
	var slide_max = slides.length - 1;
	var slide_curr = 0;
	var slide_prev = slide_max;
	var slide_next = 1;
	
	// start it all off when the page loads
	slideShow_start();
	
});



