	var req;
	var area;
	var timerID = 0;
	var full = 0;	// ob Bereich content_full belegt oder nicht
	var loading = false;
	var q_url;
	var q_target;
	var q_onload;
	var g;

	function Initialize()
	{

		loading = true;
		if (window.XMLHttpRequest)
		{
			// Mozilla, Safari,...
			req = new XMLHttpRequest();
			if (req.overrideMimeType)
			{
				req.overrideMimeType('text/xml');
			}
		}

		try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(oc)
			{
				req = null;
			}
		}

		if(!req && typeof XMLHttpRequest!="undefined")
		{
			req = new
			XMLHttpRequest();
		}
	}

	function SetElement(target, message)
	{
		document.getElementById(target).innerHTML = message;
	}

	function SendQuery(url, target, message, messagetarget, do_onload)
	{
		Initialize();
		if(req != null)
		{
			area = target;
			q_url = url;
			q_target = target;
			q_onload = do_onload;
			if (message != null)
			{
				document.getElementById(messagetarget).innerHTML = message;
			}
			req.onreadystatechange = Process;
			req.open("GET", url, true);
			req.send(null);
		}
	}

	function Process()
	{
		if(req.readyState == 4)
		{ // only if "OK"
			 clearTimeout(timerID);
			if(req.status == 200)
			{
				// window.alert(req.responseText);
				eval(q_onload);
				document.getElementById(area).innerHTML = req.responseText;
			}
			else
			{
				if (req.status == 502) // Bad Gateway
				{
					// Neu versuchen
					SendQuery(q_url, q_target, null, null);
					//setTimeout("document.forms['" + resubmit + "'].submit()", 500);
				}

				document.getElementById(area).innerHTML = "There was a problem retrieving data:<br>" + req.statusText;
			}
		}
		loading=false;
	}



	function sendForm(url, target, parameters, do_onload)
	{
		Initialize();
		if (!req)
		{
			alert('Cannot create XMLHTTP instance');
			return false;
		}

		if(req != null)
		{
			q_onload = do_onload;
			area = target;
			req.onreadystatechange = Process;
			req.open("POST", url, true);
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", parameters.length);
			req.setRequestHeader("Connection", "close");
			req.send(parameters);
		}
	}

		 // TODO: formname wird nicht benutzt. löschen?
	function get(formname, url, obj, target, do_onload, message, messagetarget)
	{

		// Formular-Handling
		if ((target == '') || (target == 'undefined')) { target = 'right'; }
		var paramstr = 'area=' + target;
		for ( var i = 0; i < obj.elements.length; i++ )
		{
			objTemp = obj.elements[i];
			strName = objTemp.name;
			strValue = objTemp.value;

			// TODO: Submit-Buttons die nicht gedrückt sind auch nicht übertragen (evtl. mit Focus rauskriegen?)

			// alert (objTemp.type + ' : ' + strName + ' : ' + strValue);
			if ((objTemp.type != 'checkbox') || ((objTemp.type == 'checkbox') && (objTemp.checked == true)))
			{
				// Es ist kein Checkbox oder ein gecheckte Checkbox
				// ein ungecheckte Checkbox soll gar nicht übertragen werden
				// TODO: radiobuttons auch berücksichtigen
				// if (i > 0) { paramstr = paramstr + '&'; }
				paramstr = paramstr + '&' + strName + "=" + encodeURI(strValue);
			}
		}
		// alert (paramstr);

		if (message != null)
		{
			// alert(document.getElementById(messagetarget));
			document.getElementById(messagetarget).innerHTML = message;
		}

		sendForm(url, target, paramstr, do_onload);
	}

