// Form validation function that contains all the javascript validation for the fields in the default form (form.cfm)
// Returns an object (err) that contains error messages for each field that threw an error
// Requires: validation.js
// Created: 3-Jan-2007


// FUNCTION TO RUN ACTUAL VALIDATION CODE TO VALIDATE FORM
function formValidation(form) {
	var err = new Object();
   
	// firstname
	if(trimWhiteSpace(form.firstname.value) == "")
		err.firstname = "Please enter your first name";
	// lastname
	if(trimWhiteSpace(form.lastname.value) == "")
		err.lastname = "Please enter your last name";
	// email
	if(trimWhiteSpace(form.email.value) == "")
		err.email = "Please enter your email address";
	else if (!isValidEmailStrict(trimWhiteSpace(form.email.value)))
		err.email = "Please enter a valid email address";
	// topic
	if(form.topic.selectedIndex == -1 || form.topic.options[form.topic.selectedIndex].value == "0")
		err.topic = "Please select a feedback topic";
	
	return err;
}

// FUNCTION TO CALL FORM VALIDATION FUNCTION AND DISPLAY APPROPRIATE ERROR MESSAGES
function formErrorHandling(frm){
	// set up error object
	var objErr = new Object();
	objErr = formValidation(frm);
	// determine if error object contains any properties
	var i = 0;
	for (var key in objErr)
		i = i + 1;
	// errors detected - used javascript to display messages where appropriate
	if (i > 0){
		// errGeneral
		document.getElementById("errGeneral").innerHTML = "<p id='errgen'>There were errors detected in your form. Please see the details below to fix these errors, then try again.</p>"
		// firstname
		if(objErr.firstname)
			document.getElementById("errFirstname").innerHTML = "<p id='errormsg'>" + objErr.firstname + "</p>";
		else
			document.getElementById("errFirstname").innerHTML = "";
		// lastname
		if(objErr.lastname)
			document.getElementById("errLastname").innerHTML = "<p id='errormsg'>" + objErr.lastname + "</p>";
		else
			document.getElementById("errLastname").innerHTML = "";
		// email
		if(objErr.email)
			document.getElementById("errEmail").innerHTML = "<p id='errormsg'>" + objErr.email + "</p>";
		else
			document.getElementById("errEmail").innerHTML = "";
		// topic
		if(objErr.topic)
			document.getElementById("errTopic").innerHTML = "<p id='errormsg'>" + objErr.topic + "</p>";
		else
			document.getElementById("errTopic").innerHTML = "";
		
		window.location.hash = 'topForm';
		return false;
	}
	
	// no errors detected - submit form for server side validation
	else{
		document.getElementById("errGeneral").innerHTML = "";
		document.getElementById("errFirstname").innerHTML = "";
		document.getElementById("errLastname").innerHTML = "";
		document.getElementById("errEmail").innerHTML = "";
		document.getElementById("errTopic").innerHTML = "";
		return true;
	}
}