function string2Decimal(number){
 var res = "";
 var nPointPos = 0;
 res = number.toString();
 nPointPos = res.indexOf(".");
 if(nPointPos == -1){
  res += ".00";
  nPointPos = res.indexOf(".");
 }
 if(res.charAt(nPointPos + 2)==""){
  res += "0";
 }
 res = res.slice(0, nPointPos+3 );
 return res;
}
 
function calculateLoan(loanAmount,period,interest) {
 var interestPerYear = (interest/100)/12;
 var n = period * 12;
 var m = Math.pow(interestPerYear+1,n);
 var x = interestPerYear*loanAmount*m/(m-1);
 var result = new Array();
 result['repayment'] = string2Decimal(x);
 result['interest_paid'] = string2Decimal(loanAmount*interestPerYear);
 result['total'] = string2Decimal(x*n);
 return result;
}
 
function calculate(){
 var err = 0;
 if(isNaN(document.getElementById('amount').value) || document.getElementById('amount').value==""){
  alert('The loan amount should be a number!');
  err++;
 }else if(isNaN(document.getElementById('period').value) || document.getElementById('period').value==""){
  alert('Please enter the period in years.');
  err++;
 }else if(isNaN(document.getElementById('interest').value) || document.getElementById('interest').value==""){
  alert('Please enter only the number for the APR.');
  err++;
 }
 
 if(err<1){
  var result = calculateLoan(document.getElementById('amount').value,document.getElementById('period').value,document.getElementById('interest').value);
  if(isNaN(result['total']) || isNaN(result['repayment'])){
   alert('Result was more than I could handle.\nPlease reduce one or all of the numbers\nthat you have entered and click on\nthe "Calculate" button again.');
  }else{
   document.getElementById('repayment').value = result['repayment'];
   document.getElementById('total').value = result['total'];
  }
 }
}
