 //  Photo shuffle and navigation inspired by the following previous authors.  
 //  The photo fade algorithm inspiration was from Carl Camera and Richard Rutter.  I made mods to both.
 //  The functions for manual navigation were written by me as new additions to the code.
 //  Jenn Bond 12-26-2007
 
 //    CSS Photo Shuffler v1.0 by
  //   Carl Camera
  //   http://iamacamera.org 
  //
  // SetOpacity Function and inpiration from Photo Fade by
  //   Richard Rutter
  //   http://clagnut.com
  //
  // License: Creative Commons Attribution 2.5  License
  //   http://creativecommons.org/licenses/by/2.5/
  //


// JavaScript Document

  var gblPhotoShufflerDivId = "photodiv";
  var gblPhotoShufflerImgId = "photoimg"; 
  var gblImg = new Array(
	"img/slides/slideShow1.jpg",
    "img/slides/slideShow2.jpg",
	"img/slides/slideShow3.jpg",
	"img/slides/slideShow4.jpg",
	"img/slides/slideShow5.jpg",
	"img/slides/slideShow6.jpg",
	"img/slides/slideShow7.jpg"
    
    );
  var gblPauseSeconds = 4.25;
  var gblFadeSeconds = 1;
  var gblRotations = 30;

  // End Customization section
  
  var gblDeckSize = gblImg.length;
  var gblOpacity = 100;
  var gblOnDeck = 0;
  var gblStartImg =  gblImg[0]; //start image of whole cycle
  var gblImageRotations = gblDeckSize * (gblRotations+1);
  var currentStartImg;
  var gblPlayButton = "";
  var timeoutLoop;


  function moveNext () {
	//move the next fade forward
	photoShufflerShuffle();		
	photoShufflerFade('true');
	
  }
 
  function movePrev () {
	//move the next fade forward
	photoReverseShuffle();		
	photoShufflerFade('true');
  }
  
  function playPauseSlideShow() {
	//check to see if the slide show is playing or not
	if (gblPlayButton == "img/navPause.jpg") {
		//pause slide show
		if (typeof timeoutLoop != "undefined") {
			clearTimeout(timeoutLoop);
		}
		document.getElementById("playPause").src = "img/navPlay.jpg";
		gblPlayButton = "img/navPlay.jpg";
	}
	else {
		//play slide show
		photoShufflerLaunch();
		//switch play button to pause button
		document.getElementById("playPause").src = "img/navPause.jpg";
		gblPlayButton = "img/navPause.jpg";
	}

  }
  
  function photoShufflerLaunch()
  {
	document.getElementById(gblPhotoShufflerDivId).style.backgroundImage='url(' + gblImg[gblOnDeck] + ')';
	timeoutLoop = setTimeout("photoShufflerFade('false')",1000);
	
  }
  
  function photoShufflerFade(manual)
  {
  	var theimg = document.getElementById(gblPhotoShufflerImgId);
	
  	// determine delta based on number of fade seconds
	// the slower the fade the more increments needed
    var fadeDelta = 100 / (30 * gblFadeSeconds);
	//set the opacity of the naviation controls since they get lost in safari
	if (manual == "true"){
		bugfix = document.getElementById('slideNav2');
		bugfix.style.opacity = 99.999;
	}
	else {
		bugfix = document.getElementById('slideNav');
		bugfix.style.opacity = 99.999;
	}
	// fade top out to reveal bottom image
	if (gblOpacity < 1.5*fadeDelta ) //this used to be 2* fadeDelta, but the images were too visible that way
	{
	  
	  gblOpacity = 100;
	  
	  // stop the rotation if we're done
	  
	  if (gblImageRotations < 1 || manual == "true") return;
	  	  photoShufflerShuffle();
		  // pause before next fade
          timeoutLoop = setTimeout("photoShufflerFade('false')",gblPauseSeconds*1000);
	}
	else
	{
	  gblOpacity -= fadeDelta;
	  setOpacity(theimg,gblOpacity);
	  timeoutLoop = setTimeout("photoShufflerFade('"+manual+"')",30);  // 1/30th of a second
	}
  }

  function setOpacity(obj, opacity) {
    opacity = (opacity == 100)?99.999:opacity;
    
    // IE/Win
    obj.style.filter = "alpha(opacity:"+opacity+")";
    
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;

    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity/100;

    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity/100;
  }


  
  function photoShufflerShuffle()
  {
	var thediv = document.getElementById(gblPhotoShufflerDivId);
	var theimg = document.getElementById(gblPhotoShufflerImgId);
	
	// copy div background-image to img.src
	theimg.src = gblImg[gblOnDeck];
	// set img opacity to 100
	setOpacity(theimg,100);

    // shuffle the deck
	gblOnDeck = ++gblOnDeck % gblDeckSize;
	// decrement rotation counter
	if (--gblImageRotations < 1)
	{
	  // insert start/final image if we're done
	  gblImg[gblOnDeck] = gblStartImg;
	  //change button to play instead of pause
	  document.getElementById("playPause").src = "img/navPlay.jpg";
	  gblPlayButton = "img/navPlay.jpg";
	  
	}

	// slide next image underneath
	thediv.style.backgroundImage='url(' + gblImg[gblOnDeck] + ')';
  }

  function photoReverseShuffle()
  {
	var thediv = document.getElementById(gblPhotoShufflerDivId);
	var theimg = document.getElementById(gblPhotoShufflerImgId);
	
	// copy div background-image to img.src
	theimg.src = gblImg[gblOnDeck];
	// set img opacity to 100
	//setOpacity(theimg,100);

    // shuffle the deck
	gblOnDeck = --gblOnDeck;
	if (gblOnDeck < 0) {
		gblOnDeck = gblDeckSize-1;	
	}
	// slide next image underneath
	thediv.style.backgroundImage='url(' + gblImg[gblOnDeck] + ')';
  }


