(function(b){b.fn.__bind__=b.fn.bind;b.fn.__unbind__=b.fn.unbind;b.fn.__find__=b.fn.find;var a={version:"0.7.8",override:/keydown|keypress|keyup/g,triggersMap:{},specialKeys:{27:"esc",9:"tab",32:"space",13:"return",8:"backspace",145:"scroll",20:"capslock",144:"numlock",19:"pause",45:"insert",36:"home",46:"del",35:"end",33:"pageup",34:"pagedown",37:"left",38:"up",39:"right",40:"down",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"},newTrigger:function(d,e,c){var f={};f[d]={};f[d][e]={cb:c,disableInInput:false};return f}};if(b.browser.mozilla){a.specialKeys=b.extend(a.specialKeys,{96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"})}b.fn.find=function(c){this.query=c;return b.fn.__find__.apply(this,arguments)};b.fn.unbind=function(c,f,d){if(b.isFunction(f)){d=f;f=null}if(f&&typeof f==="string"){var e=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();var g=c.split(" ");for(var h=0;h<g.length;h++){delete a.triggersMap[e][g[h]][f]}}return this.__unbind__(c,d)};b.fn.bind=function(i,m,h){var k=i.match(a.override);if(b.isFunction(m)||!k){return this.__bind__(i,m,h)}else{var e=null,j=b.trim(i.replace(a.override,""));if(j){e=this.__bind__(j,m,h)}if(typeof m==="string"){m={combi:m}}if(m.combi){for(var f=0;f<k.length;f++){var c=k[f];var l=m.combi.toLowerCase(),n=a.newTrigger(c,l,h),g=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();n[c][l].disableInInput=m.disableInInput;if(!a.triggersMap[g]){a.triggersMap[g]=n}else{if(!a.triggersMap[g][c]){a.triggersMap[g][c]=n[c]}}var d=a.triggersMap[g][c][l];if(!d){a.triggersMap[g][c][l]=[n[c][l]]}else{if(d.constructor!==Array){a.triggersMap[g][c][l]=[d]}else{a.triggersMap[g][c][l][d.length]=n[c][l]}}this.each(function(){var o=b(this);if(o.attr("hkId")&&o.attr("hkId")!==g){g=o.attr("hkId")+";"+g}o.attr("hkId",g)});e=this.__bind__(k.join(" "),m,a.handler)}}return e}};a.findElement=function(c){if(!b(c).attr("hkId")){if(b.browser.opera||b.browser.safari){while(!b(c).attr("hkId")&&c.parentNode){c=c.parentNode}}}return c};a.handler=function(s){var i=a.findElement(s.currentTarget),o=b(i),c=o.attr("hkId");if(c){c=c.split(";");var q=s.which,g=s.type,h=a.specialKeys[q],j=!h&&String.fromCharCode(q).toLowerCase(),p=s.shiftKey,d=s.ctrlKey,k=s.altKey||s.originalEvent.altKey,r=null;for(var f=0;f<c.length;f++){if(a.triggersMap[c[f]][g]){r=a.triggersMap[c[f]][g];break}}if(r){var n;if(!p&&!d&&!k){n=r[h]||(j&&r[j])}else{var l="";if(k){l+="alt+"}if(d){l+="ctrl+"}if(p){l+="shift+"}n=r[l+h];if(!n){if(j){n=r[l+j]||r[l+a.shiftNums[j]]||(l==="shift+"&&r[a.shiftNums[j]])}}}if(n){var e=false;for(var f=0;f<n.length;f++){if(n[f].disableInInput){var m=b(s.target);if(o.is("input")||o.is("textarea")||m.is("input")||m.is("textarea")){return true}}e=e||n[f].cb.apply(this,[s])}return e}}}};window.hotkeys=a;return b})(jQuery);
