// validate.js
// Javascript functions for validating form submissions
// Author: Karin Hansen

function validateForm(form) {
	//ids of required fields
	var requiredFieldIds = ['firstname','lastname','email','undergrad','major','status','gpa',
							'goals','facultypref1','facultypref2','facultypref3','sop'];  
	
	//user friendly field descriptions for error message
	var requiredFieldLabels = ['First Name','Last Name','E-mail','Current Undergrad Institution','Major',
							   'School Status','GPA','Career and Education Goals','Faculty Preference 1',
							   'Faculty Preference 2','Faculty Preference 3','Statement of Purpose']; 
	var emailField = 'email';  //id of email address field to check
	
	var highlightColor = '#FFFFCC';  //color to highlight missing fields
	var defaultColor = '#FFFFFF';    //normal field background color
	var missingFields = '';

	// Browser check
	if (!document.getElementById) 
    	return true;  // browser doesn't support, let FileMaker validate
	
	// Check for empty required fields
	for (var i in requiredFieldIds) {
		var elem = form[requiredFieldIds[i]];
		if (trim(elem.value).length == 0) {
			missingFields += requiredFieldLabels[i]+"\n";
			elem.style.background = highlightColor;  //highlight empty field
		} else {
			elem.style.background = defaultColor;  //reset to default
		}
	}
	
	// Give alert message
	if (missingFields.length > 0) {
		alert('The following required field(s) are empty and \n'+
						'need to be filled in before the form will be accepted.\n\n'+missingFields);
		return false;
	}
	
	// Check email for basic format
	var elem = form[emailField];
	apos = elem.value.indexOf("@");
	dotpos = elem.value.lastIndexOf(".");
	if (apos < 1 || dotpos-apos < 2 ) {
		elem.style.background = highlightColor;
		alert('Please enter a complete, valid email address');
		return false;
	} else {
		elem.style.background = defaultColor;  //reset to default
		return true;
	}
}

function trim(str) {
	//Remove empty spaces
	return str.replace(/^\s+|\s+$/g, '');
}

