ageFact = new Array(28,20,16,8,6,5,4,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) function computeForm(form) { var tax1 = 0; var taxCost1 = 0; if(form.salesTax1.value >1) {tax1 = form.salesTax1.value / 100; } else {tax1 = form.salesTax1.value; } if(tax1 > 0) {taxCost1 = form.priceTag1.value * tax1; } else {taxCost1 = 0; } var licCost1 = 0; var warCost1 = form.warranty1.value; var totPurch1 = 0; licCost1 = form.license1.value * form.lifeExpect1.value; totPurch1 = eval(taxCost1) + eval(licCost1) + eval(warCost1); form.purchCost1.value = totPurch1; var timePass1 = eval(form.age1.value); var accumDeprec1 = ageFact[form.age1.value]; while(timePass1 < eval(form.lifeExpect1.value) + eval(form.age1.value) - eval(1)) { timePass1 = eval(timePass1 + 1); accumDeprec1 = accumDeprec1 + ageFact[eval(timePass1 * 1)]; if(timePass1 > 50) {break; } else {continue; } } form.depreCost1.value = accumDeprec1 / 100 * form.priceTag1.value; if(form.finance1.value == "n" || form.finance1.value == "N" || form.downPay1.value == 0 || form.intRate1.value == 0 || form.nPer1.value == 0) { form.downPay1.value = 0; form.intRate1.value = 0; form.nPer1.value = 0; form.intCost1.value = 0; } else { var int1 = form.intRate1.value; if (int1 > 1.0) {int1 = int1 / 100.0; form.intRate1.value = int1; } int1 /= 12; var prin1 = eval(form.priceTag1.value) + eval(taxCost1) + eval(form.license1.value) + eval(form.warranty1.value) - eval(form.downPay1.value); var pmt1 = 0; var pow1 = 1; for (var j1 = 0; j1 < form.nPer1.value; j1++) pow1 = pow1 * (1 + int1); pmt1 = (prin1 * pow1 * int1) / (eval(pow1) - eval(1)); if(form.nPer1.value / 12 <= form.lifeExpect1.value) {form.intCost1.value = parseInt((pmt1 * form.nPer1.value) - prin1,10); } else { var intPort1 = 0; var PrinPort1 = 0; var count1 = 0; var accumPrin1 = 0; var accumInt1 =0; while(count1 < form.lifeExpect1.value * 12) { intPort1 = prin1 * int1; prinPort1 = pmt1 - intPort1; prin1 = prin1 - prinPort1; accumPrin1 = accumPrin1 + prinPort1; accumInt1 = accumInt1 + intPort1; count1 = count1 + 1; if(count1 > 600) {break; } else {continue; } } form.intCost1.value = parseInt(accumInt1,10); } } form.gas1.value = parseInt(form.miles1.value * form.lifeExpect1.value / form.mpg1.value * form.perGal1.value,10); form.maintCost1.value = parseInt(form.maint1.value * 12 * form.lifeExpect1.value,10); form.insCost1.value = parseInt(form.insure1.value * form.lifeExpect1.value,10); form.totCost1.value = parseInt(eval(totPurch1) + eval(form.depreCost1.value) + eval(form.intCost1.value) + eval(form.gas1.value) + eval(form.maintCost1.value) + eval(form.insCost1.value),10); form.annCost1.value = parseInt(form.totCost1.value / form.lifeExpect1.value,10); form.mileCost1.value = form.annCost1.value / form.miles1.value; if(form.priceTag2.value == 0) { form.salesTax2.value = form.salesTax1.value; form.warranty2.value = form.warranty1.value; form.license2.value = form.license1.value; form.purchCost2.value = form.purchCost1.value; } else { var tax2 = 0; var taxCost2 = 0; if(form.salesTax2.value >1) {tax2 = form.salesTax2.value / 100; } else {tax2 = form.salesTax2.value; } if(tax2 > 0) {taxCost2 = form.priceTag2.value * tax2; } else {taxCost2 = 0; } var licCost2 = 0; var warCost2 = form.warranty2.value; var totPurch2 = 0; licCost2 = form.license2.value * form.lifeExpect2.value; totPurch2 = eval(taxCost2) + eval(licCost2) + eval(warCost2); form.purchCost2.value = totPurch2; } if(form.priceTag2.value == 0) { form.age2.value = form.age1.value; form.lifeExpect2.value = form.lifeExpect1.value; form.depreCost2.value = form.depreCost1.value; } else { var timePass2 = eval(form.age2.value); var accumDeprec2 = ageFact[form.age2.value]; while(timePass2 < eval(form.lifeExpect2.value) + eval(form.age2.value) - eval(1)) { timePass2 = eval(timePass2 + 1); accumDeprec2 = accumDeprec2 + ageFact[eval(timePass2 * 1)]; if(timePass2 > 50) {break; } else {continue; } } form.depreCost2.value = accumDeprec2 / 100 * form.priceTag2.value; } if(form.priceTag2.value == 0) { form.finance2.value = form.finance1.value; form.intRate2.value = form.intRate1.value; form.downPay2.value = form.downPay1.value; form.nPer2.value = form.nPer1.value; form.intCost2.value = form.intCost1.value; } else { if(form.finance2.value == "n" || form.finance2.value == "N" || form.finance2.value == "") { form.downPay2.value = "n/a"; form.intRate2.value = "n/a"; form.nPer2.value = "n/a"; form.intCost2.value = 0; } else { var int2 = form.intRate2.value; if (int2 > 1.0) {int2 = int2 / 100.0; form.intRate2.value = int2; } int2 /= 12; var prin2 = eval(form.priceTag2.value) + eval(taxCost2) + eval(form.license2.value) + eval(form.warranty2.value) - eval(form.downPay2.value); var pmt2 = 0; var pow2 = 1; for (var j2 = 0; j2 < form.nPer2.value; j2++) pow2 = pow2 * (1 + int2); pmt2 = (prin2 * pow2 * int2) / (eval(pow2) - eval(1)); if(form.nPer2.value / 12 <= form.lifeExpect2.value) {form.intCost2.value = parseInt((pmt2 * form.nPer2.value) - prin2,10); } else { var intPort2 = 0; var PrinPort2 = 0; var count2 = 0; var accumPrin2 = 0; var accumInt2 =0; while(count2 < form.lifeExpect2.value * 12) { intPort2 = prin2 * int2; prinPort2 = pmt2 - intPort2; prin2 = prin2 - prinPort2; accumPrin2 = accumPrin2 + prinPort2; accumInt2 = accumInt2 + intPort2; count2 = count2 + 1; if(count2 > 600) {break; } else {continue; } } form.intCost2.value = parseInt(accumInt2,10); } } } if(form.priceTag2.value == 0) { form.gas2.value = form.gas1.value; form.miles2.value = form.miles1.value; form.perGal2.value = form.perGal1.value; form.mpg2.value = form.mpg1.value; } else { form.gas2.value = parseInt(form.miles2.value * form.lifeExpect2.value / form.mpg2.value * form.perGal2.value,10); } if(form.priceTag2.value == 0) { form.maintCost2.value = form.maintCost1.value; form.maint2.value = form.maint1.value; } else { form.maintCost2.value = parseInt(form.maint2.value * 12 * form.lifeExpect2.value,10); } if(form.priceTag2.value == 0) { form.insCost2.value = form.insCost1.value; form.insure2.value = form.insure1.value; } else { form.insCost2.value = parseInt(form.insure2.value * form.lifeExpect2.value,10); } if(form.priceTag2.value == 0) { form.totCost2.value = form.totCost1.value; form.annCost2.value = form.annCost1.value; form.priceTag2.value = form.priceTag1.value; form.mileCost2.value = form.mileCost1.value; } else { form.totCost2.value = parseInt(eval(totPurch2) + eval(form.depreCost2.value) + eval(form.intCost2.value) + eval(form.gas2.value) + eval(form.maintCost2.value) + eval(form.insCost2.value),10); form.annCost2.value = parseInt(form.totCost2.value / form.lifeExpect2.value,10); form.mileCost2.value = form.annCost2.value / form.miles2.value; } var fsummary = 0; var scenario = ""; if(form.annCost1.value > form.annCost2.value) { fsummary = eval(form.annCost1.value) - eval(form.annCost2.value); scenario = "Scenario #2"; } else { fsummary = eval(form.annCost2.value) - eval(form.annCost1.value); scenario = "Scenario #1"; } form.summary.value = (scenario + " will save you $" + parseInt(fsummary,10) + " per year."); } function clearForm(form) { form.priceTag1.value = ""; form.salesTax1.value = ""; form.warranty1.value = ""; form.license1.value = ""; form.downPay1.value = ""; form.insure1.value = ""; form.finance1.value = ""; form.intRate1.value = ""; form.nPer1.value = ""; form.miles1.value = ""; form.mpg1.value = ""; form.perGal1.value = ""; form.maint1.value = ""; form.age1.value = ""; form.lifeExpect1.value = ""; form.purchCost1.value = ""; form.depreCost1.value = ""; form.intCost1.value = ""; form.insCost1.value = ""; form.maintCost1.value = ""; form.totCost1.value = ""; form.annCost1.value = ""; form.mileCost1.value = ""; form.priceTag2.value = ""; form.salesTax2.value = ""; form.warranty2.value = ""; form.license2.value = ""; form.finance2.value = ""; form.downPay2.value = ""; form.insure2.value = ""; form.intRate2.value = ""; form.nPer2.value = ""; form.miles2.value = ""; form.mpg2.value = ""; form.perGal2.value = ""; form.maint2.value = ""; form.age2.value = ""; form.lifeExpect2.value = ""; form.purchCost2.value = ""; form.depreCost2.value = ""; form.intCost2.value = ""; form.insCost2.value = ""; form.maintCost2.value = ""; form.totCost2.value = ""; form.annCost2.value = ""; form.mileCost2.value = ""; form.summary.value = ""; }
|