var timer = null;
var sub = null;

function menuEnter() {
	window.clearTimeout(timer);
}

function menuLeave() {
    timer = window.setTimeout( hideSub, 500 );
}

function hideSub() {
    if( !sub ) {
        // kein menü zum schließen
        return;
    }

    sub.style.visibility = "hidden";
}

function getPosition( element ){
    var el = element, left = 0, top = 0;
    do {
        left += el.offsetLeft || 0;
        top  += el.offsetTop || 0;
        el = el.offsetParent;
    } while (el);
    return {'x': left, 'y': top};
}

function showSub( id, element ) {
    hideSub();

    sub = document.getElementById(id);
    if( !sub ) {
        return;
    }

    var aPosition = getPosition( element );

    sub.style.visibility = "visible";
    sub.style.left = (aPosition.x + element.offsetWidth + 2) + "px";
    sub.style.top  = aPosition.y + "px";

    menuEnter();
}
