/************************
	Form Validation
*************************/

function validateFormOnSubmit(theForm)
{
		
	var reason = "";

	if(document.getElementById("salescontact"))
	{
		reason += validateEmpty(theForm.firstname);
		reason += validateEmpty(theForm.lastname);
		reason += validateEmpty(theForm.companyname);
		reason += validateEmpty(theForm.jobtitle);
		reason += validateEmail(theForm.email);
		reason += validateEmpty(theForm.phone);
	}
	else if(document.getElementById("whitepaper"))
	{
		reason += validateEmpty(theForm.firstname);
		reason += validateEmpty(theForm.lastname);
		reason += validateEmpty(theForm.companyname);
		reason += validateEmpty(theForm.jobtitle);
		reason += validateEmail(theForm.email);
		reason += validateEmpty(theForm.phone);
	}
	else if(document.getElementById("whitepaperspecific"))
	{
		reason += validateEmpty(theForm.firstname);
		reason += validateEmpty(theForm.lastname);
		reason += validateEmpty(theForm.companyname);
		reason += validateEmail(theForm.email);
		reason += validateEmpty(theForm.story);
	}
	else if(document.getElementById("duffroad"))
	{
		reason += validateEmpty(theForm.firstname);
		reason += validateEmpty(theForm.lastname);
		reason += validateEmpty(theForm.companyname);
		reason += validateEmpty(theForm.jobtitle);
		reason += validateEmail(theForm.email);
		reason += validateEmpty(theForm.phone);
	}
	else if(document.getElementById("user-conference"))
	{
		reason += validateEmpty(theForm.first_name);
		reason += validateEmpty(theForm.last_name);
		reason += validateEmpty(theForm.company);
		reason += validateEmpty(theForm.job_title);
		reason += validateEmail(theForm.email);
		reason += validateEmpty(theForm.phone);
	}
		
	if (reason != "")
	{
		alert("Some fields need correction:\n" + reason);
	return false;
	}

	return true;
}

// Check that no fields marked as required are empty.

function validateEmpty(fld)
{
	var error = "";
	
	if (fld.value.length == 0)
	{
		fld.style.background = '#FFE2AE'; 
		error = "The required field has not been filled in.\n"
	}
	else
	{
		fld.style.background = 'White';
	}
	return error;
}

// Validate the email by testing for illegal characters and a complete address.

function trim(s)
{
	return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
	var error="";
	var tfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
	if (fld.value == "")
	{
		fld.style.background = '#FFE2AE';
		error = "You didn't enter an email address.\n";
	}
	else if (!emailFilter.test(tfld))
	{
		fld.style.background = '#FFE2AE';
		error = "Please enter a valid email address.\n";
	}
	else if (fld.value.match(illegalChars))
	{
		fld.style.background = '#FFE2AE';
		error = "The email address contains illegal characters.\n";
	}
	else
	{
		fld.style.background = 'White';
	}
    return error;
}