if (typeof(formularTimeout) == 'undefined') formularTimeout = function(){};

// JavaScript Document
var ajaxIdReplace = '';
var http_request = false;
var ajaxError = ajaxVoid;
var ajaxTimeout = formularTimeout;

function ajaxVoid(txt)
{
	//alert(txt);
}

// Wird in der Regel für Formulare benutzt, also hier Tracker einsetzen
function ajaxElementReplacer(text)
{
	//alert("set to "+ajaxIdReplace+':'+text);
	if (ajaxIdReplace && ajaxIdReplace != '')
	{
		document.getElementById(ajaxIdReplace).innerHTML = text+statisticTracker(1);
	}
}

// Wir starten eine Postanfrage, die parameter wurden getMäßig zusammengesetzt

function makePOSTRequest(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = alertContents;	//Funktion siehe unterhalb
  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);
  enableTimeout();
}

//Hier läuft eine GET-Anfrage

function makeGETRequest(url, parameters) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  http_request.onreadystatechange = alertContents;
  http_request.open('GET', url + '?' + parameters, true);
  http_request.send(null);
  enableTimeout();
}

function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		unsetTimeout();
		ajaxSuccess(http_request.responseText);
	 } else {
		unsetTimeout();
		//ajaxError('Es gab ein Problem bei Ihrer Anfrage! Bitte versuchen Sie es erneut.');
	 }
  }
}

function enableTimeout()
{
	ajax_timeouter = window.setTimeout('ajaxTimeout_main()', 5000);
}

function ajaxTimeout_main()
{
	try{
		http_request.abort();
	}catch(e){};
	
	try{
		ajaxTimeout();
	}catch(e){};
	
	unsetTimeout();
}

function unsetTimeout()
{
	window.clearTimeout(ajax_timeouter);
}

function encodeIt(str) {
     encodedHtml = encodeURI(str);
	 encodedHtml = encodedHtml.replace(/\+/g,"%2B");
     encodedHtml = encodedHtml.replace(/\//g,"%2F");
     encodedHtml = encodedHtml.replace(/\?/g,"%3F");
     encodedHtml = encodedHtml.replace(/=/g,"%3D");
     encodedHtml = encodedHtml.replace(/&/g,"%26");
     encodedHtml = encodedHtml.replace(/@/g,"%40");
    return encodedHtml;
}

