//AJAX--start
function CMX_CreateRequestObject(cmx_ajaxdestination)
{
    if(window.XMLHttpRequest)
    { // Mozilla, Safari, ...
        xmlrequest = new XMLHttpRequest();
        if(xmlrequest.overrideMimeType)
        {
            xmlrequest.overrideMimeType('text/plain');
     	}
    }
    else
    {
     	xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlrequest['cmx_ajaxdestination'] = cmx_ajaxdestination;
   	xmlrequest.onreadystatechange = function() 
   	{
		//document.getElementById('output').innerHTML += "<br><br>Destination: " + cmx_ajaxdestination;
		//document.getElementById('output').innerHTML += "<br>Readystate: " + this.readyState;
   		if(this.readyState == 4)
		{
	   		if(cmx_ajaxidarea.seite && cmx_ajaxdestination == "")
	   		{
				document.getElementById(cmx_ajaxidarea.elementid).innerHTML = this.responseText;
				cmx_search_and_execute(this.responseText);
				if(cmx_ajaxidarea.load_one_time == "true")
				{
					cmx_ajaxidareas[cmx_ajaxidarea.elementid] = null;
				}
	   		}
	   		else if(cmx_ajaxdestination != undefined && cmx_ajaxdestination != "")
	   		{
	   			if(!document.getElementById(cmx_ajaxdestination))
	   			{
	   				if(cmx_ajaxdestination == "cmx_logout")
	   				{
	   					document.location.href = document.location.href.replace(/#.*/g, '');
	   				}
	   				else
	   				{
	   					alert("ZielbereichsId '" + cmx_ajaxdestination + "' existiert nicht im aktuellen Dokument.");
	   				}
	   				return;
	   			}
				document.getElementById(cmx_ajaxdestination).innerHTML = this.responseText;
				cmx_search_and_execute(this.responseText);
	   		}
	   		else if(cmx_postloadarea)
	   		{
				document.getElementById('POSTLOADAREA_' + cmx_postloadarea.elementid).innerHTML = this.responseText;
				cmx_search_and_execute(this.responseText);
				if(cmx_postloadareas.length > 0)
				{
					CMX_GetPostloadAreas();
				}
	   		}
		}
   	}
   	return xmlrequest;
}
function cmx_search_and_execute(cmx_string)
{
	while(cmx_string.indexOf("<script") != -1)
	{
		var cmx_scriptpos = cmx_string.indexOf("<script");
		cmx_string = cmx_string.substring(cmx_scriptpos);
		cmx_scriptpos = cmx_string.indexOf(">") + 1;
		cmx_string = cmx_string.substring(cmx_scriptpos);
		cmx_scriptpos = cmx_string.indexOf("</script");
		var cmx_js = cmx_string.substring(0, cmx_scriptpos);
		//ins DOM einfügen
		if(navigator.appName.indexOf("Explorer") != -1)
		{
			eval(cmx_js);
		}
		else
		{
			var e = document.createElement("script");
			e.type="text/javascript";
			e.innerHTML = cmx_js;
			document.getElementsByTagName("head")[0].appendChild(e);
		}
	}
}
function cmx_load_ajaxarea(ajaxid, module)
{
	if(cmx_ajaxidareas[ajaxid] == null)	
	{
		alert('Zielbereich "' + ajaxid + '" nicht vorhanden.');
		return;
	}
	if(document.getElementById('PRELOADER_' + ajaxid))
	{
		document.getElementById(ajaxid).innerHTML = document.getElementById('PRELOADER_' + ajaxid).innerHTML;
	}
	cmx_ajaxidarea = cmx_ajaxidareas[ajaxid];
	cmx_ajaxdestination = ajaxid;
	xmlrequest = CMX_CreateRequestObject(cmx_ajaxdestination);
	if(module != undefined)
	{
		var query = cmx_ajaxidarea.indexfile + '?seite=' + module
		+ '&seitenart=Modul'
		+ '&cmx_elementid=' + cmx_ajaxidarea.elementid
		+ '&cmx_zielbereichsid=' + cmx_ajaxdestination
		+ '&cmx_uri=' + cmx_ajaxidarea.cmx_uri
		+ '&cmx_namespace=' + cmx_ajaxidarea.namespace;
	}
	else
	{
		var query = cmx_ajaxidarea.indexfile + '?seite=' + cmx_ajaxidarea.seite
		+ '&seitenart=' + cmx_ajaxidarea.seitenart
		+ '&cmx_startpunkt=' + cmx_ajaxidarea.startpunkt
		+ '&cmx_elementid=' + cmx_ajaxidarea.elementid
		+ '&cmx_zielbereichsid=' + cmx_ajaxdestination
		+ '&cmx_uri=' + cmx_ajaxidarea.cmx_uri
		+ '&cmx_namespace=' + cmx_ajaxidarea.namespace;
	}
    xmlrequest.open('GET', query, true);
    xmlrequest.send(null);
}
function cmx_unload_ajaxarea(ajaxid)
{
	document.getElementById(ajaxid).innerHTML = "";
	CMX_CreateRequestObject(ajaxid);
	cmx_ajaxidarea = cmx_ajaxidareas[ajaxid];
	var query = cmx_ajaxidarea.indexfile + '?cmx_ajax_unloadarea=true&cmx_elementid=' + cmx_ajaxidarea.elementid + '&cmx_zielbereichsid=' + ajaxid;
    xmlrequest.open('GET', query, true);
    xmlrequest.send(null);
}
function cmx_load_ajaxuri(query,destinationarea,method,postdata)
{
	if(query != "")
	{
		if(!method)		method = "get";
		if(postdata && (method == "get" || method == "GET"))
		{
			if(query.indexOf("?") == -1)
			{
				if(postdata.indexOf("&amp;") == 0)
				{
					query += "?" + postdata.substring(4);
				}
				else if(postdata.indexOf("&") == 0)
				{
					query += "?" + postdata.substring(1);
				}
				else
				{
					query += "?" + postdata;
				}
			}
			else
			{
				query += postdata;
			}
		}
		if(document.getElementById('PRELOADER_' + destinationarea))
		{
			document.getElementById(destinationarea).innerHTML = document.getElementById('PRELOADER_' + destinationarea).innerHTML;
		}
		cmx_ajaxdestination = destinationarea;
		CMX_CreateRequestObject(cmx_ajaxdestination);
	    xmlrequest.open(method, query, true);
	    if(typeof cmx_flyout == "object" && cmx_flyout != null)	CMX_Flyout_Hide();
	    if(method == "POST" || method == "post")
	    {
	    	xmlrequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    	if(postdata)	xmlrequest.setRequestHeader("Content-length", postdata.length);
			xmlrequest.setRequestHeader("Connection", "close");
	    	postdata = postdata.replace("+","%2B");
	    	xmlrequest.send(postdata);
	    }
	    else
	    {
	    	xmlrequest.send(postdata);
	    }
	}
}
function cmx_unloadapp(query)
{
	CMX_CreateRequestObject();
    xmlrequest.open("GET", query, true);
    xmlrequest.send(null);
}
function CMX_GetPostLoadArea()
{
	CMX_CreateRequestObject();
	if(document.getElementById('PRELOADER_' + cmx_postloadarea.elementid))
	{
		document.getElementById('POSTLOADAREA_' + cmx_postloadarea.elementid).innerHTML = document.getElementById('PRELOADER_' + cmx_postloadarea.elementid).innerHTML;
	}
	var query = cmx_postloadarea.indexfile + '?seite=' + cmx_postloadarea.seite
	+ '&seitenart=' + cmx_postloadarea.seitenart
	+ '&cmx_startpunkt=' + cmx_postloadarea.startpunkt
	+ '&cmx_uri=' + cmx_postloadarea.cmx_uri
	+ '&cmx_elementid=' + cmx_postloadarea.elementid;
    xmlrequest.open('GET', query, true);
    xmlrequest.send(null);
}
function CMX_GetPostloadAreas()
{
	cmx_postloadarea = cmx_postloadareas.pop();
	CMX_GetPostLoadArea();
}
var cmx_postloadareas = new Array();
var cmx_postloadarea;
var cmx_ajaxidareas = new Array();
var cmx_ajaxidarea = new Object();
function SubmitAjaxform(submitform,searchstring,targetid,method)
{
	var postdata = "";
	for(i = 0; i < submitform.elements.length;i++)
	{
		if(submitform.elements[i].name == undefined || submitform.elements[i].name == "seite")
		{
			continue;
		}
		if(submitform.elements[i].type == "checkbox" || submitform.elements[i].type == "radio")
		{
			if(submitform.elements[i].checked)
			{
				postdata += "&" + submitform.elements[i].name + "=" + encodeURIComponent(submitform.elements[i].value);
			}
		}
		else
		{
			postdata += "&" + submitform.elements[i].name + "=" + encodeURIComponent(submitform.elements[i].value);
		}
	}
	if(method == "get" || method == "GET")
	{
		cmx_load_ajaxuri(searchstring, targetid,method,postdata)
	}
	else
	{
		cmx_load_ajaxuri(searchstring, targetid,method,postdata.substring(1))
	}
	return false;
}
function AjaxToggle(id)
{
	var e = document.getElementById(id);
	if(e.innerHTML == "")
	{
		cmx_load_ajaxarea(id);
	}
	else
	{
		cmx_unload_ajaxarea(id);
	}
}
function cmx_ajaxtoggle(id)
{
	AjaxToggle(id);
}
//AJAX--ende

/*---GarbadgeCollector---*/
function cmx_keepalive(mainpath, cmx_uri)
{
	if(document.getElementById("cmxKeepAlive"))
	{
		document.getElementById("cmxKeepAlive").innerHTML = "Garbagecollectoraufruf ...";
		cmx_ajaxdestination = "cmxKeepAlive";
	}
    cmx_gb = false;
    if(window.XMLHttpRequest)
    {
        cmx_gb = new XMLHttpRequest();
        if (cmx_gb.overrideMimeType)
        {
            cmx_gb.overrideMimeType('text/plain');
     	}
    }
    else
    {
     	cmx_gb = new ActiveXObject("Microsoft.XMLHTTP");
    }
   	cmx_gb.onreadystatechange = function(){return;};
    cmx_gb.open("get", mainpath + 'garbagecollector.php?cmx_uri=' + cmx_uri, true);
    cmx_gb.send();
}   	
function cmx_kill(mainpath, cmx_uri)
{
    cmx_gb = false;
    if(window.XMLHttpRequest)
    {
        cmx_gb = new XMLHttpRequest();
        if (cmx_gb.overrideMimeType)
        {
            cmx_gb.overrideMimeType('text/plain');
     	}
    }
    else
    {
     	cmx_gb = new ActiveXObject("Microsoft.XMLHTTP");
    }
   	cmx_gb.onreadystatechange = function(){return;};
    cmx_gb.open("get", mainpath + 'garbagecollector.php?kill=true&cmx_uri=' + cmx_uri, false);
    //cmx_gb.send();
}
/*---Ende GarbadgeCollector---*/
