{"id":25,"date":"2023-03-07T15:19:03","date_gmt":"2023-03-07T15:19:03","guid":{"rendered":"http:\/\/namma.test\/?page_id=25"},"modified":"2025-12-06T19:10:26","modified_gmt":"2025-12-06T19:10:26","slug":"member-map","status":"publish","type":"page","link":"https:\/\/namma.org\/about\/member-map\/","title":{"rendered":"Members and Affiliated Agencies"},"content":{"rendered":"\r\n\r\n\t<section id=\"block_a264f8f101dbb23a0efbd809404d1dfc\" class=\"page-banner-section full-width-block\" style=\"background-image:url(https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-1920x480.jpg);\">\r\n\t\t\t\t\t<div class=\"container\">\r\n\t\t\t\t<h2 class=\"h1-sm title\">Members and<br \/>\r\nAffiliated Agencies<\/h2>\r\n\t\t\t<\/div>\r\n\t\t\t<\/section>\r\n\n\n\n<head><script>\n            let filters = JSON.parse('{\"Agency Name\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Port\":{\"hidden\":true,\"dropdownFilter\":false,\"requiredTrue\":false},\"ICMA\":{\"hidden\":true,\"dropdownFilter\":false,\"requiredTrue\":false},\"NAMMA\":{\"hidden\":true,\"dropdownFilter\":false,\"requiredTrue\":true},\"Primary Affiliation\":{\"hidden\":false,\"dropdownFilter\":true,\"requiredTrue\":false},\"Working In Partnership With\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"General Location\":{\"hidden\":false,\"dropdownFilter\":true,\"requiredTrue\":false},\"Country\":{\"hidden\":false,\"dropdownFilter\":true,\"requiredTrue\":false},\"State \/ Province \/ Region\":{\"hidden\":false,\"dropdownFilter\":true,\"requiredTrue\":false},\"City\":{\"hidden\":false,\"dropdownFilter\":true,\"requiredTrue\":false},\"Physical Address\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Mailing Address\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Zip\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Serves Fishers and Seafood Workers\":{\"hidden\":true,\"dropdownFilter\":false,\"requiredTrue\":false},\"Website\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Facebook\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Other Social Media\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Email\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Phone\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Contact First\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Contact Last\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Details\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"How to Support\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Services Available\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false},\"Services temporarily unavailable\":{\"hidden\":false,\"dropdownFilter\":false,\"requiredTrue\":false}}');\n            let topLevelSortingField = 'General Location';\n            let titleFormat = [['Country', 'State \/ Province \/ Region', 'City'], ['Agency Name']];\n            let tabName = 'RawDataView';\n            let spreadsheetKey = 'AIzaSyBAH8EG8YdxxIyYaqfH0L5wG3eBrVZTYFA';\n            let spreadsheetID = '1GKr2sH3uAJSbblKOfbL2Gsbdx68FUI0AF36szT3nyws';\n            let spreadsheetUrl = 'https:\/\/sheets.googleapis.com\/v4\/spreadsheets\/' + spreadsheetID + '\/values\/' + tabName + '?alt=json&key=' + spreadsheetKey;\n            let spreadSheetData;\n            let agencies = [];\n            let filterItems = [];\n            let groupItems = [];\n          <\/script><\/head>\n          <body>\n  <link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.2\/css\/bootstrap.min.css\">\n\n  <div class=\"agency-search\">\n    <div class=\"pt-3\">\n      <div class=\"d-inline-flex form-group\" style=\"width:100%; gap:10px;\">\n        <input type=\"text\" class=\"form-control\" id=\"searchbar\" onkeyup=\"searchList()\"\n                    placeholder=\"Search for names, keywords, or locations...\" \/>\n        <a class=\"btn filter-btn\" data-toggle=\"collapse\" href=\"#advancedFilters\" role=\"button\" aria-expanded=\"false\"\n          aria-controls=\"advancedFilters\">\n          Filters\n        <\/a>\n      <\/div>\n      <div class=\"collapse mb-3\" id=\"advancedFilters\">\n        <div class=\"card card-body\">\n          <div class=\"form-row\" id=\"filterArea\"><\/div>\n          <button class=\"btn filter-btn mt-3\" onclick=\"resetList()\">Clear<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div id=\"mainContentBar\"><\/div>\n  <\/div>\n\n\n  <script src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.1.1\/jquery.min.js\"><\/script>\n  <script src=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.2\/js\/bootstrap.bundle.min.js\"><\/script>\n\n  <script>\n    ($.getJSON(spreadsheetUrl, 'callback=?')).success(function (data) {\n            spreadSheetData = data.values\n            makeList(spreadSheetData)\n            updateFiltersFromStringFilters()\n        });\n\n        function updateFiltersFromStringFilters() {\n            const urlParams = new URLSearchParams(window.location.search)\n            document.getElementById('searchbar').value\n            let isFilterUsed = false\n            urlParams.forEach((value, key) => {\n                let searchFilter = decodeURIComponent(key)\n                if (searchFilter != '') {\n                    let selectDropdown = document.getElementById(decodeURIComponent(key))\n\n                    if (selectDropdown != undefined) {\n                        selectDropdown.value = decodeURIComponent(value)\n                        isFilterUsed = true\n                    }\n                }\n            })\n            if (isFilterUsed) {\n                document.getElementById('advancedFilters').classList.add('show')\n            }\n            searchList()\n        }\n\n        function setQueryStringFilters() {\n            const urlParams = new URLSearchParams('')\n            let searchBar = document.getElementById('searchbar').value\n            if (searchBar != '') {\n                urlParams.set(encodeURIComponent('searchbar'), encodeURIComponent(searchBar))\n            }\n            for (let filterIndex = 0; filterIndex < filterItems.length; filterIndex++) {\n                if (filterItems[filterIndex].selectDropdown.selectedIndex > 0) {\n                    urlParams.set(encodeURIComponent(filterItems[filterIndex].selectDropdown.id), encodeURIComponent(filterItems[filterIndex].selectDropdown.value))\n                }\n            }\n            if (urlParams.toString() == '') {\n                window.history.replaceState(null, null, '?');\n            } else {\n                window.history.replaceState(null, null, `?${urlParams.toString()}`);\n            }\n        }\n\n        function isColumnFiltered(columnIndex) {\n            let filter = getFilter(columnIndex)\n            if (filter == undefined) {\n                return false\n            }\n            if (filter.hasOwnProperty('requiredTrue')) {\n                return filter.requiredTrue\n            }\n            return false\n        }\n\n        function getFilterValue(columnIndex) {\n            return getFilter(columnIndex).filterValue\n        }\n\n        function getFilter(columnIndex) {\n            return filters[spreadSheetData[0][columnIndex]]\n        }\n\n        function getFilterValues(columnIndex) {\n            var content = ''\n            var filterValues = Array.from(getFilter(columnIndex).filterValues)\n            for (var filterValueIndex = 0; filterValueIndex < filterValues.length; filterValueIndex++) {\n                content += `\n                <option value=\"${filterValues[filterValueIndex]}\">${filterValues[filterValueIndex]}<\/option>\n            `\n            }\n            return content\n        }\n\n        function addFilterValue(columnIndex, newFilterValue) {\n            var filter = getFilter(columnIndex)\n            if (filter == undefined) {\n                return\n            }\n            if (!(filter.hasOwnProperty('filterValues'))) {\n                filter.filterValues = new Set()\n            }\n            filter.filterValues.add(newFilterValue)\n        }\n\n        function isColumnHidden(columnIndex) {\n            if (spreadSheetData[0][columnIndex].indexOf('-') == 0) {\n                return true\n            }\n            var filter = getFilter(columnIndex)\n            if (filter !== undefined) {\n                if (getFilter(columnIndex).hasOwnProperty('hidden')) {\n                    return getFilter(columnIndex).hidden\n                }\n            }\n            return false\n        }\n\n        function createListItemData(rowIndex) {\n            var content = ''\n            for (let columnIndex = 0; columnIndex < spreadSheetData[rowIndex].length; columnIndex++) {\n                let cellContent = spreadSheetData[rowIndex][columnIndex]\n                if (isColumnHidden(columnIndex) || cellContent === '' || cellContent === 'Other \/ None') {\n                  continue\n                }\n                if (getFilter(columnIndex) != undefined) {\n                    if (getFilter(columnIndex).hasOwnProperty('dropdownFilter')) {\n                        if (getFilter(columnIndex).dropdownFilter == true) {\n                            addFilterValue(columnIndex, cellContent)\n                        }\n                    }\n                }\n                if(cellContent === \"TRUE\"){\n                  content += `<b>${spreadSheetData[0][columnIndex]}:<\/b> Yes<br>`\n                }else if(cellContent === \"FALSE\"){\n                  content += `<b>${spreadSheetData[0][columnIndex]}:<\/b> No<br>`\n                }else if (cellContent.indexOf('http') == 0) {\n                  content += `<b>${spreadSheetData[0][columnIndex]}:<\/b> <a href='${cellContent}'>${cellContent}<a><br>`\n                } else {\n                  content += `<b>${spreadSheetData[0][columnIndex]}:<\/b> ${cellContent}<br>`\n                }\n            }\n            return content\n        }\n\n        function createFilterItem(columnIndex) {\n            const options = `\n            <option value=\"\">Select ${spreadSheetData[0][columnIndex]}<\/option>\n            ${getFilterValues(columnIndex)}\n        `\n            const label = `\n            <label for=\"${spreadSheetData[0][columnIndex]}\">${spreadSheetData[0][columnIndex]}<\/label>\n        `\n\n            const selectDropdown = document.createElement('select')\n            selectDropdown.id = `${spreadSheetData[0][columnIndex]}`\n            selectDropdown.className = 'form-control'\n            selectDropdown.onchange = () => searchList()\n            selectDropdown.innerHTML = options\n\n            const filterItemDiv = document.createElement('div')\n            filterItemDiv.innerHTML = label\n            filterItemDiv.appendChild(selectDropdown)\n            filterItemDiv.className = 'form-group col-md-3'\n\n            filterItems.push({ selectDropdown: selectDropdown, columnIndex: columnIndex })\n            document.getElementById('filterArea').appendChild(filterItemDiv)\n        }\n\n        function getTitle(rowIndex) {\n            let title_start = []\n            for (let titleSectionIndex = 0; titleSectionIndex < titleFormat[0].length; titleSectionIndex++) {\n                let titleSection = titleFormat[0][titleSectionIndex]\n                var titleSectionColumn = filters[titleSection] !== undefined ? (filters[titleSection]['columnIndex'] !== undefined ? filters[titleSection].columnIndex : undefined) : undefined\n                if (titleSectionColumn == undefined) {\n                    continue\n                }\n                let titleSectionContent = spreadSheetData[rowIndex][titleSectionColumn]\n                if (titleSectionContent == '') {\n                    continue\n                }\n                title_start.push(titleSectionContent)\n            }\n\n            let title_end = []\n            for (let titleSectionIndex = 0; titleSectionIndex < titleFormat[0].length; titleSectionIndex++) {\n                let titleSection = titleFormat[1][titleSectionIndex]\n                var titleSectionColumn = filters[titleSection] !== undefined ? (filters[titleSection]['columnIndex'] !== undefined ? filters[titleSection].columnIndex : undefined) : undefined\n                if (titleSectionColumn == undefined) {\n                    continue\n                }\n                let titleSectionContent = spreadSheetData[rowIndex][titleSectionColumn]\n                title_end.push(titleSectionContent)\n            }\n\n            let content = `\n        <span>\n            <b style=\"color: #478cb4\">${title_start.join(', ')}<\/b>\n        <\/span>\n        <span style=\"color: #949494\"> \n            ${title_end.join(', ')}\n        <\/span>`\n            return content\n        }\n\n        function createListItem(rowIndex) {\n            const content = `\n            <li id=\"listItem\" class=\"listItem\">\n                <button class=\"collapsible active\">\n                    ${getTitle(rowIndex)}\n                <\/button>\n                <div class=\"content\" id=\"agencyRow${rowIndex}\">\n                    <p>\n                        ${createListItemData(rowIndex)}\n                    <\/p>\n                <\/div>\n            <\/li>\n        `\n            return content\n        }\n\n        function createGroupItem(groupName, groupIndex) {\n            const groupItemDiv = document.createElement('div')\n            groupItemDiv.innerHTML = `\n            <li id=\"groupItem\" class=\"groupItem\">\n                <button class=\"collapsible-group active\">\n                    <span class=\"groupItemTitle\"><b style=\"color: #273272\">${groupName}<\/b><\/span>\n                <\/button>\n                <div class=\"content\" id=\"agencyGroup${groupIndex}\">\n                    \n                <\/div>\n            <\/li>\n        `;\n            const contentSlot = groupItemDiv.getElementsByClassName('content')[0]\n            return {\n                div: groupItemDiv,\n                contentSlot: contentSlot,\n                groupName: groupName,\n                agencies: []\n            }\n        }\n\n        function makeList(_spreadSheetData) {\n            const spreadSheetData = _spreadSheetData\n\n            \/\/ Get column Labels\n            for (let [currentFilterKey, currentFilterValue] of Object.entries(filters)) {\n                for (let columnIndex = 0; columnIndex < spreadSheetData[0].length; columnIndex++) {\n                    if (currentFilterKey == spreadSheetData[0][columnIndex]) {\n                        filters[currentFilterKey].columnIndex = columnIndex\n                        break\n                    }\n                }\n            }\n\n            \/\/ Create Rows\n            for (let rowIndex = 1; rowIndex < spreadSheetData.length; rowIndex++) {\n                let displayRow = true\n                for (let columnIndex = 0; columnIndex < spreadSheetData[rowIndex].length; columnIndex++) {\n                    if (isColumnFiltered(columnIndex)) {\n                        if (spreadSheetData[rowIndex][columnIndex] != 'TRUE') {\n                            displayRow = false\n                            break\n                        }\n                    }\n                }\n                if (displayRow) {\n                    let listItemDiv = document.createElement('div')\n                    listItemDiv.innerHTML = createListItem(rowIndex)\n                    agencies.push({ div: listItemDiv, rowIndex: rowIndex, inGroup: false })\n                }\n            }\n\n            agencies.sort((a, b) => {\n                let textA = a.div.getElementsByClassName('collapsible')[0].innerText\n                let textB = b.div.getElementsByClassName('collapsible')[0].innerText\n                return ((textA < textB) ? -1 : (textA > textB) ? 1 : 0)\n            })\n\n            if (topLevelSortingField != '') {\n                let topLevelGroups = Array.from(filters[topLevelSortingField].filterValues).sort()\n                for (var topLevelGroupIndex = 0; topLevelGroupIndex < topLevelGroups.length; topLevelGroupIndex++) {\n                    var groupItem = createGroupItem(topLevelGroups[topLevelGroupIndex], topLevelGroupIndex)\n                    groupItems.push(groupItem)\n                    document.getElementById('mainContentBar').appendChild(groupItem.div)\n                    for (var agencyIndex = 0; agencyIndex < agencies.length; agencyIndex++) {\n                        if (spreadSheetData[agencies[agencyIndex].rowIndex][filters[topLevelSortingField].columnIndex] == topLevelGroups[topLevelGroupIndex]) {\n                            groupItem.agencies.push(agencies[agencyIndex])\n                            groupItem.contentSlot.appendChild(agencies[agencyIndex].div)\n                            agencies[agencyIndex].inGroup = true\n                        }\n                    }\n                }\n            } else {\n                for (var agencyIndex = 0; agencyIndex < agencies.length; agencyIndex++) {\n                    document.getElementById('mainContentBar').appendChild(agencies[agencyIndex].div)\n                }\n            }\n\n            var coll = document.getElementsByClassName(\"collapsible\")\n\n            for (let i = 0; i < coll.length; i++) {\n                coll[i].addEventListener(\"click\", function () {\n                    this.classList.toggle(\"active\")\n                    var content = this.nextElementSibling\n                    if (!(content.style.maxHeight == '0px' || content.style.maxHeight == 0)) {\n                        content.style.maxHeight = 0\n                    } else {\n                        content.style.maxHeight = content.scrollHeight + 'px'\n                    }\n                    let groupItem = this.parentElement.parentElement.parentElement.parentElement;\n                    if (groupItem.classList == 'groupItem') {\n                        groupItem.children[1].style.maxHeight = 'fit-content'\n                    }\n                })\n            }\n\n            var collg = document.getElementsByClassName(\"collapsible-group\")\n\n            for (let i = 0; i < collg.length; i++) {\n                collg[i].addEventListener(\"click\", function () {\n                    this.classList.toggle(\"active\")\n                    var content = this.nextElementSibling\n                    if (!(content.style.maxHeight == '0px' || content.style.maxHeight == 0)) {\n                        content.style.maxHeight = content.scrollHeight + 'px'\n                        setTimeout(() => { content.style.maxHeight = 0 }, 1)\n                    } else {\n                        content.style.maxHeight = content.scrollHeight + 'px'\n                    }\n                })\n            }\n\n            \/\/ Create filters\n            for (var columnIndex = 0; columnIndex < spreadSheetData[0].length; columnIndex++) {\n                var filter = getFilter(columnIndex)\n                if (filter != undefined) {\n                    if (filter.hasOwnProperty('dropdownFilter')) {\n                        if (filter.dropdownFilter == true) {\n                            createFilterItem(columnIndex)\n                        }\n                    }\n                }\n            }\n        }\n\n        function resetList() {\n            for (let filterIndex = 0; filterIndex < filterItems.length; filterIndex++) {\n                if (filterItems[filterIndex] == undefined || !filterItems[filterIndex].hasOwnProperty('selectDropdown')) {\n                    continue\n                }\n                filterItems[filterIndex].selectDropdown.selectedIndex = 0\n            }\n            searchList()\n        }\n\n        function updateAgencyOnSearch(currentAgency, searchValue) {\n            const currentRowIndex = currentAgency.rowIndex\n            let containSubstring = false\n            for (let columnIndex = 0; columnIndex < spreadSheetData[0].length; columnIndex++) {\n                if (spreadSheetData[currentRowIndex][columnIndex] != undefined) {\n                    if (spreadSheetData[currentRowIndex][columnIndex].toLowerCase().indexOf(searchValue.toLowerCase()) !== -1) {\n                        containSubstring = true\n                        break\n                    }\n                }\n            }\n            let matchesAllFiters = true\n            for (let filterIndex = 0; filterIndex < filterItems.length; filterIndex++) {\n                if (filterItems[filterIndex].selectDropdown.selectedIndex > 0) {\n                    if (filterItems[filterIndex].selectDropdown.value != spreadSheetData[currentRowIndex][filterItems[filterIndex].columnIndex]) {\n                        matchesAllFiters = false\n                        break\n                    }\n                }\n            }\n            isHidden = !containSubstring || !matchesAllFiters\n            if (isHidden) {\n                currentAgency.div.classList.add('hidden')\n            } else {\n                currentAgency.div.classList.remove('hidden')\n            }\n            return isHidden\n        }\n        function searchList() {\n            var searchValue = document.getElementById('searchbar').value;\n            if (topLevelSortingField == \"\") {\n                for (let agencyIndex = 0; agencyIndex < agencies.length; agencyIndex++) {\n                    const currentAgency = agencies[agencyIndex]\n                    updateAgencyOnSearch(currentAgency, searchValue)\n                }\n            } else {\n                var collg = document.getElementsByClassName(\"collapsible-group\")\n                for (let i = 0; i < collg.length; i++) {\n                    if (searchValue != \"\") {\n                        collg[i].classList.remove(\"active\")\n                        var content = collg[i].nextElementSibling\n                        content.style.maxHeight = 'fit-content'\n                    } else {\n                        collg[i].classList.add(\"active\")\n                        var content = collg[i].nextElementSibling\n                        content.style.maxHeight = 0\n                    }\n                }\n                for (let groupItemIndex = 0; groupItemIndex < groupItems.length; groupItemIndex++) {\n                    let hiddenCount = 0;\n                    let agencyCount = groupItems[groupItemIndex].agencies.length\n                    for (let agencyIndex = 0; agencyIndex < agencyCount; agencyIndex++) {\n                        const currentAgency = groupItems[groupItemIndex].agencies[agencyIndex]\n                        let isHidden = updateAgencyOnSearch(currentAgency, searchValue)\n                        if (isHidden) {\n                            hiddenCount++\n                        }\n                    }\n                    if (hiddenCount === agencyCount) {\n                        groupItems[groupItemIndex].div.classList.add('hidden')\n                    } else if (hiddenCount == 0) {\n                        groupItems[groupItemIndex].div.classList.remove('hidden')\n                        groupItems[groupItemIndex].div.getElementsByClassName('groupItemTitle')[0].innerHTML = `\n                        <b style=\"color: #184158\">${groupItems[groupItemIndex].groupName}<\/b><span style=\"color: #a2a3a9; font-size: 19px;\"> (${agencyCount})<\/span>\n                    `\n                    } else {\n                        groupItems[groupItemIndex].div.classList.remove('hidden')\n                        groupItems[groupItemIndex].div.getElementsByClassName('groupItemTitle')[0].innerHTML = `\n                        <b style=\"color: #184158\">${groupItems[groupItemIndex].groupName}<\/b><span style=\"color: #a2a3a9; font-size: 19px;\"> (${agencyCount - hiddenCount}\/${agencyCount})<\/span>\n                    `\n                    }\n                }\n            }\n            setQueryStringFilters()\n        }\n  <\/script>\n\n  <style>\n    form.search-form button.search-submit {\n      top: auto;\n    }\n\n    .filter-btn,\n    .filter-btn:focus,\n    .filter-btn:active,\n    .filter-btn:link,\n    .filter-btn:visited {\n      min-height: auto;\n      outline-color: #273272;\n      color: white;\n      background-color: #273272;\n      text-decoration: none;\n    }\n\n    .filter-btn:hover {\n      background-color: #242d60;\n      color: white;\n      text-decoration: none;\n    }\n\n    .collapsible {\n      background-color: #f7f7f7;\n      color: #b8c6d4;\n      cursor: pointer;\n      padding: 8px;\n      width: 100%;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-size: 16px;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n    }\n\n    .collapsible-group {\n      background-color: #eeeeee;\n      color: #b8c6d4;\n      cursor: pointer;\n      padding: 8px;\n      width: 100%;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-size: 20px;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n    }\n\n    .collapsible-group:focus {\n      background-color: #efefef;\n      color: #b8c6d4;\n      cursor: pointer;\n      padding: 8px;\n      width: 100%;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-size: 20px;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n    }\n\n    .collapsible:focus {\n      background-color: #f8f8f8;\n      color: #b8c6d4;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n      text-decoration: none;\n    }\n\n    .listItem>.active {\n      background-color: #f8f8f8;\n      color: black;\n    }\n\n    .active:hover,\n    .collapsible:hover {\n      background-color: #f1f1f1;\n      color: #b8c6d4;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n      text-decoration: none;\n    }\n\n    .collapsible-group:hover {\n      background-color: #eeeeee;\n      color: #b8c6d4;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n      text-decoration: none;\n    }\n\n    .collapsible-group:after,\n    .collapsible:after {\n      color: #b8c6d4;\n      font-weight: bold;\n      float: right;\n      margin-left: 5px;\n      border: none;\n      text-align: left;\n      outline: none;\n      font-family: \"Lato\", sans-serif;\n      white-space: normal;\n    }\n\n    .groupItem>.content {\n      padding: 0;\n    }\n\n    .collapsible-group:not(.active):after,\n    .collapsible:not(.active):after {\n      content: \"\\2212\";\n    }\n\n    .collapsible-group.active:after,\n    .collapsible.active:after {\n      content: '\\002B';\n    }\n\n    .content {\n      background-color: #fbfbfb;\n      padding: 0 18px;\n      overflow: hidden;\n      max-height: 0;\n      transition: max-height 0.2s ease-out;\n    }\n\n    #listItem {\n      border: 0px solid #ddd;\n      margin-top: -1px;\n      background-color: #f6f6f6;\n      padding: 0px;\n      text-decoration: none;\n      color: black;\n      display: block\n    }\n\n    #groupItem {\n      border: 0px solid #ddd;\n      margin-top: -1px;\n      background-color: #ffffff;\n      padding: 0px;\n      text-decoration: none;\n      color: black;\n      display: block\n    }\n\n    .ListContainer {\n      list-style-type: none;\n      padding: 0;\n      margin: 0;\n    }\n\n    .hidden {\n      display: none;\n    }\n\n    a:link:not(.btn),\n    a:visited:not(.btn) {\n      color: #3489be;\n    }\n\n    a:hover:not(.btn),\n    a:active:not(.btn) {\n      color: #27536f;\n    }\n  <\/style>\n<\/body>\n","protected":false},"excerpt":{"rendered":"<p>Filters Clear<\/p>\n","protected":false},"author":1,"featured_media":280,"parent":8,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-25","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Members and Affiliated Agencies - NAMMA<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/namma.org\/about\/member-map\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Members and Affiliated Agencies - NAMMA\" \/>\n<meta property=\"og:description\" content=\"Filters Clear\" \/>\n<meta property=\"og:url\" content=\"https:\/\/namma.org\/about\/member-map\/\" \/>\n<meta property=\"og:site_name\" content=\"NAMMA\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-06T19:10:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/namma.org\/about\/member-map\/\",\"url\":\"https:\/\/namma.org\/about\/member-map\/\",\"name\":\"Members and Affiliated Agencies - NAMMA\",\"isPartOf\":{\"@id\":\"https:\/\/namma.org\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/namma.org\/about\/member-map\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/namma.org\/about\/member-map\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg\",\"datePublished\":\"2023-03-07T15:19:03+00:00\",\"dateModified\":\"2025-12-06T19:10:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/namma.org\/about\/member-map\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/namma.org\/about\/member-map\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/namma.org\/about\/member-map\/#primaryimage\",\"url\":\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg\",\"contentUrl\":\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg\",\"width\":2560,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/namma.org\/about\/member-map\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/namma.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"About us\",\"item\":\"https:\/\/namma.org\/about\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Members and Affiliated Agencies\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/namma.org\/#website\",\"url\":\"https:\/\/namma.org\/\",\"name\":\"NAMMA\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/namma.org\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/namma.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/namma.org\/#organization\",\"name\":\"NAMMA\",\"url\":\"https:\/\/namma.org\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/namma.org\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/logo.svg\",\"contentUrl\":\"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/logo.svg\",\"width\":284,\"height\":79,\"caption\":\"NAMMA\"},\"image\":{\"@id\":\"https:\/\/namma.org\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Members and Affiliated Agencies - NAMMA","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/namma.org\/about\/member-map\/","og_locale":"en_US","og_type":"article","og_title":"Members and Affiliated Agencies - NAMMA","og_description":"Filters Clear","og_url":"https:\/\/namma.org\/about\/member-map\/","og_site_name":"NAMMA","article_modified_time":"2025-12-06T19:10:26+00:00","og_image":[{"width":2560,"height":640,"url":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/namma.org\/about\/member-map\/","url":"https:\/\/namma.org\/about\/member-map\/","name":"Members and Affiliated Agencies - NAMMA","isPartOf":{"@id":"https:\/\/namma.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/namma.org\/about\/member-map\/#primaryimage"},"image":{"@id":"https:\/\/namma.org\/about\/member-map\/#primaryimage"},"thumbnailUrl":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg","datePublished":"2023-03-07T15:19:03+00:00","dateModified":"2025-12-06T19:10:26+00:00","breadcrumb":{"@id":"https:\/\/namma.org\/about\/member-map\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/namma.org\/about\/member-map\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/namma.org\/about\/member-map\/#primaryimage","url":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg","contentUrl":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/3914_MembersBKG-scaled.jpg","width":2560,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/namma.org\/about\/member-map\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/namma.org\/"},{"@type":"ListItem","position":2,"name":"About us","item":"https:\/\/namma.org\/about\/"},{"@type":"ListItem","position":3,"name":"Members and Affiliated Agencies"}]},{"@type":"WebSite","@id":"https:\/\/namma.org\/#website","url":"https:\/\/namma.org\/","name":"NAMMA","description":"","publisher":{"@id":"https:\/\/namma.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/namma.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/namma.org\/#organization","name":"NAMMA","url":"https:\/\/namma.org\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/namma.org\/#\/schema\/logo\/image\/","url":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/logo.svg","contentUrl":"https:\/\/namma.org\/wp-content\/uploads\/2023\/03\/logo.svg","width":284,"height":79,"caption":"NAMMA"},"image":{"@id":"https:\/\/namma.org\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":37,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/pages\/25\/revisions"}],"predecessor-version":[{"id":4679,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/pages\/25\/revisions\/4679"}],"up":[{"embeddable":true,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/pages\/8"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/media\/280"}],"wp:attachment":[{"href":"https:\/\/namma.org\/wp-json\/wp\/v2\/media?parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}