var needavar = 0;

function trim(str)
{
	return str.replace(/^\s+/,'').replace(/\s+$/,'');
}



function showError(str)
{
	document.getElementById("errorMessage").innerHTML = str;
	document.getElementById("errorMessage").style.display = "";
	
	var marks = document.getElementsByName("errorMark");
	
	for(var i = 0; i < marks.length; i++)
	{
		marks[i].style.display = "none";
	}
}

function clearError()
{
	document.getElementById("errorMessage").innerHTML = "";
	document.getElementById("errorMessage").style.display = "none";
}	


function validateForm()
{
	clearError();
	
	if(!checkName()) return false;
	if(!checkEmail()) return false;
	if(!checkOrg()) return false;
	if(!checkAddress()) return false;
	if(!checkUsage()) return false;
	if(!checkRefer()) return false;

	return true;
}

function checkName()
{
	var fName = trim(document.getElementById("firstName").value);
	if(fName == "")
	{
		document.getElementById("firstName").nextSibling.style.display = "";
		showError("Please enter your first name.");
		document.getElementById("firstName").focus();
		return false;
	}
	
	var lName = trim(document.getElementById("lastName").value);
	if(lName == "")
	{
		document.getElementById("lastName").nextSibling.style.display = "";
		showError("Please enter your last name.");
		document.getElementById("lastName").focus();
		return false;
	}
	
	return true;
}

function checkEmail()
{
	var email = trim(document.getElementById("emailAddress").value);
	var confEmail = trim(document.getElementById("confEmailAddress").value.replace(/^\s+/,'').replace(/\s+$/,''));

	var emailFilter=/^\S+@\S+\.\S+$/;
	if(!emailFilter.test(email))
	{
		document.getElementById("emailAddress").nextSibling.style.display = "";
		showError("Please enter a valid email address.");
		document.getElementById("emailAddress").focus();
		return false;
	}
	
	if(email != confEmail)
	{
		document.getElementById("confEmailAddress").nextSibling.style.display = "";
		showError("Please confirm your email address.");
		document.getElementById("confEmailAddress").focus();
		return false;
	}
	
	return true;	
}

function checkOrg()
{
	var org = trim(document.getElementById("organization").value);
	if(org == "")
	{
		document.getElementById("organization").nextSibling.style.display = "";
		showError("Please enter the name of your organization (ie. company, school, etc.).");
		document.getElementById("organization").focus();
		return false;
	}
	
	return true;
}

function checkAddress()
{
	var zipfilter = /^[\d\- ]+$/;
	var phoneFilter = /^[\d\- \(\)\.\+]+$/;

	var addr1 = trim(document.getElementById("address1").value);
	var addr2 = trim(document.getElementById("address2").value);
	var city = trim(document.getElementById("city").value);
	var state = trim(document.getElementById("state").value);
	var zip = trim(document.getElementById("zipcode").value);
	var country = trim(document.getElementById("country").value);
	var phone = trim(document.getElementById("phone").value);
	

	if(addr1 == "")
	{
		document.getElementById("address1").nextSibling.style.display = "";
		showError("Please enter a valid street address.");
		document.getElementById("address1").focus();
		return false;
	}
	
	if(city == "")
	{
		document.getElementById("city").nextSibling.style.display = "";
		showError("Please enter your city.");
		document.getElementById("city").focus();
		return false;
	}	
	
	if(state == "")
	{
		document.getElementById("state").nextSibling.style.display = "";
		showError("Please enter your state.");
		document.getElementById("state").focus();
		return false;
	}	
	
	if(!zipfilter.test(zip))
	{
		document.getElementById("zipcode").nextSibling.style.display = "";
		showError("Please enter a valid zip code.");
		document.getElementById("zipcode").focus();
		return false;
	}	
	
	if(country == "")
	{
		document.getElementById("country").nextSibling.style.display = "";
		showError("Please enter your country.");
		document.getElementById("country").focus();
		return false;
	}	
	
	if(!phoneFilter.test(phone))
	{
		document.getElementById("phone").nextSibling.style.display = "";
		showError("Please enter a valid phone number.");
		document.getElementById("phone").focus();
		return false;
	}
	
	return true;
}

function checkUsage()
{
	var usage = trim(document.getElementById("description").value);
	
	if(usage == "")
	{
		document.getElementById("description").nextSibling.style.display = "";
		showError("Please provide a description of your project.");
		document.getElementById("description").focus();
		return false;
	}
	
	return true;
}

function checkRefer()
{
	if(document.getElementById("referer").value == "")
	{
		document.getElementById("referer").nextSibling.style.display = "";
		showError("Please tell us how you heard about OCTAVEX.");
		document.getElementById("referer").focus();
		return false;	
	}
	
	var other = trim(document.getElementById("otherReferer").value);
	
	if(document.getElementById("referer").value == "Other" && other == "")
	{	
		document.getElementById("otherReferer").nextSibling.style.display = "";
		showError("Please tell us how you heard about OCTAVEX.");
		document.getElementById("otherReferer").focus();
		return false;	
	}
	
	return true;
}

function onReferer()
{		
	if(document.getElementById("referer").value == "Other")
	{
		document.getElementById("otherReferer").disabled = false;
		document.getElementById("otherReferer").style.backgroundColor = "";
		document.getElementById("otherReferer").focus();
	}
	else
	{
		document.getElementById("otherReferer").disabled = true;
		document.getElementById("otherReferer").style.backgroundColor = "#BBBBBB";
	}	
}
