<!--
/* Note: the values used to calculate the interest rate per period are correct  */
   
var pmt=0;
var rate=0.0755/26.0;
var pv=0;
var nper=25*26;
var termYears = 25;

function resetPV() {
 wrongPV = document.forms.calculator.Principal.value +  "***";
 document.forms.calculator.Principal.value = wrongPV;
 document.forms.calculator.Principal.select();
 document.forms.calculator.Principal.focus();
}
function resetPMT() {
 wrongPV = document.forms.calculator.PmtAmount1.value +  "***";
 document.forms.calculator.PmtAmount1.value = wrongPV;
 document.forms.calculator.PmtAmount1.select();
 document.forms.calculator.PmtAmount1.focus();
}

function doRepayments () {
 pv = parseFloat(document.forms.calculator.Principal.value);
  if (isNaN(pv) || pv == 0) {
  document.forms.calculator.PmtResult.value = 
"incorrect amount at ***";
resetPV();
}
else {
document.forms.calculator.Principal.value = pv;
ratePA = document.forms.calculator.IntRate.value;
if (ratePA < 0) {ratePA=6; document.forms.calculator.IntRate.value = ratePA;}
termYears = document.forms.calculator.term.value;
if (termYears < 0) {termYears = 25; document.forms.calculator.term.value = termYears;}

nper = 12 * termYears;
rate = ratePA/1200;
var divisor = 1;
switch (document.forms.calculator.PmtPeriod2.selectedIndex) {
 case 0 :
         divisor = 4.3; // weeks
         break;
 case 1 :
         divisor = 2.17; // fortnights
         break;
 case 2 :
         divisor = 1 // months
         break;
 default :
         divisor = 2;
 }

 
with (Math) {
   var pmt = ((pv * rate * pow((1 + rate),nper))/(-1 + pow((1 + rate),nper)));
  }
pmt = pmt/divisor;
document.forms.calculator.PmtResult.value = Math.ceil(pmt*100.0)/100;
}

}
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

function doTerm() {

  pv = parseInt(document.forms.calculator.Principal.value);
  if (isNaN(pv) || pv == 0) {
 document.forms.calculator.termResult.value = 
  "incorrect amount at ***";
 resetPV(); 

} else {
  pmt = parseFloat(document.forms.calculator.PmtAmount1.value);
  if (isNaN(pmt) || pv == 0) {
  document.forms.calculator.termResult.value = 
  "incorrect amount at ***";
 resetPMT();
   
 } else {
  pmt = pmt * -1.0;
  document.forms.calculator.Principal.value = pv;
  ratePA = document.forms.calculator.IntRate.value;
  
  switch (document.forms.calculator.PmtPeriod2.selectedIndex) {
   case 0 :
         frequency = 52;
         break;
   case 1 :
         frequency = 26;
         break;
   case 2 :
         frequency = 12;
         break;
   default :
         frequency = 26;
   }
  
  rate = ratePA/(frequency * 100);
  
  nper = Math.log(pmt/(pmt + (rate * pv)))/Math.log(1 + rate);
  if (isNaN(nper/frequency)) {
    document.forms.calculator.termResult.value = "insufficient repayment"; } else {
  document.forms.calculator.termResult.value = years_months(nper/frequency);}
}
}
}

function years_months(decimal_years) {
  var years, months, month_word=" months", year_word = " years";
  years = Math.floor(decimal_years)
  months = Math.round((decimal_years - years) *12)
  if (years == 1) year_word = " year";
  if (months == 1) month_word = " month";
  switch (months) {
    case 0 : return (years + year_word);
 case 12 : return (years + 1  + year_word);
 default : return (years + year_word + ", " + months + month_word);
  }
}

function conv_number(expr, decplaces) {
// This function is from Danny Goodman's Javascript Bible.      
     var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces));
     while (str.length <= decplaces) {
           str = "0" + str;
     }
     var decpoint = str.length - decplaces;
     return (str.substring(0,decpoint) + "." + str.substring(decpoint,str.length));
}
-->

