/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* INHALT:  Menüsteuerung                                  */
/* DATEI:   menu.js                                        */
/* DATUM:   2.1.2001                                       */
/* PROJEKT: Homepage der Pfarrgemeinde St. Ulrich Mörsch   */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


// * Standard-Text in der Statuszeile (wenn sonst keine Meldungen angezeigt werden) *
// ----------------------------------------------------------------------------------
window.defaultStatus = "Kirche in Rheinstetten";


// * Animierte Navigationsbuttons *
// --------------------------------
// Arrays für die Menü-Hauptbuttons

var dot = new Array(4);

// Den Arrays die jeweiligen Bilder zuordnen
dot[0] = new Image(); dot[0].src = "./bilder/emptydot.gif";
dot[1] = new Image(); dot[1].src = "./bilder/dot.gif";
dot[2] = new Image(); dot[2].src = "./bilder/hdot.gif";
dot[3] = new Image(); dot[3].src = "./bilder/ndot.gif";


// * ------------------------------------------- *
// * Basis-Funktion für alle weiteren Funktionen *
// * ------------------------------------------- *

// Globale Variablen zur Speicherung des BrowserTyps
var IE4 = false;
var NS4 = false;
var IE5 = false;
var NS6 = false;
var isInit = false;

// InitialisierungsRoutine (durch: <body onLoad="init()" ...> ) zur Ermittlung des BrowserTyps
function init() {
  IE4 = (document.all && !document.getElementById) ? true : false;
  NS4 = (document.layers) ? true : false;
  IE5 = (document.all && document.getElementById) ? true : false;
  NS6 = (document.getElementById && !document.all) ? true : false;
  isInit = true;
}

// * ------------- *
// * Info-Funktion *
// * ------------- *

// Liefert die BrowserVersion.
//   ALERT: true    Die Browser-Version wird in einem Meldungsfenster ausgegeben
//   ALERT: false   Die Browser-Version wird als String an den Aufrufenen zurückgegeben
function getBrowserType(ALERT) {
  if (!isInit)
    return;
  if (IE4) {
    if(ALERT)
      alert('-> MS Internet Explorer 4.x \n\nNetscape Navigator 4.x \nMS Internet Explorer 5.x \nNetscape Navigator 6.x \nUnbekannter Browser');
    else
      return "MS Internet Explorer 4.x";
  }
  else if (NS4) {
    if(ALERT)
      alert('MS Internet Explorer 4.x \n\n-> Netscape Navigator 4.x \n\nMS Internet Explorer 5.x \nNetscape Navigator 6.x \nUnbekannter Browser');
    else
      return "Netscape Navigator 4.x";
  }
  else if (IE5) {
    if(ALERT)
      alert('MS Internet Explorer 4.x \nNetscape Navigator 4.x \n\n-> MS Internet Explorer 5.x \n\nNetscape Navigator 6.x \nUnbekannter Browser');
    else
      return "MS Internet Explorer 5.x";
  }
  else if (NS6) {
    if(ALERT)
      alert('MS Internet Explorer 4.x \nNetscape Navigator 4.x \nMS Internet Explorer 5.x \n\n-> Netscape Navigator 6.x \n\nUnbekannter Browser');
    else
      return "Netscape Navigator 6.x";
  }
  else {
    if(ALERT)
      alert('MS Internet Explorer 4.x \nNetscape Navigator 4.x \nMS Internet Explorer 5.x \n Netscape Navigator 6.x \n\n-> Unbekannter Browser');
    else
      return "Unbekannter Browser";
  }
}

// * ---------------------------------------------------- *
// * X- und Y-Position eines Elements (Lesen + Schreiben) *
// * ---------------------------------------------------- *

// Positioniert ein Element in der X-Richtung
//  ID:      ID des Elements
//  posX:    die neue x-Position des Elements
function setElementX(ID, posX) {
  if (!isInit)
    return;
  if (IE5 || NS6)
    document.getElementById(ID).style.left = (posX + "px");
  else if (IE4)
    eval('document.all.' + ID + '.style.left = ' + posX);
  else if (NS4)
    eval('document.layers.' + ID + '.left = ' + posX);
}

