/*
Purpose: Check for blank required fields in Timebus feedback form

Original author:  Unknown

Changes:

EP 2006-01-10:
added code to check for a dropdown (vehicle)
made a separate .js file

*/

function isblank(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 feedbackfields(form)
{
	form.comments_suggestions_details.optional = true; // set optional text or textarea fields here
	var empty_fields = "";
	for (var i = 0; i < form.length; i++)
	{
		var description = "";
		var e = form.elements[i];
		if (e.name == "vehicles")
		{
			// alert(e.selectedIndex)
			if ((e.selectedIndex == 0) || (e.selectedIndex == -1))
			{
				// no 'vehicle' dropdown selected
				description = "'Type of Vehicle'"
			}
		}
		if (((e.type == "text") || (e.type == "textarea")) && !e.optional)
		{
			if ((e.value == null) || isblank(e.value) || (e.value == 'TT'))
			{
				// empty text or textarea field detected
				switch (e.name)
				{
					// ensure all text or textarea fields have nice descriptions below (whether required fields or not)
					case "reservation_number":
						description = "'Reservation number'"
						break;
					case "hirer_ID":
						description = "'Email address or postcode of hirer'"
						break;
					case "first_hire_date":
						description = "'First date of hire(s)'"
						break;
				}
			}
		}
		if (description)
		{
			if (empty_fields) { empty_fields += " and " + description; }
			else { empty_fields += description; }
		}
	}
	if (empty_fields)
	{
		alert("Please fill in the following field(s): " + empty_fields + " before you send the form... thank you");
		return false;
	}
	return true;
}