function KeyboardConstants() {}
KeyboardConstants.TAB_KEY = "9";
KeyboardConstants.ENTER_KEY = "13";
KeyboardConstants.SHIFT_KEY = "16";
KeyboardConstants.PAGE_UP_KEY = "33";
KeyboardConstants.PAGE_DOWN_KEY = "34";
KeyboardConstants.HOME_KEY = "36";
KeyboardConstants.ARROW_UP_KEY = "38";
KeyboardConstants.ARROW_DOWN_KEY = "40";
KeyboardConstants.SPACE_BAR_KEY = "32";
KeyboardConstants.ESCAPE_KEY = "27";
KeyboardConstants.A_KEY = "65";
KeyboardConstants.C_KEY = "67";
KeyboardConstants.D_KEY = "68";
KeyboardConstants.N_KEY = "78";
KeyboardConstants.S_KEY = "83";
KeyboardConstants.X_KEY = "88";
KeyboardConstants.Y_KEY = "89";
KeyboardConstants.F6_KEY = "117";
KeyboardConstants.F12_KEY = "123";

KeyboardConstants.prototype.decode = function(code)
{
	switch (String(code))
	{
		case KeyboardConstants.TAB_KEY: return "Tab";
		case KeyboardConstants.ENTER_KEY: return "Enter";
		case KeyboardConstants.SHIFT_KEY: return "Shift";
		case KeyboardConstants.PAGE_UP_KEY: return "PageUp";
		case KeyboardConstants.PAGE_DOWN_KEY: return "PageDown";
		case KeyboardConstants.HOME_KEY: return "Home";
		case KeyboardConstants.ARROW_UP_KEY: return "ArrowUp";
		case KeyboardConstants.ARROW_DOWN_KEY: return "ArrowDown";
		case KeyboardConstants.SPACE_BAR_KEY: return "SpaceBar";
		case KeyboardConstants.ESCAPE_KEY: return "Escape";
		case KeyboardConstants.A_KEY: return "A";
		case KeyboardConstants.C_KEY: return "C";
		case KeyboardConstants.D_KEY: return "D";
		case KeyboardConstants.N_KEY: return "N";
		case KeyboardConstants.S_KEY: return "S";
		case KeyboardConstants.X_KEY: return "X";
		case KeyboardConstants.Y_KEY: return "Y";
		case KeyboardConstants.F6_KEY: return "F6";
		case KeyboardConstants.F12_KEY: return "F12";
	}
	return null;
}

/**
 *	Returns true if the keyboard code represents some non-printable control
 *  and/or navigational movement rather than a alphaNumericalSymbol
 */
KeyboardConstants.prototype.isControl = function(code)
{
	switch (String(code))
	{
		case KeyboardConstants.TAB_KEY:
		case KeyboardConstants.SHIFT_KEY:
		case KeyboardConstants.ARROW_UP_KEY:
		case KeyboardConstants.ARROW_DOWN_KEY:
		case KeyboardConstants.PAGE_UP_KEY:
		case KeyboardConstants.PAGE_DOWN_KEY:
				return true;
				break;
	}
	return false;
}

KeyboardConstants.isRotateKey = function(key)
{
    return ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '.indexOf(String.fromCharCode(key))!=-1);
}

KeyboardConstants.isEndTurnKey = function(key)
{
    return ('DdKk'.indexOf(String.fromCharCode(key))!=-1);
}


KeyboardConstants.isSwapKey = function(key)
{
    return ('SsLl'.indexOf(String.fromCharCode(key))!=-1);
}

KeyboardConstants.isKeyStroke = function(key, chars)
{
    return (chars.indexOf(String.fromCharCode(key))!=-1);
}


var KEYBOARD_CONSTANTS = new KeyboardConstants();