factYears = 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 calcForm(form)

{
   
//Tax, License, and warranty Costs

   var tx1 = 0;
   var txc1 = 0;

   if(form.st1.value >1) {tx1 = form.st1.value / 100; } else {tx1 = form.st1.value; }

   if(tx1 > 0) {txc1 = form.cp1.value * tx1; } else {txc1 = 0; }

   var lc1 = 0;
   var wc1 = form.ew1.value;
   var tp1 = 0;

   lc1 = form.alc1.value * form.yoc1.value;

   tp1 = eval(txc1) + eval(lc1) + eval(wc1);

   form.tlwc1.value = tp1;


//Depreciation Costs

   var at1 = eval(form.ca1.value);
   var addinup1 = factYears[form.ca1.value]; 

   while(at1 < eval(form.yoc1.value) + eval(form.ca1.value) - eval(1)) {
       at1 = eval(at1 + 1);
       addinup1 = addinup1 + factYears[eval(at1 * 1)];
       if(at1 > 50) {break; } else {continue; }
   }

   form.dc1.value = addinup1 / 100 * form.cp1.value;
      

//Finance Costs

   if(form.vf1.value == "n" || form.vf1.value == "N" || form.apr1.value == 0 || form.nmf1.value == 0) {
       form.dp1.value = 0;
       form.apr1.value = 0;
       form.nmf1.value = 0;
       form.fc1.value = 0; } else {

   var int1 = form.apr1.value;

    if (int1 > 1.0) {int1 = int1 / 100.0; form.apr1.value = int1; }

    int1 /= 12;

    var print1 = eval(form.cp1.value) + eval(txc1) + eval(form.alc1.value) + eval(form.ew1.value) - eval(form.dp1.value);

    var paymenton1 = 0;

    var rip1 = 1;

    for (var j1 = 0; j1 < form.nmf1.value; j1++)

        rip1 = rip1 * (1 + int1);

    paymenton1 = (print1 * rip1 * int1) / (eval(rip1) - eval(1));
		
		if(form.nmf1.value / 12 <= form.yoc1.value) {form.fc1.value = parseInt((paymenton1 * form.nmf1.value) - print1,10); } else {

        var ipspread1 = 0;
        var docking1 = 0;
        var addingtime1 = 0;
        var keepgoing1 = 0;
        var addupnum1 =0;

    while(addingtime1 < form.yoc1.value * 12) {

           ipspread1 = print1 * int1;

           docking1 = paymenton1 - ipspread1;

           print1 = print1 - docking1;

           keepgoing1 = keepgoing1 + docking1;

           addupnum1 = addupnum1 + ipspread1;

           addingtime1 = addingtime1 + 1;

           if(addingtime1 > 600) {break; } else {continue; }

          }

     form.fc1.value = parseInt(addupnum1,10);
       }
     }

//Operating Costs

   form.nitro1.value = parseInt(form.mpy1.value * form.yoc1.value / form.mpg1.value * form.cpg1.value,10);

//Maintenance & Repair Costs

   form.mrc1.value = parseInt(form.mmr1.value * 12 * form.yoc1.value,10);


//Insurance Costs

   form.ic1.value = parseInt(form.aip1.value * form.yoc1.value,10);

   
//Total Costs #1

   form.tc1.value = parseInt(eval(tp1) + eval(form.dc1.value) + eval(form.fc1.value) + eval(form.nitro1.value) + eval(form.mrc1.value) + eval(form.ic1.value),10);

   form.opCost1.value = parseInt(form.tc1.value / form.yoc1.value,10);

   form.cpm1.value = form.opCost1.value / form.mpy1.value;

//explain #2

//100
//Purchase Costs 2

   if(form.cp2.value == 0) {
      form.st2.value = form.st1.value;
      form.ew2.value = form.ew1.value;
      form.alc2.value = form.alc1.value;
      form.tlwc2.value = form.tlwc1.value; } else {

   var tx2 = 0;
   var txc2 = 0;

   if(form.st2.value >1) {tx2 = form.st2.value / 100; } else {tx2 = form.st2.value; }

   if(tx2 > 0) {txc2 = form.cp2.value * tx2; } else {txc2 = 0; }

   var lc2 = 0;
   var wc2 = form.ew2.value;
   var tp2 = 0;

   lc2 = form.alc2.value * form.yoc2.value;

   tp2 = eval(txc2) + eval(lc2) + eval(wc2);

   form.tlwc2.value = tp2;

   }

//Depreciation Costs #2

     if(form.cp2.value == 0) {
        form.ca2.value = form.ca1.value;
        form.yoc2.value = form.yoc1.value;
        form.dc2.value = form.dc1.value; } else {

    var at2 = eval(form.ca2.value);
   var addinup2 = factYears[form.ca2.value]; 

   while(at2 < eval(form.yoc2.value) + eval(form.ca2.value) - eval(1)) {
       at2 = eval(at2 + 1);
       addinup2 = addinup2 + factYears[eval(at2 * 1)];
       if(at2 > 50) {break; } else {continue; }
       }

    form.dc2.value = addinup2 / 100 * form.cp1.value;
     }

//Interest Costs #2

    if(form.cp2.value == 0) {
       form.vf2.value = form.vf1.value;
       form.apr2.value = form.apr1.value;
       form.dp2.value = form.dp1.value;
       form.nmf2.value = form.nmf1.value;
       form.fc2.value = form.fc1.value; } else {

   if(form.vf2.value == "n" || form.vf2.value == "N" || form.vf2.value == "") {
       form.dp2.value = "n/a";
       form.apr2.value = "n/a";
       form.nmf2.value = "n/a";
       form.fc2.value = 0; } else {
   
    var int2 = form.apr2.value;

    if (int2 > 1.0) {int2 = int2 / 100.0; form.apr2.value = int2; }

    int2 /= 12;

    var print2 = eval(form.cp2.value) + eval(txc2) + eval(form.alc2.value) + eval(form.ew2.value) - eval(form.dp2.value);

    var paymenton2 = 0;

    var rip2 = 1;

    for (var j2 = 0; j2 < form.nmf2.value; j2++)

        rip2 = rip2 * (1 + int2);

    paymenton2 = (print2 * rip2 * int2) / (eval(rip2) - eval(1));
		
		if(form.nmf2.value / 12 <= form.yoc2.value) {form.fc2.value = parseInt((paymenton2 * form.nmf2.value) - print2,10); } else {

        var ipspread2 = 0;
        var docking2 = 0;
        var addingtime2 = 0;
        var keepgoing2 = 0;
        var addupnum2 =0;

    while(addingtime2 < form.yoc2.value * 12) {

           ipspread2 = print2 * int2;

           docking2 = paymenton2 - ipspread2;

           print2 = print2 - docking2;

           keepgoing2 = keepgoing2 + docking2;

           addupnum2 = addupnum2 + ipspread2;

           addingtime2 = addingtime2 + 1;

           if(addingtime2 > 600) {break; } else {continue; }

          }

       form.fc2.value = parseInt(addupnum2,10);
        }
      }
    }

//Fuel Costs #2

   if(form.cp2.value == 0) {
      form.nitro2.value = form.nitro1.value;
      form.mpy2.value = form.mpy1.value;
      form.cpg2.value = form.cpg1.value;
      form.mpg2.value = form.mpg1.value; } else {

   form.nitro2.value = parseInt(form.mpy2.value * form.yoc2.value / form.mpg2.value * form.cpg2.value,10);

    }

//Maint Costs #2

   if(form.cp2.value == 0) {
       form.mrc2.value = form.mrc1.value;
       form.mmr2.value = form.mmr1.value; } else {

   form.mrc2.value = parseInt(form.mmr2.value * 12 * form.yoc2.value,10);

   }

//Insurance Costs #2

   if(form.cp2.value == 0) {
      form.ic2.value = form.ic1.value;
      form.aip2.value = form.aip1.value; } else {

   form.ic2.value = parseInt(form.aip2.value * form.yoc2.value,10);

   }

//Total Costs #2

   if(form.cp2.value == 0) {
      form.tc2.value = form.tc1.value;
      form.opCost2.value = form.opCost1.value;
      form.cp2.value = form.cp1.value;
      form.cpm2.value = form.cpm1.value; } else {

   form.tc2.value = parseInt(eval(tp2) + eval(form.dc2.value) + eval(form.fc2.value) + eval(form.nitro2.value) + eval(form.mrc2.value) + eval(form.ic2.value),10);

   form.opCost2.value = parseInt(form.tc2.value / form.yoc2.value,10);

   form.cpm2.value = form.opCost2.value / form.mpy2.value;

   }

   var finishedsum = 0;
   var car = "";

   if(form.opCost1.value > form.opCost2.value) {
   finishedsum = eval(form.opCost1.value) - eval(form.opCost2.value);
   car = "Car #2"; } else {
   finishedsum = eval(form.opCost2.value) - eval(form.opCost1.value);
   car = "Car #1"; 
   }

   form.summary.value = (car + " will save you $" + parseInt(finishedsum,10) + " per year.");
 
}


