function Ajax(url, ret, opt)
{
	function handleResponse(response, opt)
	{
	}

	var returnFunction = handleResponse;
	var req = null;
	var responseOptions = opt;

	function createHttpRequest()
	{
		//erstellen des requests
		var req = null;
		try
		{
			req = new XMLHttpRequest();
		}
		catch (ms)
		{
			try
			{
				req = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (nonms)
			{
				try
				{
					req = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (failed)
				{
					req = null;
				}
			}
		}
		return req;
	}

	function handleStateChanged()
	{
		switch(req.readyState)
		{
			case 4:
				if(req.status!=200) alert("Fehler:"+req.status);
				else
				{
					returnFunction(req, responseOptions);
				}
				break;
			default:
				return false;
				break;
		}
	}

	function initialize(url, ret)
	{
		var d = new Date();
		if (url.indexOf("?") > -1) url += "&t="+d.getTime();
		else url += "?t="+d.getTime();
		if (ret) returnFunction = ret;
		req = createHttpRequest();
		if (req)
		{
			//request ist asynchron
			req.open("GET", url, true);
			//Beim abschliessen des request wird diese Funktion ausgeführt
			req.onreadystatechange = handleStateChanged;
			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
			//req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req.send(null);
		}
	}
	initialize(url, ret);
}

function writeDataToContainer(response, opt)
{
	if (response)
	{
		var value = response.responseText;
		var obj = document.getElementById(opt.id);
		if (obj && value) obj.innerHTML = value + obj.innerHTML;
	}
}

function getData(query, objid)
{
	var d = new Date();
	query += "&t="+d.getTime();
	/* query ist z.B. eine PHP-Datei (codebehind) */
	/* objid = ID des DIV-Containers, in welchen geschrieben wird */
	request = new Ajax(query, writeDataToContainer, { id: objid });
}