var formValidationConfig={formname:"amortization",success:function(oFormConfig){var frm=document.forms[oFormConfig.formname];var fields=["loan_amount","interest_rate","loan_term","extra_monthly_payment","large_payment","made_after_month"];for(var i=0;i<fields.length;i++){eval("var "+fields[i]+" = frm.elements['"+fields[i]+"'].value.stripCurrency();");eval(fields[i]+" = ("+fields[i]+"=='') ? 0:parseFloat("+fields[i]+");")}made_after_month++;var monthlyMI=PMICalculatorCalculate(loan_amount,large_payment);var amort=AmortScheduleCalculator();
var actualAmort=amort.calculate(loan_amount,loan_amount,(interest_rate/100),0,0,0,loan_term*12,extra_monthly_payment,0,large_payment,made_after_month,0.28,monthlyMI,false,loan_term*12,loan_term*12,0,0,0,0,0,0,0,0,0,0);var containers={div_payment_container:{datadiv:"div_payment",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=(actualAmort.interest[1]+actualAmort.principal[1]+extra_monthly_payment).toCurrency()}}},div_months_to_payoff_container:{datadiv:"div_months_to_payoff",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=actualAmort.totalMonthsToPayoff
}}},div_total_interest_paid_container:{datadiv:"div_total_interest_paid",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=getIndicator("#4D4DFF","spaceimage",(Math.round((actualAmort.totalNormalInterest-actualAmort.totalPrepaidSavings)*100)/100).toCurrency())}}},div_extra_paid_each_month_container:{datadiv:"div_extra_paid_each_month",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=extra_monthly_payment.toCurrency();if(extra_monthly_payment){RemoveClass(div,"hide")
}else{AddClass(div,"hide")}}if(p=document.getElementById(this.datadiv+"_label")){if(extra_monthly_payment){RemoveClass(p,"hide")}else{AddClass(p,"hide")}}}},div_down_payment_container:{datadiv:"div_down_payment",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=large_payment.toCurrency()+" at #"+made_after_month;if(large_payment){RemoveClass(div,"hide")}else{AddClass(div,"hide")}}if(p=document.getElementById(this.datadiv+"_label")){if(large_payment){RemoveClass(p,"hide")}else{AddClass(p,"hide")
}}}},div_total_interest_saved_container:{datadiv:"div_total_interest_saved",fill:function(){if(div=document.getElementById(this.datadiv)){div.innerHTML=actualAmort.totalPrepaidSavings.toCurrency();if(large_payment||extra_monthly_payment){RemoveClass(div,"hide")}else{AddClass(div,"hide")}}if(p=document.getElementById(this.datadiv+"_label")){if(large_payment||extra_monthly_payment){RemoveClass(p,"hide")}else{AddClass(p,"hide")}}}},div_total_years_saved_container:{datadiv:"div_total_years_saved",fill:function(){if(div=document.getElementById(this.datadiv)){timeSavings=(parseFloat(frm.elements.loan_term.value)*12)-actualAmort.totalMonthsToPayoff;
div.innerHTML=(timeSavings/12).toDecimal()+" years";if(large_payment||extra_monthly_payment){RemoveClass(div,"hide")}else{AddClass(div,"hide")}}if(p=document.getElementById(this.datadiv+"_label")){if(large_payment||extra_monthly_payment){RemoveClass(p,"hide")}else{AddClass(p,"hide")}}}},div_amortization_chart_container:{datadiv:"amortization_table",fill:function(){if(div=document.getElementById(this.datadiv)){var ret='<div class="amortization_data amortization_data_first_cell amortization_data_last_cell" style="height:25px;font-size:8pt;"><a style="background:transparent url(/images/calculators/close_but.gif);display:block;width:25px;height:25px;float:right;" onclick="toggleSchedule();" alt="Close" title="Close">&nbsp;</a></div>';
ret+='<div class="amortization_data_table" style="font-size:8pt;">';ret+='<table class="amortization_table" width="100%" border="0" cellpadding="0" cellspacing="0">';var nCumInterest=0;var nCumPrincipal=0;for(var i=0;i<=actualAmort.totalMonthsToPayoff;i++){nCumInterest+=actualAmort.prepaidInterest[i];nCumPrincipal+=actualAmort.prepaidPrincipal[i];if(i%12==0){ret+=amortization_get_headers()}ret+="<tr>";ret+=amortization_wrap_data(actualAmort.paymentNumber[i],"first");ret+=amortization_wrap_data((actualAmort.prepaidPrincipal[i]+actualAmort.prepaidInterest[i]).toCurrency(),"middle");
ret+=amortization_wrap_data(actualAmort.prepaidInterest[i].toCurrency(),"middle");ret+=amortization_wrap_data(actualAmort.prepaidPrincipal[i].toCurrency(),"middle");ret+=amortization_wrap_data(nCumInterest.toCurrency(),"middle");ret+=amortization_wrap_data(nCumPrincipal.toCurrency(),"middle");ret+=amortization_wrap_data(actualAmort.prepaidEndBalance[i].toCurrency(),"last");ret+="</tr>"}ret+="</table>";ret+="<DIV class='bl'></DIV>";ret+="<DIV class='tl'></DIV>";ret+="<DIV class='br'></DIV>";ret+="<DIV class='tr'></DIV>";
ret+="</div>";div.innerHTML=ret}}}};for(i in containers){if(containers[i].fill){containers[i].fill()}}this.graphIt(oFormConfig,actualAmort)},graphIt:function(H,B){ProxyXyChart_Reset(1);var C=new Object();C.type="line";C.color=5066239;C.width=2;var J=new Object();J.type="line";J.color=2330147;J.width=2;var A=new Object();A.type="line";A.color=16760613;A.width=2;bottomAxis={axislegend:"bottom",scalepadpct:5,autozero:false,displaymodulus:2};var K=0;var G=0;var E=2;var F=B.prepaidEndBalance[1];for(var D=0,I=0;D<=B.paymentNumber.length;
D++,I++){K+=isNaN(B.prepaidPrincipal[D])?0:Math.round(B.prepaidPrincipal[D]);G+=isNaN(B.prepaidInterest[D])?0:Math.round(B.prepaidInterest[D]);nEndBalance=isNaN(B.prepaidEndBalance[D])?0:Math.round(B.prepaidEndBalance[D]);if(D%(12*E)==0&&F>0){C[D]=G;J[D]=K;A[D]=nEndBalance;bottomAxis[I]=D/12;if(B.endingBalance[D]<=0){break}F=nEndBalance}}ProxyXyChart_Data(1,C);ProxyXyChart_Data(1,J);ProxyXyChart_Data(1,A);ProxyXyChart_Option(1,{axislegend:"left",auto:true,scalepadpct:2});ProxyXyChart_Option(1,bottomAxis);ProxyXyChart_Option(1,{hrules:true,width:1,color:12500670,alpha:0.7});
ProxyXyChart_Option(1,{background:true,position:"nottop",color1:15592941,color2:4934475,alpha1:0.2,alpha2:0.2});ProxyXyChart_Draw(1);this.similarProperties(H)},similarProperties:function(A){var C=document.forms[A.formname];var B=new QueryString("/includes/calculators/similarproperties.jsp");B.add("svf","lsp");B.add("maxprice",C.elements.loan_amount.value.stripCurrency());B.add("where",C.elements.strWhere.value);B.nocache=true;g_CyberAjaxQueue.schedule("GetFirstResults",B,function(){var E=obj("similarproperties");
var G=E.getElementsByTagName("div");var F="";if(this.xmlObject.responseText.replace("\t","","g").replace("\r\n","","g")==""){F="none"}for(var D=0;D<G.length;D++){G[D].style.display=F}obj("SearchPreview").innerHTML=this.xmlObject.responseText},function(){alert("error")},false,false)},reset:function(){ProxyXyChart_Reset(1);frm=document.forms[this.formname];fields=this.fields;fields.extra_monthly_payment={};fields.large_payment={};fields.made_after_month={};for(fld in this.fields){var A=frm.elements[fld];if(A&&A.type=="text"){A.value=""
}}},fields:{loan_amount:{label:"Loan Amount",required:true,type:"currency",range:{start:0,end:1000000000},"default":0},interest_rate:{label:"Interest Rate",required:true,type:"number",range:{start:0,end:30},"default":6},loan_term:{label:"Loan Term",required:true,type:"number",range:{start:0,end:30},"default":30}}};function amortization_get_headers(){ret="<tr>";ret+=amortization_wrap_data("#","first",true);ret+=amortization_wrap_data("Payment","middle",true);ret+=amortization_wrap_data("Interest","middle",true);
ret+=amortization_wrap_data("Principal","middle",true);ret+=amortization_wrap_data("Cum. Interest","middle",true);ret+=amortization_wrap_data("Cum. Principal","middle",true);ret+=amortization_wrap_data("Balance","last",true);ret+="</tr>";return ret}function amortization_wrap_data(B,C,A){switch(C){case"first":positionStyle="amortization_data_first_cell";break;case"last":positionStyle="amortization_data_last_cell";break;default:positionStyle=""}headerStyle=(A)?"amortization_header_cell":"";ret='<td class="amortization_data '+positionStyle+" "+headerStyle+'" align="right">';
ret+=B;ret+="</td>";return ret}function toggleSchedule(A){if(div=document.getElementById("amortization_table")){resultstab=document.getElementById("resultstab");amortizationtab=document.getElementById("amortizationtab");if(HasClass(div,"hide")){RemoveClass(div,"hide");if(resultstab&&amortizationtab){RemoveClass(resultstab,"bluecalloutcontainer");AddClass(resultstab,"graycalloutcontainer");RemoveClass(amortizationtab,"graycalloutcontainer");AddClass(amortizationtab,"bluecalloutcontainer")}}else{AddClass(div,"hide");
if(resultstab&&amortizationtab){RemoveClass(resultstab,"graycalloutcontainer");AddClass(resultstab,"bluecalloutcontainer");RemoveClass(amortizationtab,"bluecalloutcontainer");AddClass(amortizationtab,"graycalloutcontainer")}}}};