// XMLHTTPRequest.js
//
// Bibliotheksdatei zum Senden eines
// AJAX-Requests

function sendHTTPRequest(methode,url,postVars,func) {
	var request = false;
	if (window.XMLHttpRequest) { 
		// alle Browser ausser IE ...
		request = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) { 
		// Internet Explorer - hier müssen wir etwas aufpassen
		try { // alte Versionen von MSXML
			request = 
				new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) {
			try { // IE5 oder höher 
				request = 
					new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {} // hoffnungsloser Fall                       
		}                        
	}
	if (!request) {
		alert("Ihr Browser kann offenbar noch kein AJAX!");
		return false;
	}
	// Request öffnen und konfigurieren
	request.open(methode, url, true);
	// Spezialbehandlung für einige ältere Mozilla-Versionen
	if (request.overrideMimeType) {
		request.overrideMimeType('text/xml');
	}
	// Zusätzlichen Header für POST-Requests setzen
	if (methode.toLowerCase() == 'post') {
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}
	// Callback-Methode definieren
	request.onreadystatechange = function() {
		if ((request.readyState == 4) && (request.status == 200)) {
			func(request);
		}
		var statusElement = document.getElementById("thumbs");
		switch (request.readyState) {
			case 0:
				statusElement.innerHTML = 'Status: uninitialized';
				break;
			case 1:
				statusElement.innerHTML = 'Status: loading';
				break;
			case 2:
				statusElement.innerHTML = 'Status: loaded';
				break;
			case 3:
				statusElement.innerHTML = 'Status: interactive';
				break;
			case 4:
				statusElement.innerHTML = 'Status: complete';
				func(request);
				break;
		}
	};
	// Request senden
	request.send(postVars);
	return true;
}
