$(document).ready(function(){
        var parentIdTop = '';
    $('.top-menu li.selected').each(function(){
        var idText = ($(this).attr('id')).split('-');
        parentIdTop = $(this).parents('li.level-1:first').attr('id');
//        var id = $(this).attr('id');
        var id = idText[1];
        $('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');
        $('.top-menu li[id='+parentIdTop+']').addClass('selected');
        
    });
    
    
    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');
        });
    });
    
});

var manageDuplicateMenu = {
    find: function (firstSubMenu, element){
        var liChildren = firstSubMenu.children('li');

        liChildren.each(function(){
            var childId = $(this).attr('id');
            var elemLiChildren = element.children('li');
            elemLiChildren.each(function(){
                var currentElemId = $(this).attr('id');
                if (childId == currentElemId)
                {
                    $(this).children('ul').prepend($('#' + childId).children('ul').html());
                    $('#' + childId).remove();
                }
            });

        });
    },
    init: function (menu)
    {
        var nbSubMenu = $('ul[id^=ul_' + menu + ']').length;
        if(nbSubMenu > 1)
        {
            var index = 0;
            var firstSubMenu = $();
            firstSubMenu = $('ul[id^=ul_' + menu + ']').first();
            firstSubMenu.removeClass('hidden');

            $('ul[id^=ul_' + menu + ']').each(function(){
                if(index > 0)
                {
                    manageDuplicateMenu.find(firstSubMenu, $(this))
                    firstSubMenu.append($(this).html());
                    $(this).remove();
                }
                else

                index++;
            });
        }
    }
}
