$(document).ready(function(){
    var timeout = 1000;
    var closetimer = 0;
    var ddmenuitem = 0;
    
    function jsddm_open(){
        jsddm_canceltimer();
        jsddm_close();

        var offset = $(this).offset();
        var height = $(this).outerHeight();
        ddmenuitem = $(this).find('div.main-submenu:first').clone(true);
        
        $('body').append(ddmenuitem);
        ddmenuitem.data('object', $(this));
        ddmenuitem.css({
            'position': 'absolute',
            'top': (offset.top + height + 5) + 'px',
            'left': offset.left + 'px',
            'visibility': 'visible',
            'z-index': 10
        });

        ddmenuitem.bind('mousemove', function(){
            jsddm_canceltimer();
            jsddm_timer();
        });

        $(this).addClass('active');
    }

    function jsddm_close(){  
        if(ddmenuitem){
            if(ddmenuitem.data('object'))
                ddmenuitem.data('object').removeClass('active');
            ddmenuitem.remove();
        }
    }

    function jsddm_timer(){
        closetimer = window.setTimeout(jsddm_close, timeout);
    }

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

    $('.menu-item').bind('mouseover', jsddm_open)
    $('.menu-item').bind('mouseout',  jsddm_timer);

    document.onclick = jsddm_close;
});
