  var now = new Date();
	var todayMonth = now.getMonth();
		if (todayMonth == 0) { todayMonth = "January"; }
		else if (todayMonth == 1) { todayMonth = "February"; }
		else if (todayMonth == 2) { todayMonth = "March"; }
		else if (todayMonth == 3) { todayMonth = "April"; }
		else if (todayMonth == 4) { todayMonth = "May"; }
		else if (todayMonth == 5) { todayMonth = "June"; }
		else if (todayMonth == 6) { todayMonth = "July"; }
		else if (todayMonth == 7) { todayMonth = "August"; }
		else if (todayMonth == 8) { todayMonth = "September"; }
		else if (todayMonth == 9) { todayMonth = "October"; }
		else if (todayMonth == 10) { todayMonth = "November"; }
		else if (todayMonth == 11) { todayMonth = "December"; }	
	var todayDate = now.getDate();
	var todayYear = now.getYear();
	if (todayYear < 2000) { todayYear = todayYear + 1900; }

function validNums(refVal) {
	var bValid=true;
	
	for (var i=0; i < refVal.value.length; i++) {
		var c = refVal.value.charCodeAt(i);
        if ((c > 57 || c < 48)) {
			bValid=false; 
			}
	}
	if (bValid==false) {
		alert('You can only enter numbers into this field.');
		refVal.focus();
		refVal.select();
		return false; 
		}
	else {
		return true; }
} 

function validNumsDec(refVal) {
	var decm = false;
	var bDec = true;
	var bValid = true;
	for (var i=0; i < refVal.value.length; i++) {
		var c = refVal.value.charCodeAt(i);
        if ((c > 57 || c < 48)) {
			if (c==46) {
				if (decm == true) {
					var bDec = false; }
				else {
					decm = true; } }
			else if (c==44) { }
			else {
				bValid = false; }
			}
	}
	if (bValid==false || bDec==false) {
		alert('You can only enter numbers, commas and one decimal into this field.');
		refVal.focus();
		refVal.select();
		return false; 
		}
	else return true;
} 

function formatNum(num) {

	num = parseFloat(num);
	num = Math.round(100*num);
	num = num.toString();
	var p1 = num.substring(0, num.length - 2);
	var p2 = num.substring(num.length - 2, num.length);
	num = p1 + '.' + p2;

	var txtNumber = '' + num;
	var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
	var arrNumber = txtNumber.split('.');
	arrNumber[0] += '.';
	do {
	arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
	} while (rxSplit.test(arrNumber[0]));

	if (arrNumber.length > 1) {
	return arrNumber.join('');
	}
	else {
	return arrNumber[0].split('.')[0];
    }	
}	


