/*
                  ********************************************
                  *Creator: Bohn Alexander                   *
                  *Date: 2009-08-01                          *
                  ********************************************
*/


function checkAllBZ() {

if(document.form_auswahl["checkallbz"].checked) {

       var checkBoxes = document.form_auswahl["b[]"];
        for (var i = 0; i < checkBoxes.length; i++) {
         checkBoxes[i].checked = true;
       }
}
else {
       var checkBoxes = document.form_auswahl["b[]"];
        for (var i = 0; i < checkBoxes.length; i++) {
         checkBoxes[i].checked = false;
       }
}
}

function checkAllSA() {

if(document.form_auswahl["checkallsa"].checked) {

       var checkBoxes = document.form_auswahl["s[]"];
        for (var i = 0; i < checkBoxes.length; i++) {
         checkBoxes[i].checked = true;
       }
}
else {
       var checkBoxes = document.form_auswahl["s[]"];
        for (var i = 0; i < checkBoxes.length; i++) {
         checkBoxes[i].checked = false;
       }
}
}


function doIt() {

   //erstellen des requests
   createRequest();

   //Diese Schleife kommt zum Zug wenn nicht alle Bezirke ausgewählt wurden. Die Funktion checkedbz() muss dann aufgerufen werden

           var str = '';
           //Wenn false zurückgegeben wird und die var str false daher als Wert annimmt ist dieser jedoch ein String Wert, daher muss auf string false überprüft werden!
           if((str += checkedbz()) == "false") {
            alert("Sie müssen mindestens einen Bezirk auswählen!");
            return false;
           }


           //Wenn im string str das wort false vorkomme dann muss die Funktion abgebrochen werden und false wird retuniert
           if((str += checkedsa()).match(/false/) == "false") {
            alert("Sie müssen mindestens eine Schulart auswählen!");
            return false;
           }

           req.send(str);

      //Beim abschliessen des request wird diese Funktion ausgeführt
      //req.onreadystatechange = function(){

      //if (req.readyState == 4 && req.status == 200)
         //{
                //schreibe die antwort in den div container mit der id content
                // var xml bekommt das Root element "ice_schulen" als Wert zugewiesen
                //Die xml Ausgabe ist schon nach Bezirken und Schularten sortiert daher nur noch auslesen und bei sa oder bz wechsel entsprechend Layout ändern
                var xml = req.responseXML.documentElement;
                //alert(xml.getElementsByTagName("strasse")[0].childNodes[0].nodeValue);
                //if(xml == null) alert("FALSCH!!");
                //output = xml.getElementsByTagName("strasse")[1].childNodes[1];
                //inhalte = output.firstChild.nodeValue;


                //Das erste Schule Element ansprechen
                //for (var i = 0; i < xml.getElementsByTagName('schule').length; i++) {
                output = "";
                //Davon nun alle Kindelement auslesen
                //var ice_schulen = xml->documentElement->nodeName;
                //var ice_schule = xml.getElementsByTagName('schule')[0].parentNode;
                var schulen = xml.childNodes;
                //Unter FE werden mehr Schulen gefunden weil dieser im Gegensatz zum IE auch nicht Elemente als childNodes zählt!!
                //alert(schulen.length+" Schulen wurden gefunden!");

                oldplz = "1000";
                oldsart = "test";
                z = 0;

                for(i=0; i < schulen.length; i++) {

                //Nur die Werte speichern die gebraucht werden.
                //mit nodeType == 1 wird geprüft ob es sich um ein Element handelt oder nicht(FÜR DEN FE WIcHTIG!!)
                if(schulen[i].nodeType == 1) {
                plz = schulen[i].getElementsByTagName('plz')[0].firstChild.nodeValue;

                plz = plz.substring(1,3);
                if(plz.substring(0,1) == "0") plz = plz.substring(1,2);

                sart = schulen[i].getElementsByTagName('sart')[0].firstChild.nodeValue;

  switch (sart) {
    case "SP": sart = "Sonderpädagogische Schulen ";
                    break;

    case "AHS": sart = "Allgemein bildende höhere Schulen ";
                    break;

    case "WKS": sart = "Wirtschaftskundliche Schulen, HaSch und HAK ";
                    break;

    case "HS": sart = "Hauptschulen";
                    break;

    case "VS": sart = "Voksschulen";
                    break;

    case "PTS": sart = "Polytechnische Schulen ";
                    break;

    case "HTS": sart = "Höhere technische Schulen ";
                    break;

    case "FS": sart = "Fachschulen ";
                    break;

    case "BS": sart = "Berufsschulen ";
                    break;

    default: ;
  }

                
                //Damit ich weiß wann ein neuer table header für einen neuen Bezirk bzw. eine neue Schulart von nöten ist!
                if(plz != oldplz || sart != oldsart) {
                 //Wichtig damit jedes letzte Schulelement einer Schulart ein border bottom erhält, wenn links daneben kein Schulelement mehr steht!
                 //Text "Ende" in weiß ist für den IE6 damit dieser auch enen border anzeigt obwohl kein Inhalt drinnen ist
                 if((i > 0) && (z % 2)) output += "<td valign='top' width='250px' class='lin_unt'><div style='color:white'>Ende</div></td></tr></table>";
                 
                 //Damit table immer geschlossen wird wenn eine neue Schulart begonnen wird, natürluch nur wenn es sich nicht um die aller erste Schulart handelt!!
                 if(i > 0)  {output += "</table>";}
                 
                 output += "<br/><table width='500' border='0' cellspacing='0' cellpadding='0' class='tab1'><tr><td><img src='http://www.schulen.wien.at/schulen/abstand.gif' width='250' height='1'></td><td><img src='http://www.schulen.wien.at/schulen/abstand.gif' width='250' height='1'></td></tr><tr><TD colspan='2' width='500' height='30' class='ue_schulart0'><p >"+plz+". Bezirk / "+sart+"</p></TD></tr>";
                 z = 0;
                 
                }
                oldplz = plz;
                oldsart = sart;
                strasse = schulen[i].getElementsByTagName('strasse')[0].firstChild.nodeValue;
                kzl1 = schulen[i].getElementsByTagName('kzl1')[0].firstChild.nodeValue;
                kzl2 = "";
                link = kzl1+' '+strasse;

                var schule = schulen[i].childNodes;

                //In einer For-Schleife durchlaufen
                for (j = 0; j < schule.length; j++) {

                    //Spezialfall da kzl2 nicht bei jeder Schule als Kindelement vorkommt
                    //Daher muss geprüft werden ob dieses Element überhaupt vorkommt
                    if(schule[j].nodeType==1 && schule[j].nodeName == "kzl2") {
                       kzl2 = schule[j].firstChild.nodeValue;
                   }

                    //Spezialfall da www nicht bei jeder Schule als Kindelement vorkommt
                    //Daher muss geprüft werden ob dieses Element überhaupt vorkommt
                    if(schule[j].nodeType==1 && schule[j].nodeName == "www") {
                       link = '<a href ="'+schule[j].firstChild.nodeValue+'">'+kzl1+' '+strasse+'</a>';
                    }

                }

                //kzl2 = schule[i].getElementsByTagName('kzl2')[0].firstChild.nodeValue;

                //output = xml.getElementsByTagName('strasse')[0].firstChild.nodeValue;

                //cument.getElementById('ergebnis').innerHTML = '<strong>' + output + '</strong>';

                //output = xml.getElementsByTagName('schule')[0].getAttribute('skz');

                //output += '<strong>'+ link +'</strong></ br><p>'+kzl2+'</p></ p>';
if(!(z % 2)) output += "<tr>";

output += "<TD valign='top' width='250px' class='lin_unt'><b><font face='Verdana, Arial, Helvetica, sans-serif' size='1' class='txt8pt'>"+ link +"<br><span class='txt7'>"+ kzl2 +"</span></TD>"


if(z % 2) output += "</tr>";
//Damit auch das aller Letzte Schulelement einen Unterenrand erhält und fürn IE6 muss irgendein unsichtbarer inhalt drinn stehn
else if((i+1) ==  schulen.length )output += "<td valign='top' width='250px' class='lin_unt'><div style='color:white'>Ende</div></td></tr></table>";

z++;
                } 

                }

                 // }

           //  }
//Immer alles aufeinmal innerHTML übergeben ansonsten dauert es 1000 Fach länger(kein Scherz....)
//weil der Browser die Seite bei jedem Aufruf von innerHTML neu generiert!
//output += '</table>';
document.getElementById('ergebnis').innerHTML = output;
return true;
}

