document.observe('dom:loaded', function() {
    var activeFolder = [];
    $('menu-1').select('li.firstLvl').each(function(elem) {
        var timeoutHide        = null;     
        var timeoutShow        = null;
        var status             = 'hide';            
        
        if (elem.hasClassName('active')) {
            activeFolder.push(elem);
        }

        elem.observe('mouseover', function(event, element) {
            clearTimeout(timeoutHide);
            if (status != 'show') {   
                timeoutShow = setTimeout(function() {
                    if (activeFolder.length > 0) {
                        for (var i = 0; i < activeFolder.length; i++) {
                            activeFolder[i].removeClassName('active');
                        }
                    }
                    element.addClassName('hover');

                    var searchArr = $(element).getElementsBySelector('ul.protoMenuSubItem');
                    if (searchArr[0]) {
                        $(searchArr[0]).setOpacity(0.0);
                        new Effect.Opacity($(searchArr[0]).identify(), { from: 0.0, to: 1.0, duration: 0.5 });
                    }

                    status = 'show';
                }, 200);
            }
        }.bindAsEventListener(this, elem));

        elem.observe('mouseout', function(event, element) {
            clearTimeout(timeoutShow);
            if (status != 'hide') {   
                timeoutHide = setTimeout(function() {                    
                    element.removeClassName('hover');
                    if (activeFolder.length > 0) {
                        for (var i = 0; i < activeFolder.length; i++) {
                            activeFolder[i].addClassName('active');
                        }
                    }
                    status = 'hide';                    
                }, 200);
            }
        }.bindAsEventListener(this, elem));
    });
});
