//******************************************************************
//* 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];
//
erzeugen für jedes gefundene Element (wahlart)
// z.B.: Bundestagswahlen
var listElem = document.createElement('li');
// 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")));
// dem Listenelement hinzufügen
listElem.appendChild(linkElem);
// als Kindelement in das ul-Element 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];
// - erzeugen für jedes gefundene Element (wahldatum)
// z.B.:
- 2005
var listElem2 = document.createElement('li');
// 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));
// dem Listenelement - hinzufügen
listElem2.appendChild(linkElem2);
//
- als Kindelement in das ul-Element
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();
}