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.