function validate_form()
{
	var return_val = true;
	
	required_field = document.getElementById('required_field_name');
	if(document.getElementById('first_name').value=='' || document.getElementById('last_name').value=='') 
	{
		required_field.innerHTML = 'Please enter your first and last name.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	required_field = document.getElementById('required_field_address');
	if(document.getElementById('street').value=='') 
	{
		required_field.innerHTML = 'Please enter your address.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	required_field = document.getElementById('required_field_city_zip');
	if(document.getElementById('city').value=='' || document.getElementById('zip').value=='') 
	{
		required_field.innerHTML = 'Please enter your city and zip code.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (!validate_zip(document.getElementById('zip').value))
	{
		required_field.innerHTML = 'Please enter a valid zip code.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}
	
	required_field = document.getElementById('required_field_phone');
	if(document.getElementById('phone').value=='' && document.getElementById('mobile').value=='') 
	{
		required_field.innerHTML = 'Please enter a valid phone and/or mobile number including an area code and only digits.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if(document.getElementById('phone').value!='' && !validate_phone(document.getElementById('phone').value))
	{
		required_field.innerHTML = 'Please enter a valid phone and/or mobile number including an area code and only digits.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if(document.getElementById('mobile').value!='' && !validate_phone(document.getElementById('mobile').value))
	{
		required_field.innerHTML = 'Please enter a valid phone and/or mobile number including an area code and only digits.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}
	
	required_field = document.getElementById('required_ameren_utility');
	if(document.getElementById('00N60000001d08G').value=='')  
	{
		required_field.innerHTML = 'Please select your Ameren Utility.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	required_field = document.getElementById('required_field_account');
	if(document.getElementById('00N60000001d5dS').value=='') 
	{
		required_field.innerHTML = 'Please enter your account number.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (!validate_account(document.getElementById('00N60000001d5dS').value))
	{
		required_field.innerHTML = 'Please enter a valid 10 digit account number.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}
	
	required_field = document.getElementById('required_field_meter');
	if(document.getElementById('00N60000001d5eV').value=='') 
	{
		required_field.innerHTML = 'Please enter your meter number.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (!validate_meter(document.getElementById('00N60000001d5eV').value))
	{
		required_field.innerHTML = 'Please enter a valid 8 character meter number (numbers and letters only).';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	required_field = document.getElementById('required_field_notify');
	if(document.getElementById('00N60000001d5ep').checked==false && document.getElementById('00N60000001d5fJ').checked==false)	
	{
		required_field.innerHTML = 'Please select a notification method.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	required_field = document.getElementById('required_field_heat');
	if(document.getElementById('00N60000001d5e1').value=='' && document.getElementById('00N60000001d5eQ').value=='' && document.getElementById('00N60000001d5eB').value=='' && document.getElementById('00N60000001d5g7').value=='')
	{
		required_field.innerHTML = 'Please select or enter a type heating system.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}

	
	required_field = document.getElementById('required_field_email');
	if(document.getElementById('email').value=='') 
	{
		required_field.innerHTML = 'Please enter your email address.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (!validate_email(document.getElementById('email').value))
	{
		required_field.innerHTML = 'Please enter a valid email address.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (document.getElementById('confirm_email').value=='')
	{
		required_field.innerHTML = 'Please confirm your email address.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else if (document.getElementById('email').value!=document.getElementById('confirm_email').value)
	{
		required_field.innerHTML = 'Please check the email address you entered and confirm it by entering the same email address in the Confirm Email field.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}
	

	required_field = document.getElementById('required_field_acknowledge');
	if(document.getElementById('acknowledge').checked==false)	
	{
		required_field.innerHTML = 'Please indicate that you acknowledge the following:';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
		return_val = false;
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}


	if (!return_val)
	{
		required_field = document.getElementById('required_field_submit');
		required_field.innerHTML = 'Please scroll up to complete this form where necessary.';
		required_field.style.visibility = 'visible';
		required_field.style.color = 'red';
	}
	else
	{
		required_field.style.visibility = 'hidden';
	}
	

	return return_val;

	
}

function validate_email(email) 
{
	var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return reg.test(email);
}

function validate_zip(zip) 
{
	var reg = /(^\d{5}$)|(^\d{9}$)|(^\d{5}-\d{4}$)/;
	return reg.test(zip);
}

function validate_account(account) 
{
	var reg = /(^\d{10}$)/;
	return reg.test(account);
}

function validate_meter(meter) 
{
	var reg = /(^([a-zA-Z0-9]){8}$)/;
	return reg.test(meter);
}

function validate_phone(phone)
{
	var reg = /(\(?\d{3}\)?[-\s.]?\d{3}[-\s.]?\d{4}$)/;
	return reg.test(phone);
}
