
function round(number,X) {
// rounds number to X decimal places, defaults to 2
X = (!X ? 2 : X);
return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}


function calcRet(form)
{
  form.Yearly.value = form.Salary.value * form.Contribution.value / 100.0;
  var m = parseFloat(form.Yearly.value, 10) / 12.0;
  m = m + (form.Salary.value * form.Matching.value / 100.0 / 12.0);
  form.MatchContrib.value = (form.Salary.value * form.Matching.value / 100.0);
  var tot = parseFloat(form.CurrentValue.value, 10);
  var i = 0;
  var r = parseFloat(form.PreRate.value, 10) / 100.0 / 12.0;
  var t = (parseFloat(form.RetirementAge.value, 10) -       parseFloat(form.CurrentAge.value, 10)) * 12;
  var ir = parseFloat(form.InflationRate.value, 10) / 100.0 / 12.0;

  for (i=1; i<=t; i=i+1)
  {
    tot = round(tot*Math.exp(r) + m);
    if (i % 12 == 0)
    {
       m = m + (m * form.SalaryRate.value / 100.0);
    }
  }
  form.AccountValue.value = tot;

  var RetirementNeeds = parseFloat(form.DesiredIncome.value, 10);

  for (i=1; i<=t; i=i+1)
  {
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
  }

  var r = parseInt(form.PostRate.value, 10) / 100.0 / 12.0;

  for (i=1; i<=12; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);

  }
  form.OneYear.value = tot;
  for (i=1; i<=12; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);

  }
  form.TwoYear.value = tot;
  for (i=1; i<=12; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.ThreeYear.value = tot;
  for (i=1; i<=12; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.FourYear.value = tot;
  for (i=1; i<=12; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.FiveYear.value = tot;
  for (i=1; i<=12*5; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.TenYear.value = tot;
  for (i=1; i<=12*5; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.FifteenYear.value = tot;
  for (i=1; i<=12*5; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.TwentyYear.value = tot;
  for (i=1; i<=12*10; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.ThirtyYear.value = tot;
  for (i=1; i<=12*10; i=i+1)
  {
    tot = tot*Math.exp(r);
    RetirementNeeds = RetirementNeeds*Math.exp(ir);
    tot = round(tot - RetirementNeeds / 12.0);
  }
  form.FourtyYear.value = tot;
  form.TextBox.value="One Year Value: "+form.OneYear.value+"\n"+"Two Year Value: "+form.TwoYear.value+"\n"+"Three Year Value: "+form.ThreeYear.value+"\n"+"Four Year Value: "+form.FourYear.value+"\n"+"Five Year Value: "+form.FiveYear.value +"\n"+"Ten Year Value: "+form.TenYear.value +"\n"+"Fifteen Year Value: "+form.FifteenYear.value +"\n"+"Twenty Year Value: "+form.TwentyYear.value+"\n"+"Thirty Year Value: "+form.ThirtyYear.value+"\n"+"Forty Year Value: " +form.FourtyYear.value;
}

