$(document).ready(function(){
                            
    $('.top-menu li.selected').each(function(){
        var id = $(this).attr('id');
        $('ul[id^=ul_submenu] li[id='+id+']').addClass('selected');
    });

    $('ul[id^=ul_submenu] li.selected').each(function(){
        var child_ul = $(this).children('ul:first');
        
        if( !child_ul.hasClass('open') )
            child_ul.addClass('open'); 
    
        $(this).parents('li').each(function(){
            var current_li = $(this);
            if( !current_li.hasClass('open_li') )
                current_li.addClass('open_li');
        });
        
        $(this).parents('ul').each(function(){
            var current_ul = $(this);
            if( !current_ul.hasClass('open') )
                current_ul.addClass('open');
        });
        
        var parentid = $(this).parents('li.level-1:first').attr('id');
        $('ul[id^=ul_submenu] li[id='+parentid+']').addClass('selected');
        $('.top-menu li[id='+parentid+']').addClass('selected 4');
        $('.top-menu li[id='+parentid+'-b]').addClass('selected 4');
        $('.top-menu li[id='+parentid+'-a]').addClass('selected 4');
    });
    
    
    var is_selected = true;
    var menu_timeout;        
    $('ul[id^=ul_top-menu] > li a').not("ul[id^=ul_top-menu] li ul a").each(function()
    {            
        $(this).next('ul').css('visibility', 'hidden');
                    
        $(this).mouseenter(function()
        {                
            next_ul = $(this).next('ul').css('visibility', 'visible');
            
            next_ul.mouseenter(function()
            {         
                $(this).css('visibility', 'visible');
                
                if( !$(this).parents('li').hasClass('selected') )
                {
                    $(this).parents('li').addClass('selected');
                    is_selected = false;        
                }
            });
            
            next_ul.mouseleave(function()
            {                        
                $(this).css('visibility', 'hidden');
                
                if( is_selected == false )
                {
                    is_selected = true;
                    $(this).parents('li').removeClass('selected');
                }                    
            });
        });
                  
        $(this).mouseleave(function()
        {                                                                                                                                                                                                                                                                   
            next_ul = $(this).next('ul').css('visibility', 'hidden');
        });
    });
    
});