// Positioniert ein Element relativ in der X-Richtung
//  ID:      ID des Elements
//  posXrel: die  Verschiebung des Elements in X-Richtung
function setElementXrel(ID, posXrel) {
  setElementX(ID, getElementX(ID) + posXrel);
}

// Positioniert ein Element in der Y-Richtung
//  ID:      ID des Elements
//  posY:    die neue y-Position des Elements
function setElementY(ID, posY) {
  if (!isInit)
    return;
  if (IE5 || NS6)
    document.getElementById(ID).style.top = (posY + "px");
  else if (IE4)
    eval('document.all.' + ID + '.style.top = ' + posY);
  else if (NS4)
    eval('document.layers.' + ID + '.top = ' + posY);
}

// Positioniert ein Element relativ in der Y-Richtung
//  ID:      ID des Elements
//  posYrel: die  Verschiebung des Elements in Y-Richtung
function setElementYrel(ID, posYrel) {
  setElementY(ID, getElementY(ID) + posYrel);
}

// Positioniert ein Element in X-Richtung und Y-Richtung
//  ID:      ID des Elements
//  posX:    die neue x-Position des Elements
//  posY:    die neue y-Position des Elements
function setElementXY(ID, posX, posY) {
  setElementX(ID, posX);
  setElementY(ID, posY);
}

// Positioniert ein Element relativ in der in X-Richtung und Y-Richtung
//  ID:      ID des Elements
//  posXrel: die  Verschiebung des Elements in X-Richtung
//  posYrel: die  Verschiebung des Elements in Y-Richtung
function setElementXYrel(ID, posXrel, posYrel) {
  if (!isInit)
    return;
  setElementXrel(ID, posXrel);
  setElementYrel(ID, posYrel);
}

// Liefert die X-Position des Elements
//  ID:      ID des Elements
function getElementX(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    return parseInt(document.getElementById(ID).style.left);
  else if (IE4)
    return parseInt(eval('document.all.' + ID + '.style.left'));
  else if (NS4)
    return parseInt(eval('document.layers.' + ID + '.left'));
}

// Liefert die Y-Position des Elements
//  ID:      ID des Elements
function getElementY(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    return parseInt(document.getElementById(ID).style.top);
  else if (IE4)
    return parseInt(eval('document.all.' + ID + '.style.top'));
  else if (NS4)
    return parseInt(eval('document.layers.' + ID + '.top'));
}

// * ------------------------------------------ *
// * Breite und Höhe eines Elements (nur Lesen) *
// * ------------------------------------------ *

// Liefert die Höhe eines Elements
//  ID:      ID des Elements
function getElementHeight(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    return parseInt(document.getElementById(ID).offsetHeight);
  else if (IE4)
    return parseInt(eval('document.all.' + ID + '.offsetHeight'));
  else if (NS4)
    return parseInt(eval('document.layers.' + ID + '.clip.height'));
}

// Liefert die Breite eines Elements
//  ID:      ID des Elements
function getElementWidth(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    return parseInt(document.getElementById(ID).offsetWidth);
  else if (IE4)
    return parseInt(eval('document.all.' + ID + '.offsetWidth'));
  else if (NS4)
    return parseInt(eval('document.layers.' + ID + '.clip.width'));
}

// * ----------------------------------------------------------- *
// * Elemente sichtbar und unsichtbar machen (Lesen + Schreiben) *
// * ----------------------------------------------------------- *

// Macht ein Element unsichtbar
//  ID:      ID des Elements
function hideElement(ID) {
  if (!isInit)
    return;
  if (IE5 || NS6)
    document.getElementById(ID).style.visibility = "hidden";
  else if (IE4)
    eval('document.all.' + ID + '.style.visibility = "hidden"');
  else if (NS4)
    eval('document.layers.' + ID + '.visibility = "hide"');
}

// Macht ein Element sichtbar
//  ID:      ID des Elements
function showElement(ID) {
  if (!isInit)
    return;
  if (IE5 || NS6)
    document.getElementById(ID).style.visibility = "visible";
  else if (IE4)
    eval('document.all.' + ID + '.style.visibility = "visible"');
  else if (NS4)
    eval('document.layers.' + ID + '.visibility = "show"');
}

