1jQuery("document").ready(function () { 2 function sortData(data, regionFilter, platformFilter, formatFilter) { 3 var results = []; 4 for (var i = 0; i < data.length; i++) { 5 if (data[i]["region"] == regionFilter) { 6 results.push(data[i]); 7 } 8 } 9 if (platformFilter) { 10 results = []; 11 for (var i = 0; i < data.length; i++) { 12 if ( 13 data[i]["region"] == regionFilter && 14 data[i]["platform"] == platformFilter 15 ) { 16 results.push(data[i]); 17 } 18 } 19 } 20 if (formatFilter) { 21 results = []; 22 for (var i = 0; i < data.length; i++) { 23 if ( 24 data[i]["region"] == regionFilter && 25 data[i]["platform"] == platformFilter && 26 data[i]["format"] == formatFilter 27 ) { 28 results.push(data[i]); 29 } 30 } 31 } 32 return results; 33 } 34 function applyData(data, field, target) { 35 var uniques = []; 36 for (var i = 0; i < data.length; i++) { 37 item = data[i][field]; 38 if (uniques.indexOf(item) == -1) { 39 uniques.push(item); 40 } 41 } 42 43 // Sort the array alphabetically 44 var uniqueSorted = uniques.sort(); 45 46 for (var i = 0; i < uniqueSorted.length; i++) { 47 target.innerHTML += `<option value="${uniqueSorted[i]}">${uniqueSorted[i]}</option>`; 48 } 49 } 50 51 if (buyNowData.length) { 52 var container = document.getElementById("buyNowResults"); 53 var regions = []; 54 var regionSelect = document.getElementById("regionSelect"); 55 var platformSelect = document.getElementById("platformSelect"); 56 var formatSelect = document.getElementById("formatSelect"); 57 58 for (var i = 0; i < buyNowData.length; i++) { 59 var region = buyNowData[i]["region"]; 60 if (regions.indexOf(region) == -1) { 61 regions.push(region); 62 } 63 } 64 65 // Sort the array alphabetically 66 var regionsSorted = regions.sort(); 67 68 for (var i = 0; i < regionsSorted.length; i++) { 69 regionSelect.innerHTML += `<option value="${regionsSorted[i]}">${regionsSorted[i]}</option>`; 70 } 71 72 function placeholderEntrance() { 73 gsap.from(".retail-choosing h3", { 74 opacity: 0, 75 duration: 0.2, 76 y: "-100%", 77 }); 78 } 79 80 jQuery("#regionSelect").on("change", function () { 81 container.innerHTML = "<h3>Select a platform...</h3>"; 82 placeholderEntrance(); 83 platformSelect.innerHTML = platformFirstOption; 84 formatSelect.innerHTML = formatFirstOption; 85 results = sortData(buyNowData, jQuery(this).val()); 86 applyData(results, "platform", platformSelect); 87 }); 88 89 jQuery("#platformSelect").on("change", function () { 90 container.innerHTML = "<h3>Select a format...</h3>"; 91 placeholderEntrance(); 92 formatSelect.innerHTML = formatFirstOption; 93 region = jQuery("#regionSelect").val(); 94 platform = jQuery(this).val(); 95 results = sortData(buyNowData, region, platform); 96 applyData(results, "format", formatSelect); 97 }); 98 99 jQuery("#formatSelect").on("change", function () { 100 region = jQuery("#regionSelect").val(); 101 platform = jQuery("#platformSelect").val(); 102 format = jQuery(this).val(); 103 results = sortData(buyNowData, region, platform, format); 104 container.innerHTML = results[0].options; 105 container.classList.add("retailer-list"); 106 107 gsap.from(".retailer-list img", { 108 opacity: 0, 109 duration: 0.2, 110 y: "-80px", 111 stagger: 0.1, 112 ease: "back.out(1.7)", 113 }); 114 }); 115 } 116});
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.