/* Diese Datei verwendet Funktionen von ajax.js, weshalb dieses auch eingeschlossen werden muss */

// Führt eine SJAX-Abfrage (Synchron) aus
// Parameter:
// -> url: Die Adresse des aufzurufenden Skripts / der aufzurufenden Datei
// -> [OPTIONAL] akt: Eine der Optionen, die in der Rückgabefunktion definiert werden
// -> [OPTIONAL] parameter: Falls POST verwendet werden soll, muss diese Variable gesetzt werden, bei GET muss sie leer bleiben
// -> [OPTIONAL] data: Ein Wert, der bei bestimmten Funktionen gebraucht werden kann, z.B. bei edit_prof zum Anzeigen des bearbeiteten Profils
function SJAXRequest()
{
	// Argumente
	var url = arguments[0];
	var akt = '';
	var parameter = '';
	var data = '1';
	if(arguments[1])
	{
		akt = arguments[1];
	}
	if(arguments[2])
	{
		parameter = arguments[2];
	}
	if(arguments[3])
	{
		data = arguments[3];
	}
	
	
	// Erstellen der Anfrage
	var req = null;

	try
	{
		req = new XMLHttpRequest();
	}
	catch(ms) // Internet Explorer
	{
		try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch(nonms)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch(failed) // Fehler bei Verbindung
			{
				req = null;
			}
		}  
	}

	if(req == null)
	{
		alert("Fehler beim Erstellen des Requests!");
	}
	
	// Anfrage wird erstellt
	if(parameter == '')
	{
		// GET
		req.open("GET", url, false);
	}
	else
	{
		// POST
		req.open("POST", url, false);
	}
	
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Content-Length", parameter.length);
	req.setRequestHeader("Connection", "close");
	if(parameter == '')
	{
		req.send(null);
	}
	else
	{
		req.send(parameter);
	}
	
	var rueckgabe = false;
	
	// Beim Abschließen der Anfrage wird das Ergebnis ausgewertet          
	switch(req.readyState)
	{
		case 4:
		{
			// Fehler bei der Anfrage?
			if(req.status != 200)
			{
				alert("Fehler: " + req.status); 
			}
			else
			{    
				// Dieser Code wird bei erfolgreichem Request ausgeführt
				// => Hier können die Aktionen abgefragt werden, die ausgeführt werden sollen (Argument "akt")
				
				// Erstmal wieder den AJAX-Container leeren (ohne Scrollen)...
				setResBox("", "", false);
				
				// Wenn akt leer ist, wird der Wert über alert() ausgegeben
				if(akt == '')
				{
					alert(req.responseText);
				}
			}
			break;
		}
		default:
		{
			return false;
			break;   
		}			
	}
	
	return rueckgabe;
}
