/* ----------------------------------------------------------------------------
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 gbSwitching = false;
var gbSS = false;
var gidTimer = null;
var giSSInterval = 7000;

var giSSFrameCounter = 0;
var MAX_FRAMES = -1;		// 3x loop * 7 frames per loop == max slide show run
var MAX_SLIDES = 5;			// number of slides in slideshow

var gBaseImgPath = "images/portfolio/"

var garrDvImgs =	new Array ("#dvImg1", "#dvImg2", "#dvImg3", "#dvImg4", "#dvImg5");
var garrDesc =		new Array ("#desc1", "#desc2", "#desc3", "#desc4", "#desc5");
var garrSSCtrlIds = new Array ("ssCtrl_1", "ssCtrl_2", "ssCtrl_3", "ssCtrl_4", "ssCtrl_5");
var garrSSCtrlOfs = new Array ("0px", "-19px", "-38px", "-57px", "-76px");

//var garrTitles =   AjaxCall ("getClients.php", GET_TITLES);
var garrTitles =   new Array (
								"AQT Solar",
								"Musicians Union Local 6",
							  	"2 for 1 Golf",
								"Greenfish",
							  	"Breslin Strategies"
								);
var garrImages =   new Array (
								"aqt-1.jpg",
								"afm6-1.gif", 
							  	"golf-1.gif",
								"gf-1.jpg", 
								"bs-1.jpg"
								);
var garrCaptions =   new Array (
								"mission_1.gif",
								"mission_2.gif",
								"mission_3.gif",
								"mission_4.gif",
								"mission_5.gif"
								);
var garrLinks =   new Array (
								"portfolio.aspx?id=21", 
								"portfolio.aspx?id=12", 
								"portfolio.aspx?id=4", 
								"portfolio.aspx?id=18",
								"portfolio.aspx?id=20" 
								);
								
	//--------------------------------------------------------------------------------

	$(document).ready(function(){
		ssInit();
	});

	//--------------------------------------------------------------------------------
	// switch to the 1st section and then start the slide show
	function ssInit() 
	{
		$("#dvImg1, #dvImg2, #dvImg3, #dvImg4, #dvImg5, #desc1, #desc2, #desc3, #desc4, #desc5").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").slideDown("slow");
		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;
	}
	
	//--------------------------------------------------------------------------------
	//map gnActiveImageIdx to a imgId, then call switchSlide()
	function next() {
	
	  var imgId = ""
		switch(gnActiveImageIdx) {
			case 0: imgId = "2"; break;
			case 1: imgId = "3"; break;
			case 2: imgId = "4"; break;
			case 3: imgId = "5"; break;
			case 4: imgId = "1"; break;
		}
		switchSlide(imgId);
	}

	//--------------------------------------------------------------------------------
	//map gnActiveImageIdx to a imgId, then call switchSlide()
	function prev() {
	
	  var imgId = ""
		switch(gnActiveImageIdx) {
			case 0: imgId = "5"; break;
			case 1: imgId = "1"; break;
			case 2: imgId = "2"; break;
			case 3: imgId = "3"; break;
			case 4: imgId = "4"; break;
		}
		switchSlide(imgId);
	}
	
	//--------------------------------------------------------------------------------
	function switchSlide(imgId, bClick)
	{
		if (gbSwitching == true) return;
		gbSwitching = true;

		//if a click called this fn, kill slideshow
		if (bClick==true) {		
			clearTimeout(gidTimer);
			//gbSS = false;
			//giSSFrameCounter = 0;
			//updatePlayPause(false);
			gidTimer = setTimeout (slideShow, giSSInterval)
		}
		
		var idx = 0;
		switch(imgId) {
			case "1": idx = 0; break;
			case "2": idx = 1; break;
			case "3": idx = 2; break;
			case "4": idx = 3; break;
			case "5": idx = 4; break;
		}
		
		if (gsActiveImage != "")
			$(gsActiveImage).hide();
			
		//setup new image
		gnActiveImageIdx = idx;
		gsActiveImage = garrDvImgs[idx];
	
		var opts = {};
		var sTitleLink, sImageHTML, sMoreLink 
		sTitleLink = garrTitles[idx];
		sImageHTML = '<a href="' + garrLinks[idx] + '" title="' + garrTitles[idx] + '"><img src="' + gBaseImgPath + garrImages[idx] + '" alt="' + garrTitles[idx] + '"  width="419" height="277" /></a>';
		sCaptions = '<img src="images/' + garrCaptions[idx] + '" alt="Somethumb is a web development firm committed to creating user-friendly websites with intuitive design and navigation using the latest innovations in web building technolgies." width="322" height="48" />';

		$("#highlight_ttl").html(sTitleLink);
		$("#highlight_desc h1").html(sCaptions);
		if (gsActiveImage != "")
			$(gsActiveImage).html(sImageHTML);
			
		if ($.browser.msie)
			$(gsActiveImage).fadeIn(2000, function() {gbSwitching = false;});
		else 
			$(gsActiveImage).fadeIn(2000, function() {gbSwitching = false;});


		$("#desc1, #desc2, #desc3, #desc4, #desc5").hide();
//		$(garrDesc[idx]).show();
		$(garrDesc[idx]).fadeIn(5000);
		updateCtrlPanel(idx);

		//gbSwitching = false;
		/*
		$("#highlight_desc h1").fadeOut("fast", function() {
											$("#highlight_desc h1").html(sCaptions);
											$("#highlight_desc h1").fadeIn(3000);
										});
		*/
 	}

	//--------------------------------------------------------------------------------
	function updateCtrlPanel(activeItem){
	
		//update ctrl panel 
		/*
		for (i= 0; i< garrSSCtrlOfs.length; i++)
			$("#"+garrSSCtrlIds[i]).css("background-position", garrSSCtrlOfs[i] + " 0px");	
		$("#"+garrSSCtrlIds[gnActiveImageIdx]).css("background-position", garrSSCtrlOfs[gnActiveImageIdx] + " -15px");	
		*/
		var sHTML = "";
		for (var i = 0; i < 5; i++) {
			if (activeItem == i)
				sHTML = sHTML + "<div class=\"highlight_icon\"><a href=\"#\" class=\"activeSlide\"><!-- &nbsp; --></a></div>";
			else
				sHTML = sHTML + "<div class=\"highlight_icon\"><a href=\"javascript:switchSlide('" + (i + 1) + "',true);\"><!-- &nbsp; --></a></div>";
		}
		$("#highlight_rotation").html(sHTML);
	}
	
	//--------------------------------------------------------------------------------
	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);


