/*

Expandable menu.

*/

var
	sClassControlClosed = "control-closed",
	sClassControlOpened = "control-opened",
	sClassClosed = "closed",
	sClassOpened = "opened";


// Find first child node with corresponding tag
function getFirstChild( element, tag )
{
	if( element )
	{
		var nodes = element.childNodes;
		for( var i = 0; i < nodes.length; i++ )
		{
			if( nodes[ i ].tagName == tag )
				return nodes[ i ];
		}
	}
	else
	{
		return null;
	}
}

// tries to initialize all menus
function initAllMenus()
{
	try
	{
		if( !document.getElementsByTagName )
			return false;

		var arUls = document.getElementsByTagName( "UL" );
		
		for( var i = 0; i < arUls.length; i++ )
		{
			var oUL = arUls[ i ];

			if( oUL.getAttribute( "id" ) && ( !oUL.getAttribute( "id" ).indexOf( "tree" ) || !oUL.getAttribute( "id" ).indexOf( "adult" ) ) )
			{
				initMenu( oUL );
			}
		}
	}
	catch( e )
	{
	}
}

// Initialize all menus inside element with corresponding ID
function initMenus( sItemID )
{
	if( !document.getElementsByTagName )
		return false;
	
	var
		oMenuTree = document.getElementById( sItemID );
	
	if( !oMenuTree )
		return false;

	initMenu( oMenuTree );
}

function initMenu( oMenu )
{
	var 
		arItem = oMenu.getElementsByTagName( 'LI' );
	
/*	if( oMenu.className != sClassClosed && oMenu.getAttribute( "id" ).indexOf( "adult" ) == -1 )
		oMenu.className = sClassClosed;*/

	// check for all child LI's
	for( var i = 0; i < arItem.length; i++ )
	{
		var
			oItem = arItem[ i ];

		if( oItem.parentNode == oMenu )
		{
			var 
				oSubMenu = getFirstChild( oItem, 'UL' ),
				oItemSpan = getFirstChild( oItem, 'SPAN' );
			
			if( oSubMenu && oItemSpan )
			{
				/*if( oSubMenu.className != sClassClosed )
				{
					oSubMenu.className = sClassClosed;
					oItemSpan.className = sClassControlClosed;
				}*/

				oItemSpan.onclick = menuOpenClose;
			}
		}
	}
}

// Open and Close menu items
// Just hide and show the UL item inside
function menuOpenClose( oEvent )
{
	try
	{
		var oSrc = ( window.event ? window.event.srcElement : oEvent.target );
		
		if( oSrc.tagName.toUpperCase( )  == 'SPAN' )
		{
			var oParentLI = oSrc.parentNode;

			while( oParentLI && oParentLI.tagName != 'LI' )
			{
				oParentLI = oParentLI.parentNode;
			}

			if( oParentLI )
			{
				var
					oSubmenu = getFirstChild( oParentLI, 'UL' );
				
				if( oSubmenu )
				{
					if( oSubmenu.className == sClassOpened )
					{
						oSubmenu.className = sClassClosed;
						oSrc.className = sClassControlClosed;
					}
					else
					{
						oSubmenu.className = sClassOpened;
						oSrc.className = sClassControlOpened;
					}
				}
			}
		}

	}
	catch( e )
	{
		alert( e.message );
	}
}
