function GetXmlHttpObject(returnDIV,handler)
{ 
  var objXmlHttp = new XMLHttpRequest()

  if (handler == '')
  {
    objXmlHttp.onreadystatechange = function()
    {
	  if (objXmlHttp.readyState == 4 || objXmlHttp.readyState == "complete")
	  {
		//alert(objXmlHttp.responseText);
	    executeScripts(objXmlHttp.responseText,returnDIV);
	  }
    }
  }
  else
  {
    objXmlHttp.onreadystatechange = handler;
  }
  
  return objXmlHttp;
  
} 


//Führt die SCRIPT Blöcke aus
function executeScripts(r,returnDIV)
{	
	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');

	//Die aufbereitete HTML Seite in den DIV schreiben
	document.getElementById(returnDIV).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)
{
	//alert(url);
	xmlHttp = GetXmlHttpObject(returnDIV,handler);
	xmlHttp.open("GET", url , true);
	xmlHttp.send(null);
}


//Formular via POST an Server schicken
function saveHTTPContent(formID,site,div)
{	
  //Aus allen Form Elemente die Werte abholen
  formValues = getFormElements(formID);

  objXmlHttp = GetXmlHttpObject(div,'');
  objXmlHttp.open('POST',site,true);
  objXmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 
  objXmlHttp.setRequestHeader("Expires", "Mon, 26 Jul 1970, 00:00:00 GMT"); 
  objXmlHttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
  objXmlHttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); 	
  objXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  objXmlHttp.setRequestHeader("Content-length", formValues.length);
  objXmlHttp.setRequestHeader("Connection", "close");
  objXmlHttp.send(formValues);
}


//Fügt ein HTML Element dazu
function attachNode(parentNodeID,htmlElement,newNodeID)
{
  var list = document.getElementById(parentNodeID);
  var newnode = document.createElement(htmlElement);
  newnode.setAttribute("id",newNodeID);
  
  var boxTopPostion = document.getElementById('MouseY').value;
  if (boxTopPostion == 0)
    boxTopPostion = 20;
  else
    boxTopPostion = boxTopPostion-20
  
  newnode.style.cssText = 'top:' + boxTopPostion + 'px;';
  list.appendChild(newnode);
}


//Entfernt ein HTML Element
function removeNode(id)
{
  var htmlElement = document.getElementById(id);
  htmlElement.parentNode.removeChild(htmlElement);
}


//Event hinzufügen
function addEvent(obj,type,fn)
{
  if (obj.addEventListener)
  {
    obj.addEventListener( type, fn, false );
  } 
  else if (obj.attachEvent)
  {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function(){ obj["e"+type+fn]( window.event ); }
    obj.attachEvent( "on"+type, obj[type+fn] );
  }
}


//Event entfernen
function removeEvent(obj,type,fn)
{
  if (obj.removeEventListener)
  {
    obj.removeEventListener( type, fn, false );
  } 
  else if (obj.detachEvent)
  {
    obj.detachEvent( "on"+type, obj[type+fn] );
    obj[type+fn] = null;
    obj["e"+type+fn] = null;
  }
}
