// keymaster.js // (c) 2011-2013 Thomas Fuchs // keymaster.js may be freely distributed under the MIT license. !function(a){function j(a,b){for(var c=a.length;c--;)if(a[c]===b)return c;return-1}function k(a,b){if(a.length!=b.length)return!1;for(var c=0;c0;for(g in d)(!d[g]&&j(e.mods,+g)>-1||d[g]&&-1==j(e.mods,+g))&&(k=!1);(0!=e.mods.length||d[16]||d[18]||d[17]||d[91])&&!k||e.method(a,e)===!1&&(a.preventDefault?a.preventDefault():a.returnValue=!1,a.stopPropagation&&a.stopPropagation(),a.cancelBubble&&(a.cancelBubble=!0))}}function o(a){var c,b=a.keyCode,e=j(i,b);if(e>=0&&i.splice(e,1),(93==b||224==b)&&(b=91),b in d){d[b]=!1;for(c in f)f[c]==b&&(q[c]=!1)}}function p(){for(b in d)d[b]=!1;for(b in f)q[b]=!1}function q(a,b,d){var e,f;e=y(a),void 0===d&&(d=b,b="all");for(var g=0;g1&&(f=z(a),a=[a[a.length-1]]),a=a[0],a=h(a),a in c||(c[a]=[]),c[a].push({shortcut:e[g],scope:b,method:d,key:e[g],mods:f})}function r(a,b){var d,e,g,i,j,f=[];for(d=y(a),i=0;i1&&(f=z(e),a=e[e.length-1]),a=h(a),void 0===b&&(b=w()),!c[a])return;for(g in c[a])j=c[a][g],j.scope===b&&k(j.mods,f)&&(c[a][g]={})}}function s(a){return"string"==typeof a&&(a=h(a)),-1!=j(i,a)}function t(){return i.slice(0)}function u(a){var b=(a.target||a.srcElement).tagName;return!("INPUT"==b||"SELECT"==b||"TEXTAREA"==b)}function v(a){e=a||"all"}function w(){return e||"all"}function x(a){var b,d,e;for(b in c)for(d=c[b],e=0;eb;b++)g["f"+b]=111+b;var l={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey"};for(b in f)q[b]=!1;A(document,"keydown",function(a){n(a)}),A(document,"keyup",o),A(window,"focus",p);var B=a.key;a.key=q,a.key.setScope=v,a.key.getScope=w,a.key.deleteScope=x,a.key.filter=u,a.key.isPressed=s,a.key.getPressedKeyCodes=t,a.key.noConflict=C,a.key.unbind=r,"undefined"!=typeof module&&(module.exports=key)}(this);