Hallo,
also, nach einem ersten (zugegebenermaßen flüchtigen) Blick scheint mir die rekursive Funktion getX() ebenso wie getY() soweit OK zu sein.
Problematisch sind auf jeden Fall diese Zeilen:
document.getElementById(id+"_div").style.top = y;
document.getElementById(id+"_div").style.left=(x-120);
Da solltest Du schreiben:
document.getElementById(id+"_div").style.top = y + 'px';
document.getElementById(id+"_div").style.left=(x-120) + 'px';
Evtl. hilft auch noch:
x = parseInr(el.offsetLeft);
und
y = parseInt(el.offsetTop);
Ein Surftipp noch zum Thema: http://www.quirksmode.org/js/findpos.html
Ciao,
Andreas