function checkRequired(form_name) {
	failed = false;
	
	if (document.forms[form_name].required.value) {
		reqArray = document.forms[form_name].required.value.split(",");

		for (a = 0; a < reqArray.length; a++) {
			if(document.forms[form_name].elements[reqArray[a]].value == "") {
				document.forms[form_name].elements[reqArray[a]].className = "textfield-required";
				if (!failed) { document.forms[form_name].elements[reqArray[a]].focus(); }
				failed = true;
			} else if(reqArray[a].indexOf("date") >= 0) {
				if (!isValidDate(document.forms[form_name].elements[reqArray[a]].value)) {
					document.forms[form_name].elements[reqArray[a]].className = "textfield-required";
					if (!failed) { document.forms[form_name].elements[reqArray[a]].focus(); }
					failed = true;
				} else {
					document.forms[form_name].elements[reqArray[a]].className = "textfield-ok";
				}
			} else {
				document.forms[form_name].elements[reqArray[a]].className = "textfield-ok";
			}
		}

		if (failed) {
			alert("One or more required fields were not filled in. Please fill in all the required fields before submitting.\nThe required fields are highlighted.");
			return false
		}
	}

	return true;
}

function isValidDate(date) {
	try {
		var tmp = new Date(date);
		var date_string = tmp.getDate() + " " + getMonthName(tmp.getMonth()) + " " + tmp.getFullYear();
		
		return (date == date_string);
	} catch(ex) {
		return false;
	}
}

function getMonthName(val) {
	var month = new Array(12);
	month[0] = "January";
	month[1] = "February";
	month[2] = "March";
	month[3] = "April";
	month[4] = "May";
	month[5] = "June";
	month[6] = "July";
	month[7] = "August";
	month[8] = "September";
	month[9] = "October";
	month[10] = "November";
	month[11] = "December";
	
	return month[val];
}

function checkTextField(form_name, field_name) {
	var field_value = document.forms[form_name].elements[field_name].value
	field_value = field_value.replace(/^\s*|\s*$/g, "");
	
	try	{
		if (field_value == "") {
			document.forms[form_name].elements[field_name].className = "textfield-required";
			return false;
		} else {
			document.forms[form_name].elements[field_name].className = "textfield-ok";
			return true;
		}
	} catch(e) {
		return false;
	}
}

function checkCheckBox(form_name, field_name) {
	try {
		if (!document.forms[form_name].elements[field_name].checked)
			return false;
		else
			return true;
	} catch(e) {
		return false;
	}
}

function checkCheckBoxGroup(form_name, group_id) {
	var group_name = "group" + group_id;
	
	try {
		for(var i = 0; i < document.forms[form_name].elements[group_name].length; i++) {
			if (document.forms[form_name].elements[group_name][i].checked)
				return true;
		}
	} catch(e) {
		return false;
	}
}

function checkRadioButtonGroup(form_name, group_id) {
	var group_name = "group" + group_id;
	
	try {
		for(var i = 0; i < document.forms[form_name].elements[group_name].length; i++) {
			if (document.forms[form_name].elements[group_name][i].checked)
				return true;
		}
	} catch(e) {
		return false;
	}
}

function checkSelect(form_name, field_name) {
	try {
		if (document.forms[form_name].elements[field_name].selectedIndex == 0)
			return false;
		else
			return true;
	} catch(e) {
		return false;
	}
}