/* Liefert das vom Browser unterstützte asynchrone XMLHTTP Objekt, oder false zurück */
function getHTTPObject()
{
	return Try.these(
	function() { return new XMLHttpRequest() },
	function() { return new ActiveXObject('Msxml2.XMLHTTP') },
	function() { return new ActiveXObject('Microsoft.XMLHTTP') })|| false;
}

var ResponseText;
function decode_utf8( s )
{
  return decodeURIComponent( escape( s ) );
}
/* 	Setzt einen Aufruf an die Logik_frame_control.php ab.
	Nach Abarbeitung dessen, wird die Rückgabe evaluiert - Modus POST */
function Set_Post(URL,Requ)
{
	var Logik_XMLObj = getHTTPObject();
	URL = Logik_ScriptPath+"/"+URL;
	Logik_XMLObj.open('POST', URL, Logik_asyncMode);
	
	Logik_XMLObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	Logik_XMLObj.send(Requ+"&USID="+Unique_Session);
	
	if(Logik_asyncMode)
	{
		Logik_XMLObj.onreadystatechange = function()
		{
			if((Logik_XMLObj.readyState==4) && (Logik_XMLObj.status == 200))
			{
				
				ResponseText = Logik_XMLObj.responseText;
				if(ResponseText.substr(0,4)=="zlib")
				{
					ResponseText = JXG.decompress(ResponseText.substr(4));
					ResponseText = decode_utf8(ResponseText);
				}
				Logik_EvalScript("<script type='text/javascript'>"+ResponseText+"</script>");
			}
		}
	}
	else
	{
		ResponseText = Logik_XMLObj.responseText;
		if(ResponseText.substr(0,4)=="zlib")
		{
			ResponseText = JXG.decompress(ResponseText.substr(4));
			ResponseText = decode_utf8(ResponseText);
		}
		Logik_EvalScript("<script type='text/javascript'>"+ResponseText+"</script>");
	}
}
/* 	Setzt einen Aufruf an die Logik_frame_control.php ab.
	Nach Abarbeitung dessen, wird die Rückgabe evaluiert - Modus GET */
function Set_Get(URL,ForceSync)
{
	var Logik_XMLObj = getHTTPObject();
	URL = Logik_ScriptPath+"/"+URL+"&USID="+Unique_Session;
	
		
	Logik_XMLObj.open('GET', URL, Logik_asyncMode);
	
	Logik_XMLObj.send(null);
	
	
	if(Logik_asyncMode && !ForceSync)
	{
		Logik_XMLObj.onreadystatechange = function()
		{
			if((Logik_XMLObj.readyState==4) && (Logik_XMLObj.status == 200))
			{
				
				ResponseText = Logik_XMLObj.responseText;
				if(ResponseText.substr(0,4)=="zlib")
				{
					ResponseText = JXG.decompress(ResponseText.substr(4));
					ResponseText = decode_utf8(ResponseText);
				}
				Logik_EvalScript("<script type='text/javascript'>"+ResponseText+"</script>");
			}
		}
	}
	else
	{
		ResponseText = Logik_XMLObj.responseText;
		if(ResponseText.substr(0,4)=="zlib")
		{
			ResponseText = JXG.decompress(ResponseText.substr(4));
			ResponseText = decode_utf8(ResponseText);
		}
		Logik_EvalScript("<script type='text/javascript'>"+ResponseText+"</script>");
	}
}
/* Evaluiert die zurückgelieferten Strings */
function Logik_EvalScript(scripts)
{
	try
	{
		scripts.evalScripts()
	}
	catch(e)
	{
		
		Logik_SetServerState('error');
		Logik_DialogStatus = "";
		Set_Get('logik_frame_control.php?Term=true');
	}
}

