<!-- 

//Percentage and rent calculation
function isBlank(aString) {
	var lString=" ";
	var TempChar;
	var Count;
	var SpacesOnly = 0;
	if (aString.length == 0||aString==""||aString==null)	{
		return(true);
	}

	for (Count=0; Count < aString.length; Count++)	{
		if(aString.charAt(Count) != lString)	{
			return(false);
		}
	}
	
	return(true);
}

function isValid(field, fieldName) {
  var lValue = field.value;
  if(isNaN(field.value) || isBlank(field.value) ) {
		alert("Please enter a numeric value for the field : " + fieldName);
		field.value = "";
		field.focus();
		return false;
  }	

  return true;
}

function stripBad(string) {
  for (var i=0, output='', valid="eE+/*-0123456789.()"; i<string.length; i++)
	 if (valid.indexOf(string.charAt(i)) != -1)
		output += string.charAt(i);
  return output;
}


function RoundOffDigits(aNumber, aDigits) {
	var lResults = 0;

	if (aDigits ==2 )
		lResults = Math.round(aNumber * 100)/100;  //returns 28.45

	return lResults;
}

function AddSpace(aNum1, aNum2) {
	var lString = "&nbsp;";
	lNum1 = aNum1.toFixed(2);
	lNum2 = aNum2.toFixed(2);	
	
	for(i=0; i < (lNum1.length - lNum2.length); i++)
		lString += "&nbsp;";		

	return lString;
}

function CalculateAmortization(aForm) {
	var lLoanAMT = (aForm.loanamt.value)*1;
	var lDownPay = (aForm.downpay.value)*1;
	var lEMI = (aForm.emi.value)*1;
	var lTerm = (aForm.term.value)*1;
	
	if (isValid(aForm.loanamt, "Loan Amount") && isValid(aForm.emi, "Monthly Payment Amount")
			&& isValid(aForm.term, "No. of Months") ) {
			
		var lBalance = lLoanAMT - lDownPay;
		var lRate = aGetRate(lBalance, lTerm, lEMI);

		var lTotalPayment = 0;
		var lTotalCharges = 0;

		var lInterest = 0;
		var lPrincipal = 0;
		var lString = "<table cellspacing='0' cellpadding='0' border='0' align='center'><tr> <td class='content'> Event Loan</td><td class='content'> Date</td><td class='content'> Payment</td><td class='content'> Interest</td><td class='content'> Principal</td><td class='content'> Balance</td></tr><tr><td colspan='6'> &nbsp;</td>";
		var lTodayDate = new Date();
		var lDate = new Date();
		var lDay;
		var lMonth;
		var lYear;

		var lYearlyInterest = 0;
		var lYearlyEMI = 0;
		var lYearlyPrincipal = 0;
		var lAddSpace = "";
		
		for(var i =1; i<=lTerm; i++) {
			lDay = lDate.getDate();
			lDate.setMonth(lDate.getMonth()+1);
			lMonth = lDate.getMonth() + 1;
			lYear = lDate.getFullYear();

			lInterest = (lBalance * lRate)/(12 * 100);

			lInterest = RoundOffDigits(lInterest, 2);
			if (lBalance < lEMI) {
				lPrincipal = lBalance;
			} else {
				lPrincipal = lEMI - lInterest;
			}

			lBalance -= lPrincipal;
			lTotalCharges += lInterest;
			lTotalPayment += (lInterest + lPrincipal);

			lYearlyInterest += lInterest;
			lYearlyEMI     += lEMI;
			lYearlyPrincipal += lPrincipal;

			lString += "<tr><td class='calccontent'>" + i + "&nbsp;</td>";
			if (lMonth < 10)
				lString += "<td class='calccontent'>" + 0 + lMonth;
			else
				lString += "<td class='calccontent'>" + lMonth;

			if (lDay < 10)
				lString += "/" + 0 + lDay + "/" + lYear  + "&nbsp;&nbsp;</td>";
			else
				lString += "/" + lDay + "/" + lYear  + "&nbsp;&nbsp;</td>";
				
				
			lNum1 = lEMI*lTerm;
			lNum2 = lEMI;
			lAddSpace = AddSpace(lNum1, lNum2);
			lString += "<td class='calccontent'>" + lAddSpace + lEMI.toFixed(2)  + "&nbsp;&nbsp;</td>";
			
			lNum1 = lEMI*lTerm - lLoanAMT;
			lNum2 = lInterest;
			lAddSpace = AddSpace(lNum1, lNum2);			
			lString += "<td class='calccontent'>" + lAddSpace + lInterest.toFixed(2) + "&nbsp;&nbsp;</td>";

			lNum1 = lLoanAMT;
			lNum2 = lPrincipal;
			lAddSpace = AddSpace(lNum1, lNum2);		
			lString += "<td class='calccontent'>" + lAddSpace + lPrincipal.toFixed(2) + "&nbsp;&nbsp;</td>";
			lString += "<td class='calccontent'>" + lBalance.toFixed(2) + "&nbsp;&nbsp;</td></tr>";

			if (lMonth == 12 || i == lTerm) {
				lString += "<tr> <td class='calccontent'>" + lYear + "&nbsp;&nbsp;Total&nbsp;&nbsp;</td>";
				lString += "<td class='calccontent'>&nbsp;&nbsp;</td>";
				
				lNum1 = lEMI*lTerm;
				lNum2 = lYearlyEMI;
				lAddSpace = AddSpace(lNum1, lNum2);				
				lString += "<td class='calccontent' align='right'>" + lAddSpace + lYearlyEMI.toFixed(2)  +  "&nbsp;&nbsp;</td>";
				
				lNum1 = lEMI*lTerm - lLoanAMT;
				lNum2 = lYearlyInterest;
				lAddSpace = AddSpace(lNum1, lNum2);
				lString += "<td class='calccontent' align='right'>" + lAddSpace + lYearlyInterest.toFixed(2)  +  "&nbsp;&nbsp;</td>";
				
				lNum1 = lLoanAMT;
				lNum2 = lYearlyPrincipal;
				lAddSpace = AddSpace(lNum1, lNum2);						
				lString += "<td class='calccontent' align='right'>" + lAddSpace + lYearlyPrincipal.toFixed(2)  +  "&nbsp;&nbsp;</td></tr>";
				lString += "<tr> <td class='calccontent' colspan=6>&nbsp;&nbsp;</td></tr>";
				lYearlyEMI = lYearlyInterest = lYearlyPrincipal = 0;
			}

			if (i == lTerm) {
				lString += "<tr> <td class='calccontent' align='right'>"  + "Grand Total" +  "&nbsp;&nbsp;</td>";
				lString += "<td class='calccontent'>&nbsp;&nbsp;</td>";
				lString += "<td class='calccontent' align='right'>" + lTotalPayment.toFixed(2)  +  "&nbsp;&nbsp;</td>";
				lString += "<td class='calccontent' align='right'>" + lTotalCharges.toFixed(2)  +  "&nbsp;&nbsp;</td>";
				lString += "<td class='calccontent'>&nbsp;&nbsp;</td></tr>";

			}
		}
		
		lString += "<table>";

		// Check the numbers here	

		document.getElementById('irc').innerHTML = lRate.toFixed(3);		
		document.getElementById('la').innerHTML = lLoanAMT.toFixed(2);		
		document.getElementById('dp').innerHTML = lDownPay.toFixed(2);
		document.getElementById('tp').innerHTML = lTotalPayment.toFixed(2);		
		document.getElementById('fc').innerHTML = lTotalCharges.toFixed(2);				
		document.getElementById('ac').innerHTML = lString;
	//
	}
}


