"use strict";function frb_rs_doSlider(){function t(){var t=a.text();t.length>4&&(t=t.replace("Q","")),FRB_RS_MAP.changeYear(t)}var a=$("#frb-rs-custom-handle-text"),r=$("#frb-rs-slider");r.slider({create:function(){FRB_RS_MAP.playbar.setHandleText(a,$(this).slider("value"))},slide:function(t,r){FRB_RS_MAP.playbar.setHandleText(a,r.value)},min:FRB_RS_MAP.playbar.year_quarter_to_number(first_data_year),max:FRB_RS_MAP.playbar.year_quarter_to_number(last_data_year),step:FRB_RS_MAP.playbar.get_slider_step(),change:function(r,e){FRB_RS_MAP.playbar.setHandleText(a,e.value),t()}}),default_data_year=FRB_RS.getUrlHashParameter("year")||default_data_year,FRB_RS_MAP.playbar.setHandleText(a,FRB_RS_MAP.playbar.year_quarter_to_number(default_data_year)),setTimeout(function(){r.slider("value",FRB_RS_MAP.playbar.year_quarter_to_number(default_data_year)),t();var a=1+parseInt(last_data_year.split(":")[0])-parseInt(first_data_year.split(":")[0]);first_data_year.indexOf(":")>0&&(a*=4);var e=60,s=1.2,n=e*(a-s)/a,o=e*s/a,l=$("#frb-rs-slider-extension");r.width(n+"%"),l.width(o+"%"),l.on("click",function(){r.slider("value")!=last_data_year&&r.slider("value",FRB_RS_MAP.playbar.year_quarter_to_number(last_data_year))}),$("#frb-rs-playbar-play-control").on("keyup",function(t){13==t.which&&FRB_RS_MAP.playbar.togglePlay()})},0),$("#frb-rs-playbar-container").fadeIn()}var FRB_RS_MAP={map_data:[],getStateMap:function(t){var a=Highcharts.maps["countries/us/custom/us-small"];t&&a.features.unshift({type:"Feature",id:"US",properties:{"hc-group":"admin1","hc-middle-x":.52,"hc-middle-y":.59,"hc-key":"us",name:"United States"},geometry:{type:"Polygon",coordinates:[[[9727,3744],[10595,3744],[10595,3217],[9727,3217],[9727,3744]]]}});var r=Highcharts.geojson(a);return $.each(r,function(){var t=this.path,a={path:t};9727===t[1]&&(Highcharts.seriesTypes.map.prototype.getBox.call({},[a]),this.middleX=((t[1]+t[4])/2-a._minX)/(a._maxX-a._minX),this.middleY=((t[2]+t[7])/2-a._minY)/(a._maxY-a._minY)),this.ucName=this.name.toUpperCase()}),r},getCurrentDataYear:function(){var t=default_data_year;try{var a=$("#frb-rs-slider");t=a.slider("value")}catch(a){t=default_data_year}return t},setMapLegendState:function(t,a,r){var e=$("#frb-rs-map-legend-item-"+r).data("max"),s=$("#frb-rs-map-legend-item-"+r).data("min"),n=parseFloat(e);isNaN(n)&&(n=FRB_RS_MAP.currentMap().series[0].valueMax);var o=parseFloat(s);isNaN(o)&&(o=FRB_RS_MAP.currentMap().series[0].valueMin);var l=100*(n-a)/(n-o)+"%";$("#frb-rs-map-legend-item-"+r).addClass("frb-rs-map-legend-selected-range"),$(".frb-rs-map-legend-selected-range").append("<div class='frb-rs-map-legend-arrow'></div>"),$(".frb-rs-map-legend-arrow").css({right:l,display:"block"})},clearMapLegendState:function(){$(".frb-rs-map-legend-item").removeClass("frb-rs-map-legend-selected-range"),$(".frb-rs-map-legend-arrow").remove()},the_current_map:undefined,setMap:function(t){FRB_RS_MAP.the_current_map=t},currentMap:function(){return FRB_RS_MAP.the_current_map},changeYear:function(t){var a=FRB_RS_MAP.currentMap(),r=a.series[0].name,e=" "+FRB_RS_MAP.playbar.data_key_to_display_date(t);isNaN(parseInt(r.slice(-1)))?r+=e:r=r.substring(0,r.length-e.length)+e,a.series[0].setData(FRB_RS_MAP.map_data[t].data.slice()),FRB_RS.updateUrlHash("year",t),a.update({exporting:{chartOptions:{title:{text:r}}}}),FRB_RS_MAP.configureMapPageElements()},configureMapPageElements:function(){FRB_RS_MAP.buildTopAndBottom()},formatCurrency:function(t){return t.toLocaleString(undefined,{maximumFractionDigits:1,minimumFractionDigits:1})},FundingRatioTooltipHTML:function(t){var a=FRB_RS_MAP.getCurrentDataYear(),r=FRB_RS_MAP.formatCurrency(master_data[a][t.name][0]/1e3),e=FRB_RS_MAP.formatCurrency(master_data[a][t.name][1]/1e3),s=t.code||t.hidden_code;t.name.toLowerCase().replace(/\s/g,"-");return'\n <div class="frb-rs-tooltip-wrapper frb-rs-tooltip-'+a+"-"+s+'">\n <table class="frb-rs-tooltip" align="center" width="180px" height="75px" style="margin-bottom:0">\n <tbody>\n <tr class="frb-rs-tooltip-year"><th colspan="2"><i class="icon-reserve-bulletin icon icon__xs"></i> <strong style="width:100%">'+a+'</strong></th></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:'+t.color+'">\u25cf</span></span><strong> '+t.name+"</strong></td><td><strong>"+t.value+'%</strong></td></tr>\n <tr class="frb-rs-tooltip-series"><td><span class="frb-rs-tooltip-icon"><span style="color:transparent">\u25cf</span></span><strong> Assets</td><td>$'+r+' B</td></tr>\n <tr class="frb-rs-tooltip-series"><td><span class="frb-rs-tooltip-icon"><span style="color:transparent">\u25cf</span></span><strong> Liabilities</td><td>$'+e+" B</td></tr>\n </tbody>\n </table>\n </div>\n "},FundingStatusTooltipHTML:function(t){var a=FRB_RS_MAP.getCurrentDataYear(),r=FRB_RS_MAP.formatCurrency(master_data[a][t.name][2]/1e3),e=FRB_RS_MAP.formatCurrency(master_data[a][t.name][2]/1e3/(master_data[a][t.name][4]/100)),s=t.code||t.hidden_code;t.name.toLowerCase().replace(/\s/g,"-");return'\n <div class="frb-rs-tooltip-wrapper frb-rs-tooltip-'+a+"-"+s+'">\n <table class="frb-rs-tooltip" align="center" width="180px" height="75px" style="margin-bottom:0">\n <tbody>\n <tr class="frb-rs-tooltip-year"><th colspan="2"><i class="icon-reserve-bulletin icon icon__xs"></i> <strong style="width:100%">'+a+'</strong></th></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:'+t.color+'">\u25cf</span></span><strong> '+t.name+"</strong></td><td><strong>"+t.value+'%</strong></td></tr>\n <tr class="frb-rs-tooltip-series"><td><span class="frb-rs-tooltip-icon"><span style="color:transparent">\u25cf</span></span><strong> Funding Status</td><td>$'+r+' B</td></tr>\n <tr class="frb-rs-tooltip-series"><td><span class="frb-rs-tooltip-icon"><span style="color:transparent">\u25cf</span></span><strong> State GDP</td><td>$'+e+" B</td></tr>\n </tbody>\n </table>\n </div>\n "},HouseholdDebtTooltipHTML:function(t){var a=FRB_RS_MAP.getCurrentDataYear();return'\n <div class="frb-rs-tooltip-wrapper frb-rs-tooltip-'+a+"-"+(t.code||t.hidden_code)+'">\n <table class="frb-rs-tooltip" align="center" width="180px" style="margin-bottom:0">\n <tbody>\n <tr class="frb-rs-tooltip-year"><th colspan="2"><strong style="width:100%">'+FRB_RS_MAP.playbar.slider_number_to_display_date(a)+'</strong></th></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:'+t.color+'">\u25cf</span></span><strong> '+t.name+"</strong></td><td><strong>"+t.value.toFixed(3)+"</strong></td></tr>\n </tbody>\n </table>\n </div>\n "},HouseholdDebtCountyTooltipHTML:function(t,a){var r=FRB_RS_MAP.getCurrentDataYear(),e=t.properties["hc-key"].split("-")[1].toUpperCase(),s=a[FRB_RS_MAP.playbar.slider_number_to_data_key(r)].data,n=FRB_RS.searchArray("code",e,s).value.toFixed(3);return'\n <div class="frb-rs-tooltip-wrapper frb-rs-tooltip-'+r+"-"+e+"-"+t.name+'">\n <table class="frb-rs-tooltip" align="center" width="180px" style="margin-bottom:0">\n <tbody>\n <tr class="frb-rs-tooltip-year"><th colspan="2"><strong style="width:100%">'+FRB_RS_MAP.playbar.slider_number_to_display_date(r)+'</strong></th></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:'+t.color+'">\u25cf</span></span><strong> '+t.name+"</strong></td><td><strong>"+t.value.toFixed(3)+'</strong></td></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:transparent">\u25cf</span></span> '+FRB_RS.getStateFromCode(e)+"</td><td>"+n+"</td></tr>\n </tbody>\n </table>\n </div>\n "},HouseholdDebtMSATooltipHTML:function(t){var a=FRB_RS_MAP.getCurrentDataYear(),r=t.code||t.hidden_code,e=t.properties.cbsa_name.replace(/\(Metropolitan Statistical Area\)/g,"");return'\n <div class="frb-rs-tooltip-wrapper frb-rs-tooltip-'+a+"-"+r+'">\n <table class="frb-rs-tooltip" align="center" width="180px" style="margin-bottom:0">\n <tbody>\n <tr class="frb-rs-tooltip-year"><th colspan="2"><strong style="width:100%">'+FRB_RS_MAP.playbar.slider_number_to_display_date(a)+'</strong></th></tr>\n <tr class="frb-rs-tooltip-point"><td><span class="frb-rs-tooltip-icon"><span style="color:'+t.color+'">\u25cf</span></span><strong> '+e+"</strong></td><td><strong>"+t.value.toFixed(3)+"</strong></td></tr>\n </tbody>\n </table>\n </div>\n "},topAndBottomItems:function(t){var a=(FRB_RS_MAP.currentMap(),FRB_RS_MAP.currentMap().series[0].data.slice(0).sort(function(t,a){return t.value-a.value}));return{top:a.slice(-t).sort(function(t,a){return a.value-t.value}),bottom:a.slice(0,t)}},buildTopAndBottom:function(){if(0!=$("#frb-rs-map-top-and-bottom").length){$("#frb-rs-map-top-and-bottom").empty();var t=($(".title").text(),FRB_RS_MAP.topAndBottomItems(3)),a='<div class="col-md-6 frb-rs-leader-card"><div class="frb-rs-leader-data">';a+='<div class="frb-rs-leader-heading frb-rs-label-lg">Top 3 States <span class="pull-right">%</span></div><table>';for(var r=0;r<t.top.length;r++)a+='<tr><th><div class="frb-rs-leader" data-state="'+t.top[r]["hc-key"]+'">'+t.top[r].name+"</div></th><td><span>"+t.top[r].value+"</span></td></tr>";a+="</table></div></div>",a+='<div class="col-md-6 frb-rs-leader-card"><div class="frb-rs-leader-data">',a+='<div class="frb-rs-leader-heading frb-rs-label-lg">Bottom 3 States <span class="pull-right">%</span></div><table>';for(var r=0;r<t.bottom.length;r++)a+='<tr><th><div class="frb-rs-leader" data-state="'+t.bottom[r]["hc-key"]+'">'+t.bottom[r].name+"</th><td><span>"+t.bottom[r].value+"</span></td></tr>";a+="</table></div></div>",$("#frb-rs-map-top-and-bottom").html(a)}},formatExportLegend:{exporting:{chartOptions:{credits:{position:{y:-65}},legend:{labelFormatter:function(){return this.name.replace(/\.00/g,"")+"%"}}}}},playbar:{slider_number_to_data_key:function(t){var a=String(t);if(a.length>4){a=a.substring(0,4)+":"+(parseInt(a.substring(4,6))/25+1)}return a},slider_number_to_display_date:function(t){var a=FRB_RS_MAP.playbar.slider_number_to_data_key(t);return FRB_RS_MAP.playbar.data_key_to_display_date(a)},data_key_to_display_date:function(t){return String(t).replace(":",":Q")},year_quarter_to_number:function(t){var a=parseInt(t.split(":")[0]),r=parseInt(t.split(":")[1]);return isNaN(r)?a:100*a+25*(r-1)},togglePlay:function(){var t=$("#frb-rs-playbar-container"),a=$("#frb-rs-playbar-icon"),r=$("#frb-rs-playbar-play-text"),e=t.data("interval_key");if(0==e){var e,s=$("#frb-rs-slider"),n=$("#frb-rs-custom-handle-text");e=setInterval(function(){FRB_RS_MAP.playbar.advancePlaySlider(s,n)},2e3),t.data("interval_key",e),a.addClass("icon-pause").removeClass("icon-play"),r.html("PAUSE")}else clearInterval(e),a.addClass("icon-play").removeClass("icon-pause"),r.html("PLAY"),t.data("interval_key",0)},advancePlaySlider:function(t,a){var r,e=parseInt(first_data_year.split(":")[0]),s=parseInt(first_data_year.split(":")[1]),n=parseInt(last_data_year.split(":")[0]),o=(parseInt(first_data_year.split(":")[1]),t.slider("value")),l=1+n-e;if(isNaN(s))r=(o-e+1)%l+e;else if(o%100==75){var i=parseInt(o/100);r=i==n?FRB_RS_MAP.playbar.year_quarter_to_number(e+":"+s):FRB_RS_MAP.playbar.year_quarter_to_number(i+1+":1")}else r=o+25;FRB_RS_MAP.playbar.setHandleText(a,r),t.slider("value",r)},setHandleText:function(t,a){var r=FRB_RS_MAP.playbar.slider_number_to_display_date(a);t.text(r),t.attr("aria-label",r)},get_slider_step:function(){return first_data_year.indexOf(":")>0?25:1}}};frb_rs_initialization.push(frb_rs_doSlider);