// globale Variablen werden initialisiert
var httpRequest = false; // Instanz des XML-HTTP-Objekts
var noResult = "Kein Ergebnis"; // Ausgabetext
var url="/conpresso/lehrerbereich/materialSort.php?"; // sortierte Ausgabeliste


// ===================================

// zentrale Steuerfunktion
// url: Adresse eines Scripts auf dem Webserver, das über Ajax aufgerufen wird.
// output-id: id-Attribut eines HTMLs im aktuelle im Browser angezeigten Dokument

function doHttpRequest(url, outputId) { 
   httpRequest = false;
   if(window.XMLHttpRequest)  // Mozilla, Safari,...
       httpRequest = new XMLHttpRequest();
   else if(window.ActiveXObject) { // IE
       try {
           httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
       catch (e) {
           try {
               httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
     }
           catch (e) {}
       }
   }
   if(!httpRequest) 
      return false;
   // unbenannte Funktion wird aufgerufen
   // der Event-Handler sorgt dafür, dass die Funktion bei jeder
   // Änderungen des Status erneut aufgerufen wird
   httpRequest.onreadystatechange = function() {
   		//Eine vollständige HTTP-Kommunikation durchläuft nacheinander alle fünf Werte:
		//0 ist einfach der Anfangswert.
		//1 bedeutet, dass die HTTP-Verbindung zum Webserver erfolgreich zustande kam.
		//2 bedeutet, dass der HTTP-Request vollständig übertragen wurde.
		//3 bedeutet, dass die HTTP-Header der Server-Antwort empfangen wurden.
		//4 bedeutet, dass die Server-Antwort komplett übertragen wurde.
		
		// reagiere nur auf Phase 4 der Kommunikation
      	if(httpRequest.readyState == 4) {
      		// prüfen, ob Server den Request erfolgreich bearbeiten konnte
         	if(httpRequest.status == 200) 
         		// Der Antworttext und die Output-ID werden weitergereicht an die interne Funktion
            	handleHttpResponse(httpRequest.responseText, outputId);
       		else
          		return false;
        }
    	else
    		// die übrigen Phasen der Kommunikation werden ignoriert
       		return false;
   } 
   // HTTP-Request wird abgesetzt: get-Methode, url des Server-Scripts
   // true: asynchron, Javascript wird auch ohne Server-Antwort weiter ausgeführt
   httpRequest.open('get', url, true);
   // außer dem Request werden keine Daten an den Server gesendet
   httpRequest.send(null);
}


function handleHttpResponse(content, outputId) {
   if(!document.getElementById)
      return false;
   if(!document.getElementById(outputId))
   return false;
   if(content == "FALSE")
      document.getElementById(outputId).innerHTML = noResult;
   else
      document.getElementById(outputId).innerHTML = content;
} 

function ajaxMaterialSort(fach, art, bg, sortField, sortOrder, outputId) {
   if(!document.getElementById)
      return;
   if(sortOrder != "asc" && sortOrder != "desc") {
      document.getElementById(output_id).innerHTML = 
           "<span class=\"errortext\">Ungültige Angabe zur Sortier-Richtung!</span>";
      return;
   }
   scriptUrl = "./materialSort.php";
   paramStr = "?field=" + sortField + "&order=" + sortOrder+ "&fach=" + fach +"&art=" + art + "&bg="+bg;
   doHttpRequest(scriptUrl + paramStr, outputId);
}

function test() {
	alert("hallo");
}

function generateList(field,value) {
		url=url+field+"="+value+"&";
		//document.getElementById('list').innerHTML=url;
		if(!document.getElementById)
      		return;
   		//if(sortOrder != "asc" && sortOrder != "desc") {
      	//	document.getElementById('list').innerHTML = "<span class=\"errortext\">Ungültige Angabe zur Sortier-Richtung!</span>";
      	//	return;
   		//}
   		alert(url);
   		//scriptUrl = "./materialSort.php";
   		//paramStr = "?field=" + sortField + "&order=" + sortOrder+ "&fach=" + fach +"&art=" + art + 
   		doHttpRequest(url, 'list');
		
}

