var VAL_NUM = 1;
var VAL_STR = 2;
var VAL_EMAIL = 3;
var VAL_SELECT = 4;
var VAL_ALLOWBLANKS = true;
var VAL_NOBLANKS = false;
var valid = true;

function validateInit() {
	valid = true;
}
	
function validateElement(type, field, text, minval, maxval, allowblanks) {
	// type:
	// 1 = number
	// 2 = string
	// 3 = email
	// 4 = select
		
	// minval + maxval can be null for no limit

	if (valid == false) 
		return valid;

	var re=/^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/;

	if (!allowblanks && field.value == "" && type != 4) {
		alert('\"' + text + '\" was not entered.');
		valid = false;
	} else if (allowblanks && field.value == "" && type != 4) {
		valid = true;
	} else if (type == 1) {
		if (!(field.value >= 0 || field.value < 0)) {
			alert('\"' + text + '\" must be a valid number.');
			valid = false;
		} else if (minval && field.value < minval) {
			alert('\"' + text + '\" must be at least ' + minval + '.');
			valid = false;
		} else if (maxval && field.value > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + '.');
			valid = false;
		}
	} else if (type == 2) {
		if (minval && field.value.length < minval) {
			alert('\"' + text + '\" must be at least ' + minval + ' characters long.');
			valid = false;
		} else if (maxval && field.value.length > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + ' characters long.');
			valid = false;
		}
	} else if (type == 3) {
		if (!re.test(field.value)) {
			alert('\"' + text + '\" must be a valid email address.');
			valid = false;
		} else if (minval && field.value.length < minval) {
			alert('\"' + text + '\" must be at least ' + minval + ' characters long.');
			valid = false;
		} else if (maxval && field.value.length > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + ' characters long.');
			valid = false;
		}
	} else if (type == 4) {
		if (minval && field.selectedIndex < minval) {
			alert('You must select an item from \"' + text + '\".');
			valid = false;
		} 
	}	
	try {
		if (valid == false) {
			field.focus();
		}
	}
	catch(er) { }
	return valid;	
}

function charLimit(event, chars) {
	if (chars.indexOf(String.fromCharCode((window.Event) ? event.which : event.keyCode)) == -1) 
		return false;
}
