function fix_amount(amount)
{
var number = 0;
var string = amount;
var string2
var string3 = parseInt(string,10);
var string4 = parseInt(string % 1 *100, 10);
if (string4 == "0" || string4 == "1" || string4 == "2" || string4 == "3" || string4 == "4" ||
string4 == "5" || string4 == "6" || string4 == "7" || string4 == "8" || string4 == "9")
string4 = string4+ "0";
string2 = "$" + string3 + "." + string4;
return string2;
}
function no_commas(string)
{
var string2 = string;
var string3 = "";
var ch = "";
for (var i = 0; i < string2.length; i++)
{
ch = string2.substring(i, i+1);
if ((ch < "0" || "9" < ch) && ch != ".")
{
var j = 0;
}
else
{
string3 = string3 + ch;
}
}
return string3;
}
function setDailyhrs()
{
var sel1 = document.temps.select1;
var period_mult = sel1.options[sel1.selectedIndex].value;
if(period_mult == "99")
{
document.temps.dailyhrs.disabled = false;
}
else
{
document.temps.dailyhrs.disabled = true;
}
}
function calculate()
{
var exemp_amount = 0;
var sel2 = document.temps.select2;
var sel3 = document.temps.select3;
var type = sel2.options[sel2.selectedIndex].value;
var exemp = document.temps.exemptions.value;
var disptype = sel3.options[sel3.selectedIndex].value;
var net_wages = 0;
var gross_wages = 0;
for(var x = 0; x < 3;x++)
{
var unit_wage = 0;
var sel1 = document.temps.wage_unit[x];
var period_mult = sel1.options[sel1.selectedIndex].value;
var wage = document.temps.wages[x].value;
var dailyhrs = document.temps.dailyhrs[x].value;
var duration = document.temps.duration[x].value;
var sel2 = document.temps.dur_unit[x];
var dur_unit = sel2.options[sel2.selectedIndex].value;
if(dur_unit == 99)
{
dur_unit = dailyhrs * 240;
}
if(period_mult == 99)
{
period_mult = dailyhrs * 240;
}
unit_wage = wage * period_mult;
unit_wage = (unit_wage * duration)/dur_unit;
gross_wages = gross_wages + unit_wage;
}
if(disptype == 99)
{
disptype = dailyhrs * 240;
}
document.temps.gross_salary.value = fix_amount(gross_wages);
wage = no_commas(wage);
if (document.temps.year.options[document.temps.year.selectedIndex].value == 1)
{
var exemp_amount = 2700;
var ss_base = 68400;
}
else
{
var exemp_amount = 2750;
var ss_base = 72600;
}
var exempt_calc = exemp*exemp_amount;
net_wages = gross_wages - exempt_calc;
if (net_wages < 0)
net_wages = 0;
var plus = 0;
var minus = 0;
var percent = 0.0;
var var_ss_tax = 0.00;
var var_total_tax = 0.00;
var var_med_tax = 0.00;
var var_fed_tax = 0.00;
var per_ss_tax = 0.00;
var per_total_tax = 0.00;
var per_med_tax = 0.00;
var per_fed_tax = 0.00;
var before = 0;
var after = 0;
document.temps.net_salary.value = fix_amount(net_wages/ disptype);
if (document.temps.year.options[document.temps.year.selectedIndex].value == 1)
{
if (type == 1)
{
if (net_wages <= 2650)
{
minus = 0;
plus = 0;
percent = 0;
}
else if (net_wages <= 26900)
{
minus = 2650;
plus = 0;
percent = .15;
}
else if (net_wages <= 57450)
{
minus = 26900;
plus = 3637.50;
percent = .28;
}
else if (net_wages <= 129650)
{
minus = 57450;
plus = 12191.50;
percent = .31;
}
else if (net_wages <= 280000)
{
minus = 129650;
plus = 35156.50;
percent = .36;
}
else
{
minus = 280000;
plus = 34573.50;
percent = .396;
}
}
else
{
if (net_wages <= 6450)
{
minus = 0;
plus = 0;
percent = 0;
}
else if (net_wages <= 46750)
{
minus = 6450;
plus = 0;
percent = .15;
}
else if (net_wages <= 96450)
{
minus = 46750;
plus = 6045.50;
percent = .28;
}
else if (net_wages <= 160350)
{
minus = 96450;
plus = 19961.50;
percent = .31;
}
else if (net_wages <= 282850)
{
minus = 160350;
plus = 39770.50;
percent = .36;
}
else
{
minus = 282850;
plus = 83870.50;
percent = .396;
}
}
}
else
{
if (type == 1)
{
if (net_wages <= 2650)
{
minus = 0;
plus = 0;
percent = 0;
}
else if (net_wages <= 27300)
{
minus = 2650;
plus = 0;
percent = .15;
}
else if (net_wages <= 58500)
{
minus = 27300;
plus = 3697.50;
percent = .28;
}
else if (net_wages <= 131800)
{
minus = 58500;
plus = 12433.50;
percent = .31;
}
else if (net_wages <= 284700)
{
minus = 131800;
plus = 35156.50;
percent = .36;
}
else
{
minus = 284700;
plus = 90200.50;
percent = .396;
}
}
else
{
if (net_wages <= 6450)
{
minus = 0;
plus = 0;
percent = 0;
}
else if (net_wages <= 47500)
{
minus = 6450;
plus = 0;
percent = .15;
}
else if (net_wages <= 98500)
{
minus = 47500;
plus = 6157.50;
percent = .28;
}
else if (net_wages <= 163000)
{
minus = 98500;
plus = 20437.50;
percent = .31;
}
else if (net_wages <= 287600)
{
minus = 163000;
plus = 40432.50;
percent = .36;
}
else
{
minus = 287600;
plus = 85288.50;
percent = .396;
}
}
}
var tot_state_tax = calculateNJ(net_wages, disptype, type);
var_fed_tax = ((net_wages - minus) * percent) + plus;
document.temps.fed_tax.value = fix_amount(var_fed_tax/ disptype);
if ((wage*period_mult) < ss_base)
var_ss_tax = wage*period_mult*.062;
else
var_ss_tax = ss_base*.062;
document.temps.ss_tax.value = fix_amount(var_ss_tax / disptype);
var_med_tax = wage*period_mult*.0145;
document.temps.med_tax.value = fix_amount(var_med_tax / disptype);
var_total_tax = var_fed_tax + var_med_tax + var_ss_tax;
document.temps.total_tax.value = fix_amount(var_total_tax / disptype);
document.temps.net_sal.value = fix_amount((gross_wages - (var_total_tax+ tot_state_tax)) / disptype);
}
function calculateNJ(net_wages, disptype, type)
{
if (net_wages < 0)
net_wages = 0;
var plus = 0;
var minus = 0;
var percent = 0.0;
var var_ss_tax = 0.00;
var var_total_tax = 0.00;
var var_med_tax = 0.00;
var var_fed_tax = 0.00;
var per_total_tax = 0.00;
var per_fed_tax = 0.00;
var before = 0;
var after = 0;
if (document.temps.year.options[document.temps.year.selectedIndex].value == 1)
{
if (type == 1)
{
if (net_wages <= 20000)
{
minus = 0;
plus = 0;
percent = .014;
}
else if (net_wages <= 35000)
{
minus = 70;
plus = 0;
percent = .0175;
}
else if (net_wages <= 40000)
{
minus = 682.50;
plus = 0;
percent = .035;
}
else if (net_wages <= 75000)
{
minus = 1492.50;
plus = 0;
percent = .05525;
}
else
{
minus = 2126.25;
plus = 0;
percent = .0637;
}
}
else
{
if (net_wages <= 20000)
{
minus = 0;
plus = 0;
percent = .014;
}
else if (net_wages <= 50000)
{
minus = 70;
plus = 0;
percent = .0175;
}
else if (net_wages <= 70000)
{
minus = 420;
plus = 0;
percent = .0245;
}
else if (net_wages <= 80000)
{
minus = 1154.50;
plus = 0;
percent = .035;
}
else if (net_wages <= 150000)
{
minus = 2775;
plus = 0;
percent = .05525;
}
else
{
minus = 4042.50;
plus = 0;
percent = .0637;
}
}
}
else
{
if (type == 1)
{
if (net_wages <= 20000)
{
minus = 0;
plus = 0;
percent = .014;
}
else if (net_wages <= 35000)
{
minus = 70;
plus = 0;
percent = .0175;
}
else if (net_wages <= 40000)
{
minus = 682.50;
plus = 0;
percent = .035;
}
else if (net_wages <= 75000)
{
minus = 1492.50;
plus = 0;
percent = .05525;
}
else
{
minus = 2126.25;
plus = 0;
percent = .0637;
}
}
else
{
if (net_wages <= 20000)
{
minus = 0;
plus = 0;
percent = .014;
}
else if (net_wages <= 50000)
{
minus = 70;
plus = 0;
percent = .0175;
}
else if (net_wages <= 70000)
{
minus = 420;
plus = 0;
percent = .0245;
}
else if (net_wages <= 80000)
{
minus = 1154.50;
plus = 0;
percent = .035;
}
else if (net_wages <= 150000)
{
minus = 2775;
plus = 0;
percent = .05525;
}
else
{
minus = 4042.50;
plus = 0;
percent = .0637;
}
}
}
var_fed_tax = ((net_wages - minus) * percent) + plus;
document.temps.fed_tax_state.value = fix_amount(var_fed_tax/ disptype);
var_total_tax = var_fed_tax;
document.temps.total_tax_state.value = fix_amount(var_total_tax / disptype);
return (var_total_tax / disptype);
}