const products = [ { name: "EV Profiler 2 - 3x PS Capture", sku: "900-00201", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "PS Capture", ct3: "PS Capture" }, { name: "EV Profiler 2 - 2x PS Capture, 1x Tet. Trio", sku: "900-00202", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "PS Capture", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - 2x PS Capture, 1x anti-CD9", sku: "900-00203", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD9" }, { name: "EV Profiler 2 - 2x PS Capture, 1x anti-CD63", sku: "900-00204", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD63" }, { name: "EV Profiler 2 - 2x PS Capture, 1x anti-CD81", sku: "900-00205", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD81" }, { name: "EV Profiler 2 - 3x Tet. Trio", sku: "900-00206", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - 2x Tet. Trio, 1x PS Capture", sku: "900-00207", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "PS Capture" }, { name: "EV Profiler 2 - 2x Tet. Trio, 1x anti-CD9", sku: "900-00208", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD9" }, { name: "EV Profiler 2 - 2x Tet. Trio, 1x anti-CD63", sku: "900-00209", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD63" }, { name: "EV Profiler 2 - 2x Tet. Trio, 1x anti-CD81", sku: "900-00210", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD81" }, { name: "EV Profiler 2 - 3x anti-CD9", sku: "900-00211", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD9", ct3: "CD9" }, { name: "EV Profiler 2 - 2x anti-CD9 1x PS Capture", sku: "900-00212", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD9", ct3: "PS Capture" }, { name: "EV Profiler 2 - 2x anti-CD9 1x Tet. Trio", sku: "900-00213", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD9", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - 2x anti-CD9 1x anti-CD63", sku: "900-00214", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - 2x anti-CD9 1x anti-CD81", sku: "900-00215", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - 3x anti-CD63", sku: "900-00216", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD63", ct2: "CD63", ct3: "CD63" }, { name: "EV Profiler 2 - 2x anti-CD63, 1x PS Capture", sku: "900-00217", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD63", ct2: "CD63", ct3: "PS Capture" }, { name: "EV Profiler 2 - 2x anti-CD63, 1x Tet. Trio", sku: "900-00218", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD63", ct2: "CD63", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - 2x anti-CD63, 1x anti-CD9", sku: "900-00219", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD63", ct2: "CD63", ct3: "CD9" }, { name: "EV Profiler 2 - 2x anti-CD63, 1x anti-CD81", sku: "900-00220", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD63", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - 3x anti-CD81", sku: "900-00221", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD81", ct2: "CD81", ct3: "CD81" }, { name: "EV Profiler 2 - 2x anti-CD81, 1x PS Capture", sku: "900-00222", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD81", ct2: "CD81", ct3: "PS Capture" }, { name: "EV Profiler 2 - 2x anti-CD81, 1x Tet. Trio", sku: "900-00223", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD81", ct2: "CD81", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - 2x anti-CD81, 1x anti-CD9", sku: "900-00224", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD81", ct2: "CD81", ct3: "CD9" }, { name: "EV Profiler 2 - 2x anti-CD81, 1x anti-CD63", sku: "900-00225", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD81", ct2: "CD81", ct3: "CD63" }, { name: "EV Profiler 2 - 1x PS Capture, 1x Tet. Trio, 1x anti-CD9", sku: "900-00226", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD9" }, { name: "EV Profiler 2 - 1x PS Capture, 1x Tet. Trio, 1x anti-CD63", sku: "900-00227", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD63" }, { name: "EV Profiler 2 - 1x PS Capture, 1x Tet. Trio, 1x anti-CD81", sku: "900-00228", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD81" }, { name: "EV Profiler 2 - 1x PS Capture, 1x anti-CD9, 1x anti-CD63", sku: "900-00229", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - 1x PS Capture, 1x anti-CD9, 1x anti-CD81", sku: "900-00230", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - 1x PS Capture, 1x anti-CD63, 1x anti-CD81", sku: "900-00231", source: "Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "PS Capture", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - 1x Tet. Trio, 1x anti-CD9, 1x anti-CD63", sku: "900-00232", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - 1x Tet. Trio, 1x anti-CD9, 1x anti-CD81", sku: "900-00233", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - 1x Tet. Trio, 1x anti-CD63, 1x anti-CD81", sku: "900-00234", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "Tet. Trio", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - 1x anti-CD9, 1x anti-CD63, 1x anti-CD81", sku: "900-00235", source: "Non-Cancer Derived", stain: "EV membrane plus biomarkers of interest", ct1: "CD9", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 3x PS Capture", sku: "900-00236", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "PS Capture", ct3: "PS Capture" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x PS Capture, 1x Tet. Trio", sku: "900-00237", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "PS Capture", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x PS Capture, 1x anti-CD9", sku: "900-00238", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x PS Capture, 1x anti-CD63", sku: "900-00239", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x PS Capture, 1x anti-CD81", sku: "900-00240", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "PS Capture", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 3x Tet. Trio", sku: "900-00241", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x Tet. Trio, 1x PS Capture", sku: "900-00242", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "PS Capture" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x Tet. Trio, 1x anti-CD9", sku: "900-00243", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x Tet. Trio, 1x anti-CD63", sku: "900-00244", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x Tet. Trio, 1x anti-CD81", sku: "900-00245", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "Tet. Trio", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 3x anti-CD9", sku: "900-00246", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD9", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD9 1x PS Capture", sku: "900-00247", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD9", ct3: "PS Capture" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD9 1x Tet. Trio", sku: "900-00248", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD9", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD9 1x anti-CD63", sku: "900-00249", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD9 1x anti-CD81", sku: "900-00250", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 3x anti-CD63", sku: "900-00251", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD63", ct2: "CD63", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD63, 1x PS Capture", sku: "900-00252", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "CD63", ct2: "CD63", ct3: "PS Capture" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD63, 1x Tet. Trio", sku: "900-00253", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD63", ct2: "CD63", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD63, 1x anti-CD9", sku: "900-00254", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD63", ct2: "CD63", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD63, 1x anti-CD81", sku: "900-00255", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD63", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 3x anti-CD81", sku: "900-00256", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD81", ct2: "CD81", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD81, 1x PS Capture", sku: "900-00257", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "CD81", ct2: "CD81", ct3: "PS Capture" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD81, 1x Tet. Trio", sku: "900-00258", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD81", ct2: "CD81", ct3: "Tet. Trio" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD81, 1x anti-CD9", sku: "900-00259", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD81", ct2: "CD81", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 2x anti-CD81, 1x anti-CD63", sku: "900-00260", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD81", ct2: "CD81", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x Tet. Trio, 1x anti-CD9", sku: "900-00261", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD9" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x Tet. Trio, 1x anti-CD63", sku: "900-00262", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x Tet. Trio, 1x anti-CD81", sku: "900-00263", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "Tet. Trio", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x anti-CD9, 1x anti-CD63", sku: "900-00264", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x anti-CD9, 1x anti-CD81", sku: "900-00265", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x PS Capture, 1x anti-CD63, 1x anti-CD81", sku: "900-00266", source: "Cancer Derived", stain: "Tetraspanins Only", ct1: "PS Capture", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x Tet. Trio, 1x anti-CD9, 1x anti-CD63", sku: "900-00267", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "CD9", ct3: "CD63" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x Tet. Trio, 1x anti-CD9, 1x anti-CD81", sku: "900-00268", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "CD9", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x Tet. Trio, 1x anti-CD63, 1x anti-CD81", sku: "900-00269", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "Tet. Trio", ct2: "CD63", ct3: "CD81" }, { name: "EV Profiler 2 - Tetraspanin Profiling - 1x anti-CD9, 1x anti-CD63, 1x anti-CD81", sku: "900-00270", source: "Non-Cancer Derived", stain: "Tetraspanins Only", ct1: "CD9", ct2: "CD63", ct3: "CD81" } ]; document.addEventListener("DOMContentLoaded", () => { const captureSelect = document.getElementById("captureMarker"); const uniqueMarkers = [...new Set(products.flatMap(p => [p.ct1, p.ct2, p.ct3]))]; uniqueMarkers.forEach(marker => { const option = document.createElement("option"); option.value = marker; option.text = marker; captureSelect.add(option); }); }); function filterProducts() { const source = document.getElementById("evSource").value; const marker = document.getElementById("captureMarker").value; const stain = document.getElementById("staining").value; const filtered = products.filter(p => (!source || p.source === source) && (!stain || p.stain === stain) && (!marker || [p.ct1, p.ct2, p.ct3].includes(marker)) ); const table = document.getElementById("resultsTable"); const body = document.getElementById("resultsBody"); body.innerHTML = ""; if (filtered.length > 0) { filtered.forEach(p => { const row = `