// JavaScript functions: this file imported by both MiG template files
// image.html and folder.html

// Overlay transparent shading on the main photo imagemap
function OverlayUp() {
}

function OverlayPrev() {
}

function OverlayNext() {
}

// status lights for image preloading
pImage = new Image();
nImage = new Image();
pImageIsDone = false;
nImageIsDone = false;

function setPreloadLight(className, color) {
  if (!document.getElementsByTagName) return;
  spans = document.getElementsByTagName("SPAN");
  if (!spans) return;
  for (i=0; i < spans.length; i++) {
    node = spans[i];
    if (node.className.match(className)) {
      node.style.backgroundColor = color;
    }
  }
}

function pImageDone() {
  setPreloadLight("prevLink", "#e4e4e4");
  pImageIsDone = true;
}
function nImageDone() {
  setPreloadLight("nextLink", "#e4e4e4");
  nImageIsDone = true;
}

function checkImageLoaded() {
  if (pImage.complete) pImageDone();
  if (nImage.complete) nImageDone();
  if (!pImageIsDone || !nImageIsDone)
    setTimeout("checkImageLoaded()", 100);
}

function pageLoaded(prevImg, nextImg) {
  setPreloadLight("prevLink", "#c4e4c4");
  setPreloadLight("nextLink", "#c4e4c4");

  if (prevImg.match(".jpg")) {
    pImage.src = prevImg;
    if (pImage.onload ) pImage.onload  = pImageDone();
  } else {
    pImageDone();
  }

  if (nextImg.match(".jpg")) {
    nImage.src = nextImg;
    if (nImage.onload ) nImage.onload  = nImageDone();
  } else {
    nImageDone();
  }

  checkImageLoaded();
}

// Toggle whether an element is displayed or not (popup menus)
function toggle(id) {
  if (!document.getElementById) return;
  elt = document.getElementById(id);
  if (!elt) return;
  if (elt.style.display == "none") {
    elt.style.display = "block";
  } else {
    elt.style.display = "none";
  }
  return false;
}

// Ugly IE hack to emulate :hover for non-<a> elements
function addHover() {
  if (navigator.appName != "Microsoft Internet Explorer") return;
  if (!document.getElementById) return;
  var listelt = document.getElementById("dropdown");
  if (!listelt) return;
  var nodes = listelt.getElementsByTagName("LI");
  if (!nodes) return;

  for (i=0; i < nodes.length; i++) {
    nodes[i].onmouseover = function() {
      this.className += " hover";
    }
    nodes[i].onmouseout = function() {
      this.className = this.className.replace(" hover", "");
    }
  }
}

// Multiple ways to set a callback to be run when the window finishes loading
function runOnLoad(func) {
  if (window.addEventListener) {
    window.addEventListener("load", func, false);
  } else if (window.attachEvent) {
    window.attachEvent("onload", func);
  } else {
    window.onload = func;
  }
}
runOnLoad(addHover);

