// JavaScript Document

/*
* Validate Forms Fields
*/
function validateInput() {
	if (validateName() && validateEmail() && validateWebsite() && validateMessage()) {
		//alert("Thank you for your message.");
		return true;
	}
	return false;
}

function isNotEmpty(field, message) {
	if (field.value.length == 0) {
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function validateName() {
	var name = document.getElementById("name");
	var checkEmpty = isNotEmpty(name, "Please enter your name.");
	if (checkEmpty) {
		if (name.value.match(/^[\W\_]+$/)) {
			alert("Name contains only non alphabets. Please enter your name.");
			name.focus();
			return false;
		}
		var nameExp = /^([\w\-\.\s])+$/;
		if (!name.value.match(nameExp)) {
			alert("Name contains invalid characters. Only alphabets, numbers, hyphen (-), underscore (_), dot (.), and space characters are allowed.");
			name.focus();
			return false;
		}
	} else {
		return false;
	}
	return true;
}

function validateMessage() {
	var message = document.getElementById("message");
	return isNotEmpty(message, "Please enter message.");
}

function validateWebsite() {
	 var website = document.getElementById("website");	 
	 if (website.value != "http://" && website.value != "") {
		 var websiteExp = /^http:\/\/(www.)?([A-Za-z0-9_\-\.]){2,63}\.([A-Za-z]{2,4})$/;
		 if (!website.value.match(websiteExp)) {
	 		  alert("Please enter a valid website URL.");
			  website.focus();
			  return false;
		 }
	 }
	 return true;
}

function validateEmail() {
	 var email = document.getElementById("email");
	 var checkEmpty = isNotEmpty(email, "Please enter your email address.");
	 if (checkEmpty) {
		 var emailExp =  /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.]){2,63}\.([A-Za-z]{2,4})$/; //Source http://www.domainnamesystems.com/faqs.html
		 if (!email.value.match(emailExp)) {
		 	  alert("Please enter a valid email address.");
			  email.focus();
			  return false;
		 }
	 } else {
	 	return false;
	 }
	 return true;
}

