function PopUpPrint () { var input_string = ""; if (CalQualAmt()) { input_string = "loanqualifier_calc_displaycertificate_frame.asp"; input_string = input_string + "?IncOne=" + document.getElementById('qualify').IncOne.value; input_string = input_string + "&IncTwo=" + document.getElementById('qualify').IncTwo.value; input_string = input_string + "&OthInc=" + document.getElementById('qualify').OthInc.value; input_string = input_string + "&RentInc=" + document.getElementById('qualify').RentInc.value; input_string = input_string + "&income1=" + document.getElementById('qualify').income1.options[ document.getElementById('qualify').income1.selectedIndex].text; input_string = input_string + "&income2=" + document.getElementById('qualify').income2.options[ document.getElementById('qualify').income2.selectedIndex].text; input_string = input_string + "&incomeother=" + document.getElementById('qualify').incomeother.options[ document.getElementById('qualify').incomeother.selectedIndex].text; input_string = input_string + "&incomerental=" + document.getElementById('qualify').incomerental.options[ document.getElementById('qualify').incomerental.selectedIndex].text; input_string = input_string + "&Applicants=" + returnRadioValue( document.getElementById('qualify').Applicants); input_string = input_string + "&HomeLoan=" + document.getElementById('qualify').HomeLoan.value; input_string = input_string + "&OthLoan=" + document.getElementById('qualify').OthLoan.value; input_string = input_string + "&CardLim=" + document.getElementById('qualify').CardLim.value; input_string = input_string + "&NumbDep=" + document.getElementById('qualify').NumbDep.value; input_string = input_string + "&IntRate=" + document.getElementById('qualify').IntRate.value; input_string = input_string + "&TermYear=" + document.getElementById('qualify').TermYear.value; input_string = input_string + "&TermMonth=" + document.getElementById('qualify').TermMonth.value; input_string = input_string + "&LoanAmt=" + document.getElementById('qualify').LoanAmt.value; input_string = input_string + "&loanType=" + returnRadioValue( document.getElementById('qualify').loanType); window.open(input_string,'certificate','width=640,height=600,scrollbars=yes,resizable=yes,screenX=0,screenY=0,left=0,top=0'); } } function returnRadioValue(sFieldName) { var cFields = sFieldName; for (x = 0; x < cFields.length; x++) { if (cFields[x].checked) { return cFields[x].value; break; } } return null; } function checkEnter(pfield, pname) { var field = pfield.value var msg var status = true if (field.length == 0) { msg = "The '" + pname + "' field must be entered." alert(msg) status = false } return status } function checkNumberofApplicants(pfield, pname) { var field = returnRadioValue(pfield) var msg var status = true if ((field == 2) && ( document.getElementById('qualify').IncTwo.value.length==0)) { msg = "You have entered Joint for the No. of Applicants. The Income 2 field must be entered." alert(msg) status = false } if ((field == 1) && (ParseDollar( document.getElementById('qualify').IncTwo.value)>0)) { msg = "You have entered Single for the No. of Applicants. The Income 2 field cannot be entered." alert(msg) status = false } return status } function checkLoanType(pfield) { var field = returnRadioValue(pfield) var msg var status = true if (field == "Home") { document.getElementById('qualify').IntRate.value = "8.16" ACF=10 // Account Keeping Fee fixedInterestRate = false //sets the intrest rate text box to a free form box status = false } if (field == "Personal") { document.getElementById('qualify').IntRate.value = "12.95" ACF=0 // Account Keeping Fee fixedInterestRate = false //sets the intrest rate text box to a free form box status = false } return status } function checkIfFixInterestRateApplies() { if (fixedInterestRate == true) { // remove focus document.getElementById('qualify').TermYear.focus(); } } function checkNumb(pnumb, pname) { var numb = pnumb.value var message var indx var status = false if (numb.length == 0) { status = true } for (var indx = 0; indx < numb.length; indx++) { /* the field should contain at least one digit */ if (numb.charAt(indx)>= "0" && numb.charAt(indx) <= "9") { status = true } } for (var indx = 0; indx < numb.length; indx++) { if (!((numb.charAt(indx)>= "0" && numb.charAt(indx) <= "9") || numb.charAt(indx) == " " || numb.charAt(indx) == "." || numb.charAt(indx) == ",")) { status = false } } if (!status) { msg = "The '" + pname + "' field must be a number." alert(msg) } return status } function parseNumb(pnumbstr) { var numb = pnumbstr.value var indx if (numb.length> 0) { indx = numb.indexOf(",") } else { indx = -1 } while (indx != -1) { numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length) indx = numb.indexOf(",") } if (numb.length> 0) { indx = numb.indexOf(" ") } else { indx = -1 } while (indx != -1) { numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length) indx = numb.indexOf(" ") } if (numb == "") { numb = 0 } return numb } function parseMonth(pyear, pmonth) { var year = parseNumb(pyear) var month = parseNumb(pmonth) var period var indx period = Math.ceil(month*1 + year*12) return period } function ParseDollar(pNumber) { var money = "" var numb = Math.round(pNumber) var indx1 var indx2 = 0 numb = "" + numb indx1 = numb.length - 1 while (indx1> -1) { indx2 += 1 if (indx2 == 4) { money = "," + money indx2 = 1 } money = numb.substring(indx1,indx1*1 + 1) + money indx1 -= 1 } return money } function checkIncOne(pInc) { var Inc = pInc var status = false if (checkEnter(Inc,"First Income")) { status = checkNumb(Inc,"First Income") } return status } function checkIntRate(pIntRate) { var IntRate = pIntRate var status = true if (checkEnter(IntRate,"Interest Rate")) { if (checkNumb(IntRate,"Interest Rate")) { if (IntRate.value == 0) { alert("The Interest Rate can not be zero.") status = false } } else { status = false } } else { status = false } return status } function checkTermY(pYear) { var TermYear = pYear var status = true if (checkEnter(TermYear,"Year Period")) { if (checkNumb(TermYear,"Year Period")) { if (TermYear.value> 30) { alert("The Term of Loan can not be longer than 30 years.") status = false } } else { status = false } } else { status = false } return status } function checkTermM(pYear, pMonth) { var TermYear = pYear var TermMonth = pMonth var status = true var ValMonth = pMonth.value if (ValMonth.length != 0) { if (checkNumb(TermMonth,"Month Period")) { if (TermMonth.value> 0 && TermYear.value> 29) { alert("The Term of Loan can not be longer than 30 years.") status = false } if (TermMonth.value> 11) { alert("Please use the Year field to enter a period longer than 11 months.") status = false } } else { status = false } } return status } var ACF = 10 //Account Keeping Fee var fixedInterestRate = true //default interest rate type function CalQualAmt() { var IncOne var IncTwo var OthInc var RentInc var TotInc var HomeLoan var OthLoan var CardLim var NumbDep var AmtDep var OthExp var TotExp var IntRate var MonthTerm var RepayAmt var QualAmt if (checkIncOne( document.getElementById('qualify').IncOne) && checkNumb( document.getElementById('qualify').IncTwo,"Second Income") && checkNumb( document.getElementById('qualify').OthInc,"Other Income") && checkNumb( document.getElementById('qualify').RentInc,"Rental Income") && checkNumberofApplicants( document.getElementById('qualify').Applicants, "No. of Applicants") && checkNumb( document.getElementById('qualify').HomeLoan,"Home Loan") && checkNumb( document.getElementById('qualify').OthLoan,"Other Loan") && checkNumb( document.getElementById('qualify').CardLim,"Card Limit") && checkNumb( document.getElementById('qualify').NumbDep,"Number of Dependants") && checkIntRate( document.getElementById('qualify').IntRate) && checkTermY( document.getElementById('qualify').TermYear) && checkTermM( document.getElementById('qualify').TermYear, document.getElementById('qualify').TermMonth)) { IncOne = (parseNumb( document.getElementById('qualify').IncOne)/12)* document.getElementById('qualify').income1.options[ document.getElementById('qualify').income1.selectedIndex].value; IncTwo = (parseNumb( document.getElementById('qualify').IncTwo)/12)* document.getElementById('qualify').income2.options[ document.getElementById('qualify').income2.selectedIndex].value; OthInc = (parseNumb( document.getElementById('qualify').OthInc)/12)* document.getElementById('qualify').incomeother.options[ document.getElementById('qualify').incomeother.selectedIndex].value; RentInc = (parseNumb( document.getElementById('qualify').RentInc)/12)* document.getElementById('qualify').incomerental.options[ document.getElementById('qualify').incomerental.selectedIndex].value; HomeLoan = parseNumb( document.getElementById('qualify').HomeLoan); OthLoan = parseNumb( document.getElementById('qualify').OthLoan); CardLim = parseNumb( document.getElementById('qualify').CardLim); NumbDep = parseNumb( document.getElementById('qualify').NumbDep); IntRate = parseNumb( document.getElementById('qualify').IntRate)/1200 MonthTerm = parseMonth( document.getElementById('qualify').TermYear, document.getElementById('qualify').TermMonth) // if SINGLE app, make sure only one income box is filled in. if ((returnRadioValue( document.getElementById('qualify').Applicants)==1) && (IncTwo> 0)) { IncTwo = 0; document.getElementById('qualify').IncTwo.value = 0; alert ("You have selected Single Application and entered a value for 'Income Two'. This value has now been reset to 0. If you require a Joint Income, please select it under 'Application Type'"); } TotInc = IncOne + IncTwo + OthInc OthExp = TotInc * 0.35; if (OthExp < 1000 && returnRadioValue( document.getElementById('qualify').Applicants)==1) { //IncTwo == 0) OthExp = 1000; } else if (OthExp < 1300 && returnRadioValue( document.getElementById('qualify').Applicants)==2) { OthExp = 1300; } else if (OthExp> 2000 && returnRadioValue( document.getElementById('qualify').Applicants)==1) { OthExp = 2000; } else if (OthExp> 2600 && returnRadioValue( document.getElementById('qualify').Applicants)==2) { OthExp = 2600; } if (NumbDep> 0) AmtDep = 175 + (NumbDep - 1) * 125; else AmtDep = 0; TotExp = AmtDep*1 + HomeLoan*1 + OthLoan*1 + (CardLim * 0.03) + OthExp*1; RepayAmt = TotInc + (RentInc * 0.7) - TotExp // no ACF on personal loans LoanAmt = (RepayAmt - ACF) * (1 - Math.pow((1 + IntRate*1),-MonthTerm))/IntRate if (LoanAmt> 0) { document.getElementById('qualify').LoanAmt.value = ParseDollar(Math.round(LoanAmt)) return true; } else { document.getElementById('qualify').LoanAmt.value = "0" return true; } } else { document.getElementById('qualify').LoanAmt.value = " " return false; } } function Init_Page() { document.getElementById('qualify').IncOne.focus(); document.getElementById('qualify').IncOne.select(); } // Calculate loan, open new window, submit form. function PopUpPrint () { CalcRepay(); inputstring = "repayment_calc_displaycertificate_frame.asp" inputstring = inputstring + "?LoanAmt1=" + document.getElementById('repay').LoanAmt1.value inputstring = inputstring + "&IntRate1=" + document.getElementById('repay').IntRate1.value inputstring = inputstring + "&TermYear1=" + document.getElementById('repay').TermYear1.value inputstring = inputstring + "&TermMonth1=" + document.getElementById('repay').TermMonth1.value inputstring = inputstring + "&RepayAmt1=" + document.getElementById('repay').RepayAmt1.value window.open(inputstring,'certificate','width=640,height=600,scrollbars=yes,resizable=yes,screenX=0,screenY=0,left=0,top=0') } function checkEnter(pfield, pname) { var field = pfield.value var msg var status = true if (field.length == 0) { msg = "The " + pname + " field must be entered." alert(msg) status = false } return status } function checkNumb(pnumb, pname) { var numb = pnumb.value var message var indx var status = false for (var indx = 0; indx < numb.length; indx++) { /* the field should contain at least one digit */ if (numb.charAt(indx)>= "0" && numb.charAt(indx) <= "9") { status = true } } for (var indx = 0; indx < numb.length; indx++) { if (!((numb.charAt(indx)>= "0" && numb.charAt(indx) <= "9") || numb.charAt(indx) == " " || numb.charAt(indx) == "." || numb.charAt(indx) == ",")) { status = false } } if (!status) { msg = "The " + pname + " field must be a number." alert(msg) } return status } function parseNumb(pnumbstr) { var numb = pnumbstr.value var indx indx = numb.indexOf(",") while (indx != -1) { numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length) indx = numb.indexOf(",") } indx = numb.indexOf(" ") while (indx != -1) { numb = numb.substring(0,indx) + numb.substring(indx*1 + 1,numb.length) indx = numb.indexOf(" ") } return numb } function parseMonth(pyear, pmonth) { var year = parseNumb(pyear) var month = parseNumb(pmonth) var period var indx period = Math.ceil(month*1 + year*12) return period } function checkLoan(pLoan) { var LoanAmt = pLoan var status if (checkEnter(LoanAmt,"Loan Amount")) { status = checkNumb(LoanAmt,"Loan Amount") } return status } function checkRepay(pRepay) { var RepayAmt = pRepay var status = true if (checkEnter(RepayAmt,"Repay Amount")) { if (checkNumb(RepayAmt,"Repay Amount")) { if (RepayAmt.value == 0) { alert("The Repay Amount can not be zero.") status = false } } else { status = false } } else { status = false } return status } function checkIntRate(pIntRate) { var IntRate = pIntRate var status = true if (checkEnter(IntRate,"Interest Rate")) { if (checkNumb(IntRate,"Interest Rate")) { if (IntRate.value == 0) { alert("The Interest Rate can not be zero.") status = false } } else { status = false } } else { status = false } return status } function checkTermY(pYear) { var TermYear = pYear var status = true if (checkEnter(TermYear,"Year Period")) { if (checkNumb(TermYear,"Year Period")) { if (TermYear.value> 30) { alert("The Year Period can not be longer than 30 years.") status = false } } else { status = false } } else { status = false } return status } function checkTermM(pMonth) { var TermMonth = pMonth var status = true if (checkEnter(TermMonth,"Month Period")) { if (checkNumb(TermMonth,"Month Period")) { //if (TermMonth.value> 11) { //alert("Please use the Year field to enter a period longer than 11 months.") //status = false //} } else { status = false } } else { status = false } return status } function CalcRepayAmt(pLoanAmt, pIntRate, pTerm) { var RepayAmt RepayAmt = pLoanAmt * pIntRate/(1 - Math.pow((1 + pIntRate*1),-pTerm)) RepayAmt = Math.ceil(RepayAmt) return RepayAmt } ///////////////////////////////////////////////////////// function CalcRepay() { var LoanAmount var InterestRate var MonthTerm if (checkLoan( document.getElementById('repay').LoanAmt1) && checkIntRate( document.getElementById('repay').IntRate1) && checkTermY( document.getElementById('repay').TermYear1) && checkTermM( document.getElementById('repay').TermMonth1)) { LoanAmount = parseNumb( document.getElementById('repay').LoanAmt1) InterestRate = parseNumb( document.getElementById('repay').IntRate1)/1200 MonthTerm = parseMonth( document.getElementById('repay').TermYear1, document.getElementById('repay').TermMonth1) document.getElementById('repay').RepayAmt1.value = CalcRepayAmt(LoanAmount, InterestRate, MonthTerm) } else { document.getElementById('repay').RepayAmt1.value = " " } } ///////////////////////////////////////////////////// function CalcTerm() { /* Calculate the Repaid Period */ var MonthTerm = 0 var YearTerm = 0 var MaxTerm = 30 * 12 /* 30 years */ var LoanAmount var RepayAmount var InterestRate var RepayFreq var MinRepay if (checkLoan( document.getElementById('repay').LoanAmt2) && checkRepay( document.getElementById('repay').RepayAmt2) && checkIntRate( document.getElementById('repay').IntRate2)) { LoanAmount = parseNumb( document.getElementById('repay').LoanAmt2) RepayAmount = parseNumb( document.getElementById('repay').RepayAmt2) InterestRate = parseNumb( document.getElementById('repay').IntRate2)/1200 MinRepay = CalcRepayAmt(LoanAmount, InterestRate, MaxTerm) RepayFreq = document.getElementById('repay').RepayFreq.options[document.getElementById('repay').RepayFreq.selectedIndex].value RepayAmount = RepayAmount * RepayFreq/12 if (RepayAmount < MinRepay) { Msg = "Sorry, the minimum repayment amount must be " + MinRepay + " dollars." alert(Msg) document.getElementById('repay').TermYear2.value = " " document.getElementById('repay').TermMonth2.value = " " } else { MonthTerm = Math.log(RepayAmount/(RepayAmount - LoanAmount * InterestRate)) / Math.log(1 + InterestRate) MonthTerm = Math.ceil(MonthTerm) YearTerm = Math.floor(MonthTerm / 12) MonthTerm = MonthTerm - (YearTerm * 12) document.getElementById('repay').TermYear2.value = YearTerm document.getElementById('repay').TermMonth2.value = MonthTerm } } else { document.getElementById('repay').TermYear2.value = " " document.getElementById('repay').TermMonth2.value = " " } } ///////////////////////////////////////////////////////// function CalcLoan() { var LoanAmt var RepayAmount var InterestRate var MonthTerm if (checkRepay( document.getElementById('repay').RepayAmt3) && checkIntRate( document.getElementById('repay').IntRate3) && checkTermY( document.getElementById('repay').TermYear3) && checkTermM( document.getElementById('repay').TermMonth3)) { RepayAmount = parseNumb( document.getElementById('repay').RepayAmt3) InterestRate = parseNumb( document.getElementById('repay').IntRate3)/1200 MonthTerm = parseMonth( document.getElementById('repay').TermYear3, document.getElementById('repay').TermMonth3) LoanAmt = RepayAmount * (1 - Math.pow((1 + InterestRate*1),-MonthTerm))/InterestRate document.getElementById('repay').LoanAmt3.value = Math.floor(LoanAmt) } else { document.getElementById('repay').LoanAmt3.value = " " } }