DEBUG_AJAX=false;

function getXmlHttpObject() {
	var xmlHttpObject = false;
	
	// Überprüfen ob XMLHttpRequest-Klasse vorhanden und erzeugen von Objekte für IE7, Firefox, etc.
	if (typeof XMLHttpRequest != 'undefined') 
	{
	    var xmlHttpObject = new XMLHttpRequest();
	}
	
	// Wenn im oberen Block noch kein Objekt erzeugt, dann versuche XMLHTTP-Objekt zu erzeugen
	// Notwendig für IE6 oder IE5
	if (!xmlHttpObject) 
	{
	    try 
	    {
	       var xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
	    }
	    catch(e) 
	    {
	        try 
	        {
	            var xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
	        }
	        catch(e) 
	        {
	            var xmlHttpObject = null;
	        }
	    }
	}
	return xmlHttpObject;
}

function fetchRequest(request, doAfterwards) {
	var requestObj = getXmlHttpObject();
	requestObj.open('POST',request,true);
	requestObj.onreadystatechange = function() {
		if (requestObj.readyState==4) {
			if (DEBUG_AJAX) {
				alert(requestObj.responseText);
			}
			if (typeof(doAfterwards)=='function') {
				doAfterwards();
			}
		}
	};
	requestObj.send(null);
}

function fetchRequestIntoElement(request, element, doAfterwards,sync) {
	var requestObj = getXmlHttpObject();
	if (sync==true) {
		var async = false;
	}
	else {
		var async = true;
	}
	requestObj.open('POST',request,async);
	if (sync!=true) {
		requestObj.onreadystatechange = function() {
			if (requestObj.readyState==4) {
				if (DEBUG_AJAX) {
					alert(requestObj.responseText);
				}
				document.getElementById(element).innerHTML = requestObj.responseText;
				if (typeof(doAfterwards)=='function') {
					doAfterwards();
				}
			}
		};
		requestObj.send(null);
	}
	else {
		requestObj.send(null);
		if (DEBUG_AJAX) {
			alert(requestObj.responseText);
		}
		document.getElementById(element).innerHTML = requestObj.responseText;
		if (typeof(doAfterwards)=='function') {
			doAfterwards();
		}
	}
}

function fetchActionIntoElement(mvcAction, element, doAfterwards, formToUse,sync) {
	var mvcEntranceResource = 'ajaxHandler.php.html';
	var mvcReqParam = '?do=';
	var formAction = mvcEntranceResource + mvcReqParam + mvcAction;
	
	if (formToUse) {
		formAction+=getFormParams(formToUse);
	}
	
	fetchRequestIntoElement(formAction,element,doAfterwards,sync);
}

function fetchAction(mvcAction, doAfterwards, formToUse) {
	var mvcEntranceResource = 'ajaxHandler.php.html';
	var mvcReqParam = '?do=';
	var formAction = mvcEntranceResource + mvcReqParam + mvcAction;
	
	if (formToUse) {
		formAction+=getFormParams(formToUse);
	}
	fetchRequest(formAction,doAfterwards);
}

function getFormParams(formName) {
	var result = '';
	var i;
	var form = document.forms[formName];
	for (i=0;i<form.elements.length;i++) {
		if (form.elements[i].type=="checkbox") {
			if (form.elements[i].name&&((form.elements[i].checked=="checked")||(form.elements[i].checked==true))) {
				result+=("&"+form.elements[i].name+"="+encodeURI(form.elements[i].value));
			}
		}
		else {
			result+=("&"+form.elements[i].name+"="+encodeURI(form.elements[i].value));
		}
	}
	return result;
}

function fetchActionIntoImageSrc(mvcAction,imageId,doAfterwards,formToUse,debug) {
	//debug=true;
	var mvcEntranceResource = 'ajaxHandler.php.html';
	var mvcReqParam = '?do=';
	var formAction = mvcEntranceResource + mvcReqParam + mvcAction;
	if (formToUse) {
		formAction+=getFormParams(formToUse);
	}
	var requestObj = getXmlHttpObject();
	requestObj.open('POST',formAction,true);
	requestObj.onreadystatechange = function() {
		if (requestObj.readyState==4) {
			var tmpImage= new Image();
			
			if (debug==true) {
				debugWin = window.open("about:blank",'Debugfenster');
				debugWin.document.write(requestObj.responseText);
			}
			if (DEBUG_AJAX) {
				alert(requestObj.responseText);
			}
			
			if (typeof(doAfterwards)=='function') {
				tmpImage.onload=function() {document.getElementById(imageId).src = tmpImage.src; doAfterwards();}
			}
			else {
				//alert(typeof(doAfterwards));
				tmpImage.onload=function() {document.getElementById(imageId).src = tmpImage.src;}
			}
			tmpImage.src = requestObj.responseText;
		}
	};
	requestObj.send(null);
}

