var voc_RequiredField = "Required Field: ";
var voc_InvalidEmail = "Invalid email address!";
var voc_InvalidPassword = "Invalid password!";

var RequiredFields = "";
var RequiredFieldsText = "";
var EmailFields = "";
var PasswordFields = "";

function check_form(thisForm) {
	var i;
	var FieldValue;
	
	if ( (RequiredFields.length > 0) && (RequiredFieldsText.length > 0) ) {
		// Check required fields:

		var ReqField = RequiredFields.split(",");
		var ReqFieldText = RequiredFieldsText.split(",");

		for (i = 0; i < ReqField.length; i++) {
			FieldValue = get_FormFieldValue( eval("thisForm." + ReqField[i]) );
			if (FieldValue == "" ) {
				alert(voc_RequiredField + ReqFieldText[i]);
				eval("thisForm." + ReqField[i]).focus();
				return false;
			}
		}
	}
	
	if (EmailFields.length > 0) {
		// Check email-address fields:

		var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
		var regex = new RegExp(emailReg);
		var EmailField = EmailFields.split(",");
		for (i = 0; i < EmailField.length; i++) {
			FieldValue = get_FormFieldValue( eval("thisForm." + EmailField[i]) );
			if ( (FieldValue != "" ) && (!regex.test(FieldValue)) ) {
				alert(voc_InvalidEmail);
				eval("thisForm." + EmailField[i]).focus();
				return false;
			}
		}
	}

	if (PasswordFields.length > 0) {
		// Check password fields:

		var passwordReg = "[^A-Za-z0-9_]+";
		var regex = new RegExp(passwordReg, "g");
		var PasswordField = PasswordFields.split(",");
		for (i = 0; i < PasswordField.length; i++) {
			FieldValue = get_FormFieldValue( eval("thisForm." + PasswordField[i]) );
			if ( (FieldValue != "" ) && (regex.test(FieldValue)) ) {
				alert(voc_InvalidPassword);
				eval("thisForm." + PasswordField[i]).focus();
				return false;
			}
		}
	}

}

function get_FormFieldValue(Field) {
	if (Field.type == 'select-one') {
		return Field.options[Field.selectedIndex].value;
	} else if (Field.type == 'checkbox') {
		if (Field.checked) {
			return Field.value;
		} else {
			return "0";
		}
	} else if (Field.type == 'radio') {
		for (var i = 1; i< Field.length; i++) {
			if (Field[i].checked) {
				return Field[i].value;
			}
		}
	} else {
		return Trim(Field.value);
	}
}

function set_FormFieldValue(Field, Value) {
	var i;
	if (Field.type == 'select-one') {
		Field.selectedIndex = 0;
		for (i = 0; i < Field.options.length; i++) {
			if (Field.options[i] == Value) {
				Field.selectedIndex = i;
			}
		}
	} else if (Field.type == 'checkbox') {
		if (Field.value == Value) {
			Field.checked = true;
		} else {
			Field.checked = false;
		}
	} else if (Field.type == 'radio') {
		for (i = 1; i < Field.length; i++) {
			if (Field[i].value == Value) {
				Field[i].checked = true;
			} else {
				Field[i].checked = false;
			}
		}
	} else {
		Field.value = Value;
	}
}

function Trim(str1) {
	var str = new String(str1);
	while (str.charAt(0) == "\ ") {
		if (str.length == 1) {
			str = "";
		} else {
			str = str.substring(1,str.length-1);
		}
	}
	while (str.charAt(str.length-1) == "\ ") {
		if (str.length == 1) {
			str = "";
		} else {
			str = str.substring(0,str.length-1);
		}
	}
	return str;
}

