VI in JavaScript - yes, you read that right. VI. In JavaScript. In the web browser. The pain!