function createRequest() {

   req = null;

   try{
      req = new XMLHttpRequest();
   }
   catch(ms) {
     try{
         req = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (nonms){
       try{
          req = new ActiveXObject("Microsoft.XMLHTTP");
         }
        catch (failed) {
           req = null;
         }
       }
     }

     if(req == null)
         alert("Error creating request object!");

      //anfrage erstellen (POST, url ist localhost,
      //request ist asynchron

      req.open("POST", 'http://www.lehrerweb.at/fileadmin/lehrerweb-Project/redaktion/schulenhps/abfrage.php', false);
      // req.open("POST", 'http://localhost/schulenhp/abfrage.php', false);

           req.setRequestHeader("Content-Type",
                              "application/x-www-form-urlencoded");

}

function checkedsa() {
      //alle checkboxen durchlaufen und nur die aktivierten dem b array übergeben!
      var s = new Array();
      var j = 0;
      var checkBoxes = document.form_auswahl["s[]"];
      for(var i=0, l = checkBoxes.length; i<l; i++)
      {
      if(checkBoxes[i].checked) s[j++] = checkBoxes[i].value;
      }
      //Wenn keine Schulart ausgewählt wurde dann hat s die Länge 0 und daher muss false retuniert werden
      if(!s.length) return false;

      //es wird zwar mittels POST übermittel aber es muss als GET aufgebaut werden ansonsten funktioniert es nicht!!!
      var str = ''
      for (i = 0; i < s.length; i++) {
      str += '&s[' + i + ']=' + s[i];
      }

      return str;
}

function checkedbz() {
      //alle checkboxen durchlaufen und nur die aktivierten dem b array übergeben!
      var b = new Array();
      var j = 0;
      var checkBoxes = document.form_auswahl["b[]"];
      for(var i=0, l = checkBoxes.length; i<l; i++)
      {
      if(checkBoxes[i].checked) b[j++] = checkBoxes[i].value;
      }
      //Wenn kein Bezirk ausgewählt wurde dann hat b die Länge 0 und daher muss false retuniert werden
      if(!b.length) return false;

      //es wird zwar mittels POST übermittel aber es muss als GET aufgebaut werden ansonsten funktioniert es nicht!!!
      var str = ''
      for (i = 0; i < b.length; i++) {
      str += '&b[' + i + ']=' + b[i];
      }

      return str;

}