function isUserName(field) {
	if (isEmpty(field)) {
		return false;
	} else 	if (!isRange(field, 8, 16)) {
		return false;
	} else 	if (!isXAlphanumeric(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 (!isRange(field, 8, 16)) {
		return false;
	}
	return true;
}

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

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

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

function isRange(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(val){
	if (isNaN(val.value)){
		return false;
	}
	return true;
}

function isAlphanumeric(str, field) {
	if (str.value.match(/^[a-zA-Z0-9]+$/)){
		return true;
	}
	return false;
}

function isXAlphanumeric(field) {
	var str = field.value;
	var i;
	for (i=0; i<str.length; i++) {
		if (!(((str.charAt(i) >= "A") && (str.charAt(i) <= "Z")) ||
			((str.charAt(i) >= "a") && (str.charAt(i) <= "z")) ||
			(str.charAt(i) == "-") ||
			(str.charAt(i) == "_") ||
			((str.charAt(i) >= "0") && (str.charAt(i) <= "9")))) {
			alert("Your '" + field.alt + "' field may contains Invalid characters. \nOnly letters, numbers, - and _ are allowed in this field.");
			field.focus();
			return false;
		}
	}
	return true;
}

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;
}
