// <![CDATA[

var openmenus = new Array();

function NavMenu(menurootid) {
    this.rootnode = document.getElementById(menurootid); 
    this.init();
}

NavMenu.prototype.init = function() {
    var childnodes = this.rootnode.getElementsByTagName("A");
    var rootnode = this.rootnode;
    for ( var i = 0; i < childnodes.length; i++ ) {
        var child = childnodes[i];
        addEvent(childnodes[i].parentNode,'mouseover',function(ev) {
            evtarget = getEventTarget(ev);
            var submenu = getNextElementSibling(evtarget);
            var lastseleted = evtarget;
           
            
            if (submenu) {
            var level = submenu.id.replace(/navmenu/,"");
            if ( openmenus[level] ) {
                for ( i = openmenus.length-1; i >= level ; i-- ) {
                    openmenus[i].className="";
                    smenu = getNextElementSibling(openmenus[i]);
                    smenu.className = "navmenuhidden";
                    openmenus[i] = null;
                }
            }
                openmenus[level] = evtarget;
                openmenus[level].className="selected";
                 submenu.className="navmenu";
                if ( ! submenu.style ) submenu.style = new Object();
                submenu.style.left = evtarget.offsetLeft + "px";
                var wstr = submenu.offsetWidth + "px";
                
                for ( var i = 0; i < submenu.childNodes.length; i++ ) {
                    if ( submenu.childNodes[i].firstChild ) {
                       if ( ! submenu.childNodes[i].firstChild.style.width ) {
                           submenu.childNodes[i].firstChild.style.width = wstr;
                       }
                    }
                }

                var safetargets = rootnode.getElementsByTagName("a");
                safetargets += rootnode.getElementsByTagName("ul");

                var body = document.getElementsByTagName("BODY")[0];
                addEvent(body,'mouseover',function(ev) {
                    var tg = getEventTarget(ev);
                    var found = false;
                    for ( var j = 0; j < safetargets; j++ ) {
                        if ( tg = safetargets[j] ) {
                            found = true;
                        }
                    }

                    if ( ! found ) {
                        for ( var i = openmenus.length-1; i > 0 ; i-- ) {
                            openmenus[i].className="";
                            smenu = getNextElementSibling(openmenus[i]);
                            smenu.className="navmenuhidden";
                        }
                        openmenus = new Array();

                        removeEvent(body,'mouseover',arguments.callee);
                    }
                });
            }
        });
    }
}


// ]]>
