(function(){var keysStoreKey="$moo:keys-pressed",keysKeyupStoreKey="$moo:keys-keyup";DOMEvent.definePseudo("keys",function(split,fn,args){var event=args[0],keys=[],pressed=this.retrieve(keysStoreKey,[]);keys.append(split.value.replace("++",function(){keys.push("+");return""}).split("+"));pressed.include(event.key);if(keys.every(function(key){return pressed.contains(key)})){fn.apply(this,args)}this.store(keysStoreKey,pressed);if(!this.retrieve(keysKeyupStoreKey)){var keyup=function(event){(function(){pressed=this.retrieve(keysStoreKey,[]).erase(event.key);this.store(keysStoreKey,pressed)}).delay(0,this)};this.store(keysKeyupStoreKey,keyup).addEvent("keyup",keyup)}});DOMEvent.defineKeys({"16":"shift","17":"control","18":"alt","20":"capslock","33":"pageup","34":"pagedown","35":"end","36":"home","144":"numlock","145":"scrolllock","186":";","187":"=","188":",","190":".","191":"/","192":"`","219":"[","220":"\\","221":"]","222":"'","107":"+"}).defineKey(Browser.firefox?109:189,"-")})();