I’m trying to build a puzzle game in javascript, using raphael to take care of the drag and drop and rotation of the pieces.
The problem I’m facing is: Whenever I rotate an image, its coordinate system is rotated as well and the drag and drop doesn’t work anymore as expected.
Edit2: Here is a simple test case. Drag around the ellipse, rotate it, and then try to drag again:
http://www.tiagoserafim.com/tests/dragdrop.html
Edit: To clarify, whenever I move 1 pixel with the mouse to the right (x++), the image also moves 1 pixel on the x-coord, but on its own coordinate system, that maybe rotate, as the image below shows.

(source: oreilly.com)
As explained on SVG Essentials, this is the expected behavior.
My question is: Is there an elegant way to do what I want, or I’ll be forced to manually calculate the correct coords by using rotation matrix?
Other JS libraries or suggestions will be very welcome, even if they mean losing the IE support.
As also noted in that article, the order of transformations is important.
Also note that there is an overload of rotate that already does this.