// JavaScript Document

var recipientEmail = "youremail@yourdomain.com";

// setup valid variables
var isValidName     = false;
var isValidEmail    = false;
var isValidPhone    = false;
var issetPhone      = false;
var isValidSubject  = false;
var isValidMessage  = false;
// regular expressions;
var nameExp         = new RegExp("^[a-zA-Z ]{3,}$");
var emailExp        = new RegExp("^([a-zA-Z_\.])+@([a-zA-Z_])+\.([a-zA-Z]){2,6}?\.[a-zA-Z]+$");
var phoneExp        = new RegExp("^[0-9]{10}$");
var subjectExp      = new RegExp("^.{4,}$");

function checkForm(form) {
	for(var i = 0; i < form.length; i++) {
		var element = form.elements[i];
		var error = element.parentNode.getElementsByTagName("span")[0];
		var name = form.elements[i].name;
		switch(name) {
		case "name":
			if(nameExp.test(element.value)) {
				isValidName = true;
				error.innerHTML = '';
				error.style.display = 'none';
			} else {
				isValidName = false;
				error.innerHTML = "Must be at least 3 characters";
				error.style.display = "inline";
			}
		break;
		case "email":
		  	if(emailExp.test(element.value)) {
				isValidEmail = true;
				error.innerHTML = '';
				error.style.display = 'none';
			} else {
				isValidEmail = false;
				error.innerHTML = "Not a valid email address";
				error.style.display = "inline";
			}
		break;
		case "phone":
		  	if(element.value != "") {
				if(phoneExp.test(element.value)) {
					isValidPhone = true;
					issetPhone = true;
					error.innerHTML = '';
					error.style.display = 'none';
				} else {
					isValidPhone = false;
					error.innerHTML = "Phone number must be exactly 10 digits";
					error.style.display = "inline";
				}
			} else {
				issetPhone = false;
			}
		break;
		case "subject":
			if(subjectExp.test(element.value)) {
				isValidSubject = true;
				error.innerHTML = '';
				error.style.display = 'none';
			} else {
				isValidSubject = false;
				error.innerHTML = "Must be at least 4 characters";
				error.style.display = "inline";
			}
		break;
		case "message":
			if(element.value.length > 20) {
				isValidMessage = true;
				error.innerHTML = '';
				error.style.display = 'none';
			} else {
				isValidMessage = false;
				error.innerHTML = "Must be at least 20 characters";
				error.style.display = "inline";
			}
		break;
		}
	}
	if(issetPhone === true) {
		return (isValidName === true && isValidEmail === true && isValidSubject === true && isValidMessage === true && isValidPhone === true);
	} else {
		return (isValidName === true && isValidEmail === true && isValidSubject === true && isValidMessage === true);
	}
    
}
function resetForm() {
	var form = document.getElementsByTagName("form")[0];
	for(var i = 0; i < form.length - 3; i++) {
		var element = form.elements[i];
		var error = element.parentNode.getElementsByTagName("span")[0];
		error.innerHTML = '';
		error.style.display = 'none';
	}
}
function init() {	
	// declare all elements in variables
	recipient = document.getElementById("recipientEmail");
	// set recipient email 
	recipient.value = recipientEmail;
	resetForm();
}
window.onload = init;
