/*Configure Error Messages*/
var msgText    = "This Field Is Required";
var msgEmail   = "Invalid E-Mail Address";
var msgNumeric = "Not Numeric";
var msgZip	   = "Invalid Zip Code";
var msgSelect  = "Please Choose One";
var msgOK	   = "*";

/*var msgText    = "!";  //No Value In Required Field
var msgEmail   = "!";  //Invalid Email
var msgNumeric = "!";  //Non Numeric Value In Numeric Only Field
var msgZip	   = "!";  //Invalid Zip Code
var msgSelect  = "!";  //No Choice Made From Select Box
var msgOK	   = "*";*/

function validate(obj){	
	var field    = obj;
	var fieldArr = field.className.split("_");
	var msgLoc   = document.getElementById(fieldArr[2]);							  
	
	switch(fieldArr[1]){
		case "text":
			if(checkValueExists(obj.value)==0)
			{
				msgLoc.firstChild.nodeValue = msgText;
				obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];
				return false;				
			}else{
				msgLoc.firstChild.nodeValue = msgOK;				
				obj.className = 'formRequired_' + fieldArr[1] + '_' + fieldArr[2];
				return true;
			}			
		break;
		case "email":
			if(checkValidEmail(obj.value)==0)
			{
				msgLoc.firstChild.nodeValue = msgEmail;
				obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];			
				return false;	
			}else{	
				msgLoc.firstChild.nodeValue = msgOK;			
				obj.className = 'formRequired_' + fieldArr[1] + '_' + fieldArr[2];
				return true;
			}
		break;
		case "numeric":
			if(checkValueExists(obj.value)==0)
			{
				msgLoc.firstChild.nodeValue = msgNumeric;
				obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];
				return false;	
			}
			else
			{
				if(checkNumeric(obj.value)==0)
				{
					msgLoc.firstChild.nodeValue = msgNumeric;
					obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];			
					return false;
				}else{	
					msgLoc.firstChild.nodeValue = msgOK;			
					obj.className = 'formRequired_' + fieldArr[1] + '_' + fieldArr[2];
					return true;
				}
			}
		break;
		case "zip":
			if(checkValidZip(obj.value)==0)
			{
				msgLoc.firstChild.nodeValue = msgZip;
				obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];
				return false;	
			}else{
				msgLoc.firstChild.nodeValue = msgOK;				
				obj.className = 'formRequired_' + fieldArr[1] + '_' + fieldArr[2];
				return true;
			}			
		break;		
		case "select":
			if(checkSelectChoice(obj)==0)
			{
				msgLoc.firstChild.nodeValue = msgSelect;
				obj.className = 'formError_' + fieldArr[1] + '_' + fieldArr[2];
				return false;	
			}else{
				msgLoc.firstChild.nodeValue = msgOK;				
				obj.className = 'formRequired_' + fieldArr[1] + '_' + fieldArr[2];
				return true;
			}
		break;
		
		case "form":		
			if(checkValidForm(obj)==0)			
				return false;
			else
				return true;		
		break;
	}
}

/**********
 *Return 0 if error, 1 is success for all functions below
 ***/
function checkValueExists(value){
	if(value!="")
		return 1;
	else
		return 0;
}

function checkNumeric(value){
	if(!isNaN(value))
		return 1;
	else
		return 0;
}

function checkLength(value,reqLen){
	if(value.length == reqLen)
		return 1;
	else
		return 0;
}

function checkValidZip(value){
	if(checkValueExists(value)==0)
		return 0		
	else
		if(checkLength(value,5)==0)
			return 0
		else
			if(checkNumeric(value)==0)
				return 0;
			else	
				return 1;	
}

function checkValidEmail(email){
	var goodEmail = email.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
			
	if(goodEmail)
		return 1;
	else
		return 0;	
}

function checkSelectChoice(obj){
	if(obj.selectedIndex != 0)
		return 1;
	else
		return 0;
}

function checkValidForm(form){
	var error       = 1;
	var numElements = form.length;

	for(i=0;i<numElements;i++)
	{
		var field    = form[i];
		var fieldArr = field.className.split("_");		
		var msgLoc   = document.getElementById(fieldArr[2]);		
		//alert(field.value)
		if(fieldArr[0]=="formError"){			
			error = 0;			
		}else if(fieldArr[0]=="formRequired"){				
			if(fieldArr[1]=="text"&&checkValueExists(field.value)==0){
				msgLoc.firstChild.nodeValue = msgText;
				error = 0;												
			}else if(fieldArr[1]=="email"&&checkValidEmail(field.value)==0){
				msgLoc.firstChild.nodeValue = msgEmail;
				error = 0;					
			}else if(fieldArr[1]=="zip"&&checkValidZip(field.value)==0){
				msgLoc.firstChild.nodeValue = msgZip;
				error = 0;					
			}else if(fieldArr[1]=="select"&&checkSelectChoice(field)==0){
				msgLoc.firstChild.nodeValue = msgSelect;
				error = 0;					
			}
		}		
	}	
	return error;
}
