
/**
 * Holds methods that filters input in keydown events (etc)
 */
InputFilter = function()
{
	/**
	 * Allow only numbers to be written.
	 * Also allows the use of control keys (arrows, shift, home etc)
	 * @param Event The keyboard event
	 * @return bool Whether the key is allowed
	 */
	function onlyNumbers(event)
	{
		var kc = event.keyCode
		
		var isControl = kc < 32
		var isDelete = kc == 46
		var isQwertyNum = (kc >= 48 && kc <= 57)
		var isNumpad = (kc >= 96 && kc <= 105)
		var isArrow = (kc >= 37 && kc <= 40)
		var isHomeEndShift = (kc == 36 || kc == 35 || kc == 16)
		
		// all mentioned are allowed
		return (isControl || isDelete || isQwertyNum || isNumpad || isArrow || isHomeEndShift)
	}

	return {
		"onlyNumbers" : onlyNumbers
	}
}()
