// Website Slide Show; author: http://www.reusserdesign.com/
var autoSlideSpeed = 5000, timeOutID = 0;
//Helper Function
Array.prototype.in_array = function(p_val) { for(var i = 0, l = this.length; i < l; i++) { if(this[i] == p_val) { return true; } } return false; }
//Global Variables
var slideable = true;
var loading, width = initWidth = 936, slideSpeed = 500, currentSlide = 1, firstImage, pageSeal, search = location.search.replace('?','');;
var slidesNumeric = slideNames = ['seracCrest','rarestWater','crest','shippingBox','mount2', 'mount3', 'mount4', 'mount5', 'mount6', 'seracBox','shippingBox1', 'information']; //slide id's go here in order
//Establishes slide positions throughout slideshow
for( var x = 0; x < slideNames.length; x++ ) {
	slideNames[slideNames[x]] = initWidth * x * -1;
}
//Checks to see if an element (img) is loaded. Once it's loaded it hides the load bar
function checkOnload( element, pendingFunction ) {
	if( element.complete && pageSeal.complete ) {
		setTimeout(hideLoadingBar, 200);
		loading = false;
		if( typeof pendingFunction == 'function' ) {
			pendingFunction();
		}
	}
	else {
		setTimeout(function() { checkOnload(element, pendingFunction); }, 500);
	}
}
//Make decisions based on which slide you are viewing
function viewingSlide( currentSlide ) {
	//adjust viewingWindow height
	var height = $('#slide_'+slidesNumeric[currentSlide-1]).height();
	$('#viewingWindow').css({height: height+'px'});
	if( currentSlide == slidesNumeric.length ) {
		$('#slideRight').animate({opacity: '.2'}, 100);
	}
	switch( currentSlide ) {
		case 1:
			$('#slideLeft').animate({opacity: '.2'}, 100);
		break;
	}
}
//Make decisions based on which slide you are leaving
function leavingSlide( previousSlide, nextSlide ) {
	var pendingFunction = ( nextSlide > previousSlide )? slideLeft:slideRight;
	if( nextSlide-1 >= slidesNumeric.length || nextSlide-1 < 0 )
		return false;
	if( !document.getElementById('slide_'+slidesNumeric[nextSlide-1]).getElementsByTagName('img')[0].complete ) {
		setTimeout(displayLoadingBar, 200);
		loading = true;
		checkOnload(document.getElementById('slide_'+slidesNumeric[nextSlide-1]).getElementsByTagName('img')[0], pendingFunction );
		return false;
	}
	if( previousSlide == slidesNumeric.length ) {
		$('#slideRight').animate({opacity: '1'}, 100);
	}
	switch( previousSlide ) {
		case 1:
			$('#slideLeft').animate({opacity: '1'}, 100);
		break;
	}
	return true;
}
//View previous slide
function slideRight() {
	if( loading ) return false;
	if( leavingSlide(currentSlide, currentSlide - 1) ) {
		var currentLeft = parseInt($('#slider').css('left').replace('px',''));
		if( slideable === true && currentLeft < 0 ) {
			slideable = false;
			currentSlide--;
			$('#slide_'+slidesNumeric[currentSlide]+', #slide_'+slidesNumeric[currentSlide-1]).animate({opacity: '0'}, 500, function() {
				$('#slider').animate( {left: (currentLeft + initWidth)+'px'}, slideSpeed, function() { 
					$('#slide_'+slidesNumeric[currentSlide]+', #slide_'+slidesNumeric[currentSlide-1]).animate({opacity: '1'}, 500, function() { slideable = true; });
				 });
			});
		}
		viewingSlide(currentSlide);
	}
	clearTimeout(timeOutID);
	timeOutID = setTimeout(slideLeft, autoSlideSpeed);
}
//View next Slide
function slideLeft() {
	if( loading ) return false;
	if( leavingSlide( currentSlide, currentSlide + 1 ) ) {
		var currentLeft = parseInt($('#slider').css('left').replace('px',''));
		if( slideable === true && currentLeft > (width - initWidth)*-1 ) {
			slideable = false;
			currentSlide++;
			$('#slide_'+slidesNumeric[currentSlide-2]+', #slide_'+slidesNumeric[currentSlide-1]).animate({opacity: '0'}, 500, function() {
				$('#slider').animate( {left: (currentLeft - initWidth)+'px'}, slideSpeed, function() { 
					$('#slide_'+slidesNumeric[currentSlide-2]+', #slide_'+slidesNumeric[currentSlide-1]).animate({opacity: '1'}, 500, function() { slideable = true; });
				 } );
			});
		}
		viewingSlide(currentSlide);
	}
	clearTimeout(timeOutID);
	timeOutID = setTimeout(slideLeft, autoSlideSpeed);
}
function displayLoadingBar() {
	$('#loadingBar').animate({left: '0px'}, 500 );
}
function hideLoadingBar() {
	//$('#slider').animate({opacity: '1'}, 400);
	//$('#seal').animate({opacity: '.6'}, 400);
	$('#loadingBar').animate({left: '-460px'}, 500);
	clearTimeout(timeOutID);
	timeOutID = setTimeout(slideLeft, autoSlideSpeed);
}
//When document is loaded into the browser
$(document).ready(function() {
	$('#slideRight').click(function() {slideLeft();});
	$('#slideLeft').click(function() {slideRight();});
	firstImage = document.getElementById('slide_'+slidesNumeric[0]).getElementsByTagName('img')[0];
	pageSeal = document.getElementById('pageSeal');
	if( !firstImage.complete || !pageSeal.complete ) {
		//$('#slider, #seal').animate({opacity: 0}, 1);
		loading = true;
		setTimeout(displayLoadingBar, 200);
	}
	firstImage.onload = function() { checkOnload( firstImage, false ) };
	//get initial width for slider
	initWidth = $('.slide').width();
	width = $('.slide').size() * initWidth;
	$('#slider').css('width',width+'px');
	if( slideNames.in_array(search) ) {
		$('#slider').css('left',slideNames[search]+'px');
		currentSlide = (slideNames[search] / (initWidth*-1)) +1;
	}
	viewingSlide(currentSlide);
});