docs: function VKI_mouseEvents(elem) {
      if (elem.nodeName == "TD") {
        if (!elem.click) elem.click = function() {
          var evt = this.ownerDocument.createEvent('MouseEvents');
          evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
          this.dispatchEvent(evt);
        };
        elem.VKI_clickless = 0;
        VKI_addListener(elem, 'dblclick', function() { return false; }, false);
      }
      VKI_addListener(elem, 'mouseover', function() {
        if (this.nodeName == "TD" && self.VKI_clickless) {
          var _self = this;
          clearTimeout(this.VKI_clickless);
          this.VKI_clickless = setTimeout(function() { _self.click(); }, self.VKI_clickless);
        }
        if (self.VKI_isIE) this.className += " hover";
      }, false);
      VKI_addListener(elem, 'mouseout', function() {
        if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
        if (self.VKI_isIE) this.className = this.className.replace(/ ?(hover|pressed) ?/g, "");
      }, false);
      VKI_addListener(elem, 'mousedown', function() {
        if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
        if (self.VKI_isIE) this.className += " pressed";
      }, false);
      VKI_addListener(elem, 'mouseup', function() {
        if (this.nodeName == "TD") clearTimeout(this.VKI_clickless);
        if (self.VKI_isIE) this.className = this.className.replace(/ ?pressed ?/g, "");
      }, false);
    }