var cache;function CheckFloatField(a){var b=a.value;if(b.indexOf(".")!=-1){while(b.charAt(b.length-1)=="0")b=b.substring(0,b.length-1);if(b.charAt(b.length-1)==".")b=b.substring(0,b.length-1);}if(""+parseFloat(b)!=b)a.value=a.defaultValue;}function CheckIntField(a){var b=a.value;if(""+parseInt(b)!=b)a.value=a.defaultValue;}function CheckDollarField(a){var b=ReadDollarField(a);if(isNaN(b))a.value=cache;else{var c=FloatToDollarString(b);a.value=c;}}function ReadDollarField(a){var c=a.value;if(c.charAt(0)=="$")c=c.substring(1,c.length);var d=c.lastIndexOf(",");while(d!=-1){c=c.substring(0,d)+c.substring(d+1,c.length);d=c.lastIndexOf(",",d);}return parseFloat(c);}function FloatToDollarString(b){var c=""+Math.round(b);var d=c.length;d-=4;while(d>=0){c=c.substring(0,d+1)+","+c.substring(d+1,c.length);d-=3;}return c;}function RecalcDownPay(f){var g=parseFloat(f.intYear.value)/100.0;var h=g/12.0;var i=parseInt(f.termMonths.value);var j=ReadDollarField(f.payMonth);var price=ReadDollarField(f.price);var k;if(h==0)k=j*i;else k=j*((1-Math.pow((1+h),-i))/h);var downpay=price-k;f.downpay.value=""+downpay;CheckDollarField(f.downpay);RecalcDownPayPer(f);RecalcMonthlyPay(f);}function RecalcDownPayPer(f){var price=ReadDollarField(f.price);var downpay=ReadDollarField(f.downpay);var downpayper=100*(downpay/price);if((downpayper>=0)&&(downpayper<=100)){var l=""+downpayper;var d=l.indexOf(".");if(l.length>(d+4))l=l.substring(0,d+4);f.downpayper.value=l;}else if(downpayper<0){f.downpayper.value="0";RecalcDownPayAmount(f);}else if(downpayper>100){f.downpayper.value="100";RecalcDownPayAmount(f);}}function RecalcDownPayAmount(f){var downpayper=ReadDollarField(f.downpayper);if(downpayper<0){f.downpayper.value="0";RecalcDownPayAmount(f);}else if(downpayper>100){f.downpayper.value="100";RecalcDownPayAmount(f);}else{var price=ReadDollarField(f.price);if(isNaN(price)||(price==0)){f.downpay.value="";}else{var downpay=price*(downpayper/100);downpay=FloatToDollarString(downpay);f.downpay.value=""+downpay;}}}function RecalcMonthlyPay(f){var m=ReadDollarField(f.price)-ReadDollarField(f.downpay);var g=parseFloat(f.intYear.value)/100.0;var h=g/12;var i=parseInt(f.termMonths.value);var downpay=ReadDollarField(f.downpay)/ReadDollarField(f.price);var j=m;if(i>0){if(h==0)j=m/i;else j=m*(h/(1-Math.pow((1+h),-i)));j=Math.round(j*100)/100;}var pmi=0;if((downpay<.20)||(f.downpay.value==0)||(f.price.value==0))pmi=(m*.01)/12.0;var n=Number(pmi)+Number(j);f.payMonth.value=FloatToDollarString(j);f.pmi.value=FloatToDollarString(pmi);f.totalPay.value=FloatToDollarString(n);}function RecalcTermYears(f){var i=parseInt(f.termMonths.value);var o=parseFloat(i)/12.0;f.termYears.value=""+o;f.termMonths.value=""+i;}function RecalcTermMonths(f){var o=parseInt(f.termYears.value);var i=Math.round(o*12.0);o=parseFloat(i)/12.0;f.termYears.value=""+o;f.termMonths.value=""+i;}function CalculatePrice(calcForm,p){var min=ReadDollarField(calcForm.q);var max=ReadDollarField(calcForm.r);var s=ReadDollarField(calcForm.downpay);var t=(calcForm.intYear.value/100)/12;var i=calcForm.termMonths.value;var u=parseInt(((Math.pow((1+t),i)-1)/(t*Math.pow((1+t),i)))*min)+parseInt(s);var v=parseInt(((Math.pow((1+t),i)-1)/(t*Math.pow((1+t),i)))*max)+parseInt(s);p.w.value=u;p.x.value=v;}function Initialize(){var f=document.calcform;CheckDollarField(f.price);RecalcDownPayAmount(f);RecalcMonthlyPay(f);}window.onload=Initialize;
