{"id":1542,"date":"2025-11-21T20:08:00","date_gmt":"2025-11-21T20:08:00","guid":{"rendered":"https:\/\/recoverinitiative.ca\/?page_id=1542"},"modified":"2025-12-11T20:46:16","modified_gmt":"2025-12-11T20:46:16","slug":"resources","status":"publish","type":"page","link":"https:\/\/recoverinitiative.ca\/fr\/resources\/","title":{"rendered":"Resources"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1497.6px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\">\n<div class=\"resources-with-filters\">\n    <div class=\"resources-title-section\">\n        <h1 class=\"page-title\">Resouces<\/h1>\n        <div class=\"category-filter-tabs\">\n                        <button class=\"category-tab active\" data-category=\"all\">All<\/button>\n                                                    <button class=\"category-tab\" data-category=\"etudes-de-cas\">\n                        \u00c9tudes de cas                    <\/button>\n                                                                        <button class=\"category-tab\" data-category=\"non-categorise\">\n                        Non cat\u00e9goris\u00e9                    <\/button>\n                                                                        <button class=\"category-tab\" data-category=\"outils\">\n                        Outils                    <\/button>\n                                                                        <button class=\"category-tab\" data-category=\"resherches-et-rapports\">\n                        Resherches et rapports                    <\/button>\n                                                                        <button class=\"category-tab\" data-category=\"webinaires-et-evenements\">\n                        Webinaires et \u00e9v\u00e9nements                    <\/button>\n                                        <\/div>\n    <\/div>\n\n    <div class=\"resources-header\">\n        <div class=\"search-container\">\n            <input type=\"text\" id=\"resources-search\" placeholder=\"Rechercher des ressources\" \/>\n            <button type=\"submit\" id=\"search-btn\">\n                <span>Search<\/span>\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.8517 12.6434L17.3883 16.18L16.21 17.3592L12.6767 13.8259C11.4986 14.7131 10.0283 15.1212 8.56153 14.968C7.09476 14.8149 5.74043 14.1118 4.7711 13.0004C3.80177 11.889 3.28937 10.4517 3.33703 8.9777C3.3847 7.50373 3.98887 6.10251 5.02798 5.05603C6.06709 4.00956 7.464 3.39549 8.9376 3.33741C10.4112 3.27934 11.8521 3.78156 12.9703 4.74302C14.0886 5.70447 14.8012 7.05379 14.9647 8.51944C15.1282 9.98509 14.7305 11.4583 13.8517 12.6425V12.6434ZM13.3333 9.16671C13.3333 8.06164 12.8943 7.00183 12.1129 6.22043C11.3315 5.43903 10.2717 5.00004 9.16666 5.00004C8.06159 5.00004 7.00178 5.43903 6.22038 6.22043C5.43898 7.00183 4.99999 8.06164 4.99999 9.16671C4.99999 10.2718 5.43898 11.3316 6.22038 12.113C7.00178 12.8944 8.06159 13.3334 9.16666 13.3334C10.2717 13.3334 11.3315 12.8944 12.1129 12.113C12.8943 11.3316 13.3333 10.2718 13.3333 9.16671Z\" fill=\"white\"\/>\n<\/svg>\n\n            <\/button>\n        <\/div>\n    <\/div>\n\n    <div class=\"results-header\">\n        <button id=\"filter-button\">Masquer les filtres<\/button>\n        <span class=\"results-count\">9 R\u00e9sultats<\/span>\n    <\/div>\n    <div class=\"resources-content\">\n        <div class=\"resources-sidebar\">\n            <div class=\"filters-section\">\n                <div id=\"applied-filters\" style=\"display: none;\">\n                    <h3>Applied Filters @fr<\/h3>\n                    <div class=\"applied-filters-list\">\n                        <!-- Dynamic applied filters will be added here -->\n                    <\/div>\n                    <button class=\"clear-all-btn\" style=\"display: none;\">CLEAR ALL @fr<\/button>\n                <\/div>\n\n                <div class=\"filter-group\">\n                    <button class=\"filter-toggle\" data-target=\"sort-by\">\n                        <h3>Trier par<\/h3>\n                        <svg  class=\"chevron\"width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M18.2353 15.785C18.3069 15.8537 18.391 15.9074 18.483 15.943C18.575 15.9786 18.673 15.9955 18.7715 15.9927C18.8699 15.9899 18.9668 15.9674 19.0566 15.9265C19.1465 15.8857 19.2276 15.8272 19.2952 15.7546C19.3628 15.6819 19.4157 15.5964 19.4508 15.503C19.4859 15.4096 19.5025 15.31 19.4997 15.2101C19.4969 15.1101 19.4748 15.0117 19.4345 14.9205C19.3943 14.8292 19.3368 14.7469 19.2652 14.6782L12.5192 8.20807C12.38 8.07445 12.1957 8 12.0042 8C11.8127 8 11.6284 8.07445 11.4893 8.20807L4.74247 14.6782C4.66935 14.7465 4.61029 14.8288 4.56875 14.9203C4.52721 15.0119 4.504 15.111 4.50047 15.2118C4.49695 15.3126 4.51317 15.413 4.54821 15.5074C4.58325 15.6018 4.6364 15.6881 4.70458 15.7614C4.77275 15.8347 4.8546 15.8936 4.94535 15.9345C5.0361 15.9754 5.13396 15.9976 5.23324 15.9998C5.33251 16.002 5.43123 15.9842 5.52365 15.9473C5.61608 15.9104 5.70036 15.8552 5.77162 15.785L12.0042 9.8081L18.2353 15.785Z\" fill=\"#262626\"\/>\n                        <\/svg>\n                    <\/button>\n                    <div class=\"filter-content\" id=\"sort-by\">\n                        <div class=\"sort-options\">\n                            <label>\n                                <input type=\"radio\" name=\"sort\" value=\"newest\" checked>\n                                <span>Le plus r\u00e9cent<\/span>\n                            <\/label>\n                            <label>\n                                <input type=\"radio\" name=\"sort\" value=\"az\">\n                                <span>A - Z<\/span>\n                            <\/label>\n                            <label>\n                                <input type=\"radio\" name=\"sort\" value=\"za\">\n                                <span>Z - A<\/span>\n                            <\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"filter-group\">\n                    <button class=\"filter-toggle\" data-target=\"topic-filters\">\n                        <h3>Sujet<\/h3>\n                        <svg  class=\"chevron\"width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M18.2353 15.785C18.3069 15.8537 18.391 15.9074 18.483 15.943C18.575 15.9786 18.673 15.9955 18.7715 15.9927C18.8699 15.9899 18.9668 15.9674 19.0566 15.9265C19.1465 15.8857 19.2276 15.8272 19.2952 15.7546C19.3628 15.6819 19.4157 15.5964 19.4508 15.503C19.4859 15.4096 19.5025 15.31 19.4997 15.2101C19.4969 15.1101 19.4748 15.0117 19.4345 14.9205C19.3943 14.8292 19.3368 14.7469 19.2652 14.6782L12.5192 8.20807C12.38 8.07445 12.1957 8 12.0042 8C11.8127 8 11.6284 8.07445 11.4893 8.20807L4.74247 14.6782C4.66935 14.7465 4.61029 14.8288 4.56875 14.9203C4.52721 15.0119 4.504 15.111 4.50047 15.2118C4.49695 15.3126 4.51317 15.413 4.54821 15.5074C4.58325 15.6018 4.6364 15.6881 4.70458 15.7614C4.77275 15.8347 4.8546 15.8936 4.94535 15.9345C5.0361 15.9754 5.13396 15.9976 5.23324 15.9998C5.33251 16.002 5.43123 15.9842 5.52365 15.9473C5.61608 15.9104 5.70036 15.8552 5.77162 15.785L12.0042 9.8081L18.2353 15.785Z\" fill=\"#262626\"\/>\n                        <\/svg>\n                    <\/button>\n                    <div class=\"filter-content\" id=\"topic-filters\">\n                        <div class=\"checkbox-filters\">\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"batiments\">\n                                        <span>Batiments<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"changement-climatique\">\n                                        <span>Changement climatique<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"elimination-du-carbone\">\n                                        <span>\u00c9limination du carbone<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"energy-efficiency\">\n                                        <span>Energy Efficiency<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"financement\">\n                                        <span>Financement<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"politique\">\n                                        <span>Politique<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"topic\" value=\"renovation\">\n                                        <span>R\u00e9novation<\/span>\n                                    <\/label>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"filter-group\">\n                    <button class=\"filter-toggle\" data-target=\"geographic-filters\">\n                        <h3>G\u00e9ographique<\/h3>\n                        <svg  class=\"chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M18.2353 15.785C18.3069 15.8537 18.391 15.9074 18.483 15.943C18.575 15.9786 18.673 15.9955 18.7715 15.9927C18.8699 15.9899 18.9668 15.9674 19.0566 15.9265C19.1465 15.8857 19.2276 15.8272 19.2952 15.7546C19.3628 15.6819 19.4157 15.5964 19.4508 15.503C19.4859 15.4096 19.5025 15.31 19.4997 15.2101C19.4969 15.1101 19.4748 15.0117 19.4345 14.9205C19.3943 14.8292 19.3368 14.7469 19.2652 14.6782L12.5192 8.20807C12.38 8.07445 12.1957 8 12.0042 8C11.8127 8 11.6284 8.07445 11.4893 8.20807L4.74247 14.6782C4.66935 14.7465 4.61029 14.8288 4.56875 14.9203C4.52721 15.0119 4.504 15.111 4.50047 15.2118C4.49695 15.3126 4.51317 15.413 4.54821 15.5074C4.58325 15.6018 4.6364 15.6881 4.70458 15.7614C4.77275 15.8347 4.8546 15.8936 4.94535 15.9345C5.0361 15.9754 5.13396 15.9976 5.23324 15.9998C5.33251 16.002 5.43123 15.9842 5.52365 15.9473C5.61608 15.9104 5.70036 15.8552 5.77162 15.785L12.0042 9.8081L18.2353 15.785Z\" fill=\"#262626\"\/>\n                        <\/svg>\n                    <\/button>\n                    <div class=\"filter-content\" id=\"geographic-filters\">\n                        <div class=\"checkbox-filters\">\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"geographic\" value=\"ile-du-prince-edouard\">\n                                        <span>\u00cele-du-Prince-\u00c9douard<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"geographic\" value=\"nouveau-brunswick\">\n                                        <span>Nouveau-Brunswick<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"geographic\" value=\"nouvelle-ecosse\">\n                                        <span>Nouvelle-\u00c9cosse<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"geographic\" value=\"canada-wide\">\n                                        <span>Partout au Canada<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"geographic\" value=\"terre-neuve-et-labrador\">\n                                        <span>Terre-Neuve et Labrador<\/span>\n                                    <\/label>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"filter-group\">\n                    <button class=\"filter-toggle\" data-target=\"type-filters\">\n                        <h3>Type<\/h3>\n                        <svg  class=\"chevron\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M18.2353 15.785C18.3069 15.8537 18.391 15.9074 18.483 15.943C18.575 15.9786 18.673 15.9955 18.7715 15.9927C18.8699 15.9899 18.9668 15.9674 19.0566 15.9265C19.1465 15.8857 19.2276 15.8272 19.2952 15.7546C19.3628 15.6819 19.4157 15.5964 19.4508 15.503C19.4859 15.4096 19.5025 15.31 19.4997 15.2101C19.4969 15.1101 19.4748 15.0117 19.4345 14.9205C19.3943 14.8292 19.3368 14.7469 19.2652 14.6782L12.5192 8.20807C12.38 8.07445 12.1957 8 12.0042 8C11.8127 8 11.6284 8.07445 11.4893 8.20807L4.74247 14.6782C4.66935 14.7465 4.61029 14.8288 4.56875 14.9203C4.52721 15.0119 4.504 15.111 4.50047 15.2118C4.49695 15.3126 4.51317 15.413 4.54821 15.5074C4.58325 15.6018 4.6364 15.6881 4.70458 15.7614C4.77275 15.8347 4.8546 15.8936 4.94535 15.9345C5.0361 15.9754 5.13396 15.9976 5.23324 15.9998C5.33251 16.002 5.43123 15.9842 5.52365 15.9473C5.61608 15.9104 5.70036 15.8552 5.77162 15.785L12.0042 9.8081L18.2353 15.785Z\" fill=\"#262626\"\/>\n                        <\/svg>\n                    <\/button>\n                    <div class=\"filter-content\" id=\"type-filters\">\n                        <div class=\"checkbox-filters\">\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"type\" value=\"article\">\n                                        <span>Article<\/span>\n                                    <\/label>\n                                                                <label>\n                                        <input type=\"checkbox\" name=\"type\" value=\"pdf\">\n                                        <span>PDF<\/span>\n                                    <\/label>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"resources-main\">\n            <div class=\"resources-grid\" id=\"resources-grid\">\n                <!-- Resources will be loaded via AJAX -->\n            <\/div>\n\n            <div class=\"pagination\" id=\"pagination-container\">\n                <!-- Pagination will be loaded via AJAX -->\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    var resourcesFiltersStrings = {\"loading\":\"Loading @fr...\",\"results\":\"R\\u00e9sultats\",\"errorLoading\":\"Error loading resources.\",\"searchLabel\":\"Search @fr:\",\"showFilters\":\"Show Filters @fr\",\"hideFilters\":\"Masquer les filtres\"};\n    \n    jQuery(document).ready(function($) {\n        let currentPage = 1;\n        const resourcesPerPage = 9;\n\n        \/\/ Initialize AJAX URL\n        const ajaxUrl = 'https:\/\/recoverinitiative.ca\/wp-admin\/admin-ajax.php';\n\n        \/\/ URL parameter management functions\n        function updateURL() {\n            const searchTerm = $('#resources-search').val();\n            const selectedTopics = $('input[name=\"topic\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedGeo = $('input[name=\"geographic\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedType = $('input[name=\"type\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedCategory = $('.category-tab.active').data('category');\n            const sortBy = $('input[name=\"sort\"]:checked').val();\n\n            const params = new URLSearchParams();\n            \n            if (searchTerm) {\n                params.set('search', searchTerm);\n            }\n            \n            if (selectedTopics.length > 0) {\n                params.set('topics', selectedTopics.join(','));\n            }\n            \n            if (selectedGeo.length > 0) {\n                params.set('geographic', selectedGeo.join(','));\n            }\n            \n            if (selectedType.length > 0) {\n                params.set('type', selectedType.join(','));\n            }\n            \n            if (selectedCategory && selectedCategory !== 'all') {\n                params.set('category', selectedCategory);\n            }\n            \n            if (sortBy && sortBy !== 'newest') {\n                params.set('sort', sortBy);\n            }\n            \n            if (currentPage > 1) {\n                params.set('page', currentPage);\n            }\n\n            const newUrl = params.toString() ? \n                window.location.pathname + '?' + params.toString() : \n                window.location.pathname;\n                \n            window.history.replaceState({}, '', newUrl);\n        }\n\n        function initializeFromURL() {\n            const urlParams = new URLSearchParams(window.location.search);\n            \n            \/\/ Set search term\n            const searchTerm = urlParams.get('search');\n            if (searchTerm) {\n                $('#resources-search').val(searchTerm);\n            }\n            \n            \/\/ Set topic filters\n            const topics = urlParams.get('topics');\n            if (topics) {\n                const topicArray = topics.split(',');\n                topicArray.forEach(topic => {\n                    $(`input[name=\"topic\"][value=\"${topic}\"]`).prop('checked', true);\n                });\n            }\n            \n            \/\/ Set geographic filters\n            const geographic = urlParams.get('geographic');\n            if (geographic) {\n                const geoArray = geographic.split(',');\n                geoArray.forEach(geo => {\n                    $(`input[name=\"geographic\"][value=\"${geo}\"]`).prop('checked', true);\n                });\n            }\n            \n            \/\/ Set type filters\n            const type = urlParams.get('type');\n            if (type) {\n                const typeArray = type.split(',');\n                typeArray.forEach(typeSlug => {\n                    $(`input[name=\"type\"][value=\"${typeSlug}\"]`).prop('checked', true);\n                });\n            }\n            \n            \/\/ Set category tab\n            const category = urlParams.get('category');\n            if (category) {\n                $('.category-tab').removeClass('active');\n                $(`.category-tab[data-category=\"${category}\"]`).addClass('active');\n            }\n            \n            \/\/ Set sort option\n            const sort = urlParams.get('sort');\n            if (sort) {\n                $(`input[name=\"sort\"][value=\"${sort}\"]`).prop('checked', true);\n            }\n            \n            \/\/ Set current page\n            const page = urlParams.get('page');\n            if (page) {\n                currentPage = parseInt(page);\n            }\n        }\n\n        \/\/ Category tab click handler\n        $('.category-tab').on('click', function() {\n            $('.category-tab').removeClass('active');\n            $(this).addClass('active');\n            loadResources(1, true);\n        });\n\n        \/\/ Filter toggle functionality\n        $('.filter-toggle').on('click', function() {\n            const target = $(this).data('target');\n            const content = $('#' + target);\n            const chevron = $(this).find('.chevron');\n\n            content.slideToggle(300);\n            chevron.toggleClass('rotated');\n        });\n\n        \/\/ Load resources via AJAX\n        function loadResources(page = 1, resetPage = false) {\n            if (resetPage) {\n                currentPage = 1;\n                page = 1;\n            } else {\n                currentPage = page;\n            }\n\n            const searchTerm = $('#resources-search').val();\n            const selectedTopics = $('input[name=\"topic\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedGeo = $('input[name=\"geographic\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedType = $('input[name=\"type\"]:checked').map(function() {\n                return this.value;\n            }).get();\n            const selectedCategory = $('.category-tab.active').data('category');\n            const sortBy = $('input[name=\"sort\"]:checked').val();\n            const currentLang = 'fr';\n\n            \/\/ Update URL parameters\n            updateURL();\n\n            \/\/ Show loading state\n            $('#resources-grid').addClass('loading');\n            $('.results-count').text(resourcesFiltersStrings.loading);\n\n            \/\/ Prepare category for AJAX (send as array if not 'all')\n            const categoryData = (selectedCategory && selectedCategory !== 'all') ? [selectedCategory] : [];\n\n            $.ajax({\n                url: ajaxUrl,\n                type: 'POST',\n                data: {\n                    action: 'filter_resources',\n                    search: searchTerm,\n                    topics: selectedTopics,\n                    geographic: selectedGeo,\n                    type: selectedType,\n                    category: categoryData,\n                    sort: sortBy,\n                    page: page,\n                    posts_per_page: resourcesPerPage,\n                    lang: currentLang,\n                    nonce: 'c8e6231509'\n                },\n                success: function(response) {\n                    if (response.success) {\n                        $('#resources-grid').html(response.data.html);\n                        $('#pagination-container').html(response.data.pagination);\n                        $('.results-count').text(response.data.total + ' ' + resourcesFiltersStrings.results);\n\n                        \/\/ Update applied filters\n                        updateAppliedFilters();\n                    } else {\n                        $('#resources-grid').html('<div class=\"no-resources\"><p>' + resourcesFiltersStrings.errorLoading + '<\/p><\/div>');\n                    }\n\n                    $('#resources-grid').removeClass('loading');\n                },\n                error: function() {\n                    $('#resources-grid').html('<div class=\"no-resources\"><p>' + resourcesFiltersStrings.errorLoading + '<\/p><\/div>');\n                    $('#resources-grid').removeClass('loading');\n                }\n            });\n        }\n\n        function updateAppliedFilters() {\n            const appliedFilters = $('.applied-filters-list');\n            const appliedFiltersContainer = $('#applied-filters');\n            appliedFilters.empty();\n\n            let hasFilters = false;\n\n            \/\/ Add search term\n            const searchTerm = $('#resources-search').val();\n            if (searchTerm) {\n                appliedFilters.append(\n                    `<span class=\"applied-filter\">${resourcesFiltersStrings.searchLabel} ${searchTerm} \n                <button class=\"remove-filter\" data-type=\"search\">\u00d7<\/button><\/span>`\n                );\n                hasFilters = true;\n            }\n\n            \/\/ Add selected filters\n            $('input[type=\"checkbox\"]:checked').each(function() {\n                const label = $(this).next('span').text();\n                const type = $(this).attr('name');\n                const value = $(this).val();\n                appliedFilters.append(\n                    `<span class=\"applied-filter\">${label} \n                <button class=\"remove-filter\" data-type=\"${type}\" data-value=\"${value}\">\u00d7<\/button><\/span>`\n                );\n                hasFilters = true;\n            });\n\n            \/\/ Show\/hide the entire applied filters section\n            appliedFiltersContainer.toggle(hasFilters);\n            $('.clear-all-btn').toggle(hasFilters);\n        }\n\n        \/\/ Event listeners\n        $('#resources-search').on('input', function() {\n            clearTimeout(window.searchTimer);\n            window.searchTimer = setTimeout(function() {\n                loadResources(1, true);\n            }, 500);\n        });\n\n        $('input[type=\"checkbox\"], input[type=\"radio\"]').on('change', function() {\n            loadResources(1, true);\n        });\n\n        \/\/ Pagination event handler (delegated for dynamically loaded content)\n        $(document).on('click', '.page-btn, .page-next, .page-prev', function(e) {\n            e.preventDefault();\n\n            if ($(this).hasClass('active') || $(this).hasClass('disabled')) {\n                return;\n            }\n\n            let page;\n            if ($(this).hasClass('page-next')) {\n                page = currentPage + 1;\n            } else if ($(this).hasClass('page-prev')) {\n                page = currentPage - 1;\n            } else {\n                page = parseInt($(this).text());\n            }\n\n            loadResources(page);\n\n            \/\/ Scroll to top of results\n            $('html, body').animate({\n                scrollTop: $('.resources-main').offset().top - 100\n            }, 500);\n        });\n\n        \/\/ Remove filter\n        $(document).on('click', '.remove-filter', function() {\n            const type = $(this).data('type');\n            const value = $(this).data('value');\n\n            if (type === 'search') {\n                $('#resources-search').val('');\n            } else {\n                $(`input[name=\"${type}\"][value=\"${value}\"]`).prop('checked', false);\n            }\n\n            loadResources(1, true);\n        });\n\n        \/\/ Clear all filters\n        $('.clear-all-btn').on('click', function() {\n            $('#resources-search').val('');\n            $('input[type=\"checkbox\"]').prop('checked', false);\n            loadResources(1, true);\n        });\n\n        \/\/ Responsive filter toggle functionality\n        function initializeFilterToggle() {\n            const isMobile = window.innerWidth < 769;\n            const $filterButton = $('#filter-button');\n            const $sidebar = $('.resources-sidebar');\n            const $mobileClose = $('.mobile-close-filters');\n            \n            if (isMobile) {\n                \/\/ Mobile: Hide filters by default, show button\n                $sidebar.removeClass('show-filters hide-filters');\n                $filterButton.text(resourcesFiltersStrings.showFilters).show();\n                $mobileClose.show();\n            } else {\n                \/\/ Desktop: Show filters by default, hide button initially\n                $sidebar.removeClass('show-filters hide-filters');\n                $filterButton.text(resourcesFiltersStrings.hideFilters).hide();\n                $mobileClose.hide();\n            }\n        }\n\n        function updateFilterButtonForDesktop() {\n            const isMobile = window.innerWidth < 769;\n            const $filterButton = $('#filter-button');\n            const $sidebar = $('.resources-sidebar');\n            \n            if (!isMobile) {\n                \/\/ Desktop: Show the button and manage filter visibility\n                $filterButton.show();\n                \n                if ($sidebar.hasClass('hide-filters')) {\n                    $filterButton.text(resourcesFiltersStrings.showFilters);\n                } else {\n                    $filterButton.text(resourcesFiltersStrings.hideFilters);\n                }\n            }\n        }\n\n        \/\/ Filter button click handler\n        $('#filter-button').on('click', function() {\n            const isMobile = window.innerWidth < 769;\n            const $sidebar = $('.resources-sidebar');\n            const $main = $('.resources-main');\n            const $button = $(this);\n            \n            if (isMobile) {\n                \/\/ Mobile: Toggle overlay sidebar\n                if ($sidebar.hasClass('show-filters')) {\n                    $sidebar.removeClass('show-filters');\n                    $button.text(resourcesFiltersStrings.showFilters);\n                    \/\/ $('body').removeClass('no-scroll');\n                    $main.removeClass('hide');\n                } else {\n                    $sidebar.addClass('show-filters');\n                    $button.text(resourcesFiltersStrings.hideFilters);\n                    \/\/ $('body').addClass('no-scroll');\n                    $main.addClass('hide');\n                }\n            } else {\n                $main.removeClass('hide');\n                \/\/ Desktop: Toggle sidebar visibility\n                if ($sidebar.hasClass('hide-filters')) {\n                    $sidebar.removeClass('hide-filters');\n                    $main.removeClass('hide-filters');\n                    $button.text(resourcesFiltersStrings.hideFilters);\n                } else {\n                    $sidebar.addClass('hide-filters');\n                    $main.addClass('hide-filters');\n                    $button.text(resourcesFiltersStrings.showFilters);\n                }\n            }\n        });\n\n        \/\/ Mobile close button handler\n        $('.mobile-close-filters').on('click', function() {\n            $('.resources-sidebar').removeClass('show-filters');\n            $('#filter-button').text(resourcesFiltersStrings.showFilters);\n            $('body').removeClass('no-scroll');\n        });\n\n        \/\/ Close mobile filters when clicking overlay\n        $('.resources-sidebar').on('click', function(e) {\n            if (e.target === this && window.innerWidth < 769) {\n                $(this).removeClass('show-filters');\n                $('#filter-button').text(resourcesFiltersStrings.showFilters);\n                $('body').removeClass('no-scroll');\n            }\n        });\n\n        \/\/ Handle window resize\n        $(window).on('resize', function() {\n            const wasMobile = $(this).data('wasMobile') || false;\n            const isMobile = window.innerWidth < 769;\n            \n            \/\/ Only reinitialize if crossing the breakpoint\n            if (wasMobile !== isMobile) {\n                initializeFilterToggle();\n                if (!isMobile) {\n                    updateFilterButtonForDesktop();\n                    $('body').removeClass('no-scroll');\n                }\n                $(this).data('wasMobile', isMobile);\n            }\n\n            const $main = $('.resources-main');\n            const $sidebar = $('.resources-sidebar');\n            $main.removeClass('hide');\n            $main.removeClass('hide-filters');\n            $sidebar.removeClass('show-filters');\n            $sidebar.removeClass('hide-filters');\n        });\n\n        \/\/ Initialize on load\n        initializeFilterToggle();\n        updateFilterButtonForDesktop();\n        \n        \/\/ Store initial state\n        $(window).data('wasMobile', window.innerWidth < 769);\n\n        \/\/ Initialize from URL parameters and load resources\n        initializeFromURL();\n        loadResources(currentPage);\n    });\n<\/script><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-1542","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Resources - ReCover Initiative<\/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:\/\/recoverinitiative.ca\/fr\/resources\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Resources\" \/>\n<meta property=\"og:url\" content=\"https:\/\/recoverinitiative.ca\/fr\/resources\/\" \/>\n<meta property=\"og:site_name\" content=\"ReCover Initiative\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TheReCoverInitiativeCanada\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-11T20:46:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/resources\\\/\",\"url\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/resources\\\/\",\"name\":\"Resources - ReCover Initiative\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#website\"},\"datePublished\":\"2025-11-21T20:08:00+00:00\",\"dateModified\":\"2025-12-11T20:46:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/resources\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/resources\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/resources\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resources\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/\",\"name\":\"ReCover Initiative\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#organization\",\"name\":\"ReCover Initiative\",\"url\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/recoverinitiative.ca\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/Recover-Logo-Horizontal.svg\",\"contentUrl\":\"https:\\\/\\\/recoverinitiative.ca\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/Recover-Logo-Horizontal.svg\",\"width\":150,\"height\":34,\"caption\":\"ReCover Initiative\"},\"image\":{\"@id\":\"https:\\\/\\\/recoverinitiative.ca\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/TheReCoverInitiativeCanada\",\"https:\\\/\\\/www.instagram.com\\\/recover_canada\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/the-recover-initiative\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Resources - ReCover Initiative","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:\/\/recoverinitiative.ca\/fr\/resources\/","og_locale":"fr_FR","og_type":"article","og_title":"Resources","og_url":"https:\/\/recoverinitiative.ca\/fr\/resources\/","og_site_name":"ReCover Initiative","article_publisher":"https:\/\/www.facebook.com\/TheReCoverInitiativeCanada","article_modified_time":"2025-12-11T20:46:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/recoverinitiative.ca\/fr\/resources\/","url":"https:\/\/recoverinitiative.ca\/fr\/resources\/","name":"Resources - ReCover Initiative","isPartOf":{"@id":"https:\/\/recoverinitiative.ca\/fr\/#website"},"datePublished":"2025-11-21T20:08:00+00:00","dateModified":"2025-12-11T20:46:16+00:00","breadcrumb":{"@id":"https:\/\/recoverinitiative.ca\/fr\/resources\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/recoverinitiative.ca\/fr\/resources\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/recoverinitiative.ca\/fr\/resources\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/recoverinitiative.ca\/fr\/"},{"@type":"ListItem","position":2,"name":"Resources"}]},{"@type":"WebSite","@id":"https:\/\/recoverinitiative.ca\/fr\/#website","url":"https:\/\/recoverinitiative.ca\/fr\/","name":"ReCover Initiative","description":"","publisher":{"@id":"https:\/\/recoverinitiative.ca\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/recoverinitiative.ca\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/recoverinitiative.ca\/fr\/#organization","name":"ReCover Initiative","url":"https:\/\/recoverinitiative.ca\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/recoverinitiative.ca\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/recoverinitiative.ca\/wp-content\/uploads\/2025\/11\/Recover-Logo-Horizontal.svg","contentUrl":"https:\/\/recoverinitiative.ca\/wp-content\/uploads\/2025\/11\/Recover-Logo-Horizontal.svg","width":150,"height":34,"caption":"ReCover Initiative"},"image":{"@id":"https:\/\/recoverinitiative.ca\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TheReCoverInitiativeCanada","https:\/\/www.instagram.com\/recover_canada","https:\/\/www.linkedin.com\/company\/the-recover-initiative\/"]}]}},"_links":{"self":[{"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/pages\/1542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/comments?post=1542"}],"version-history":[{"count":1,"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/pages\/1542\/revisions"}],"predecessor-version":[{"id":1543,"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/pages\/1542\/revisions\/1543"}],"wp:attachment":[{"href":"https:\/\/recoverinitiative.ca\/fr\/wp-json\/wp\/v2\/media?parent=1542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}