// validate.js (form validator)

function validateForm() {
		
		var message = "The following fields are required:";
		var missing = new Array();
		var errorsFound = false;	
	
		missing[0] = "";
		missing[1] = "";
		missing[2] = "";
		missing[3] = "";
		missing[4] = "";
		missing[5] = "";
		missing[6] = "";
		missing[7] = "";
		missing[8] = "";
		missing[9] = "";
		missing[10] = "";
		missing[11] = "";
		missing[12] = "";
		missing[13] = "";
		missing[14] = "";
		missing[15] = "";
		
		//Check if any of the 15 required questions have not been answered:
		if(document.myForm.eventId.value == "") {
			
			missing[0] = "    " + missing[0] + "Question 1" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q2.value == "-1") {
			
			missing[1] = "    " + missing[1] + "Question 2" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q3.value == "-1") {
			
			missing[2] = "    " + missing[2] + "Question 3" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q4.value == "-1") {
			
			missing[3] = "    " + missing[3] + "Question 4" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q5.value == "-1") {
			
			missing[4] = "    " + missing[4] + "Question 5" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q6.value == "-1") {
			
			missing[5] = "    " + missing[5] + "Question 6" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q7.value == "-1") {
			
			missing[6] = "    " + missing[6] + "Question 7" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q8.value == "-1") {
			
			missing[7] = "    " + missing[7] + "Question 8" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q9.value == "-1") {
			
			missing[8] = "    " + missing[8] + "Question 9" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q10.value == "") {
			
			missing[9] = "    " + missing[9] + "Question 10" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q11.value == "") {
			
			missing[10] = "    " + missing[10] + "Question 11" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q12.value == "") {
			
			missing[11] = "    " + missing[11] + "Question 12" + "\n";
			errorsFound = true;	
			
		}
		
		if(document.myForm.q13_1.checked == false && document.myForm.q13_2.checked == false &&
		   document.myForm.q13_3.checked == false && document.myForm.q13_4.checked == false &&
		   document.myForm.q13_5.checked == false && document.myForm.q13_6.checked == false &&
		   document.myForm.q13_7.checked == false && document.myForm.q13_8.checked == false &&
		   document.myForm.q13_9.checked == false && document.myForm.q13_10.checked == false &&
		   document.myForm.q13_11.checked == false) {
			
			missing[12] = "    " + missing[12] + "Question 13" + "\n";
			errorsFound = true;
						
		}
		
		//Check for "Other" field error:
		else if( (document.myForm.q13_9.checked == true || document.myForm.q13_10.checked == true || document.myForm.q13_11.checked == 		                  true) && document.myForm.q13_other.value == "") {
		
			missing[12] = "    " + missing[12] + "Question 13 (specify your response)" + "\n";
			errorsFound = true;
			
		}
		
		if(document.myForm.q14.value == "") {
			
			missing[13] = "    " + missing[13] + "Question 14" + "\n";
			errorsFound = true;	
			
		}
		
		//Check for "Other" field error:
		else if(document.myForm.q14.value == "Other" && document.myForm.q14_other.value == "") {
		
			missing[13] = "    " + missing[13] + "Question 14 (specify your response)" + "\n";
			errorsFound = true;
			
		}
		
		if(document.myForm.q15.value == "") {
			
			missing[14] = "    " + missing[14] + "Question 15" + "\n";
			errorsFound = true;
			
		}
		
		//Check for "Other" field error:
		else if(document.myForm.q15.value == "Other" && document.myForm.q15_other.value == "") {
		
			missing[14] = "    " + missing[14] + "Question 15 (specify your response)" + "\n";
			errorsFound = true;
			
		}
		
		//If an e-mail address has been entered, check format:		
		if(document.myForm.email.value != "") {
		
			var atSymbolPos = document.myForm.email.value.indexOf("@");
			var periodPos = document.myForm.email.value.indexOf(".");
			var spacePos = document.myForm.email.value.indexOf(" ");
			var lastCharPos = (document.myForm.email.value.length) - 1;
				
			//Checks to make sure the value inputted for e-mail contains an '@' or a '.' (but does not start/end with either character or contain any spaces or contain the '@' and '.' characters right next to each other):
			if( (atSymbolPos == -1) || (atSymbolPos == 0) || (periodPos == -1) || (periodPos == 0) || (spacePos > -1) || ((atSymbolPos + 1) == periodPos) || ((periodPos + 1) == atSymbolPos) || (lastCharPos == atSymbolPos) || (lastCharPos == periodPos) ) {
				
				missing[15] = "    " + missing[15] + "Question 17 (invalid e-mail format)" + "\n";
				errorsFound = true;
				   
			}
		
		}
				
		//If any of the required fields are not filled, return false so the form won't get submitted.
		if(errorsFound == true) {
		
			window.alert(message + "\n" + "\n" + missing[0] + missing[1] + missing[2] + missing[3] + 
										  		 missing[4] + missing[5] + missing[6] + missing[7] + 
												 missing[8] + missing[9] + missing[10] + missing[11] +
												 missing[12] + missing[13] + missing[14] + missing[15]);
			return false;
		
		}		
				
		//If no errors were found in the form, return true so that the form may submit.
		if(errorsFound == false) {
		
			return true;
		
		}
		
}