//////////////////////////////////////////////////////////////////////////////
// slideshow.js - Implement slideshow feature for WST Photo Album plugin
// ---------------------------------------------------------------------------
// JAR 2006.06.20 - Redo from scratch
// JAR 2006.08.10 - Use clearTimeout() to avoid "mutli show"
//                - Get rid of IE script error on click on image
//////////////////////////////////////////////////////////////////////////////


/****************************** IMMEDIATE CODE ******************************/

//----------------------------------------------------------------------
// Fetch the slides in the album that the user-clicked image belongs to
//----------------------------------------------------------------------

_currentSlideGroup = opener._currentSlideGroup;
_currentSlideIndex = opener._currentSlideIndex;
_slides = opener._slides[_currentSlideGroup];
_windowHeight = opener._windowHeight;
_ssWinHtFudge = opener._ssWinHtFudge - 44; // -44 = extra fudge!

//--------------------------------
// Detect the browser environment
//--------------------------------

_ie = _ns = _ns_mac = _opera = false;
if (navigator.appName == "Netscape") 
{
  _ns = true;
  if (navigator.platform.indexOf("Mac") != -1)
    _ns_mac = true;
} 
else if (navigator.userAgent.indexOf("Opera") != -1) 
  _opera = true;
else if (navigator.userAgent.indexOf("MSIE") != -1) 
  _ie = true;

//---------------------------
// Setup slideshow variables
//---------------------------

_rotateDelay = new Array(10000,5000,1500); // millisecs
_rotateDelayIndex = 1;
_rotateTimerID = -1;


/***************************** PUBLIC FUNCTIONS *****************************/

function ssBodyOnLoad() 
{
  // Set height of image cell:
  document.getElementById("ss_image_spacer").height = _windowHeight - _ssWinHtFudge;

//Set background color/image to match the on page album
switch(getQuerystring(0))
{
case "1":
        document.getElementById("ss_image_pane").style.backgroundImage="url(../images/paper.jpg)";
	break;
case "2":
	document.getElementById("ss_image_pane").style.backgroundImage="url(../../../" + getQuerystring(1) + ")";
	break;
case "3":
	document.getElementById("ss_image_pane").style.backgroundColor = '#' + getQuerystring(1);
	break;
case "4":
	break;
}

  
  
  // Populate droplist with captions:
  var i, ss_list=document.getElementById("ss_list");
  if (_ie || _ns_mac || _opera)
  {
    for (i=0; i<_slides.length; i++)
    {
      ss_list.options.length = i + 1;
      ss_list.options[i] = new Option(_slides[i].caption);
    }
  }
  else /*if (_ns)*/
  {
    var html="";
    for (i=0; i<_slides.length; i++)
      html += "<option>" + _slides[i].caption + "</option>";
    ss_list.innerHTML = html;
  }
  
  _ssSelect(_currentSlideIndex);
}

function ssFirst()         {_ssSelect(0);}
function ssPrevious()      {_ssSelect(_currentSlideIndex<=0 ? _slides.length-1 : _currentSlideIndex-1);}
function ssNext()          {_ssSelect(_currentSlideIndex+1>=_slides.length ? 0 : _currentSlideIndex+1);}
function ssLast()          {_ssSelect(_slides.length - 1);}
function ssListOnChange()  {_ssSelect(document.getElementById("ss_list").selectedIndex);}
function ssSpeedOnChange() {_rotateDelayIndex=document.getElementById("ss_speed").selectedIndex;}

function ssPlay(alt)
{
  var bStopped = (alt==" Stop ");

  ss_play = document.getElementById("ss_play");
  ss_play.alt = (bStopped ? " Start " : " Stop ");
  ss_play.src = (bStopped ? "../images/btn_start.gif" : "../images/btn_stop.gif");  
  
  document.getElementById("ss_list").disabled = !bStopped;
  document.getElementById("ss_speed").disabled = !bStopped;
  
  _ssRotate();
}

function ssOpenCurrent() 
{
  var widthFudge=20, heightFudge=(_ie ? 0 : 20); // fudge for scrollbar dims

  var width = _slides[_currentSlideIndex].width + widthFudge;
  var height = _slides[_currentSlideIndex].height + heightFudge;
  
  if (width > screen.availWidth)   width = screen.availWidth;
  if (height > screen.availHeight) height = screen.availHeight;

  var fullWindow = window.open(_slides[_currentSlideIndex].url,"wst_slideshow_fullimg",
    "scrollbars=yes,titlebar=no,location=no,status=no,toolbar=no,resizable=yes,width=" + 
     width + ",height=" + height);
  fullWindow.focus();
}

function getQuerystring(num)
{
  var qs = decodeURI(window.location.href).split("?");
  var qsVals = qs[1].split("&");
  return qsVals[num].split("=")[1];
} 

/**************************** PRIVATE FUNCTIONS *****************************/

function _ssSelect(index)
{
  _currentSlideIndex = index;
  
  document.getElementById("ss_list").selectedIndex = _currentSlideIndex;
  
  var ss_image = document.getElementById("ss_image");  
  ss_image.src = "../images/spacer.gif"; // temporarily blank-out the image
  ss_image.width = _slides[_currentSlideIndex].slideWd;
  ss_image.height = _slides[_currentSlideIndex].slideHt;
  ss_image.src = _slides[_currentSlideIndex].url;
}

function _ssRotate()
{
  if (document.getElementById("ss_play").alt == " Stop ")
  {
    ssNext();
    _rotateTimerID = window.setTimeout("_ssRotate()",_rotateDelay[_rotateDelayIndex]);
  }
  else if (_rotateTimerID != -1)
  {
    window.clearTimeout(_rotateTimerID);
    _rotateTimerID = -1;
  }
}

/* end of file */
