//******************************************************************
//* Funktion:       wahlenFromXML()                                *
//* Beschreibung:   lädt abhängig vom Browser die Daten einer      *
//*                 xml-Datei in ein xml-Document                  *
//*                                                                *
//* Übergabe:       wahlart: muss der Unterfunktion xml_auswerten()*
//*                          weitergeleitet werden                 *
//* Rückgabe:       -                                              *
//*                                                                *
//* Datum    Author   Beschreibung/Änderung                        *
//* 25.09.07 jb       Ersterstellung                               *
//******************************************************************
function wahlenFromXML(wahlart)
{

   var fehler = null;
   var http = null;

   if (navigator.appName == "Microsoft Internet Explorer")
   {
      // *** IE ***
      http = new ActiveXObject ("Microsoft.XMLHTTP");
      if (http != null)
      {
         http.open("GET", "../../xml/wahlen_ueberblick.xml", true);
         http.onreadystatechange = function()
         {
            if (http.readyState == 4)
            {
               // Problem: IE liefert lokal nur http.responseText richtig,
               //          http.responseXML ist leer (IE erkennt Datei nicht als xml-Datei)
               // Lösung:  zur Laufzeit ein xml-tag erstellen und http.responseText
               //          hinein schreiben und in Variable abspeichern
               var tempXML = document.createElement('xml');
               //http.responseText in innerHTML von xml-tag schreiben
               tempXML.setAttribute('innerHTML', http.responseText);
               tempXML.setAttribute('id','responseText');
               document.body.appendChild(tempXML);
               //zur Sicherheit:
               document.getElementById('responseText').innerHTML = http.responseText;
               //xml-tag in Variable schreiben
               xmlDoc = document.getElementById('responseText');
               //xml-tag kann nun wieder gelöscht werden
               document.body.removeChild(document.getElementById('responseText'));

               xml_auswerten(xmlDoc, wahlart);
            }
         };
         http.send(null);
      }
      else
      {
         fehler = "Internet Explorer konnte kein ActiveXObject erstellen.";
      }
   } // ENDE IE-Browser

   else
   {
      // *** andere Browser ***
      http = new XMLHttpRequest();
      if (http != null)
      {
         http.open("GET", "../../xml/wahlen_ueberblick.xml", true);
         http.onreadystatechange = function()
         {
            if (http.readyState == 4)
            {
               //alert(http.responseText); // xml-Datei ausgeben
               xml_auswerten(http.responseXML, wahlart);
            }
         };
         http.send(null);
      }
      else
      {
         fehler = "Der Browser konnte keinen XMLHttpRequest() erzeugen.";
      }
   } // ENDE andere Browser


   // *** Fehlerbehandlung ***
   if (fehler != null)
   {
      alert(fehler);
   }

}



