﻿var $= document.getElementById;

function Link_MouseOver()
{
    ShowSubMenu( this );
}
function Box_MouseOver()
{//alert(this+'  a  '+this.nodeName+' b '+this.LinkRef +'  c  '+this.LinkRef.nodeName );
    if( this && this.LinkRef ) {
        ShowSubMenu( this.LinkRef );
    }    
}
function Box_MouseOut()
{
    var e = event.toElement;
    for(var i=0; i<6; i++){
        if( e==this ) return;
        e = e.parentNode;
        if( !e ) break;
    }
    if( this && this.LinkRef ){
        var link =  this.LinkRef;
        link.Dalay = setTimeout( DelayHiddenSubMenu.bind(link), 250 );
    }
}
function Link_MouseOut()
{
    var link = this;
    if( link && link.BoxRef && link.MenuList && link.MenuList.Now ) {
        link.Dalay = setTimeout( DelayHiddenSubMenu.bind(link), 250 );
    }
}

function ShowSubMenu( link )
{
    if( link && link.BoxRef && link.MenuList ) {
        if( link.MenuList.Now ){
            _ClearDalay( link.MenuList.Now );
            link.MenuList.Now.BoxRef.style.display = 'none';
        }
        _ClearDalay( link );
        link.BoxRef.style.display = 'block';
        link.MenuList.Now = link;
    }    
}
function _ClearDalay( link )
{
    if( link && link.Dalay ) {
        clearTimeout( link.Dalay );
        link.Dalay = null;
    }
}

function DelayHiddenSubMenu( link )
{
    link = this;
    if( link && link.MenuList.Now ){
        link.MenuList.Now.BoxRef.style.display = 'none';
        link.MenuList.Now = null;
        clearTimeout( link.Dalay );
    }
}

function LoadMenuList( elem )
{
    if( !elem || !elem.firstChild || elem.firstChild.nodeName!='UL' ) return;
    
    var UL = elem.firstChild;    
    var links = UL.getElementsByTagName('A');
    if( !links || links.length<1 ) return;
    
    var MenuList = { Now:null };
    for( var i=0; i<links.length; i++ ){
        var link = links[i];
        if( link && link.className && link.className!='none' ){
            var box = $(link.className);
            if( box ){
                link.Dalay = null;
                link.BoxRef = box;
                box.LinkRef = link;                
                link.MenuList = MenuList;
                
                link.onmouseover =  Link_MouseOver;
                link.onmouseout = Link_MouseOut;
                box.onmouseover = Box_MouseOver;
                box.onmouseout = Box_MouseOut;
                
                LoadMenuList( box );
            }
        }
    }
}


(function InitMenu()
{
    LoadMenuList( $('navmenu') );
})();
