	
	// Handler für AJAX
	function sendRequestSync(strUrl, strAktion, bJson)
	{
		if (String(typeof(bJson)) == "undefined" || String(bJson) == "undefined")
			bJson = true;

		if (document.getElementById("md_errorvar1") != null)
			document.getElementById("md_errorvar1").innerHTML = "";
		if (document.getElementById("md_errorvar2") != null)
			document.getElementById("md_errorvar2").innerHTML = "";
		if (document.getElementById("md_errorvar1") != null)
			document.getElementById("md_errorvar1").style.display = "none";
		if (document.getElementById("md_errorvar2") != null)
			document.getElementById("md_errorvar2").style.display = "none";

		req = getRequestObject();

		try
		{
			if (req.overrideMimeType)
				req.overrideMimeType('text/plain');
			req.open("get", strUrl, false);
			req.send(null);
		}
		catch (err)
		{
			var strErr  = "Es ist ein Fehler aufgetreten<br />";
				strErr += "Aktion: " + strAktion + "<br />";
				strErr += "Fehler: " + err.description + "";
			ShowError (null, strErr)
		}

		if (req.readyState == 4)
		{
			if (req.status == 200)
			{
				var aSpan;

				try
				{
					if (bJson)
					{
						aSpan = document.createElement("SPAN");
						aSpan.innerHTML = req.responseText;

						strRet = aSpan.innerHTML;
						if (typeof(aSpan.innerText) != "undefined")
							strRet = aSpan.innerText;
						req = null;

						if (!ShowError (strRet, ""))
							return strRet;
						else 
							return "";
					}
					else
					{
						strResponse = req.responseText;

						req = null;
						//if (!ShowError (null, req.responseText))
							return strResponse;
						//else 
						//	return "";
						//return "";
					}
				}
				catch (err)
				{
				}

				return "";
			}
			else
			{
				var strErr  = "Es ist ein Fehler aufgetreten<br />";
					strErr += "Aktion: " + strAktion + "<br />";
					strErr += "HTTP " + req.status + " (" + req.statusText + ")";
				ShowError (null, strErr)
				req = null;
			}
		}

		return "";
	}
	
	function sendRequestAsync(strURL, strAktion, callbackFunc, strForm)
	{
		callback = callbackFunc;
		
		req = getRequestObject();
		try
		{
			req.open("get", strURL, true);
			req.onreadystatechange = (function() { ajaxCallback(strForm) });
			req.send(null);
		}
		catch (err)
		{
			var strErr  = "Es ist ein Fehler aufgetreten<br />";
				strErr += "Aktion: " + strAktion + "<br />";
				strErr += "Fehler: " + err.description + "";
			ShowError (null, strErr);
		}
	}

	function ajaxCallback(strForm)
	{
		if (req.readyState == 4)
		{
			if (req.status == 200)
			{
				if (typeof(callback) == "function")
				{
					aSpan = document.createElement("SPAN");
					aSpan.innerHTML = req.responseText;

					strRet = aSpan.innerHTML;
					if (typeof(aSpan.innerText) != "undefined")
						strRet = aSpan.innerText;
					req = null;

					if (!ShowError (strRet, ""))
						callback(strRet, strForm);
				}
			}
			else
			{
				var strMsg  = "Beim Verarbeiten des Requests ist ein Fehler aufgetreten<br />";
					strMsg += "HTTP " + req.status + " (" + req.statusText + ")<br />";
				ShowError (null, strMsg);
			}
		}
		
		strUrlSave = "";
	}


	function getRequestObject()
	{
		if (typeof(window.XMLHttpRequest) != "undefined") 
		{
			try 
			{
				req_obj = new XMLHttpRequest();
				if (req_obj.overrideMimeType)
					req_obj.overrideMimeType('text/xml');
				return req_obj;
			}
			catch (e) 
			{
				alert("Error: XMLHttpRequest");
			}
		}

		try 
		{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) 
		{
				alert("Error: Msxml2.XMLHTTP");
			try
			{
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) 
			{
				alert("Error: Microsoft.XMLHTTP");
			}
		}
		
		if (window.createRequest) 
		{
			try 
			{
				return window.createRequest();
			}
			catch (e) 
			{
				alert("Error: createRequest");
			}
		}
		alert("Error: ALL");
	}

	function ShowError (strJsnErr, strErr)
	{
		if (strJsnErr != null && strJsnErr != "")
		{
			var arrRet = eval("(" + strJsnErr + ")");
			if (String(arrRet["STAT"]) == "FAIL")
			{
				if (typeof(document.getElementById("md_errorvar1")) != "undefined" && document.getElementById("md_errorvar1") != null)
				{
					document.getElementById("md_errorvar1").style.display = "block";
					document.getElementById("md_errorvar1").innerHTML = unescape(arrRet["EMSG"]);
				}
				if (typeof(document.getElementById("md_errorvar2")) != "undefined" && document.getElementById("md_errorvar2") != null)
				{
					document.getElementById("md_errorvar2").style.display = "block";
					document.getElementById("md_errorvar2").innerHTML = unescape(arrRet["EMSG"]);
				}
				return true;
			}
			return false;
		}
		else if (strErr != null && strErr != "")
		{
			if (typeof(document.getElementById("md_errorvar1")) != "undefined" && document.getElementById("md_errorvar1") != null)
			{
				document.getElementById("md_errorvar1").style.display = "block";
				document.getElementById("md_errorvar1").innerHTML = strErr;
			}
			if (typeof(document.getElementById("md_errorvar2")) != "undefined" && document.getElementById("md_errorvar2") != null)
			{
				document.getElementById("md_errorvar2").style.display = "block";
				document.getElementById("md_errorvar2").innerHTML = strErr;
			}
			return true;
		}
		else
		{
			return false;
		}
	}

	function EncodeJson (strRet)
	{
		strRet = strRet.replace(/\[br\]/g, "<br />");
	
		return strRet;	
	}
