  <!--

  /*
   * sitemap.js 1.31 05/02/2000
   *  - Opera 5
   *
   * sitemap.js 1.3 27/11/2000
   *  - Netscape 6
   *
   * sitemap.js 1.2 20/05/2000
   *  - split array tree into arrays for each element old tree
   *  - no mory type flag, an folder is an entry which has sons
   *  - a folder can have an link
   *  - while initing an default layers is shown
   *
   * sitemap.js 1.1 20/10/1999
   *  - showTree only updates and init layers new which have been really changed
   *  - add deep to knot entry
   *  - substitute knotDeep[ id ] w/ tree[ id2treeIndex[ id ] ].deep
   *  - add alignment to img and a &nbsp; at the beginning of eyery line
   *  - add a fake img for bookmarks on top panel
   *
   * sitemap.js 1.02 14/10/1999
   *  - fix bug in initStyles
   *
   * sitemap.js 1.01 06/10/1999
   *  - fix bug in knotDeep for Netscape 4.00-4.0.5
   *
   * sitemap.js 1.0 20/09/1999
   *
   * Javascript function for displaying hierarchic directory structures with
   * the ability to collapse and expand directories.
   *
   * Copyright (c) 1999 Polzin GmbH, Duesseldorf. All Rights Reserved.
   * Author: Lutz Eymers <ixtab@polzin.com>
   * Download: http://www.polzin.com/inet/fset_inet.phtml?w=goodies
   *
   * Permission to use, copy, modify, and distribute this software
   * and its documentation for any purposes and without fee
   * is hereby granted provided that this copyright notice
   * appears in all copies.
   *
   * Of course, this software is provided "as is" without express or implied
   * warranty of any kind.
   *
   */

  window.onError=null;

  var idx=0
  var treeId = new Array();
  var treeP_id = new Array();
  var treeIsOn = new Array();
  var treeTyp = new Array();
  var treeName = new Array();
  var treeUrl = new Array();
  var treeWasOn = new Array();
  var treeDeep = new Array();
  var treeLastY = new Array();
  var treeIsShown = new Array();

  function Note( id,p_id,name,url ) {
    treeId[ idx ] = id
    treeP_id[ idx ] = p_id
    treeIsOn[ idx ] = false
    treeTyp[ idx ] = 'f'
    treeName[ idx ] = name
    treeUrl[ idx ] = url
    treeWasOn[ idx ] = false
    treeDeep[ idx ] = 0
    treeLastY[ idx ] = 0
    treeIsShown[ idx ] = false
    idx++
  }

  function initDiv ( )
  {
    if ( isDOM || isDomIE )
    {
      divPrefix='<DIV CLASS="sitemap" style="position:absolute; left:0; top:0; visibility:hidden;" ID="sitemap'
      divInfo='<DIV CLASS="sitemap" style="position:absolute; visibility:visible" ID="sitemap'
    }
    else
    {
      divPrefix='<DIV CLASS="sitemap" ID="sitemap'
      divInfo='<DIV CLASS="sitemap" ID="sitemap'
    }
    document.writeln( divInfo +  'info">Bitte haben Sie etwas Geduld.<BR>&nbsp;<BR>Es werden die Eintr&auml;ge aus<BR>&nbsp;<BR>der Datenbank initialisiert.</DIV> ' );

    for ( var i=1; i<idx; i++ )
    {
      // linked Name ?
      if ( treeUrl[i] != '' )
        linkedName = '<A HREF="' + treeUrl[i] + '" TARGET="' + defaultTarget + '"><IMG SRC="Bilder/1w.gif" BORDER="0" WIDTH="3">' + treeName[i] + '</A>'
      else
        linkedName =  '<IMG SRC="Bilder/1w.gif" BORDER="0" WIDTH="3">' + treeName[i]
      // don't link folder icon if node has no sons
      if ( i == idx-1 || treeP_id[i+1] != treeId[i] ) {
        if ( treeDeep[ i ] == 0 )
          folderImg = '<IMG ALIGN="BOTTOM" SRC="Bilder/file_empty.gif" BORDER="0" HEIGHT="16" WIDTH="1" HSPACE="0">'
        else
          folderImg = ''
      } else {
        folderImg = '<A HREF="javascript:sitemapClick(' + treeId[i] + ')"><IMG ALIGN="BOTTOM" SRC="Bilder/folder_off.gif" BORDER="0" NAME="folder' + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0"></A>'
      }
      // which type of file icon should be displayed?
      if ( treeP_id[i] != 0 )
      {
        if ( lastEntryInFolder( treeId[i] ) )
          fileImg = '<IMG ALIGN="BOTTOM" SRC="Bilder/file_last.gif" BORDER="0" NAME="file'
            + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0">'
        else
          fileImg = '<IMG ALIGN="BOTTOM" SRC="Bilder/file.gif" BORDER="0" NAME="file'
            + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0">'
      }
      else
        fileImg = ''
      // traverse parents up to root and show vertical lines if parent
      // is not the last entry on this layer
      verticales = ''
      for( var act_id=treeId[i] ; treeDeep[ id2treeIndex[ act_id ] ] > 1;  )
      {
        act_id = treeP_id[ id2treeIndex[ act_id ]]
        if ( lastEntryInFolder( act_id ) )
        {
          verticales = '<IMG ALIGN="BOTTOM" SRC="Bilder/file_empty.gif" BORDER="0" HEIGHT="16" WIDTH="40" HSPACE="0">' + verticales
        }
        else
        {
          verticales = '<IMG ALIGN="BOTTOM" SRC="Bilder/file_vert.gif" BORDER="0" HEIGHT="16" WIDTH="30" HSPACE="0">' + verticales
        }
      }


      document.writeln( divPrefix + treeId[i] + '"><NOBR>&nbsp;' + verticales + fileImg + folderImg + linkedName + '</NOBR></DIV><BR>'
      )
    }
  }

  function initStyles ( )
  {
    document.writeln( '<STYLE TYPE="text/css">' + "\n" + '<!--' )
    for ( var i=1,y=y0; i<idx; i++ )
    {
      document.writeln( '#sitemap' + treeId[i] + ' {POSITION: absolute; VISIBILITY: hidden;}' )
      if ( treeIsOn[ id2treeIndex[ treeP_id[i] ] ] )
        y += deltaY
    }
    document.writeln( '#sitemapinfo {POSITION: absolute; VISIBILITY: visible;}' )
    document.writeln( '//-->' + "\n" + '</STYLE>' )
  }



  function sitemapClick( id )
  {
    var i = id2treeIndex[ id ]

    if ( treeIsOn[ i ] )
    // close directory
    {
      // mark node as invisible
      treeIsOn[ i ]=false
      // mark all sons as invisible
      actDeep = treeDeep[ i ]
      for( var j=i+1; j<idx && treeDeep[j] > actDeep; j++ )
      {
        treeWasOn[ j ] = treeIsOn[ j ]
        treeIsOn[ j ]=false
      }
      gif_off( id )
    }
    else
    // open directory
    {
      treeIsOn[ i ]=true
      // remember and restore old status
      actDeep = treeDeep[ i ]
      for( var j=i+1; j<idx && treeDeep[j] > actDeep; j++ )
      {
        treeIsOn[ j ] = treeWasOn[ j ]
      }
      gif_on( id )
    }
    showTree()
  }

  function knotDeep( id )
  {
    var deep=0
    while ( true )
      if ( treeP_id[ id2treeIndex[id] ] == 0 )
        return deep
      else
      {
        ++deep
        id = treeP_id[ id2treeIndex[id] ]
      }
    return deep
  }

  function initTree( id )
  {
    treeIsOn[ id2treeIndex[id] ] = true
    if ( treeTyp[ id2treeIndex[id] ] != 'b' )
      gif_on( id )
    while ( treeP_id[ id2treeIndex[id] ] != 0 )
    {
      id = treeP_id[ id2treeIndex[id] ]
      treeIsOn[ id2treeIndex[id] ] = true
      if ( treeTyp[ id2treeIndex[id] ] != 'b' )
        gif_on( id )
    }
  }

  function lastEntryInFolder( id )
  {
    var i = id2treeIndex[id]
    if ( i == idx-1 )
      return true
    if ( treeTyp[i] == 'b' )
    {
      if ( treeP_id[i+1] != treeP_id[i] )
        return true
      else
        return false
    }
    else
    {
      var actDeep = treeDeep[i]
      for( var j=i+1; j<idx && treeDeep[j] > actDeep ; j++ )
      ;
      if ( j<idx && treeDeep[j] == actDeep )
        return false
      else
        return true
    }
  }

  function showTree()
  {
    for( var i=1, y=y0, x=x0; i<idx; i++ )
    {
      if ( treeIsOn[ id2treeIndex[ treeP_id[i] ] ] )
      {
        // show current node
        if ( !(y == treeLastY[i] && treeIsShown[i] ) )
        {
          showLayer( "sitemap"+ treeId[i] )
          setyLayer( "sitemap"+ treeId[i], y )
          treeIsShown[i] = true
        }
        treeLastY[i] = y
        y += deltaY
      }
      else
      {
        // hide current node and all sons
        if ( treeIsShown[ i ] )
        {
          hideLayer( "sitemap"+ treeId[i] )
          treeIsShown[i] = false
        }
      }
    }
  }

  function initIndex() {
    for( var i=0; i<idx; i++ )
      id2treeIndex[ treeId[i] ] = i
  }

  function gif_name (name, width, height) {
    this.on = new Image (width, height);
    this.on.src = name + "_on.gif"
    this.off = new Image (width, height);
    this.off.src = name + "_off.gif"
  }

  function load_gif (name, width, height) {
    gif_name [name] = new gif_name (name,width,height);
  }

  function load_all () {
    load_gif ('folder',30,16)
    file_last = new Image( 30,16 )
    file_last.src = "Bilder/file_last.gif"
    file_middle = new Image( 30,16 )
    file_middle.src = "Bilder/file.gif"
    file_vert = new Image( 30,16 )
    file_vert.src = "Bilder/file_vert.gif"
    file_empty = new Image( 30,16 )
    file_empty = "file_empty.gif"
  }

  function gif_on ( id ) {
    eval("document['folder" + id + "'].src = gif_name['folder'].on.src")
  }

  function gif_off ( id ) {
    eval("document['folder" + id + "'].src = gif_name['folder'].off.src")
  }

  // global configuration
  var deltaX = 30
  var deltaY = 16
  var x0 = 5
  var y0 = 5
  var defaultTarget = 'examplemain'

  var browserName = navigator.appName;
  var browserVersion = parseInt(navigator.appVersion);
  var isIE = false;
  var isNN = false;
  var isDOM = false;
  var isDomIE = false;
  var isDomNN = false;
  var layerok = false;

  var isIE = browserName.indexOf("Microsoft Internet Explorer" )==-1?false:true;
  var isNN = browserName.indexOf("Netscape")==-1?false:true;
  var isOpera = browserName.indexOf("Opera")==-1?false:true;
  var isDOM = document.getElementById?true:false;
  var isDomNN = document.layers?true:false;
  var isDomIE = document.all?true:false;

  if ( isNN && browserVersion>=4 ) layerok=true;
  if ( isIE && browserVersion>=4 ) layerok=true;
  if ( isOpera && browserVersion>=5 ) layerok=true;


  function hideLayer(layerName) {
    if (isDOM)
      document.getElementById(layerName).style.visibility="hidden"
    else if (isDomIE)
      document.all[layerName].style.visibility="hidden";
    else if (isDomNN)
      document.layers[layerName].visibility="hidden";
  }

  function showLayer(layerName) {
    if (isDOM)
      document.getElementById(layerName).style.visibility="visible"
    else if (isDomIE)
      document.all[layerName].style.visibility="visible";
    else if (isDomNN)
      document.layers[layerName].visibility="visible";
  }

  function setyLayer(layerName, y) {
    if (isDOM)
      document.getElementById(layerName).style.top=y
    else if (isDomIE)
      document.all[layerName].style.top=y;
    else if (isDomNN)
      document.layers[layerName].top=y;
  }

  var id2treeIndex = new Array()

  // the structure is easy to understand with a simple example
  // p_id is the id of the parent
  // E0                                      ( id=0,p_id=-1 )
  //          E11                            ( id=1,p_id=0)
  //                     E111                ( id=2,p_id=1 )
  //                     E112                ( id=3,p_id=1 )
  //          E12                            ( id=4,p_id=0 )
  //                     E121                ( id=5,p_id=4 )
  //          E13                            ( id=6,p_id=0 )
  //                     E131                ( id=7,p_id=6 )
  //                                 E1311   ( id=8,p_id=7 )
  //                     E132                ( id=9,p_id=6 )
  // this is a multinary tree structure which is easy to
  // populate with database data :)

   function initArray()
  {
    Note(0,-1,'','')
    Note(1,0,'Startseite','welcome.html')
    Note(2,1,'Zum Anfang','welcome.html')

    Note(900,0,'','')

    Note(3,0,'Aktuelles','')
    Note(4,3,'Termine','')
    Note(5,4,'Kalendarium','aktuell.html')

    Note(6,3,'Veranstaltungen','')
    Note(7,6,'Ankündigungen','veransta.html')


    Note(11,3,'Unterrichtszeiten','')
    Note(12,11,'Zeitraster','uzeiten_60.html')

    Note(13,3,'Mitteilungen','')
    Note(14,13,'der Schulleitung','mitteilungen.html')

    Note(15,3,'Renovierung','')
    Note(16,15,'Zu den Bildern','renovierung2.html')



    Note(22,3,'Zentrale Prüfung','')
    Note(23,22,'Mitteilung','zentrale_p.html')
    Note(139,3,'LSE 8','')
    Note(140,139,'Mitteilung','lse_8.html')

    Note(152,0,'Mensa','')
    Note (153,152, 'Informationen','mens_1.html')
    Note(154,0,'Bildungspakt','')
    Note(155,154, 'Informationen','btbp.html')

//    Note(156,0,'Elternsprechtag','')
//    Note (157,156,'Informationen','espt.html') -->
    Note(156,0,'Presseberichte','')
    Note(157,156,'Artikel','presse_aktuell.html')
    Note(24,0,'News','news.html')
    Note(25,24,'Text','news.html')

 Note(149,0,'Anmeldungen','')
 Note(150,149,'Informationen','anmeldung.html')

    Note(902,0,' ','')

    Note(27,0,'Unsere Schule','')

    Note(28,27,'Personen','')
    Note(29,28,'Schulleitung','schulleitung.html')
    Note(30,28,'Lehrer','lehrerb_2009.html')
    Note(31,28,'Sekretariat','sekretariat.html')
    Note(32,28,'Hausmeister','hausmeister.html')

    Note(33,27,'Gebäude','')
    Note(35,33,'Ansichten','')
    Note(36,35,'innen','gebaeudea.html')
    Note(37,35,'aussen','gebaeudea.html')
    Note(38,33,'Renovierung','')
    Note(39,38,'Aktuell','renovierung4.html')
    Note(40,38,'Geschichte','renovierung2.html')

    Note(41,27,'Schulordnung','')
    Note(42,41,'Text','schulodnung_2009.html')

    Note(43,27,'Auszeichnungen','')
    Note(44,43,'Text','auszeichnungen.html')

    Note(47,27,'Fachräume','')
    Note(48,47,'Fachräume','fachraumpr.html#1')

    Note(49,27,'Mittagsbetreuung','')
    Note(50,49,'Mitteilung','paeue1.html')

    Note(51,27,'Schulprogramm','')
    Note(52,51,'Text','pinhalt.html')


    Note(903,0,' ','')

    Note(53,0,'Unterricht','')
    Note(54,53,'Unterrichtszeiten','')
    Note(55,54,'Zeiten','uzeiten_60.html')
    Note(56,53,'Stundentafel','')
    Note(57,56,'Tabelle','stundentafel_60.html')
    Note(58,53,'Differenzierung','')
    Note(59,58,'JgSt. 7','differenzierung3.html')
    Note(60,53,'Epochalunterricht','')
    Note(61,60,'Tabelle','epochal.html')
    Note(62,53,'Fachräume','')
    Note(63,62,'Prinzip','fachraumpr.html')
    Note(64,53,'Klassen','')
    Note(65,64,'Klassen','klassen_2010_11.html')
    Note(133,53,'Kurse','')
    Note(134,133,'Kurse','kurse_2010_11.html')



    Note(904,0,' ','')

    Note(68,0,'Kooperationen','')
    Note(69,68,'Firma Vorwerk','')
    Note(70,69,'Vertrag','vorwerk1.html')
    Note(71,69,'Besuch JgSt.8','vorwerk2.html')
    Note(72,69,'Besuch --- ','_')
    Note(73,69,'Besuch ---','_')

    Note(74,68,'Nachhilfe','')
    Note(75,74,'Text','machhilfe1.html')

    Note(76,68,'Patenprojekt','')
    Note(77,76,'Text','patenprojekt1.html')

    Note(905,0,' ','')

    Note(78,0,'Berufsvorbereitung','')
    Note(79,78,'Kompetenzcheck','')
    Note(80,79,'Infos 2008','kc1.html')
    Note(81,78,'Berufswahl','')
    Note(82,81,'Berufswahl','berufsorientierung.html')
//  Note(83,78,'Praktikum','noop.html')
//    Note(143,78,'InfoBörse 2010','')
//    Note(152,143,'Verschoben','berufsinfoboerse_2010_verschoben.html')
//    Note(144,143,'Einladung','berufsinfoein_2010.html')
//    Note(145,143,'Programm','berufsinfoboerse_2010.html')
//    Note(146,143,'Partner','berufsinfoboerse_2010.html#partner')

    Note(906,0,' ','')

    Note(90,0, 'Klassenfahrten','')
    Note(92,90,'Klassenfahrten','klassenfahrten.html')
    Note(93,90,'Klassenfahrt 8b&8d','klassenf8.html')
    Note(94,90,'Klassenfahrt 8c','klassenf8c.html')
    Note(95,90,'Klassenfahrt 6c','klassenf6c2.html')
    Note(96,90,'Klassenfahrt 10b','klassenf10b2007.html')
    Note(97,90,'Klassenfahrt 6b','klassenf6b2008.html')

    Note(907,0,' ','')

    Note(98,0,'Elterninitiativen ','')
    Note(100,98,'Milchküche','')
    Note(101,100,'Informationen','milchkueche.html')

    Note(102,98,'Förderverein ','')
    Note(103,102,'Zweck des Vereins','foerderv.html')
    Note(104,102,'Sitzungen','../foerdersitzungen.html')
    Note(105,102,'Aktivitäten','foerderprojekte.html')
    Note(106,102,'Aktuelle Projekte','../foerdervpakt.html')

        Note(908,0,' ','')

    Note(107,0, 'regelmäßige Projekte', '')
    Note(108,107, 'Suchtprophylaxe','')
        Note(109,108, 'Ich bin stark ! 2008','suchtproph2.html')
        Note(110,108, 'Ich bin stark ! 2009','ibs_2009.html')

    Note(111,107, 'Erleben statt Gewalt', '')
         Note(112,111, 'JgSt. 6-10', 'esg2008.html')
         Note(113,111, 'JgSt. 2-5', 'esg2008j5.html')

    Note(114,107, 'Schulsanitätsdienst','')
         Note(115,114, 'Warum Sandienst ?','sanitaeter.html')
         Note(116,114, 'Informationen','saninfo.html')
         Note(117,114, 'Termine', 'sanitermine.html')

    Note(118,107, 'Streitschlichtung','')
         Note(120,118,'Schlichtung','streitschlichter.html')
         Note(121,118,'Jubiläum','jubilaeum.html')
         Note(122,118,'Seminar','streitschlichters.html')

    Note(151,0, 'einzelne Projekte', '')
    Note(147,151, 'Goldenes Abitur', 'besuch.html')
         Note(148,147, 'Besuch', 'besuch.html')
    Note(123,151, 'Schulfest','')
         Note(124,123,'Schulfest 2008','schulfest08.html')
    Note(136,151, 'Lehrerausflug 2009','')
         Note(137,136,'Xanten','xanten_2009.html')
    Note(141,151,'Grusical','')
         Note(142,141,'Bilder','grusical_1.html')



        Note(909,0,' ','')


    Note(125,0,'Downloadbereich','')
    Note(126,125,'Downloadarea','download.html')

    Note(127,0,'Archiv','')
    Note(129,127,'Inhalt des Archivs','archiv1.html')

        Note(910,0,' ','')
    Note(130,0,'Impressum','')
    Note(131,130,'Verantwortlich','impressum.html')
    Note(132,130,'Disclaimer','disclaimer.html')



<!-- letze id ist 156-->



    treeTyp[0] = 'f'
    treeIsOn[0] = true
    treeWasOn[0] = true
  }

  var idx=0
  initArray()
  initIndex()
  load_all()
  for( i=1; i<idx; i++ )
  {
    treeDeep[i] = knotDeep( treeId[i] )
    if ( treeDeep[i] == 0 )
      treeIsShown[i] = true
  }
  if ( isDomNN )
    initStyles();