function clearForm(form)

{

    form.cp1.value = "";
    form.st1.value = "";
    form.ew1.value = "";
    form.alc1.value = "";
    form.dp1.value = "";
    form.aip1.value = "";
    form.vf1.value = "";
    form.apr1.value = "";
    form.nmf1.value = "";
    form.mpy1.value = "";
    form.mpg1.value = "";
    form.cpg1.value = "";
    form.mmr1.value = "";
    form.ca1.value = "";
    form.yoc1.value = "";
    form.tlwc1.value = "";
    form.dc1.value = "";
    form.fc1.value = "";
    form.ic1.value = "";
    form.mrc1.value = "";
    form.tc1.value = "";
    form.opCost1.value = "";
    form.cpm1.value = "";
    form.nitro1.value = "";

    form.cp2.value = "";
    form.st2.value = "";
    form.ew2.value = "";
    form.alc2.value = "";
    form.vf2.value = "";
    form.dp2.value = "";
    form.aip2.value = "";
    form.apr2.value = "";
    form.nmf.value = "";
    form.mpy2.value = "";
    form.mpg2.value = "";
    form.cpg2.value = "";
    form.mmr2.value = "";
    form.ca2.value = "";
    form.yoc2.value = "";
    form.tlwc2.value = "";
    form.dc2.value = "";
    form.fc2.value = "";
    form.ic2.value = "";
    form.mrc2.value = "";
    form.tc2.value = "";
    form.opCost2.value = "";
    form.cpm2.value = "";
    form.nitro2.value = "";
    
    form.summary.value = "";
    }