function formValid()
{
	var valid=true;

	var requiredFields = new Array("first-name", "last-name", "business-name", "type-of-business", "preferred-phone", "email-address");
	var requiredSelect = new Array("estimate-charges", "currently-accept");
	var requiredEmail = new Array("email-address");
	var i;
	var curr;
	var focus=0;
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;	

	for (i=0;i<requiredFields.length;i++)
		{
		cur = document.getElementById(requiredFields[i]);
		if (cur.value == cur.defaultValue || cur.value.length == 0)
			{
			cur.className += " invalid";
			if (!focus)
				{
				cur.focus();
				focus=1;
				}
			valid = false;
			}
		else
			cur.className = cur.className.replace(/\invalid\b/,'');
		}

	for (i=0;i<requiredSelect.length;i++)
		{
		cur = document.getElementById(requiredSelect[i]);
		var idx = cur.selectedIndex;
		if (cur.options[idx].value == -1)
			{
			cur.className += " invalid";
			if (!focus)
				{
				cur.focus();
				focus=1;
				}
			valid = false;
			}
		else
			cur.className = cur.className.replace(/\invalid\b/,'');
		}

	for (i=0;i<requiredEmail.length;i++)
		{
		cur = document.getElementById(requiredEmail[i]);
		if (!cur.value.match(emailExp))
			{
			cur.className += " invalid";
			if (!focus)
				{
				cur.focus();
				focus=1;
				}
			valid = false;
			}
		else
			cur.className = cur.className.replace(/\invalid\b/,'');
		}

	if (window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest(); }
	else { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
	var cap = document.getElementById('captcha').value;
	var url="http://www.creditcardprocessing.com/captchacheck.php?captcha=" + cap;
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
	if (xmlHttp.responseText != 1)
		{
		if (valid)
			alert("Please enter the numeric code before submitting");
		valid = false;
		}

	return(valid);
}

