

// Form Validation Functions

function isEmailAddr(visitormail)
{
  var result = false;
  var theStr = new String(visitormail);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789.");
}

function allLetters(str)
{
	
	return inValidCharSet(str,"abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}


function allLettersDigits(str)
{
	
	return inValidCharSet(str," abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#.");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}
   
  return result;

}



function confirmEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && (myform.emailconfirm.value !== myform.email.value))
	

	
	{
		alert("e-mail and Confirm e-mail are not equal!");
		formField.focus();
		result = false;
	}
   
  return result;

}





function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	return result;
}


function validNum2(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	if (result && (formField.value.length <2))
	
			{
 			alert('Please enter a two digit number');
			formField.focus();		
			result = false;
			}
	
	return result;
}


function validNum3(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	if (result && (formField.value.length <3))
	
			{
 			alert('Please enter a three digit number');
			formField.focus();		
			result = false;
			}
	
	return result;
}


function validNum4(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	if (result && (formField.value.length <4))
	
			{
 			alert('Please enter a four digit number');
			formField.focus();		
			result = false;
			}
	
	return result;
}




function validNum5(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	if (result && (formField.value.length <5))
	
		{
		alert('Please enter a five digit number for the "' + fieldLabel +'" field.');
		formField.focus();		
		result = false;
		}
	
	return result;
}


// Will test the input for letters only no other characters allowed
function validLetters(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allLetters(formField.value))
 		{
 			alert('Please enter only letters for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.value = ''		
			result = false;
		}
	} 
	
	return result;
}

// Will test the input for letters and digits only no other characters allowed
function validLettersDigits(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allLettersDigits(formField.value))
 		{
 			alert('Please enter only letters and digits for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.value = ''
			formField.focus();
			result = false;
		}
	} 
	
	return result;
}




function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	
	return result;
}



//Checks for radio buttons
function radioCheck(formField,fieldLabel)
{
	var result = true;
	
		
		// set var radio to false
		var radio = false;
		
		// Loop from zero to the one minus the number of radio button selections
		for (counter = 0; counter < formField.length; counter++)
		
			{
			// If a radio button has been selected it will return true
			// (If not it will return false)
			if (formField[counter].checked)
			radio = true;
			}
				
			if (!radio)
			{
			// If there were no selections made display an alert box 
			alert('Please select an option for "' + fieldLabel +'" field.');
			formField[0].focus();
			result = false;
			}
		
		
		
		
	return result;
	
}




function validateForm(myform)
{


	// Customize these calls for your form

	// Start ------->
		
	if (!validLetters(myform.First_Name,"Name", true))
		return false;
		
	if (!validLetters(myform.Last_Name,"Last Name", true))
		return false;
		
	if (!validLetters(myform.Title,"Title", true))
		return false;		
		
	if (!validLetters(myform.Company,"Company", true))
		return false;	
		
	if (!validLettersDigits(myform.Address,"Address", true))
		return false;	
		
	if (!validRequired(myform.State,"State"))
		return false;
		
	if (!validLettersDigits(myform.City,"City", true))
		return false;
		
	if (!validNum5(myform.Zip,"Zip Code",true))
		return false;
		
	if (!validEmail(myform.email,"E-mail",true))
		return false;
		
		

		
	if (!validNum3(myform.Area_Code_1,"area code for Phone",true))
		return false;
		
	if (!validNum3(myform.phone1part1,"the three first digits for Phone", true))
		return false;
		
	if (!validNum4(myform.phone1part2,"the four second digits for Phone", true))
		return false;
		
		
	if (!validNum3(myform.Area_Code_2,"area code for Fax",true))
		return false;
		
	if (!validNum3(myform.phone2part1,"the three first digits for Fax", true))
		return false;
		
	if (!validNum4(myform.phone2part2,"the four second digits for Fax", true))
		return false;
		
	if (!validRequired(myform.URL,"URL"))
		return false;
		
	if (!validRequired(myform.Industry,"Industry"))
		return false;
		
	if (!validRequired(myform.Description_of_Project,"Description of Project"))
		return false;
		
		

		

	// <--------- End
	
	return true;
}

