	nav = new Object();
	nav.n = navigator.appName;
	nav.v = parseInt(navigator.appVersion);

	

		// This area adds up the form
		function compute(form)
		{

		AddComp(form);
		Addpaytax(form);

		form.retcost_perc.value=(eval(form.salary.value)*(eval(form.retention.value)/100));
		form.hr_perc.value = (form.salary.value*(form.hr.value/100));
		form.manover_perc.value = (form.salary.value*(form.manoverhead.value/100));
		form.recruit_perc.value= (form.salary.value*(form.reccost.value/100));
		form.turnover_perc.value = (form.salary.value*(form.turnover.value/100));
		form.benefits_perc.value = (form.salary.value*(form.benefits.value/100));
		form.othercomp_perc.value = (form.salary.value*(form.othercomp.value/100));
		

		form.badhires_perc.value = (form.salary.value*(form.badhires.value/100));
		form.unproductive_perc.value = (form.salary.value*(form.unproductive.value/100));
		
		form.oppcost_perc.value = (eval(form.oppcost.value)*(form.positionmonths.value));
		

		form.paytaxtotal.value =(eval(form.fica.value) +  eval(form.fedunemp.value) + eval(form.stateunemp.value)+eval(form.workcomp.value));

		form.paytaxtotal.value = form.paytaxtotal.value.substring(0,5);

		form.paytaxtotal_perc.value=(form.salary.value*(form.paytaxtotal.value/100));

		form.total.value = (eval(form.salary.value) + eval(form.unproductive_perc.value)+eval(form.badhires_perc.value)+eval(form.retcost_perc.value) + eval(form.hr_perc.value)+ eval(form.manover_perc.value)  + eval(form.recruit_perc.value) + eval(form.turnover_perc.value) + eval(form.oppcost_perc.value) + eval(form.trainexp.value) + eval(form.relo.value) + eval(form.bonus.value) +  eval(form.benefits_perc.value) + eval(form.paytaxtotal_perc.value)+eval(form.othercomp_perc.value));
		form.total.value = formatNumber(form.total.value,2);

		form.prodhours.value =( eval(form.totalhours.value)-eval(form.vacation.value*8)-eval(form.holidays.value*8)-eval(form.sickdays.value*8)-eval(form.training.value));
		form.prodhours.value = formatNumber(form.prodhours.value,0);
		
		form.actprodhours.value = (eval(form.prodhours.value)*(1-(eval(form.unproductive.value/100))));
		form.actprodhours.value = formatNumber(form.actprodhours.value,0)
		
		form.costperhour.value  = (eval(form.total.value)/eval(form.actprodhours.value));
		form.costperhour.value = form.costperhour.value.substring(0,5);
		form.costperhour.value = formatNumber(form.costperhour.value,2);
		form.comptotal.value = eval(form.salary.value)+eval(form.bonus.value)+eval(eval(form.othercomp.value/100)*eval(form.salary.value));
		form.comptotal.value = formatNumber(form.comptotal.value,2);
		
		}

		function IsBlank(v) {
		for (var i = 0; i < v.length; i++) {
			var c = v.charAt(i);
			if ((c != ' ') && (c != '\t') && (c != '\n')) return false;
		}
		return true;
		}


		function checkblank(v)
		{
			if (IsBlank(v.value))
			{
				v.value=0;
				return;
			}

			return;
		}

		function AddComp(form)

		{

		if (IsBlank(form.salary.value))
		{
			form.salary.value=0;
		}

		if (IsBlank(form.othercomp.value))
		{
			form.othercomp.value=0;
		}

		if (IsBlank(form.bonus.value))
		{
			form.bonus.value=0;
		}

		form.othercomp_perc.value = (form.salary.value*(form.othercomp.value/100));
		form.comptotal.value = (eval(form.othercomp_perc.value)+eval(form.salary.value)+eval(form.bonus.value));
		form.comptotal.value= form.comptotal.value.substring(0,5);
		return;
		}

		function Addpaytax(form)
		{

		if (IsBlank(form.fica.value))
		{
			form.fica.value=0;
		}

		if (IsBlank(form.fedunemp.value))
		
		{
			form.fedunemp.value=0;
		}

		if (IsBlank(form.stateunemp.value))
		{
			form.stateunemp.value=0;
		}
		
		if (IsBlank(form.workcomp.value))
		{
			form.workcomp.value=0;
		}

		form.paytaxtotal.value =(eval(form.fica.value) + eval(form.fedunemp.value) + eval(form.stateunemp.value)+eval(form.workcomp.value));
		
		form.paytaxtotal.value = form.paytaxtotal.value.substring(0,5);
		return;
		}

		// This area resets the form default values
		function ResetForm(form)
		{
		form.salary.value = "75000.00";
		form.bonus.value="4000.00";
		form.othercomp.value="10";
		form.comptotal.value="86500.00";
		

		form.totalhours.value="2080";
		form.vacation.value="10";
		form.holidays.value="10";
		form.sickdays.value="5"
		form.training.value="120";
		form.retention.value="5";
		form.hr.value="2";
		form.manoverhead.value="5";
		form.reccost.value="20";
		form.turnover.value="10";
		form.badhires.value="10";
		form.unproductive.value="15";

		form.oppcost.value="20000.00";
		form.positionmonths.value="3";
		form.trainexp.value="5000.00";
		form.relo.value="10000.00";

		form.retcost_perc.value="0";
		form.hr_perc.value="0";
		form.manover_perc.value="0";
		form.recruit_perc.value="0";
		form.unproduct_perc.value="0";
		form.turnover_perc.value="0";
		form.oppcost_perc.value="0";
		form.benefits_perc.value="0";
		form.paytaxtotal_perc.value="0";
		form.badhires_perc.value="0";
		form.unproductive_perc.value="0";

		form.othercomp_perc.value="5000.00";

		form.benefits.value="15";

		// Payroll Taxes
		form.fica.value="7.65";
		form.fedunemp.value=".8";
		form.stateunemp.value="2.7";
		form.workcomp.value=".4";
		form.paytaxtotal.value="11.55";
		
		// Totals
		form.total.value="231662.50";
		form.prodhours.value="1760";
		form.actprodhours.value="1496";
		form.costperhour.value="154.80"
		}
function formatNumber(myNum, numOfDec)
   {
      var decimal = 1
      for(i=1; i<=numOfDec;i++)
         decimal = decimal *10

      var myFormattedNum = (Math.round(myNum * decimal)/decimal).toFixed(numOfDec)
	  return myFormattedNum;
   } 