// Test the Best validation

function validateForm()
{
	var valid = "";						
	var name = document.getElementById('customer-name');
	var company = document.getElementById('customer-company');
	var address = document.getElementById('customer-address');
	var city = document.getElementById('customer-city');
	var state = document.getElementById('customer-state');
	var zip = document.getElementById('customer-zip');
	var phone = document.getElementById('customer-phone');
	var fax = document.getElementById('customer-fax');
	var emailadd = document.getElementById('customer-email');
	var part = document.getElementById('part-number');
	var app = document.getElementById('part-application');
				
	valid += checkName(name.value);
	valid += checkCompany(company.value);
	valid += checkAddress(address.value);
	valid += checkCity(city.value);
	valid += checkState(state.options[state.selectedIndex].value);
	valid += checkZIP(zip.value);
	valid += checkPhone(phone.value);
	valid += checkFax(fax.value);
	valid += checkEmail(emailadd.value);
	valid += checkNumber(part.value);
	valid += checkApp(app.value);
	
	if(valid != "")
	{	
		var err_div = document.getElementById('form-error');
		err_div.style.display = 'block';
		err_div.innerHTML = "<p class='intro'>Correct following errors please:</p><ul>" + valid + "</ul>";
		return false;
	}
	return true;
}					
function checkName(fld) 
{
    var error = "";					   
    var namelabel = document.getElementById('form-name');							   
    if(fld == "")
    {              
	   namelabel.className = 'error required';
	   error = "<li><strong>Name</strong> must be provided</li>";
    }					    
    else
    {
		namelabel.className = 'required';	
		error = "";
	}			 
    return error;
}
function checkCompany(fld) 
{
    var error = "";					   
    var companylabel = document.getElementById('form-company');							   
    if(fld == "")
    {              
	   companylabel.className = 'error required';
	   error = "<li><strong>Company</strong> must be provided</li>";
    }					    
    else
    {
		companylabel.className = 'required';	
		error = "";
	}			 
    return error;
}
function checkAddress(fld) 
{
    var error = "";					   
    var addresslabel = document.getElementById('form-address');							   
    if(fld == "")
    {              
	   addresslabel.className = 'error required';
	   error = "<li><strong>Address</strong> must be provided</li>";
    }					    
    else
    {
		addresslabel.className = 'required';	
		error = "";
	}			 
    return error;
}
function checkCity(fld) 
{
    var error = "";					   
    var citylabel = document.getElementById('form-city');							   
    if(fld == "")
    {              
	   citylabel.className = 'error required';
	   error = "<li><strong>City</strong> must be provided</li>";
    }					    
    else
    {
		citylabel.className = 'required';	
		error = "";
	}			 
    return error;
}
function checkState(fld) 
{
    var error = "";					   
    var statelabel = document.getElementById('form-state');				   
    if(fld==0)
    {              
	   statelabel.className = 'error required';
	   error = "<li><strong>State</strong> must be selected</li>";
    }
    else
    {
		statelabel.className = 'required';
		error = "";
    }
    return error;
}
function checkZIP(fld) 
{
    	var error = "";					   
    	var ziplabel = document.getElementById('form-zip');				   
    	// Check for correct zip code
     reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

     if (fld=="" || !reZip.test(fld)) 
	{
     	ziplabel.className = 'error required';
	   	error = "<li><strong>ZIP</strong> is missing or not valid</li>";
     }
	else
	{
		ziplabel.className = 'required';
		error = "";
	}
	return error;
}
function checkPhone(fld) 
{
    	var error = "";					   
    	var phonelabel = document.getElementById('form-phone');				   
    	// Check for correct phone
     rePhone = new RegExp(/\d{3}\-\d{3}\-\d{4}$/);

     if (fld=="") 
	{
     	phonelabel.className = 'error required';
	   	error = "<li><strong>Phone</strong> is missing</li>";
     }
	else if (!rePhone.test(fld))
	{
		phonelabel.className = 'error required';
	   	error = "<li><strong>Phone</strong> is not valid. Please enter as xxx-xxx-xxxx</li>";
	}
	else
	{
		phonelabel.className = 'required';
		error = "";
	}
	return error;
}
function checkFax(fld) 
{
    	var error = "";					   
    	var faxlabel = document.getElementById('form-fax');				   
    	// Check for correct fax
     reFax = new RegExp(/\d{3}\-\d{3}\-\d{4}$/);

     if (fld=="") 
	{
     	faxlabel.className = 'error required';
	   	error = "<li><strong>Fax</strong> is missing</li>";
     }
	else if (!reFax.test(fld))
	{
		faxlabel.className = 'error required';
	   	error = "<li><strong>Fax</strong> is not valid. Please enter as xxx-xxx-xxxx</li>";
	}
	else
	{
		faxlabel.className = 'required';
		error = "";
	}
	return error;
}
function checkEmail(fld) 
{
	var error = "";
	var emaillabel = document.getElementById('form-email');	
	var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	//var emailFilter = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	if(!emailFilter.test(fld)) //test email for illegal characters
	{              
	   emaillabel.className = 'error required';
	   error = "<li><strong>Email Address</strong> was not entered or is invalid</li>";
	}
	else
	{
		emaillabel.className = 'required';
		error = "";
	}								    
	return error;
}
function checkNumber(fld) 
{
    var error = "";					   
    var partlabel = document.getElementById('form-part');				   
    if(fld==0)
    {              
	   partlabel.className = 'error required';
	   error = "<li><strong>Sensor/Limit Switch Number</strong> must be provided</li>";
    }
    else
    {
		partlabel.className = 'required';
		error = "";
    }
    return error;
}
function checkApp(fld) 
{
    var error = "";					   
    var applabel = document.getElementById('form-application');				   
    if(fld==0)
    {              
	   applabel.className = 'error required';
	   error = "<li><strong>Application Description</strong> must be provided</li>";
    }
    else
    {
		applabel.className = 'required';
		error = "";
    }
    return error;
}
