function getSubElements (obj, element)
{
	var ch = (obj.children) ? obj.children : obj.childNodes;

	var cnt = 0, l = ch.length, arr = new Array(), j=0;
	for (var i=0; i < l; i++)
		if (ch [i].tagName == element)
			arr [j++] = ch [i];
	return arr;
}

function menuHandler (e)
{
	e = (e == null) ? event : e;

	var from = e.target ? e.target : e.srcElement;
	var parent = from.parentNode ? from.parentNode : from.parentElement;

	if (from.tagName != "A")
		return true;

	var uls = getSubElements (parent, "UL");
	if (uls.length == 0)
		return true;

	for (var i=0; i<uls.length; i++)
	{
		var d = uls [i].className;
		uls [i].className = (/\bexpanded/g.test (d)) ? d.replace (/(expanded)?$/, "collapsed") : d.replace (/(collapsed)?$/, "expanded");
	}
	
	return false;
}
