function calculate() {
	if(isNaN(document.calculate_costs.frm_hourly_rate.value) || document.calculate_costs.frm_hourly_rate.value=="") {
		alert("Bookkeeper's hourly rate");
		document.calculate_costs.document.calculate_costs.frm_hourly_rate.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_work.value) || document.calculate_costs.frm_work.value=="") {
		alert("Hours per week, on average, that your bookkeeper works ");
		document.calculate_costs.frm_work.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_ins_cost.value) || document.calculate_costs.frm_ins_cost.value=="") {
		alert("Health insurance costs for bookkeeper ");
		document.calculate_costs.frm_ins_cost.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_pension_benifits.value) || document.calculate_costs.frm_pension_benifits.value=="") {
		alert("Pension benefits (as a % of salary) ");
		document.calculate_costs.frm_pension_benifits.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_paid_vacation.value) || document.calculate_costs.frm_paid_vacation.value=="") {
		alert("Weeks of paid vacation per year ");
		document.calculate_costs.frm_paid_vacation.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_comp.value) || document.calculate_costs.frm_comp.value=="") {
		alert("Payroll taxes & worker's comp (as a % of salary) ");
		document.calculate_costs.frm_comp.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_overhead.value) || document.calculate_costs.frm_overhead.value=="") {
		alert("Overhead (as a % of office space, computer, supplies) ");
		document.calculate_costs.frm_overhead.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_hrs_spend.value) || document.calculate_costs.frm_hrs_spend.value=="") {
		alert("Hours per week you spend with the bookkeeper ");
		document.calculate_costs.frm_hrs_spend.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_value_of_time.value) || document.calculate_costs.frm_value_of_time.value=="") {
		alert("Value of your time (not cost) ");
		document.calculate_costs.frm_value_of_time.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_value_of_time.value) || document.calculate_costs.frm_value_of_time.value=="") {
		alert("Plase enter only numeric values ");
		document.calculate_costs.frm_value_of_time.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_inp_hiring.value) || document.calculate_costs.frm_inp_hiring.value=="") {
		alert("Hiring and ongoing training of bookkeeper ");
		document.calculate_costs.frm_inp_hiring.focus();
		return false;
	}
	if(isNaN(document.calculate_costs.frm_inp_mistakes.value) || document.calculate_costs.frm_inp_mistakes.value=="") {
		alert("CPA fees to review and remedy bookkeeping mistakes ");
		document.calculate_costs.frm_inp_mistakes.focus();
		return false;
	}

	document.calculate_costs.frm_monthly_salary.value = Math.ceil(parseInt(document.calculate_costs.frm_hourly_rate.value) * parseInt(document.calculate_costs.frm_work.value) * 52 /12);
	document.calculate_costs.frm_health_insurance.value = document.calculate_costs.frm_ins_cost.value;
	document.calculate_costs.frm_benifits.value = Math.ceil(parseInt(document.calculate_costs.frm_monthly_salary.value)* parseInt(document.calculate_costs.frm_pension_benifits.value)/100);
	document.calculate_costs.frm_vacation.value =  Math.ceil(parseInt(document.calculate_costs.frm_hourly_rate.value) * parseInt(document.calculate_costs.frm_work.value) *  parseInt(document.calculate_costs.frm_paid_vacation.value)/12);
	document.calculate_costs.frm_tax_ins.value =  Math.ceil(parseInt(document.calculate_costs.frm_monthly_salary.value) * parseInt(document.calculate_costs.frm_comp.value)/100);
	document.calculate_costs.frm_overhead_calc.value =  Math.ceil(parseInt(document.calculate_costs.frm_monthly_salary.value) * parseInt(document.calculate_costs.frm_overhead.value)/100);
	document.calculate_costs.frm_bookkeeper_total.value =  parseInt(document.calculate_costs.frm_monthly_salary.value)+ parseInt(document.calculate_costs.frm_health_insurance.value) + parseInt(document.calculate_costs.frm_benifits.value) + parseInt(document.calculate_costs.frm_vacation.value) + parseInt(document.calculate_costs.frm_tax_ins.value) + parseInt(document.calculate_costs.frm_overhead_calc.value);
	document.calculate_costs.frm_time_book_keeper.value =  Math.ceil(parseInt(document.calculate_costs.frm_hrs_spend.value) * parseInt(document.calculate_costs.frm_value_of_time.value) * 52/12);
	document.calculate_costs.frm_hiting_training.value =  Math.ceil(parseInt(document.calculate_costs.frm_inp_hiring.value)*30/12);
	document.calculate_costs.frm_review_fee.value = document.calculate_costs.frm_inp_mistakes.value;
	document.calculate_costs.frm_oppor_cost.value = parseInt(document.calculate_costs.frm_time_book_keeper.value) + parseInt(document.calculate_costs.frm_hiting_training.value) + parseInt(document.calculate_costs.frm_review_fee.value);
	document.calculate_costs.frm_total.value = "$"+(parseInt(document.calculate_costs.frm_bookkeeper_total.value) + parseInt(document.calculate_costs.frm_oppor_cost.value));
}