function http_req(vLayer, vURL, vLoadingText) {
	var vLayer = vLayer;
	var ajaxRequest  = null;
	var url = vURL;
	var vResponse; 
	var vResponseXML;
	
	function AjaxCallBack() {
		if (vLoadingText!='') {
			//document.getElementById(vLayer).innerHTML = vLoadingText;
			var tn = document.getElementById(vLayer).tagName;
			if(tn=='TBODY' || tn=='TR' || tn=='TD' || tn=='THEAD' || tn=='TH' || tn=='TFOOT') {
				var vOut = '';
				if (document.getElementById(vLayer).outerHTML) {
					var vReplaceObject = document.getElementById(vLayer).outerHTML;
					var vReplaceInner = document.getElementById(vLayer).innerHTML;
					var vReplaced = vReplaceObject.replace(document.getElementById(vLayer).innerHTML,vLoadingText);
					var tempDiv = document.createElement("div");
					tempDiv.innerHTML = '<table id="tempTable" style="display:none;"><tbody>' + vReplaced + '</tbody></table>';
					document.body.appendChild(tempDiv);
					document.getElementById(vLayer).parentNode.replaceChild(tempDiv.getElementsByTagName(tn).item(0), document.getElementById(vLayer));
					document.body.removeChild(tempDiv);
					var vBase1 = "";
					for (var a=document.getElementById(vLayer); a.tagName!="TABLE"; a=a.parentNode) {
						vBase1 = a;
					}
					vBase1 = vBase1.parentNode;
					var vFinal = vBase1.outerHTML;
					vBase1.outerHTML = vFinal;
				} else {
					document.getElementById(vLayer).innerHTML = vLoadingText;
				}
				
			} else {
				document.getElementById(vLayer).innerHTML = vLoadingText;
				
			}
		} else {
			document.getElementById(vLayer).innerHTML = "Lade...";
		}
		if(ajaxRequest.readyState == 4) {
			if (ajaxRequest.status==200) {
				vResponse = ajaxRequest.responseText;
				try {
					vResponseXML = ajaxRequest.getResponseHeader("Error");
				} catch(e) {
					vResponseXML = "";
				} 
				if (vResponseXML != "" && vResponseXML != null) {
					document.getElementById(vLayer).innerHTML = "Error:<br>"+vResponseXML;
				} else {
					//document.getElementById(vLayer).innerHTML = vResponse;
					if (vLayer!='') {
						var tn = document.getElementById(vLayer).tagName;
						if(tn=='TBODY' || tn=='TR' || tn=='TD' || tn=='THEAD' || tn=='TH' || tn=='TFOOT') {
							var vOut = '';
							if (document.getElementById(vLayer).outerHTML) {
								var vReplaceObject = document.getElementById(vLayer).outerHTML;
								var vReplaceInner = document.getElementById(vLayer).innerHTML;
								var vReplaced = vReplaceObject.replace(document.getElementById(vLayer).innerHTML,vResponse);
								var tempDiv = document.createElement("div");
								tempDiv.innerHTML = '<table id="tempTable" style="display:none;"><tbody>' + vReplaced + '</tbody></table>';
								document.body.appendChild(tempDiv);
								document.getElementById(vLayer).parentNode.replaceChild(tempDiv.getElementsByTagName(tn).item(0), document.getElementById(vLayer));
								document.body.removeChild(tempDiv);
								var vBase1 = "";
								for (var a=document.getElementById(vLayer); a.tagName!="TABLE"; a=a.parentNode) {
									vBase1 = a;
								}
								vBase1 = vBase1.parentNode;
								var vFinal = vBase1.outerHTML;
								vBase1.outerHTML = vFinal;
							} else {
								document.getElementById(vLayer).innerHTML = vResponse;
							}
							
						} else {
							document.getElementById(vLayer).innerHTML = vResponse;
							
						}
					}
				}
			} else {
				document.getElementById(vLayer).innerHTML = "Status: "+ajaxRequest.status+" "+ajaxRequest.statusText;
				ajaxRequest.abort();
				ajaxRequest = null;
			}
		}
	}
		
	try {
		ajaxRequest = new XMLHttpRequest();
		ajaxRequest.open("GET", url, true);
		ajaxRequest.onreadystatechange = AjaxCallBack;
		ajaxRequest.send(null);
	} catch(e) {
		try {
			ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			if (ajaxRequest) {
				ajaxRequest.open("GET", url, true);
				ajaxRequest.onreadystatechange = AjaxCallBack;
				ajaxRequest.send();
			}
		} catch(e) {
			if (vLoadingText.indexOf("loader") > 0) {
				document.getElementById(vLayer).innerHTML = "<div class=loader>"+lang_ajax_not_supported+"</div>";
			} else {
				document.getElementById(vLayer).innerHTML = lang_ajax_not_supported;
			}
		}
	}
}

