recursively checks every parent of the element to get the ABSOLUTE offset of the element.
call it like this:
Why not both in one function?
Anyway, the offset method is not very precise in some browsers (especially in Quirks mode). A better way to go (if available) is to use getBoundingClientRect, though this results in relative positions to the visible browser window.
it would be a much simpler syntax but the code would be longer...