// Zeigt ob ein Element sichtbar oder unsichtbar ist
//  ID:      ID des Elements
function isHidden(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    if (document.getElementById(ID).style.visibility == "hidden")
      return true;
    else
      return false;
  else if (IE4)
    if (eval('document.all.' + ID + '.style.visibility') == "hidden")
      return true;
    else
      return false;
  else if (NS4)
    if (eval('document.layers.' + ID + '.visibility') == "hide")
      return true;
    else
      return false;
}

// Ändert die Sichtbarkeit eines Elements in sein Gegenteil
//  ID:      ID des Elements
function hideAndShowElement(ID) {
  if (isHidden(ID))
    showElement(ID);
  else
    hideElement(ID);
}

// * ------------------ *
// * Z-Index bearbeiten *
// * ------------------ *

// Legt den Z-Index eines Elements fest
//  ID:      ID des Elements
//  ZIndex:  neuer Z-Index
function setZIndex(ID, ZIndex) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    document.getElementById(ID).style.zIndex = ZIndex;
  else if (IE4)
    eval('document.all.' + ID + '.style.zIndex = ' + ZIndex);
  else if (NS4)
    eval('document.layers.' + ID + '.zIndex = ' + ZIndex);
}

// Liefert den Z-Index eines Elements fest
//  ID:      ID des Elements
function getZIndex(ID) {
  if (!isInit)
    return null;
  if (IE5 || NS6)
    return parseInt(document.getElementById(ID).style.zIndex);
  else if (IE4)
    return parseInt(eval('document.all.' + ID + '.style.zIndex'));
  else if (NS4)
    return parseInt(eval('document.layers.' + ID + '.zIndex'));
}

// * --------------------------------------------------- *
// * Elemente auf dem Bildschirm verschieben (animieren) *
// * --------------------------------------------------- *

// Verschiebt ein Element in der X-Richtung
//  ID:      ID des Elements
//  endX:    Endposition in X-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementX(ID, endX, steps, vz) {
  var startX = getElementX(ID);
  var dir = (endX >= startX) ? 1 : -1;
  if (dir == 1)
    var dx = (endX - startX) / steps;
  else
    var dx = (startX - endX) / steps;

  setTimeout('moveX("'+ID+'",'+startX+','+endX+','+dx+','+vz+','+dir+')',vz);
}

// Verschiebt ein Element relativ in der X-Richtung
//  ID:      ID des Elements
//  relX:    relatve Endposition in X-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementXrel(ID, relX, steps, vz) {
  moveElementX(ID, (getElementX(ID) + relX), steps, vz);
}

// Hilfs-Funktion zu "moveElementX(ID, endX, steps, vz)"
//  ACHTUNG:  NICHT separat aufrufen!!! Wir nur von "moveElementX(..)" verwendet
function moveX(ID, x, endX, dx, vz, dir) {
  x += (dx * dir);
  if (dir == 1)
    if (x >= endX) {
      setElementX(ID, endX);
      return;
    }
  if (dir == -1)
    if (x <= endX) {
      setElementX(ID, endX);
      return;
    }
  setElementX(ID, x);
  setTimeout('moveX("'+ID+'",'+x+','+endX+','+dx+','+vz+','+dir+')',vz);
}

// Verschiebt ein Element in der Y-Richtung
//  ID:      ID des Elements
//  endY:    Endposition in Y-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementY(ID, endY, steps, vz) {
  var startY = getElementY(ID);
  var dir = (endY >= startY) ? 1 : -1;
  if (dir == 1)
    var dy = (endY - startY) / steps;
  else
    var dy = (startY - endY) / steps;

  setTimeout('moveY("'+ID+'",'+startY+','+endY+','+dy+','+vz+','+dir+')',vz);
}

// Verschiebt ein Element relativ in der Y-Richtung
//  ID:      ID des Elements
//  relY:    relatve Endposition in Y-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementYrel(ID, relY, steps, vz) {
  moveElementY(ID, (getElementY(ID) + relY), steps, vz);
}

// Hilfs-Funktion zu "moveElementY(ID, endY, steps, vz)"
//  ACHTUNG:  NICHT separat aufrufen!!! Wir nur von "moveElementY(..)" verwendet
function moveY(ID, y, endY, dy, vz, dir) {
  y += (dy * dir);
  if (dir == 1)
    if (y >= endY) {
      setElementY(ID, endY);
      return;
    }
  if (dir == -1)
    if (y <= endY) {
      setElementY(ID, endY);
      return;
    }
  setElementY(ID, y);
  setTimeout('moveY("'+ID+'",'+y+','+endY+','+dy+','+vz+','+dir+')',vz);
}

