document.onkeypress = keyHandler;

function keyHandler(e) {
	if (!e) var e = window.event;
	var tg = (e.target) ? e.target : e.srcElement;

	filterResult = true;
	var f = tg.getAttribute("keyfilter");
	if (f!=null) {
		var keycode=0;
		if(typeof(e.which)=='number')
			keycode=e.which; // NS 4, NS 6+, Mozilla 0.9+, Opera
		else if(typeof(e.keyCode)=='number')
			keycode=e.keyCode; // IE, NS 6+, Mozilla 0.9+
		else if(typeof(e.charCode)=='number')
			keycode=e.charCode; // also NS 6+, Mozilla 0.9+
		var character=String.fromCharCode(keycode);

		if (keycode!=0&&keycode!=e.DOM_VK_BACK_SPACE) {
			// *** Filter buildup ***
			filter = f.split('|');

			// *** Filter check ***
			var filterResult = false;
			var minKey=0; var maxKey=0;
			for (var i=0; i<filter.length;i++) {
				minmax = filter[i].split('..')
				minKey = minmax[0];
				if (minmax[1] != null)
					maxKey = minmax[1];
				else
					maxKey = minmax[0];
				if (character >= minKey && character <= maxKey)
					filterResult = true;
			}
		}
	}

	return filterResult;
}
