// Copyright Quality Leads, Inc. 2009

if (!QLI)
{
	var QLI = new Object();
}
if (!QLI.form_validator)
{
	QLI.form_validator = new FormValidator(QLI);
}

// FORM VALIDATOR
function FormValidator( QLI_obj )
{
	this.QLI = QLI_obj;
	return this;
}

FormValidator.prototype.validate = function()
{
	var err_str = "";
	valid = true;

	var former = document.former;
	if (!former)
	{
		return false;
	}

	if (!former.firstname || !former.firstname.value)
	{
		err_str += "First Name\r\n";		
		former.firstname.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.firstname.value.search(/test/i) != -1)
	{
		err_str += "A Valid First Name\r\n";		
		former.firstname.style.backgroundColor = "#FF0000";
		valid = false;	
	}
	else
	{
		former.firstname.style.backgroundColor = "#FFF";
	}

	if (!former.lastname || !former.lastname.value)
	{
		err_str += "Last Name\r\n";		
		former.lastname.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.lastname.value.search(/test/i) != -1)
	{
		err_str += "A Valid Last Name\r\n";		
		former.lastname.style.backgroundColor = "#FF0000";
		valid = false;	
	}
	else
	{
		former.lastname.style.backgroundColor = "#FFF";
	}

	if (!former.email || !former.email.value)
	{
		err_str += "E-Mail Address\r\n";
		former.email.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.email.value.search(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/) == -1)
	{
		err_str += "Please Enter A Valid E-Mail Address\r\n";
		former.email.style.backgroundColor = "#FF0000";
		valid = false; 
	}
	else if (former.email.value != "lead@test.com" && former.email.value.search(/test/i) != -1)
	{
		err_str += "A Valid, Non-Test E-Mail Address\r\n";		
		former.email.style.backgroundColor = "#FF0000";
		valid = false;	
	}
	else
	{
		former.email.style.backgroundColor = "#FFF";
	}

	if (!former.areacode || !former.areacode.value)
	{
		err_str += "Phone Area Code\r\n";
		former.areacode.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.areacode.value.search(/\d{3}/) == -1)
	{
		err_str += "Please Enter A Valid Phone Area Code\r\n";
		former.areacode.style.backgroundColor = "#FF0000";
		valid = false; 
	}
	else
	{
		former.areacode.style.backgroundColor = "#FFF";
	}

	if (!former.prefix || !former.prefix.value)
	{
		err_str += "Phone Prefix\r\n";
		former.prefix.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.prefix.value.search(/\d{3}/) == -1)
	{
		err_str += "Please Enter A Valid Phone Prefix\r\n";
		former.prefix.style.backgroundColor = "#FF0000";
		valid = false; 
	}
	else
	{
		former.prefix.style.backgroundColor = "#FFF";
	}

	if (!former.suffix || !former.suffix.value)
	{
		err_str += "Phone Number\r\n";
		former.suffix.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.suffix.value.search(/\d{4}/) == -1)
	{
		err_str += "Please Enter A Valid Phone Number\r\n";
		former.suffix.style.backgroundColor = "#FF0000";
		valid = false; 
	}
	else
	{
		former.suffix.style.backgroundColor = "#FFF";
	}

	if (!former.address || !former.address.value)
	{
		err_str += "Street Address\r\n";
		former.address.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.address.value.search(/test/i) != -1)
	{
		err_str += "A Valid Address\r\n";		
		former.address.style.backgroundColor = "#FF0000";
		valid = false;	
	}
	else
	{
		former.address.style.backgroundColor = "#FFF";
	}

	if (!former.zip || !former.zip.value)
	{
		err_str += "Zip Code\r\n";
		former.zip.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else if (former.zip.value.search(/^\d{5}$/) == -1)
	{
		err_str += "Please Enter A Valid Zip Code\r\n";
		former.zip.style.backgroundColor = "#FF0000";
		valid = false; 
	}
	else
	{
		former.zip.style.backgroundColor = "#FFF";
	}

	if (!former.graduation_year || !former.graduation_year.value)
	{
		err_str += "Graduation Year\r\n";
		former.graduation_year.style.backgroundColor = "#FF0000";
		valid = false;
	}
	if (former.graduation_year.value.search(/^\d{4}$/) == -1)
	{
		err_str += "Please select a valid Graduation Year\r\n";
		former.graduation_year.style.backgroundColor = "#FF0000";
		valid = false;
	}
	else
	{
		former.graduation_year.style.backgroundColor = "#FFF";
	}

	if (!former.career || !former.career.value || former.career.value == "NONE")
	{
		err_str += "Bad Career Value, This form will not work.\r\n";		
		valid = false;
	}

	if (!err_str && valid)
	{
		former.submit();		
		return true;
	}
	else
	{
		err_str = "Please Fill Out The Following Required Fields:\r\n" + err_str;
		alert(err_str);
		return false;
	}
};