// Verschiebt ein Element in X-Richtung und Y-Richtung
//  ID:      ID des Elements
//  endX:    Endposition in X-Richtung
//  endY:    Endposition in Y-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementXY(ID, endX, endY, steps, vz) {
  moveElementX(ID, endX, steps, vz);
  moveElementY(ID, endY, steps, vz);
}

// Verschiebt ein Element relativ in der X-Richtung und Y-Richtung
//  ID:      ID des Elements
//  relX:    relatve Endposition in X-Richtung
//  relY:    relatve Endposition in Y-Richtung
//  steps:   Anzahl der Zwischenschritte der Animation
//  vz:      Verzögerung zwischen den Einzelschritten in Millisekunden
function moveElementXYrel(ID, relX, relY, steps, vz) {
  moveElementX(ID, (getElementX(ID) + relX), steps, vz);
  moveElementY(ID, (getElementY(ID) + relY), steps, vz);
}

// * --------------------------------------------------- *

// * -------------------------------- *
// * Funktionen für die Info-Vorschau *
// * -------------------------------- *

var on="0";


function mover(Nr) {
  if (Nr == on)
    return;
  resetDots(Nr);
  if (Nr == "A") {
    if (!NS4) {
      document.punktA1.src=dot[2].src;
      document.punktA2.src=dot[2].src;
      document.punkt01.src=dot[2].src;
    }
  }
  if (Nr == "B") {
    if (!NS4) {
      document.punktB1.src=dot[2].src;
      document.punktB2.src=dot[2].src;
      document.punkt02.src=dot[2].src;
      document.punkt03.src=dot[2].src;
    }
  }
  if (Nr == "C") {
    if (!NS4) {
      document.punktC1.src=dot[2].src;
      document.punktC2.src=dot[2].src;
      document.punkt04.src=dot[2].src;
    }
  }
  if (Nr == "D") {
    if (!NS4) {
      document.punktD1.src=dot[2].src;
      document.punktD2.src=dot[2].src;
      document.punkt05.src=dot[2].src;
    }
  }
  if (Nr == "E") {
    if (!NS4) {
      document.punktE1.src=dot[2].src;
      document.punktE2.src=dot[2].src;
      document.punkt06.src=dot[2].src;
      document.punkt08.src=dot[2].src;
    }
  }
  if (Nr == "F") {
    if (!NS4) {
      document.punktF1.src=dot[2].src;
      document.punktF2.src=dot[2].src;
      document.punkt07.src=dot[2].src;
    }
  }
}

function mout(Nr) {
  if (Nr == on)
    return;
  resetDots(Nr);
  if (Nr == "A") {
    if (!NS4) {
      document.punktA1.src=dot[0].src;
      document.punktA2.src=dot[0].src;
      document.punkt01.src=dot[3].src;
    }
  }
  if (Nr == "B") {
    if (!NS4) {
      document.punktB1.src=dot[0].src;
      document.punktB2.src=dot[0].src;
      document.punkt02.src=dot[3].src;
      document.punkt03.src=dot[3].src;
    }
  }
  if (Nr == "C") {
    if (!NS4) {
      document.punktC1.src=dot[0].src;
      document.punktC2.src=dot[0].src;
      document.punkt04.src=dot[3].src;
    }
  }
  if (Nr == "D") {
    if (!NS4) {
      document.punktD1.src=dot[0].src;
      document.punktD2.src=dot[0].src;
      document.punkt05.src=dot[3].src;
    }
  }
  if (Nr == "E") {
    if (!NS4) {
      document.punktE1.src=dot[0].src;
      document.punktE2.src=dot[0].src;
      document.punkt06.src=dot[3].src;
      document.punkt08.src=dot[3].src;
    }
  }
  if (Nr == "F") {
    if (!NS4) {
      document.punktF1.src=dot[0].src;
      document.punktF2.src=dot[0].src;
      document.punkt07.src=dot[3].src;
    }
  }
}