/*
###################################################
Ajax Funktion
###################################################
*/
function http_req2(vLayer, vURL, vLoadingText) {
 var vLayer       = vLayer || '';
 var ajaxRequest     = null;
 var url        = vURL || '';
 var vResponse     = ''; 
 var vResponseXML    = '';
 var vAsync       = (arguments[4] == false) ? false : true;
 var formname      = (arguments[5]!='') ? arguments[5] : 'editForm';
 var vMethod      = (arguments[3]=='POST') ? 'POST' : 'GET';
  
 function ajaxOutput(vLayerOut, vContentOut) {
  var vObject = (vLayerOut=='_top') ? document.getElementsByTagName('BODY')[0] : $(vLayerOut);
  if (vObject && vContentOut!='') {
   var tn = vObject.tagName;
   if(tn=='TBODY' || tn=='TR' || tn=='TD' || tn=='THEAD' || tn=='TH' || tn=='TFOOT') {
    var vOut = '';
    if (vObject.outerHTML) {
     var vReplaceObject = vObject.outerHTML;
     var vReplaceInner = vObject.innerHTML;
     var vReplaced = vReplaceObject.replace(vObject.innerHTML,vContentOut);
     var tempDiv = document.createElement('div');
     tempDiv.innerHTML = '<table id=\'tempTable\' style=\'display:none;\'><tbody>' + vReplaced + '</tbody></table>';
     document.body.appendChild(tempDiv);
     vObject.parentNode.replaceChild(tempDiv.getElementsByTagName(tn).item(0), vObject);
     document.body.removeChild(tempDiv);
     var vBase1 = '';
     for (var a=vObject; a.tagName!='TABLE'; a=a.parentNode) {
      vBase1 = a;
     }
     vBase1 = vBase1.parentNode;
     var vFinal = vBase1.outerHTML;
     vBase1.outerHTML = vFinal;
    } else {
     vObject.innerHTML = vContentOut;
    }
   } else {
    vObject.innerHTML = vContentOut;
   }
  }
 }
 
 function AjaxCallBack() {
  /* Loading Text */
  ajaxOutput(vLayer,vLoadingText); 
  /* Ajax Output */
  if(ajaxRequest.readyState == 4) {
   if (ajaxRequest.status==200) {
    vResponse = ajaxRequest.responseText;
    ajaxOutput(vLayer, vResponse);
   } else {
    vResponse = 'Status: '+ajaxRequest.status+'<br>'+ajaxRequest.statusText+'<br>&nbsp;<br>'+ajaxRequest.responseText;
    ajaxOutput(vLayer,vResponse);
    ajaxRequest.abort();
   }
  }
 }
 
 if (vMethod == 'POST') {
  var postdata = '';
  for (var a=0; a<document.forms[formname].elements.length; a++) {
   postdata = postdata+document.forms[formname].elements[a].name+'='+escape(document.forms[formname].elements[a].value)+'&';
  }
 }
 
 try {
  /* GECKO / OPERA / SAFARI / IE7 */
  ajaxRequest = new XMLHttpRequest();
  if (vMethod == 'POST') {
   /* POST */
   ajaxRequest.open('POST', url, vAsync);
   ajaxRequest.onreadystatechange = AjaxCallBack;
   ajaxRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
     ajaxRequest.setRequestHeader('Content-length', postdata.length);
     ajaxRequest.setRequestHeader('Connection', 'close');
   ajaxRequest.send(postdata);
  } else {
   ajaxRequest.open('GET', url, vAsync);
   if (vAsync==false) {
    /* GET ASYNC = FALSE */
    ajaxRequest.send(null);
    if (ajaxRequest.status==200) {
     vResponse = ajaxRequest.responseText;
     ajaxOutput(vLayer,vResponse);
    } else {
     vResponse = 'Status: '+ajaxRequest.status+'<br>'+ajaxRequest.statusText+'<br>&nbsp;<br>'+ajaxRequest.responseText;
     ajaxOutput(vLayer,vResponse);
     ajaxRequest.abort();
    }
   } else {
    /* GET ASYN = TRUE */
    ajaxRequest.onreadystatechange = AjaxCallBack;
    ajaxRequest.send(null);
   }
  }
 } catch(e) {
  /* IE4/5/6 */
  try {
   ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
   if (ajaxRequest) {
    if (vMethod == 'POST') {
     /* POST */
     ajaxRequest.open('POST', url, vAsync);
     ajaxRequest.onreadystatechange = AjaxCallBack;
     ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
        ajaxRequest.setRequestHeader('Content-Length', postdata.length);
        ajaxRequest.send(postdata);
    } else {
     ajaxRequest.open('GET', url, vAsync);
     if (vAsync==false) {
      /* GET ASYNC = FALSE */
      ajaxRequest.send(null);
      if (ajaxRequest.status==200) {
       vResponse = ajaxRequest.responseText;
       ajaxOutput(vLayer,vResponse);
      } else {
       vResponse = 'Status: '+ajaxRequest.status+'<br>'+ajaxRequest.statusText+'<br>&nbsp;<br>'+ajaxRequest.responseText;
       ajaxOutput(vLayer,vResponse);
       ajaxRequest.abort();
      }
     } else {
      /* GET ASYN = TRUE */
      ajaxRequest.onreadystatechange = AjaxCallBack;
      ajaxRequest.send(null);
     }
    }
   }
  } catch(e) {
   /* Kein Ajax */
   if (vLoadingText.indexOf("loader") > 0) {
    ajaxOutput(vLayer,'<div class=\'loader\'>'+lang_ajax_not_supported+'</div>');
   } else {
    ajaxOutput(vLayer, lang_ajax_not_supported);
   }
  }
 }
}
function $(element) {if (arguments.length > 1) {for (var i = 0, elements = [], length = arguments.length; i < length; i++)elements.push($(arguments[i]));return elements;}if (typeof element == 'string')element = document.getElementById(element);return element;}