var RateExplorerManager=(function(){var D={RATE_DATA:"/mortgage/RateExplorerData",RATE_TABLE:"/mortgage/PaidRateTable",CONDENSED_RATE_TABLE:"/mortgage/CondensedPaidRateTable",ADVICE_UPSELL:"/advicepages/AdviceUpsellAjax",RATE_NEWS_POST:"/mortgage/LatestLoanRateNewsPost"};
var e="paid-rate-table";var g;var K;var w;var b;var H;var A;var C;var N;var m=false;var y=false;var n=1;
function J(){if(N==null){var Y=$("movie-name").value;if(navigator.appName.indexOf("Microsoft")!=-1){N=window[Y];
}else{N=document[Y];}}return N;}function k(Y){var Z=Y?1:0;J().toggleVolumeDisplay(Z);}function q(){J().toggleConsole();
}function I(){var Y=$("rid").options[$("rid").selectedIndex].innerHTML;var Z=$("loty").options[$("loty").selectedIndex].innerHTML;
var ac="";if($("rid").selectedIndex!=0){ac+=Y+" ";}ac+="Mortgage Rates, Interest Rates, ";if($("loty").selectedIndex==2){ac+="Adjustable Rate Mortgages";
}else{ac+=Z;}var aa=document.title;var ab=aa.substring(aa.lastIndexOf("-"));document.title=ac+" "+ab;
}function f(){if(m){P();}if(y&&v()){s("");}}function v(){return $(e)!=null;}function P(){var Y=D.RATE_DATA+".htm?"+F();
W(g,Y,true,h);}function s(Y){var Z=D.RATE_TABLE+".htm?"+Q();W(K,Z,false,S);}function O(Y){var Z=D.CONDENSED_RATE_TABLE+".htm?"+Q();
W(K,Z,false,T);}function G(){var Y=D.ADVICE_UPSELL+".htm?"+z();W(b,Y,true,E);}function x(){var Y=D.RATE_NEWS_POST+".htm?"+B();
W(H,Y,true,a);}function z(){var Y={};Y.title=$("advice-upsell-title").innerHTML;Y.adviceCategoryId=$("advice-upsell-category-id").innerHTML;
var Z=parseInt($("rid").value);if(Z!==102001){Y.regionId=Z;}Y.questionTitle=$("advice-upsell-question").innerHTML;
Y.inputBoxDefaultText=$("advice-upsell-input-box-text").innerHTML;return Object.toURLString(Y);}function E(Y){$("advice-upsell-wrapper").innerHTML=Y.html;
}function B(){var Z={};var aa=parseInt($("rid").value);var Y=parseInt($("loty").value);if(aa===102001){if(Y===2||Y===3){Z.loty=Y;
Z.rid=0;}else{Z.loty=Y;Z.rid=aa;}}else{Z.loty=1;Z.rid=aa;}return Object.toURLString(Z);}function a(Y){$("news-post-heading-type").innerHTML=Y.headingDisplayName;
$("news-post-container").innerHTML=Y.html;$("news-post-rss-link").href=Y.rssLinkUrl;$("news-post-rss-icon-link").href=Y.rssLinkUrl;
}function S(Y){$(e).innerHTML=Y;}function T(Y){$(e).innerHTML=Y;}function F(){A=A||t();var aa={};A.forEach(function(ac){aa[ac.id]=parseInt(ac.value);
});var ab=Object.toURLString(aa,null,false);var Z=$("nowOverride");if(Z!=null){var Y=Z.value;if(Y.length>0){ab+="&now="+$("nowOverride").value;
}}return ab;}function t(){var Y=[];Y[0]=$("loty");Y[1]=$("ch");Y[2]=$("lotv");Y[3]=$("rid");Y[4]=$("ts");
return Y;}function Q(){C=l();var Y={};C.forEach(function(aa){var ac=aa.idOverride||aa.id;var ab=aa.value;
if(aa.filter){ab=aa.filter(ab);}Y[ac]=parseInt(ab);});var Z=Object.toURLString(Y,null,false);return Z;
}function l(){var ab;var aa=[];var Y=0;if(ab=$("loty")){aa[++Y]=ab;}if(ab=$("lotv")){aa[++Y]=ab;}if(ab=$("rid")){aa[++Y]=ab;
}if((ab=$("rate-table-loan-amount"))||(ab=$("condensed-rate-table-loan-amount"))){ab.idOverride="amt";
ab.filter=function(ac){var ad=Number.fromString(ac);return(ad>999999999||isNaN(ad))?300000:parseInt(ad);
};aa[++Y]=ab;}if(ab=$("num-rate-table-entries")){ab.idOverride="num";aa[++Y]=ab;}var Z={id:"area",value:"4"};
aa[++Y]=Z;return aa;}function h(Y){if(!Y.nationalCurrent){c();}else{M(Y);}V(Y);}function V(Y){Element.setText("nationalRate",(Y.nationalCurrent?Formatters.twoPointFloat(Y.nationalCurrent.rate):"--"));
Element.setText("nationalVolume",Formatters.comma(Y.nationalCurrentVolume));if(Y.localCurrentVolume==undefined){Element.hide("localRateInfo");
}else{Element.setText("localRate",(Y.localCurrent?Formatters.twoPointFloat(Y.localCurrent.rate):"--"));
Element.setText("localVolume",Formatters.comma(Y.localCurrentVolume));Element.show("localRateInfo");}}function c(){J().clearGraph();
}function M(Y){J().updateGraphData(Y);}function R(Z){log("malformed query or pogo's down");var Y=Z.match(/<tr class="exception-message">\s*<td colspan="2">(.*?)<\/td>/);
if(Y&&Y[1]){log.error(Y[1]);}else{log.error("Bad response from server");}}function W(Z,Y,ab,aa){log("making async call");
if(Z&&$C.isCallInProgress(Z)){$C.abort(Z);}Z=$C.asyncRequest("get",Y,{success:function(ac){var ae=null;
try{if(ab){ae=ac.responseText.parseJSON();}else{ae=ac.responseText;}}catch(ad){R(ac.responseText);log.error(ad);
}if(ae){aa(ae);}else{log.error("invalid json");}},failure:function(){log.error("Unable to complete search.  Please check your Internet connection.");
}});}function j(aa){var Z=n+Formatters.toInt(aa);if(Z<=0||Z>Formatters.toInt($("total-pages").value)){return;
}else{n=Z;$("pn").value=n;var Y="";if($("national-override").value=="true"){Y="&natOv=true";}updateQuotePreviews(Y);
}}function i(){var Y=$("rid").options[$("rid").selectedIndex].innerHTML;var Z="/leaderboard/AjaxLeaderboardPage.htm?loc="+Y+"&t=1";
W(w,Z,false,p);}function p(Y){$("leaderboard").innerHTML=Y;}function X(){var aa=$("rate-explorer-header");
var Y=$("rate-explorer-header");if(aa||Y){var Z=U();if(aa){aa.innerHTML=Z.headerPrefix+" Mortgage Rates";
}if(Y){Y.innerHTML="<strong>"+Z.subheaderPrefix+" mortgage rates</strong>";}}}function U(){var Z=$("rid").options[$("rid").selectedIndex].innerHTML;
var aa=$("loty").options[$("loty").selectedIndex].innerHTML;var ab;var Y;if($("rid").selectedIndex===0){ab=aa;
Y=Z;}else{ab=Z;Y=aa;}ab=ab.replace("year","Year").replace("fixed","Fixed");return{headerPrefix:ab,subheaderPrefix:Y};
}function o(){var aa=$("loty").options[$("loty").selectedIndex].innerHTML;var Z=$("loty").options;for(var Y=0;
Y<Z.length;++Y){Element.hide(r(Z[Y].innerHTML)+"-help");}$("loan-type-help-header").innerHTML=L(aa);Element.show(r(aa)+"-help");
}function r(Y){return Y.replace(/ /g,"-").replace(/\//g,"-");}function L(Y){return Y.replace(/year/g,"Year").replace(/fixed/g,"Fixed");
}function u(){var Z=U().headerPrefix;var Y=Z.replace(/ /g,"_").replace(/\//g,"-").replace(/,/g,"");if(Y==="30_Year_Fixed"){return"http://www.zillow.com/mortgage-rates/";
}else{return"http://www.zillow.com/"+Y+"_Mortgage_Rates/";}}function d(Z){$E.preventDefault(Z);log(Z);
var aa=U();var ab=aa.headerPrefix+" Mortgage Rates";var Y=u();log("lightbox title: "+ab);log("lightbox url: "+Y);
$("link-to-this-page-title").innerHTML=ab;$("link-to-this-page-url").innerHTML=Y;RateExplorerManager.lightbox=RateExplorerManager.lightbox||new Lightbox();
RateExplorerManager.lightbox.dialog.innerHTML=$("link-to-this-page-dialog").innerHTML;$D.addClass($("rate_explorer_graph"),"invisible");
RateExplorerManager.lightbox.show();}return{handleLocationChange:function(){X();x();},handleLoanTypeChange:function(){X();
x();if($("loan-program-help")){o();}},processSelectChange:function(){y=true;n=1;I();f();},processTimespanChange:function(Y){var Z=$("ts").value;
if(Y!=Z){y=true;n=1;Z=Y;$("ts").value=Y;f();}},updateTimeSpanButton:function(aa){if(!$("chart_buttons")){return false;
}if(!$(aa)){return false;}var Y=$("chart_buttons").getElementsByTagName("A");for(var Z=0;Z<Y.length;Z++){Y[Z].className="";
}$(aa).className="thistimeframe";},handleLoanAmountSubmit:function(){s("");},handleCondensedTableLoanAmountSubmit:function(){O("");
},toggleVolumeDisplay:function(Y){k(Y);},toggleConsole:function(){q();},isReady:function(){return true;
},nextPage:function(){if($D.hasClass("nextPage","disabled")){return false;}j(1);},prevPage:function(){if($D.hasClass("prevPage","disabled")){return false;
}j(-1);},loadInitialGraph:function(){m=true;f();},handleLoanAmountUpdate:function(Z,Y){log("handle amount update",Z,Y);
if(window.event){keycode=window.event.keyCode;}else{if(Z){keycode=Z.which;}else{return true;}}if(keycode==13){$E.preventDefault(Z);
if(Y){RateExplorerManager.handleCondensedTableLoanAmountSubmit();}else{RateExplorerManager.handleLoanAmountSubmit();
}}},hideLightBox:function(){this.lightbox.hide();$D.removeClass($("rate_explorer_graph"),"invisible");
},handleRateClick:function(ab){var Z=$E.getTarget(ab);var aa=$D.getAncestorByClassName(Z,"rate-table-parent-row");
if(aa!==null){var Y="http://ad.yieldmanager.com/pixel?id=725540&id=725541&t=2";$("rate-table-click-tracker-pixel").src=Y;
}},init:function(){var Z=Element.select("a.link-to-this-page","inner-container");for(var Y=0;Y<Z.length;
++Y){log("attaching click handler to "+Z[Y]);$E.on(Z[Y],"click",d);}var aa=window.location.hash;if(aa==="#ratewatcher"){log("show rate watcher");
log("rate watcher obj:",RateWatcher);RateWatcher.show(null);}$E.on("paid-mortgage-rate-table","click",RateExplorerManager.handleRateClick);
}};})();EventRegister.register({"rate-explorer":[RateExplorerManager.init,{select:{change:function(){RateExplorerManager.processSelectChange();
}},"#rid":{change:function(){RateExplorerManager.handleLocationChange();}},"#loty":{change:function(){RateExplorerManager.handleLoanTypeChange();
}},"#timeframe-day":{click:function(){if(!$D.hasClass("timeframe-day","thistimeframe")){RateExplorerManager.processTimespanChange(1);
RateExplorerManager.updateTimeSpanButton("timeframe-day");}}},"#timeframe-week":{click:function(){if(!$D.hasClass("timeframe-week","thistimeframe")){RateExplorerManager.processTimespanChange(2);
RateExplorerManager.updateTimeSpanButton("timeframe-week");}}},"#timeframe-month":{click:function(){if(!$D.hasClass("timeframe-month","thistimeframe")){RateExplorerManager.processTimespanChange(3);
RateExplorerManager.updateTimeSpanButton("timeframe-month");}}},"#timeframe-3month":{click:function(){if(!$D.hasClass("timeframe-3month","thistimeframe")){RateExplorerManager.processTimespanChange(4);
RateExplorerManager.updateTimeSpanButton("timeframe-3month");}}},"#show-volume-checkbox":{click:function(){var a=RateExplorerManager.toggleVolumeDisplay($("show-volume-checkbox").checked);
}},"#show-console-checkbox":{click:function(){RateExplorerManager.toggleConsole();}}}]});
