///////////////////////////////////////////////////
//
//   Wegweiser.js
//
///////////////////////////////////////////////////
 /*
function popOver(nr, menuNum, itemNum) {
function popOut(nr, menuNum, itemNum) {
function getTree(nr, menuNum, itemNum) {
function changeColor(changeArray, isOver) {
function hideAllBut(nr, menuNum) {
function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass, aTextClass) {
function Item(text, href, frame, length, spacing, target, UeFarbe, HiFarbe) {
function writeMenus(nr) {
function zeigeWegweiser(nr, lage)  {    //  wird aufgerufen in WegweiserLage.js
function verbirgWegweiser(nr)  {
function baueWegweiser(nr, lage)  {    //  wird aufgerufen in WegweiserLage.js   */





// Original:  Angus Turnbull
// http://gusnz.cjb.net, gefunden auf  http://javascript.internet.com


var popTimer = 0;            // Hide timeout.
var litNow   = new Array();  // Array showing highlighted menu items.


function popOver(nr, menuNum, itemNum) {
  clearTimeout(popTimer);
  hideAllBut(nr, menuNum);
  litNow = getTree(nr, menuNum, itemNum);
  changeColor(nr, litNow, true);
  targetNum = menu[nr][menuNum][itemNum].target;    //  target:  Ziel in einem Unter-Wegweiser
  if (targetNum > 0) {
    thisX = parseInt(menu[nr][menuNum][0].styleRef.left) + parseInt(menu[nr][menuNum][itemNum].styleRef.left);
    thisY = parseInt(menu[nr][menuNum][0].styleRef.top)  + parseInt(menu[nr][menuNum][itemNum].styleRef.top);
    with (menu[nr][targetNum][0].styleRef) {
      left = parseInt(thisX + menu[nr][targetNum][0].x);
      top  = parseInt(thisY + menu[nr][targetNum][0].y);
      visibility = 'visible';
  } } }


function popOut(nr, menuNum, itemNum) {
  if ((menuNum == 0) && !menu[nr][menuNum][itemNum].target)
    hideAllBut(nr, 0)
  else
    popTimer = setTimeout('hideAllBut(' + nr + ', 0)', 500);   }


function getTree(nr, menuNum, itemNum) {
  // Array index is the menu number. The contents are null (if that menu is not a parent)
  // or the item number in that menu that is an ancestor (to light it up).
  itemArray = new Array(menu[nr].length);
//itemArray = new Array();
  while(1) {
    itemArray[menuNum] = itemNum;
    if (menuNum == 0)      // If we've reached the top of the hierarchy, return.
      return itemArray;
    itemNum = menu[nr][menuNum][0].parentItem;
    menuNum = menu[nr][menuNum][0].parentMenu;
  } }


// _______________________________________________________________
// _______________________________________________________________
// _______________________________________________________________
function changeColor(nr, changeArray, isOver) {
  // Pass an array and a boolean to specify colour change, true = over colour.
  var hifUe = "#999999";

  for (i = 0; i < changeArray.length; i++) {
    if (changeArray[i]) {
      if (isOver)  {
        //  Wieso denn menu[nr][i]??  Wenn es z.B. um   menu[nr][16]   geht??  Aber immerhin funzt es.
        stilName = document.getElementById("menu"+nr+"_"+i+"item"+changeArray[i]).getAttribute('class');
        document.getElementById("menu"+nr+"_"+i+"item"+changeArray[i]).setAttribute('class','WwFbHgTa1 WwRd');

//      var hif = (menu[nr][i][changeArray[i]].UeFarbe ? menu[nr][i][changeArray[i]].UeFarbe : menu[nr][i][0].overCol);
        var hif="#ffeecc";      }
      else
//        var hif = (menu[nr][i][changeArray[i]].HiFarbe ? menu[nr][i][changeArray[i]].HiFarbe : menu[nr][i][0].backCol);
      //  var hif="#ffe0b6";
      //newCol = isOver ? menu[nr][i][0].overCol : menu[nr][i][0].backCol;
      // Change the colours of the div background.
//      with (menu[nr][i][changeArray[i]].styleRef)
//        backgroundColor = hif;
        document.getElementById("menu"+nr+"_"+i+"item"+changeArray[i]).setAttribute('class','WwFbHgRu1 WwRd');

  }  }  }

