//Created by Santiago Mallea - HTML/Java-script fall 2006 Project - student id: xp42 - date: 12-04-06
function validateElement(anElement,dynStatus,dynLabel)
{ 
	if(passedGlobalCheck(anElement,dynStatus,dynLabel)) //perform global check. Things that all field shoud comply
	{
		var passedSpecific = passedSpecificCheck(anElement,dynStatus,dynLabel); //perform spcific check
		if(!passedSpecific)
			anElement.focus();
		return passedSpecific;
	}
	else
	{
		anElement.focus();
		return false;
	}
}
function passedGlobalCheck(anElement,dynStatus,dynLabel)
{	
	if(anElement.value=="" || anElement.value.length==0)
	{
		var error = document.getElementById(dynStatus);
		var label = document.getElementById(dynLabel);
		error.style.visibility="visible";
		anElement.style.borderColor="#FF0000";
		label.style.color="#FF0000";
		error.innerHTML="Required";
		return false;
	}
	return true;
}
function passedSpecificCheck(anElement,dynStatus,dynLabel)
{
	var passedUnique;
	var fieldType = anElement.id;
	switch (fieldType)
	{
		case "phone":
  			passedUnique = passedPhone(anElement,dynStatus,dynLabel);
  		break
		case "address":
  			passedUnique = passedStAddress(anElement,dynStatus,dynLabel);
  		break
		case "first":
  			passedUnique = passedName(anElement,dynStatus,dynLabel);
  		break
		case "last":
  			passedUnique = passedName(anElement,dynStatus,dynLabel);
  		break
		case "city":
  			passedUnique = passedCity(anElement,dynStatus,dynLabel);
  		break
		case "zip":
  			passedUnique = passedZip(anElement,dynStatus,dynLabel);
  		break
		default:
  			passedUnique = false;
	}
	return passedUnique;
}
function passedPhone(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	var passCheck;
	var phoneReg=/^((1-?[0-9]{3}-?)|(1?\([0-9]{3}\)\s?)|(1?[0-9]{3}[\s\-]?))[0-9]{3}[-\s]?[0-9]{4}$/;
	if(phoneReg.test(anElement.value))
	{
		anElement.style.borderColor="#CCCCCC";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	}
	else
	{
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";	
		label.style.color="#FF0000";
		error.innerHTML = "Invalid Entry";
	}	
	return passCheck;
}
function passedStAddress(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	var passCheck;
	var addressReg=/^[0-9]{1,5}[a-zA-Z]?\s[a-zA-Z]+\s?[a-zA-Z][\w\s\.#]+$/; // old: /^\d+[\s\w+]+$/
	if(addressReg.test(anElement.value))
	{
		anElement.style.borderColor="#CCCCCC";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	}
	else
	{
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";	
		label.style.color="#FF0000";
		error.innerHTML = "Invalid Entry";
	}
	return passCheck;
}
function passedName(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	var passCheck;
	var nameReg=/^[a-zA-Z]+$/;
	if(nameReg.test(anElement.value))
	{
		anElement.style.borderColor="#CCCCCC";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	}
	else
	{
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";
		error.innerHTML = "Invalid Entry";
		label.style.color="#FF0000";
	}
	return passCheck;
}
function passedCity(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	var passCheck;
	var cityReg=/^[a-zA-Z][a-zA-Z\s]+[a-zA-Z]$/;
	if(cityReg.test(anElement.value))
	{
		anElement.style.borderColor="#CCCCCC";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	}
	else
	{
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";
		error.innerHTML = "Invalid Entry";
		label.style.color="#FF0000";
	}
	return passCheck;
}
function passedZip(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	var passCheck;
	var zipReg=/^\d{5}$/;
	if(zipReg.test(anElement.value))
	{
		anElement.style.borderColor="#CCCCCC";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	}
	else
	{
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";
		error.style.whiteSpace="nowrap";
		error.innerHTML = "Invalid Entry";
		label.style.color="#FF0000";
	}
	return passCheck;
}
function passedState(anElement,dynStatus,dynLabel)
{
	var error = document.getElementById(dynStatus);
	var label = document.getElementById(dynLabel);
	 var selectedOpt = anElement.options[anElement.selectedIndex].value;
	 if(selectedOpt!="none")
	 {
		anElement.style.borderColor="#CCCCCC";
		error.innerHTML = " ";
		error.style.visibility="hidden";
		label.style.color="#000000";
		passCheck = true;
	 }
	 else
	 {
		passCheck = false;
		anElement.style.borderColor="#FF0000";
		error.style.visibility="visible";
		error.innerHTML = "Required";
		label.style.color="#FF0000";
	 }
	return passCheck;	 
}