<!--
function validate(form) {
	errors = document.getElementById("errors");
	if(errors) {
		errors = form.removeChild(errors);
		errors = errors.cloneNode(false);
	}	
	else {
		errors = document.createElement('DIV');
		errors.id = 'errors';
		errors.className = 'errors';
	}
	errors.count = 0;
	var heading = document.createElement((document.all) ? 'div' : 'a');
	heading.id = "error_heading";
	heading.className = 'sectionHeading';
	heading.style.display='block';
	heading.style.color = '#FFFFFF';
	heading.style.backgroundColor = '#000000';
	heading.appendChild(document.createTextNode('You must correct the following errors before resubmitting.'));
	errors.appendChild(heading);
	form.insertBefore(errors, form.firstChild);
	
	// Personal Information

	isEmpty(form.first_name);
	isEmpty(form.middle_name);
	isEmpty(form.last_name);
	if(!isEmpty(form.primary_phone))
		isValid('PHONE', form.primary_phone);
	if(!isEmpty(form.alternate_phone, false))
		isValid('PHONE', form.alternate_phone);
	if(!isEmpty(form.email, false))
		isValid('EMAIL', form.email);	
	if(!isEmpty(form.date_of_birth))
		isValid('MM/DD/YYYY', form.date_of_birth);
	for(var i=1;;i++) {
		if(!(document.getElementById('residence_address'	+ i)))
			break;
		isEmpty(document.getElementById('residence_address'	+ i));
		isEmpty(document.getElementById('residence_city' + i));
		isEmpty(document.getElementById('residence_state'	+ i));
		if(!isEmpty(document.getElementById('residence_zipcode'	+ i)))
			isValid('ZIP', document.getElementById('residence_zipcode'	+ i));
	}

	// CDL & Endorsements		
	isEmpty(form.cdl_class);
	isEmpty(form.cdl_state);
	if(!isEmpty(form.cdl_expiration))
		isValid('MM/DD/YYYY', form.cdl_expiration);

	// Education & Training	
	isEmpty(form.highest_grade);
	
	// General Information
	isEmptyBoolean(form.legal_status);
	if(!isEmptyBoolean(form.previous_employment) && form.previous_employment[0].checked)
		if(!isEmpty(form.previous_employment_date))
			isValid('MM/YYYY', form.previous_employment_date);
	isEmptyBoolean(form.denied_license);
	isEmptyBoolean(form.suspended_license);
	isEmptyBoolean(form.drug_alcohol_conviction);
	isEmptyBoolean(form.drug_alcohol_test);
	if(!isEmptyBoolean(form.criminal_conviction))
		for(var i=1;;i++) {
			if(form.criminal_conviction[1].checked || !(document.getElementById('crime_date'	+ i)))
				break;
			if(!isEmpty(document.getElementById('crime_date'	+ i)))
				isValid('MM/YYYY', document.getElementById('crime_date'	+ i));
			isEmpty(document.getElementById('crime_location' + i));
			isEmpty(document.getElementById('crime_offense'	+ i));
		}
	isEmptyBoolean(form.canada_transport);
	
	// Driving Experience
	if(!isEmpty(form.tanker_date_from, false))
		isValid('MM/YYYY', form.tanker_date_from);
	if(!isEmpty(form.tanker_date_to, false))
		isValid('MM/YYYY', form.tanker_date_to);
	if(!isEmpty(form.tanker_miles, false))
		isValid('WHOLENUM', form.tanker_miles);	
	if(!isEmpty(form.semi_date_from, false))
		isValid('MM/YYYY', form.semi_date_from);
	if(!isEmpty(form.semi_date_to, false))
		isValid('MM/YYYY', form.semi_date_to);
	if(!isEmpty(form.semi_miles, false))
		isValid('WHOLENUM', form.semi_miles);				
	
	// Accident Record
	if(!isEmptyBoolean(form.has_accidents)) 
		for(var i=1;;i++) {
			if(form.has_accidents[1].checked || !(document.getElementById('accident_date'	+ i)))
				break;
			if(!isEmpty(document.getElementById('accident_date'	+ i)))
				isValid('MM/YYYY', document.getElementById('accident_date'	+ i));
			isEmpty(document.getElementById('accident_nature' + i));
			isEmpty(document.getElementById('accident_preventable'	+ i));
			isEmpty(document.getElementById('accident_fatalities'	+ i));
			isEmpty(document.getElementById('accident_injured' + i));
		}	

	// Traffic Violations
	if(!isEmptyBoolean(form.has_violations))
		for(var i=1;;i++) {
			if(form.has_violations[1].checked || !(document.getElementById('tv_date'	+ i)))
				break;
			if(!isEmpty(document.getElementById('tv_date'	+ i)))
				isValid('MM/YYYY', document.getElementById('tv_date'	+ i));
			isEmpty(document.getElementById('tv_location' + i));
			isEmpty(document.getElementById('tv_charge'	+ i));
			isEmpty(document.getElementById('tv_penalty'	+ i));
		}

	// Employment History
	for(var i=1;;i++) {
		if(form.has_employment_history.checked || !(document.getElementById('employer_name'	+ i)))
			break;
		isEmpty(document.getElementById('employer_name' + i));
		isEmpty(document.getElementById('employer_city'	+ i));
		isEmpty(document.getElementById('employer_state'	+ i));
		if(!isEmpty(document.getElementById('employer_from_date'	+ i)))
			isValid('MM/YYYY', document.getElementById('employer_from_date'	+ i));
		if(!isEmpty(document.getElementById('employer_to_date'	+ i)))
			isValid('MM/YYYY', document.getElementById('employer_to_date'	+ i));
		if(!isEmpty(document.getElementById('employer_zipcode'	+ i),false))
			isValid('ZIP', document.getElementById('employer_zipcode'	+ i));				
		if(!isEmpty(document.getElementById('employer_wage'	+ i), false))
			isValid('MONEY', document.getElementById('employer_wage'	+ i));
		if(!isEmpty(document.getElementById('employer_phone'	+ i), false))
			isValid('PHONE', document.getElementById('employer_phone'	+ i));		
	}	
	
	if(!form.disclaimer.checked)
		addError(form.disclaimer, 'You must check the Terms & Conditions checkbox to submit your application.');
		
	if(errors.count > 0) {
		 
		document.getElementById("error_heading").focus();
		return false;
	}
	form.removeChild(document.getElementById("errors"));	
	
	// Remove the hidden form elements so their data is not submitted
	
	var elements = new Array('criminal_offense', 'ct_reason_div', 'pl_reason_div', 'prev_emp_div', 
											'dl_reason_div', 'sl_reason_div', 'dac_reason_div', 'dar_reason_div');
	for(var i=0; i<elements.length; i++) {
		var el = document.getElementById(elements[i]);
		if(el.style.display == 'none')
			el.parentNode.removeChild(el);
	}
	return true;
}
//-->
