function CalculateCredit()
{
  var form = document.forms[FormCalculatorCredit];
  var housePrice = RepairFloatField('cc_housePrice', true);
  var ownAmount = RepairFloatField('cc_ownAmount', true);
  var interestRate = RepairFloatField('cc_interestRate', true);
  var period = RepairFloatField('cc_period', true);
  var rateType = CheckedRadioButtonValue('cc_rateType');
  if(ownAmount == '') ownAmount = 0.0;
  var creditAmount = (housePrice != '') ? housePrice - ownAmount : '';
  form.elements['cc_creditAmount'].value = FormatMoneyForDisplay(creditAmount, 2);
  if(creditAmount == '' || interestRate == '' || period == '' ||
     interestRate <= 0.0 || interestRate > 99.0 || period < 1 || period > 99)
  {
    form.elements['cc_firstRate'].value = '';
    form.elements['cc_interestTotal'].value = '';
  }else{
    var firstRate, totalInterest;
    if(rateType == 'constant'){
      firstRate = CalculateConstantRate(creditAmount, period*12, interestRate);
      totalInterest = CalculateConstantRateTotalInterest(creditAmount, period*12, interestRate);
    }else{
      firstRate = CalculateDecreasingRate(creditAmount, period*12, interestRate);
      totalInterest = CalculateDecreasingRateTotalInterest(creditAmount, period*12, interestRate);
    }
    form.elements['cc_firstRate'].value = FormatMoneyForDisplay(firstRate, 2);
    form.elements['cc_interestTotal'].value = FormatMoneyForDisplay(totalInterest, 2);
  }
}

function CalculateConstantRate(amount, monthCount, interestRate)
{
  interestRate = interestRate/1200.0  // na miesiąc ułamek
  var r = Math.pow(1.0 + interestRate, monthCount);
  return (amount * r * (interestRate/(r - 1.0)));
}

function CalculateConstantRateTotalInterest(amount, monthCount, interestRate)
{
  interestRate = interestRate/1200.0  // na miesiąc ułamek
  var r = Math.pow(1.0 + interestRate, monthCount);
  return (amount * (r*monthCount*interestRate/(r-1.0) - 1.0));
}

function CalculateDecreasingRate(amount, monthCount, interestRate)
{
  interestRate = interestRate/1200.0  // na miesiąc ułamek
  return (amount*(interestRate + 1.0/monthCount));
}

function CalculateDecreasingRateTotalInterest(amount, monthCount, interestRate)
{
  interestRate = interestRate/1200.0  // na miesiąc ułamek
  return (amount*monthCount*interestRate/2.0);
}
