window.onerror=null bState = true oReq = new Collection("AMOUNT","RATE","years","","","") oVal = new Collection("AMOUNT","RATE","years","","","") oTst = new Collection("N","N","","","","") function controller(oForm, oBtn) { while (bState) { if (!Required(oForm)) break if (!Validate(oForm)) break if (!SetValue(oForm)) break //if (!NewPage(oForm, oBtn)) // break if (bState) { bState = false } } bState = true } function Required(oView) { for (i in oView) { for (j in oReq) { if (i==oReq[j]) { if (isMissing(oView[i])) { return(false) } } } } return(true) } function Validate(oView) { for (i in oView) { for (j in oVal) { if (i==oVal[j] && oTst[j]=="N") { if (isTest(oView[i], oTst[j])) { return(false) } } } } return(true) } function SetValue(oView) { Mortgage = new Loan(oView.AMOUNT.value, oView.RATE.value, document.calc.years.value, 0, 0, oView.FREQUENCY.value, 0 ) Mortgage.calcPeriods() Mortgage.calcPayment() Mortgage.calcInterest() oView.PAYMENT.value = calcRound(Mortgage.Payment) //oView.INTEREST.value = calcRound(Mortgage.Interest) //setCookie("_Prin", Mortgage.Amount) //setCookie("_Int", Mortgage.Rate) //setCookie("_Year", Mortgage.Term) //setCookie("_Tot", Mortgage.Interest) return(true) } function isMissing(oCtrl) { if (oCtrl.value == "") { alert("You have left a required value blank. Please type a number") oCtrl.focus() oCtrl.select() return(true) } else { return(false) } } function isTest(oCtrl, oTest) { if (oTest=="N" && !isNumber(oCtrl.value) ) { alert(oCtrl.value+" contains an invalid character. Please type a number") oCtrl.focus() oCtrl.select() return(true) } else { return(false) } } function isNumber(input) { for (var i=0;i "9") { if (oneChar != "." ) { return(false) } } } return(true) } function Collection(item1, item2, item3, item4, item5, item6) { this.item1 = item1 this.item2 = item2 this.item3 = item3 this.item4 = item4 this.item5 = item5 this.item6 = item6 } function Loan(Amount, Rate, Term, Payment, Interest, Frequency, Periods ) { this.Amount = Amount this.Rate = Rate this.Term = Term this.Payment = Payment this.Interest = Interest this.Frequency = Frequency this.Periods = Periods this.calcPeriods = calcPeriods this.calcPayment = calcPayment this.calcInterest = calcInterest } function calcPayment() { this.Payment = (this.Amount*((this.Rate/(this.Periods*100))/(1-(Math.pow(1+(this.Rate/(this.Periods*100)),((this.Term*this.Periods)*-1)))))) } function calcInterest() { this.Interest = ((this.Payment*(this.Term*this.Periods))-this.Amount) } function calcPeriods() { if (this.Frequency=="monthly") { this.Periods=12 } else { this.Periods=26 } } function calcRound(num) { result="$"+Math.floor(num)+"." n = result.length if (num>1000 && num<999999) { result="$"+result.substring(1,n-4)+","+result.substring(n-4,n) } if (num>1000000) { result = "$"+result.substring(1,n-7)+","+result.substring(n-7,n-4)+","+result.substring(n-4,n) } var cents=100*(num-Math.floor(num))+0.5 result += Math.floor(cents/10) result += Math.floor(cents%10) return(result) } function select_item(name, value) { this.name = name this.value = value } function setfocus() { document.MORTGAGE.AMOUNT.focus() document.MORTGAGE.AMOUNT.select() } function clearForm(myform) { myform.AMOUNT.value = ""; myform.RATE.value = ""; myform.years.value = ""; myform.PAYMENT.value = ""; }