function CheckRequiredFields(formName) {

	function notFilledIn(fn) {
		var type = document.getElementById(field_ids[fn]).type;
		try {
			if (type=='text' && document.getElementById(field_ids[fn]).value.length > 0) { return false; }
			if (type=='textarea' && document.getElementById(field_ids[fn]).value.length > 0) { return false; }
			if (type=='radio')
			{
				var radio = document.getElementsByName(field_ids[fn]);
				for(var i = 0; i < radio.length; i++) if(radio[i].checked) { return false; }
			}
			if (type=='checkbox')
			{
				var cb = document.getElementById(field_ids[fn]);
				for(var i = 0; i < cb.length; i++)  if(cb[i].checked) { return false; }
			}
			if (type=='select-one')
			{
				var sel = document.getElementById(field_ids[fn]);
				// Slightly modified code for this particular form as we need to keep a 0 for our blank value
				if( (sel.options[sel.selectedIndex].value != '') )  { return false; }
			}
		} catch(e) {}
		return true;
	}

	var field_ids = formName.nv_reqfields.value.split(',');
	var field_names = formName.js_fieldnames.value.split(',');
	var prompt = false;
	var problem = false;
	var alert_msg = "";

	for(var i=0; i<field_ids.length; i++) {
		problem = notFilledIn(i);
		if ( problem ) {
			alert_msg += "- please fill-in field \"";
			alert_msg += field_names[i];
			alert_msg += "\"\n" ;
			prompt = true;
		}
	}

	if (prompt) {
		alert("Some required information is missing:\n" + alert_msg);
		return false;
	}
	return true;
}

