// JavaScript Document
// entry validation functions
var paleRed="#FFC8C8"; // pale red
var white="#FFFFFF";
function checkemail(em){
var str=em.value;
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if (filter.test(str))
{
	testresults=true;
	em.style.backgroundColor=white;
}
else{
	em.style.backgroundColor=paleRed;	
	alert("Please input a valid email address!");
	testresults=false;
}
return (testresults);
}

function checkphone(ph, isreq) {
var num = ph.value.replace(/[^\d]/g,'');
var trimph=ph.value.replace(/^\s+|\s+$/g, '');
if(num.length != 10) {   
	if (num.length==0)
	{
		if (isreq)
		{
			ph.style.backgroundColor=paleRed; 
			alert('Please enter a valid phone number including area code');
		}
		else {
			if (trimph !='')
			{
				ph.style.backgroundColor=paleRed; 
				alert('Please enter a valid phone number including area code');				
			}
			else {
				ph.style.backgroundColor=white;			
			}
		}
	}
	else {
		ph.style.backgroundColor=paleRed; 
		alert('Please enter a valid phone number including area code');		
	}
} 
else {
//Format xxx-xxx-xxxx
ph.value = num.substring(0,3) + "-" + num.substring(3, 6) + "-" + num.substring(6);
ph.style.backgroundColor=white;
}
}

function checkzip(zp){
var zpstr=zp.value;
var tz=/^([0-9]{5})(-[0-9]{4})?$/i;
if (tz.test(zpstr)){
	zp.style.backgroundColor=white;
}
else {
	zp.style.backgroundColor=paleRed;
	alert('Please enter a valid zip code');
	return false;
}
}

function isDate(dt, req) {
	var sDate=dt.value;
	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
	if (dt.value) { // Check if there's a date value being set
		if (re.test(sDate)) {
			var dArr = sDate.split("/");
			var d = new Date(sDate);
			var ldt= d.getMonth() + 1 == dArr[0] && d.getDate() == dArr[1] && d.getFullYear() == dArr[2];
			if (ldt) {
				dt.style.backgroundColor=white;
			} else {
				dt.style.backgroundColor=paleRed;
				alert("Please enter a valid date");
			}
			return ldt;
		} else {
			dt.style.backgroundColor=paleRed;	
			alert("Please enter a valid date with format of mm/dd/yyyy");	
			return false;
		}
	} else { // If no date is set, check whether to prompt the user for a required field
		if(req) {
			dt.style.backgroundColor=paleRed;	
			alert("Please enter a valid date with format of mm/dd/yyyy");	
			return false;
		} else {
			dt.style.backgroundColor=white;
		}
	}
}
function checkSSN(ssn) {
var num = ssn.value.replace(/[^\d]/g,'');
var ts = /^(\d{3})-?\d{2}-?\d{4}$/;
if (ssn.value) {
	if (!ts.test(num)) {
		ssn.style.backgroundColor=paleRed;
		alert("Invalid SSN. Must be 9 digits or in the form NNN-NN-NNNN.");
		return false;
	}
	else if (num.substring(0, 3) == "000" || num.substring(3, 5) == "00" || num.substring(5, 8) == "0000") {
		ssn.style.backgroundColor=paleRed;
		alert("Invalid SSN: SSN's can't start with zeroes.");
		return false;
	}
	else {
		//Format xxx-xx-xxxx
		ssn.value = num.substring(0,3) + "-" + num.substring(3, 5) + "-" + num.substring(5);
		ssn.style.backgroundColor=white;
		return true;
	}
}
else {
	ssn.style.backgroundColor=white;
}
}

