(function(D){D.fn.__bind__=D.fn.bind;D.fn.__unbind__=D.fn.unbind;D.fn.__find__=D.fn.find;var C={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(B,G,A){var H={};H[B]={};H[B][G]={cb:A,disableInInput:false};return H}};if(D.browser.mozilla){C.specialKeys=D.extend(C.specialKeys,{96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"})}D.fn.find=function(A){this.query=A;return D.fn.__find__.apply(this,arguments)};D.fn.unbind=function(A,J,B){if(D.isFunction(J)){B=J;J=null}if(J&&typeof J==="string"){var I=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();var K=A.split(" ");for(var L=0;L<K.length;L++){delete C.triggersMap[I][K[L]][J]}}return this.__unbind__(A,B)};D.fn.bind=function(S,W,R){var U=S.match(C.override);if(D.isFunction(W)||!U){return this.__bind__(S,W,R)}else{var O=null,T=D.trim(S.replace(C.override,""));if(T){O=this.__bind__(T,W,R)}if(typeof W==="string"){W={combi:W}}if(W.combi){for(var P=0;P<U.length;P++){var A=U[P];var V=W.combi.toLowerCase(),X=C.newTrigger(A,V,R),Q=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();X[A][V].disableInInput=W.disableInInput;if(!C.triggersMap[Q]){C.triggersMap[Q]=X}else{if(!C.triggersMap[Q][A]){C.triggersMap[Q][A]=X[A]}}var B=C.triggersMap[Q][A][V];if(!B){C.triggersMap[Q][A][V]=[X[A][V]]}else{if(B.constructor!==Array){C.triggersMap[Q][A][V]=[B]}else{C.triggersMap[Q][A][V][B.length]=X[A][V]}}this.each(function(){var E=D(this);if(E.attr("hkId")&&E.attr("hkId")!==Q){Q=E.attr("hkId")+";"+Q}E.attr("hkId",Q)});O=this.__bind__(U.join(" "),W,C.handler)}}return O}};C.findElement=function(A){if(!D(A).attr("hkId")){if(D.browser.opera||D.browser.safari){while(!D(A).attr("hkId")&&A.parentNode){A=A.parentNode}}}return A};C.handler=function(h){var X=C.findElement(h.currentTarget),d=D(X),A=d.attr("hkId");if(A){A=A.split(";");var f=h.which,V=h.type,W=C.specialKeys[f],Y=!W&&String.fromCharCode(f).toLowerCase(),e=h.shiftKey,B=h.ctrlKey,Z=h.altKey||h.originalEvent.altKey,g=null;for(var U=0;U<A.length;U++){if(C.triggersMap[A[U]][V]){g=C.triggersMap[A[U]][V];break}}if(g){var c;if(!e&&!B&&!Z){c=g[W]||(Y&&g[Y])}else{var a="";if(Z){a+="alt+"}if(B){a+="ctrl+"}if(e){a+="shift+"}c=g[a+W];if(!c){if(Y){c=g[a+Y]||g[a+C.shiftNums[Y]]||(a==="shift+"&&g[C.shiftNums[Y]])}}}if(c){var T=false;for(var U=0;U<c.length;U++){if(c[U].disableInInput){var b=D(h.target);if(d.is("input")||d.is("textarea")||b.is("input")||b.is("textarea")){return true}}T=T||c[U].cb.apply(this,[h])}return T}}}};window.hotkeys=C;return D})(jQuery);