	var win;
	var httpReq2;
	var httpReq3;

	window.onscroll = function(){
		var offTop,objBody;
  		if(document.all && !window.opera)
   		 objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  		else
   		 objBody = document.documentElement;
 		if (window.pageYOffset)
		{
    			offTop = window.pageYOffset;
 		}
		else if(typeof objBody.scrollTop == "number")
		{
    			offTop = objBody.scrollTop;
  		}
		if(document.getElementById('xyz') && document.getElementById('xyz2'))
		{
			document.getElementById('xyz').style.top = offTop + 150 + 'px';
			document.getElementById('xyz2').style.top = offTop + 'px';
		}
	}

	function showWindow(url,title)	
	{	
		window.open(url, title, "width=540,height=600,scrollbars=yes,resizable=yes");
	}










	document.onclick = function(){

		killSuggest();

	}

	function ModalWindow(){
		this.modalBack = null;
		this.contentBack = null;
	 };
	ModalWindow.prototype.close = function(secs){
		pause(secs);
		document.getElementById('xyz').parentNode.removeChild(document.getElementById('xyz'));
		document.getElementById('xyz2').parentNode.removeChild(document.getElementById('xyz2'));
	}
	ModalWindow.prototype.show = function(id,content){
		content = unescape(content);
		modalBack = document.createElement('div');		
		//modalBack.style.backgroundColor = "#454545";//modalBack.style = "background-color:#454545;modalBack.style = "background-color:#454545;modalBack.style = "background-color:#454545;width:100%;height:100%;z-index:5000;position:absolute;-moz-opacity:0.3;top:0px;left:0px;";
		
		modalBack.className = 'modalBack';
		//modalBack.class = 'modalBack';
		modalBack.id = "xyz2";
		contentBack = document.createElement('div');
		//contentBack.setAttribute('style','background-color:#EFEFEF;border:2px solid #c00044;width:400px;height:auto;z-index:5001;position:absolute;left:300px;top:150px;');
		contentBack.className = 'contentBack';

		//contentBack.innerHTML = content;
		contentBack.innerHTML ="<input type=\"button\" value=\"x\" style=\"float:right;margin-right:2px;margin-top:5px;padding:0px;height:18px;width:18px;\" onclick=\"win.close(0);\"><div style=\"margin-top:30px;margin-left:30px;margin-bottom:50px;height:auto;\">"+content+"</div>";
		contentBack.id = "xyz";


		var offTop,objBody;
  		if(document.all && !window.opera)
   		 objBody =(window.document.compatMode == "CSS1Compat")? window.document.documentElement : window.document.body || null;
  		else
   		 objBody = document.documentElement;
 		if (window.pageYOffset)
		{
    			offTop = window.pageYOffset;
 		}
		else if(typeof objBody.scrollTop == "number")
		{
    			offTop = objBody.scrollTop;
  		}
		modalBack.style.top = offTop+ 'px';
		contentBack.style.top = offTop + 150 + 'px';

		document.getElementById('body').appendChild(modalBack);
		document.getElementById('body').appendChild(contentBack);
		/*
		if(document.body)
		{
			document.body.appendChild(modalBack);
			document.body.appendChild(contentBack);			
		}
		else if(document.documentElement)
		{
			document.documentElement.appendChild(modalBack);
			document.documentElement.appendChild(contentBack);
		}
		else
		{
			document.getElementsByTagName('body')[0].appendChild(modalBack);
			document.getElementsByTagName('body')[0].appendChild(contentBack);
		}
		*/
	}

	function sendLoadRequest(type,url,parameter)
	{
		//var url = "index.php?module=site&action=showTemplate&template="+template;
		//document.getElementById('loader').style.visibility='visible';
		httpReq2 = null;
		httpReq2 = getHTTPObject();
		httpReq2.open("GET",url,true);
  		httpReq2.onreadystatechange = handleLoadIncomingData;
  		httpReq2.send(null);
	}



	function calc()
	{ 
		//alert(document.body.clientWidth);
		//alert(document.getElementById('table').offsetWidth);
	}

	win = new ModalWindow();

	function handleLoadIncomingData()
	{
		if(httpReq2.readyState == 4)
		{
			//document.getElementById('loaderback').style.visibility='hidden';
			//document.getElementById('loader').style.visibility='hidden';
			if(httpReq2.responseText!='')
			{	
		
				var string = trim(httpReq2.responseText);
				evaluateAjax(string);
				win.show('1',httpReq2.responseText);


			} 
    		}
		
	}
	function evalHTML(content)
	{
		content.replace(/\"/,'jhbjhg');
		return content;
	}


	function cutFirstLast(cString)
	{
		return cString.substr(1,cString.length-2);
	}


	function pause(secs)
	{
		var cont = parseInt(new Date().getTime()) + parseInt(secs*1000);
	 	while(true)
		{
         		if ((new Date()).getTime() > cont)
			{
           		 	break;
        		}
		}
	}
	var close = 0;

	var suggElem;
	function suggest(elem, type)	
	{
		suggElem = elem;
		if(document.getElementById('suggestBox'))
		{
			document.getElementById('suggestBox').parentNode.removeChild(document.getElementById('suggestBox'));
		}
		var url = "/ajax.php?s=cu&module=dj&action=suggest&type="+type+"&value="+elem.value;
		httpReq3 = null;
		httpReq3 = getHTTPObject();
		httpReq3.open("GET",url,true);
  		httpReq3.onreadystatechange = handleSuggest;
  		httpReq3.send(null);

	}

	function killSuggest()
	{
		if(document.getElementById('suggestBox'))
		{
			document.getElementById('suggestBox').parentNode.removeChild(document.getElementById('suggestBox'));
		}
	}

	function handleSuggest()
	{	
		if(httpReq3.readyState == 4 && httpReq3.responseText != "")
		{
			if(!document.getElementById('suggestBox'))
			{
				var div = document.createElement('div');
				div.style.width = suggElem.offsetWidth;
				div.style.position = 'absolute';
				div.style.zIndex = '10000';
				div.id = "suggestBox";
				div.style.left = cumulativeOffset(suggElem)[0]+'px';
				div.style.top =  cumulativeOffset(suggElem)[1]+20+'px';
				div.className = 'suggestBox';
				document.getElementById('body').appendChild(div);
			}
			document.getElementById('suggestBox').innerHTML = httpReq3.responseText;		
		}		
	}

	function selectSuggest(elem,target)
	{	
		document.getElementById(target).value = elem.innerHTML;
		elem.parentNode.style.visibility = 'hidden';
	}

	function cumulativeOffset(element)
	{ 
		var valueTop = 0;
		var valueLeft = 0;
		do
		{
			valueTop += element.offsetTop  || 0; 
			valueLeft += element.offsetLeft || 0;
			element = element.offsetParent;
		}
		while (element);
		return [valueLeft, valueTop];
	} 

	function parseAjax(ajaxstring)
	{
		var objectOpen = false,elementOpen = false,sElementOpen = false;
		var elements = new Array();
		var pairs = new Object();
		var actualIndex = 0;
		var actualChar,nextChar;
		elements[actualIndex] = new Object();
		
		var element = "",value = "",actualElement = "";
		
		for(var i = 0; i < ajaxstring.length; i++)
		{
			actualChar = ajaxstring.substr(i,1);
			nextChar = ajaxstring.substr(i+1,1);
			if(actualChar == '{')
			{
				if(objectOpen == false)
				{
					objectOpen = true;
					elementOpen = true;
				}
				else
				{
					elementOpen = true;
				}
			}
			else if(actualChar == '}')
			{
				if(elementOpen == true)
				{
					elementOpen = false;
					elements[actualIndex][cutFirstLast(element)] = cutFirstLast(value);
					actualIndex++;
					elements[actualIndex] = new Object();					
					element = "";
					value = "";
				}
				else
				{
					objectOpen = false;
				}
			}
			else 
			{
				if(actualChar == ',' && sElementOpen == false)
				{
					elements[actualIndex][cutFirstLast(element)] = cutFirstLast(value);					
					element = "";
					value = "";
				}
				else if(actualChar == '"')
				{


					actualElement += '"';
					if(sElementOpen == false)	
					{
						sElementOpen = true;
					}
					else
					{
						if(nextChar == ':' || nextChar == ',' || nextChar == '}')
						{
							if(element != "")
							{
								value = actualElement;
								actualElement = ""; 
							}
							else
							{	
								element = actualElement;
								actualElement = "";
							}
							sElementOpen = false;
						}
					}

				}
				else if(actualChar == ':')
				{
					if(sElementOpen == true)
					{
						actualElement += ':';
					}
				}
				else
				{
					if(sElementOpen == true)
					{
						actualElement += actualChar;
					}
				}
			}
		}
		return elements;
	}

	function evaluateAjax(ajaxstring)
	{
		var elements = new Array();
		elements = parseAjax(ajaxstring);
		for(var i = 0; i < elements.length; i++)
		{	
			if(elements[i]['action'] == 'remove')
			{
				document.getElementById(elements[i]['id']).parentNode.removeChild(document.getElementById(elements[i]['id']));		
			}
			else if(elements[i]['action'] == 'append')
			{
				var div1 = document.createElement("div");
				div1.innerHTML = elements[i]['value'];
				document.getElementById(elements[i]['id']).appendChild(div1);
			}	
			else if(elements[i]['action'] == 'replace')
			{
				var div1 = document.createElement("div");
				//alert(document.getElementById(elements[i]['id']).innerHTML);
				if(document.getElementById(elements[i]['id']) != null)
				{
					document.getElementById(elements[i]['id']).innerHTML = elements[i]['value'];
				}
				//alert(document.getElementById(elements[i]['id']).innerHTML);
				//document.getElementById(elements[i]['id']).firstChild.replaceData(0,document.getElementById(elements[i]['id']).firstChild.nodeValue.length,elements[i]['value']);
				//document.getElementById(elements[i]['id']).parentNode.replaceChild(div1,document.getElementById(elements[i]['id']));
			}
			else if(elements[i]['action'] == 'insertBefore')
			{
				var div1 = document.createElement("div");
				div1.innerHTML = elements[i]['value'];
				document.getElementById(elements[i]['siblingid']).parentNode.insertBefore(div1,document.getElementById(elements[i]['siblingid']));
			}	
		}
	}




	function test(element)
	{
		//alert(element);
		//alert(cumulativeOffset(element));
		var div = document.createElement("div");
		div.style.width = "200px";
		div.style.height = "20px";
		div.style.border = "1px solid black";
		div.style.visibility = "visible";
		div.id = "depp";
		div.innerHTML = "JALLO";	
		document.getElementsByTagName('body')[0].appendChild(div);
	}

	function cutLast(str,length)
	{
		return str.substr(0,str.length-2);
	}
	var int = 0;

	function expandCollapse(id,effect)
	{
		if(effect == "slide")
		{	
			int = window.setInterval("slide()",50);
		}
		else
		{


		}
	}

	function slide(id)
	{		
		var element = document.getElementById('test');
		if(cutLast(element.style.height,2) > 10)	
		{
			element.style.height = cutLast(element.style.height,2) - 10;
		}
		else
		{
			//element.style.border = '0';
			element.style.height = "0";			
			window.clearInterval(int);
		}	
	}

	




	function expandUnexpand(id,effect)
	{
		if(document.getElementById(id).style.visibility == 'visible')
		{
			document.getElementById(id).style.visibility = 'hidden';
			document.getElementById(id).style.display = 'none';
			document.getElementById('head_'+id).style.borderBottom = '1px solid #ccc';
		}
		else
		{
			document.getElementById('head_'+id).style.borderBottom = '1px solid #FFF';
			document.getElementById(id).style.display = 'block';
			document.getElementById(id).style.visibility = 'visible';
		}		
	}











	

	function resetStatusbar()
	{
		document.getElementById('status_bar').innerHTML = "";
	} 




	

	/*
	function(e)
	{	
		
		var element;
		if(e)
		{
			element = e.target;
		}
		else
		{
			element = window.event.srcElement;
		}	
		if(element.id!='')
		{
			return true;
		}
		while(element = element.parentNode)
		{
			if(element.id!='')
			{
				return true;
			}
		}
		document.getElementById('openMenu').style.visibility = 'hidden';
		
	}
	*/ 



	function checkUncheckAll(element,name)
	{
		for(var i = 0; i < document.getElementsByTagName("input").length; i++)
		{
			document.getElementsByTagName("input")[i].checked = element.checked;
		}
	}

	function checkUncheckGroup(element,group)
	{
		for(var i = 0; i < document.getElementsByTagName('input').length; i++)
		{
			if(document.getElementsByTagName('input')[i].group == group)
			{
				document.getElementsByTagName('input')[i].checked = element.checked;
			}
		}
	}

	function showMenu(element)
	{	
		if(!element || element == '')
		{
			document.getElementById('openMenu').style.visibility = 'hidden';
			return true;
		}
		else
		{
		if(actualMenu != element)
		{
			document.getElementById('openMenu').style.visibility = 'visible';
		}
		document.getElementById('openMenu').style.position = 'absolute';		
		document.getElementById('openMenu').style.top = cumulativeOffset(element)[1] +element.offsetHeight-1+'px';
		document.getElementById('openMenu').style.left = cumulativeOffset(element)[0]+5+'px';
		document.getElementById('openMenu').style.zIndex = '40';

		
		if(menuValues[element.id]!='')
		{	
			document.getElementById('menuValues').innerHTML = menuValues[element.id];
			document.getElementById('openMenu').style.visibility = 'visible';
		}
		else
		{
			document.getElementById('openMenu').style.visibility = 'hidden';
		}
		actualMenu.top = cumulativeOffset(element)[1];
		actualMenu.bottom = cumulativeOffset(element)[1] +element.offsetHeight-1+ document.getElementById('openMenu').offsetHeight;
		actualMenu.left = cumulativeOffset(element)[0]+25;
		actualMenu.right = cumulativeOffset(element)[0] + document.getElementById('openMenu').offsetWidth+5;	
		}
	}

	function showHide(element)
	{
		if(document.getElementById(element).style.visibility=='hidden')
		{
			document.getElementById(element).style.visibility='visible';
			document.getElementById(element).style.display = 'block';
		}
		else
		{
			document.getElementById(element).style.visibility='hidden';
			document.getElementById(element).style.display = 'none';
		}
	}
  
function trim (zeichenkette) {
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

	function cutSides(string)
	{
		var end = trim(string).length-1;
		return string.substring(1,end);
	}
 
	function getElement(element)
	{
		var string = "";
		if(element.type == 'checkbox' && element.name != '')
		{
			if(element.checked)
			{
				string += "&"+element.name+"=1";
			}
			else
			{
				string += "&"+element.name+"=0";
			}
		}
		return string;
	}

	function getFormElements(form)
	{
		var string = "deliverer=gsajax";
		formular = document.getElementById(form);
		for(var i = 0; i < formular.length; i++)
		{
			var element = formular.elements[i];			
			if(element.type == 'checkbox' && element.name != '')
			{
				if(element.checked)
				{
					string += "&"+element.name+"=1";
				}
				else
				{
					string += "&"+element.name+"=0";
				}
				
			}
			else if(element.type == 'radio' && element.name != '')
			{
				if(element.checked == true)
				{
					string += "&"+element.name+"="+escape(element.value);
				}
			}
			else if(element.type == 'select-one')
			{	
							
				for(var j = 0; j < element.options.length; j++)
				{
					if(element.options[j].value != '')			
					{
						string += "&"+element.name+"A[]="+element.options[j].value; 
					}
				}
				if(element.selectedIndex != -1)
				{	
					string += "&"+element.name+"="+element.options[element.selectedIndex].value;
				}
							
			}
			else
			{
				string += "&"+element.name+"="+escape(element.value);
			}			
		}
		
		return string;
	}



	//HTTP-Request Funktionen


	function getHTTPObject()
	{
  		var xmlhttp;
		try{
			xmlhttp = new XMLHttpRequest();
		}
		catch(e)
		{
  			try
			{
      				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      			}
      			catch(e)
      			{
       			try
       			{
         				 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
       			}
       			catch(E)
       			{
          				xmlhttp = false;
        			}
   		 	}
		}
    		return xmlhttp;
 	}

	var httpReq = getHTTPObject();
	var div = document.createElement("DIV");
	function handleIncomingData()
	{
  		if(httpReq.readyState == 4)
		{
			//alert(httpReq.responseText);
			//document.getElementById('loader').style.visibility='hidden';
			if(httpReq.responseText!='')
			{	
				var string = trim(httpReq.responseText);
				evaluateAjax(string);
			}
    		}

  	}




	function handleIncomingData2()
	{
  		if(httpReq.readyState == 4)
		{
			if(httpReq.responseText!='')
			{	
				(httpReq.responseText);
				var string = trim(httpReq.responseText);
				var arr = string.split("\n");
				if(arr[0] == "AjaxStrings")
				{
					for(var i = 1; i < arr.length; i++)
					{
						var cmds = cutSides(arr[i]).split('|');
						if(document.getElementById(cmds[0]))
						{
							if(cmds[2] == 'w')
							{
								document.getElementById(cmds[0]).innerHTML = cmds[1]; 
							}
							else
							{
								document.getElementById(cmds[0]).innerHTML += cmds[1];
							}
						}
					}
				}
				else if(httpReq.responseXML == null)
				{
					document.getElementById('content').innerHTML = httpReq.responseText;
				}
				else
				{
					var dataset = httpReq.responseXML.getElementsByTagName("dataset");
					if(dataset.length>0)
					{
						for(var i = 0; i < dataset.length; i++)
						{
							if(dataset[i].hasChildNodes())
							{
								if((dataset[i].childNodes[2].firstChild.nodeValue)=='append')
								{
								/*
									(dataset[i].childNodes[0].firstChild.nodeValue);
									div.setAttribute("style",dataset[i].childNodes[3].firstChild.nodeValue);
									div.innerHTML = dataset[i].childNodes[1].firstChild.nodeValue;*/
									document.getElementById(dataset[i].childNodes[0].firstChild.nodeValue).innerHTML += dataset[i].childNodes[1].firstChild.nodeValue;//.appendChild(div);
								}
								else
								{
									document.getElementById(dataset[i].childNodes[0].firstChild.nodeValue).setAttribute("style",dataset[i].childNodes[3].firstChild.nodeValue);
									document.getElementById(dataset[i].childNodes[0].firstChild.nodeValue).innerHTML = dataset[i].childNodes[1].firstChild.nodeValue;	
								}
							}
						}
					}
					else
					{
						document.getElementById('content').innerHTML = httpReq.responseText;
					}	
				}
			}
    		}

  	}


	function promptRequest(type,url,parameter,text,title)
	{
		var div = document.createElement("DIV");
		//div.innerHTML = '<br/>'+text+'<br/><br/><input type="button" value="Ja" onclick="sendRequest(\''+type+'\',\''+url+'\',\''+parameter+'\');this.parentNode.style.visibility=\'hidden\';"/> <input type="button" value="Nein" onclick="this.parentNode.style.visibility=\'hidden\';"/>';
		div.setAttribute("style","background-color:#EFEFEF;border:2px solid #c00044;width:350px;height:auto;z-index:5001;position:absolute;left:300px;top:250px;'");
		if(title == "")
		{
			title = 'L&ouml;schbest&auml;tigung';
		}
		div.innerHTML = "<div style=\"margin-left:20px;margin-top:10px;text-align:center;\">"+text+"<br/><br/><input type=\"button\" value=\"Ja\" onclick=\"sendRequest('"+type+"','"+url+"','"+parameter+"');this.parentNode.parentNode.style.visibility='hidden';\"/> <input type=\"button\" value=\"Nein\" onclick=\"this.parentNode.parentNode.style.visibility='hidden';\"/><br/><br/>";
	       win.show("1","<span class='headline1'>"+title+"</span><br><br>"+text+"<br/><br/><input type=\"button\" value=\"Ja\" onclick=\"sendRequest('"+type+"','"+url+"','"+parameter+"');win.close(0);\"/> <input type=\"button\" value=\"Nein\" onclick=\"win.close(0);\"/><br/><br/>");
	}

	function checkUncheck(id)
	{
		if(document.getElementById(id).checked==true)
		{
			document.getElementById(id).checked=false;
		}	
		else
		{
			document.getElementById(id).checked=true;
		}
	}

	function sendHistoryRequest(type,url,parameter)
	{
		window.location.hash = "back";
		window.location.hash = "actual";
		//sendRequest('get','./ajax.php?module=history&action=
		//sendRequest(type,url,parameter);
	}


	function sendRequest(type,url,parameter)
	{
				//document.getElementById('loader').style.visibility = 'visible';
		httpReq = null;
		httpReq = getHTTPObject();
		if(type == 'post')
		{			
			httpReq.open("POST",url,true);
			httpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  			httpReq.onreadystatechange = handleIncomingData;
  			httpReq.send(parameter);
		}
		else
		{
			httpReq.open("GET",url, true); 
  			httpReq.send(null);
  			httpReq.onreadystatechange = handleIncomingData;
		}
	}












	var actualElement = null;
	var actualAction = null;
	var relativeX = 0,relativeY = 0;




	function cutLast(str,length)
	{
		return str.substr(0,str.length-2);
	}





	function category_toggle2(id)
	{
		if(document.getElementById('category_select').style.display == 'block')
		{
			document.getElementById('category').style.display = 'block';
			document.getElementById('category_select').style.display = 'none';
			document.getElementById('category').value = '';
			document.getElementById(id).value = "Kategorie aussuchen";
		}
		else
		{
			document.getElementById('category').style.display = 'none';
			document.getElementById('category_select').style.display = 'block';
			document.getElementById(id).value = "Neue Kategorie";
		}

	}

	function category_toggle(id)
	{
		if(id == "category_button")
		{
			if(document.getElementById('category_select').style.display == 'block')
			{
				document.getElementById('category').style.display = 'block';
				document.getElementById('category_select').style.display = 'none';
				document.getElementById('subcategory_select').style.display = 'none';
				document.getElementById('subcategory').style.display = 'block';
				document.getElementById('subcategory_button').style.display = 'none';
				

				document.getElementById('category').value = '';
				document.getElementById('subcategory').value = '';
				document.getElementById(id).value = "Kategorie aussuchen";
				
			}
			else
			{
				document.getElementById('category').style.display = 'none';
				document.getElementById('category_select').style.display = 'block';
				document.getElementById('subcategory_select').style.display = 'block';
				document.getElementById('subcategory').style.display = 'none';
				document.getElementById('subcategory_button').style.display = 'block';
				
				document.getElementById(id).value = "Neue Kategorie";
			}
		}
		else if(id == "subcategory_button")
		{
			if(document.getElementById('subcategory_select').style.display == 'block')
			{
				document.getElementById('subcategory_select').style.display = 'none';
				document.getElementById('subcategory').style.display = 'block';	
				document.getElementById(id).value = "Subkategorie aussuchen";
				
			}
			else
			{
				document.getElementById('subcategory_select').style.display = 'block';
				//document.getElementById('subcategory_button').style.float = 'left';
				document.getElementById('subcategory').style.display = 'none';
				
				
				document.getElementById(id).value = "Neue Subkategorie";
			}
		}
	}


	function switchSelect(id,select2,elem)
	{
		if(elem.id != select2.id+'first')
		{	
			var elemTemp = elem;
			document.getElementById(select2.id).removeChild(elem);
			if(select2.length == 0)
			{
				document.getElementById(id).appendChild(elemTemp);
				var op = document.createElement("option");
				op.id = select2.id+'first';
				select2.appendChild(op);	
				document.getElementById(select2.id+'first').text = 'Kein Eintrag vorhanden';
			}
			else if((document.getElementById(id).length == 1) && document.getElementById(id+'first'))
			{
				document.getElementById(id).appendChild(elemTemp);		
				document.getElementById(id).options[0] = null;
			}
			else
			{
				document.getElementById(id).appendChild(elemTemp);
			}
		}
	}

	function deleteValue(elem)
	{
		//elem.value = '';
	}









