function CMX_ToggleDisplay(id)
{
	var o = document.getElementById(id);
	if(o.style.display == "none"){o.style.display = "block";}
	else{o.style.display = "none";}
	return;
}
function cmxconfirm(query, zielbereichsid)
{
	if(!confirm("Sind Sie sicher?"))	return;
	if(zielbereichsid == ""){document.location.href = query;}
	else{cmx_load_ajaxuri(query,zielbereichsid);}
}
function cmxconfirmed_ajaxrequest(query, zielbereichsid)
{
	if(!confirm("Sind Sie sicher?"))	return;
	cmx_load_ajaxuri(query,zielbereichsid);
}
function CMX_LoadScript(url)
{
	var e = document.createElement("script");
	e.src = url;
	e.type="text/javascript";
	document.getElementsByTagName("head")[0].appendChild(e);
}
function CatchEnter(e,element)
{
    if(e.which){var taste = e.which;}
    else{var taste=e.keyCode;}
    if(taste == 13){element.blur();}
}
function guid() 
{
    var S4 = function() {return (((1+Math.random())*0x10000)|0).toString(16).substring(1);};
    return (S4()+S4()+S4()+S4()+S4()+S4()+S4()+S4());
}
//AJAX--start-----------------------------------------------------------------------------------
var xmlrequests = new Object();
var cmx_ajaxdestination;
var cmx_lastCall = 0;
var cmx_call = 0;
var cmx_ajaxquery = new Object();
function CMX_CreateRequestObject(cmx_ajaxdestination)
{
	cmx_call++;
	if(window.XMLHttpRequest)
	{ // Mozilla, Safari, ...
		xmlrequests[cmx_call] = new XMLHttpRequest();
		if(xmlrequests[cmx_call].overrideMimeType)
		{
			xmlrequests[cmx_call].overrideMimeType('text/plain');
		}
	}
	else
	{
		xmlrequests[cmx_call] = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlrequests[cmx_call].cmx_call = cmx_call;
	xmlrequests[cmx_call]['cmx_ajaxdestination'] = cmx_ajaxdestination;
	xmlrequests[cmx_call].onreadystatechange = function() 
 	{
 		if(this.readyState == 4)
		{
 			if(this.cmx_call > cmx_lastCall)
 			{
 				cmx_lastCall = this.cmx_call;
 			}
 			else
 			{
 				document.getElementById(cmx_ajaxdestination).style.opacity = 1;
 				document.getElementById(cmx_ajaxidarea.elementid).style.opacity = 1;
 				return;
 			}
 			cmx_flyout = null;
 			for(a in cmx_ajaxquery)
 			{
 	 	 		cmx_ajaxquery[a] = false;
 			}
	   		if(typeof(cmx_ajaxidarea) != "undefined" && cmx_ajaxidarea.seite && cmx_ajaxdestination == "")
	   		{
				document.getElementById(cmx_ajaxidarea.elementid).innerHTML = this.responseText;
				document.getElementById(cmx_ajaxidarea.elementid).style.opacity = 1;
				cmx_search_and_execute(this.responseText);
				if(cmx_ajaxidarea.load_one_time == "true")
				{
					cmx_aa[cmx_ajaxidarea.elementid] = null;
				}
	   		}
	   		else if(cmx_ajaxdestination == "_blank")
	   		{
 				var newWindow = window.open("","_blank", "width=800, height=3600, location=no, resizable=yes, scrollbars=yes");
 				newWindow.document.write(this.responseText);
				cmx_search_and_execute(this.responseText);
				newWindow.document.close();
	   		}
	   		else if(cmx_ajaxdestination != undefined && cmx_ajaxdestination != "")
	   		{
	   			if(!document.getElementById(cmx_ajaxdestination))
	   			{
	   				if(cmx_ajaxdestination == "cmx_logout")
	   				{
	   					document.location.href = location.href.replace(/#.*/g, '');
	   					return;
	   				}
	   			}
	   			if(document.getElementById(cmx_ajaxdestination))
	   			{
					document.getElementById(cmx_ajaxdestination).innerHTML = this.responseText;
					document.getElementById(cmx_ajaxdestination).style.opacity = 1;
					cmx_search_and_execute(this.responseText);
	   			}
	   		}
	   		else if(cmx_postloadarea)
	   		{
	   			if(document.getElementById('POSTLOADAREA_' + cmx_postloadarea.elementid))
	   			{
					document.getElementById('POSTLOADAREA_' + cmx_postloadarea.elementid).innerHTML = this.responseText;
					document.getElementById('POSTLOADAREA_' + cmx_postloadarea.elementid).style.opacity = 1;
	   			}
				cmx_search_and_execute(this.responseText);
				if(cmx_postloadareas.length > 0)
				{
					CMX_GetPostloadAreas();
				}
	   		}
		}
 	}
 	return xmlrequests[cmx_call];
}
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, force)
{
//	console.info('cmx_load_ajaxarea' + " " + ajaxid);
	if(ajaxid == "")
	{
		document.location.reload();
		return;
	}
	if(cmx_aa[ajaxid] == null)	
	{
		console.info("JS-Daten zu AjaxBereich '" + ajaxid + "' existieren nicht im aktuellen Dokument.")
		return;
	}
	cmx_ajaxidarea = cmx_aa[ajaxid];
	cmx_ajaxdestination = ajaxid;
	var r = CMX_CreateRequestObject(cmx_ajaxdestination);
	if(module != undefined && module != "")
	{
		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;
	}
//	if(cmx_ajaxquery[query] == true && !force)
//	{
//		if(console)
//		{
//			console.info("Aktualisierung von folgender Id wurde unterbunden: " + ajaxid);
//		}
//		return;
//	}
	if(document.getElementById('PRELOADER_' + ajaxid))
	{
		document.getElementById(ajaxid).innerHTML = document.getElementById('PRELOADER_' + ajaxid).innerHTML;
	}
	else
	{
		document.getElementById(ajaxid).style.opacity = 0.5;
	}
	cmx_ajaxquery[query] = true;
	r.query = query;
	r.open('GET', query, true);
	r.send(null);
}
function cmx_unload_ajaxarea(ajaxid)
{
	if(document.getElementById(ajaxid))
	{
		document.getElementById(ajaxid).innerHTML = "";
		var r = CMX_CreateRequestObject(ajaxid);
		cmx_ajaxidarea = cmx_aa[ajaxid];
		var query = cmx_ajaxidarea.indexfile + '?cmx_ajax_unloadarea=true&cmx_elementid=' + cmx_ajaxidarea.elementid + '&cmx_zielbereichsid=' + ajaxid;

		/*--------------------*/
//		if(cmx_ajaxquery[query] == true){return;}
//		cmx_ajaxquery[query] = true;
//		r.query = query;
		/*--------------------*/
		r.open('GET', query, true);
	    r.send(null);
	}
}
function cmx_load_ajaxuri(query,destinationarea,method,postdata)
{
//	console.info('cmx_load_ajaxuri' + " " + destinationarea);
	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(typeof(cmx_aa[destinationarea]) != "undefined" && query.indexOf('cmx_zielbereichsid') == -1 && query.indexOf('cmx_uri') == -1)
		{
			if(query.indexOf("?") == -1)
			{
				query += '?';
			}
			else
			{
				query += '&';
			}
			query += 'cmx_uri=' + cmx_aa[destinationarea].cmx_uri + '&cmx_zielbereichsid=' + destinationarea;
		}
		else if(query.indexOf('cmx_uri') == -1 && typeof(cmx_ajaxidarea.cmx_uri) != "undefined")
		{
			if(query.indexOf("?") == -1)
			{
				query += '?';
			}
			else
			{
				query += '&';
			}
			query += 'cmx_uri=' + cmx_ajaxidarea.cmx_uri + '&cmx_zielbereichsid=' + destinationarea;
		}
		if(document.getElementById('PRELOADER_' + destinationarea))
		{
			document.getElementById(destinationarea).innerHTML = document.getElementById('PRELOADER_' + destinationarea).innerHTML;
		}
		cmx_ajaxdestination = destinationarea;
		var r = CMX_CreateRequestObject(cmx_ajaxdestination);
		/*--------------------*/
//		if(cmx_ajaxquery[query] == true){return;}
//		cmx_ajaxquery[query] = true;
//		r.query = query;
		/*--------------------*/
	    r.open(method, query, true);
	    if(typeof cmx_flyout == "object" && cmx_flyout != null)	CMX_Flyout_Hide();
	    if(document.getElementById(destinationarea) && destinationarea != "_blank")
		{
	    	document.getElementById(destinationarea).style.opacity = 0.5;
		}
	    if(method == "POST" || method == "post")
	    {
	    	r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    	if(postdata)	r.setRequestHeader("Content-length", postdata.length);
			r.setRequestHeader("Connection", "close");
	    	postdata = postdata.replace("+","%2B");
	    	r.send(postdata);
	    }
	    else
	    {
	    	r.send(postdata);
	    }
	}
}
function cmx_unloadapp(query)
{
	var r = CMX_CreateRequestObject();
	/*--------------------*/
//	if(cmx_ajaxquery[query] == true){return;}
//	cmx_ajaxquery[query] = true;
//	r.query = query;
	/*--------------------*/
	r.open("GET", query, true);
	r.send(null);
}
function CMX_GetPostLoadArea()
{
	var r = 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;
	r.open('GET', query, true);
	r.send(null);
}
function CMX_GetPostloadAreas()
{
	cmx_postloadarea = cmx_postloadareas.pop();
	CMX_GetPostLoadArea();
}
var cmx_postloadareas = new Array();
var cmx_postloadarea;
var cmx_aa = 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)
	{
		if(e.innerHTML == "")
		{
			cmx_load_ajaxarea(id);
		}
		else
		{
			cmx_unload_ajaxarea(id);
		}
	}
	else
	{
		console.info("Objekt für AJaX-Toggle ist nicht vorhanden: " . 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";
	}
  var 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)
{
  var 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, true);
  cmx_gb.send();
}
/*---Ende GarbadgeCollector---*/
//FormularFunktionen-----------------------------------------------------------------
function ValidateNumeric(element)
{
    var kommabereiche = element.value.split(",");
    var punktbereiche = element.value.split(".");
    if(isNaN(element.value) && -1 == element.value.indexOf(",")
    || kommabereiche.length > 2
    || (kommabereiche.length > 1 && punktbereiche.length > 1))
    {
      element.value = "";
    }
    return;
}
var acrobat = new Image(32, 32);
var excel = new Image(32, 32);
var firefox = new Image(32, 32);
var smile = new Image(32, 32);
var access = new Image(32, 32);
var outlook = new Image(32, 32);
var powerpoint = new Image(32, 32);
var mediaplayer = new Image(32, 32);
var winrar = new Image(32, 32);
var winword = new Image(32, 32);
var winzip = new Image(32, 32);
var text = new Image(32, 32);
var dokument = new Image(32, 32);
var cmx = new Object();
function SetUrl(receiver, pfad, x, y, platzhalterbild)
{
    acrobat.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/acrobat.gif";
    excel.src =         cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/excel.gif";
    firefox.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/firefox.gif";
    smile.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/smile.gif";
    access.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/access.gif";
    outlook.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/outlook.gif";
    powerpoint.src = 	cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/powerpoint.gif";
    mediaplayer.src = 	cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/mediaplayer.gif";
    winrar.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/winrar.gif";
    winword.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/winword.gif";
    winzip.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/winzip.gif";
    text.src = 			cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/text.gif";
    dokument.src = 		cmx_cmxpath_absolute + "formgen/controls/mediachooser/icons/dokument.gif";
    suf1 = pfad.substr(pfad.lastIndexOf(".") + 1);
    suf = suf1.toLowerCase();
    var element = document.getElementById(receiver);
	var thumbelement = document.getElementById(receiver + "_thumb");
	element.value = pfad;
	element.alt = pfad;
	if(pfad != "")
    {
        if(suf == "jpg" || suf == "gif" || suf == "jpeg")
        {
        	if(pfad.substr(0,7) == "http://")
        	{
            	thumbelement.src = pfad;
            	thumbelement.alt = pfad;
            	thumbelement.title = pfad;
        	}
        	else
        	{
            	thumbelement.src = cmx_cmxpath + pfad;
            	thumbelement.alt = cmx_cmxpath + pfad;
            	thumbelement.title = cmx_cmxpath + pfad;
        	}
        }
        else
        {
            thumbelement.src = "";
            thumbelement.alt = "";
            thumbelement.title = cmx_cmxpath + pfad;
            thumbelement.style.width = "32px";
            thumbelement.style.height = "32px";
            if(suf == "pdf")
            {
                thumbelement.src = acrobat.src;
                thumbelement.alt = acrobat.src;
                thumbelement.title = acrobat.src;
            }
            else if(suf == "xls")
            {
                thumbelement.src = excel.src;
                thumbelement.alt = excel.src;
                thumbelement.title = excel.src;
            }
            else if(suf == "htm" || suf == "html")
            {
                thumbelement.src = firefox.src;
                thumbelement.alt = firefox.src;
                thumbelement.title = firefox.src;
            }
            else if(suf == "mdb")
            {
                thumbelement.src = access.src;
                thumbelement.alt = access.src;
                thumbelement.title = access.src;
            }
            else if(suf == "pst")
            {
                thumbelement.src = outlook.src;
                thumbelement.alt = outlook.src;
                thumbelement.title = outlook.src;
            }
            else if(suf == "ppt")
            {
                thumbelement.src = powerpoint.src;
                thumbelement.alt = powerpoint.src;
                thumbelement.title = powerpoint.src;
            }
            else if(suf == "wmf" || suf == "avi" || suf == "mpg")
            {
                thumbelement.src = mediaplayer.src;
                thumbelement.alt = mediaplayer.src;
                thumbelement.title = mediaplayer.src;
            }
            else if(suf == "rar")
            {
                thumbelement.src = winrar.src;
                thumbelement.alt = winrar.src;
                thumbelement.title = winrar.src;
            }
            else if(suf == "doc" || suf == "odt")
            {
                thumbelement.src = winword.src;
                thumbelement.alt = winword.src;
                thumbelement.title = winword.src;
            }
            else if(suf == "zip")
            {
                thumbelement.src = winzip.src;
                thumbelement.alt = winzip.src;
                thumbelement.title = winzip.src;
            }
            else if(suf == "txt")
            {
                thumbelement.src = text.src;
                thumbelement.alt = text.src;
                thumbelement.title = text.src;
            }
            else
            {
                thumbelement.src = dokument.src;
                thumbelement.alt = dokument.src;
                thumbelement.title = dokument.src;
            }
        }
    }
    else
    {
    	if(platzhalterbild == "")
    	{
            thumbelement.src = cmx_cmxpath + "images/wingray.gif";
    	}
    	else
    	{
            thumbelement.src = platzhalterbild;
    	}
        thumbelement.title = "Bitte hier klicken um eine Datei zu wählen";
        thumbelement.alt = "Bitte hier klicken um eine Datei zu wählen";
	}
}
function CMX_FireEvent (eventType, receiver)
{
	if(receiver)
	{
		var ua = navigator.userAgent;
		if(ua.indexOf("MSIE") == -1)
		{
   			var o = document.getElementById(receiver);
			var evt = document.createEvent("Events");
			evt.initEvent(eventType, true, true);
			o.dispatchEvent(evt);
		}
		else
		{
   			var o = document.getElementById(receiver);
   			o.onchange();
		}
	}
}
