
/*
*  Form Validation JS For Gadget v.4
*  Author: Drew Braden (most of code adapted from various sources)
*  Date Modified: 5/29/2008
*
*  Assignments in ini file choose from :
*  +------------------------------------------------------------+
*  |  isAlphabet - letters only (name, title)					|
*  |  isEmail - emails only										|
*  |  isAlphanumeric - numbers and letters						|
*  |  isPassword - special alphanum checker of both passwords 	|
*  |  madeSelection - tests select box has a value				|
*  |  isNotEmpty - most basic, not null							|
*  +------------------------------------------------------------+
example compiled validation function :

##begin example##
function formValidator(){
	// Make quick references to our fields
	var name = document.getElementById('name');
	var email = document.getElementById('email');
	var addr = document.getElementById('address');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	var phone = document.getElementById('phone');

	// Check each input in the order that it appears in the form!
	if(isAlphabet(name, 'name_error', "Please enter only letters for your Name")){
		if(isEmail(email, 'email_error', "Please enter a valid email address")){
			if(isAlphanumeric(addr, 'address_error', "Numbers and Letters Only for Address")){
				if(isAlphanumeric(city, 'city_error', "Numbers and Letters Only for City")){
					if(madeSelection(state, 'state_error', "Please Choose a State")){
						if(isNumeric(zip, 'zip_error', "Please enter a valid zip code")){
							if(isNumeric(phone, 'phone_error', "Please enter a valid phone number")){
								return true;
							}
						}
					}
				}
			}
		}
	}

	return false;

}

##end example##

*/
function isNotEmpty(elem, errorBoxId, helperMsg){
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if(elem.value.length != 0){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		elem.focus(); // set the focus to this input
		return true;
	} else {
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		return false;
	}
}

function isNumeric(elem, errorBoxId, helperMsg){
	var numericExpression = /^[0-9]+[0-9 ]*$/;
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if(elem.value.match(numericExpression) && elem.value.length > 0){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		return true;
	}else{
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, errorBoxId, helperMsg){
	var alphaExp = /^[a-zA-Z ]+$/;
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if(elem.value.match(alphaExp)){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		return true;
	}else{
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, errorBoxId, helperMsg){
	var alphaExp = /^[0-9a-zA-Z ]+$/;
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if(elem.value.match(alphaExp)){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		return true;
	}else{
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}
}

function isPassword(elem, elemTwo, errorBoxId, helperMsg){
	var alphaExp = /^[0-9a-zA-Z ]+$/;
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if((elem.value.match(alphaExp) && elemTwo.value.match(alphaExp) && elem.value == elemTwo.value) || (elem.value.length == 0 && elemTwo.value.length == 0)){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		return true;
	}else{
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}
}

function madeSelection(elem, errorBoxId, helperMsg){
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	if(elem.selectedIndex == '0'){
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}else{
		errorScreen.style.display = 'none';
		errorBox.innerHTML = '';
		return true;
	}
}

function isEmail(elem, errorBoxId, helperMsg){
	errorBox = document.getElementById(errorBoxId);
	errorScreen = errorBoxId;
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		errorBox.innerHTML = '';
		errorScreen.style.display = 'none';
		return true;
	}else{
		errorScreen.style.display = 'block';
		errorBox.innerHTML = helperMsg;
		elem.focus();
		return false;
	}
}
