	function checkFields()
	{
		var dateformat = "dd.mm.YYYY";
		for(i = 0; i < fields.length; i++)
		{
			obj = document.getElementById(fields[i]["name"]);
			switch(fields[i]["type"])
			{
				// verschieden felder wie datum email usw. sollten eigene checks bekommen
				// die styles beim textfeld funzen noch nicht richtig
				// das rot ist ziemlich grell :)
				// bild check muss anders sein
				/*case "datum"	:	if(obj.value.length < 10)
									{
										if(obj.className.indexOf("failure") == "-1")
										{
											obj.className = obj.className + "failure";
										}
										failure++;
										break;
									}
									t = obj.value.split(".");
									if(t[0] > 31 || t[0].length > 2 || t[1] > 12 || t[1].length > 2 || t[2].length > 4)
									{
										if(obj.className.indexOf("failure") == "-1")
										{
											obj.className = obj.className + "failure";
										}
										failure++;
									}
									break;*/
				default			:	if(obj.value == "" && obj.className.indexOf("failure") == "-1")
									{
										obj.className = obj.className + "failure";
										failure++;
									}
									else
									{
											if(obj.value == "")
											{
												failure++;
											}
											else
											{
												cName = obj.className.split("failure");
												obj.className = cName[0];
											}
											//failure++;
									}
									break;
			}
		}
		if(failure != 0)
		{
			if(failure == 1)
			{
				alert("Leider wurde " + failure + " Pflichtfeld noch nicht ausgefüllt.\nBitte korrigieren Sie das rote Feld");
			}
			else
			{
				alert("Leider wurden " + failure + " Pflichtfelder noch nicht ausgefüllt.\nBitte korrigieren Sie die roten Felder");
			}
		}
		else
		{
			document.getElementById("cmsform").submit();
		}
		failure = 0;
	}

	function insertImage()
	{
		// hier werden die textfelder und die hidden felder gefuellt
		args = insertImage.arguments;
		fieldname = args[0] + "_show";
		obj = window.opener.document.getElementById(fieldname);
		obj.value = args[1];
		obj = window.opener.document.getElementById(args[0]);
		obj.value = args[2];
		// preview erstellen
		preObj = window.opener.document.getElementById(args[0] + "_preview");
		preObj.src = "../" + args[3];
		preObj.width = args[4];
		preObj.height = args[5];
		self.close();
	}

	function insertFile()
	{
		args = insertFile.arguments;
		obj = window.opener.document.getElementById(args[0] + "_show");
		obj.value = args[1];
		obj = window.opener.document.getElementById(args[0]);
		obj.value = args[2];
		obj = window.opener.document.getElementById("filepreview");
		obj.firstChild.nodeValue = "Datei anzeigen";
		newLink = "../" + args[3];
		obj.href = newLink;
		self.close();
	}

	function checkFile()
	{
		args = checkFile.arguments;
		obj = document.getElementById(args[0] + "_show");
		if(obj.value == "")
		{
			obj = document.getElementById("filepreview");
			obj.firstChild.nodeValue = "Keine Datei vorhanden";
			obj.href = "javascript:;";
			obj = document.getElementById(args[0]);
			obj.value = "";
		}
	}
	
	function showStatus(msg)
	{
		if(msg == null)
		{
			msg = "Herzlich Wilkommen!";
		}
		obj = document.getElementById("statusmessage");
		newObj = document.createTextNode(msg);
		obj.appendChild(newObj);
	}

	function realyDelete()
	{
		args = realyDelete.arguments;
		
		con = confirm("Möchten Sie diesen Eintrag wirklich löschen?");
		if(con == true)
		{
			if(String(args[6]).indexOf("filearchiv") != "-1")
			{
				li = args[0] + "?action=deletefilearchiv&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5];
			}
			else if(String(args[6]).indexOf("imagearchiv") != "-1")
			{
				li = args[0] + "?action=deleteimagearchiv&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5];
			}
			else if(String(args[5]).indexOf("file") != "-1")
			{
				li = args[0] + "?action=deletefilearchiv&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5] + "&newAct=list";
			}
			else if(String(args[5]).indexOf("image") != "-1")
			{
				li = args[0] + "?action=deleteimagearchiv&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5] + "&newAct=list";;			
			}
			else
			{
				li = args[0] + "?action=delete&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5];
			}
			window.location.href = li;
		}
	}

	function realyDeleteCategorie()
	{
		args = realyDeleteCategorie.arguments;
		con = confirm("Möchten Sie diese Kategorie wirklich löschen?");
		if(con == true)
		{
			li = args[0] + "?action=deleteCat&content=" + args[1] + "&obj=" + args[2] + "&id=" + args[3] + "&sort_order=" + args[4] + "&sort_field=" + args[5] + "&field_name=" + args[6];
			window.location.href = li;
		}
		/*else
		{
			window.location.href = "http://www.google.de";
		}*/
	}

	function updateCategorie()
	{
		args = updateCategorie.arguments;
		//alert(args[1]);
		newValues = args[1].split(",");
		obj = document.getElementById("kategorie");
		len = obj.options.length;
		for(i = 0; i < len; i++)
		{
			obj.options[0] = null;
		}
		for(i = 0; i < newValues.length; i++)
		{
			opt = new Option(newValues[i], newValues[i], false, false);
			obj.options[obj.options.length] = opt;
		}
		
	}

	function updateCategorieJsFields()
	{
		args = updateCategorieJsFields.arguments;
		lobj = document.getElementById("l" + args[0]);
		
		valueArray = args[1].split(",");

/*var Knoten=document.getElementsByTagName("ol")[0].firstChild;
verschwunden = document.getElementsByTagName("ol")[0].removeChild(Knoten);
alert(verschwunden.firstChild.nodeValue)
*/		
		// tabelle innerhalb des layers (gefaktes select feld)
		tobj = lobj.firstChild;
		// loesche tabelle
		lobj.removeChild(tobj);

		// generiere neue tabelle
		newTable = document.createElement("table");
		// table attribute
		newTable.cellPadding = 0;
		newTable.cellSpacing = 0;
		newTable.border = 0;
		newTable.width = "100%";
		newTBody = document.createElement("tbody");
		newTr = document.createElement("tr");
		// tr attribute
		newTr.id = args[0] + "_0";
		newTd = document.createElement("td");
		newSpacer = document.createElement("img");
		// spacer attribute
		newSpacer.src = "images/transp.gif";
		newSpacer.width = 10;
		newSpacer.height = 1;

		newTd.appendChild(newSpacer);
		newTr.appendChild(newTd);

		newTd = document.createElement("td");
		// td attribute
		newTd.id = "select1_default";
		newTd.className = "fliesstext";
		newTd.width = "100%";
		
		newValue = document.createTextNode(valueArray[0]);
		
		newTd.appendChild(newValue);
		newTr.appendChild(newTd);
		
		newTd = document.createElement("td");
		// td attribute
		newTd.width = 21;
		newTd.align = "right";

		newHref = document.createElement("a");
		newHref.href = "javascript: dropDownAction('l" + args[0] + "')";
		newHref.onclick = "";
		//<img src="images/bt_dropdown.gif" width="20" height="20" border="0">

		newImg = document.createElement("img");
		// img attribute
		newImg.src = "images/bt_dropdown.gif";
		newImg.width = 20;
		newImg.height = 20;
		newImg.border = 0;
		newHref.appendChild(newImg);
		newTd.appendChild(newHref);
		newTr.appendChild(newTd);
		newTBody.appendChild(newTr);
		newTable.appendChild(newTBody);

		for(i = 0; i < valueArray.length; i++)
		{
			//<tr id="kategorie_1" onMouseOver="dropDownTd(this)" onClick="setNewDropDownValue(this, 'lkategorie')"> 
			newTr = document.createElement("tr");
			// tr attribute
			newTr.id = args[0] + "_" + (i + 1);
			// HIER EVENT
			newTr.onmouseover = dropDownTd;
			//newTr.onclick = "setNewDropDownValue(this, 'l" + args[0] + "')";
			newTr.onclick = setNewDropDownValue;
			//<td><img src="images/transp.gif" width="10" height="1"></td>
			newTd = document.createElement("td");
			newImg = document.createElement("img");
			// img attribute
			newImg.src = "images/transp.gif";
			newImg.width = 10;
			newImg.height = 1;
			newTd.appendChild(newImg);
			newTr.appendChild(newTd);

			//<td colspan="2" class="fliesstext">Bedienung von Outlook</td>
			newTd = document.createElement("td");
			// td attribute
			newTd.className = "fliesstext";
			//newTd.colSpan = 2;
			newValue = document.createTextNode(valueArray[i]);
			newTd.appendChild(newValue);
			newTd.colSpan = 2;
			newTr.appendChild(newTd);
			newTBody.appendChild(newTr);
			newTable.appendChild(newTBody);
			eval(args[0])[valueArray[i]] = i + 1;
		}
		newInput = document.createElement("input");
		//<input type="hidden" name="kategorie" id="kategorie" value="1">  
		newInput.type = "hidden";
		newInput.name = args[0];
		newInput.id = args[0];
		newInput.value = 1;
		newTable.appendChild(newInput);
		// tabelle zusammensetzen
		lobj.appendChild(newTable);
	}

	var i = 0;
	var ctrl = 0;
	var shownLayer = new Array();
	var shownSubLayer = new Array();
	var selectedMenu = 0;
	var selectedRow = 0;
	
	var keyCodes = new Array();
	keyCodes[48] = 10;
	keyCodes[49] = 1;
	keyCodes[50] = 2;
	keyCodes[51] = 3;
	keyCodes[52] = 4;
	keyCodes[53] = 5;
	keyCodes[54] = 6;
	keyCodes[55] = 7;
	keyCodes[56] = 8;
	keyCodes[57] = 9;
	
	keyCodes[96] = 10;
	keyCodes[97] = 1;
	keyCodes[98] = 2;
	keyCodes[99] = 3;
	keyCodes[100] = 4;
	keyCodes[101] = 5;
	keyCodes[102] = 6;
	keyCodes[103] = 7;
	keyCodes[104] = 8;
	keyCodes[105] = 9;

	// test ie eigene tastenkombinationen koennen belegt werden
	//keyCodes[68] = 11;
	
	keyCodes["strg"] = 17;
	keyCodes["esc"] = 27;

	var selects = 1;

	function checkCombination()
	{
		if(parent.frames[1].window.event.keyCode != keyCodes["strg"])
		{
			if(ctrl == 1)
			{
				if(keyCodes[parent.frames[1].window.event.keyCode])
				{
					i++;
					showMenu(keyCodes[parent.frames[1].window.event.keyCode]);
				}
			}
		}
		else
		{
			ctrl = 1;
		}
	}

	function clearCombination(kill)
	{
		//alert(parent.frames[1].window.event.keyCode);
		if(parent.frames[1].window.event.keyCode == keyCodes["strg"] || kill == 1)
		{
			hideAllLayer();
			ctrl = 0;
			i = 0;
			x = new Array();
		}
	}

	function showMenu()
	{
		//showHideAllSelects();
		args = showMenu.arguments;
		if(i != 0)					// tastatur steuerung
		{
			switch(i)
			{
				case 1	:	highlightMainMenu(args[0]);
							showLayer("mm", args[0]);
							mainmenu = args[0];
							break;
				case 2	:	submenu = args[0];
							switch(mainmenu)
							{
								case 1	:	changeTD("td", args[0]);
											showLayer("ss", args[0]);
											break;
								case 2	:	changeTD("tdb", args[0]);
											showLayer("sb", args[0]);
											break;
								case 3	:	changeTD("tdc", args[0]);
											showLayer("sc", args[0]);
											break;
							}
							break;
				case 3	:	//das letzte menu muss auch noch gehighlightet werden
							loadSite("si" + mainmenu + submenu, args[0]);
							unhighlightMainMenu(args[0]);
							break;
			}
		}
		else
		{
			highlightMainMenu(args[0]);
			showLayer("mm", args[0]);
		}
	}

	function loadSite(sn, snr)
	{
		//alert(snr);
		if(obj = parent.frames[1].document.getElementById(sn + snr))
		{
			if(obj.href == "javascript:;")
			{
				parent.frames[1].location.href = "http://www.google.de";
			}
			else
			{
				parent.frames[1].location.href = obj.href;
			}
		}
		else
		{
			clearCombination();
		}
	}

	function highlightMainMenu(mnr)
	{
		if(obj = document.getElementById("h" + mnr))
		{
			obj.className = "menuhover";
			selectedMenu = "h" + args[0];
		}
		else
		{
			clearCombination(1);
		}
	}

	function unhighlightMainMenu(ln)
	{
		//showHideAllSelects();
		if(obj = document.getElementById("h" + ln))
		{
			obj.className = "menu";
		}
	}

	function showLayer(ln, lnr)
	{
		if(obj = parent.frames[1].document.getElementById(ln + lnr))
		{
			//alert();
			var topvalues = new Array();
			
			topvalues[1] = 0;
			topvalues[2] = 20;
			topvalues[3] = 41;
			topvalues[4] = 61;

			if(ln != "mm")
			{
				shownSubLayer[shownSubLayer.length] = ln + lnr;
				obj.style.top = parseInt(parent.frames[1].document.body.scrollTop) + topvalues[lnr];
			}
			else
			{
				obj.style.top = parseInt(parent.frames[1].document.body.scrollTop);
			}
			obj.style.visibility = "visible";
			shownLayer[shownLayer.length] = ln + lnr;
		}
	}

	function hideLayer(ln, lnr)
	{
		if(obj = parent.frames[1].document.getElementById(ln + lnr))
		{
			obj.style.visibility = "hidden";
		}
	}
	
	function changeTD(tdn, tdnr)
	{
		if(obj = parent.frames[1].document.getElementById(tdn + tdnr))
		{
			if(obj.background == "")
			{
				obj.background = "images/bg_td.gif";
				selectedRow = tdn + tdnr;
			}
			else
			{
				obj.background = "";
			}
		}
	}

	function hideAllLayer(which)
	{
		if(!(which))
		{
			for(f = 0; f < shownLayer.length; f++)
			{
				if(document.getElementById(shownLayer[f]))
				{
					document.getElementById(shownLayer[f]).style.visibility = "hidden";
				}
			}
			shownLayer = new Array();
			if(document.getElementById(selectedMenu))
			{
				if(document.getElementById(selectedMenu).className == "menuhover")
				{
					document.getElementById(selectedMenu).className = "menu";
					//showHideAllSelects();
				}
			}
			if(document.getElementById(selectedRow))
			{
				document.getElementById(selectedRow).background = "";
			}
		}
		else
		{
			for(f = 0; f < shownSubLayer.length; f++)
			{
				document.getElementById(shownSubLayer[f]).style.visibility = "hidden";
			}
			shownSubLayer = new Array();
		}
	}

	function showHideAllSelects()
	{
		if(parent.frames[1].document.getElementsByTagName("select").length != 0)
		{
			if(selects == 1)
			{
				for(v = 0; v < parent.frames[1].document.getElementsByTagName("select").length; v++)
				{
					parent.frames[1].document.getElementsByTagName("select")[v].style.visibility = "hidden";
				}
				selects = 0;
			}
			else
			{
				for(v = 0; v < parent.frames[1].document.getElementsByTagName("select").length; v++)
				{
					parent.frames[1].document.getElementsByTagName("select")[v].style.visibility = "visible";
				}
				selects = 1;
			}
		}
	}

	function deleteFile(which)
	{
		document.getElementById(which).value = "";
		document.getElementById(which + "_show").value = "";
	}

	function deleteImage(which)
	{
		document.getElementById(which).value = "";
		document.getElementById(which + "_show").value = "";
		document.getElementById(which + "_preview").src = "../images/transp.gif";
		document.getElementById(which + "_preview").width = 1;
		document.getElementById(which + "_preview").height = 1;
	}

