// JS-Menü

function jsMenu()
{
	var app = this;

	app.hideElements = function(elemName, className)
	{
		var elems;
		var i;

		if (document.getElementsByTagName)
		{
			elems = document.getElementsByTagName(elemName);
			for (i = 0; i < elems.length; i++)
			{
				if (elems[i].nodeType == 1
						&& (typeof className == undefined || app.hasClass(className, elems[i].className)))
				{
					elems[i].style['display'] = 'none';
				}
			}
		}
	}

	app.setEventHandlers = function(id)
	{
		var menu;
		var i;
		var highlight;

		if (typeof id != 'undefined')
		{
			if (document.getElementById)
			{
				menu = document.getElementById(id);
				if (menu)
				{
					for (i = 0; i < menu.childNodes.length; i++)
					{
						if (menu.childNodes[i].nodeName == 'LI')
						{
							if (app.hasClass('active', menu.childNodes[i].className))
							{
								menu.childNodes[i].onmouseover = function() { app.toggleSubmenu(this, true, false); };
								menu.childNodes[i].onmouseout = window.setTimeout(function() { app.toggleSubmenu(this, false, false); }, 1500)
							}
							else
							{
								menu.childNodes[i].onmouseover = function() { app.toggleSubmenu(this, true, true); };
								menu.childNodes[i].onmouseout = function() { app.toggleSubmenu(this, false, false); };
							}
						}
					}
				}
			}
		}
	}

	app.toggleSubmenu = function(parent, display, highlight)
	{
		var i;

		if (document.getElementById)
		{
			for (i = 0; i < parent.childNodes.length; i++)
			{
				if (parent.childNodes[i].nodeName == 'UL')
				{
					if (display == true)
						parent.childNodes[i].style['display'] = 'block';
					else
						parent.childNodes[i].style['display'] = 'none';
				}

				if (highlight == true)
					parent.className = app.addClass(parent.className, 'active');
				else
					parent.className = app.removeClass(parent.className, 'active');
			}
		}
	}

	app.removeClass = function(old, remove)
	{
		var classes;
		var i;
		var f = null;

		classes = old.split(' ');
		for (i = 0; i < classes.length; i++)
		{
			if (classes[i] == remove) f = i;
		}
		if (f != null) classes.splice(f, 1);
		return(classes.join(' '));
	}

	app.replaceClass = function(old, toreplace)
	{
		var classes;
		var i;
		var f = null;

		classes = old.split(' ');
		for (i = 0; i < classes.length; i++)
		{
			if (classes[i] == toreplace) f = i;
		}
		if (f != null) classes[f] = toreplace;
		return(classes.join(' '));
	}

	app.addClass = function(old, toadd)
	{
		var classes;
		var i;
		var f = null;

		classes = old.split(' ');
		for (i = 0; i < classes.length; i++)
		{
			if (classes[i] == toadd) f = i;
		}
		if (f == null) classes.push(toadd);
		return(classes.join(' '));
	}

	app.hasClass = function(classname, classes)
	{
		var class_strings;
		var i;

		class_strings = classes.split(' ');
		for (i = 0; i < class_strings.length; i++)
		{
			if (class_strings[i] == classname) return(true);
		}
		return(false);
	}

	app.replaceImage = function(elem_id, img_src)
	{
		if (document.getElementById)
		{
			var elem = document.getElementById(elem_id);
			if (elem)
			{
				elem.src = img_src;
			}
		}
	}
}

var jsMenu;
function jsMenuInit(containerName)
{
	jsMenu = new jsMenu();
	jsMenu.setEventHandlers(containerName);
	jsMenu.hideElements('TABLE', 'submenue');
}

