function isUserName(field) {
	if (isEmpty(field)) {
		return false;
	} else 	if (!isInRange(field, 4, 16)) {
		return false;
	} else 	if (!isAlphanumeric(field)) {
		return false;
	}
	return true;
}

function isSelected(field) {
	if (field.selectedIndex == 0) {
		alert("Please select one of the '" + field.alt + "' selections.");
		return false;
	}
	return true;
}

function isPassword(field) {
	if (isEmpty(field)) {
		return false;
	} else 	if (!isInRange(field, 4, 16)) {
		return false;
	}
	return true;
}

function confirmPassword(field1, field2) {
	if (field1.value != field2.value) {
		alert("Sorry, '" + field1.alt + "' and '" + field2.alt + "' do not match.");
		field2.focus();
		return false;
	}
	return true;
}

function isEmail(field) {
	if (isEmpty(field)) {
		return false;
	} else if (!field.value.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/)){
		alert("The format of this email address seems wrong. Please recheck and enter it again.");
		field.focus();
		return false;
	}
	return true;
}

function isPhone(field){
	if (isEmpty(field)) {
		return false;
	} else if (!field.value.match(/^[0-9]{3}[\. -]*[0-9]{3}[\. -]*[0-9]{4}$/)){
		alert("Your '" + field.alt + "' field may contains Invalid characters. \nOnly numbers, - and . are allowed in this field. \n123-456-7890");
		field.focus();
		return false;
	}
	return true;
}

function isEmpty(field) {
	if (field.value == null || field.value == "") {
		alert("Please fill the '" + field.alt + "' field.");
		field.focus();
		return true;
	}
	return false;
}

function isInRange(field, from, to) {
	if (!isLess(field, from) && !isGreater(field, to)) {
		return true;
	}
	field.focus();
	return false;
}

function isLess(field, inNum) {
	num = parseInt(inNum);
	if (field.value.length < num) {
		alert("Your '" + field.alt + "' field must be more than " + inNum + " characters long.");
		field.focus();
		return true;
	}
	return false;
}

function isGreater(field, inNum) {
	num = parseInt(inNum);
	if (field.value.length > num) {
		alert("Your '" + field.alt + "' field must be less than " + inNum + " characters long.");
		field.focus();
		return true;
	}
	return false;
}

function isNumber(value){
	if (isNaN(parseInt(value))){
		return false;
	}
	return true;
}

function isAlphanumeric(field) {
	if (field.value.match(/^[\.a-zA-Z0-9_-]+$/)){
		return true;
	}
	alert("Your '" + field.alt + "' field may contains Invalid characters. \nOnly letters, numbers, - and _ are allowed in this field.");
	field.focus();
	return false;
}

function cleanField(field) {
	str = field.value;
	re1 = /^\s*/;
	re2 = /\s*$/;
	re3 = /\s+/g;
	str = str.replace (re1, "");
	str = str.replace (re2, "");
	str = str.replace (re3, " ");
	field.value = str;
}
