function createMenu (list) {
	// Erstes Argument einlesen und aus
	// Argument-Array entfernen
	//arguments = $A(arguments[0]);
	//argsMenu = arguments.shift();
	
	argsMenu = list.shift();
	
	
	// Toolbar-DIV erstellen
	var menu = document.createElement("div");
	if (argsMenu.toolbar) {
		menu.id = "menu_" + argsMenu.button;
	} else {
		menu.id = argsMenu.id;
	}
	menu.className = "ddmenu";
	menu.style.width = argsMenu.width;
	
	// Inneres DIV erstellen
	var menuInner = document.createElement("div");
	menuInner.className = "mi";
	
	menuInner.id = 'menuInner_' + menu.id;
	menu.appendChild(menuInner);
	
	if (argsMenu.toolbar) {
		// Zugehörigen Button ermitteln und Menü richtig
		// positionieren
		if($("toolbar_" + argsMenu.toolbar + "_button_" + argsMenu.button)) {
			var button = $("toolbar_" + argsMenu.toolbar + "_button_" + argsMenu.button);
			var buttonSize = Element.getDimensions(button);

			Position.clone(button, menu, { offsetTop: buttonSize.height + 1, setWidth: false, setHeight: false });
			$(menu).style.position = 'absolute';
		
	
			// Zusammenhang zw. Menü und Button speichern
			button._menu = menu.id;
			menu._button = button.id;
		}
	} else {
		menu.style.left = argsMenu.offsetLeft || 0;
		menu.style.top  = argsMenu.offsetTop || 0;
	}
	
	menu._offsetLeft = argsMenu.offsetLeft || 0;
	menu._offsetTop = argsMenu.offsetTop || 0;
	
	
	// Alle Einträge durchgehen
	var i = 0;
	list.each(
		function (argsEntry) {
			// Eintrags-DIV erstellen
			var entry = document.createElement("div");
			entry.className = "entry";
			entry.title = argsEntry.title;
			entry.onclick = argsEntry.onclick;

			if (!argsEntry.disabled) {
				// Bei mouseover Hover-Klasse setzen
				entry.onmouseover = function () {
					Element.addClassName(this, "hover");
				}.bind(entry);

				// Bei mouseout Hover-Klasse entfernen
				entry.onmouseout = function () {
					Element.removeClassName(this, "hover");
				}.bind(entry);
			} else {
				Element.addClassName(entry, "disabled");
			}

			//Falls eine id übergeben wurde
			if (argsEntry.name) {
				entry.id = argsEntry.name;
			}
			
			if(argsEntry.selected) {
				Element.addClassName(entry, 'selected');
			}
			
			// Wenn es sich um einen selektierbaren Eintrag
			// handeln soll
			if (argsEntry.selectable) {
				// Bei Klick Auswahl umkehren
				var func = function () {
					if (Element.hasClassName(this, 'selected')) {
						Element.removeClassName(this, "selected");
						this.selected = false;
					} else {
						Element.addClassName(this, "selected");
						this.selected = true;
					}
				}.bind(entry);
			} else if (!argsEntry.disabled) {
				// Bei Klick Menü ausblenden
				if (argsMenu.toolbar) {
					var func = function () {
						dropdownToggle(this[0].id, !(this[1].keepvideohidden));
					}.bind([button, argsMenu]);
				} else {
					var func = function () {
						toggleMenu(this);
					}.bind(menu);
				}
			}

			// onclick-Event vor eventuell bereits bestehenden
			// Event setzen
			if (typeof entry.onclick != 'function') {
				entry.onclick = func;
			} else {
				var oldevent = entry.onclick;
				entry.onclick = function() {
					func();
					if (oldevent) {
						oldevent();
					}
				};
			}
			
			// Eintrags-Padding erstellen
			var entryInner = document.createElement("div");
			entryInner.className = "ei";
			
			// Tabelle mit Zeile (zur vertikalen
			// Zentrierung) erstellen
			var entryTable = document.createElement("table");
			var entryTableTBody = document.createElement("tbody");
			var entryTableTr = document.createElement("tr");
			
			// Icon-Tabellenzelle erstellen
			var entryIcon = document.createElement("td");
			entryIcon.className = "icon";
			
			if (argsEntry.icon) {
				var iconParams = argsEntry.icon.split(/ /);
				
				var entryIconImg = document.createElement("img");
				entryIconImg.src = iconParams[0];
				entryIconImg.width = iconParams[1] || 16;
				entryIconImg.height = iconParams[2] || 16;
				entryIconImg.alt = '';
				entryIcon.appendChild(entryIconImg);
			}
			entryTableTr.appendChild(entryIcon);
			
			// Label-Tabellenzelle erstellen
			var entryLabel = document.createElement("td");
			entryLabel.className = "label";
			// Damit auch HTML-Code interpretiert wird,
			// innerHTML benutzen
			entryLabel.innerHTML = argsEntry.label;
			//var entryLabelText = document.createTextNode(argsEntry.label);
			//entryLabel.appendChild(entryLabelText);
			entryTableTr.appendChild(entryLabel);
			
			
			// Eintrag einfügen
			entryTableTBody.appendChild(entryTableTr);
			entryTable.appendChild(entryTableTBody);
			entryInner.appendChild(entryTable);
			entry.appendChild(entryInner);
			menuInner.appendChild(entry);
			
			if (i < this.length - 1) {
				var entrySep = document.createElement("div");
				entrySep.className = "sep";
				menuInner.appendChild(entrySep);
			}
			
			i++;
		}.bind(list)
	);
	
	if (argsMenu.closebutton) {
		var entrySep = document.createElement("div");
		entrySep.className = "sep";
		menuInner.appendChild(entrySep);
		var closeButton = document.createElement("div");
		closeButton.className = "close";
		closeButton.onclick = function () { hideMenu(this); }.bind(menu);
		var closeSpan = document.createElement("span");
		var closeText = document.createTextNode(__('Schließen'));
		closeSpan.appendChild(closeText);
		closeButton.appendChild(closeSpan);
		menuInner.appendChild(closeButton);
		closeButton.style.zIndex = 999;
	}
	
	menu._arguments = argsMenu;
	
	// Menü einfügen
	Element.hide(menu);
	$(argsMenu.container).appendChild(menu);
	
	//Falls das Menü zu groß ist und ein Overflow gewünscht
	if(typeof argsMenu.height == 'number' && argsMenu.overflow) {
		if(Element.getDimensions(menu).height > argsMenu.height) {
			menuInner.style.height = argsMenu.height;
			menuInner.style.overflow = 'auto';
		}
	}
}



function toggleMenu (menu, options) {
	if(ua_name == "ie" || window.opera) {
		if(selects_hidden === 0) {
			hideSelectBoxes();
			selects_hidden = 1;
		} else if(selects_hidden == 1) {
			showSelectBoxes();
			selects_hidden = 0;
		}
	}
	if (typeof(options) == 'undefined') {
		options = { };
	}
	options.duration = 0.3;
	
	// Menü ein-/ausblenden (bei Opera aufgrund fehlerhafter
	// Darstellung anderen Effekt verwenden)
	Effect.toggle(menu, (window.opera ? 'blind' : 'appear'), options);
	//Element.show(menu);
}



function hideMenu (menu, options) {
	if(ua_name == "ie" || window.opera) {
		showSelectBoxes();
	}
	if (typeof(options) == 'undefined') {
		options = { };
	}
	options.duration = 0.3;
	
	// Menü ausblenden (bei Opera aufgrund fehlerhafter
	// Darstellung anderen Effekt verwenden)
	if (!window.opera) { func = Effect.Fade; } else { func = Effect.BlindUp; }
	func(menu, options );
}