function changeColor_vorher(changeArray, isOver) {
  // Pass an array and a boolean to specify colour change, true = over colour.
  for (i = 0; i < changeArray.length; i++) {
    if (changeArray[i]) {
      if (isOver)
        var hif = (menu[nr][i][changeArray[i]].UeFarbe ? menu[nr][i][changeArray[i]].UeFarbe : menu[nr][i][0].overCol);
      else
        var hif = (menu[nr][i][changeArray[i]].HiFarbe ? menu[nr][i][changeArray[i]].HiFarbe : menu[nr][i][0].backCol);
      //newCol = isOver ? menu[nr][i][0].overCol : menu[nr][i][0].backCol;
      // Change the colours of the div background.
      with (menu[nr][i][changeArray[i]].styleRef)
        backgroundColor = hif;

  }  }  }




function changeCo(changeArray, isOver) {

}



function hideAllBut(nr, menuNum) {
var keepMenus = getTree(nr, menuNum, 1);
for (count = 0; count < menu[nr].length; count++)
if (!keepMenus[count])
menu[nr][count][0].styleRef.visibility = 'hidden';
changeColor(nr, litNow, false);
}

// *** MENU CONSTRUCTION FUNCTIONS ***

function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass, aTextClass) {
  this.isVert  = isVert;     // True or false - a vertical menu?
  this.popInd  = popInd;     // The popout indicator used (if any) for this menu.
  this.x = x;                // wo?
  this.y = y;
  this.width   = width;      // wie groSz?
  this.overCol = overCol;    // Mausdrueberfarbe
  this.backCol = backCol;    // voreingestellte?? Hintergrundfarbe ohne Mausdrueber
  this.borderClass = borderClass;// The stylesheet class used for item borders and the text within items.
  this.aTextClass  = aTextClass;
  this.textClass   = textClass;
  this.parentMenu  = null;       //  Parent menu and item numbers, indexed later.
  this.parentItem  = null;
  this.styleRef         = null;       //  Reference to the object's style properties (set later).
  }  //  ENDE fkt Menu()

function Item(text, href, frame, length, spacing, target, UeFarbe, HiFarbe) {
  this.text = text;
  this.href = href;
  this.frame= frame;
  this.length = length;
  this.spacing= spacing;
  this.target = target;
  this.UeFarbe= UeFarbe;          //  Mausdrueberfarbe, staerker als oben in Menu()
  this.HiFarbe= HiFarbe;          //  Hintergrundfarbe ohne Mausdrueber
  this.styleRef = null;   // Reference to the object's style properties (set later).
  }


