{"id":2533,"date":"2021-05-16T09:05:21","date_gmt":"2021-05-16T07:05:21","guid":{"rendered":"https:\/\/fdp-norderney.de\/local-elections-of-recent-years\/"},"modified":"2026-08-12T10:34:28","modified_gmt":"2026-08-12T08:34:28","slug":"local-elections-of-recent-years","status":"publish","type":"page","link":"https:\/\/fdp-norderney.de\/en\/local-elections-of-recent-years\/","title":{"rendered":"Local elections of recent years"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module header\"><div class=\"et_pb_text_inner\"><h1>Election results<\/h1>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module header\"><div class=\"et_pb_text_inner\"><h3>Local elections 2011\u20132021<\/h3>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_block_section\">\n<div class=\"et_pb_row_2 et_pb_row et_block_row\">\n<div class=\"et_pb_column_2 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\">\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module\"><div class=\"et_pb_text_inner\"><h3>Norderney local elections<\/h3>\n<p>Below, we present a detailed overview of the local elections on Norderney in 2011, 2016, and 2021.<\/p>\n<p>On Norderney, the <strong>SPD has dominated since World War II, achieving its best result in 1972 with 66.9%<\/strong>. Since 1996, however, it has lost its absolute majority and has not been able to secure more than a maximum of 34% of the votes on Norderney since 2006. <\/p>\n<p>For several years, there have been <strong>Freie W\u00e4hler<\/strong> on the island, who consistently receive between 10% and 20% of the votes. The island's <strong>CDU<\/strong> has consistently achieved around 20% in the last three local elections. In 2006, the <strong>Liberals<\/strong> regained a seat for the first time in decades with 7.3%. In 2011, they also secured a seat with 8%. In 2016, they achieved their best result since World War II with 21% of the votes, which meant four seats for the Liberals. In the most recent election in 2021, the <strong>FDP<\/strong> secured two seats with 12.5% of the votes.     <\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_3 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Election results of past years<\/h2><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_4 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- Chart.js Bibliothek laden --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script><!-- FDP Design Styling (CSS) f\u00fcr Divi --><style>.wahl-container-21 {\n        width: 100%;\n        background-color: transparent; \n        padding: 20px 0;\n        color: #333;\n        font-family: inherit;\n    }\n    \n    \/* Steuerungselemente *\/\n    .wahl-controls-21 {\n        display: flex;\n        justify-content: center;\n        gap: 15px;\n        margin-bottom: 25px;\n        flex-wrap: wrap; \n    }\n    .wahl-controls-21 label {\n        font-weight: 600;\n        cursor: pointer;\n        background: #f4f4f4;\n        color: #333;\n        padding: 10px 20px;\n        border-radius: 4px;\n        border: 2px solid transparent;\n        transition: all 0.3s ease;\n    }\n    .wahl-controls-21 label:hover {\n        background: #E5007D; \/* FDP Magenta *\/\n        color: #fff;\n    }\n    .wahl-controls-21 input[type=\"radio\"] {\n        display: none; \n    }\n    .wahl-controls-21 label.active {\n        background: #E5007D; \n        color: #fff;\n        border-color: #E5007D;\n        box-shadow: 0 4px 6px rgba(229, 0, 125, 0.2);\n    }\n\n    .wahl-chart-wrapper-21 {\n        position: relative;\n        height: 450px; \n        width: 100%;\n    }\n\n    \/* Tabellen-Styling *\/\n    .wahl-table-wrapper-21 {\n        overflow-x: auto;\n        margin-top: 35px;\n    }\n    .wahl-table-21 {\n        width: 100%;\n        min-width: 500px;\n        border-collapse: collapse;\n        background-color: transparent;\n        box-shadow: 0 2px 15px rgba(0,0,0,0.05);\n    }\n    .wahl-table-21 th, .wahl-table-21 td {\n        border-bottom: 1px solid #eee;\n        padding: 15px 12px;\n        text-align: center;\n    }\n    .wahl-table-21 th {\n        background-color: #f9f9f9;\n        font-weight: 700;\n        text-transform: uppercase;\n        font-size: 0.85em;\n        letter-spacing: 0.5px;\n    }\n    .wahl-table-21 tr:hover {\n        background-color: #fcfcfc;\n    }\n\n    \/* FDP Highlight-Zeile *\/\n    .row-fdp-21 {\n        background-color: rgba(255, 237, 0, 0.15) !important; \n        border-left: 4px solid #FFCC00; \n    }\n\n    \/* Einheitliche Parteifarben im Text *\/\n    .party-spd-21 { color: #E3000F !important; font-weight: bold; }\n    .party-cdu-21 { color: #000000 !important; font-weight: bold; }\n    .party-gruene-21 { color: #1AA037 !important; font-weight: bold; }\n    .party-fwn-21 { color: #FF6600 !important; font-weight: bold; } \/* Orange *\/\n    .party-fdp-21 { color: #D4A000 !important; font-weight: bold; } \/* Dunkelgelb f\u00fcr Lesbarkeit *\/\n    .party-linke-21 { color: #800080 !important; font-weight: bold; } \/* Lila *\/\n<\/style><!-- HTML Struktur --><div class=\"wahl-container-21\"><div class=\"wahl-controls-21\" id=\"wahl-radio-group-2021\"><label class=\"active\"><input type=\"radio\" name=\"viewType2021\" value=\"percent\" checked> Prozent (%)\n        <\/label><label><input type=\"radio\" name=\"viewType2021\" value=\"votes\"> Stimmen\n        <\/label><label><input type=\"radio\" name=\"viewType2021\" value=\"seats\"> Sitze\n        <\/label><\/div><div class=\"wahl-chart-wrapper-21\"><canvas id=\"wahlChartDivi2021\"><\/canvas><\/div><!-- Container f\u00fcr dynamische Tabelle --><div id=\"wahl-table-container-2021\"><\/div><\/div><!-- JavaScript Logik --><script>(function() {\n    function initWahlModul2021() {\n        if (typeof Chart === 'undefined') {\n            setTimeout(initWahlModul2021, 100);\n            return;\n        }\n\n        const canvas = document.getElementById('wahlChartDivi2021');\n        if (!canvas) return; \n        const ctxDivi = canvas.getContext('2d');\n\n        const data2021 = {\n            labels: ['SPD', 'CDU', 'GR\u00dcNE', 'FWN', 'FDP', 'DIE LINKE.'],\n            partyClasses: ['party-spd-21', 'party-cdu-21', 'party-gruene-21', 'party-fwn-21', 'party-fdp-21', 'party-linke-21'],\n            percent: [31.01, 22.43, 18.14, 14.51, 12.53, 1.38],\n            votes: [2846, 2059, 1665, 1332, 1150, 127],\n            seats: [6, 4, 3, 3, 2, 0],\n            colors: [\n                'rgba(227, 0, 15, 0.85)',    \/\/ SPD Rot\n                'rgba(30, 30, 30, 0.85)',    \/\/ CDU Schwarz\n                'rgba(26, 160, 55, 0.85)',   \/\/ GR\u00dcNE Gr\u00fcn\n                'rgba(255, 102, 0, 0.85)',   \/\/ FWN Orange\n                'rgba(255, 204, 0, 0.95)',   \/\/ FDP Gelb\n                'rgba(128, 0, 128, 0.85)'    \/\/ LINKE Lila\n            ],\n            borders: [\n                'rgba(227, 0, 15, 1)',\n                'rgba(30, 30, 30, 1)',\n                'rgba(26, 160, 55, 1)',\n                'rgba(255, 102, 0, 1)',\n                'rgba(229, 0, 125, 1)',      \/\/ FDP Magenta Rahmen\n                'rgba(128, 0, 128, 1)'\n            ]\n        };\n\n        const diviChart2021 = new Chart(ctxDivi, {\n            type: 'bar',\n            data: {\n                labels: data2021.labels,\n                datasets: [{\n                    label: 'Prozent (%)',\n                    data: data2021.percent,\n                    backgroundColor: data2021.colors,\n                    borderColor: data2021.borders,\n                    borderWidth: 2 \n                }]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    y: {\n                        beginAtZero: true,\n                        title: {\n                            display: true,\n                            text: 'Prozent (%)'\n                        }\n                    }\n                },\n                plugins: {\n                    legend: { display: false },\n                    tooltip: {\n                        callbacks: {\n                            label: function(context) {\n                                return context.raw + ' %';\n                            }\n                        }\n                    }\n                }\n            }\n        });\n\n        function renderTable2021(viewType) {\n            const tableContainer = document.getElementById('wahl-table-container-2021');\n            if (!tableContainer) return;\n\n            let tableHTML = `\n                <div class=\"wahl-table-wrapper-21\"><table class=\"wahl-table-21\"><thead><tr><th style=\"text-align: left;\">Partei<\/th><th>Stimmen<\/th><th>Prozent (%)<\/th><th>Sitze<\/th><\/tr><\/thead><tbody>`;\n\n            for(let i = 0; i < data2021.labels.length; i++) {\n                const votes = data2021.votes[i].toLocaleString('de-DE');\n                const percent = data2021.percent[i].toString().replace('.', ',') + ' %';\n                const seats = data2021.seats[i] === 0 ? '-' : data2021.seats[i];\n                const rowClass = i === 4 ? 'row-fdp-21' : ''; \n\n                tableHTML += `\n                    <tr class=\"${rowClass}\"><td style=\"text-align: left;\" class=\"${data2021.partyClasses[i]}\">${data2021.labels[i]}<\/td><td>${votes}<\/td><td>${percent}<\/td><td>${seats}<\/td><\/tr>`;\n            }\n\n            tableHTML += `<\/tbody><\/table><\/div>`;\n            tableContainer.innerHTML = tableHTML;\n        }\n\n        function updateView2021() {\n            const activeRadio = document.querySelector('input[name=\"viewType2021\"]:checked');\n            if (!activeRadio) return;\n            const viewType = activeRadio.value;\n\n            let datasetData, label, yAxisTitle, tooltipSuffix;\n\n            if (viewType === 'percent') {\n                datasetData = data2021.percent;\n                label = 'Prozent (%)';\n                yAxisTitle = 'Prozent (%)';\n                tooltipSuffix = ' %';\n            } else if (viewType === 'votes') {\n                datasetData = data2021.votes;\n                label = 'Stimmen';\n                yAxisTitle = 'Anzahl Stimmen';\n                tooltipSuffix = ' Stimmen';\n            } else if (viewType === 'seats') {\n                datasetData = data2021.seats;\n                label = 'Sitze';\n                yAxisTitle = 'Anzahl Sitze (Gesamt: 18)';\n                tooltipSuffix = ' Sitze';\n            }\n\n            diviChart2021.data.datasets[0].data = datasetData;\n            diviChart2021.data.datasets[0].label = label;\n            diviChart2021.options.scales.y.title.text = yAxisTitle;\n            \n            if (viewType === 'seats') {\n                diviChart2021.options.scales.y.ticks.stepSize = 1;\n            } else {\n                delete diviChart2021.options.scales.y.ticks.stepSize;\n            }\n\n            diviChart2021.options.plugins.tooltip.callbacks.label = function(context) {\n                return context.raw + tooltipSuffix;\n            };\n\n            diviChart2021.update();\n        }\n\n        const radioInputs = document.querySelectorAll('input[name=\"viewType2021\"]');\n        radioInputs.forEach(input => {\n            input.addEventListener('change', function() {\n                const labelsList = document.querySelectorAll('#wahl-radio-group-2021 label');\n                labelsList.forEach(lbl => lbl.classList.remove('active'));\n                this.parentElement.classList.add('active');\n                updateView2021();\n            });\n        });\n\n        \/\/ Einmaliges Rendern der Tabelle beim Start\n        renderTable2021('percent');\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initWahlModul2021);\n    } else {\n        initWahlModul2021();\n    }\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_5 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_heading_1 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h2 class=\"et_pb_module_header\">Comparison of previous years<\/h2><\/div><\/div>\n\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- Chart.js Bibliothek laden --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script><!-- Styling (CSS) --><style>.wahl-container {\n        width: 100%;\n        background-color: transparent; \n        padding: 20px 0;\n        color: #333;\n        font-family: inherit;\n    }\n    \n    \/* Steuerungselemente (Buttons) im FDP Magenta Design *\/\n    .wahl-controls {\n        display: flex;\n        justify-content: center;\n        gap: 15px;\n        margin-bottom: 15px;\n        flex-wrap: wrap; \n    }\n    .wahl-controls label {\n        font-weight: 600;\n        cursor: pointer;\n        background: #f4f4f4;\n        color: #333;\n        padding: 10px 20px;\n        border-radius: 4px;\n        border: 2px solid transparent;\n        transition: all 0.3s ease;\n    }\n    .wahl-controls label:hover {\n        background: #E5007D; \n        color: #fff;\n    }\n    .wahl-controls input[type=\"radio\"] {\n        display: none; \n    }\n    .wahl-controls label.active {\n        background: #E5007D; \n        color: #fff;\n        border-color: #E5007D;\n        box-shadow: 0 4px 6px rgba(229, 0, 125, 0.2);\n    }\n\n    \/* Legende f\u00fcr die Jahre (angepasst auf FDP Design) *\/\n    .wahl-legend {\n        display: flex;\n        justify-content: center;\n        gap: 20px;\n        margin-bottom: 25px;\n        font-size: 0.9em;\n        color: #555;\n    }\n    .legend-item {\n        display: flex;\n        align-items: center;\n        gap: 6px;\n    }\n    .legend-color {\n        width: 16px;\n        height: 16px;\n        border-radius: 3px;\n        background-color: #FFCC00; \/* FDP Gelb als Basis f\u00fcr die Legende *\/\n    }\n    .color-11 { opacity: 0.35; }\n    .color-16 { opacity: 0.65; }\n    .color-21 { opacity: 1.0; border: 2px solid #E5007D; } \/* Magenta Rand f\u00fcr das aktuelle Jahr *\/\n\n    .wahl-chart-wrapper {\n        position: relative;\n        height: 450px; \n        width: 100%;\n    }\n\n    \/* Tabellen-Styling *\/\n    .wahl-table-wrapper {\n        overflow-x: auto;\n        margin-top: 35px;\n    }\n    .wahl-table {\n        width: 100%;\n        min-width: 600px;\n        border-collapse: collapse;\n        background-color: transparent;\n        box-shadow: 0 2px 15px rgba(0,0,0,0.05);\n    }\n    .wahl-table th, .wahl-table td {\n        border-bottom: 1px solid #eee;\n        padding: 12px 10px;\n        text-align: center;\n    }\n    .wahl-table th {\n        background-color: #f9f9f9;\n        font-weight: 700;\n        text-transform: uppercase;\n        font-size: 0.85em;\n        letter-spacing: 0.5px;\n    }\n    .wahl-table tr:hover {\n        background-color: #fcfcfc;\n    }\n\n    \/* FDP Highlight-Zeile *\/\n    .row-fdp {\n        background-color: rgba(255, 237, 0, 0.15) !important; \n        border-left: 4px solid #FFCC00; \n    }\n\n    \/* Parteifarben im Text *\/\n    .party-spd { color: #E3000F !important; font-weight: bold; }\n    .party-cdu { color: #000000 !important; font-weight: bold; }\n    .party-gruene { color: #1AA037 !important; font-weight: bold; }\n    .party-fwn { color: #FF6600 !important; font-weight: bold; } \/* Orange *\/\n    .party-fdp { color: #D4A000 !important; font-weight: bold; } \/* Gelb (Dunkelgelb f\u00fcr Lesbarkeit) *\/\n    .party-linke { color: #800080 !important; font-weight: bold; } \/* Lila *\/\n\n    \/* Trend Farben *\/\n    .trend-pos { color: #1AA037; font-weight: bold; } \n    .trend-neg { color: #E3000F; font-weight: bold; } \n    .trend-neu { color: #888; }\n<\/style><!-- HTML Struktur --><div class=\"wahl-container\"><div class=\"wahl-controls\" id=\"wahl-radio-group-historie\"><label class=\"active\"><input type=\"radio\" name=\"viewTypeHistorie\" value=\"percent\" checked> Prozent (%)\n        <\/label><label><input type=\"radio\" name=\"viewTypeHistorie\" value=\"votes\"> Stimmen\n        <\/label><label><input type=\"radio\" name=\"viewTypeHistorie\" value=\"seats\"> Sitze\n        <\/label><\/div><div class=\"wahl-legend\"><div class=\"legend-item\"><div class=\"legend-color color-11\"><\/div> 2011<\/div><div class=\"legend-item\"><div class=\"legend-color color-16\"><\/div> 2016<\/div><div class=\"legend-item\"><div class=\"legend-color color-21\"><\/div> 2021<\/div><\/div><div class=\"wahl-chart-wrapper\"><canvas id=\"wahlChartDiviHistorie\"><\/canvas><\/div><!-- Divi-sicherer Container f\u00fcr die Tabelle --><div id=\"wahl-table-container\"><\/div><\/div><!-- JavaScript Logik --><script>(function() {\n    function initWahlModulHistorie() {\n        if (typeof Chart === 'undefined') {\n            setTimeout(initWahlModulHistorie, 100);\n            return;\n        }\n\n        const canvas = document.getElementById('wahlChartDiviHistorie');\n        if (!canvas) return;\n\n        const labels = ['SPD', 'CDU', 'GR\u00dcNE', 'FWN', 'FDP', 'DIE LINKE.'];\n        const partyClasses = ['party-spd', 'party-cdu', 'party-gruene', 'party-fwn', 'party-fdp', 'party-linke'];\n        \n        const wahlData = {\n            '2011': {\n                percent: [34, 18, 21, 18, 8, 0],\n                votes: [3392, 1814, 2135, 1862, 801, 0],\n                seats: [6, 3, 3, 3, 1, 0]\n            },\n            '2016': {\n                percent: [31, 19, 13, 12, 21, 0],\n                votes: [2798, 1713, 1161, 1194, 1876, 0],\n                seats: [5, 3, 2, 2, 4, 0]\n            },\n            '2021': {\n                percent: [31.01, 22.43, 18.14, 14.51, 12.53, 1.38],\n                votes: [2846, 2059, 1665, 1332, 1150, 127],\n                seats: [6, 4, 3, 3, 2, 0]\n            }\n        };\n\n        const baseColors = [\n            '227, 0, 15',    \/\/ SPD\n            '30, 30, 30',    \/\/ CDU\n            '26, 160, 55',   \/\/ GR\u00dcNE\n            '255, 102, 0',   \/\/ FWN\n            '255, 204, 0',   \/\/ FDP\n            '128, 0, 128'    \/\/ LINKE\n        ];\n\n        const colors2011 = baseColors.map(c => `rgba(${c}, 0.35)`);\n        const colors2016 = baseColors.map(c => `rgba(${c}, 0.65)`);\n        const colors2021 = baseColors.map(c => `rgba(${c}, 0.95)`);\n\n        const borders2011 = baseColors.map(c => `rgba(${c}, 0.4)`);\n        const borders2016 = baseColors.map(c => `rgba(${c}, 0.7)`);\n        \n        \/\/ Besondere Hervorhebung f\u00fcr 2021 (FDP bekommt Magenta Rand)\n        const borders2021 = [\n            'rgba(227, 0, 15, 1)',\n            'rgba(30, 30, 30, 1)',\n            'rgba(26, 160, 55, 1)',\n            'rgba(255, 102, 0, 1)',\n            'rgba(229, 0, 125, 1)', \/\/ Magenta Rahmen FDP\n            'rgba(128, 0, 128, 1)'\n        ];\n\n        const ctxDivi = canvas.getContext('2d');\n        \n        const diviChartHistorie = new Chart(ctxDivi, {\n            type: 'bar',\n            data: {\n                labels: labels,\n                datasets: [\n                    {\n                        label: '2011',\n                        data: wahlData['2011'].percent,\n                        backgroundColor: colors2011,\n                        borderColor: borders2011,\n                        borderWidth: 1\n                    },\n                    {\n                        label: '2016',\n                        data: wahlData['2016'].percent,\n                        backgroundColor: colors2016,\n                        borderColor: borders2016,\n                        borderWidth: 1\n                    },\n                    {\n                        label: '2021',\n                        data: wahlData['2021'].percent,\n                        backgroundColor: colors2021,\n                        borderColor: borders2021,\n                        borderWidth: 2\n                    }\n                ]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    y: {\n                        beginAtZero: true,\n                        title: { display: true, text: 'Prozent (%)' }\n                    }\n                },\n                plugins: {\n                    legend: { display: false },\n                    tooltip: {\n                        callbacks: {\n                            label: function(context) {\n                                return context.dataset.label + ': ' + context.raw + ' %';\n                            }\n                        }\n                    }\n                }\n            }\n        });\n\n        \/\/ Ganze Tabelle wird per JavaScript generiert, damit Divi sie nicht l\u00f6scht\n        function renderTable(viewType) {\n            const tableContainer = document.getElementById('wahl-table-container');\n            if (!tableContainer) return;\n            \n            let tableHTML = `\n                <div class=\"wahl-table-wrapper\"><table class=\"wahl-table\"><thead><tr><th style=\"text-align: left;\">Partei<\/th><th>2011<\/th><th>2016<\/th><th>2021<\/th><th>Trend (21 vs 16)<\/th><\/tr><\/thead><tbody>`;\n            \n            for(let i = 0; i < labels.length; i++) {\n                const val11 = wahlData['2011'][viewType][i];\n                const val16 = wahlData['2016'][viewType][i];\n                const val21 = wahlData['2021'][viewType][i];\n                \n                let diff = val21 - val16;\n                let diffStr = '';\n                let trendClass = 'trend-neu';\n\n                if(viewType === 'percent') {\n                    let diffRounded = (val21 - val16).toFixed(2);\n                    if(diffRounded.endsWith('.00')) diffRounded = diffRounded.slice(0, -3);\n                    \n                    if(diff > 0) { diffStr = '+' + diffRounded.replace('.',',') + ' %'; trendClass = 'trend-pos'; }\n                    else if(diff < 0) { diffStr = diffRounded.replace('.',',') + ' %'; trendClass = 'trend-neg'; }\n                    else { diffStr = '\u00b10 %'; }\n                } else {\n                    if(diff > 0) { diffStr = '+' + diff; trendClass = 'trend-pos'; }\n                    else if(diff < 0) { diffStr = diff; trendClass = 'trend-neg'; }\n                    else { diffStr = '\u00b10'; }\n                }\n\n                if(i === 5 && val16 === 0) diffStr = 'Neu'; \n\n                const formatVal = (val) => {\n                    if (val === 0) return '-';\n                    if (viewType === 'percent') return val.toString().replace('.', ',') + ' %';\n                    if (viewType === 'votes') return val.toLocaleString('de-DE');\n                    return val;\n                };\n\n                const rowClass = i === 4 ? 'row-fdp' : ''; \n\n                tableHTML += `\n                    <tr class=\"${rowClass}\"><td style=\"text-align: left;\" class=\"${partyClasses[i]}\">${labels[i]}<\/td><td>${formatVal(val11)}<\/td><td>${formatVal(val16)}<\/td><td><strong>${formatVal(val21)}<\/strong><\/td><td class=\"${trendClass}\">${diffStr}<\/td><\/tr>`;\n            }\n\n            tableHTML += `<\/tbody><\/table><\/div>`;\n            tableContainer.innerHTML = tableHTML;\n        }\n\n        function updateView() {\n            const activeRadio = document.querySelector('input[name=\"viewTypeHistorie\"]:checked');\n            if (!activeRadio) return;\n            const viewType = activeRadio.value;\n\n            let yAxisTitle = 'Prozent (%)';\n            let tooltipSuffix = ' %';\n\n            if (viewType === 'percent') {\n                yAxisTitle = 'Prozent (%)'; tooltipSuffix = ' %';\n            } else if (viewType === 'votes') {\n                yAxisTitle = 'Anzahl Stimmen'; tooltipSuffix = ' Stimmen';\n            } else if (viewType === 'seats') {\n                yAxisTitle = 'Anzahl Sitze'; tooltipSuffix = ' Sitze';\n            }\n\n            diviChartHistorie.data.datasets[0].data = wahlData['2011'][viewType];\n            diviChartHistorie.data.datasets[1].data = wahlData['2016'][viewType];\n            diviChartHistorie.data.datasets[2].data = wahlData['2021'][viewType];\n            \n            diviChartHistorie.options.scales.y.title.text = yAxisTitle;\n            \n            if (viewType === 'seats') {\n                diviChartHistorie.options.scales.y.ticks.stepSize = 1;\n            } else {\n                delete diviChartHistorie.options.scales.y.ticks.stepSize;\n            }\n\n            diviChartHistorie.options.plugins.tooltip.callbacks.label = function(context) {\n                return context.dataset.label + ': ' + context.raw + tooltipSuffix;\n            };\n\n            diviChartHistorie.update();\n            renderTable(viewType);\n        }\n\n        const radioInputs = document.querySelectorAll('input[name=\"viewTypeHistorie\"]');\n        radioInputs.forEach(input => {\n            input.addEventListener('change', function() {\n                const labelsList = document.querySelectorAll('#wahl-radio-group-historie label');\n                labelsList.forEach(lbl => lbl.classList.remove('active'));\n                this.parentElement.classList.add('active');\n                updateView();\n            });\n        });\n\n        renderTable('percent');\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initWahlModulHistorie);\n    } else {\n        initWahlModulHistorie();\n    }\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2533","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/pages\/2533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/comments?post=2533"}],"version-history":[{"count":1,"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/pages\/2533\/revisions"}],"predecessor-version":[{"id":2534,"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/pages\/2533\/revisions\/2534"}],"wp:attachment":[{"href":"https:\/\/fdp-norderney.de\/en\/wp-json\/wp\/v2\/media?parent=2533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}