// DropDownMenu.js
// Functions for generating drop down menus
// @author: Alexander Wende



// global variable to store the first level of the menu
var firstlevelmenu = new Array();



// decorate all the initial menu items
// @param: menu_id -- id of the menu list
//
function decorateMenu(menu_id) {
	
	if(document.getElementById)
	{
		var templevel = document.getElementById(menu_id).childNodes;
		
		if(templevel) 
		{
			for(var i = 0; i < templevel.length; i++)
			{
				if(templevel[i].nodeName == "LI")
				{
					firstlevelmenu.push(templevel[i]);
					
					templevel[i].getElementsByTagName("a")[0].onclick = activateMenuItem;
				}
			}
		}
	}
	
	addHoverClass(menu_id);
}



// add classname ".hover" to elements to simulate pseudo-class ":hover"
// @param: menu_id -- id of the menu list
//
function addHoverClass(menu_id) {
	
	if(document.getElementById)
	{
		// get all list items of the menu list
		var menuitems = document.getElementById(menu_id).getElementsByTagName("li");
		
		// and assign the class names according to the mouseover events
		for(var i = 0; i < menuitems.length; i++)
		{
			menuitems[i].onmouseover = function() 
			{
				this.className += " hover";
			}
			
			menuitems[i].onmouseout = function() 
			{
				this.className = this.className.replace("hover", "");
			}
		}	
	}
}



// set active classname of a menu item
//
function activateMenuItem() {
	
	for(var i = 0; i < firstlevelmenu.length; i++)
	{
		firstlevelmenu[i].className = firstlevelmenu[i].className.replace("active", "");
	}
	
	this.parentNode.className += " active";
}



// bluring all the links after having clicked one
//
function blurAllLinks() {
	
	if(document.getElementsByTagName)
	{
		// get all anchors in the document
		var anchors = document.getElementsByTagName("a");
		
		// and assign the blur() funtion to the onfocus event
		for(var i = 0; i < anchors.length; i++)
		{
			anchors[i].onfocus = function() 
			{
				this.blur();
			}
		}	
	}
}
