/* *********************************************
FORM VALIDATION ::: TELL A FRIEND
********************************************* */
function formValidatorTellAFriend(){
	// Make quick references to our fields
	var yourname = document.getElementById('yourname');
	var youremail = document.getElementById('youremail');
	var friendsname = document.getElementById('friendsname');
	var friendsemail = document.getElementById('friendsemail');

	
	// Check each input in the order that it appears in the form!
	if(notEmpty(yourname, "Please enter Your Name.")){
		if(emailValidator(youremail, "Please enter a valid Email Address.")){
			if(notEmpty(friendsname, "Please enter Friend's Name.")){
				if(emailValidator(youremail, "Please enter a valid Email Address.")){
					return true;
				}
			}
		}
	}

	return false;
}

/* *********************************************
FORM VALIDATION ::: CONTACT US
********************************************* */
function formValidatorContactUs(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var subject = document.getElementById('subject');
	var comments = document.getElementById('comments');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(email, "Please enter a valid E-mail Address.")){
				if(emailValidator(email, "Please enter a valid E-mail Address.")){
					if(notEmpty(subject, "Please enter a valid Subject.")){
						return true;
					}
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: REQUEST A QUOTE [short]
********************************************* */
function formValidatorRequestAQuoteShort(){
	// Make quick references to our fields
	var name = document.getElementById('name');
	var email = document.getElementById('email');
	var phone = document.getElementById('phone');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(name, "Please enter a valid Name.")){
		if(notEmpty(email, "Please enter a valid Email.")){
			if(emailValidator(email, "Please enter a valid Email.")){
				if(notEmpty(phone, "Please enter a valid Phone#.")){
					return true;
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: REQUEST A QUOTE [long]
********************************************* */
function formValidatorRequestAQuoteLong(){
	// Make quick references to our fields
	var companyname = document.getElementById('companyname');
	var contactname = document.getElementById('contactname');
	var email = document.getElementById('email');
	var telephone = document.getElementById('telephone');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(companyname, "Please enter a valid Company Name.")){
		if(notEmpty(contactname, "Please enter a valid Contact Name.")){
			if(notEmpty(email, "Please enter a valid Email.")){
				if(emailValidator(email, "Please enter a valid Email.")){
					if(notEmpty(telephone, "Please enter a valid Phone Number.")){
						return true;
					}
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: CORE FUNCTIONS
********************************************* */
function notEmpty(elem, helperMsg){
	// if(elem.value.length == 0){
	if(elem.value.length <= 1 || elem.value.toLowerCase() == 'n/a' || elem.value.toLowerCase() == 'na'){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function notMatch(elemA, elemB, helperMsg){
	if(elemA.value != elemB.value){
		alert(helperMsg);
		elemA.focus(); // set the focus to this input
		return false;
	}
	return true;
}
