﻿function GetAmortCalc(a,p,sfee,trm,weekPayClientId,monthPayClientId) {  
 var objMonthlyPayment=document.getElementById(monthPayClientId);
 var objWeeklyPayment = document.getElementById (weekPayClientId);
 objMonthlyPayment.value="";
 objMonthlyPayment.style.visibility="visible";
 objWeeklyPayment.value="";
 objWeeklyPayment.style.visibility="visible";
 var sCR=String.fromCharCode(13);
 var sTab=String.fromCharCode(27); 
 
 objMonthlyPayment.value += sCR + GetMonthlyPayment(a,p,sfee,trm);
 objWeeklyPayment.value += sCR + GetWeeklyPayment(a,p,sfee,trm);
}

function GetMonthlyPayment(a,p,sfee,trm){
    var msf = 10.50; 
    var pa = Math.abs(a) + Math.abs(sfee); 
    var payment=getPayment(pa,trm,p); 
    payment=payment + Math.abs(msf);
    return (Math.round(payment*100)/100);
}

function GetWeeklyPayment(a,p,sfee,trm){
    var msf = 10.50; 
    var pa = Math.abs(a) + Math.abs(sfee); 
    var payment=getPayment(pa,trm,p); 
    payment=payment + Math.abs(msf);
    var wp = Math.abs((payment * 12) / 52);    
    return (Math.round(wp*100)/100);
}


function getSpaces(n) {
  var i=0; 
  var sSpaces="";
  for (i=0;i<n;i++) {sSpaces += " ";}
  return sSpaces;
}

function getPayment(a,n,p) { 
 var acc=0;
 var base = 1 + p/1200;
 for (i=1;i<=n;i++)  
  { acc += Math.pow(base,-i); }  
  return a/acc;
}

function GetAmortCalcFromLoan(a,clientId,interstRate,bookingFee,weekPayClientId,monthPayClientId) {  
 var p,sfee,trm;
 p=interstRate;
 sfee=bookingFee ;
 trm = document.getElementById (clientId).value;
 if(isNaN (trm)) {trm=6;}
 
 GetAmortCalc(a,p,sfee,trm,weekPayClientId,monthPayClientId);
}

function GetAmortCalcFromTerm(trm,clientId,interstRate,bookingFee,weekPayClientId,monthPayClientId) {  

 var a,sfee,p;
 p=interstRate;
 sfee=bookingFee;
 a = document.getElementById (clientId).value;
 if(isNaN (a)) {a=1000;}
 
 GetAmortCalc(a,p,sfee,trm,weekPayClientId,monthPayClientId);
}

//Validation functions
function validateInt(txtInput)
{
  var o = txtInput;
  
  return (isInteger(o))
}

function validateRange(txtInput, MinValue,MaxValue)
{
  var s = txtInput;
  var A = MinValue;
  var B = MaxValue;

  return (isIntegerInRange(s, A, B))
}


function isIntegerInRange (s, a, b)
{   if (isEmpty(s))
     if (isIntegerInRange.arguments.length == 1) return false;
     else return (isIntegerInRange.arguments[1] == true);

  if (!isInteger(s, false)) return false;

  var num = parseInt (s);
  return ((num >= a) && (num <= b));
}

function isInteger (s)
{
  var i;
  if (isEmpty(s))
  if (isInteger.arguments.length == 1) return 0;
  else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++)
  {
     var c = s.charAt(i);

     if (!isDigit(c)) return false;
  }

  return true;
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
  return ((c >= "0") && (c <= "9"))
}



