
function AllowNum(field, e, length, min, max) {
	var key;
	if (window.event) key = e.keyCode;
	else if (e.which) key = e.which;
	else return true;
	
	fieldlen = field.value.length;
	if (fieldlen < length) {
		field.style.backgroundColor = "white";
	}
	if (key == 8 || key == 127 || key == 63272) { //backspace
		if (fieldlen == length) {
			field.style.backgroundColor = "white";
		}
		return true;
	} else if (key >= 48 && key <= 57) {
		if (fieldlen == length - 1) {
			field.style.backgroundColor = "lightgreen";
		}
		
		var newval = field.value.toString() + String.fromCharCode(key);
		if (newval > max || newval < min) {
			field.style.backgroundColor = "pink";
		}
		return true;
	}
	return false;
}

function AllowZIP(field, e) {
	var key;
	if (window.event) key = e.keyCode;
	else if (e.which) key = e.which;
	else return true;
	
	fieldlen = field.value.length;
	if (fieldlen < 5) {
		field.style.backgroundColor = "white";
	}
	if (key == 8 || key == 127 || key == 63272 /* Backspace */) {
		if (fieldlen == 5) {
			field.style.backgroundColor = "white";
		}
		return true;
	} else if (fieldlen >= 4 &&
				((key >= 48 && key <= 57) // Numbers
	    		|| key == 32 // Space
	    		|| (key >= 65 && key <= 90) // Uppercase Letters (Canadian ZIPs)
				|| (key >= 97 && key <= 122) // Lowercase Letters
	)) {
		var val = field.value;
		val += String.fromCharCode(key);
		var RegEx = /^([0-9]{5})|([a-z][0-9][a-z][ ]?[0-9][a-z][0-9])/i;
		if (RegEx.test(val)) {
			// Success!
			field.style.backgroundColor = "lightgreen";
		} else {
			// Failure
			field.style.backgroundColor = "pink";
		}
	}
	return false;
}