if(!document.getElementById)
{
	document.prototype.getElementById = function(id)
	{
		if(document.all && document.all[id])
		{
			return document.all[id];
		}
	}
	
}

function initMenu()
{
	var elm = document.getElementById('rightmenu');

	var links = elm.getElementsByTagName('a');
	
	for(var i = 0; i < links.length; i++)
	{
		var a = links[i];
		var ul = getSubList(a);
		if(ul)
		{
			// has children
			a.onclick = function() { toggle(this); return false; }
		}
		else
		{
/*
			if(!a.target)
			{
				a.target = 'content';
			}
*/
			a.onclick = function() { hideOldOpen(this); mark(this); }
		}
	}
}
function hideOldOpen(a)
{
	var level = getLevelByA(a);
	
	if(oldOpen && level !== 2) 
	{
		oldOpen.style.display = 'none';
	}
}

function getSubList(a)
{
	var cursor = a.parentNode;
	while(cursor && cursor.tagName && cursor.tagName.toLowerCase() != 'li')
	{
		cursor = cursor.parentNode;
	}
	var ul = cursor.getElementsByTagName('ul');
	if(ul.length > 0)
	{
		return ul[0];
	}
	
	return null;
}
var oldOpen;
function toggle(elm)
{
	var ul = getSubList(elm);
	if(ul)
	{
		// sub items exist
		
		ul.style.display = (ul.style.display == 'block' ? 'none' : 'block');
		if(ul.style.display == 'block' && oldOpen && oldOpen != ul)
		{
			oldOpen.style.display = 'none';
		}
		oldOpen = ul;

		mark(elm)
	}
}
var oldLink;
var oldLevel;
var oldActive;
function getLevelByA(elmA)
{
	var level = -1;
	var cursor = elmA.parentNode;
	while(cursor && cursor.tagName && cursor.tagName.toLowerCase() != 'body')
	{
		if(cursor.tagName.toLowerCase() != 'ul')
			level++;
		cursor = cursor.parentNode;
	}
	
	return level;
}
function getParentLink(a)
{
	var cursor = a.parentNode;
	while(cursor && cursor.tagName && cursor.tagName.toLowerCase() != 'li')
	{
		cursor = cursor.parentNode;
	}
	if(cursor)
	{
		cursor = cursor.parentNode;
		while(cursor && cursor.tagName && cursor.tagName.toLowerCase() != 'li')
		{
			cursor = cursor.parentNode;
		}
		
		var a = cursor.getElementsByTagName('a');
		
		return a[0];
	}
}

function mark(elm)
{
	var level = getLevelByA(elm);
	
	if(oldLink)
	{
		oldLink.className = 'off';
	}
	elm.className = (!elm.className || elm.className == 'off' ? 'on' : 'off');
	if(elm.className == 'on')
	{
		oldLink = elm;
		if(level === 2)
		{
			var parentLink = getParentLink(elm);
			parentLink.className = 'active';
			oldActive = parentLink;
		}
		else if(oldActive)
		{
			oldActive.className = 'off';
		}
		
		oldLevel = level;
	}
}

window.onload = function() { initMenu(); }