function LoadLoanPaymentForm() {
	document.frmLoanEMI.loanamt.value = '100000'
	document.frmLoanEMI.downpay.value = '0'
	document.frmLoanEMI.rate.value = '8.0'
	document.frmLoanEMI.term.value = '360';
}


function ClearLoanRateChart(aForm) {
		document.getElementById('irc').innerHTML = "";		
		document.getElementById('la').innerHTML = "";		
		document.getElementById('dp').innerHTML = "";
		document.getElementById('tp').innerHTML = "";		
		document.getElementById('fc').innerHTML = "";				
		document.getElementById('ac').innerHTML = "";
}


//E = P × r × (1 + r)n / ((1 + r)n - 1)
function aGetRate(aLoanAmt, aTerm, aEMI) {
   var lMinRate = -100;
   var lMaxRate = 100;
   var lLoanAmt = aLoanAmt;
   var lEMI = aEMI;
   var lTerm = aTerm;
   var lMidRate = (lMinRate + lMaxRate) / 2;
   var guessEMI = 0;
   var r = 0;

	 if (lLoanAmt < (lEMI*lTerm)) {
		 while (lMinRate < (lMaxRate - 0.00001)) {
				lMidRate = (lMinRate + lMaxRate) / 2;
				r = lMidRate/1200;

				guessEMI = lLoanAmt * r * Math.pow((1 + r),lTerm)/(Math.pow((1 + r), lTerm)-1);
				if (guessEMI > lEMI) {
						 lMaxRate = lMidRate;
				} else {
						 lMinRate = lMidRate;
				}
		 }
	} else {
		lMinRate = -100;
		lMaxRate = 0;
		 while (lMinRate < (lMaxRate - 0.00001)) {
				lMidRate = (lMinRate + lMaxRate) / 2;
				r = lMidRate/1200;

				guessEMI = lLoanAmt * r * Math.pow((1 + r),lTerm)/(Math.pow((1 + r), lTerm)-1);
				if (guessEMI > lEMI) {
						 lMaxRate = lMidRate;
				} else {
						 lMinRate = lMidRate;
				}
		 }
	}
  return lMidRate;
}



-->
