function GetXmlHttpObject(target,handler)
{ 
  //Für IE6 und älter die ActiveX XMLHTTP Methode verwenden
  if (navigator.appVersion.indexOf("MSIE 6.0") >= 0)
    var objXmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
  else
    var objXmlHttp = new XMLHttpRequest();

  objXmlHttp.onreadystatechange = function()
  {
    if (objXmlHttp.readyState == 4 || objXmlHttp.readyState == "complete")
    {
      var strContent = objXmlHttp.responseText;	  
	  if (target == 'divContent')
	  {
	    strContent = findContent(strContent).toString();
	    strContent = strContent.replace('<!--Content Start-->','');	
	    strContent = strContent.replace('<!--Content Ende-->','');	 
	  }
	  
	  //Wie weiter vorgehen?
	  if (target == '')
	    return objXmlHttp.responseText;
	  else
	  {
        if (handler == '')
		  executeScripts(strContent,target);
	    else
	      eval(handler(strContent,target));
	  }
    }
  }
  return objXmlHttp;
} 


//Content Bereich (divContent) suchen und isolieren
function findContent(r)
{	
  //Script Blöcke mittels RegEx ermitteln
  var reg = '(?:<!--Content Start-->)((\n|\r|.)*?)(?:<!--Content Ende-->)';
  var match = new RegExp(reg, 'img');
  var strContent = r.match(match);
  
  if (strContent != null)
    return strContent;
  else
    return r;
}


//Führt die Script Blöcke aus
function executeScripts(r,target)
{	
  if (document.getElementById(target).type == 'textarea')
  {
	//Auf TinyMCE prüfen (wenn vorhanden ist die Textarea ausgeblendet)
	if (document.getElementById(target).style.display == 'none')
    {
	  var ed = tinyMCE.get(target);
	  ed.setProgressState(1);
	  ed.setContent(r);
	  ed.setProgressState(0); 
	  
	}
	else
	  document.getElementById(target).value = r;
  }
  else
  {
    //Script Blöcke mittels RegEx ermitteln
    var reg = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
    var match = new RegExp(reg, 'img');
    var response = r.replace(match, '');
    var scripts = r.match(match);
    match2 = new RegExp(reg, 'im');  
  
    document.getElementById(target).innerHTML = response;
	
    //Alle Script Blöcke ausführen
    if (scripts)
    {
      if (scripts.length != undefined)
      {
        for (var i = 0; i < scripts.length; i++)
          eval(scripts[i].match(match2)[1]);
      }
    }
  }
}


function getHTTPContent(url,returnDIV,handler)
{
  xmlHttp = GetXmlHttpObject(returnDIV,handler);
  xmlHttp.open("GET", url , true);
  xmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 
  xmlHttp.setRequestHeader("Expires", "Mon, 26 Jul 1970, 00:00:00 GMT"); 
  xmlHttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
  xmlHttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); 	
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.setRequestHeader("HTTP_esc", "ajaxHTTPRequest");
  xmlHttp.send(null);
}


//Formular via POST an Server schicken
function saveHTTPContent(formID,site,div)
{	
  //Aus allen Form Elemente die Werte abholen
  formValues = getFormElements(formID);
  //document.getElementById('divDebug').innerHTML = formValues;
  
  xmlHttp = GetXmlHttpObject(div,'');
  xmlHttp.open('POST',site,true);
  xmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 
  xmlHttp.setRequestHeader("Expires", "Mon, 26 Jul 1970, 00:00:00 GMT"); 
  xmlHttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
  xmlHttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); 	
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", formValues.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(formValues);
}


//Fügt ein HTML Element dazu
function attachNode(parentNodeID,htmlElement,newNodeID,positionTyp,width,height)
{
  var list = document.getElementById(parentNodeID);
  var newnode = document.createElement(htmlElement);
  newnode.setAttribute("id",newNodeID);
  
  //Mittig auf dem Bildschirm
  if (positionTyp == 'center')
  {
    var position = getBrowserSize().split("x");
	var cssLeft = (position[0]-width)/2;
	var cssTop = ((position[1]-height)/2);
	newnode.style.cssText = 'display:none; width:' + width + 'px; height:' + height + 'px; left:' + cssLeft + 'px; top:' + cssTop + 'px;';
  }

  //An Mausposition plazieren  
  if (positionTyp == 'mouse')
  {
    var position = mousePosition.split(" ");
    newnode.style.cssText = 'display:none; width:' + width + 'px; height:' + height + 'px; left:' + parseInt(position[0]-5) + 'px; top:' + parseInt(position[1]-5) + 'px;';
  }
  
  list.appendChild(newnode);
}


//Entfernt ein HTML Element
function removeNode(id)
{
  var htmlElement = document.getElementById(id);
  htmlElement.parentNode.removeChild(htmlElement);
}


//Fügt zu einem Element einen Eventhandler hinzu
function addEventhandler(elementID,eventTyp,useFunktionToRun)
{
  var element = document.getElementById(elementID);
  if (element.addEventListener)
  {
	//Für alle Browser ausser IE
    element.addEventListener(eventTyp,useFunktionToRun,true);
  }
  else
  {
	//Für den IE
    element.attachEvent('on' + eventTyp,useFunktionToRun,true);	
  }
}
