//Javascript validation functions to check form input and
//provide immediate feedback

//The initial routines check various types of fields in the forms
function CheckField(field, testNames) {
	var args = CheckField.arguments;
	var fieldOK = true;
	for (i = 1; i < args.length; i++) {
		switch (args[i]) {
		case 'isDate':
			var textInput = field.value;
			var regexp = /^(0?[1-9]|1[0-2])\/(0?[1-9]|[1-2][0-9]|3[0-1])\/20[0-9]{2}$/;
			var result = textInput.match(regexp);
			if (!((textInput == '') || result)) {
				alert("Enter a date in the format MM/DD/YYYY\nor click on the calendar icon to select one.");
				//field.value = '';
				fieldOK = false;
			}
			break;
		case 'isChecked':
			var response = false;
			for (var j = 0; j < field.length; j++) {
				if (field[j].checked) {
					response = true;
					break;
				}
			}
			if (!response) {
				fieldOK = false;
				alert("isChecked: All responses except the comment are required.");
			}				
			break;
			
		case 'isNotEmpty':
			if (field.value == "" || field.value == null) {
				alert("All responses except the comment are required.");
				//field.focus();
				//field.select();
				fieldOK = false;
			} 
			break;						
		default:
			alert("Undefined field type (" + args[i] + ") received by function CheckField");			
		} //end of switch
		if (!fieldOK) {
			return fieldOK; //fieldOK is false, so return false 
		}
	} //end of for i loop over parameters
	return fieldOK;
}
//The remaining function checks the user form

function CheckSurveyForm(form) {
	if (CheckField(form.ServiceDate, "isNotEmpty", "isDate")) {
		if (CheckField(form.ServiceTime, "isNotEmpty")) {
			if (CheckField(form.District, "isChecked")) {
				if (CheckField(form.Ambulance, "isChecked")) {
					if (CheckField(form.Hospital, "isChecked")) {
						if (CheckField(form.Professional, "isChecked")) {
							if (CheckField(form.Treat, "isChecked")) {
								if (CheckField(form.Communicate, "isChecked")) {
									if (CheckField(form.Expectations, "isChecked")) {
										if (CheckField(form.Frequent, "isChecked")) {
											if (CheckField(form.Gender, "isChecked")) {
												if (CheckField(form.Age, "isChecked")) {
													return true;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}	


					 

