function isName(str) {
	var re = /^[A-Za-z](['. -])?([A-Za-z](['. -])?)+$/;
	if (str.match(re)) {
		return true;
	}
	return false;
}

function isPhoneNumber(str) {
	var re = /^\(?\d{3}(?:\)|[. -])[. -]?\d{3}[-. ]\d{4}$/  
	if (str.match(re)) {
		return true;
	}
	return false;
}

function isEmail(str) {
	var re =/^[A-Za-z0-9]+[\w.-]*?[A-Za-z0-9]+@[A-Za-z0-9]+[\w.-]*?\.[A-Za-z0-9]{2,5}$/;
	if (str.match(re)) return true;
	return false;
}

function isStreet(str) {
	var re = /^\d{2,}\s\b[A-Z][\w .]*[^\W]\.?$/i;
	if (str.match(re)) return true;
	return false;
}

function isZip(str) {
	var re = /^\d{5}(?:[-._ ]\d{4})?$/;
	if (str.match(re)) return true;
	return false;
}

function isNotEmpty(str) {
	var re = /\w+/
	if (str.match(re)) return true;
	return false;
}

function isEmpty (str) {
	var re = /\w+/
	if (str.match(re)) return false;
	return true;
}

function validateForm(theform)
{
	var form_error = false;
	var formdivs = document.getElementById(theform).childNodes;
	
	for(i = 0; i < formdivs.length; i++)
	{
		var formitems = formdivs[i].childNodes;
		
		for(j = 0; j < formitems.length; j++)
		{
			var el = formitems[j];
			if(el.alt != null)
			{
				if(el.alt == 'name')
				{
					if(isName(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
					
				if(el.alt == 'phone')
				{
					if(isPhoneNumber(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
				
				if(el.alt == 'email')
				{
					if(isEmail(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
				
				if(el.alt == 'address')
				{
					if(isNotEmpty(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
				
				if(el.alt == 'zip')
				{
					if(isZip(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
				
				if(el.alt == 'city')
				{
					if(isNotEmpty(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
				
				if(el.alt == 'state')
				{
					if(isNotEmpty(el.value) == false)
					{
						el.className = 'invalid';
						form_error = true;
					}
					else
						el.className = '';
				}
			}
		}
	}
	
	if(!form_error)
		document.getElementById(theform).submit();
	else
		alert('Some fields are missing or incorrect.\nPlease complete all required fields and try again.');
}