/* DATE:    2006-06-07       */
/* Author: Hussein Morsy     */


/* Sendet die Anfrage an das PHP-Script(url). Die Funktion reveiverfunc empfängt das ergebnis*/
function sendRequest(request, url, receiverfunc) {
  request.onreadystatechange = receiverfunc;
  request.open("GET", url, true);
  request.send(null);
}


/* diese Funktion berechnet nicht  den BMI, sondern leitet die Anfrage 
weiter an das PHP-Skript. Die Function */
function anfrageAnScriptSenden(){
   
   if (document.getElementById('haltestelle')) {
   
   	var haltestelle = document.getElementById('haltestelle').value;
  	 var veranstaltung = document.getElementById('veranstaltung').value;
   
  	 if (haltestelle != "wahl" && veranstaltung != "wahl") {
	   
		 var url = "rock.php?halt=" + escape(haltestelle) + "&ver=" + escape(veranstaltung);  
		 
		 var d = new Date();
  		 timestamp = d.getMilliseconds();
  		 url += "&"+escape(timestamp);
  		 
		 sendRequest(request, url,generiereZeit);
	   
   	 }
	 
   }
     
 }

function anfrageOrtSenden(){
   var ort = document.getElementById('ort').value;
   
   if (ort != "wahl") {
	   
	 var url = "rock.php?ort=" + escape(ort);  
	 
	  var d = new Date();
   timestamp = d.getMilliseconds();
   url += "&"+escape(timestamp);
	 
	 sendRequest(request, url,generiereListe);
	   
   }
   
 }


/* Zeigt das Ergebnis */
/* Wird ausgeführt, nach dem die Anwort vom PHP-script gekommen ist */
function generiereListe() {
  // readyState==4 bedeutet, das der Request an das Skript abgeschlossen ist
  if (request.readyState == 4) {
    // status == 200, bedeutet, das das der aufruf des request o.k. ist.
    if (request.status == 200) {
      // Anwort des Skriptes auslesen
       var xmlDoc = request.responseXML;
	   var xmlItems = xmlDoc.getElementsByTagName("item");
	  
       
       var area = document.getElementById('listarea');
       // Ueberpruefe, ob listenelement bereits generiert ist
       if (document.getElementById('haltestelle')) {
       	  var tmpListe = document.getElementById('haltestelle')
          tmpListe.parentNode.removeChild(tmpListe);
       }
         
		var sel = document.createElement('select');
        sel.setAttribute('id','haltestelle');
        sel.setAttribute('name','haltestelle');
		sel.setAttribute('class', 'posRhbFormObj');
		sel.onchange = anfrageAnScriptSenden;
        area.appendChild(sel);          
        
        
        // Trenne die AnwortVomServer anhand des Trennzeichens ; in ein Array
        
        for(var i=0;i< xmlItems.length;i++) {
          itm = getText(xmlItems[i]);
		  value = xmlItems[i].getAttribute('value');
		  opt = document.createElement('option')
          opt.setAttribute('value',value);
          txt = document.createTextNode(itm);
          opt.appendChild(txt);
          sel.appendChild(opt);
		  
        }		
		 // Wichtig: Nach dem das request-Objekt verwendet wurde, muss es für die 
        // nächste Verwendung wieder initialisiert werden.
        request = createRequest();
      } 
    }
}


function generiereZeit() {
  // readyState==4 bedeutet, das der Request an das Skript abgeschlossen ist
  if (request.readyState == 4) {
    // status == 200, bedeutet, das das der aufruf des request o.k. ist.
    if (request.status == 200) {
      // Anwort des Skriptes auslesen
       var xmlDoc = request.responseXML;
	   var xmlItems = xmlDoc.getElementsByTagName("item");  
       
       var field = document.getElementById('angabeZeit');
	   
	   if (document.getElementById('uhrzeit')) {
          var tmpUhr = document.getElementById('uhrzeit');
          tmpUhr.parentNode.removeChild(tmpUhr);
       }      
        itm = getText(xmlItems[0]);		 
				 
		 var hid = document.createElement('input');
		 hid.setAttribute('type','hidden');
         hid.setAttribute('id','uhrzeit');
         hid.setAttribute('name','uhrzeit');
		 hid.setAttribute('value',itm);
		 
		 if (document.getElementById('label')) {
          var tmpLabel = document.getElementById('label');
          tmpLabel.parentNode.removeChild(tmpLabel);
         }   
		 
		 var label = document.createElement("div");
		 label.setAttribute('id','label');
		 pTxt = document.createTextNode(itm + " h");
  	  	 label.appendChild(pTxt);
		 field.appendChild(label);	 
		 
		 
		 field.appendChild(hid);  
		 		
	   request = createRequest();
	   
      } 
    }
}


function setEvents(){
  ortEle = document.getElementById('ort');
  ortEle.onchange = anfrageOrtSenden;
  
  verEle = document.getElementById('veranstaltung'); 
  verEle.onchange = anfrageAnScriptSenden;
 
   
}

addLoadEvent(setEvents);
