// GallerySlides.js
//  (c) Thomas M. Tuerke 2001.
//  All Rights Reserved
var gAgent = navigator.userAgent.toLowerCase()
var gbUplevel = gAgent.indexOf("msie") != -1 && gAgent.indexOf("webtv") == -1
function dw(x) { document.write(x) }

function GetParm(sName)
{
  var sParms = location.search.substring(1).split(/&/)
  for(var i=0;i<sParms.length;i++) {
    var sParm = sParms[i].split(/=/)
    if(sParm[0] == sName)
      return sParm[1]
  }
  return null
}

function FirstImage() { return 0 }
function LastImage()  { return gItems.length-2 }
function IndexOK(i)   { return i >= FirstImage() && i <= LastImage() }
function ImageSrc(i)  { if(IndexOK(i)) return gItems[i][0] }
function ImageWidth(i){ if(IndexOK(i)) return gItems[i][1] }
function ImageHeight(i){if(IndexOK(i)) return gItems[i][2] }
function ImageSize(i) { if(IndexOK(i)) return gItems[i][3] }
function ImageInfo(i)
{
  if(IndexOK(i))
    return "Image "+(i+1)+" of "+(LastImage()+1)+", "+ImageWidth(i)+"x"+ImageHeight(i)+", "+ImageSize(i)
  else
    return "Invalid index "+i
}
var giImage      = GetParm("pic")*1//CurrentPic()
function NextImage() { return (giImage == LastImage())? FirstImage() : giImage+1 }
function PrevImage() { return (giImage == FirstImage())? LastImage() : giImage-1 }


function ShowImage(i)
{
  giImage = i
  if(gbUplevel) {
    var oFrame = document.getElementById("frame")
    if(oFrame && oFrame.filters && oFrame.filters[0])
      oFrame.filters[0].Apply();

    img.width  = ImageWidth(i)
    img.height = ImageHeight(i)
    Subtitle.innerText = ImageSrc(i)
    Info.innerText = ImageInfo(i)

    img.src    = ImageSrc(i)

    if(oFrame && oFrame.filters && oFrame.filters[0])
      oFrame.filters[0].Play();
  }
  else
    img.src    = ImageSrc(i)
}


function GoToImage(i)
{
  StopSlideshow()
  if(gbUplevel)
    ShowImage(i)
  else
    window.location.href = window.location.pathname+"?pic="+i
}

function GoToIndex()
{
  window.location.href = gItems[LastImage()+1]
}


var giSlideDelay = GetParm("show")
function SlideDelay(def)
{
  var d = giSlideDelay
  if(!d && def)
    d=def
  return d
}


var gTimer=null
function SlideshowEvent()
{
  var i = NextImage()
  if(gbUplevel) {
    ShowImage(i)
  }
  else
    window.location.href = window.location.pathname+"?pic="+i+"&show="+SlideDelay(10)
}

var gbSlideshow = gbUplevel? false : (SlideDelay() > 0)
function ScheduleNextSlide(def)
{
  var d = SlideDelay(def)
  if(d && gbSlideshow)
    gTimer = setTimeout("SlideshowEvent()",d*1000)
}

var gsStart,giStartSpeedDelay,gsStop
function StartSlideshow(def)
{
  if(def) giSlideDelay = def
  gbSlideshow = true
  if(gbUplevel)
    ssctrl.innerHTML = Link_StopShow(gsStop)
  SlideshowEvent()
}

function StopSlideshow()
{
  if(gTimer) {
    clearTimeout(gTimer)
    gTimer=null
  }
  gbSlideshow = false
  if(gbUplevel)
    ssctrl.innerHTML = Link_Slideshow(gsStart,giStartSpeedDelay)
}
function SlideshowPlaying()
{
  if(gbUplevel)
    return gbSlideshow
  else
    return SlideDelay(null) != null
}


function OnLoad()      { if(giSlideDelay && gbUplevel) setTimeout("StartSlideshow()",giSlideDelay*1000)}
function OnImageLoad() { ScheduleNextSlide() }

function WriteImageTag(i)
{
  dw("<img name=\"img\" id=\"img\" src=\""
     + escape(ImageSrc(i))
     +"\" width="+ImageWidth(i)+" height="+ImageHeight(i)+" onload=\"OnImageLoad()\">")
}

function WriteSubtitle(i)
{
  dw("<div id=\"Subtitle\">"+ImageSrc(i)+"</div>")
}

function WriteInfo(i)
{
  dw("<div id=\"Info\">"+ImageInfo(i)+"</div>")
}

function WriteLink_First(x){ dw('<a href="javascript:GoToImage(FirstImage())">'+x+"</a>")}
function WriteLink_Prev(x) { dw('<a href="javascript:GoToImage(PrevImage())">'+x+"</a>") }
function WriteLink_Next(x) { dw('<a href="javascript:GoToImage(NextImage())">'+x+"</a>") }
function WriteLink_Last(x) { dw('<a href="javascript:GoToImage(LastImage())">'+x+"</a>") }
function WriteLink_Index(x) { dw('<a href="javascript:GoToIndex()">'+x+"</a>") }
function Link_Slideshow(x,def) { return '<a href="javascript:StartSlideshow('+(def?def:'')+')">'+x+"</a>" }
function WriteLink_Slideshow(x,def) { dw(Link_Slideshow(x,def)) }
//function WriteLink_ShowSpeed(x,def) { dw('<a href="javascript:SlideshowSpeed('+(def?def:'')+')">'+x+"</a>") }
function Link_StopShow(x)      { return '<a href="javascript:StopSlideshow()">'+x+"</a>" }
function WriteLink_StopShow(x)      { dw(Link_StopShow(x)) }
function WriteLink_SlideshowControl(ply,def,stp)
{
  gsStart = ply
  giStartSpeedDelay = def
  gsStop = stp
  dw("<span id=\"ssctrl\">")
  if(SlideshowPlaying() || (gbUplevel && SlideDelay(null) != null))
    WriteLink_StopShow(stp)
  else
    WriteLink_Slideshow(ply,def)
  dw("</span>")
}

