function is_blank(s) {
	
	for(var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) { return false };
	}
	return true;
	
}

function verify_form(f, r) {
	
	var required = r;
	
	var msg;
	var empty_fields = "";
	var errors = "";
	
	for(var i = 0; i < f.length; i++) {
		
		var e = f.elements[i];
		
		for(var j = 0; j < required.length; j++) {
			
			if(e.name == required[j]) {
			
				if ( (e.type == "text") || (e.type == "textarea") || (e.type = "password") ) {
					if ( (e.value == null) || (e.value == "") || (is_blank(e.value)) ) {
						empty_fields += "\n\t - " + e.name;
						continue;
					}
				}
				
				if ((e.options != null) && (e.options.selectedIndex == 0) && (e.options[e.options.selectedIndex].value == ""))
					errors +="\n" + e.name + " must be a valid selection.";
			}
		}
	}

	if (!empty_fields && !errors) 
		return true;

	msg = "There are problems with your form submission.\n";

	if (empty_fields) {
		msg += "\nThe following required fields are empty:" + empty_fields;
		if (errors) msg += "\n";
	}

	msg += errors;
	alert(msg);
	return false;

}