function writeMenus(nr)  {
  for (currMenu = 0; currMenu < menu[nr].length; currMenu++)
   with (menu[nr][currMenu][0])   {
    // Variable for holding HTML for items and positions of next item.
    var str = '', itemX = 0, itemY = 0;

    // Remember, items start from 1 in the array (0 is menu object itself, above).
    // Also use properties of each item nested in the other with() for construction.
    for (currItem = 1; currItem < menu[nr][currMenu].length; currItem++)
     with (menu[nr][currMenu][currItem]) {
      var itemID = 'menu' + nr + '_' + currMenu + 'item' + currItem;
      hf = (HiFarbe ? HiFarbe : backCol);
          // The width and height of the menu item - dependent on orientation!
      var w = (isVert ? width : length);
      var h = (isVert ? length : width);
          // Create a div text string with appropriate styles/properties.
      // ________________________    D  I  V  _______________________________
      //  debugger;
      str += '<div id="' + itemID + '" ';
      str += 'class="'  + backCol + ' WwRd" ';
      str += 'style="position: absolute; left: '+itemX+'; top: '+itemY+'; ';
      str += 'width: '+w+'; height: '+h+'; visibility: inherit; ';   //  Sichtbarkeitsvererbung ist wichtig
//++  if (hf)
//++    str += 'background: '+hf+'; ';    //  hier koennen Sonderfarben noch nachgeliefert worden sein
      str += '" ';     //  ENDE style=" .... "
//++  if (borderClass)
//++    str += 'class="'+borderClass+'" ';
      if (href != "---")
        str +=  ' onClick="' + href + '" ';
          // Add mouseover handlers and finish div/layer.
      str   +=  ' onMouseOver="popOver(' + nr + ', '+currMenu+','+currItem+')" ';
      str   +=   ' onMouseOut="popOut('  + nr + ', '+currMenu+','+currItem+')">';
          // Add contents of item (default: table with link inside).
          // If a target frame is specified, also add that to the <a> tag.
      Frame=(frame ? ' target="'+frame+'"' : '' );
      Href =(href=="---"?"<span class="+aTextClass+">":'<a class="'+aTextClass+'" href="'+href+'"'+Frame+'>');
      Href_=(href=="---"?"</span>" : '</a>' );

      str += '<table width="'+(w-8)+'" border="4" cellspacing="0" cellpadding="0"><tr>';
      str += '<td align="left" height="'+(h-7)+'">'+Href +text+Href_+'</td>';
      if (target > 0) {
        menu[nr][target][0].parentMenu = currMenu; // Set target's parents to this menu item.
        menu[nr][target][0].parentItem = currItem;
        if (popInd)   // Add a popout indicator.
          //   der zeigt an (z.B. mittels  >  ),, wenn es rechts davon noch eine weitere Flaeche anwaehlbar ist.
          str += '<td class="'+textClass+'" align="right">'+popInd+'</td>';
          // in rechtschreibdienst.de anders seit Februar 2011:
       // str += '<td class=Wegw align="right">'+popInd+'</td>';
					                         //  Pfeil (spitze Klammer, Winkel, Zacke) nach rechts:
					                         //  zweite Sendgroesze in    new Menu     (  "&gt;"  )
        }
      str += '</tr></table></div>';
      // ___________________  E N D E    D  I  V  - K e t t e  __________________
      if (isVert)    itemY += length + spacing;
      else           itemX += length + spacing;
      }
    // ___________________  D  I  V  Erschaffung  __________________
    var newDiv = document.createElement('div');
    document.getElementsByTagName('body').item(0).appendChild(newDiv);
    newDiv.innerHTML = str;
    styleRef            = newDiv.style;        //  styleRef
    styleRef.position   = 'absolute';          //  styleRef
    styleRef.visibility = 'hidden';            //  styleRef
    for (currItem = 1; currItem < menu[nr][currMenu].length; currItem++) {
      itemName = 'menu' + nr + "_" + currMenu + 'item' + currItem;
      //   ____________________   hier entsteht  styleRef  _________________
      menu[nr][currMenu][currItem].styleRef = document.getElementById(itemName).style;
    } }  //  E N D E   for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[nr][currMenu][0])

  with(menu[nr][0][0]) {
    styleRef.left = x;                         //   styleRef   bedeutet ....
    styleRef.top  = y;
    styleRef.visibility = 'visible';
  } }    //  E N D E  des Verfahrens writeMenus()

function nimmWegweiser(nr)  {
  verbirgWegweiser(WegweiserNr);
  hideAllBut(WegweiserNr, 0);   //  auch die gerade geoeffneten Wegweiserchen verbergen
  zeigeWegweiser(nr);
  if (nr==1) aendereStilMerkmal(".WwRd", "border",  "1px solid  rgb(120,140,160)")
  if (nr==2) aendereStilMerkmal(".WwRd", "border",  "2px dotted rgb(200,170,33)")
  }


function zeigeWegweiser(nr, lagE)  {    //  wird aufgerufen in WegweiserLage.js
  WegweiserNr = nr;   //  fuer  verbirgWegweiser()
  if (typeof(lagE)=="undefined") {
    lagE = new Object;
    lagE.x = 20;
    lagE.y = 100;  }
  if (typeof(menu)=="undefined") {
    menu   = new Array();   }

  if (typeof(menu[nr])=="undefined") {
    menu[nr]   = new Array();
    eval("baueWegweiser"+nr+"(nr, lagE);");
    writeMenus(nr);
    schiebeWegweiser(nr, lagE); //  lage.x, lage.y bestimmen, wohin.
    }
  else  {
    menu[nr][0][0].styleRef.visibility = "visible";
    }
  }

function verbirgWegweiser(nr)  {
  menu[nr][0][0].styleRef.visibility = "hidden";
  }

