It appears that there is a containing element between the "Ice White" image and the body (specifically, Firebug identifies it as the <a class="popup1" ... >
) which is relatively positioned. This means that your 50% calculation is relative to that specific element rather than the entire page.
This may seem counterintuitive - why should it be relative to a parent element if the popup itself uses absolute positioning? The reason lies in how relative positioning functions in relation to the normal flow of the document, whereas absolute positioning removes the element from that flow. For further information, refer to sections 9.4.3 and 9.6 of the W3C's visual formatting model explanation.
If you're finding this issue challenging, consider checking out tutorials such as "Learn CSS Positioning in Ten Steps" or css-tricks.com's article on "Absolute Positioning Inside Relative Positioning." As for addressing this problem, while you could try moving the popups outside of the relatively positioned parent as mblaze75 suggests, it seems like the <a>
element is triggering your JavaScript event, making this solution impractical. Instead, experiment with removing the relative positioning and using margins instead.
Additionally, keep in mind Greg Agnew's point about centering the left edge rather than the center of your popup. duri's answer might provide a solution for that aspect of the issue.