Hola, abuenog.
Eso ocurre porque te está dando la posición con respecto al elemento padre. Tendrías que ir sumando las posiciones de los "parientes". A ver si esta función te ayuda:
Código PHP:
function posicion() {
elem=document.getElementById('im');
arriba=elem.offsetTop;
while (elem.parentNode.nodeType==1) {
elem=elem.parentNode;
arriba+=elem.offsetTop;
}
alert(arriba);
}
Solo he podido probarlo en IE 6.0, si tú o algún otro la prueba en otros navegadores me gustaría saber que tal ha funcionado (si es que ha funcionado)
Saludos,