
var alertstr = '';

function isValidEmail(mailstr)
{
	var re = /^ *([a-z0-9_-]+\.)*[a-z0-9_-]+@(([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|aero|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) *$/;
	return (re.test(mailstr.toLowerCase()));
}

function isBadDomain(mailstr)
{
	var bd = /(gmail.com|hotmail.com|yahoo.com|aol.com|yahoo.co.uk)/;
	if (bd.test(mailstr.toLowerCase())) {
		alertstr += "Please use a corporate email address.\n\n";
		return true;
	}
	return false;
}

function validateForm(theForm)
{
	var f = theForm;
	alertstr = '';
	var err_docs = false;
	var err_form = false;
	var error_exists = false;

	for( var i in obligatory_fields )
	{
		if ( f.elements[i] )
		{
			if ( (f.elements[i].value == '') || ( f.elements[i].value == obligatory_fields[i] ) || (f.elements[i].value == 0) || ( i == 'phone' && f.elements[i].value == 'XXX-XXX-XXXX' ) )
			{
				validatorSetError(f.elements[i], obligatory_fields[i] );
				f.elements[i].onfocus = validatorUnsetError;
				error_exists = true;
				err_form = true;
			}
			if ( i == 'email' && (!isValidEmail(f.elements[i].value) || isBadDomain(f.elements[i].value)) )
			{
				validatorSetError(f.elements[i], obligatory_fields[i] );
				f.elements[i].onfocus = validatorUnsetError;
				error_exists = true;
				err_form = true;
			}
			if ( f.vemail && i == 'vemail' && (f.vemail.value != f.email.value)) {
				validatorSetError(f.elements[i], 'email addresses do not match' );
				f.elements[i].onfocus = validatorUnsetError;
				error_exists = true;
				err_form = true;

			}
		}
	}

	var num_of_elements = theForm.length;
	var checkbox_selected = false;
	for (var i=0; i<num_of_elements; i++) {
		 var theElement = theForm.elements[i];
		 var element_type = theElement.type;
		 var element_name = theElement.name;
		 var element_value = theElement.value;
		 if (element_type == "checkbox") {
			 if (theElement.checked == true) {
				 checkbox_selected = true;
			 }
		 }

	}
	 if (checkbox_selected == false) {
		 alertstr += "Please select at least one item.\n\n";
		 err_docs = true;
		 error_exists = true;
	 }

	if ( error_exists )
	{
		if (err_form) { $('error-common').style.display = 'block'; }
		if (alertstr != '') { alert ( alertstr ); }
		return false;

	}

	f.submit();
}

function validatorUnsetError ()
{
	this.parentNode.parentNode.className = 'rf_table_row';
	this.value = '';
	$('error-common').style.display = 'none';
}

function validatorSetError ( field, msg )
{
	field.parentNode.parentNode.className = 'rf_table_row error_row';
	if ( field.type == 'text' )
		field.value = msg;
}
