function menuDo(id,m,s) {
    var o = document.getElementById(id).getElementsByTagName(m);

    posMenu(id,m);

    for (var i=0; i<o.length; i++) {
        var a = o[i].getElementsByTagName('a');

        a[0].style.display = 'inline';
        a[0].style.width = o[i].offsetWidth + 'px';
        a[0].style.display = 'block';

        o[i].style.visibility = 'visible';
        o[i].setAttribute('onmouseover','menuShow(this,\'' + s + '\');');
        o[i].setAttribute('onmouseout','menuHide(this,\'' + s + '\')');
    }

    ie6(id);
}

function menuShow(o,s) {
    o = o.getElementsByTagName(s);

    for (i=0; i<o.length; i++) {
        o[i].style.display = 'inline';
    }
}

function menuHide(o,s) {
    o = o.getElementsByTagName(s);

    for (i=0; i<o.length; i++) {
        o[i].style.display = 'none';
    }
}

function posMenu(id,m) {
    var o = document.getElementById(id).getElementsByTagName(m);

    for (var i=0; i<o.length; i++) {
        o[i].style.position = 'static';
    }
    
    for (var i=0; i<o.length; i++) {
        var offset = findPos(o[i]);

        o[i].style.left = offset[0] + 'px';
        o[i].style.top = offset[1] + 'px';
    }

    for (var i=0; i<o.length; i++) {
        o[i].style.position = 'absolute';
    }
}

function findPos(o) {
    var curleft = curtop = 0;

    if (o.offsetParent) {
        do {
            curleft += o.offsetLeft;
            curtop += o.offsetTop;
        } while (o = o.offsetParent);

        return [curleft,curtop];
    }
}

function ie6(id) {
    /*
     * Contorna problema com IE6
     *
     * O evento `onmouseover` não funciona quando uma função com parâmetros é
     * definida através de `setAttribute`.
     */
    o = document.getElementById(id);
    o.innerHTML = o.innerHTML;
}

