function validateForm(validateZip)
{
	var first_name = document.getElementById("first_name");
	
	if (first_name.value == "")
	{
		return invalidField("First name", first_name);
	}
	
	var last_name = document.getElementById("last_name");
	
	if (last_name.value == "")
	{
		return invalidField("Last name", last_name);
	}
	
	var company = document.getElementById("company");
	
	if (company.value == "")
	{
		return invalidField("Company", company);
	}
	
	var email = document.getElementById("email");
	
	if (email.value == "")
	{
		return invalidField("E-mail", email);
	}
	
	var atPos = email.value.indexOf("@");
	var dotPos = email.value.lastIndexOf(".");
	
	if (atPos < 2 || atPos == email.value.length - 1 || dotPos < 5 || dotPos > email.value.length - 3 || dotPos < atPos || email.value.indexOf("@", atPos + 1) != -1 || dotPos < atPos + 3 || email.value.indexOf(" ") != -1)
	{
		alert("Email address in not in a valid format.");
		
		return invalidField("", email);
	}
	
	var phone = document.getElementById("phone");
	
	if (phone.value == "")
	{
		return invalidField("Phone", phone);
	}
	
	var zip = document.getElementById("zip");
	
	if (validateZip || zip.value != "")
	{
		if (zip.value == "")
		{
			return invalidField("Zip", zip);
		}
		
		var zipRegExp = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
		
		if (!zipRegExp.test(zip.value))
		{
			alert("Zip in not in a valid format.");
			
			return invalidField("", zip);
		}
	}
	
	return true;
}

function invalidField(text, field)
{
	if (text != "")
	{
		alert(text + " is a required field.");
	}
	
	field.focus();
	
	return false;
}