// Website Slide Show; author: http://www.reusserdesign.com/
//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 = ['index','product','crest','shippingBox', 'largestGlacier', 'carbonGlacier', 'magnatude', 'riverRocks', 'volcanicEnergy', 'mineralDeposits', 'harvest', 'theSource', 'rareCombination', 'startified', 'carbonRiver', 'humbling', 'utmostRespect', 'seal', 'products', 'commodity']; //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();
	height += 30;
	$('#viewingWindow').css({height: height+'px'});
	if( currentSlide == slidesNumeric.length ) {
		$('#slideRight').animate({opacity: '.2'}, 100);
	}
	switch( currentSlide ) {
		case 1:
			$('#slideLeft').animate({opacity: '.2'}, 100);
		break;
		case 18:
			//$('#seal').animate({opacity: '0'}, 300);
			$('#seal').fadeOut('slow');
		break;
		case 19:
			$('#seal').fadeOut('slow');
		 	//$('#seal').animate({opacity: '0'}, 300);
		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;
		case 18:
			if( nextSlide != 19 )
				$('#seal').fadeIn('slow');
				//$('#seal').animate({opacity: '.2'}, 300);
		break;
		case 19:
			if( nextSlide != 18 )
			$('#seal').fadeIn('slow');
			//$('#seal').animate({opacity: '.2'}, 300);
		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( currentLeft < 0 && slideable ) {
			currentSlide--;
			slideable = false;
			$('#slider').animate( {left: (currentLeft + initWidth)+'px'}, slideSpeed, function() { slideable = true; } );
		}
		viewingSlide(currentSlide);
	}
}
//View next Slide
function slideLeft() {
	if( loading )
		return false;
	if( leavingSlide( currentSlide, currentSlide + 1 ) ) {
		var currentLeft = parseInt($('#slider').css('left').replace('px',''));
		if( currentLeft > (width - initWidth)*-1 && slideable ) {
			currentSlide++;
			slideable = false;
			$('#slider').animate( {left: (currentLeft - initWidth)+'px'}, slideSpeed, function() { slideable = true; } );
		}
		viewingSlide(currentSlide);
	}
}
function displayLoadingBar() {
		$('#loadingBar').animate({left: '0px'}, 500 );
}
function hideLoadingBar() {
	//$('#slider').animate({opacity: '1'}, 400);
	if( currentSlide != 19 && currentSlide != 18 )
	$('#seal').animate({opacity: '.2'}, 400);
	$('#loadingBar').animate({left: '-460px'}, 500);
}
//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 ) {
		//$('#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);
});
