			function easy_menu(menu_id)
			{
				/*
				menu: Referenz auf die Liste.
				*/
				var this_ref		= this;
				var menu			= document.getElementById(menu_id);
				this.singleExpand	= 0;
				this.storeData		= 0;
			
				/*
				Fügt den Listeneinträgen Eventhandler und CSS Klassen hinzu,
				um die Menüpunkte am Anfang zu schließen.
				*/
				this.treeMenu_init = function()
				{
					var last_expand	= null;
					var array		= new Array(0);
					if (this_ref.storeData == 1)
					{
						array	= window.name.match(/\d+/g);
					} // if (this_ref.storeData == 1)
					// letztes geöffnetes Element
					if ((array) && (array.length > 0))
					{
						last_expand	= array[array.length-1];
						array.pop();
					}
					// öffne gespeichert Elemente
					var items	= menu.getElementsByTagName("li");
					for(var i = 0; i < items.length; i++)
					{
						items[i].onclick = treeMenu_handleClick;
						if (!treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_opened"))
						{
							var classes		= treeMenu_getClasses(items[i]);
							if ((array) && (array.length > 0) && (array[0] == i))
							{
								classes.push("treeMenu_opened");
							} else { // if ((array) && (array.length > 0) && (array[0] == i))
								classes.push("treeMenu_closed");
							} // if ((array) && (array.length > 0) && (array[0] == i))
							if ((last_expand) && (i == last_expand))
							{
								classes.push("treeMenu_active");
							} // if ((last_expand) && (array[0] == last_expand))
							items[i].className = classes.join(" ");
							if ((array) && (array.length > 0) && (array[0] == i))
							{
								array.shift();
							} // if ((array) && (array.length > 0) && (array[0] == i))
						} // if((!treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_opened")) && (items[i].getElementsByTagName("ul").length + items[i].getElementsByTagName("ol").length > 0))
					} // for(var i = 0; i < items.length; i++)
				} // this.treeMenu_init = function()
	
				/*
				Ändert die Klasse eines angeclickten Listenelements, sodass
				geöffnete Menüpunkte geschlossen und geschlossene geöffnet
				werden.
				event: Das Event Objekt, dass der Browser übergibt.
				*/
				treeMenu_handleClick = function(event)
				{
					if(event == null) // Workaround für die fehlenden DOM Eigenschaften im IE
					{
						event				= window.event;
						event.currentTarget	= event.srcElement;
						while(event.currentTarget.nodeName.toLowerCase() != "li")
						{
							event.currentTarget	= event.currentTarget.parentNode;
						} // while(event.currentTarget.nodeName.toLowerCase() != "li")
						event.cancelBubble = true;
					} else { // if(event == null)
						event.stopPropagation();
					} // if(event == null)
					// deaktiviert letztes geöffnetes Element
					var items	= menu.getElementsByTagName("li");
					for(var i = 0; i < items.length; i++)
					{
						var array	= treeMenu_getClasses(items[i]);
						for(var j = 0; j < array.length; j++)
						{
							if (array[j] == "treeMenu_active")
							{
								array[j]	= "";
							} // if (array[j] == "treeMenu_active
						} // for(var j = 0; j < array.length; j++)
						items[i].className = array.join(" ");
					} // for(var i = 0; i < items.length; i++)
					// aktiviert geklicktes Element
					var array	= treeMenu_getClasses(event.currentTarget);
					array.push("treeMenu_active");
					event.currentTarget.className = array.join(" ");
					// schließt offene Elemente, wenn singleExpand
					if (this_ref.singleExpand == 1)
					{
						var items	= menu.getElementsByTagName("li");
						for(var i = 0; i < items.length; i++)
						{
							var array	= treeMenu_getClasses(items[i]);
							for(var j = 0; j < array.length; j++)
							{
								if (array[j] == "treeMenu_opened")
								{
									array[j]	= "treeMenu_closed";
								} // if (array[j] == "treeMenu_opened")
							} // for(var j = 0; j < array.length; j++)
							items[i].className = array.join(" ");
						} // for(var i = 0; i < items.length; i++)
					} // if (this_ref.singleExpand == 1)
					// öffnet oder schließt Element
					var array	= treeMenu_getClasses(event.currentTarget);
					for(var i = 0; i < array.length; i++)
					{
						if(array[i] == "treeMenu_closed")
						{
							array[i]	= "treeMenu_opened";
						} else if (array[i] == "treeMenu_opened") {
							array[i]	= "treeMenu_closed";
						} // if(array[i] == "treeMenu_closed")
					} // for(var i = 0; i < array.length; i++)
					event.currentTarget.className = array.join(" ");
					// öffnet Eltern Element
					var parent_element	= event.currentTarget.parentNode.parentNode;
					while (parent_element)
					{
						if (parent_element.nodeName.toLowerCase() == "li")
						{
							var array	= treeMenu_getClasses(parent_element);
							for(var i = 0; i < array.length; i++)
							{
								if(array[i] == "treeMenu_closed")
								{
									array[i]	= "treeMenu_opened";
								} // if(array[i] == "treeMenu_closed")
							} // for(var i = 0; i < array.length; i++)
							parent_element.className = array.join(" ");
						} // if (parent_element.nodeName.toLowerCase() == "li"))
						if ((parent_element.parentNode) && (parent_element.parentNode.parentNode))
						{
							parent_element	= parent_element.parentNode.parentNode;
						} else { // if (parent_element.parentNode.parentNode)
							parent_element	= null;
						}
					} // while (parent_element)
					// Speichert Zustand
					if (this_ref.storeData == 1)
					{
						window.name	= treeMenu_store();
					} // if (this_ref.storeDate == 1)
				} // treeMenu_handleClick = function(event)
	
				/*
				Gibt alle Klassen zurück, die einem HTML-Element zugeordnet sind.
 				element: Das HTML-Element
				return: Die zugeordneten Klassen.
				*/
				treeMenu_getClasses = function(element)
				{
					if(element.className)
					{
						return element.className.match(/[^ \t\n\r]+/g);
					} else { // if(element.className)
						return new Array(0);
					} // if(element.className)
				} // treeMenu_getClasses = function(element)
	
				/*
				Überprüft, ob ein Array ein bestimmtes Element enthält.
				array: Das Array
				element: Das Element
				return: true, wenn das Array das Element enthält.
				*/
				treeMenu_contains = function(array, element)
				{
					for(var i = 0; i < array.length; i++)
					{
						if(array[i] == element)
						{
							return true;
						} // if(array[i] == element)
					} // for(var i = 0; i < array.length; i++)
					return false;
				} // treeMenu_contains = function(array, element)
	
				/*
				Gibt einen String zurück, indem die Nummern aller geöffneten
				Menüpunkte stehen.
				return: Der String
				*/
				treeMenu_store = function()
				{
					var result			= new Array();
					var items			= menu.getElementsByTagName("li");
					var last_expand		= -1;
					for(var i = 0; i < items.length; i++)
					{
						if(treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_opened"))
						{
							result.push(i);
						} // if(treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_opened"))
						if(treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_active"))
						{
							last_expand	= i;
						} // if(treeMenu_contains(treeMenu_getClasses(items[i]), "treeMenu_active"))
					} // for(var i = 0; i < items.length; i++)
					if (last_expand != -1)
					{
						result.push(last_expand);
					}
					return result.join(" ");
				} // treeMenu_store = function()
			} // function easy_menu(menu_id)

