/* ----------------------------------------------------------------------------
Copyright (c) 2009 Steve Goeckler. All Rights Reserved.

FileName : ss.js
Author   : Steve Goeckler
Abstract : JavaScript Library for slideshow functionality
History  : Born									10.27.09		!sg
			Modified for Somethumb				02.09.10		!sg
--------------------------------------------------------------------------- */

var gnActiveImageIdx = 0;
var gsActiveImage = "";
var gsActiveDescIdx = 0;
var gsActiveDesc = "";

var gbSwitching = false;
var gbSS = false;
var gidTimer = null;
//var giSSInterval = 4000;

var giSSFrameCounter = 0;
//var MAX_FRAMES = -1;		// 3x loop * 7 frames per loop == max slide show run
//var MAX_SLIDES = 4;			// number of slides in slideshow

//var gBaseImgPath = "images/portfolio/"

var garrDvImgs =	new Array ("#dvImg1", "#dvImg2", "#dvImg3", "#dvImg4", "#dvImg5", "#dvImg6", "#dvImg7", "#dvImg8", "#dvImg9", "#dvImg10", "#dvImg11", "#dvImg12");
var garrDesc =		new Array ("#desc1", "#desc2", "#desc3", "#desc4", "#desc5", "#desc6", "#desc7", "#desc8", "#desc9", "#desc10", "#desc11", "#desc12");
var garrSSCtrlIds = new Array ("ssCtrl_1", "ssCtrl_2", "ssCtrl_3", "ssCtrl_4", "ssCtrl_5", "ssCtrl_6", "ssCtrl_7", "ssCtrl_8", "ssCtrl_9", "ssCtrl_10", "ssCtrl_11", "ssCtrl_12");
var garrSSCtrlOfs = new Array ("0px", "-19px", "-38px", "-57px", "-76px");
								
	//--------------------------------------------------------------------------------

	$(document).ready(function(){
		ssInit();
	});

	//--------------------------------------------------------------------------------
	// switch to the 1st section and then start the slide show
	function ssInit() 
	{
		$("#dvImg1, #dvImg2, #dvImg3, #dvImg4, #dvImg5, #dvImg6, #dvImg7, #dvImg8, #dvImg9, #dvImg10, #dvImg11, #dvImg12").hide();
		$("#desc1", "#desc2", "#desc3", "#desc4", "#desc5", "#desc6", "#desc7", "#desc8", "#desc9", "#desc10", "#desc11", "#desc12").hide();
		switchSlide("1");
		ssStart(true); 
	}
	
	//--------------------------------------------------------------------------------
	//setup flags, timer and buttons states, then start the slide show
	function ssStart(bDelaySwitch)  {
	
		if (gbSS) return;
		gbSS = true;
	
		//updatePlayPause(true);
		//$("#dvSSImages").show();
		if (bDelaySwitch==true)
			gidTimer = setTimeout (slideShow, giSSInterval)
		 else {
			slideShow();
		 }
	}

	//--------------------------------------------------------------------------------
	//reset flags, kill timer and buttons states, update state to current section
	function ssStop()  {
	
		if (!gbSS) return;
		
		clearTimeout(gidTimer);
		gbSS = false;
		
		//updatePlayPause(false);
		//switchSlide(garrBtnIds[gnActiveImageIdx]);
	}

	//--------------------------------------------------------------------------------
	//play pause slideshow functionality
	function playPause()  {
	
		if (gbSS) 
			ssStop();
		else
			ssStart(false);
	}

	//--------------------------------------------------------------------------------
 	//goto next frame set timeout if not 3x loop through slide show
	function slideShow()  {
	
		next();
		if (MAX_FRAMES < 0) { // no frame display limit
			gidTimer = setTimeout (slideShow, giSSInterval)
			return;
		}
		if (++giSSFrameCounter < MAX_FRAMES)
			gidTimer = setTimeout (slideShow, giSSInterval)
		else
			gbSS = false;
	}
	
	//--------------------------------------------------------------------------------
	function updatePlayPause(bPlay){
	
		if (bPlay) {
			$("#ssCtrl_play").attr("title", "Pause slideshow");
			$("#ssCtrl_play").css("background-position", "-95px 0px");	
		}
		else {
			$("#ssCtrl_play").attr("title", "Resume slideshow");
			$("#ssCtrl_play").css("background-position", "-114px 0px");	
		}
	}
	
	//--------------------------------------------------------------------------------
	var windowOnLoad = function(){
		//ssInit();
	}
	
	if (window.addEventListener)
		window.addEventListener('load', windowOnLoad, false);
	else
		window.attachEvent('onload', windowOnLoad);

	//--------------------------------------------------------------------------------
	(function($) {
	  var cache = [];
	  // Arguments are image paths relative to the current page.
	  $.preLoadImages = function() {
		var args_len = arguments.length;
		for (var i = args_len; i--;) {
		  var cacheImage = document.createElement('img');
		  cacheImage.src = arguments[i];
		  cache.push(cacheImage);
		}
	  }
	})(jQuery)

