/** menus **/

function Menus()
{
}

Menus.activeElement = null;
Menus.srcElement = null;
Menus.hider = null;
Menus.shadowEl = null;

Menus.prototype.mouseOver = function(element)
{
    if( (element == Menus.activeElement) || (element == Menus.activeSrc) ) {
	if( Menus.hider != null ) {
	    clearTimeout( Menus.hider );
	    Menus.hider = null;
	}
	return;
    }

    if( Menus.activeElement != null ) {
	if( Menus.hider != null )
	    clearTimeout( Menus.hider );
	Menus.hider = null;
	this.finalCleanup();
    }

    var subId = element.getAttribute( "subid" );
    var child = document.getElementById( "sub_" + subId );

    if( !child ) return;

    var pos = getPageCoords( element );

    child.style.left = pos.x + "px";
    child.style.top = (pos.y + 23) + "px";
    child.style.display = "block";
    element.style.color="#ffffff";
    Menus.activeElement = child;
    Menus.srcElement = element;

    Menus.shadowEl = document.createElement( "DIV" );

    if( Menus.shadowEl.className === undefined ) {
	Menus.shadowEl.setAttribute( "class", "menuShadow" );
    } else {
	Menus.shadowEl.className = "menuShadow";
    }

    document.body.appendChild( Menus.shadowEl );
    Menus.shadowEl.style.left = (pos.x + 3) + "px";
    Menus.shadowEl.style.top = (pos.y + 25) + "px";
    Menus.shadowEl.style.width = child.offsetWidth + "px";
    Menus.shadowEl.style.height = (child.offsetHeight + 1) + "px";
}

Menus.prototype.mouseOut = function(element)
{
    if( Menus.hider != null ) return;
    if( Menus.activeElement == null ) return;

    Menus.hider = setTimeout( this.finalCleanup, 800 );
}

Menus.prototype.finalCleanup = function()
{
    if( Menus.activeElement != null ) Menus.activeElement.style.display = "none";
    if( Menus.srcElement != null ) {
	Menus.srcElement.style.color = "";
    }
    if( Menus.shadowEl != null ) {
	document.body.removeChild( Menus.shadowEl );
    }
    Menus.hider = null;
    Menus.srcElement = null;
    Menus.activeElement = null;
}

