function getkey(e)
{
if (window.event)
return window.event.keyCode;
else if (e)
return e.which;
else
return null;
}

function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
//window.status = key;
if (key == null) return true;
// get character

keychar = String.fromCharCode(key);//cleanKeyCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

// check goodkeys
if (goods.indexOf(keychar) != -1)
{
	
	return true;
	
}
// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 || key==35 || key==37 || key==39)
{
	
	return true;
	
}

return false;
}

// This cheesy way allows the Numeric KeyPad to be used

function cleanKeyCode(key)

{

	switch(key)

	{

		case 96: return "0"; break;

		case 97: return "1"; break;

		case 98: return "2"; break;

		case 99: return "3"; break;

		case 100: return "4"; break;

		case 101: return "5"; break;

		case 102: return "6"; break;

		case 103: return "7"; break;

		case 104: return "8"; break;

		case 105: return "9"; break;

		default: return String.fromCharCode(key); break;

	}

}
