(function(a){MortgageCalculator=function(){this.initialize.apply(this,arguments)};MortgageCalculator.rules={".mc-container":"cursor: default; font-family: Verdana, sans-serif; text-align: left",".mc-title":"font-family: Verdana, sans-serif; font-weight: bold; font-size: 10pt",".mc-body":"padding: 10px; border: 1px solid; -moz-border-radius: 5px; -webkit-border-radius: 5px",".mc-clear":"clear: both",".mc-logo":"float: right; margin: 0 0 5px 0; border: 0",".mc-graph":"display: none; margin: 10px 0 0 0",".mc-legend":"display: inline-block; margin: 0 5px 0 0; line-height: 7pt; font-size: 7pt; width: 7pt; height: 7pt",".mc-scroll":"margin: 0; overflow-x: hidden; overflow-y: scroll;",".mc-message":"font-size: 8pt",".mc-button":"cursor: pointer; float: right; height: 30px; padding: 1px; border: 1px solid; -moz-border-radius: 4px; -webkit-border-radius: 4px; font-family: Verdana, sans-serif; font-size: 11pt; font-weight: normal;",".mc-footer":"margin: 2px 0 0 0; font-family: Verdana, sans-serif; font-size: 7.5pt; text-align: left;font-weight: bold;",".mc-navs":{self:"margin: 0; padding: 0; line-height: 25px; font-family: Verdana, sans-serif; font-size: 11pt; font-weight: bold; text-align: center",".mc-nav":"width: 20px; height: 25px; margin: 0; padding: 1px; border: 1px solid; -moz-border-radius: 3px; -webkit-border-radius: 3px; font-family: Verdana, sans-serif; font-size: 11pt; font-weight: bold",".mc-pressed":"padding: 2px 0 0 2px"},".mc-small":"height: 25px; font-size: 9pt",".mc-pressed":"padding: 2px 0 0 2px",".mc-tables":"position: relative; overflow: hidden; height: 92px !important; margin: 10px 0 0 0; text-align: left",".mc-fields":{self:"float: left; margin: 0 10px 0 0","*":"float: left",label:"width: 85px; line-height: 13px; font-size: 7pt; font-weight: bold; text-align: right;padding-right: 3px",input:"margin: 0 0 5px 0; padding: 2px; width: 90px; border: 1px solid; font-family: Verdana, sans-serif; font-size: 10pt; text-align: right",select:"margin: 0 0 5px 0; padding: 2px; width: 96px; border: 1px solid; font-family: Verdana, sans-serif; font-size: 10pt",div:"padding: 0 0 0 5px; width: 20px; line-height: 20px; font-size: 8pt; text-align: left",br:"clear: left"},".mc-tabs":{self:"position: absolute; margin: 10px 0 0 0; padding: 0; list-style-type: none; z-index: 100",".mc-tab":"cursor: pointer; float: left; margin: 0; padding: 0 10px 0 10px; line-height: 28px; border: 1px solid; -moz-border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius-bottomleft: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom-left-radius: 0; -webkit-border-bottom-right-radius: 0; font-family: Verdana, sans-serif; font-size: 9pt; font-weight: bold",".mc-active":"line-height: 28px; border-bottom: 0"},".mc-panes":{".mc-pane":"display: none; position: relative; top: 38px; margin: 0 0 38px 0; padding: 10px; overflow: hidden; border: 1px solid; -moz-border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius-topleft: 0; -webkit-border-top-left-radius: 0; font-size: 9pt","p:first-child":"margin: 0",p:"margin: 1em 0 0 0",a:"font-size: 7.5pt",ul:"margin: 0 0 5px 20px; padding: 0",li:"padding: 1em 0 0 0"},".mc-errors":{self:"margin: 0 0 5px 20px; padding: 0; list-style-type: square",li:"padding: 1em 0 0 0"},".mc-table":{self:"table-layout: fixed; width: 100%; border-collapse: collapse",th:"padding: 0 0 2px 0; font-size: 9pt; font-weight: bold; text-align: center",td:"padding: 0; line-height: 2em; border: 1px solid; font-size: 9pt; text-align: center",sup:"font-family: Verdana, Verdana, sans-serif; vertical-align: top"},".mc-widget":{".mc-title":"font-size: 11pt; text-align: center",".mc-body":"padding: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; text-align: center",".mc-logo":"float: none; text-align: center",".mc-graph":"margin: 0",".mc-legend":"margin: 0 4px 0 0; line-height: 5pt; font-size: 5pt; width: 5pt; height: 5pt",".mc-button":"float: none; clear: left; width: 100%; margin: 5px 0 0 0",".mc-footer":"text-align: left",".mc-fields":{self:"margin: 0",label:"margin: 0 0 0 2px; width: 65px; line-height: 18px; font-family: Verdana, sans-serif; font-size: 9pt",input:"margin: 0 0 4px 0; width: 66px; font-size: 8pt",select:"margin: 0 0 4px 0; width: 72px; font-size: 8pt",div:"padding: 0 0 0 4px; width: 18px; line-height: 18px; font-family: Verdana, sans-serif; font-size: 7pt"},".mc-panes":{".mc-pane":"position: static; top: 0; margin: 10px 0 0 0; padding: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px"},".mc-tab":"line-height: 28px; margin: 0; padding: 0 5px 0 5px; font-family: Verdana, sans-serif; font-size: 11pt; font-weight: bold",".mc-table":{self:"position: absolute",th:"padding: 0; font-family: Verdana, sans-serif; font-size: 9pt; text-align: left",td:"padding: 0 2px 0 2px; line-height: 2em; font-family: Verdana, sans-serif; font-size: 8pt; text-align: right"}}};a.extend(MortgageCalculator.prototype,{F:function(){return false},Z:function(b,d,c){b=this.N(b,c);return isNaN(b)?d:b},N:function(b,c){b=parseFloat(b instanceof a?b.val():b);if(isNaN(b)||!c){return b}c=Math.pow(10,c);return Math.round(b*c)/c},$:function(b){b=this.N(b,2);var e=b<0?"-":"",d=parseInt(b=Math.abs(b),10)+"",c=(c=d.length)>3?c%3:0;return"$"+e+(c?d.substr(0,c)+",":"")+d.substr(c).replace(/(\d{3})(?=\d)/g,"$1,")+"."+Math.abs(b-d).toFixed(2).slice(2)},P:function(c){var b=[];a.each(c,function(e,d){b.push(e+"="+d)});return b.join("&")},B:function(){var b=a.makeArray(arguments),d=b.shift(),c=b.shift();return function(){return c.apply(d,b.concat(a.makeArray(arguments)))}},E:function(h,c,n){var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.",b=[];c=c||Math.max.apply({},h);n=n||4095;for(var f=0;f<h.length;f++){if(h[f]!=null){var l=Math.round(h[f]*n/c),e=Math.floor(l/g.length),d=l-g.length*e;b.push(g.charAt(e)+g.charAt(d))}else{b.push("__")}}return b.join("")},C:function(b){var d=this.colors.value;return a(b).map(function(c,f){return d[f.constructor==Array?f[0]:f].substr(1)}).get().join()},proper:function(b){return b.substr(0,1).toUpperCase()+b.substr(1).toLowerCase()},table:function(b){return a("<table/>").addClass("mc-table").attr({cellspacing:0,cellpadding:0}).appendTo(b)},column:function(d,c,b){a.each(d,function(){a(this).find("tr").find(":nth-child("+c+")")[b?"show":"hide"]()})},row:function(d,c,b){if(c){d.find("tr:nth-child("+c+")")[b?"show":"hide"]()}else{return a("<tr/>").appendTo(d)}},cell:function(c,b){return a("<td/>").css(this.colors.css.table).html(b||"").appendTo(c)},head:function(d,c,b){d=a("<th/>").appendTo(d);if(b){this.legend(d,b)}return d.append(a("<span/>").text(c)).append("<sup/>")},legend:function(c,b){a("<span/>").addClass("mc-legend").css("background",this.colors.value[b.toLowerCase()]).html("&nbsp;").appendTo(c)},message:function(b,h,f){var j=this,g=j.values,e=g.input,d=g.value,c;h.find("sup").html(e.pmi>0?" &dagger;":"");if(e.pmi>0){c=d.down>=0.2?"PMI is not included with a down payment of 20% or greater":"PMI is cancelled after "+j.N(d.pmiTerm/12,1).toFixed(1)+" years when 20% of the principal has been paid";if(b){b.append("&dagger; "+c+"<br/>")}else{h.attr("title",c)}}f.find("sup").html(d.extra>0?" &Dagger;":"");if(d.extra>0){c="The loan is paid off in "+j.N(d.paymentTerm/12,1).toFixed(1)+" years with the extra monthly payments";if(b){b.append("&Dagger; "+c)}else{f.attr("title",c)}}},pane:function(c){var g=this,b=g.objects,e=b.pane;if(g.errors.length>0){c="error"}else{if(!g.processed){return}}g[c]();if(e){e.stop().hide()}e=b.panes[c];if(g.animate){var f=g.quirks?(g.widget?12:22):0,d=b.pane?(b.pane.height()+f):0;b.pane=e.show().data("height",e.data("height")||(e.height()+f)).height(d+f).preAnim().animate({height:e.data("height")},{duration:750,easing:"mc",complete:e.postAnim})}else{b.pane=e.show()}},error:function(){var c=this,b=c.objects.errors;if(b){b.empty();a.each(c.errors,function(){a("<li></li>").html(this.replace(/'(.+)'/,"<b>$1</b>")).appendTo(b)})}},payment:function(E){label=function(i,j,h){return a(i).map(function(d,l){return l[1]+" ("+(j[d]*100/h).toFixed(0)+"%)"}).get().join("|")};var C=this,G=C.objects,F=G.payment,z=C.values,c=C.colors,b=C.fields,x=C.widget,I=F.groups,H=F.headers;if(E){var A=F.index||0,y=F.index=(A+E+I.length)%I.length,u=I[y],n=F[I[A]].table.stop(true,true),f=F[u].table.stop(true,true);F.title.text(C.proper(u)+(y==2?"":"ly"));if(C.animate){var k=(n.width()+10)*E;n.animate({left:k},{duration:750,easing:"mc",complete:function(){n.hide().css("left",0)}});f.css({left:-k}).show().animate({left:0},{duration:750,easing:"mc"})}else{n.hide();f.show()}}else{var m=z.value,r=z.payment,n=r.total,e=b.taxes.enabled,q=b.insurance.enabled,J=b.pmi.enabled,D=e||q||J,g=q?(J?"Ins/PMI":"Insurance"):"PMI";if(r.processed){return}a.each(I,function(d,h){a.each(H,function(j,l){F[h][l].html(C.$(r[h][l]))})});if(x){a.each(I,function(){var h=F[this],d=h.table;C.message(null,h.head.insurance.find("span:last").text(g).end(),h.head[D?"total":"payment"]);C.row(d,2,e);C.row(d,3,q||J);C.row(d,4,D)});F.tables.height((F.total.table.find("tr:visible").size()*23)+(C.browser.opera?2:0))}else{var s=F.table;C.message(F.message.empty(),F.head.insurance.find("span:last").text(g).end(),F.total.head);C.column(s,3,e);C.column(s,4,q||J);C.column(s,5,D)}var k=C.width+40,B=90,s={cht:"p3",chf:"bg,s,"+c.pane.back.substr(1)},u,E;if(m.taxes+m.insurance+m.pmi>0){u=[["payment","Payment"]];E=[n.payment];if(m.taxes>0){u.push(["taxes","Taxes"]);E.push(n.taxes)}if(m.insurance>0||m.pmi>0){u.push(["insurance",g]);E.push(n.insurance)}F.legend.show()}else{F.graph.hide();F.legend.hide()}if(!x){u=[["principal","Principal"],["interest","Interest"]];E=[n.principal,n.interest];if(m.extra>0){u.push(["extra","Extra"]);E.push(n.extra)}}}},amort:function(z){var P=this,U=P.objects,l=U.amort,M=P.values,g=P.colors,e=P.fields,K=P.widget,N=M.input,A=M.value,F=M.payment,H=F.total,X=M.amort,I=X.month,u=X.year,q=e.taxes.enabled,E=e.insurance.enabled,Y=e.pmi.enabled,n=e.extra.enabled,R=n?"Prin/Xtra":"Principal",x=E?(Y?"Ins/PMI":"Insurance"):"PMI";if(z){var z=P.popup,N=0,L=Math.max(Math.ceil(e.count/2),3),D,W,S=a("<div/>"),B;if(!z||z.closed){var E=a.browser.msie,C=MortgageCalculator.style,D=E?C.cssText:a(C.cssRules).map(function(b,c){return this.cssText}).get().join("");z=P.popup=window.open("",E?null:"mc-popup","width=600,height=400,menubar=yes,location=no,status=no,scrollbars=yes");z.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><style type="text/css">body{margin:0;padding: 15px}'+D+'</style></head><body class="mc-container" style="width: auto"></body></html>');z.document.close()}else{z.focus()}W=a(z.document).find("body").empty();B=P.table(S).css("table-layout","auto").width("auto").append('<col width="120"/><col width="140"/><col width="140"/><col width="140"/>');D=[];a.each(e,function(f,d){if(!d.enabled){return}var c=d.label.split("|")[0],d=M.input[f],b=N%L,h=D[b]||(D[b]=P.row(B));P.head(h,c).css("text-align","left");P.cell(h,(f=="term"?d+" years":(f=="interest"?d=d.toFixed(2)+"%":d=P.$(d)+(f=="taxes"||f=="insurance"?" /year":(f=="pmi"||f=="extra"?" /month":"")))));N++});for(var N=e.count;N<L*2;N++){P.head(D[N%L],"").attr("colSpan",2)}B.find("th:odd").css("padding","0 0 0 20px");B=P.table(S).css("margin","15px 0 0 0"),D=P.row(B);a.each(["Month",R,"Interest","Taxes",x,"Balance"],function(b,c){P.head(D,c).width(b==0?50:"auto")});for(var J=0;J<M.value.paymentTerm;J++){P.cell(D=P.row(B),J+1);a.each([I.principal[J]+I.extra[J],I.interest[J],I.taxes[J],I.insurance[J],I.balance[J]],function(){P.cell(D,P.$(this))})}P.head(D=P.row(B),"Total");P.head(D,P.$(H.principal+H.extra));P.head(D,P.$(H.interest));P.head(D,P.$(H.taxes));P.head(D,P.$(H.insurance));D.find("th").css("padding","10px 0 0 0");B.find("td:last-child").css({background:g.value.total,borderLeftWidth:2}).end().find("tr:nth-child(12n+2):not(:first) td").css({borderTopWidth:2});P.column(B,4,q);P.column(B,5,E||Y);W.append(S.html());if(!K){window.setTimeout(function(){z.print()},100)}}else{if(!K){if(X.processed){return}var B=l.table,O=l.head,Q=l.foot;a.each(B.find("tr"),function(b){var c=a(this);if(b<A.paymentTerm){c.show().children(":first").next().text(P.$(I.principal[b]+I.extra[b])).next().text(P.$(I.interest[b])).next().text(P.$(I.taxes[b])).next().text(P.$(I.insurance[b])).next().text(P.$(I.balance[b]))}else{c.hide()}});P.column([O,B,Q],4,q);P.column([O,B,Q],5,E||Y);Q.find("th:first").next().text(P.$(H.principal+H.extra)).next().text(P.$(H.interest)).next().text(P.$(H.taxes)).next().text(P.$(H.insurance));O.principal.find("span:last").text(R);P.message(l.message.empty(),O.insurance.find("span:last").text(x).end(),O.total);var z=P.width-44,O=130,I=F.year.total,G,T=["principal","interest"];if(A.extra>0){T.unshift("extra")}if(A.taxes>0){T.push("taxes")}if(A.pmi>0||A.insurance>0){T.push("insurance")}G={cht:"bvs",chm:"D,"+g.value.balance.substr(1)+","+T.length+",0,2,0",chbh:"a,4",chs:z+"x"+O,chxt:"x,y",chxl:"0:|"+(function(c,b){while(b++<=M.input.term){c.push(b)}return c.join("|")})([],0)+"|1:|$0|$"+F.month.total.toFixed(0),chf:"bg,s,"+g.pane.back.substr(1),chco:P.C(T),chd:"e"+T.length+":"+(A.extra>0?P.E(u.extra,I)+",":"")+P.E(u.principal,I)+","+P.E(u.interest,I)+(A.taxes>0?","+P.E(u.taxes,I):"")+(A.pmi>0||A.insurance>0?","+P.E(u.insurance,I):"")+","+P.E(u.balance)};l.graph.width(z).height(O).attr("src",P.google+P.P(G)).show();X.processed=true}}},validate:function(){V=function(n,m,g,q,j){if(!f.fields[n].enabled){return}var n=c[n],i=n.val(),h=n.data("label"),k;if(i.length>0){i=parseFloat(i);if(isNaN(i)){k="The '"+h+"' field must be a number."}else{if(i<g||i>q){k="The '"+h+"' field must be "+(i<g?"greater":"less")+" than or equal to "+(i<g?g:q).toFixed(m)+"."}}}else{if(j){k="The '"+h+"' field is required."}}n.css("background",f.colors.input[k?"error":"back"]).attr("title",k);if(k){b.push(k)}};var f=this,b=f.errors,c=f.objects,d=f.bounds;b.length=0;V("principal",2,d.min.principal||0,d.max.principal||Number.MAX_VALUE,true);V("interest",2,d.min.interest||0,d.max.interest||Number.MAX_VALUE,true);V("term",0,d.min.term||0,d.max.term||Number.MAX_VALUE,true);var e=f.Z(c.principal,Number.MAX_VALUE);V("down",2,d.min.down||0,d.max.down||e,false);V("taxes",2,d.min.taxes||0,d.max.taxes||e,false);V("insurance",2,d.min.insurance||0,d.max.insurance||e,false);V("pmi",2,d.min.pmi||0,d.max.pmi||e,false);V("extra",2,d.min.extra||0,d.max.extra||e,false);return b.length==0},calculate:function(){add=function(j,d,b){j[d]=(j[d]||0)+b};accum=function(b){return Math.pow(1+B.interest,b-B.term)};paid=function(m){var t,x,v=B.extra,j,d;if(v==0){j=accum(m-1);t=B.payment*(1-j);x=B.payment*j}else{d=B.balance;t=o.N(B.interest*d,2);x=B.payment-t;if(d-x-v<0){if(d>x){v=d-x}else{x=d;v=0}}B.balance=d-x-v}return{interest:t,principal:x,extra:v}};balance=function(b){if(B.extra==0){return B.payment*(1-accum(b))/B.interest}return B.balance};var o=this,s=o.objects,l=o.values,c=o.fields,q=l.input={},B=l.value={},f=l.payment={month:{},year:{}},C=f.total={principal:0,extra:0,interest:0},A=l.amort={},g=A.month={principal:[],extra:[],interest:[],taxes:[],insurance:[],balance:[]},w=A.year={principal:[],extra:[],interest:[],taxes:[],insurance:[],balance:[]};if(!o.validate()){return o.pane("error")}a.each(c,function(d,b){q[d]=o.Z(s[d],0)});B.principal=q.principal;B.interest=q.interest/1200;B.term=q.term*12;B.down=q.down/q.principal;B.taxes=o.N(q.taxes/12,2);B.insurance=o.N(q.insurance/12,2);B.pmi=B.down>=0.2?0:q.pmi;B.pmiTerm=B.term;B.extra=q.extra;B.balance=q.principal-q.down;B.payment=o.N(B.balance*B.interest/(1-accum(0)),2);B.paymentTerm=0;for(var h=1;h<=B.term;h++){var r=paid(h),u=balance(h),n=Math.floor((h-1)/12),z=B.taxes,e=B.insurance+(h>B.pmiTerm?0:B.pmi);if(u==0&&r.principal>0){r.principal+=o.N(B.principal-C.principal-r.principal-C.extra-r.extra,2)}g.principal.push(r.principal);g.extra.push(r.extra);g.interest.push(r.interest);g.taxes.push(z);g.insurance.push(e);g.balance.push(u);add(w.principal,n,r.principal);add(w.extra,n,r.extra);add(w.interest,n,r.interest);add(w.taxes,n,z);add(w.insurance,n,e);w.balance[n]=B.paymentTerm?null:u;C.principal+=r.principal;C.extra+=r.extra;C.interest+=r.interest;if(h<B.pmiTerm&&u<B.principal*0.8){B.pmiTerm=h}if(!B.paymentTerm&&u==0){B.paymentTerm=h}}w.balance[Math.ceil(B.paymentTerm/12)-1]=0;g=f.month;g.payment=B.payment+B.extra;g.taxes=B.taxes;g.insurance=B.insurance+B.pmi;g.total=o.N(g.payment+g.taxes+g.insurance,2);w=f.year;w.payment=o.N(g.payment*12,2);w.taxes=o.N(g.taxes*12,2);w.insurance=B.pmiTerm<12?o.N((B.insurance*12)+(B.pmi*B.pmiTerm),2):o.N(g.insurance*12,2);w.total=o.N(w.payment+w.taxes+w.insurance,2);C.payment=C.principal+C.extra+C.interest;C.taxes=o.N(g.taxes*B.term,2);C.insurance=o.N((B.insurance*B.term)+(B.pmi*B.pmiTerm),2);C.total=o.N(C.payment+C.taxes+C.insurance,2);o.processed=true;l.payment.processed=l.amort.processed=null;o.pane(o.widget?"payment":s.tab.data("id"))},build:function(){field=function(N,i,O,b,M,j){b=b.split("|");a("<label/>").attr("title",M).text(b[A?b.length-1:0]).click(function(){H[O].focus()}).appendTo(N);H[O]=a("<"+i+"/>").css(e.css.field).data("id",O).data("label",b[0]).focus(function(){a(this).select()}).blur(function(n){var l=n.target;if(l.type=="text"){var p=a(l),k=parseFloat(p.val());if(isNaN((p.val()))){k=p.val();k=k.replace(",","");k=parseFloat(k);p.val(k.toFixed(O=="term"?0:2))}else{if(!isNaN(k)){p.val(k.toFixed(O=="term"?0:2))}}}}).keypress(function(k){if(k.which=="13"){k=a(k.target);k.trigger(k.data("id")=="principal"?"change":"blur");D.calculate()}}).appendTo(N);if(i=="select"){for(var f=g.min[O],i=H[O].append(a("<option/>").val("")),M=g.step[O],r=(r=M.toString().split("."))[1]?r[1].length:0;f<=g.max[O];f+=M){a("<option/>").val(f).text(D.N(f).toFixed(r)).appendTo(i)}}a("<div/>").text(j||"").appendTo(N);a("<br/>").appendTo(N)};button=function(k,j){var i=D.browser,f=i.msie||i.opera;return a("<button/>").addClass("mc-button").css(e.css.button).text(j).mousedown(f?D.F:function(b){a(b.target).addClass("mc-pressed")}).mouseup(f?D.F:function(b){a(b.target).removeClass("mc-pressed")}).appendTo(k)};navMC=function(f,b){return button(f,b).removeClass("mc-button").addClass("mc-nav").css(e.css.navMC).css("float",b=="<"?"left":"right").click(D.B(D,D.payment,b=="<"?-1:1))};tab=function(j,k,f,b){var i=H.tabs[k]=a("<li/>").addClass("mc-tab").css(e.css.tab(b)).data("id",k).text(f).click(function(o){H.tab.css(e.css.tab()).removeClass("mc-active");var l=(H.tab=a(o.target).css(e.css.tab(true)).addClass("mc-active")).data("id"),n=(l=="payment"?0:5);a.each(H.panes,function(){this.css({"-moz-border-radius-topleft":n,"-webkit-border-top-left-radius":n})});D.pane(l)}).mousedown(D.F).bind("selectstart",D.F).appendTo(j);if(b){H.tab=i.addClass("mc-active")}};pane=function(i,j,t,N,k,r,b){var f=H.panes[j]=a("<div/>").addClass("mc-pane").css(e.css.pane).data("id",j).appendTo(i),l=f.show,M=f.hide;f.show=D.B(f,function(){l.apply(this);this.data("height",null).height("auto");if(N){N.apply(this)}return this});f.hide=D.B(f,function(){M.apply(this);if(k){k.apply(this)}return this});f.preAnim=D.B(f,function(){if(r){r.apply(this)}return this});f.postAnim=D.B(f,function(){if(b){b.apply(this)}return this});if(t){H.pane=f.show()}return f};graph=function(f,b){a("<br/>").appendTo(f);return a("<img/>").addClass("mc-graph").attr("title",b).appendTo(f)};clear=function(b){a("<div/>").addClass("mc-clear").appendTo(b)};var D=this,H=D.objects,G=H.payment={head:{}},h=H.amort={},L=D.logo,e=D.colors,c=D.fields,d=D.defaults,g=D.bounds,A=D.widget;var w=H.obj.addClass("mc-container"+(A?" mc-widget":"")).width(D.width),I=D.browser,K=G.groups=["month","year","total"],J=G.headers=["payment","taxes","insurance","total"],E=h.headers=["month","principal","interest","taxes","insurance","balance"];if(D.title){a("<div/>").addClass("mc-title").css(e.css.title).html(D.title).appendTo(w)}w=a("<div/>").addClass("mc-body").css(e.css.body).append("<div/>").appendTo(w);if(L.path){var y=a("<img/>").addClass("mc-logo").attr("src",L.path).appendTo(w);if(L.url){y.wrap(a("<a/>").attr({href:L.url,target:L.target||"_blank"}))}}var F,C=0,B=Math.max(Math.ceil(c.count/2),3);a.each(c,function(f,b){if(b.enabled){if(!(C++%B)){F=a("<div/>").addClass("mc-fields").appendTo(w)}field(F,b.type,f,b.label,b.desc,b.suffix)}});button(w,"calculate").css("width",90).click(D.B(D,D.calculate));if(!A){clear(w);var m=a("<ul/>").addClass("mc-tabs").appendTo(w);tab(m,"payment","Payments",true)}w=a("<div/>").addClass("mc-panes").appendTo(w);if(A){var v=pane(w,"payment"),x=a("<div/>").addClass("mc-navs").css("color",e.tab.text).appendTo(v),q;navMC(x,"<");navMC(x,">");G.title=a("<span/>").text("Monthly").appendTo(x);q=G.tables=a("<div/>").addClass("mc-tables").appendTo(v);a.each(K,function(f,j){var k=G[j]={head:{}},b=k.table=D.table(q).css("display",f==0?"table":"none");a.each(J,function(l,o){var n=D.row(b);k.head[o]=D.head(n,D.proper(o),l==3?null:o);k[o]=D.cell(n).css({background:l==3?e.value.total:e.table.back,borderTopWidth:l==3?2:1})})});G.legend=v.find(".mc-legend");G.graph=graph(v,"Distribution of payments over the term of the loan");a("<a/>").css(e.css.link).attr("href","#").html("Amortization schedule").click(D.B(D,D.amort,true)).appendTo(v).wrap(a("<div/>").css("margin","10px 0 0 0"))}else{pane(w,"intro",true).html(D.intro);pane(w,"error").html("<p><b>An error has occurred. There are some problems with the values you have entered:</b></p>").append(H.errors=a("<ul/>").addClass("mc-errors"));var v=pane(w,"payment"),m=G.table=D.table(v),u=D.row(m),q;a.each([""].concat(J),function(b,f){G.head[f]=D.head(u,D.proper(f),b>0&&b<4?f:null).width(b==0?70:"auto")});a.each(K,function(b,j){var k=G[j]={},f=D.row(m);k.head=D.head(f,D.proper(j)+(b<2?"ly":"")).css({textAlign:"left",padding:"0"});a.each(J,function(l){k[this]=D.cell(f).css({background:j=="total"||l==3?e.value.total:e.table.back,borderLeftWidth:l==3?2:1,borderTopWidth:j=="total"?2:1})})});G.legend=v.find(".mc-legend");G.message=a("<div/>").addClass("mc-message").css("padding","4px 0 0 70px").appendTo(v);G.graph=graph(v,"Distribution of payments over the term of the loan");G.graph2=graph(v,"Distribution of payments to principal and interest over the term of the loan");v=pane(w,"amort",false,function(){if(!this.shown){var f=D.browser,j=h.table,i=j.width();h.head.width(i);h.foot.width(i);if(f.mozilla){j.width(i-1)}h.scroll.height(f.msie?j.find("tr:nth-child(12)").position().top:(j.find("tr:first").height()*12)+1);this.shown=true}},null,function(){if(D.animate&&D.browser.mozilla){this.height(h.scroll.position().top+h.scroll.height());h.table.hide()}},function(){if(D.animate&&D.browser.mozilla){h.table.show()}});m=h.head=D.table(v);u=D.row(m);a.each(E,function(b,f){h.head[f]=D.head(u,D.proper(f),b<1?null:f).width(b==0?50:"auto")});m=h.table=D.table(h.scroll=a("<div/>").addClass("mc-scroll").height(100).appendTo(v));for(var z=1;z<=g.max.term*12;z++){m.append("<tr><td>"+z+"</td><td/><td/><td/><td/><td/></tr>")}m.find("td").css(e.css.table).eq(0).width(50);m.find("td:last-child").css({background:e.value.total,borderLeftWidth:2}).end().find("tr:nth-child(12n+1):not(:first) td").css({borderTopWidth:2});m=h.foot=D.table(v);u=D.row(m);h.head.total=D.head(u,"Total").width(50);u.append("<th/><th/><th/><th/>");button(D.head(u).css("padding","5px 0 0 0"),"Print").addClass("mc-small").click(D.B(D,D.amort,true));h.legend=v.find(".mc-legend");h.message=a("<div/>").addClass("mc-message").appendTo(v);h.graph=a("<img/>").addClass("mc-graph").attr("title","Distribution of payments over the course of the loan").appendTo(v)}if(D.footer){a("<div/>").addClass("mc-footer").css(e.css.footer).html(D.footer).appendTo(H.obj)}w=H.obj;if(I.msie){w.find("p:first").css("margin","0");w.find(".mc-nav").css("line-height","20px");if(D.quirks){w.find("input").width(w.find("select").width()+6)}}else{if(I.opera){w.find(".mc-button").css("line-height","26px");w.find(".mc-nav").css("line-height","22px")}else{if(I.mozilla){w.find("table").css("margin","1px 0 0 "+(A?"0":"1px"))}}}H.principal.change(function(f){var i=a(f.target).trigger("blur"),b=parseFloat(i.val());if(!isNaN(b)){if(c.taxes.enabled&&d.taxes){H.taxes.val((b*d.taxes/100).toFixed(2))}if(c.insurance.enabled&&d.insurance){H.insurance.val((b*d.insurance/100).toFixed(2))}if(c.down.enabled&&d.down){H.down.val((b*d.down/100).toFixed(2))}}}).val(D.Z(d.principal,"")).trigger("change");H.interest.val(D.Z(d.interest,"")).trigger("blur");H.term.val(D.Z(d.term,"")).trigger("blur");if(c.pmi.enabled){H.pmi.val(D.Z(d.pmi,"")).trigger("blur")}if(c.extra.enabled){H.extra.val(D.Z(d.extra,"")).trigger("blur")}},initialize:function(h,f){var g=this,j=f,d=j.colors,b=j.fields,c=j.defaults,e=j.bounds,i=navigator.userAgent.toLowerCase();a.each([c,e.min,e.max,e.step],function(){var k=this;a.each(k,function(m,l){k[m]=g.N(l,m=="term"?0:2)})});a.each(d,function(){var k=this;a.each(k,function(m,l){l=l?l.toLowerCase().replace("transparent","").replace(/#?(.+)/,"#$1"):"";if(l.length==4){l=l.replace(/([0-9a-f])/g,"$1$1")}k[m]=l})});a.extend(d.css={},{title:{color:d.title.text,background:d.title.back},body:{color:d.main.text,background:d.main.back,borderColor:d.main.border},field:{color:d.input.text,background:d.input.back,borderColor:d.input.border},button:{color:d.button.text,background:d.button.back,borderColor:d.button.border},navMC:{color:d.navMC.text,background:d.navMC.back,borderColor:d.navMC.border},tab:function(k){return{color:d[k?"tab":"main"].text,background:k?d.tab.back:"transparent",borderColor:k?d.tab.border:"transparent"}},pane:{color:d.pane.text,background:d.pane.back,borderColor:d.pane.border},table:{color:d.table.text,background:d.table.back,borderColor:d.table.border},footer:{color:d.footer.text,background:d.footer.back},link:{color:d.link.text}});b.principal.enabled=b.interest.enabled=b.term.enabled=true;a.each(b,function(m,l){if(l.type=="select"&&isNaN(e.min[m]+e.max[m]+e.step[m])){l.type="input"}b.count=(b.count||0)+(l.enabled?1:0)});a.each(j,function(m,l){g[m]=l});g.widget=(g.mode=="widget");g.width=g.Z(j.width,g.widget?175:580);g.quirks=(document.compatMode=="BackCompat");g.browser=a.extend({},a.browser,{chrome:/chrome/.test(i),safari:/webkit/.test(i)&&!/chrome/.test(i)});g.objects={obj:a(h),tabs:{},panes:{},navMC:{}};g.values={};g.errors=[];g.google="http://chart.apis.google.com/chart?";g.build()}});a.fn.MortgageCalculator=function(b){var i=null,h=MortgageCalculator,f=a.easing,g={mode:"normal",animate:true,width:i,title:i,intro:"<p>To estimate your monthly payments, enter the amount of your loan, the term of the loan, and any down payment amount in the appropriate boxes above and click the 'calculate' button.<p>",footer:i,logo:{path:i,url:i,target:i},colors:{main:{text:"#000",back:"#eef2fd",border:"#39c"},title:{text:"#39c",back:i},tab:{text:"#39c",back:"#fff",border:"#39c"},pane:{text:"#000",back:"#fff",border:"#39c"},input:{text:"#000",back:"#fff",border:"#aaa",error:"#fcc"},button:{text:"#fff",back:"#46a026",border:"#1f731a"},navMC:{text:"#fff",back:"#39c",border:"#39c"},table:{text:"#000",back:"#fff",border:"#aaa"},footer:{text:"#999",back:i},link:{text:"#39c"},value:{payment:"#6a9f35",taxes:"#0584af",insurance:"#ff9300",total:"#eee",principal:"#6a9f35",extra:"#90d948",interest:"#f00",balance:"#333"}},fields:{principal:{enabled:true,type:"input",label:"Loan Amount",desc:"The total value of the loan (in dollars)"},interest:{enabled:true,type:"input",label:"Interest Rate|Interest",desc:"The annual interest rate of the loan",suffix:"%"},term:{enabled:true,type:"select",label:"Term",desc:"The term of the loan (in years)",suffix:"years"},down:{enabled:true,type:"input",label:"Down Payment|Down",desc:"The down payment on the loan (in dollars)"},taxes:{enabled:true,type:"input",label:"Property Taxes|Taxes",desc:"The annual property taxes (in dollars)",suffix:"/year"},insurance:{enabled:true,type:"input",label:"Insurance",desc:"The annual homeowner's insurance (in dollars)",suffix:"/year"},pmi:{enabled:true,type:"input",label:"PMI",desc:"The monthly private mortgage insurance (in dollars)",suffix:"/month"},extra:{enabled:true,type:"input",label:"Extra Payment|Extra",desc:"Extra to pay to the principal per month (in dollars)",suffix:"/month"}},defaults:{principal:i,interest:i,term:i,down:i,taxes:1.5,insurance:0.5,pmi:i,extra:i},bounds:{min:{principal:0,interest:0,term:15,down:i,taxes:i,insurance:i,pmi:i,extra:i},max:{principal:15000000,interest:15,term:40,down:i,taxes:i,insurance:i,pmi:i,extra:i},step:{principal:i,interest:i,term:5,down:i,taxes:i,insurance:i,pmi:i,extra:i}}};if(!h.style){(function(d,e,k,c){var j=arguments.callee,c=c||0;a.each(e,function(m,l){m=(k?k+" ":"")+(m=="self"?"":m);if(typeof l=="object"){c=j(d,l,m,c)}else{if(a.browser.msie){d.addRule(m,l,c++)}else{d.insertRule(m+" {"+l+"}",c++)}}});return c})(h.style=a("<style/>").attr("type","text/css").appendTo("head").get(0)[a.browser.msie?"styleSheet":"sheet"],h.rules)}if(!f.mc){a.extend(f,{mc:function(j,k,e,m,l){return m*Math.sqrt(1-(k=k/l-1)*k)+e}})}b=a.extend(true,{},g,b);this.each(function(){new MortgageCalculator(this,b)});return this}})(jQuery);
