var http_request = new Array();
function sendRequest(url,method,vari,functoopen) {
	var len = http_request.length;
	//Variable in Array speichern
	http_request[len]=false;
	// Mozilla, Safari
	if (window.XMLHttpRequest) {
		http_request[len] = new XMLHttpRequest(); 
		if (http_request[len].overrideMimeType) {
			http_request[len].overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		// IE
		try {
			http_request[len] = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			try {
				http_request[len] = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch (e) {
			} 
		}
	}
	if (!http_request[len]) {
		return false;
	} 
	if(functoopen!='') {
		var evaluateRequest = new Function ("var len="+len+"; if(http_request[len].readyState == 4) { if (http_request[len].status == 200) { var XML = new MGV_XML(http_request[len]); "+functoopen+"(XML); } else { "+functoopen+"(false); }}"); 
		http_request[len].onreadystatechange = evaluateRequest;
	}
	method=method.toUpperCase();
	http_request[len].open(method, url, true);
	if(method=="POST") http_request[len].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request[len].send(vari);
}

function ajax_submit(id,func) {
	var f=document.getElementById(id); 
	var l=''; 
	for(var i=0; i<f.elements.length; i++) { 
		if(typeof f.elements[i].type!='undefined') { 
			l+=f.elements[i].name+'='+f.elements[i].value.replace(/&/g,';AND;AMP;').replace(/=/g,';IS;LIKE;')+"&";
		}
	}
	sendRequest(f.action,f.method,l+"AJAX_MGV=1",func);
}

MGV_XML = function (request) {
	this.requestObject=request;
	//gesamten Text auslesen
	this.responseText = this.requestObject.responseText;
	//XML Object erschaffen
	this.xmlObject = null;
	if(!IE) {
		this.xmlObject = this.requestObject.responseXML;
	} else {
		var toAppend = document.createElement('xml');
		//Packe den responseText in das innerHTML
		toAppend.setAttribute('innerHTML',this.responseText);
		//Damit man es wiederfindet, eine eindeutige ID
		toAppend.setAttribute('id','_MakeAUniqueID');
		//Häng das ganze irgendwo rein
		document.body.appendChild(toAppend);
		//Suche den XML Zweig anhand der ID und schreib ihn in xmlDoc
		this.xmlObject = document.getElementById('_MakeAUniqueID');
		//Abschließend kann man das Tag auch wieder entfernen
		document.body.removeChild(document.getElementById( '_MakeAUniqueID'));
	}	
	this.getResponseText = function () {
		return this.responseText;
	}
	this.getXmlObject = function () {
		return this.xmlObject; 
	}
	this.getTag = function (tag) {
		var root_node = this.xmlObject.getElementsByTagName(tag).item(0);
		return root_node.firstChild.data;
	}
	this.getTags = function (tag) {
		return this.xmlObject.getElementsByTagName(tag);
	}
	this.getError = function () {
		return (this.xmlObject.getElementsByTagName('error').length==0)? false : this.xmlObject.getElementsByTagName('error')[0].firstChild.data;
	}
	this.getSuccess = function () {
		return (this.xmlObject.getElementsByTagName('success').length==0)? false : this.xmlObject.getElementsByTagName('success')[0].firstChild.data;
	}
}
