var Key =
{
	keysDown:{},
	lastKey:0,
	known:[37,38,39,40],
	keyNames:(function(){
		var keys = [];
		keys[16] = 'SHFT';
		keys[37] = 'W';
		keys[38] = 'N';
		keys[39] = 'E';
		keys[40] = 'S';
		return keys;
	})(),
	
	getKeys:function()
	{
		Key.known.each(function()
		{
			if(Key.keysDown[this]==true)
				ret.push(this);
		},(ret=[]));
		
		return ret;
	},
	
	handle:function(e)
	{
		if(!Key.known.has(e.keyCode))
			return;
		Key[e.type](e.keyCode);
		
	},
	
	keydown:function(key)
	{
		if(Key.lastKey==key)
			return;
		Key.keysDown[key]=true;
		Key.lastKey=key;
	},
	
	
	keypress:function(key)
	{
		Key.keydown(key);
	},
	
	keyup:function(key)
	{
		Key.lastKey=
		Key.keysDown[key]=false;
	},
	
	allUp:function()
	{
		for(i in Key.keysDown)
		{
			if(Key.keysDown[i] == true)
				Key.keyup(i);
		}
		// console.info('all up');
	}
};

window.onkeypress = Key.handle;
window.onkeyup = Key.handle;
window.onblur = Key.allUp;
