var timeout    = 500;
var closetimer = 0;
var cgpmenuitem = 0;

function cgpmenu_open() {
    cgpmenu_canceltimer();
    cgpmenu_close();
    cgpmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function cgpmenu_close() {
    if (cgpmenuitem) cgpmenuitem.css('visibility', 'hidden');
}

function cgpmenu_timer() {
    closetimer = window.setTimeout(cgpmenu_close, timeout);
}

function cgpmenu_canceltimer() {
    if(closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}

$(document).ready(
    function() {
        $('#cgpmenu > li').bind('mouseover', cgpmenu_open)
        $('#cgpmenu > li').bind('mouseout',  cgpmenu_timer)
    }
);

document.onclick = cgpmenu_close;
