docs: function (event) {
          //event = $.event.fix(event); // jQuery event normalization.
          var element = this;//event.target;
          // @ TextNode -> nodeType == 3
          element = (element.nodeType == 3) ? element.parentNode : element;
  
          if (opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
              var target = element;//$(element);
              if (target.tagName == "INPUT" || target.tagName == "TEXTAREA") {
                  return;
              }
          }
          var code = event.which,
              type = event.type,
              character = String.fromCharCode(code).toLowerCase(),
              special = that.special_keys[code],
              shift = event.shiftKey,
              ctrl = event.ctrlKey,
              alt = event.altKey,
              propagate = true, // default behaivour
              mapPoint = null;
  
          // in opera + safari, the event.target is unpredictable.
          // for example: 'keydown' might be associated with HtmlBodyElement
          // or the element where you last clicked with your mouse.
          if (opt.checkParent) {
  //              while (!that.all[element] && element.parentNode){
              while (!element['hotkeys'] && element.parentNode) {
                  element = element.parentNode;
              }
          }
  
  //          var cbMap = that.all[element].events[type].callbackMap;
          var cbMap = element['hotkeys'].events[type].callbackMap;
          if (!shift && !ctrl && !alt) { // No Modifiers
              mapPoint = cbMap[special] || cbMap[character];
          }
          // deals with combinaitons (alt|ctrl|shift+anything)
          else {
              var modif = '';
              if (alt) modif += 'alt+';
              if (ctrl) modif += 'ctrl+';
              if (shift) modif += 'shift+';
              // modifiers + special keys or modifiers + characters or modifiers + shift characters
              mapPoint = cbMap[modif + special] || cbMap[modif + character] || cbMap[modif + that.shift_nums[character]];
          }
          if (mapPoint) {
              mapPoint.cb(event);
              if (!mapPoint.propagate) {
                  event.stopPropagation();
                  event.preventDefault();
                  return false;
              }
          }
      }