	var requiredword = "required";
	var otherkeyword = "other"; //lowercase

	function validateEmail( email )
	{
		var emailtemp = email.value;
		var emailfilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-\_\.])+\.)+([a-zA-Z0-9]{2,4})+\s*$/;
		return emailfilter.test(emailtemp);
	}

	function validatePhone( phone )
	{
		var phonetemp = phone.value;
		phonetemp = phonetemp.replace(/[\-\. ()\_\+]/g, "");
		numbers = /^\d{7,}$/;
		return numbers.test(phonetemp);
	}


	function validateNotEmpty( str )
	{
		exp = /.+/;
		return exp.test(str.value);
	}

	function validateZip( zip )
	{
		return validateNotEmpty(zip);
	}

	function validateDropDown( dropdown, other )
	{

		if( dropdown.options[dropdown.selectedIndex].value == "" )
			return false;

		if( dropdown.options[dropdown.selectedIndex].text.toLowerCase().indexOf(otherkeyword) != -1 && other != null){
			if (!validateNotEmpty(other))
				return false;
				
		}

		return true;
	}

	function validateRadio( radio ) 
	{
	  if ( ( document.lwform.contact[0].checked == false )
    	&& ( document.lwform.contact[1].checked == false ) )
			 return false;
			   else
			   return true;
	}
	
	   
	  function check_radios() 
	  {
		  if ( ( document.lwform.hastraded[0].checked == false )
			&& ( document.lwform.hastraded[1].checked == false ) )
			 return false;
			   else
			   return true;
	  }
	  
	function validateAcctType( acctRadio ) 
	{
	  if ( ( document.lwform.rdgonlineaccttype[0].checked == false )
    	&& ( document.lwform.rdgonlineaccttype[1].checked == false )
		&& ( document.lwform.rdgonlineaccttype[2].checked == false ))
			 return false;
			   else
			   return true;
	}
	
	function validateServiceType( service ) 
	{
	  if ( ( document.lwform.directed.checked == true )
    	&& ( document.lwform.lindplus.checked == true ))
			 return false;
			   else
			   return true;
	}
	
	function validateForm(frmToValidate, section)
	{
		var frm      = document.getElementById(frmToValidate);
		var errorMsg = "";
		
		for(i = 0; i < frm.elements.length; i++)
		{
			fields   = null;
			required = false;

			if (frm.elements[i].className.indexOf(requiredword) == 0)
			{
				fields   = (frm.elements[i].className.substr(requiredword.length+1)).split(" ");
				required = true;
			}
			else
			{
				fields = frm.elements[i].className.split(" ");
			}

			if (fields[1] == section || section == null)
			{
				switch (fields[0])
				{
					case 'email':
						if(required || frm.elements[i].value != "")
						{
							if( !validateEmail(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'phone':
						if(required || frm.elements[i].value != "")
						{
							if( !validatePhone(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'evening':
						if(required || frm.elements[i].value != "")
						{
							if( !validatePhone(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'text':
						if(required)
						{
							if( !validateNotEmpty(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'zipcode':
						if(required || frm.elements[i].value != "")
						{
							if( !validateZip(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'radio':
						if(required || frm.elements[i].value != "")
						{
							if( !validateRadio(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'radio2':
						if(required || frm.elements[i].value != "")
						{
							if( !check_radios(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					case 'acctRadio':
						if(required || frm.elements[i].value != "")
						{
							if( !validateAcctType(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					
					case 'service':
						if(required || frm.elements[i].value != "")
						{
							if( !validateServiceType(frm.elements[i]) )
							{
								errorMsg += "'" + frm.elements[i].title + "'\n";
							}
						}
					break;		
					case 'dropdown':
						if(required || frm.elements[i].options[frm.elements[i].selectedIndex].value != "" )
						{
							other = null;

							if(fields.length == 3 && fields[2] != "noother") { other = document.getElementById(fields[2]); }
	
							if( !validateDropDown( frm.elements[i], other ) )
							{
								errorMsg += "'" + frm.elements[i].title + "' is required.\n";
							}
						}
					break;
					default:
					break;
				}
			}
		}
		
		if(errorMsg == "")
			return true;
		else
		{
			alert(errorMsg);
			return false;
		}
		
	};
