﻿





function mmAjax()
{
	
	// Interne Variablen
	var request; 
	var bstate1 = false;
	var bstate2 = false;
	var bstate3 = false;
	var bstate4 = false;
	
	
	// XMLHTTP-Objekt generieren
	if(window.XMLHttpRequest){ // Mozilla, Safari,...
		request = new XMLHttpRequest();
		if(request.overrideMimeType){
			request.overrideMimeType('text/xml');
		}
	}else if(window.ActiveXObject){ // IE
		try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e) {
			try{
			request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e) {}
		}
	}
	if(!request){ 
//		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	
	
	

	
	// Funktion connect
	this.connect = function(sURL, sMethod, sVars, aFunct){
		if (!request) return false;
		bstate4 = false;
		sMethod = sMethod.toUpperCase();

		try {
			if (sMethod == "GET"){
				request.open(sMethod, sURL+"?"+sVars, true);
				sVars = "";
			}
			else{
				request.open(sMethod, sURL, true);
				request.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
				request.setRequestHeader("Content-Type",
					"application/x-www-form-urlencoded");
			}
			
			request.onreadystatechange = function(){
				if (request.readyState == 1 && !bstate1 && (typeof(aFunct) !== 'function')){
					bstate1 = true;
					aFunct[1](request);
				}
				if (request.readyState == 2 && !bstate2 && (typeof(aFunct) !== 'function')){
					bstate2 = true;
					aFunct[2](request);
				}
				if (request.readyState == 3 && !bstate3 && (typeof(aFunct) !== 'function')){
					bstate3 = true;
					aFunct[3](request);
				}
				if (request.readyState == 4 && !bstate4){
					bstate4 = true;
					if(typeof(aFunct) == 'function'){
						aFunct(request);
					}else{
						aFunct[4](request);
					}
				}
			};
			request.send(sVars);
		}
		catch(z) { return false; }
		return true;
	};
	return this;
}