function computeForm(form) {

var VpurchaseAmt = document.mortCal.purchaseAmt.value;


var VdownPayPercAmt = document.mortCal.downPayPercAmt.value
var VdownPayAmt = 0;
var VdownPayMethod = document.mortCal.downPayMethod.selectedIndex;
if(VdownPayMethod == 0) {
   if(VdownPayPercAmt >= 1) {
      VdownPayPercAmt /= 100;
      }
   VdownPayAmt = VdownPayPercAmt * VpurchaseAmt;
   } else {
   VdownPayAmt = VdownPayPercAmt;
   }

if(VdownPayAmt < 1) {
   VdownPayAmt = 0;
   }
document.mortCal.downPayAmt.value = parseInt(VdownPayAmt,10);

var VloanAmt = 0;

var downPayFactor1 = VdownPayAmt / VpurchaseAmt;

var purchLessDown = eval(VpurchaseAmt) - eval(VdownPayAmt)

if(VdownPayMethod == 1) {
   if(downPayFactor1 >= .25) {
      VloanAmt = purchLessDown;
      } else
   if(downPayFactor1 < .25 && downPayFactor1 >= .20) {
      VloanAmt = purchLessDown * 1.0125;
      } else
   if(downPayFactor1 < .20 && downPayFactor1 >= .15) {
      VloanAmt = purchLessDown * 1.0200;
      } else
   if(downPayFactor1 < .15 && downPayFactor1 >= .10) {
      VloanAmt = purchLessDown * 1.0250;
      } else
   if(downPayFactor1 < .10 && downPayFactor1 >= .05) {
      VloanAmt = purchLessDown * 1.0375;
      } else
   if(downPayFactor1 < .05) {
      VloanAmt = 0;
      }
   }

if(VdownPayMethod == 0) {
   if(VdownPayPercAmt >= .25) {
      VloanAmt = purchLessDown;
      } else
   if(VdownPayPercAmt < .25 && VdownPayPercAmt >= .20) {
      VloanAmt = purchLessDown * 1.0125;
      } else
   if(VdownPayPercAmt < .20 && VdownPayPercAmt >= .15) {
      VloanAmt = purchLessDown * 1.0200;
      } else

   if(VdownPayPercAmt < .15 && VdownPayPercAmt >= .10) {
      VloanAmt = purchLessDown * 1.0250;
      } else
   if(VdownPayPercAmt < .10 && VdownPayPercAmt >= .05) {
      VloanAmt = purchLessDown * 1.0375;
      } else
   if(downPayFactor1 < .05) {
      VloanAmt = 0;
      }
   }

if(VloanAmt < 0 ) {
VloanAmt = 0;
}

document.mortCal.loanAmt.value = parseInt(VloanAmt,10);
document.mortCal.Hprincipal.value = VloanAmt;
if(document.mortCal.intRate.value < 1) {
   var annInt = document.mortCal.intRate.value * 100;
   } else {
   var annInt = document.mortCal.intRate.value;
   }
var MIFfactor1 = 2 * 100;
var MIFfactor2 = annInt / MIFfactor1;
var MIFfactor3 = eval(MIFfactor2) + eval(1);
var MIFfactor4 = Math.pow(MIFfactor3,2);
var MIFfactor5 = 1 /12;
var MIFfactor6 = Math.pow(MIFfactor4,MIFfactor5);
var MIFfactor7 = eval(MIFfactor6) - eval(1);
var MIF = MIFfactor7;
document.mortCal.HMIF.value = MIF;

var prin = VloanAmt;
var noYrs = document.mortCal.noYears.value;
var PIPfactor1 = eval(MIF) + eval(1);
var PIPfactor2 = eval(noYrs) - eval(noYrs * 2);
var PIPfactor3 = PIPfactor2 * 12;
var PIPfactor4 = Math.pow(PIPfactor1,PIPfactor3);
var PIPfactor5 = eval(1) - eval(PIPfactor4);
var PIPfactor6 = prin * MIF;
var PIPfactor7 = PIPfactor6 / PIPfactor5;
var PIP = PIPfactor7;

var VnoYears = noYrs;
var VnoMonths = VnoYears * 12;

document.mortCal.HaNPer.value = VnoMonths;
var VpmtPI = PIP;

document.mortCal.pmtPI.value = parseInt(VpmtPI,10);
document.mortCal.HmoPmt.value = VpmtPI;

var VpropTaxPercAmt = document.mortCal.propTaxPercAmt.value
var VpropTaxAmt = 0;
var VpropTaxMethod = document.mortCal.propTaxMethod.selectedIndex;
if(VpropTaxMethod == 0) {
   VpropTaxPercAmt /= 100;
   VpropTaxAmt = VpropTaxPercAmt * VpurchaseAmt;
   } else {
   VpropTaxAmt = VpropTaxPercAmt;
   }

if(VpropTaxAmt / 12 < 1) {
   VpropTaxAmt = 0;
   } else {
   VpropTaxAmt = parseInt(VpropTaxAmt / 12,10);
   }

document.mortCal.propTaxAmt.value = VpropTaxAmt;

var VhtgPercAmt = document.mortCal.htgPercAmt.value
var VhtgAmt = 0;
var VhtgMethod = document.mortCal.htgMethod.selectedIndex;
if(VhtgMethod == 0) {
   VhtgPercAmt /= 100;
   VhtgAmt = VhtgPercAmt * VpurchaseAmt;
   } else {
   VhtgAmt = VhtgPercAmt;
   }

if(VhtgAmt / 12 < 1) {
   VhtgAmt = 0;
   } else {
   VhtgAmt = parseInt(VhtgAmt / 12,10);
   }

document.mortCal.htgAmt.value = VhtgAmt;

var VpmtPITH = eval(VpmtPI) + eval(VpropTaxAmt) + eval(VhtgAmt);

document.mortCal.pmtPITH.value = parseInt(VpmtPITH);

var VgrossPay = document.mortCal.grossPay.value;
if(document.mortCal.payMethod.selectedIndex == 0) {
   var VmoPay = VgrossPay / 12;
   } else {
   var VmoPay = VgrossPay;
   }

var VmoDebts = document.mortCal.moDebts.value;
if(VmoDebts == "" || VmoDebts == 0) {
   VmoDebts = 0;
   document.mortCal.moDebts.value = 0;
   }

var VratioIncome = VpmtPITH / VmoPay;
var intIncome = VratioIncome * 100;
var incomeRightDec = "" + intIncome + "";
if(intIncome < 10) {
   incomeRightDec = "" + incomeRightDec.substring(0,5) + "%";
} else
if(intIncome < 100) {
   incomeRightDec = "" + incomeRightDec.substring(0,6) + "%";
} else
if(intIncome < 1000) {
   incomeRightDec = "" + incomeRightDec.substring(0,7) + "%";
}

document.mortCal.ratioIncome.value = incomeRightDec;

var VratioDebt = (eval(VpmtPITH) + eval(VmoDebts)) / VmoPay ;
var intDebt = VratioDebt * 100;
var debtRightDec = "" + intDebt + "";
if(intDebt < 10) {
   debtRightDec = "" + debtRightDec.substring(0,5) + "%";
} else
if(intDebt < 100) {
   debtRightDec = "" + debtRightDec.substring(0,6) + "%";
} else
if(intDebt < 1000) {
   debtRightDec = "" + debtRightDec.substring(0,7) + "%";
}

document.mortCal.ratioDebt.value = debtRightDec;

if(VratioIncome <= .3205 && VratioDebt <= .4005) {
   document.mortCal.qualifyYN.value = "Yes";
   } else {
   document.mortCal.qualifyYN.value = "No";
   }

var VmaxPmtIncome = eval(VmoPay * .32);
var VmaxPmtDebt = eval(VmoPay * .40) - eval(VmoDebts);

if(VmaxPmtIncome > VmaxPmtDebt) {
   var maxPmt = eval(VmaxPmtDebt) - (eval(VpropTaxAmt) + eval(VhtgAmt));
   
var PRINpmt = maxPmt;
var PRINnoYrs = document.mortCal.noYears.value;
var PRINfactor1 = eval(MIF) + eval(1);
var PRINfactor2 = eval(PRINnoYrs) - eval(noYrs * 2);
var PRINfactor3 = PRINfactor2 * 12;
var PRINfactor4 = Math.pow(PRINfactor1,PRINfactor3);
var PRINfactor5 = eval(1) - eval(PRINfactor4);
var PRINfactor6 = PRINpmt * PRINfactor5;
var PRINfactor7 = PRINfactor6 / MIF;
var PRIN = PRINfactor7;

   var VmaxLoanAmt = PRIN;
   if(VmaxLoanAmt < 0) {
      document.mortCal.qualifyMax.value =  0;
      } else {
      document.mortCal.qualifyMax.value = parseInt(VmaxLoanAmt,10);
      }
   } else {
   var maxPmt = eval(VmaxPmtIncome) - eval(eval(VpropTaxAmt) + eval(VhtgAmt));
   
var PRINpmt = maxPmt;
var PRINnoYrs = document.mortCal.noYears.value;
var PRINfactor1 = eval(MIF) + eval(1);
var PRINfactor2 = eval(PRINnoYrs) - eval(noYrs * 2);
var PRINfactor3 = PRINfactor2 * 12;
var PRINfactor4 = Math.pow(PRINfactor1,PRINfactor3);
var PRINfactor5 = eval(1) - eval(PRINfactor4);
var PRINfactor6 = PRINpmt * PRINfactor5;
var PRINfactor7 = PRINfactor6 / MIF;
var PRIN = PRINfactor7;

   var VmaxLoanAmt = PRIN;
   if(VmaxLoanAmt < 0) {
      document.mortCal.qualifyMax.value =  0;
      } else {
document.mortCal.qualifyMax.value = parseInt(VmaxLoanAmt,10);
      }
   }

	for (counter = 0; counter < document.mortCal.length; counter ++) {
		if (document.mortCal[counter].value == 'NaN') { document.mortCal[counter].value = ''; }
	}

}

