function init() {
  var allLinks = document.getElementsByTagName("a");
  for (var i=0;i<allLinks.length;i++) {    
    if (allLinks[i].getAttribute("rel") == "minibox") {
      allLinks[i].onclick = createOverlay;
    }
  }
}

function createOverlay () { 
  if (document.getElementById("overlay")) {
    destroyOverlay();
  }
  var href = this.getAttribute("href");
  var myBody = document.getElementsByTagName("body")[0];
  var overlay = document.createElement("div");
  overlay.setAttribute("id", "overlay");
  overlay.onclick = destroyOverlay;
  var image = document.createElement("img");
  image.setAttribute("src", href);
  overlay.appendChild(image);
  myBody.appendChild(overlay);
  centerObject(overlay);
  // Firefox benötigt beim ersten Laden eine Korrektur der 
  // Position; Kleine Hilfsfunktion...
  setTimeout('correctCenter()', 500);
  return false;
}	 

function destroyOverlay() {
  var myBody = document.getElementsByTagName("body")[0];
  var overlay = document.getElementById("overlay");
  myBody.removeChild(overlay);
}

// Zentriert ein Objekt anhand dessen Koordinaten
function centerObject (obj) {
  var coords =  getCoordinates(obj);
  var winsize = getWindowSize ();
  obj.style.left = ((winsize[0] - coords[2]) / 2) + 'px';
  if ( (winsize[1] - coords[3]) / 2 > 0 ) {
    obj.style.top = ((winsize[1] - coords[3]) / 2) + 'px';
  } else {
    obj.style.top = '5px';
  }
}

// Ermittelt die Größe des Fensters
// nur benötigt von centerObject(obj)
function getWindowSize () {
  var width = 0;
  var height = 0;
  if (window.innerWidth) {
    width = window.innerWidth - 6;
    height = window.innerHeight - 24;
  } else {
    width = document.body.offsetWidth - 20;
    height = document.body.offsetHeight - 4;
  }
  return [width,height];
}

// Ermittelt Position sowie Größe eines Objektes
// nur benötigt von centerObject(obj)
function getCoordinates (obj) {
  var curleft = 0; 
  var curtop = 0;
  var width = obj.clientWidth;
  var height = obj.clientHeight;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft
      curtop = obj.offsetTop
      while (obj = obj.offsetParent) {
        curleft += obj.offsetLeft
        curtop += obj.offsetTop
      }
  }
  return [curleft,curtop,width,height];
}

// Korrektur der Position
function correctCenter () {
  var overlay = document.getElementById("overlay");
  centerObject(overlay);
}

