function CAJAX(vVarName)
{
 /* Variablen definieren */
 this.AJAXClassName=vVarName;
 this.AJAXObjekt=null;
 this.Data="";
 //this.XMLData="";
 this.URL="";
 this.Method="post";
 this.SendRequestData=null;
 this.CallbackFunction="";
 this.Username=null;
 this.Password=null;
 this._running=false;

 /* Funktionen definieren */

 // Aufruf
 this.Call=_CAJAX_Call;

 // Abbruch
 this.Cancel=_AJAX_Cancel;

 // GetData
 this.GetData=_AJAX_GetData;

 // GetXMLData
 this.GetXMLData=_AJAX_GetXMLData;
}

function _CAJAX_Call()
{
	if (this._running==true)
	{
		this.Cancel();
		this._running=false;
	}

 if (window.XMLHttpRequest) // !IE
 {this.AJAXObjekt=new XMLHttpRequest();
 }
 else if (window.ActiveXObject)
 {this.AJAXObjekt=new ActiveXObject("Microsoft.XMLHTTP");
 }

 if (!this.AJAXObjekt) /* Kein Objekt */
 {alert("AJAX (XMLHttpRequest: Objekt kann nicht erzeugt werden.");
 }

 this.AJAXObjekt.onreadystatechange=new Function("",
  "{ " +
  " if ("+this.AJAXClassName+".AJAXObjekt.readyState==4) /* Ready */ " +
  " {if ("+this.AJAXClassName+".AJAXObjekt.status==200) /* Ok */ " +
  "  {"+this.AJAXClassName+".Data="+this.AJAXClassName+".AJAXObjekt.responseText; " +
  "   if ("+this.AJAXClassName+".CallbackFunction!='') " +
	"   {"+this.AJAXClassName+"._running=false; "+
  "    eval("+this.AJAXClassName+".CallbackFunction+'()'); " +
  "   } " +
  "  } " +
  "  else " +
  "  { "+this.AJAXClassName+".Data='Error: '+"+this.AJAXClassName+".AJAXObjekt.status; " +
  "  } " +
  " } " +
  "} "
 );
 this.AJAXObjekt.open(this.Method.toUpperCase(), this.URL, (this.CallbackFunction!=""?true:false), this.Username, this.Password );
 this.AJAXObjekt.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // ; charset=ISO-8859-1");
 //this.AJAXObjekt.setRequestHeader("Content-Type", "multipart/form-data"); // ; charset=ISO-8859-1");
 this._running=true;
 
 // Wenn Partnerlayout, dann Pid, Lang und Layoutname übergeben und mitschleifen
 if (typeof atraveo_layoutdata!="undefined")
 {
		if (this.SendRequestData==null)
		{this.SendRequestData="";
		}
		
		// Pid erweitern
		if (this.SendRequestData.indexOf("pid=")==-1)
		{this.SendRequestData+=(this.SendRequestData==""?"":"&")+"pid="+atraveo_layoutdata.pid;
		}
		// Lang erweitern
		if (this.SendRequestData.indexOf("lang=")==-1)
		{this.SendRequestData+=(this.SendRequestData==""?"":"&")+"lang="+atraveo_layoutdata.lang;
		}
		// Layoutname erweitern
		if (this.SendRequestData.indexOf("layoutname=")==-1)
		{this.SendRequestData+=(this.SendRequestData==""?"":"&")+"layoutname="+atraveo_layoutdata.layoutname;
		}
 }
 // alert(this.SendRequestData);
 this.AJAXObjekt.send(this.SendRequestData);
 

 if (this.CallbackFunction!="")
 {return "";
 }
 else
 {this._running=false;
	this.Data=this.AJAXObjekt.responseText;
	//this.XMLData=this.AJAXObjekt.responseXML;
  return this.Data;
 }
}

function _AJAX_Cancel()
{
	if (this._running==true)
	{this.AJAXObjekt.abort();
	}
}

function _AJAX_GetData()
{
	return this.AJAXObjekt.responseText;
}

function _AJAX_GetXMLData()
{
	return this.AJAXObjekt.responseXML;
}

// Funktionen zum Nachladen von JavaScript-Dateien bereitstellen
var loadJsUrlAjax=new CAJAX("loadJsUrlAjax");

function loadJsUrl(vUrl, vParam)
{
	if (typeof htmlJsExecution!="undefined")
	{
		loadJsUrlAjax.URL=vUrl;
		loadJsUrlAjax.SendRequestData=vParam;
		loadJsUrlAjax.CallbackFunction="";
		var loadJsUrlData=loadJsUrlAjax.Call();
		
		htmlJsExecution(loadJsUrlData);
	}
	else
	{
		alert("JavaScript htmlJsExecution, zum Ausführen von JavaScript-Code, existiert nicht.");
	}
}
