// Auxiliary methods:

function getElementsByClassName(tag, className)
{
	var elements = [];
	var els = document.getElementsByTagName(tag);

	for(var i = 0; i < els.length; i++)
	{
		var classes = els[i].className.split(" ");

		for(var j = 0; j < classes.length; j++)
		{
			if(classes[j] == className)
			{
				elements[elements.length] = els[i];
				break;
			}
		}
	}

	return elements;
}

function startsWith(str, test)
{
	return (str.indexOf(test) == 0);
}

//

var menu_status = [];

function showHide(theid, that)
{
	if(document.getElementById)
	{
		var clss = that.className.split(" ")[0];

		var switch_id = document.getElementById(theid);
		var parent_id = (clss != "menu1") ? that.parentNode.id : null;

		var menus = getElementsByClassName("a", clss);
		for(var i = 0; i < menus.length; i++)
		{
			var menu = menus[i];
			menu.className = clss + ((menu === that) ? " selected" : "");
		}

		clss = parent_id ? "submenu2" : "submenu";
		menus = getElementsByClassName("a", clss);
		for(i = 0; i < menus.length; i++)
			menus[i].className = clss;

		if(menu_status[theid] != 'show')
		{
			var divs = getElementsByClassName("div", "show");

			for(i = 0; i < divs.length; i++)
			{
				var div = divs[i];

				if(!((div.id == theid) || (parent_id && (div.id == parent_id))))
				{
					div.className = 'hide';
					menu_status[div.id] = 'hide';
				}
			}

			switch_id.className = 'show';
			menu_status[theid] = 'show';
		}
		else
		{
			switch_id.className = 'hide';
			menu_status[theid] = 'hide';
		}
	}
}

function openLevels(level, sublevel, endlevel)
{
	//Open 1st level:
	var as = getElementsByClassName("a", "menu1");

	for(var i = 0; i < as.length; i++)
	{
		var a = as[i];

		if(startsWith(a.innerHTML, level))
		{
			if(a.onclick)
				a.onclick();
			else
				a.className = "menu1 selected";

			// Open 2nd level, if any:
			if(sublevel)
			{
				as = getElementsByClassName("a", "submenu");

				for(j = 0; j < as.length; j++)
				{
					var a2 = as[j];

					if(startsWith(a2.innerHTML, sublevel))
					{
						if(a2.onclick)
							a2.onclick();
						else
							a2.className = "submenu selected";

						// Select 3rd-level element, if any:
						as = getElementsByClassName("a", "submenu2");

						for(k = 0; k < as.length; k++)
						{
							var a3 = as[k];

							a3.className = "submenu2" + ((endlevel && startsWith(a3.innerHTML, endlevel)) ? " selected" : "");
						}

						break;
					}
				}
			}

			break;
		}
	}
}

