function HotKeyEntry(fptr,keyCode,ctrlKey,altKey,shiftKey){this.fptr=fptr;this.keyCode=keyCode;this.ctrlKey=ctrlKey||false;this.altKey=altKey||false;this.shiftKey=shiftKey||false;}function HotKeys(){this.enabled=true;this._entries=[];sjcl.event.add(document,"keydown",this._onKeyDown.bindAsEvent(this));}HotKeys.extend({register:function(fptr,keyCode,ctrlKey,altKey,shiftKey){this._entries.push(new HotKeyEntry(fptr,keyCode,ctrlKey,altKey,shiftKey));},_onKeyDown:function(evt){var event=new sjcl.Event(evt);if(this.enabled){for(var i=0;i<this._entries.length;i++){var e=this._entries[i];if((e.keyCode==event.keyCode)&&(e.ctrlKey==event.ctrlKey)&&(e.altKey==event.altKey)&&(e.shiftKey==event.shiftKey)){e.fptr();event.cancelDefault();}}}}});var g_HotKeys=new HotKeys();