function createRequest()
{
	//request erstellen
	if (window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if (!request)
		{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
 return request;
}

function getData(werte)
{
	//holt sich die werte der ids die Ã¼bergeben werden.
	//zB: action=login:username=:password=
	//action hat bereits wert login, username und passwort werden gesucht.
	var parameter = '';
	var teile = werte.split(":");
	for(i = 0; i < teile.length; i++)
	{
		var key_value = teile[i].split("=");
		if(document.getElementById(key_value[0]) && document.getElementById(key_value[0]).type == 'select-one')
		{
			var allSelects = document.getElementsByTagName("select");
			for (var j=0; j < allSelects.length; j++)
			{
				if (allSelects[j].id && allSelects[j].id == key_value[0]) var mySelect = allSelects[j];
			}
			if(i == '0') parameter = key_value[0]+'='+mySelect.options[mySelect.selectedIndex].value;
				else parameter = parameter+'&'+key_value[0]+'='+mySelect.options[mySelect.selectedIndex].value;
		}
		else
		{
			if(key_value[1] == '' && i == '0') parameter = key_value[0]+'='+document.getElementById('+key_value[0]+').value.replace(/\n/gi,"<br />");
				else if(key_value[1] == '' && i > '0') parameter = parameter+'&'+key_value[0]+'='+document.getElementById(key_value[0]).value.replace(/\n/gi,"<br />");
				else
				{
					if(i == '0') parameter = key_value[0]+'='+key_value[1].replace(/\n/gi,"<br />");
						else parameter = parameter+'&'+key_value[0]+'='+key_value[1].replace(/\n/gi,"<br />");
				}
		}
	}
	return parameter;
}

function data_check(url, parameters)
{
	http_request = createRequest();

	http_request.open("POST", url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);

	http_request.onreadystatechange = function()
	{
		if(http_request.readyState == 4 && http_request.status == 200)
		{
			document.getElementById('feedback_fehler').innerHTML = '';
			var teile = http_request.responseText.split("*");
			for(i = 0; i < teile.length; i++)
			{
				var key_value = teile[i].split("=");
				if(key_value[1] == '0' || key_value[1] == '2')
				{
					// wenn kein fehler oder keine Ã¤nderung
					// ...*div_id=0*... oder ...*div_id=2*...
					document.getElementById(key_value[0]+"_fehler").innerHTML = '<img src="modules/user/media/images/ok.png" align="absbottom" style="margin-bottom:2px;">';
				}
				else if(key_value[1] == '3')
				{
					// wenn kein fehler aber ausgabe erwÃ¼nscht
					// ...*div_id=3=ausgabe*...
					document.getElementById(key_value[0]+"_fehler").innerHTML = '<img src="modules/user/media/images/ok.png" align="absbottom" style="margin-bottom:2px;"> <span style="color:#29dc00;">'+key_value[2]+'</span>';
				}
				else
				{
					// ansonsten ausgabe eines X und fehlertext
					// ...*div_id=fehlertext*...
					document.getElementById(key_value[0]+"_fehler").innerHTML = '<img src="modules/user/media/images/fehler.png" align="absbottom" style="margin-bottom:2px;"> '+key_value[1];
				}
			}
			//if( http_request.responseText == 'success') window.location.href = 'index.php';
			//document.getElementById('feedback').innerHTML = http_request.responseText;
		}
	}
}

function data_output(url, parameters, target)
{
	var http_request = createRequest();

	http_request.open("POST", url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.onreadystatechange = function()
	{
		if(http_request.readyState == 4 && http_request.status == 200)
		{
			var teile = http_request.responseText.split("<|>");
			/* start workaround fÃ¼r error messages */
			/*if(teile[0] == '0')
			{
				for(i=0; i < teile.length; i++)
				{
					j = i+1;
					teile[i] = teile[j];
				}
			}*/
			/* end workaround fÃ¼r error messages */
			var targets = target.split("<|>");
			for(i=0; i < targets.length; i++)
			{
				var typ = teile[i].split("=");
				if(typ[0] == 'value') document.getElementById(targets[i]).value = typ[1];
				else if(typ[0] == 'onclick') document.getElementById(targets[i]).onClick = typ[1];
					else document.getElementById(targets[i]).innerHTML = teile[i];
			}
		}
	}
	http_request.send(parameters);
}

function data_output_extended(waiting_layer, url, parameters, target)
{
	http_request = createRequest();

	http_request.open("POST", url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	//http_request.send(parameters);
	http_request.onreadystatechange = function()
	{
		//alert(http_request.readyState);
		switch(http_request.readyState)
		{
			case 1:
				//document.getElementById('fehler1').innerHTML = '<img src="bilder/anmelden/loading.gif" border="0">';
				if(document.getElementById(waiting_layer)) document.getElementById(waiting_layer).style.display = 'inline';
				return true;
				break;
			case 4:

					teile = http_request.responseText.split("|");
					if(teile[0] == '0')
					{
						tmp = teile;
						teile = new Array();
						for(i=1; i < tmp.length; i++)
						{
							teile[teile.length] = tmp[i];
						}
						if(document.getElementById(waiting_layer)) document.getElementById(waiting_layer).style.display = 'none';
						targets = target.replace("&pipe;","|").split("|");
						for(i=0; i < targets.length; i++)
						{
							if(document.getElementById(targets[i]))
							{
								/* Keine Ahnung fÃ¼r was das drin ist...am besten drin lassen, schadet ja keinem ;-) */
								typ = teile[i].split("=");
								if(typ[0] == 'value') document.getElementById(targets[i]).value = typ[1];
								else if(typ[0] == 'onclick') document.getElementById(targets[i]).onClick = typ[1];
									else document.getElementById(targets[i]).innerHTML = teile[i];
							}
						}
					}
					else
					{
						//alert("else");
						document.getElementById(waiting_layer).innerHTML = teile[1];
					}
				return true;
				break;
			default:
				return false;
				//alert("Default");
				break;
		}
	}
	http_request.send(parameters);
}
