// JavaScript Document

function formValidatorDirectory(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var phone = document.getElementById('phone');
	var password = document.getElementById('password');
	var profilename = document.getElementById('profilename');
	var addr = document.getElementById('addr');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	var howdyouhear = document.getElementById('howdyouhear');
	
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your name")){
		if(isAlphabet(lastname, "Please enter only letters for your name")){
			if(emailValidator(email, "Please enter a valid email address")){
				if(isNumeric(phone, "Please enter a valid phone number. Numbers only. No Spaces or Special Characters.")){
					if(notEmpty(password, "Please enter a password")){
						if(isAlphanumeric(profilename, "Please enter a profile name that only contains alphanumeric characters (A-Z, 0-9)")){
							if(notEmpty(city, "Please enter only letters for your city name")){
								if(madeSelection(state, "Please Choose a State")){
									if(isNumeric(zip, "Please enter a valid zip code")){
										if(notEmpty(howdyouhear, "Please enter how did you hear about us")){
									return true;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	
	return false;
	
}

function formValidatorDirectoryEdits(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var addr = document.getElementById('addr');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your first name.  No Spaces.")){
		if(isAlphabet(lastname, "Please enter only letters for your last name.  No Spaces.")){
			if(notEmpty(city, "Please enter only letters for your city name")){
				if(madeSelection(state, "Please Choose a State")){
					if(isNumeric(zip, "Please enter a valid zip code")){
									return true;
					}
				}
			}
		}
	}
	
	
	return false;
	
}

function formValidatorFreeReport(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var howdyouhear = document.getElementById('howdyouhear');
	
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your name")){
		if(isAlphabet(lastname, "Please enter only letters for your name")){
			if(emailValidator(email, "Please enter a valid email address")){
				if(notEmpty(howdyouhear, "Please enter how did you hear about us")){
									return true;
									
				}
			}
		}
	}
	
	
	return false;
	
}

function formValidatorSCartCC(){
	// Make quick references to our fields
	var zcardtype = document.getElementById('zcardtype');
	var zcardnum = document.getElementById('zcardnum');
	var zcardexpiremonth = document.getElementById('zcardexpiremonth');
	var zcardexpireyear = document.getElementById('zcardexpireyear');
	var useragree = document.getElementById('useragree');
	
	// Check each input in the order that it appears in the form!
	if(madeSelection(zcardtype, "Please Choose a Card Type")){
		if(isNumeric(zcardnum, "Please enter only letters for your card number")){
			if(madeSelection(zcardexpiremonth, "Please Choose a Card Expiration Month")){
				if(madeSelection(zcardexpireyear, "Please Choose a Card Expiration Year")){
					if(checkboxUserAgree(useragree, "Please check the terms and conditions")){
								return true;
					}
				}
			}
		}
	}
	
	
	return false;
	
}

function formValidatorMainSearch(){
	// Make quick references to our fields
	var zstate = document.getElementById('zstate');
	
	// Check each input in the order that it appears in the form!
					if(madeSelectionState(zstate, "Please Choose a State")){
									return true;
					}	
	
	return false;
	
}

function formValidatorTestimonial(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var city = document.getElementById('city');
	var tmstate = document.getElementById('tmstate');
	var email = document.getElementById('email');
	var comments = document.getElementById('comments');
	
	// Check each input in the order that it appears in the form!
	if(isAlphabet(firstname, "Please enter only letters for your name")){
		if(isAlphabet(lastname, "Please enter only letters for your name")){
			if(notEmpty(city, "Please enter only letters for your city name")){
				if(madeSelection(state, "Please Choose a State")){
					if(emailValidator(email, "Please enter a valid email address")){
						if(notEmpty(comments, "Please enter a testimonial comments.")){
							
									return true;
						}
					}
				}
			}
		}
	}
	
	
	return false;
	
}

function notEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		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 madeSelectionState(elem, helperMsg){
	if(elem.value == "State"){
		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 checkboxUserAgree(elem, helperMsg){
	if(!document.zform.useragree.checked) {
		// box is not checked
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
		}
	return true;
}







