var earlyIRA = new Calculators.planning.EarlyIRA(2009, 2010, 55, 52, 1000000.00, 1000000.00, 0.05, "joint");
//var earlyIRA = new Calculators.planning.EarlyIRA(2002, 2006, 40, 33, 1000000.00, 980000.00, 0.05, "joint");

function updateCalcs() {
  // Update the ira variable
  var age = $("#firstYearTaxpayerAge").val();
  if (isNaN(age) || age < 40 || age > 59) {
    alert("The taxpayer's age must be between 40 and 59");
    calculate();
    return;
  }
  var beneAge = $("#firstYearBeneficiaryAge").val();
  if (isNaN(beneAge) || beneAge < 20 || beneAge > 80) {
    alert("The beneficiary's age must be between 20 and 80");
    calculate();
    return;
  }
  var year = $("#firstYearOfDist").val();
  var subsequentYear = $("#futureYearOfDist").val();
  var balance = $("#firstYearBalance").val().replace(/\$/g, "").replace(/,/g, "");
  var subsequentBalance = $("#futureBalance").val().replace(/\$/g, "").replace(/,/g, "");
  var rate = $("#firstYearRate").val().replace(/%/g, "") / 100;
  var table = $("#firstYearTable").val();
  earlyIRA = new Calculators.planning.EarlyIRA(year, subsequentYear, age, beneAge, balance, subsequentBalance, rate, table);

  calculate();
}

function calculate() {
  // Update form fields
  $("#firstYearOfDist").val(earlyIRA.getFirstYear());
  $("#futureYearOfDist").val(earlyIRA.getSubsequentYear());
  $("#firstYearTaxpayerAge").val(earlyIRA.getAge());
  $("#firstYearBeneficiaryAge").val(earlyIRA.getBeneficiaryAge());
  $("#firstYearBalance").val(earlyIRA.getBalance().formatted());
  $("#futureBalance").val(earlyIRA.getSubsequentBalance().formatted());
  $("#firstYearRate").val(earlyIRA.getRate().formatted());
  $("#futureTaxpayerAge").val(earlyIRA.getSubsequentAge());
  $("#futureBeneficiaryAge").val(earlyIRA.getSubsequentBeneficiaryAge());

  // Method 1 (First Year)
  $("#SingleLifeExpectancy1").val(earlyIRA.getSingleLifeExpectency());
  $("#UniformLifeExpectancy1").val(earlyIRA.getUniformLifeExpectency());
  $("#JointLifeExpectancy1").val(earlyIRA.getJointLifeExpectency());
  $("#SingleAnnualDist1").val(earlyIRA.getSingleAnnualDistributionMinimumDistribution().formatted());
  $("#UniformAnnualDist1").val(earlyIRA.getUniformAnnualDistributionMinimumDistribution().formatted());
  $("#JointAnnualDist1").val(earlyIRA.getJointAnnualDistributionMinimumDistribution().formatted());
  // Method 1 (Subsequent Years)
  //$("#firstYearTable").val();
  $("#LifeExpectancy1b").val(earlyIRA.getLifeExpectencyMethod1b());
  $("#AnnualDist1b").val(earlyIRA.getAnnualDistribution1b().formatted());
  // Method 2
  $("#SingleLifeExpectancy2").val(earlyIRA.getSingleLifeExpectency());
  $("#UniformLifeExpectancy2").val(earlyIRA.getUniformLifeExpectency());
  $("#JointLifeExpectancy2").val(earlyIRA.getJointLifeExpectency());
  $("#SingleAnnualDist2").val(earlyIRA.getSingleAnnualDistributionFixedAmortization().formatted());
  $("#UniformAnnualDist2").val(earlyIRA.getUniformAnnualDistributionFixedAmortization().formatted());
  $("#JointAnnualDist2").val(earlyIRA.getJointAnnualDistributionFixedAmortization().formatted());
  // Method 3
  $("#SingleAnnuity3").val(earlyIRA.getSingleAnnuity());
  $("#JointAnnuity3").val(earlyIRA.getJointAnnuity());
  $("#SingleAnnualDist3").val(earlyIRA.getSingleAnnualDistributionFixedAnnuitization().formatted());
  $("#JointAnnualDist3").val(earlyIRA.getJointAnnualDistributionFixedAnnuitization().formatted());
}

