| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | 
							- /*jslint browser: true*/
 
- /*jslint jquery: true*/
 
- /*
 
-  * jQuery Hotkeys Plugin
 
-  * Copyright 2010, John Resig
 
-  * Dual licensed under the MIT or GPL Version 2 licenses.
 
-  *
 
-  * Based upon the plugin by Tzury Bar Yochay:
 
-  * http://github.com/tzuryby/hotkeys
 
-  *
 
-  * Original idea by:
 
-  * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
 
-  */
 
- /*
 
-  * One small change is: now keys are passed by object { keys: '...' }
 
-  * Might be useful, when you want to pass some other data to your handler
 
-  */
 
- (function(jQuery) {
 
-   jQuery.hotkeys = {
 
-     version: "0.8",
 
-     specialKeys: {
 
-       8: "backspace",
 
-       9: "tab",
 
-       10: "return",
 
-       13: "return",
 
-       16: "shift",
 
-       17: "ctrl",
 
-       18: "alt",
 
-       19: "pause",
 
-       20: "capslock",
 
-       27: "esc",
 
-       32: "space",
 
-       33: "pageup",
 
-       34: "pagedown",
 
-       35: "end",
 
-       36: "home",
 
-       37: "left",
 
-       38: "up",
 
-       39: "right",
 
-       40: "down",
 
-       45: "insert",
 
-       46: "del",
 
-       59: ";",
 
-       61: "=",
 
-       96: "0",
 
-       97: "1",
 
-       98: "2",
 
-       99: "3",
 
-       100: "4",
 
-       101: "5",
 
-       102: "6",
 
-       103: "7",
 
-       104: "8",
 
-       105: "9",
 
-       106: "*",
 
-       107: "+",
 
-       109: "-",
 
-       110: ".",
 
-       111: "/",
 
-       112: "f1",
 
-       113: "f2",
 
-       114: "f3",
 
-       115: "f4",
 
-       116: "f5",
 
-       117: "f6",
 
-       118: "f7",
 
-       119: "f8",
 
-       120: "f9",
 
-       121: "f10",
 
-       122: "f11",
 
-       123: "f12",
 
-       144: "numlock",
 
-       145: "scroll",
 
-       173: "-",
 
-       186: ";",
 
-       187: "=",
 
-       188: ",",
 
-       189: "-",
 
-       190: ".",
 
-       191: "/",
 
-       192: "`",
 
-       219: "[",
 
-       220: "\\",
 
-       221: "]",
 
-       222: "'"
 
-     },
 
-     shiftNums: {
 
-       "`": "~",
 
-       "1": "!",
 
-       "2": "@",
 
-       "3": "#",
 
-       "4": "$",
 
-       "5": "%",
 
-       "6": "^",
 
-       "7": "&",
 
-       "8": "*",
 
-       "9": "(",
 
-       "0": ")",
 
-       "-": "_",
 
-       "=": "+",
 
-       ";": ": ",
 
-       "'": "\"",
 
-       ",": "<",
 
-       ".": ">",
 
-       "/": "?",
 
-       "\\": "|"
 
-     },
 
-     // excludes: button, checkbox, file, hidden, image, password, radio, reset, search, submit, url
 
-     textAcceptingInputTypes: [
 
-       "text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime",
 
-       "datetime-local", "search", "color", "tel"],
 
-     options: {
 
-       filterTextInputs: true
 
-     }
 
-   };
 
-   function keyHandler(handleObj) {
 
-     if (typeof handleObj.data === "string") {
 
-       handleObj.data = {
 
-         keys: handleObj.data
 
-       };
 
-     }
 
-     // Only care when a possible input has been specified
 
-     if (!handleObj.data || !handleObj.data.keys || typeof handleObj.data.keys !== "string") {
 
-       return;
 
-     }
 
-     var origHandler = handleObj.handler,
 
-       keys = handleObj.data.keys.toLowerCase().split(" ");
 
-     handleObj.handler = function(event) {
 
-       //      Don't fire in text-accepting inputs that we didn't directly bind to
 
-       if (this !== event.target && (/textarea|select/i.test(event.target.nodeName) ||
 
-           (jQuery.hotkeys.options.filterTextInputs &&
 
-             jQuery.inArray(event.target.type, jQuery.hotkeys.textAcceptingInputTypes) > -1))) {
 
-         return;
 
-       }
 
-       var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[event.which],
 
-         character = String.fromCharCode(event.which).toLowerCase(),
 
-         modif = "",
 
-         possible = {};
 
-       jQuery.each(["alt", "ctrl", "shift"], function(index, specialKey) {
 
-         if (event[specialKey + 'Key'] && special !== specialKey) {
 
-           modif += specialKey + '+';
 
-         }
 
-       });
 
-       // metaKey is triggered off ctrlKey erronously
 
-       if (event.metaKey && !event.ctrlKey && special !== "meta") {
 
-         modif += "meta+";
 
-       }
 
-       if (event.metaKey && special !== "meta" && modif.indexOf("alt+ctrl+shift+") > -1) {
 
-         modif = modif.replace("alt+ctrl+shift+", "hyper+");
 
-       }
 
-       if (special) {
 
-         possible[modif + special] = true;
 
-       }
 
-       else {
 
-         possible[modif + character] = true;
 
-         possible[modif + jQuery.hotkeys.shiftNums[character]] = true;
 
-         // "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
 
-         if (modif === "shift+") {
 
-           possible[jQuery.hotkeys.shiftNums[character]] = true;
 
-         }
 
-       }
 
-       for (var i = 0, l = keys.length; i < l; i++) {
 
-         if (possible[keys[i]]) {
 
-           return origHandler.apply(this, arguments);
 
-         }
 
-       }
 
-     };
 
-   }
 
-   jQuery.each(["keydown", "keyup", "keypress"], function() {
 
-     jQuery.event.special[this] = {
 
-       add: keyHandler
 
-     };
 
-   });
 
- })(jQuery || this.jQuery || window.jQuery);
 
 
  |