//check validity of entries 
function checkNumber(input,min,max,msg){msg=msg+" field has invalid data: "+input.value;//check number is a number
var str=input;for(var i=0;i<str.length;i++){var ch=str.substring(i,i+1)
if((ch<"0"||"9"<ch)&&ch!='.'){alert(msg);return false;}}//check number lies between the min and max values allowed
var num=0+str
if(num<min||max<num){alert(msg+" not in range ["+min+".."+max+"]");return false;}input.value=str;return true;}


function computeForm(){
	var Loan=document.getElementById("Loan").value.stripCommas();
	var TermYears=document.getElementById("TermYears").value;
	var IntNomPA=document.getElementById("IntNomPA").value;
	var RestsPA=12;
	//check that an entry has been made in each field.
	if((Loan==null||Loan.length==0)||(IntNomPA==null||IntNomPA.length==0)) {
		alert('Some fields are blank');
		return;
	}
	// check entries are valid by using check number
	if(!checkNumber(Loan,1,9999999,"Amount")||!checkNumber(IntNomPA,1,100,"Interest Rate")||!checkNumber(TermYears,5,35,"Term")) {
		form.Cm.value="Invalid";
		return;
	}
	// Calc Payment from i=interest rate fraction per period, n=number of periods, pv=present value, fv=future value
	function Pmt(i,n,pv,fv){
		return pv*i*(1/(1-(Math.pow(1/(1+i),n))))-fv*i/(Math.pow(1+i,n)-1);
	}// actual calculations
	var P=Pmt(IntNomPA/(RestsPA*100),TermYears*RestsPA,Loan,0)*RestsPA/12;
	document.getElementById("PmtPM").value=P.toFixed(2).numberFormat();
	document.getElementById("IntPM").value=((IntNomPA*Loan)/1200).toFixed(2).numberFormat();
	document.getElementById("Loan").focus();
	if ( document.getElementById("CCm") ) {
		document.getElementById("CCM").value=(P * 130 / 100 ).toFixed(2).numberFormat();
	}
}//clears form


function clearForm(form){form.Loan.value="";form.TermYears.value="";form.IntNomPA.value="";form.Loan.focus();}//-->

/*
i = interest rate
n = number of years
ma = monthly amount
*/
function calcReverseMortgageRepayment(i,n,ma) {
i/=100;
n*=12;
var temp = Math.pow(i+1,n);
var totalAmount = ma / ( (i * temp) / (temp - 1) );
return totalAmount.toFixed(2);
}
function calcReverseMortgageInterest(i,ma) {
i/=100;
var totalAmount = ma / ( i / 12 );
return totalAmount.toFixed(2);
}

function doReverseCalc() {
var interest = parseFloat(document.getElementById("intRate").value) ;
var monthlyAmt = parseFloat(document.getElementById("monthlyRepayment").value.stripCommas());
var mortgageTerm = parseFloat(document.getElementById("numYears").value);

document.getElementById("repaymentLoanAmount").value = calcReverseMortgageRepayment(interest / 12, mortgageTerm, monthlyAmt).numberFormat();
document.getElementById("interestOnlyAmount").value = calcReverseMortgageInterest(interest, monthlyAmt).numberFormat();
}