// ----------------------FORM FUNCTIONS --------------------------------------------------- //
	var oldTd = null;
	var selectOpen = null;

	function dropDownAction(l)
	{
		var clipper = new Array();
		var eingeklappt = 21;

		obj = document.getElementById(l);
		cl = obj.style.clip;

		tmp = cl.split("rect(");
		tmp = tmp[1].split(")");
		cl = tmp[0].split("px");
		
		clipper["oben"] = cl[0];
		clipper["rechts"] = cl[1];
		clipper["unten"] = cl[2];
		clipper["links"] = cl[3];
		
		if(clipper["unten"] == eingeklappt)
		{
			if(selectOpen != null)
			{
				obj = document.getElementById(selectOpen);
				obj.style.zIndex = 0;
				clipper["unten"] = eingeklappt;
				obj.style.clip = "rect(" + clipper["oben"] + " " + clipper["rechts"] + " " + clipper["unten"] + " " + clipper["links"] + ")";
				selectOpen = null;
			}
			obj = document.getElementById(l);
			obj.style.zIndex = 1;
			clipper["unten"] = obj.offsetHeight;
			selectOpen = l;

		}
		else
		{
			obj.style.zIndex = 0;
			clipper["unten"] = eingeklappt;
			selectOpen = null
		}
		obj.style.clip = "rect(" + clipper["oben"] + " " + clipper["rechts"] + " " + clipper["unten"] + " " + clipper["links"] + ")";
	}

	//function dropDownTd(td)
	function dropDownTd(td)
	{
		if(td == null)
		{
			td = this;
		}
		oldTd != null ? document.getElementById(oldTd).bgColor = "" : "";
		obj = document.getElementById(td.id);
		td.bgColor = "#D8D8D8";
		oldTd = td.id;
	}

	function setNewDropDownValue(td, la, newValue)
	{
		if(td == null)
		{
			td = this;
		}
		if(newValue != "")
		{
			newValue = document.getElementById(td.id).lastChild.firstChild.nodeValue;
		}
		g = td.id.lastIndexOf("_");
		firstTd = td.id.slice(0, td.id.lastIndexOf("_"));
		// hier wird die hidden input value gesetzt
		
		document.getElementById(firstTd).value = eval(firstTd)[newValue];
		firstTd = firstTd + "_0";
		//alert(document.getElementById(firstTd).firstChild.nextSibling.nodeName);
		document.getElementById(firstTd).firstChild.nextSibling.firstChild.nodeValue = newValue;
		if(la == null)
		{
			la = "l" + args[0];
		}
		dropDownAction(la);
	}

	var fields = new Array();
	fields["select1"] = "Eintrag 4";

	function initFields(fieldname, newValue)
	{
		if(fieldname != "fieldnamenone" && newValue != "newvaluenone")
		{
			obj = document.getElementById(fieldname + "_0");
			document.getElementById(fieldname).value = eval(fieldname)[newValue];
			document.getElementById(fieldname + "_0").firstChild.nextSibling.firstChild.nodeValue = newValue;
		}
	}

