Interesting, but when I saw the two regions I immediately wanted to drag an object from one region directly to the other, rather than out the bottom of one into the top of the other. The wormhole seems interesting for cases similar to the stated use case (scheduling across day boundaries), but for the common case of moving items between different regions, some mechanism for dragging directly between the two regions would make the interaction more smooth.
When I drag the red rectangle around in the left container, bits of it sometimes get "stuck" in the right container. I'm doing this in Chrome 11.0.696.71 on Ubuntu 10.04, if that helps.
Just judging by the symptoms without looking at the code, I'd say that perhaps you're only animating the secondary rectangle that mimics the first one when the primary rectangle intersects with the wormhole's edge.
When we move the first rectangle too fast towards the top, some of the events might get missed and the corresponding rectangle doesn't _exactly_ mimic the first one. As no more events are fired, it gets stuck.
You might want to introduce some sort of sanity check for when a rectangle exits the wormhole.
I was perplexed by the new method's name: isWormHole
To me, and I think everyone else who regularly uses OOP, method names are meant to be verbs -- this would be a predicate, testing whether or not the object is a wormhole.
Cool. Would be nice to be able to specify the edges that "connect" between the two containers... would definitely be useful in either education apps or a more visual way to do multi selection+order lists (aka List Builder).