function trim(str) {
	while (str.charAt(0) == (" ")) {
		str = str.substring(1);
  	}
  	while(str.charAt(str.length-1) == " ") {
		str = str.substring(0,str.length-1);
  	}
  return str;
}

function validateForm() {
	// Set the values of the text boxes
	var name = trim(document.getElementById("name").value);
	var email = trim(document.getElementById("email").value);
	var message = trim(document.getElementById("message").value);
	var error = false;

	// Check for errors and show or hide error messages as needed
	// Check empty name field
	if (name == "") {
		document.getElementById("nameError").innerHTML = "Please enter your name.";
		document.getElementById("nameError").style.display = "inline";
		error = true;
	} else {
		document.getElementById("nameError").style.display = "none";
	}
	// Check empty email field
	if (email == "") {
		document.getElementById("emailError").innerHTML = "Please enter your email address.";
		document.getElementById("emailError").style.display = "inline";
		error = true;
	} else {
		document.getElementById("emailError").style.display = "none";
	}
	// Check if email is valid
	if (email != "" && !/^[\w\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,4}$/.test(email)) {
		document.getElementById("emailvalidError").innerHTML = "Please enter a valid email address.";
		document.getElementById("emailvalidError").style.display = "inline";
		error = true;
	} else {
		document.getElementById("emailvalidError").style.display = "none";
	}
	// Check empty message field
	if (message == "") {
		document.getElementById("messageError").innerHTML = "Please enter your message.";
		document.getElementById("messageError").style.display = "inline";
		error = true;
	} else {
		document.getElementById("messageError").style.display = "none";
	}
	
	// Set focus of text box to top most error
	if (name == "") {
		document.getElementById("name").focus();
		document.getElementById("name").select();
	} else if (email == "" || !/^[\w\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,4}$/.test(email)) {
		document.getElementById("email").focus();
		document.getElementById("email").select();
	} else if (message == "") {
		document.getElementById("message").focus();
		document.getElementById("message").select();
	}
	
	// Check all conditions and return true or false
	if (error) {
		// Hide 'Message sent' confirmation on next submit button click
		var messageSentElement = document.getElementById("message_sent");
		if (messageSentElement != null) {
			var parent = messageSentElement.parentNode;
			parent.removeChild(messageSentElement);
		}
		return false;
	} else {
		return true;
	}
}

// set focus to name text box
function setFocusName() {
	document.getElementById("name").focus();
	document.getElementById("name").select();
}