function createReport(form) {

if((document.mortCal.Hprincipal.value == "" || document.mortCal.Hprincipal.value == 0) || (document.mortCal.HmoPmt.value == "" || document.mortCal.HmoPmt.value == 0) || (document.mortCal.HaNPer.value == "" || document.mortCal.HaNPer.value == 0) || (document.mortCal.intRate.value == "" || document.mortCal.intRate.value == 0) || (document.mortCal.HMIF.value == "" || document.mortCal.HMIF.value == 0)) {
   alert("Please compute the payment before creating the schedule.");
   } else {

var aPrin = document.mortCal.Hprincipal.value;
var aIntRate = document.mortCal.HMIF.value;
var aNPer = document.mortCal.HaNPer.value;
var aPmt = document.mortCal.HmoPmt.value;
var aIntPort = 0;
var aAccumInt = 0;
var aPrinPort = 0;
var aAccumPrin = 0;
var aCount = 0;
var aPmtRow = "";
var aPmtNum = 0;

var today = new Date();
var dayFactor = today.getTime();
var pmtDay = today.getDate();
var loanMM = today.getMonth() + 1;
var loanYY = today.getYear();
var loanDate = (loanMM + "/" + pmtDay + "/" + loanYY);
var monthMS = 86400000 * 30.4;
var pmtDate = 0;

while(aCount < aNPer) {
   aIntPort = aPrin * aIntRate;
      aAccumInt = eval(aAccumInt) + eval(aIntPort);
   aPrinPort = eval(aPmt) - eval(aIntPort);
      aAccumPrin = eval(aAccumPrin) + eval(aPrinPort);
   aPrin = eval(aPrin) - eval(aPrinPort);
   aCount = eval(aCount) + eval(1);
   aPmtNum = eval(aPmtNum) + eval(1);
   dayFactor = eval(dayFactor) + eval(monthMS);
   pmtDate = new Date(dayFactor);
   pmtMonth = pmtDate.getMonth();
   pmtMonth = pmtMonth + 1;
   pmtYear = pmtDate.getYear();
   pmtString = (pmtMonth + "/" + pmtDay + "/" + pmtYear);
   aPmtRow = ("" + aPmtRow + "<TR><TD ALIGN=RIGHT><font face=verdana size=1>" + aPmtNum + "</font></TD><TD ALIGN=RIGHT><font face=verdana size=1>" + pmtString + "</font></TD><TD ALIGN=RIGHT><font face=verdana size=1>$" + formatNum(aPrinPort) + "</font></TD><TD ALIGN=RIGHT><font face=verdana size=1>$" + formatNum(aIntPort) + "</font></TD><TD ALIGN=RIGHT><font face=verdana size=1>$" + formatNum(aPrin) + "</font></TD></TR>");
      if(aCount > 600) {
         alert("Using your current entries you will never pay off this loan.");
         break;
         } else {
         continue;
         }
    }

var part1 = '<html><head><title>Mortgage Amortization Schedule</title></head><body bgcolor="#FFFFFF" marginheight="5" marginwidth="5" topmargin="5" leftmargin="5"><table border="0" cellspacing="0" cellpadding="0" width="450" align="center"><tr><td background="/graphics/emailnews/bdr_left.gif" valign="top"><img src="/graphics/emailnews/top_left.gif" width="8" height="8"></td><td width="435"><img src="/graphics/emailnews/bridge.gif" width="435" height="7"></td><td background="/graphics/emailnews/bdr_right.gif" width="7" valign="top"><img src="/graphics/emailnews/top_right.gif" width="7" height="8"></td></tr><tr><td background="/graphics/emailnews/bdr_left.gif" valign="top">&nbsp;</td><td><table width="435" border="0" cellspacing="0" cellpadding="3"><tr><td width="100"><img src="/graphics/falogo.gif" width="100" height="42"></td><td width="100%"><div align="center"><font face="Verdana, Arial" size="2"><font size="4">Amortization<br>Schedule</font></font></div></td><td width="150"><div align="right"><font face="verdana" size="2" color="333366">' + todayMonth + " " + todayDate + ", " + todayYear + '<br><img src="/graphics/empty_dot.gif" width="140" height="1"></font></div></td></tr></table></td><td background="/graphics/emailnews/bdr_right.gif" width="7" valign="top">&nbsp;</td></tr><tr><td><img src="/graphics/emailnews/bridge_left.gif" width="8" height="8"></td><td width="435"><img src="/graphics/emailnews/bridge.gif" width="435" height="7"></td><td><img src="/graphics/emailnews/bridge_right.gif" width="7" height="8"></td></tr><tr><td background="/graphics/emailnews/bdr_left.gif"><img src="/graphics/emailnews/bdr_left.gif" width="8" height="100%"></td><td><font face="Verdana, Arial" size="2" color="333366"><b>&nbsp;Background Information</b></font><br><img src="/graphics/empty_dot.gif" width="1" height="10"><br>';

var part2 = '<table width="97%" border="0" cellspacing="0" cellpadding="5" align="center"><tr><td width="25%"><b><font face="Verdana, Arial" size="1">Loan Date</font></b></td><td width="25%" align=right><font face="Verdana, Arial" size="1">' + loanDate + '</font></td><td width="25%"><b><font face="Verdana, Arial" size="1">Principal</font></b></td><td width="25%" align=right><font face="Verdana, Arial" size="1">$' + formatNum(document.mortCal.Hprincipal.value) + '</font></td></tr><tr><td width="25%"><b><font face="Verdana, Arial" size="1">Interest Rate</font></b></td><td width="25%" align=right><font face="Verdana, Arial" size="1">' + document.mortCal.intRate.value + '%</font></td><td width="25%"><b><font face="Verdana, Arial" size="1">No. of Payments</font></b></td><td width="25%" align=right><font face="Verdana, Arial" size="1">' + aNPer + '</font></td></tr><tr><td width="25%"><b><font face="Verdana, Arial" size="1">Payment Amt.</font></b></td><td width="25%" align=right><font face="Verdana, Arial" size="1">$' + formatNum(document.mortCal.HmoPmt.value) + '</font></td><td width="25%">&nbsp;</td><td width="25%">&nbsp;</td></tr></table><img src="/graphics/empty_dot.gif" width="1" height="10"><br></td><td background="/graphics/emailnews/bdr_right.gif"><img src="/graphics/emailnews/bdr_right.gif" width="7" height="100%"></td></tr><tr><td><img src="/graphics/emailnews/bridge_left.gif" width="8" height="8"></td><td width="435"><img src="/graphics/emailnews/bridge.gif" width="435" height="8"></td><td><img src="/graphics/emailnews/bridge_right.gif" width="7" height="8"></td></tr><tr><td background="/graphics/emailnews/bdr_left.gif"><img src="/graphics/emailnews/bdr_left.gif" width="8" height="100%"></td><td><font face="Verdana, Arial" size="2" color="333366"><b>&nbsp;Schedule of Payments</b></font><br><img src="/graphics/empty_dot.gif" width="1" height="10"><BR><table width="95%" border="1" cellspacing="0" cellpadding="2" bordercolor="#FFCC66" align="center"><tr bgcolor="eeeeee"><td width="40"><div align="center"><b><font face="Verdana, Arial" size="1">Pmt #</font></b></div></td><td><div align="center"><b><font face="Verdana, Arial" size="1">Date</font></b></div></td><td><div align="center"><b><font face="Verdana, Arial" size="1">Principal</font></b></div></td><td><div align="center"><b><font face="Verdana, Arial" size="1">Interest</font></b></div></td><td><div align="center"><b><font face="Verdana, Arial" size="1">Balance</font></b></div></td></tr>';

var part3 = ("" + aPmtRow + "");

var part4 = '<tr bgcolor="eeeeee"><td><div align="center"><b><font face="Verdana, Arial" size="1">Totals</font></b></div></td><td>&nbsp;</td><td align=right><font face="Verdana, Arial" size="1">$' + formatNum(aAccumPrin) + '</font></td><td align=right><font face="Verdana, Arial" size="1">$' + formatNum(aAccumInt) + '</font></td><td>&nbsp;</td></tr></table><img src="/graphics/empty_dot.gif" width="1" height="10"><BR></td><td background="/graphics/emailnews/bdr_right.gif"><img src="/graphics/emailnews/bdr_right.gif" width="7" height="100%"></td></tr><tr><td colspan="3"><img src="/graphics/emailnews/bdr_bottom.gif" width="450" height="9"></td></tr></table><table width="450" border="0" cellspacing="0" cellpadding="5" align="center"><tr><td><font face="Verdana, Arial" size="1"><b>Caution:</b> Information provided has been obtained from sources believed to be reliable, but we cannot guarantee their accuracy or completeness. This information is not intended to provide legal, accounting or tax advice and should not be relied upon in that regard.</font></td></tr></table></body></html>';

var schedule = (part1 + "" + part2 + "" + part3 + part4 + "");

  reportWin = window.open("","","width=480,height=500,toolbar=yes,menubar=yes,scrollbars=yes");
  reportWin.document.write(schedule);
  reportWin.document.close();
    
   }
}
