// scripts for the Camino Downunder Website

/* At present this is primarily to perform required field checking for the email forms
 * however it may be expanded if required
 */

var requiredFieldsBooking = new Array("Course", "First name", "Family/Surname", "Sex", "Email Address", "Number of Attendees");
var requiredFieldsMerchandise = new Array("Full Name", "Email Address");
var requiredFields = new Array();
// names for all the required fields


function checkRequiredFields(formIndex, fieldList) {
	/* the formIndex variable is a reference to which form is being checked (based on the form's position in the
	 * source page).  In most cases this will be 0, meaning that the first form on the page is the one being checked
	 * FieldList is used to identify which set of required fields to check for
	 */

	switch (fieldList) { // set the required fields array to the correct set of fields
		case "requiredFieldsBooking" : requiredFields = requiredFieldsBooking; break;	
		case "requiredFieldsMerchandise" : requiredFields = requiredFieldsMerchandise; break;	
	}

	var missingFields = new Array(); // contains the names for any required fields that are still empty
	var completedFields = new Array();

	for (i=0; i<document.forms[formIndex].elements.length; i++) {
		
		if ((document.forms[formIndex].elements[i].type=="text")||(document.forms[formIndex].elements[i].type=="textarea")) {
			if ((document.forms[formIndex].elements[i].value!=null)&&(document.forms[formIndex].elements[i].value!=""))
			completedFields.push(document.forms[formIndex].elements[i].name);
		}
		if (document.forms[formIndex].elements[i].type=="radio") {
			if (document.forms[formIndex].elements[i].checked==true)
			completedFields.push(document.forms[formIndex].elements[i].name);
		}
		if (document.forms[formIndex].elements[i].type=="select-one") {
			if (document.forms[formIndex].elements[i].selectedIndex!=0)
			completedFields.push(document.forms[formIndex].elements[i].name);
		}		
	}
	
	// Use the list of completed fields to determine which required fields are missing
	if (completedFields.length==0) missingFields = requiredFields; // if nothing is filled in all are missing
	else {
		for (i=0; i<requiredFields.length; i++) {
			for (j=0; j<completedFields.length; j++) {
				if (requiredFields[i]==completedFields[j]) break;
				else if (j>=completedFields.length-1) missingFields.push(requiredFields[i])
			}
		}
	}
	
	// Build the neat list of missing fields and return it if required
	if (missingFields.length==0) { // all required fields are completed
		return true;
	}
	else {
		var responseMessage = "Please complete the following required fields:\n"
		for (i=0; i<missingFields.length; i++) {
			responseMessage = responseMessage + "- " + missingFields[i] + "\n";
		}
		alert(responseMessage);
		return false;
	}
}
