//CALCULATOR SECTION
function formatRound(number,precision) {
   if (precision==null) precision = 2;
   if (precision==0)
      return Math.round(number);
   lnFactor = Math.floor(Math.pow(10,precision));
   if (precision<0)
      return  Math.round(number/lnFactor)*lnFactor;
   if (precision>0)
      return Math.round(number*lnFactor)/lnFactor;
}


function calcPayment (amount,rate,time,balloon) {
   if (rate<=0)
      if (time<=0) return amount;
      else return amount/time;
   if (balloon==null) balloon = 0;
   var ln = Math.pow(1+rate,time)
   return (amount-balloon/ln)/((1-(1/ln))/rate);
}
   

function formatNumber(number,precision,commas) {
   if (precision==null) precision = 2;
   number = formatRound(number,precision);
   var llSign = number<0;
   number = Math.abs(number);
   var ln = precision+1;
   var lc = "";
   number = Math.floor(number*Math.pow(10,precision));
   while (((ln--)>0) || (number>0)) {
      lc = (number%10)+lc;
      number = Math.floor(number/10);
      if (ln==1) lc = "."+lc;
   }
   if (llSign) lc = "-"+lc;
   var lc2 = "";
   if (commas) {
      var lc3 = lc;
      ln = lc.length;
      if (lc.indexOf(".")!=-1) {
         lc2 = lc.substring(lc.indexOf("."),ln);
         lc3 = lc.substring(0,lc.indexOf("."));
      }
      ln = lc3.length;
      var lnCount = 0;
      while (ln>0) {
         lnCount++;
         if (lnCount==4) {
            lc2 = ","+lc2;
            lnCount = 1;
         } 
         lc2 = lc3.substring(ln-1,ln)+lc2;
         ln--;
      }
   }
   else
      lc2 = lc;
   return lc2
}

function calcButton(){

	if (document.frmCalc.rate1.value == '')
		{
		alert('Please enter a value for the rate field.');
		document.frmCalc.rate1.focus();
		return;
		}
		
	if (document.frmCalc.years1.value == '')
		{
		alert('Please enter a value for the years field.');
		document.frmCalc.years1.focus();
		return;
		}
		
	if (document.frmCalc.amount1.value == '')
		{
		alert('Please enter a value for the loan amount field.');
		document.frmCalc.amount1.focus();
		return;
		}


	with (document.frmCalc){
	   var lnInt = 0;
      var lnAmt = Math.min(parseFloat(amount1.value),10000000);
      amount1.value = lnAmt;
      var lnRate = Math.min(parseFloat(rate1.value),999.99);
      rate1.value = lnRate;
      lnRate = lnRate/1200;
      var lnYears = Math.min(parseFloat(years1.value),100);
      years1.value = lnYears;
		var lnPayment = formatRound(calcPayment(lnAmt,lnRate,lnYears*12));
		interest.value = formatNumber((payment.value*lnYears*12)-amount1.value,2,1);
		interestio.value = formatNumber((payment.value*lnYears*12)-amount1.value,2,1);
		//if(intonly.checked){
			paymentio.value = formatNumber(lnAmt*lnRate,2,1);
			lnPayment = paymentio.value.replace(",","");
			var lnBalance = lnAmt;
			var intMonth = 0;
			var intTotal = 0;
			lnRate = formatRound(parseFloat(rate1.value)/1200,10)
			for(var month=0;month<(lnYears*12);month++) {
				//alert (lnRate);
				intMonth = formatRound( (lnBalance * lnRate),5);
				intTotal = parseFloat(intTotal) + intMonth;
				lnBalance = lnBalance - parseFloat(parseFloat(lnPayment)-intMonth);
				}
			interestio.value = formatNumber(intTotal,2,1);
	//		}
	//	else
	//		{
			lnPayment = formatRound(calcPayment(lnAmt,lnRate,lnYears*12));
			payment.value = formatNumber(lnPayment,2,1);
			interest.value = formatNumber((lnPayment*lnYears*12)-amount1.value,2,1);
	//		}
		}
   }