//Objekt ajax
function ajax(handler) {
	this.build = ajax_build;			//public
	this.request = ajax_request;		//public
	this.send_form = ajax_send_form;	//public

	this.result = '';					//public : responseText
	this.runing = false;
}
//Funktion zum initialisiern des HTTP objekts
//input: null
//output: http : HTTP-Objekt
function ajax_build() {
	try {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(Error){
		try {
			http = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(Error){
			try {
				http = new XMLHttpRequest();
			}
			catch(Error){
				return false;
			}
		}
	}
	return http;
}
//Funktion zum senden einer anfrgae
//input:	url : auszuführende datei
//		method: get / post
//		data: array('key' => 'value');
//		doit: response funktion
//output:
function ajax_request(url, method, data, doit) {
	var http = this.build();
	var obj = this;
	request_query = '';
	for(v in data) {
		request_query += v+'='+data[v]+'&';
	}
	obj.runing = true;
	request_query = request_query.substring(0, request_query.length-1);
	http.open(method, url, true);
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http.onreadystatechange = function() {
		if(http.readyState==4) {
			obj.runing = false;
			if(http.status == 200) {
				obj.result = http.responseText;
				if(doit) {
					doit(obj.result);
				}
				//document.getElementById('ado').value = this.ado;
			} else {
				alert('HTTP: '+http.status);
			}
		}
	}
	http.send(request_query);
}
//Funktion zum übermitteln von formularen
//input:	name : name des formulars
//		secure: vorher überprüfen (true/false)
function ajax_send_form(f, doit) {
	data = new Array();
	for(x=0;x<f.elements.length;x++) {
		if(f.elements[x].name != '') {
			data[f.elements[x].name] = f.elements[x].value;
		}
	}
	this.request(f.action, f.method, data, doit);
}
