-}
-
-function MIM_add_event_listener (target, type, listener)
-{
- if (target.addEventListener)
- target.addEventListener (type, listener, false);
- else if (target.attachEvent)
- target.attachEvent ('on' + type,
- function() { listener.call (target, window.event); });
- else
- target['on' + type]
- = function(e) { listener.call (target, e || window.event); };
-}
-
-var MIM_key = new Array ();
-MIM_key[0x09] = 'tab';
-MIM_key[0x08] = 'backspace';
-MIM_key[0x0D] = 'return';
-MIM_key[0x1B] = 'escape';
-MIM_key[0x20] = 'space';
-MIM_key[0x21] = 'pageup';
-MIM_key[0x22] = 'pagedown';
-MIM_key[0x23] = 'end';
-MIM_key[0x24] = 'home';
-MIM_key[0x25] = 'left';
-MIM_key[0x26] = 'up';
-MIM_key[0x27] = 'right';
-MIM_key[0x28] = 'down';
-MIM_key[0x2D] = 'insert';
-MIM_key[0x2E] = 'delete';
-for (var i = 1; i <= 12; i++)
- MIM_key[111 + i] = "f" + i;
-MIM_key[0x90] = "numlock";
-MIM_key[0xF0] = "capslock";
-
-function MIM_decode_key (event)
+};
+
+MIM.add_event_listener
+ = (window.addEventListener
+ ? function (target, type, listener) {
+ target.addEventListener (type, listener, false);
+ }
+ : window.attachEvent
+ ? function (target, type, listener) {
+ target.attachEvent ('on' + type,
+ function() {
+ listener.call (target, window.event);
+ });
+ }
+ : function (target, type, listener) {
+ target['on' + type]
+ = function (e) { listener.call (target, e || window.event); };
+ });
+
+(function () {
+ var keys = new Array ();
+ keys[0x09] = 'tab';
+ keys[0x08] = 'backspace';
+ keys[0x0D] = 'return';
+ keys[0x1B] = 'escape';
+ keys[0x20] = 'space';
+ keys[0x21] = 'pageup';
+ keys[0x22] = 'pagedown';
+ keys[0x23] = 'end';
+ keys[0x24] = 'home';
+ keys[0x25] = 'left';
+ keys[0x26] = 'up';
+ keys[0x27] = 'right';
+ keys[0x28] = 'down';
+ keys[0x2D] = 'insert';
+ keys[0x2E] = 'delete';
+ for (var i = 1; i <= 12; i++)
+ keys[111 + i] = "f" + i;
+ keys[0x90] = "numlock";
+ keys[0xF0] = "capslock";
+ MIM.special_key = keys;
+}) ();
+
+MIM.decode_key = function (event)