/* * 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/ */(function(t){function e(e){var s=e.handler,a=(e.namespace||"").toLowerCase().split(" ");a=t.map(a,function(t){return t.split(".")}),(1!==a.length||""!==a[0]&&"autocomplete"!==a[0])&&(e.handler=function(e){if(this===e.target||!/textarea|select/i.test(e.target.nodeName)&&"text"!==e.target.type&&"true"!=i(e.target).prop("contenteditable")){var r="keypress"!==e.type&&t.hotkeys.specialKeys[e.which],n=String.fromCharCode(e.which).toLowerCase(),o="",l={};e.altKey&&"alt"!==r&&(o+="alt_"),e.ctrlKey&&"ctrl"!==r&&(o+="ctrl_"),e.metaKey&&!e.ctrlKey&&"meta"!==r&&(o+="meta_"),e.shiftKey&&"shift"!==r&&(o+="shift_"),r?l[o+r]=!0:(l[o+n]=!0,l[o+t.hotkeys.shiftNums[n]]=!0,"shift_"===o&&(l[t.hotkeys.shiftNums[n]]=!0));for(var c=0,d=a.length;d>c;c++)if(l[a[c]])return s.apply(this,arguments)}})}var i=t.noConflict();t.hotkeys={version:"0.8+",specialKeys:{8:"backspace",9:"tab",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",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",188:",",190:".",191:"/",224:"meta"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}},t.each(["keydown","keyup","keypress"],function(){t.event.special[this]={add:e}})})(jQuery);