//******************************************************************
//* Funktion:       xml_auswerten()                                *
//* Beschreibung:   aus der übergebenen xml-Datei werden alle zur  *
//*                 Verfügung stehenden Wahlen ausgelesen und in   *
//*                 die vorbereiteten Listen (id="naviWahlart" +   *
//*                 id="naviWahlart") eingefügt.                   *
//*                                                                *
//* Übergabe:       xmlDoc: geladene xml-Datei                     *
//*                 wahlart: anhand der übergebenen wahlart können *
//*                          die entsprechenden Datumsangaben      *
//*                          ermittelt werden                      *
//*                                                                *
//* Rückgabe:       -                                              *
//*                                                                *
//* Datum    Author   Beschreibung/Änderung                        *
//* 25.09.07 jb       Ersterstellung                               *
//******************************************************************
function xml_auswerten(xmlDoc, wahlart)
{

   // *** 1. Zeile WAHLARTEN aufbauen ***
   // alle Elemente mit Tagname 'wahlart' aus der xml-Datei ermitteln
   var wahlarten = xmlDoc.getElementsByTagName("wahlart");
   for (var i = 0; i < parseInt(wahlarten.length); i++)
   {
      var wahlartElem = wahlarten[i];

      // <li> erzeugen für jedes gefundene Element (wahlart)
      // z.B.: <li><a href="../Bundestagswahl_2005/index.html">Bundestagswahlen</a></li>
      var listElem = document.createElement('li');

      // <a> erzeugen
      var linkElem = document.createElement('a');
      // Link aufbauen: anhand Wahlbezeichnung und Wahldatum (das erste in der xml-Datei)
      var wahlName = wahlartElem.getElementsByTagName("wahlbezeich")[0].childNodes[0].nodeValue;
      var wahlDatum = wahlartElem.getElementsByTagName("wahldatum")[0].childNodes[0].nodeValue;
      var link = "../" + wahlName + "_" + wahlDatum + "/index.html";
      linkElem.setAttribute('href',link);
      // Text zum Link hinzufügen
      linkElem.appendChild(document.createTextNode(wahlartElem.getAttribute("name")));

      // <a> dem Listenelement <li> hinzufügen
      listElem.appendChild(linkElem);

      // <li> als Kindelement in das ul-Element <ul id="naviWahlart"> anhängen
      // (siehe html-Document)
      document.getElementById("naviWahlart").appendChild(listElem);

      // *** 2. Zeile WAHLDATUM aufbauen ***
      // Wenn die Wahlart der xml-Datei der übergebenen Wahlart entspricht:
      // alle entsprechenden Datumsangaben aus der xml-Datei holen
      if (wahlartElem.getAttribute("name") == wahlart)
      {
         var wahldatums= wahlartElem.getElementsByTagName("wahldatum");
         for (var j = 0; j < parseInt(wahldatums.length); j++)
         {
            var wahldatumElem = wahldatums[j];

            // <li> erzeugen für jedes gefundene Element (wahldatum)
            // z.B.: <li><a href="../Kreistagswahl_2005/index.html">2005</a></li>
            var listElem2 = document.createElement('li');

            // <a> erzeugen
            var linkElem2 = document.createElement('a');
            // Link aufbauen: anhand wahlName (siehe oben) und wahldatum
            var wahlDatum2 = wahldatumElem.childNodes[0].nodeValue;
            var link2 = "../" + wahlName + "_" + wahlDatum2 + "/index.html";
            linkElem2.setAttribute('href',link2);
            // Text zum Link hinzufügen
            linkElem2.appendChild(document.createTextNode(wahlDatum2));

            // <a> dem Listenelement <li> hinzufügen
            listElem2.appendChild(linkElem2);

            // <li> als Kindelement in das ul-Element <ul id="naviDatum"> anhängen
            // (siehe html-Document)
            document.getElementById("naviDatum").appendChild(listElem2);

         }// ENDE innere For-Schleife
      }
   }// ENDE äußere For-Schleife
}



//******************************************************************
//* Funktion:       ebene_waehlen()                                *
//* Beschreibung:   ruft die entsprechende HTML-Seite der          *
//*                 nächsttieferen Ebene auf (>>-Button)           *
//*                                                                *
//* Übergabe:       hierarchie: z.B. Landkreisname1_Gemeindename1  *
//*                 ebenentyp: z.B. Gemeinde, Stimmbezirk          *
//* Rückgabe:       -                                              *
//*                                                                *
//* Datum    Author   Beschreibung/Änderung                        *
//* 24.09.07 jb       Ersterstellung                               *
//******************************************************************
function ebene_waehlen(hierarchie, ebenentyp)
{
   // Ebenentyp ist z.B. Landkreis, Gemeinde, Stimmbezirk, ...
   var elemEbene = document.getElementsByName(ebenentyp);
   // in Auswahlliste ausgewählter Wert (= Ebenenname)
   var ebenenName = elemEbene[0].options[elemEbene[0].options.selectedIndex];

	if(ebenenName.value == "--") {
		return;
	}

   // neue URL aufbauen
   // -> anhand der übergebenen Hierarchie und der ausgewählten Ebene
   var url_neu;
   
   if(ebenenName.value == "alle") {
 	 url_neu = hierarchie;
   } else {
     url_neu = ebenenName.value;
   }
    
   // neu ermittelte Url aktivieren
   document.form_ebeneWaehlen.action = url_neu;
   document.form_ebeneWaehlen.submit();
}



function gruppierung_waehlen()
{

   var element = document.getElementsByName("grp");
   var index = element[0].options.selectedIndex;
   var name = element[0].options[index].value;

    if(name == "--") {
        return;
    }
    
    

   var url_neu;
   //url_neu = name + "_grp.html";

    url_neu = name
   // neu ermittelte Url aktivieren
   document.form_ebeneWaehlen.action = url_neu;
   document.form_ebeneWaehlen.submit();
}



//******************************************************************
//* Funktion:       fenster_oeffnen()                              *
//* Beschreibung:   ruft Google Maps in einem neuen Fenster auf    *
//*                                                                *
//* Übergabe:                                                      *
//* Rückgabe:                                                      *
//*                                                                *
//* Datum    Author   Beschreibung/Änderung                        *
//* 30.10.07 jb       Ersterstellung                               *
//******************************************************************
function fenster_oeffnen(adresse)
{

   var fenster = window.open(adresse, "Zweitfenster", "scrollbars=yes,width=905,height=800");
   fenster.focus();

}
