function validZipCode(source)
{
	if (source == null ||
		source.value == null ||
		source.value.replace(" ", "").length == 0)
		return false;
		
	if (source.value.length != 5 &&
		source.value.length != 7)
		return false;
		
	if (source.value.length == 7 && 
		source.value.indexOf(' ') != 3)
		return false;
	
	if (source.value.length == 5 &&
		!validNumeric(source.value))
		return false;
	
	return true;
}

function validateNumeric(source)
{
	return validNumeric(source.value);
}

function validNumeric(source)
{
	var validChars = "0123456789";
	var char;
	var result = true;

	if (source.length == 0) return false;

	for (i = 0; i < source.length; i++)
		if (validChars.indexOf(source.charAt(i)) == -1)
			return false;
			
	return true;
}

function validateRequiredString(source)
{
	if (source == null ||
		source.value == null ||
		source.value.replace(" ", "").length == 0)
		return false;
		
	return true;
}

function validatePhoneAreaCode(source)
{
	if (!validateNumeric(source))
		return false;
		
	if (source.value.length != 3)
		return false;
		
	if (source.value.charAt(0) == "1" ||
		source.value.charAt(0) == "0")
		return false;
		
	return true;
}

function validateEmail(source)
{
	if (!validateRequiredString(source))
		return false;
		
	if (source.value.indexOf("@") == -1)
		return false;

	if (source.value.indexOf("@") == 0)
		return false;
		
	if (source.value.indexOf(".") == -1)
		return false;

	if (source.value.indexOf(".") == 0)
		return false;

	if (source.value.indexOf(".") == source.value.indexOf("@") + 1)
		return false;

	return true;
}

	function IsActionKey(code)
	{
		return code > 20 && code < 110;				
	}	
	
	function validateForm()
	{			
	    
			 
		if(!validateRequiredString(document.getElementById("FirstName")))
		{
			alert("First name invalid, please try again.");
			document.getElementById("FirstName").focus();
			
			// document.getElementById("FirstName").style.setProperty("background-color", "#c0c0c0");
			return false;
			 
		}	
							
		if(!validateRequiredString(document.getElementById("LastName")))
		{
			alert("Last name invalid, please try again.");
            document.getElementById("LastName").focus();
			return false;
		}			
				
		if(!validZipCode(document.getElementById("ZipCode")))
		{
			alert("Zip code invalid, please try again.");
			document.getElementById("ZipCode").focus();
			return false;
		}	
		
		if(!validateRequiredString(document.getElementById("HomePhone1")) ||
		!validatePhoneAreaCode(document.getElementById("HomePhone1")) ||
		document.getElementById("HomePhone1").value.length != 3)
		{
			alert("Home phone invalid, please try again.");
			document.getElementById("HomePhone1").focus();
			return false;
		}		
			
		if(!validateRequiredString(document.getElementById("HomePhone2")) ||
		!validateNumeric(document.getElementById("HomePhone2")) ||
		document.getElementById("HomePhone2").value.length != 3)
		{
			alert("Home phone invalid, please try again.");
			document.getElementById("HomePhone2").focus();
			return false;
		}		
			
		if(!validateRequiredString(document.getElementById("HomePhone3")) ||
		!validateNumeric(document.getElementById("HomePhone3")) ||
		document.getElementById("HomePhone3").value.length != 4)
		{
		      
			alert("Home phone invalid, please try again.");
			document.getElementById("HomePhone3").focus();
			return false;
		}	
						
		if(!validateRequiredString(document.getElementById("WorkPhone1")) ||
		!validatePhoneAreaCode(document.getElementById("WorkPhone1")))
		{
			alert("Work phone invalid, please try again.");
			document.getElementById("WorkPhone1").focus();
			return false;
		}		
			
		if(!validateRequiredString(document.getElementById("WorkPhone2")) ||
		!validateNumeric(document.getElementById("WorkPhone2")) ||
		document.getElementById("WorkPhone2").value.length != 3)
		{
			alert("Work phone invalid, please try again.");
			document.getElementById("WorkPhone2").focus();
			return false;
		}		
			
		if(!validateRequiredString(document.getElementById("WorkPhone3")) ||
		!validateNumeric(document.getElementById("WorkPhone3")) ||
		document.getElementById("WorkPhone3").value.length != 4)
		{
			alert("Work phone invalid, please try again.");
			document.getElementById("WorkPhone3").focus();
			return false;
		}
										
		if(!validatePhoneAreaCode(document.getElementById("MobilePhone1")) &&
		document.getElementById("MobilePhone1").value.length != 0)
		{
			alert("Mobile phone invalid, please try again.");
			document.getElementById("MobilePhone1").focus();
			return false;
		}		
			
		if((!validateNumeric(document.getElementById("MobilePhone2")) ||
		document.getElementById("MobilePhone2").value.length != 3) &&
		document.getElementById("MobilePhone2").value.length != 0)
		{
			alert("Mobile phone invalid, please try again.");
			document.getElementById("MobilePhone2").focus();
			return false;
		}		
			
		if((!validateNumeric(document.getElementById("MobilePhone3")) ||
		document.getElementById("MobilePhone3").value.length != 4) &&
		document.getElementById("MobilePhone3").value.length != 0)
		{
			alert("Mobile phone invalid, please try again.");
			document.getElementById("MobilePhone3").focus();
			return false;
		}			

		if(!validateEmail(document.getElementById("Email")))
		{
			alert("Email invalid, please try again.");
			document.getElementById("Email").focus();
			return false;
		}


		if(document.getElementById("BestTimeToCall").value == 0)
		{
			alert("Please choose a time to call.");
			document.getElementById("BestTimeToCall").focus();
			return false;
		}
		
		if(document.getElementById("UnsecuredDebt").value == 0)
		{
			alert("Please choose a debt amount.");
			document.getElementById("UnsecuredDebt").focus();
			return false;
		}
		
		if(document.getElementById("PastDue").value == 0)
		{
			alert("Please indicate if you are past due.");
			document.getElementById("PastDue").focus();
			return false;
		}
		
		
	 return true;
					
	}
	
	