
var xmod = new Object();

xmod.aufruf = function(file, method, sendvars, func) {
	//Ajax-Objekt initialisieren
	var http;
	var ms_xml = new Array(
					"Microsoft.XMLHTTP",
					"MSXML2.XMLHTTP.6.0",
					"MSXML2.XMLHTTP",
					"MSXML2.XMLHTTP.5.0",
					"MSXML2.XMLHTTP.4.0",
					"MSXML2.XMLHTTP.3.0",
					"MSXML2.XMLHTTP.2.0"
					);

	if (window.XMLHttpRequest) {
		try {
			http = new XMLHttpRequest();
		} catch(e) {
		}
	} else if (window.ActiveXObject){
		for (var typ in ms_xml) {
			try {
				http = new ActiveXObject(ms_xml[typ]);
				break;
			} catch (e) {
			}
		}
	} else {
		throw Exception("Ajax-Funktionalität nicht verfügbar!");
		return false;
	}
	//Abfrage starten
	init(http, file, method, sendvars, func);
	
	function init (objRequest, file, method, sendvars, func) {
		if (objRequest != null) {
			objRequest.open(method, file, true);	// true für 'Asynchron', false für 'Synchron'
			objRequest.onreadystatechange = function() {
					/*
					// Debugging ########
					try {
						status(http.readyState + " <> " + http.responseText + "<br />");
					} catch(e){ }
					//################	
					*/
					if (http.readyState == 4 && http.status == 200) {
						eval(func+"(http.responseText)");
					} else if (http.readyState == 3) {
						try {
							eval(func+"('Lade Daten...')");
						} catch(e) {
						}
					} 
 
					
				}
				
			if (/(post)/i.test(method)) {
				objRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");	//Header für POST-Übergabe	
			}
			if (sendvars != "" || sendvars != null) {
				objRequest.send(sendvars);
			}
		} else {
			throw Exception("Fehler in der Abfrage!");
			return false;
		}
	}
} //end aufruf

