var curImage = 0;
var curImageList = -1;
var currentLink = null;
var currentExhibitionImg = 0;
var spacerImg = "../images/spacer.gif";

function preload(imgObj,imgSrc)
{
  eval(imgObj + ' = new Image()');
  eval(imgObj + '.src = "' + imgSrc + '"');
}

function openSection(file, cssClass)
{
  // position popup if neccessary
  if (cssClass) {
    document.getElementById("contentPopup").className = cssClass;
  }
  else {
    document.getElementById("contentPopup").className = "";
  }
  // load page into iframe
  window.frames["contentPage"].location = file;
  document.getElementById("contentPopup").style.visibility = "visible";
  // fade background
  document.getElementById("filter").style.visibility = "visible";
}

function closeSection()
{
  // close a popup section
  top.window.frames["contentPage"].location = "empty.html";
  top.document.getElementById("contentPopup").style.visibility = "hidden";
  // show background
  top.document.getElementById("filter").style.visibility = "hidden";
}

function displaySeries(index, imgIndex)
{
  if (index != -1)
  {
    // start a specific series at a given image
    curImageList = imageList[index];
    curImage = imgIndex;
    // link to highlight
    var nextLink = document.getElementById("s" + index);
  }
  else
  {
    // start compilation of all series, collect all images first
    curImageList = [];
    for (var i=0; i<imageList.length; i++)
      for (var j=0; j<imageList[i].length; j++)
        curImageList.push(imageList[i][j]);
    curImage = 0;
    // link to highlight
    var nextLink = document.getElementById("sAll");
  }
  // highlight link
  if (currentLink != null)
    currentLink.className = "";
  nextLink.className = "current";
  
  // show navigation container, fade background, display image
  document.getElementById("subnav_current").style.visibility = "visible";
  document.getElementById("filter").style.visibility = "visible";
  document.getElementById("display").firstChild.src = curImageList[curImage][0];

  // set last link to deselect afterwards  
  currentLink = nextLink;
}

function closeSeries()
{
  // hide navigation container, show background, hide image
  document.getElementById("subnav_current").style.visibility = "hidden";
  document.getElementById("filter").style.visibility = "hidden";
  document.getElementById("display").firstChild.src = spacerImg;
}

function previewSeries(index)
{
  if (index != -1)
  {
    // preview a series by reveiling the thumbnails
    curImageList = imageList[index];

    // loop over all images  
    images = document.getElementsByTagName("img");
    var counter = 0;
    for (var i=0; i<images.length; i++)
    {
      // reveil only thumbs of the selected series
      if (images[i].className.substring(0,2) == "s" + index)
      {
        images[i].src = getThumbName(curImageList[counter][0]);
        counter++;
      }
    }
  }
  else
  {
    // preview all images, collect all images first
    var allImages = [];
    for (var i=0; i<imageList.length; i++)
      for (var j=0; j<imageList[i].length; j++)
        allImages.push(imageList[i][j][0]);
    // loop over all images and show thumbnails, except large display image
    images = document.getElementsByTagName("img");
    for (var i=0; i<images.length; i++)
      if (images[i].parentNode.id != "display")
        images[i].src = getThumbName(allImages[i]);
  }  
}

function hideSeries()
{
  // loop over all images and hide thumbnails, except large display image
  images = document.getElementsByTagName("img");
  for (var i=0; i<images.length; i++)
    if (images[i].parentNode.id != "display")
      images[i].src = spacerImg;
}

function browseImages(dir)
{
  // move forward or backward within image series
	curImage += dir;
	
	if (curImage == curImageList.length)
    curImage = 0;
  else if (curImage < 0)
    curImage = curImageList.length - 1;
  
  // display image
  document.getElementById("display").firstChild.src = curImageList[curImage][0];
}

function getThumbName(imageName)
{
  // assemble thumb name from image name
  return imageName.substring(0, imageName.lastIndexOf(".")) + "_th" + imageName.substring(imageName.lastIndexOf("."), imageName.length);
}

// exhibitions
function browseExhibitionImg(dir)
{
  // check if image exists
  if (document.getElementById("img" + Number(currentExhibitionImg + dir)) != null)
  {
    var index = currentExhibitionImg + dir;
    displayExhibitionImg(index);
  }
}

function displayExhibitionImg(index)
{
  // hide last image and deselect number
  document.getElementById("img" + currentExhibitionImg).style.visibility = "hidden";
  document.getElementById("i" + currentExhibitionImg).className = "";
  // set current image
  currentExhibitionImg = index;
  // display image and select number
  document.getElementById("img" + currentExhibitionImg).style.visibility = "visible";
  document.getElementById("i" + currentExhibitionImg).className = "current";
}

