  var unself;

  window.onerror = new Function("return true;");

  var isNS = (navigator.appName == "Netscape");
  var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac")  > -1) );
  var layerRef = (isNS) ? "document" : "document.all";
  var styleRef = (isNS) ? "" : ".style";
  var isDynamic = ( ((document.layers && document.layers['layerTest']) || (document.all && document.all['layerTest'])) && !isMacIE );

  isDynamic = true;


// Position des Referenz-Objekts zur Positionierung ermitteln
function getXCoord(imgID) {
  if (isNS)
    xPos = document.images[imgID].x;
  else
    xPos = getIEXCoord(imgID);

  return xPos;
}

function getYCoord(imgID) {
  if (isNS)
    yPos = document.images[imgID].y;
  else
    yPos = getIEYCoord(imgID);

  return yPos;
}

function getIEXCoord(imgElem) {
  xPos = eval(imgElem).offsetLeft;
  tempEl = eval(imgElem).offsetParent;
  while (tempEl != null) {
    xPos += tempEl.offsetLeft;
    tempEl = tempEl.offsetParent;
  }
  return xPos;
}

function getIEYCoord(imgElem) {
  yPos = eval(imgElem).offsetTop;
  tempEl = eval(imgElem).offsetParent;
  while (tempEl != null) {
    yPos += tempEl.offsetTop;
    tempEl = tempEl.offsetParent;
  }
  return yPos;
}

var activeMenu = 0;

function activateMenu(menuLayerRef, imageName, left, top) {
  var lightsout

  if (isDynamic && activeMenu != menuLayerRef) {
    if (activeMenu) hideMenu("menu" + activeMenu); 
      menuID = "menu" + menuLayerRef;
      activeMenu = menuLayerRef;

    if (isNS) {
      document[menuID].left = getXCoord(imageName) + left;
      document[menuID].top = getYCoord(imageName) + top;
    } 
    else {
      document.all[menuID].style.pixelLeft = getXCoord(imageName) + left;
      document.all[menuID].style.pixelTop = getYCoord(imageName) + top;
    }
    showMenu(menuID, left, top)
  }
}

function showMenu(layerID, left, top) {
  eval(layerRef + '["' + layerID + '"]' + 
  styleRef + '.visibility = "visible"');
}

function hideMenu(layerID) {
  eval(layerRef + '["' + layerID + '"]' + 
  styleRef + '.visibility = "hidden"');
}


// check if there's a menu active
function turnOff() {
  if (activeMenu) {
    menuID = "menu" + activeMenu;
    hideMenu(menuID);
    activeMenu = 0;
  }
}

// kills menu on clickup
function init() {
  if (isDynamic) {
    if (isNS) {
      document.captureEvents(Event.mouseup);
    }
    document.onmouseup = turnOff;
  }
}


// this function needs to be called from the sub menus DIV
function hideMe() {
  if (activeMenu) {
    menuID = "menu" + activeMenu;
    hideMenu(menuID);
    activeMenu = 0;
  }
}

// Work-around Netscape resize bug
if (isDynamic && isNS) {
  origWidth = innerWidth;
  origHeight = innerHeight;   
}
        
function reDo() {       
  if (innerWidth != origWidth || innerHeight != origHeight) {
    location.reload();
  }
}       

if (isDynamic && isNS) {
  onresize = reDo;
}

function timer(offon)  {
  if (offon == 0) {
    unself = setTimeout('turnOff()', 300);
  }
  if (offon == 1) {
    clearTimeout(unself);
  }
}