function mclick(Nr) {
  if (Nr == on)
    return;
  var tmp = on;
  on = Nr;
  resetDots(tmp);
  if (Nr == "A") {
    showElement("infoA");
    if (!NS4) {
      document.punktA1.src=dot[1].src;
      document.punktA2.src=dot[1].src;
      document.punkt01.src=dot[1].src;
    }
  }
  if (Nr == "B") {
    showElement("infoB");
    if (!NS4) {
      document.punktB1.src=dot[1].src;
      document.punktB2.src=dot[1].src;
      document.punkt02.src=dot[1].src;
      document.punkt03.src=dot[1].src;
    }
  }
  if (Nr == "C") {
    showElement("infoC");
    if (!NS4) {
      document.punktC1.src=dot[1].src;
      document.punktC2.src=dot[1].src;
      document.punkt04.src=dot[1].src;
    }
  }
  if (Nr == "D") {
    showElement("infoD");
    if (!NS4) {
      document.punktD1.src=dot[1].src;
      document.punktD2.src=dot[1].src;
      document.punkt05.src=dot[1].src;
    }
  }
  if (Nr == "E") {
    showElement("infoE");
    if (!NS4) {
      document.punktE1.src=dot[1].src;
      document.punktE2.src=dot[1].src;
      document.punkt06.src=dot[1].src;
      document.punkt08.src=dot[1].src;
    }
  }
  if (Nr == "F") {
    showElement("infoF");
    if (!NS4) {
      document.punktF1.src=dot[1].src;
      document.punktF2.src=dot[1].src;
      document.punkt07.src=dot[1].src;
    }
  }
  if (Nr == "G") {
    showElement("infoG");
  }
  if (Nr == "H") {
    showElement("infoH");
  }
}

function resetDots(Nr) {
  if (Nr == "A" && Nr != on) {
    hideElement("infoA");
    if (!NS4) {
      document.punktA1.src=dot[0].src;
      document.punktA2.src=dot[0].src;
      document.punkt01.src=dot[3].src;
    }
  }
  if (Nr == "B" && Nr != on) {
    hideElement("infoB");
    if (!NS4) {
      document.punktB2.src=dot[0].src;
      document.punktB1.src=dot[0].src;
      document.punkt02.src=dot[3].src;
      document.punkt03.src=dot[3].src;
    }
  }
  if (Nr == "C" && Nr != on) {
    hideElement("infoC");
    if (!NS4) {
      document.punktC1.src=dot[0].src;
      document.punktC2.src=dot[0].src;
      document.punkt04.src=dot[3].src;
    }
  }
  if (Nr == "D" && Nr != on) {
    hideElement("infoD");
    if (!NS4) {
      document.punktD1.src=dot[0].src;
      document.punktD2.src=dot[0].src;
      document.punkt05.src=dot[3].src;
    }
  }
  if (Nr == "E" && Nr != on) {
    hideElement("infoE");
    if (!NS4) {
      document.punktE1.src=dot[0].src;
      document.punktE2.src=dot[0].src;
      document.punkt06.src=dot[3].src;
      document.punkt08.src=dot[3].src;
    }
  }
  if (Nr == "F" && Nr != on) {
    hideElement("infoF");
    if (!NS4) {
      document.punktF1.src=dot[0].src;
      document.punktF2.src=dot[0].src;
      document.punkt07.src=dot[3].src;
    }
  }
  if (Nr == "G" && Nr != on) {
    hideElement("infoG");
  }
  if (Nr == "H" && Nr != on) {
    hideElement("infoH");
  }
}


// * ----------------------------- *
// * Funktionen für die Ortsrahmen *
// * ----------------------------- *

function ortover(Nr) {
  if (Nr == "G") {
    showElement("bd4");
  }
  if (Nr == "H") {
    showElement("bd1");
  }
  if (Nr == "I") {
    showElement("bd2");
  }
  if (Nr == "J") {
    showElement("bd3");
  }
}

function ortout(Nr) {
  if (Nr == "G") {
    hideElement("bd4");
  }
  if (Nr == "H") {
    hideElement("bd1");
  }
  if (Nr == "I") {
    hideElement("bd2");
  }
  if (Nr == "J") {
    hideElement("bd3");
  }
}