function baueWegweiser1(nr, lage)  {    //  wird aufgerufen in WegweiserLage.js
  menu[nr] = new Array();

  var FbHgRu1="WwFbHgRu1"; var FbHgTa1="WwFbHgTa1";
  var FbHgRu2="WwFbHgRu1"; var FbHgTa2="WwFbHgTa1";
  var FbHgRu3="WwFbHgRu1"; var FbHgTa3="WwFbHgTa1";
  var FbHgRu4="WwFbHgRu1"; var FbHgTa4="WwFbHgTa1";
  var FbHgRu5="WwFbHgRu1"; var FbHgTa5="WwFbHgTa1";


  var Abst = 0;    //  nicht wirklich wichtig
     //  Hoehe der Haupt-Wegweiser:
     // Ho: Hoehe der Unter-Menues; zu kleiner Wert (kleiner als 22) ist wirkungslos;
  var Arx=100, Ary=8, Ho=22, Br2=110, Br3=160;
     //   Ausrueckung (x und y), Hoehe, Breite der Untermenues (bei waagerechtem Menue: Ho und Br vertauscht)
  var Arex=88, Arey=11, Hoe=104;
  menu[nr][0] = new Array();
  menu[nr][0][0] = new Menu(true, '&gt;', lage.x, lage.y, 130, FbHgTa1, FbHgRu1, 'WwRd', 'itemText', 'Wegw');
     // true: waagerecht?
     //function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass)
     //   x  und  y   sind also der Ursprung des Klappwegweisers
     //function Item(text, href, frame, length, spacing, target)
  menu[nr][0][1] = new Item('&nbsp; Willkommen'    ,  'index.php?haupt=Eingang'     , '', 22, Abst, 1);
  menu[nr][0][2] = new Item('&nbsp; Garten'        ,  'index.htm'                  , '', 22, Abst, 0);
  menu[nr][0][3] = new Item('&nbsp; Impressum '    ,  'index.php?haupt=ZpImpressum' , '', 22, Abst, 2);
  menu[nr][0][4] = new Item('&nbsp; Ausspr&uuml;che', 'index.php?haupt=AkSprueche'  , '', 22, Abst, 3);
  menu[nr][0][5] = new Item('&nbsp; Empfehlungen'  ,  '#'                           , '', 22, Abst, 4);


  //  1 Willkommen
  // 60, 0, Br2, FbHgTa2, FbHgRu2,   -- alt Arx, Ary, Br2+44, FbHgTa2, FbHgRu2,
  menu[nr][1]    = new Array();
  menu[nr][1][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][1][1] = new Item('&nbsp; Wohlf&uuml;hlen', 'index.php?haupt=Uebersicht'  , '', Ho, Abst, 5);
  menu[nr][1][2] = new Item('&nbsp; Mediation'      , 'index.php?haupt=UeMediation' , '', Ho, Abst, 8);
  menu[nr][1][3] = new Item('&nbsp; Lektorat'       , 'index.php?haupt=UeLektorat'  , '', Ho, Abst, 9);

  //  5 Wohlfuehlen (= Uebersicht)
  menu[nr][5]    = new Array();
  menu[nr][5][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd'   , 'itemText', 'Wegw');
  menu[nr][5][1] = new Item('&nbsp; F&uuml;r Gruppen'  , 'index.php?haupt=UeReferentin', '', Ho, Abst, 6);
  menu[nr][5][2] = new Item('&nbsp; Individuell'       , 'index.php?haupt=UeFuerSie'   , '', Ho, Abst, 7);

  //  6 Fuer Gruppen
  menu[nr][6]    = new Array();
  menu[nr][6][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd'   , 'itemText', 'Wegw');
  menu[nr][6][1] = new Item('&nbsp; Nordseekulturelles', 'index.php?haupt=RfNordsee'   , '', Ho, Abst, 0);
  menu[nr][6][2] = new Item('&nbsp; Gesundheit'        , 'index.php?haupt=RfGesundheit', '', Ho, Abst, 0);
  menu[nr][6][3] = new Item('&nbsp; Theologie'         , 'index.php?haupt=RfTheologie' , '', Ho, Abst, 0);
  menu[nr][6][4] = new Item('&nbsp; Meditation'        , 'index.php?haupt=RfMeditation', '', Ho, Abst, 0);
  menu[nr][6][5] = new Item('&nbsp; Singen'            , 'index.php?haupt=RfSingen'    , '', Ho, Abst, 0);
  menu[nr][6][6] = new Item('&nbsp; Weiteres'          , 'index.php?haupt=RfWeiteres'  , '', Ho, Abst, 0);

   //  7 Individuell
  menu[nr][7]    = new Array();
  menu[nr][7][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd'   , 'itemText', 'Wegw');
  menu[nr][7][1] = new Item('&nbsp; Gesundheit'        , 'index.php?haupt=FsGesundheit', '', Ho, Abst, 0);
  menu[nr][7][2] = new Item('&nbsp; Theologie'         , 'index.php?haupt=FsTheologie' , '', Ho, Abst, 0);
  menu[nr][7][3] = new Item('&nbsp; Meditation'        , 'index.php?haupt=FsMeditation', '', Ho, Abst, 0);

    //  2 Zur Person  (Impressum nach oben gesetzt von Sigrid am 17.12.2008)
  menu[nr][2]    = new Array();
  menu[nr][2][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd'   , 'itemText', 'Wegw');
  menu[nr][2][1] = new Item('&nbsp; Sigrid Saxen'      , 'index.php?haupt=ZpSiSax'      , '', Ho, Abst, 11);
  menu[nr][2][2] = new Item('&nbsp; Konditionen'       , 'index.php?haupt=ZpKonditionen', '', Ho, Abst, 0);
  menu[nr][2][3] = new Item('&nbsp; Letzte &Auml;nderungen','index.php?haupt=AkAenderungen', '', Ho, Abst, 0);


    //  3 Aussprueche   (aufgefaechert 14.9.2010)
  menu[nr][3]    = new Array();
  menu[nr][3][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][3][1] = new Item('&nbsp; Medizin'           ,'index.php?haupt=SpMedizin'   , '', Ho, Abst, 0);
  menu[nr][3][2] = new Item('&nbsp; Politik'           ,'index.php?haupt=SpPolitik'   , '', Ho, Abst, 10);
  menu[nr][3][3] = new Item('&nbsp; Rechtschreibreform','index.php?haupt=SpSchreibung', '', Ho, Abst, 0);


    //  4 Empfehlungen
  menu[nr][4]    = new Array();
  menu[nr][4][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][4][1] = new Item('&nbsp; beruflicher Art'  , 'index.php?haupt=EmPartner'   , '', Ho, Abst, 0);
  menu[nr][4][2] = new Item('&nbsp; ehrenamtliche'    , 'index.php?haupt=Emweitere'   , '', Ho, Abst, 0);

    //  8 Mediation
  menu[nr][8]    = new Array();
  menu[nr][8][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][8][1] = new Item('&nbsp; Ablauf',          'index.php?haupt=MeAblauf'     , '', Ho, Abst, 0);
  menu[nr][8][2] = new Item('&nbsp; Unterschied',     'index.php?haupt=MeUnterschied', '', Ho, Abst, 0);

    //  9 Lektorat
  menu[nr][9]    = new Array();
  menu[nr][9][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][9][1] = new Item('&nbsp; Deutschhinweise', 'index.php?haupt=LkHinweise'  , '', Ho, Abst, 0);

    // 10 Aussprueche Politik
  menu[nr][10]    = new Array();
  menu[nr][10][0] = new Menu(true, '&gt;', Arx, Ary, Br2+44, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][10][1] = new Item('&nbsp; Kabarett'           ,'index.php?haupt=SpKabarett'   , '', Ho, Abst, 0);

    // 11 Ausbildungen
  menu[nr][11]    = new Array();
  menu[nr][11][0] = new Menu(true, '&gt;', Arx, Ary, Br2+48, FbHgTa2, FbHgRu2, 'WwRd', 'itemText', 'Wegw');
  menu[nr][11][1] = new Item('&nbsp; Umweltschutz'        ,'index.php?haupt=SiUmwelt'   , '', Ho, Abst, 0);
  menu[nr][11][2] = new Item('&nbsp; Religion'            ,'index.php?haupt=SiReligion' , '', Ho, Abst, 0);
  menu[nr][11][3] = new Item('&nbsp; weitere Ausbildungen','index.php?haupt=Siweitere'  , '', Ho, Abst, 0);


} //  baueWegweiser ENDE










// *** OPTIONAL CODE FROM HERE DOWN ***

   // This is a quick snippet that captures all clicks on the document and hides the menus
   // every time you click. Use if you want.
//document.onclick = clickHandle;
//function clickHandle(evt)   {
// hideAllBut(nr, 0); }

// This is just the moving command for the example.
function schiebeWegweiser(nr, lage)  {
  }

/*
  alert(nr);
  with(menu[nr][0][0].styleRef)  {
    left = lage.x;
    top  = lage.y;
  } }
*/
/* WEGWEISER.JS ENDE */
