var states = new Array();
var x;
$(document).ready(function() {
    $('li.catmenu_subs').each(function() {
        states[$(this).attr('id')] = new Array();
        states[$(this).attr('id')]['m_o'] = false;
        states[$(this).attr('id')]['state'] = "closed";
        states[$(this).attr('id')]['this'] = $(this);
    });
    $('li.catmenu_subs').mouseover(function() {
        states[$(this).attr('id')]['m_o'] = true;
    });
    $('li.catmenu_subs').mouseout(function() {
        states[$(this).attr('id')]['m_o'] = false;
    });
    handle_menu();
});

function handle_menu() {
    for(x in states) {
        if(states[x]['m_o'] === true && states[x]['state'] == "closed") {
            open_menu(x);
        } else if(states[x]['m_o'] === false && states[x]['state'] == "open") {
            close_menu(x);
        }
    }
   setTimeout(function() { handle_menu(); }, 100);
}

function open_menu(n) {
    states[n]['state'] = "animate";
    states[n]['this'].children('ul').addClass('sub_menu_down').slideDown(1000, function() {
        states[n]['state'] = "open";
    });
}

function close_menu(n) {
    states[n]['state'] = "animate";
    states[n]['this'].children('ul').slideUp(1000, function() {
        states[n]['this'].removeClass('sub_menu_down');
        states[n]['state'] = "closed";
    });
}
