Interesting. I've actually been planning on implementing something like this, but if it's client side and reasonable fast, I might just take advantage of it.
Edit: That looks pretty bullet-proof, after playing with it a bit. I'll give it some more testing and see what kind (if any) bugs would result in doing this.