function isEmpty(x) {
	var el = checkForm.elements[x];
	if (el.value == "") {
		addError(el.name);
		el.parentNode.className = "formerror";
	} else {
		el.parentNode.className = "";
	}
}

function isChecked(x) {
	var el = checkForm.elements[x];
	if (el.checked == false) {
		addError(el.name);
		el.parentNode.className = "formerror";
	} else {
		el.parentNode.className = "";
	}
}

function checkRadio(radioSet) {
	checkedIsTrue = false;
	for (j = 0; j <= radioSet.length-1; j++) {
		if (radioSet[j].checked == true) {
			checkedIsTrue = true;
		}
	}
	if (checkedIsTrue == false) {
		addError(radioSet[0].name);
		radioSet[0].parentNode.className = "formerror";
	} else {
		radioSet[0].parentNode.className = "";
	}
}

function addError(e) {
	var newError = e.replace(/\[\]/, "");
	errorFields = errorFields + "\n" + "-> " + newError.replace(/req_/, "");
}

function check() {
	errorFields = "";
	checkForm = this;
	for (i=0; i <= checkForm.length-1; i++) {
		if (checkForm.elements[i].name.indexOf("req_") != -1) {
			switch (checkForm.elements[i].type) {
				case "radio":
					checkRadioObjName = checkForm.elements[i].name;
					checkRadioObj = checkForm[checkRadioObjName];
     				checkRadio(checkRadioObj);
     				i=i+checkRadioObj.length-1;
     				break;
				case "checkbox":
					isChecked(i);
					break;
				case "text":
				case "textarea":
				case "select-multiple":
					isEmpty(i);
					break;
				default:
					break;
			}
		}
	}

	if (errorFields != "") {
		alert("You must fill in these fields to submit the form:" + errorFields);
		return false;
	}
	
}

addLoadEvent(function() {
	for (var x=0; x<document.forms.length; x++) {
		document.forms[x].onsubmit = check;
	}
});
