PageSourceSearch

https://www.ablenrc.org/wp-content/themes/able/js/statesearch.js?ver=7.0.5

js ablenrc.org collected 2026-09-24 08:52:03 UTC 8,632 bytes, 173 lines download raw bytes

1 // JavaScript Document
2// for template page-statesearch.php
3
4jQuery(document).ready(function ($) {
5	// sets CSV links
6	$(".full_list a").click( function() {
7		var csv = $(".csvFull").text().replace(/-nl-/g, '\r\n');
8		var filename = 'ABLEExport.csv';
9		dlCSV(csv, $(this), filename);
10	});
11	$(".filtered_list a").click(function () {
12		var csv = $(".csvFiltered").text().replace(/-nl-/g, '\r\n');
13		var filename = 'FilteredABLEExport.csv';
14		dlCSV(csv, $(this), filename);
15	});
16
17	// processes filters	
18	$("input#goresults").click( function () {
19		//console.log("pressed go");
20		if ($("#residence").val()=="") {
21			$("#residence-wrap").addClass("has-error");
22			$("#residence").attr("aria-invalid", "true");
23			$("#residence").focus();
24		} else {
25			$("#residence-wrap").removeClass("has-error");
26			$("#residence").removeAttr("aria-invalid");
27			var stateCount = 0;
28			var chosenState = $("select#residence").val().replace(/_/g,'').toLowerCase();
29			var debit = $("input#debit_card").attr("checked");
30			var statetax = $("input#statetax_credit").attr("checked");
31			//var medicaid = $("input#medicaid_payback").attr("checked");
32			//var withhold = $("input#withhold_rules").attr("checked");
33			var reppayee = $("input#rep_payee_multiple_access_choice").attr("checked");
34			var advisor = $("input#advisor").attr("checked");
35			var fdic = $("input#fdic").attr("checked");
36			//console.log(chosenState);
37			
38			var checkimg = "<img src='../wp-content/themes/able/images/statesearch/check.png' alt='checkmark' />";
39			var $resultsbegintag = "<table class='results tablesorter'>"
40			//var $resultshd = "<thead><tr><th></th><th scope='col'>Debit Card</th><th scope='col'>Medicaid Payback Waived</th><th scope='col'>Tax Deduction/Credit</th>";
41			var $resultshd = "<thead><tr><th></th><th scope='col'>Debit Card</th><th scope='col'>Tax Deduction/Credit</th>";
42			$resultshd += "<th scope='col'>FDIC Insured</th>";
43			//$resultshd += "<th scope='col'>Withdrawal Hold Rules</th>";
44			$resultshd += "<th scope='col'>Rep. Payee Multiple Access</th>";
45			$resultshd += "<th scope='col'>Financial Advisor Sold Plan</th>";
46			$resultshd += "<th></th></tr></thead><tbody>";
47			var $stateresults = '';
48			var $mystate = '';
49			var filteredcsv = $(".csvFull .csvhead").text();
50			$(".stateStore div").each( function () {
51				var statename = $(this).find("span.state").text();
52				if 
53				($(this).hasClass(chosenState)) {
54					$mystate += "<tr class='mystate'><th scope='row' class='col_state'>";
55					$mystate += statename;
56					$mystate += "</th><td class='col_debit mediumBlue'>";
57					$mystate += ($(this).find("span.debit_card_or_prepaid_card").text()=='Yes' ? checkimg : '');
58					//$mystate += "</td><td class='col_medicaid mediumBlue'>";
59					//$mystate += ($(this).find("span.medicaid_payback_waived").text() == 'Yes' ? checkimg : '');
60					$mystate += "</td><td class='col_tax mediumBlue'>";
61					$mystate += ($(this).find("span.state_income_tax_deduction").text()=='Yes' ? checkimg : '');
62					$mystate += "</td><td class='col_fdic mediumBlue'>";
63					$mystate += ($(this).find("span.fdic_insured").text()=='Yes' ? checkimg : '');
64					//$mystate += "</td><td class='col_withdrawal mediumBlue'>";
65					//$mystate += ($(this).find("span.are_there_withhold_rules").text()=='Yes' ? checkimg : '');
66					$mystate += "</td><td class='col_reppayee mediumBlue'>";
67					$mystate += ($(this).find("span.rep_payee_multiple_access_choice").text()=='Yes' ? checkimg : '');
68					$mystate += "</td><td class='col_advisor mediumBlue'>";
69					$mystate += ($(this).find("span.financial_advisor_plan").text()=='Yes' ? checkimg : '');
70					$mystate += "</td><td class='col_learnmore'>";
71					$mystate += "<a href='" + $(this).find("span.url").text() + "' title='" + statename + " ABLE Page'>learn more</a>";
72					$mystate += "</td></tr>";
73					stateCount ++;
74					filteredcsv += $(".csvFull .csv" + statename).text(); 
75				} else {
76					// console.log("state=" + statename + ", status=" + $(this).find("span.status").text().toLowerCase());
77					if  ( //($(this).find("span.status").text().toLowerCase().indexOf('open') >=0 ) &&
78					($(this).find("span.accepts_out_of_state_residents").text() == 'Yes') &&
79					((statetax && $(this).find("span.state_income_tax_deduction").text() =='Yes') || !statetax) &&
80					((debit && $(this).find("span.debit_card_or_prepaid_card").text()=='Yes') || !debit) && 
81					((fdic && $(this).find("span.fdic_insured").text()=='Yes') || !fdic) &&
82					//((medicaid && $(this).find("span.medicaid_payback_waived").text()=='Yes') || !medicaid) &&
83					//((withhold && $(this).find("span.are_there_withhold_rules").text() == 'Yes') || !withhold) &&
84					((reppayee && $(this).find("span.rep_payee_multiple_access_choice").text() == 'Yes') || !reppayee) &&
85					((advisor && $(this).find("span.financial_advisor_plan").text()=='Yes') || !advisor)
86					) {
87						// build result table row
88						//var statename = $(this).find("span.state").text();
89							//console.log("state=" + statename);
90							$stateresults += "<tr><th scope='row' class='col_state'>";
91							$stateresults += statename;
92							$stateresults += "</th><td class='col_debit mediumBlue'>";
93							$stateresults += ($(this).find("span.debit_card_or_prepaid_card").text()=='Yes' ? checkimg : '');
94							//$stateresults += "</td><td class='col_medicaid mediumBlue'>";
95							//$stateresults += ($(this).find("span.medicaid_payback_waived").text() == 'Yes' ? checkimg : '');
96							$stateresults += "</td><td class='col_tax mediumBlue'>";
97							$stateresults += ($(this).find("span.state_income_tax_deduction").text()=='Yes' ? checkimg : '');
98							$stateresults += "</td><td class='col_fdic mediumBlue'>";
99							$stateresults += ($(this).find("span.fdic_insured").text()=='Yes' ? checkimg : '');
100//							$stateresults += "</td><td class='col_withdrawal mediumBlue'>";
101//							$stateresults += ($(this).find("span.are_there_withhold_rules").text()=='Yes' ? checkimg : '');
102							$stateresults += "</td><td class='col_reppayee mediumBlue'>";
103							$stateresults += ($(this).find("span.rep_payee_multiple_access_choice").text()=='Yes' ? checkimg : '');
104							$stateresults += "</td><td class='col_advisor mediumBlue'>";
105							$stateresults += ($(this).find("span.financial_advisor_plan").text()=='Yes' ? checkimg : '');
106							$stateresults += "</td><td class='col_learnmore'>";
107							$stateresults += "<a href='" + $(this).find("span.url").text() + "' title='" + statename + " ABLE Page'>learn more</a>";
108							$stateresults += "</td></tr>";
109						stateCount ++;
110						filteredcsv += $(".csvFull .csv" + statename).text();
111						}
112				}
113			});
114			var $resultsft = "</tbody></table>"
115			var $heading = "<caption class='result_header'>In the results below, the state you live in (if it has an active program) will display first.</br><br></caption>" ;
116			$("#plan_search_results").html($resultsbegintag + $heading + $resultshd + $mystate + $stateresults + $resultsft);
117			$(".results").tablesorter({
118				headers: {
119					0: { sorter: false},
120					4: { sorter: false},
121					5: { sorter: false},
122					6: { sorter: false}
123				}
124			});
125			$(".csvFiltered").html(filteredcsv);
126			$(".state_download_links").show();
127		}
128	});
129});
130
131function dlCSV(csvText, aLink, fileName) {
132		// Deliberate 'false'
133    //if (false && window.navigator.msSaveBlob) {
134	if (window.navigator.msSaveBlob) {	
135	  console.log(fileName + " option 1");
136      //var blob = new Blob([decodeURIComponent(csvText)], {
137		var blob = new Blob([csvText], {  
138        type: 'text/csv;charset=utf8'
139      });
140
141      // Crashes in IE 10, IE 11 and Microsoft Edge
142      // See MS Edge Issue #10396033
143      // Hence, the deliberate 'false'
144      // This is here just for completeness
145      // Remove the 'false' at your own risk
146      aLink.click(  window.navigator.msSaveBlob(blob, fileName));
147
148    } else if (window.Blob && window.URL) {
149      // HTML5 Blob        
150      var blob = new Blob([csvText], {
151        type: 'text/csv;charset=utf-8'
152      });
153      var csvUrl = URL.createObjectURL(blob);
154	  console.log(fileName + " option 2");
155
156      aLink
157        .attr({
158          'download': fileName,
159          'href': csvUrl
160        });
161    } else {
162      // Data URI
163      var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csvText);
164	  console.log(fileName + " option 3");
165
166      aLink
167        .attr({
168          'download': fileName,
169          'href': csvData,
170          'target': '_blank'
171        });
172    }
173}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.