
function getGermanText(PI_sInputText)
{
	out = "" + PI_sInputText;
	out = out.replace('ä', "&auml;");
	out = out.replace(/ü/, "&uuml;");
	out = out.replace(/ö/, "&ouml;");
	out = out.replace(/ß/, "&szlig;");
	
	out = out.replace(/Ä/, "&Auml;");
	out = out.replace(/Ü/, "&Uuml;");
	out = out.replace(/Ö/, "&Ouml;");
	out = out.replace(/„/, "&quot;");
	out = out.replace(/“/, "&quot;");
	out = out.replace(/–/, "&shy;");
	
	
	return out;
}


function AjaxObject()
{
	///	Das ist die kleine Ajax-Bibliothek
	this.m_oHttpRequest		= null;
	this.m_sRequestContent	= "";
	this.m_sBoundaryString	= "";
	this.m_sBoundary		= "";
	this.m_sContentHeader	= "";
	this.m_sSubmitURL		= "";
	
	///	Überträgt den Content und gibt die Rückgabe im Object von ID "PI_sContentHolderID" aus
	AjaxObject.prototype.submitFormdata = function(PI_sContentHolderID)
	{
		returnData = "";
		if (m_oHttpRequest != null)
		{
			m_oHttpRequest.open("POST", m_sSubmitURL, false); 
			
			//m_oHttpRequest.setRequestHeader('User-Agent', "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0");
			m_oHttpRequest.setRequestHeader('Content-Type', m_sContentHeader);
			m_oHttpRequest.send(m_sRequestContent.join("&"));
			
			returnData = m_oHttpRequest.responseText;
			returnData = returnData.replace(/\s*/, "");
			if(PI_sContentHolderID)
			{
				document.getElementById(PI_sContentHolderID).innerHTML = returnData;
			}
			/*else
			{
				returnData = m_oHttpRequest.responseText;
			}*/
			this.resetFormData();
			return returnData;
		}
		else
		{
			alert("Ajax wurde nicht initialisiert!");
		}
	} 
	
	///	Initialisiert die XML-Schnitstelle, und setzt schon ein paar Globale variablen für die Verwendung von Ajax
	AjaxObject.prototype.initAjax = function(PI_sURL)
	{
		if (window.XMLHttpRequest)
		{ // Mozilla, Safari, ...
		    m_oHttpRequest = new XMLHttpRequest();
			if (!window.ActiveXObject)
			{
				m_oHttpRequest.overrideMimeType('text/xml');
			}
		}
		else if (window.ActiveXObject)
		{
			try
			{
				m_oHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					m_oHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) 
				{
					
				}
			}
		}
		m_sSubmitURL		= PI_sURL;
		m_sBoundaryString 	= "0987654321ajaxobject1234567890";
		m_sBoundary			= "--" + m_sBoundaryString;
		m_sContentHeader	= 'application/x-www-form-urlencoded'
		
		m_sRequestContent	= new Array();
	}
	
	///	fügt eine Form-Variable zum Content hinzu
	AjaxObject.prototype.addFormVariable = function(PI_sVarName, PI_sVarValue)
	{
		if(PI_sVarName != "")
		{
			m_sRequestContent.push(PI_sVarName + "=" + escape(getGermanText(PI_sVarValue)));
		}
	}
	
	///	resettet den Content
	AjaxObject.prototype.resetFormData = function()
	{
		m_sRequestContent	= new Array();
	}
	
	///parst ein Formular durch, und fügt dessen Elemente dem Request hinzu
	AjaxObject.prototype.parseFormData = function(PI_oForm)
	{
		nElementCount = PI_oForm.elements.length;
		for(i = 0; i < nElementCount; i++)
		{
			switch(PI_oForm.elements[i].type)
			{
				case "hidden":
					this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					break;
				case "text":
					this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					break;
				case "radio":
					if(PI_oForm.elements[i].checked)
					{
						this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					}
					break
				case "checkbox":
					if(PI_oForm.elements[i].checked)
					{
						this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					}
					break;
				case "select-one":
					this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					break;
				default:
					this.addFormVariable(PI_oForm.elements[i].name, PI_oForm.elements[i].value);
					break;
			}
		}
	}
}
