function validateNumber(field, msg, min, max) {
	if (!min) { min = 0 }
	if (!max) { max = 255 }
	if ( (parseInt(field.value) != field.value) || field.value.length < min || field.value.length > max) {
		alert(msg);
		field.focus();
		field.select();
		return false;
	}
	return true;
}

function validateString(field, msg, min, max) {
	if (!min) { min = 1 }
	if (!max) { max = 65535 }
	if (!field.value || field.value.length < min || field.value.max > max) {
		alert(msg);
		field.focus();
		field.select();
		return false;
	}
	return true;
}

function validateEmail(email, msg, optional) {

	if (!email.value && optional) {
		return true;
	}

	var re_mail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/;
	
	if (!re_mail.test(email.value)) {
		alert(msg);
		email.focus();
		email.select();
		return false;
	}
	return true;
}

function validateList(listname, msg) {

	var foo = listname.selectedIndex;

	if (foo == 0 || foo == -1) {
		alert(msg);
		return false;
	}
	
	return true;
	
}

function validateUsername(username_element) {
	
	if (!document.getElementById(username_element)) { return false; }
	
	var username_node = document.getElementById(username_element);
	var username = username_node.value;
	
	if (username.length < 2) {
		alert('Please provide a username between 2 and 20 characters long.');
		username_node.focus();
		return false;
	}
	
	if (username.length > 20) {
		alert('Please provide a username between 2 and 20 characters long.');
		username_node.focus();
		return false;
	}
	
	var regex = /^[A-Za-z0-9_\-\.]+$/
	
	if (!regex.test(username)) {
		alert('Please only use alphanumeric characters (A-Z and 0-9) in your username.');
		username_node.focus();
		return false;
	}
	
	return true;	

}
