(function(l){this.version='(beta)(0.0.3)';this.all={};this.special_keys={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'};this.shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"};this.add=function(g,h,i){if(l.isFunction(h)){i=h;h={}}var j={},defaults={type:'keydown',propagate:false,disableInInput:false,target:l('html')[0]},that=this;j=l.extend(j,defaults,h||{});g=g.toLowerCase();var k=function(a){a=l.event.fix(a);var b=a.target;b=(b.nodeType==3)?b.parentNode:b;if(j['disableInInput']){var c=l(b);if(c.is("input")||c.is("textarea")){return}}var d=a.which,type=a.type,character=String.fromCharCode(d).toLowerCase(),special=that.special_keys[d],shift=a.shiftKey,ctrl=a.ctrlKey,alt=a.altKey,propagate=true,mapPoint=null;if(l.browser.opera||l.browser.safari){while(!that.all[b]&&b.parentNode){b=b.parentNode}}var e=that.all[b].events[type].callbackMap;if(!shift&&!ctrl&&!alt){mapPoint=e[special]||e[character]}else{var f='';if(alt)f+='alt+';if(ctrl)f+='ctrl+';if(shift)f+='shift+';mapPoint=e[f+special]||e[f+character]||e[f+that.shift_nums[character]]}if(mapPoint){mapPoint.cb(a);if(!mapPoint.propagate){a.stopPropagation();a.preventDefault();return false}}};if(!this.all[j.target]){this.all[j.target]={events:{}}}if(!this.all[j.target].events[j.type]){this.all[j.target].events[j.type]={callbackMap:{}};l.event.add(j.target,j.type,k)}this.all[j.target].events[j.type].callbackMap[g]={cb:i,propagate:j.propagate};return l};this.remove=function(a,b){b=b||{};target=b.target||l('html')[0];type=b.type||'keydown';a=a.toLowerCase();delete this.all[target].events[type].callbackMap[a];return l};l.hotkeys=this;return l})(jQuery);