{"id":12,"date":"2026-07-30T14:53:45","date_gmt":"2026-07-30T14:53:45","guid":{"rendered":"https:\/\/m-mbruiloft.nl\/?page_id=12"},"modified":"2026-07-31T08:13:33","modified_gmt":"2026-07-31T08:13:33","slug":"mm-trouwen","status":"publish","type":"page","link":"https:\/\/m-mbruiloft.nl\/","title":{"rendered":"M&#038;M Bruiloft"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9acdfd5 e-con e-atomic-element e-flexbox-base e-9acdfd5-3015064 \" data-id=\"9acdfd5\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"9acdfd5\" data-e-type=\"e-flexbox\" data-id=\"9acdfd5\">\n    <div class=\"elementor-element elementor-element-cb753cf e-con e-atomic-element e-div-block-base e-cb753cf-d31252a \" data-id=\"cb753cf\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"cb753cf\" data-e-type=\"e-div-block\" data-id=\"cb753cf\">\n    \t\t\t<div class=\"e-dbf75a7-4225753 e-svg-base\" data-interaction-id=\"dbf75a7\" data-e-type=\"widget\" data-id=\"dbf75a7\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" fill=\"currentColor\" style=\"width: 100%; height: 100%; overflow: unset;\" id=\"Laag_1\" viewBox=\"0 0 1080 504\"><defs><style>      .st0 {        fill: none;      }      .st1 {        fill: #fff;      }      .st2 {        clip-path: url(#clippath);      }    <\/style><clipPath id=\"clippath\"><rect class=\"st0\" x=\"9.15\" y=\"10.44\" width=\"1064.56\" height=\"487.9\"><\/rect><\/clipPath><\/defs><g class=\"st2\"><path class=\"st1\" d=\"M439.78,75.11l8.66-28.99c1.97-6.6,2.35-13.37,1.44-20.15-.51-3.75-2.23-7.29-4.66-10.06-10.15-11.61-24.92-2.49-35.67,6.9-10.58,9.23-19.87,19.08-29.16,29.65-27.96,31.8-54.53,64.4-80.06,98.1l-56.88,75.08,7.13-53.37,4.6-37.04c.16-5.98.5-11.65-1.11-17.25-3.21-11.15-13.85-18.16-26.06-16.63-5.98.75-11.61,2.81-16.79,5.87-21.16,12.5-50.16,41.44-66.09,60.35l-40.81,48.4c-25.43,31.33-49.29,63.23-72.98,95.68-7.33,10.05-14.15,19.69-19.99,30.46-1.41,2.6-2.6,5.77-2.09,8.58,1.28,7.11,8.07,11.23,15.18,11.3,6.51.06,10.89-2.6,14.32-7.59,23.76-34.6,48.15-68.58,73.81-102.09,29.05-37.94,62.68-77.93,98.6-109.81,4.39-3.9,8.48-6.91,13.67-10.34-.26,6.53-1.03,11.28-1.95,17.11l-12.93,81.22-5.24,35.31c-1.97,13.27.28,30.94,14.91,31.23,10.34.21,19.99-12.2,25.89-20.81l28.54-41.65,28.58-39.88,33.69-44.8c17.47-23.22,35.14-45.8,54.35-67.66l15.42-15.94c2.41-2.49,4.72-5.36,8.21-6.61l-53.85,147.65-22.35,63.97c-10.82,30.98-19.76,62.01-28.29,93.62-5.9,21.86-10.78,43.25-14.26,65.53-2.05,13.16-2.9,25.66-2.67,38.9.14,8,.99,15.49,4.28,22.89,2.3,5.17,6.74,6.98,7.11,5.72l.39-1.32c-3.19-7.62-4.18-15.36-3.87-23.67.52-14.27,2.51-27.94,5.69-41.9,3.71-16.3,7.64-31.94,13.1-47.77l13.02-37.7,31.09-79.3,41.46-100.64c12.39-30.07,24.18-59.94,34.62-90.55\"><\/path><path class=\"st1\" d=\"M958.6,287.14c-26.61,3-51.01,23.23-71.71,41.73l-47.94,42.85c-19.62,17.53-53.34,42.28-77.22,48.26-12.62,3.16-25.77.45-27.54-13.59-1.2-9.5-.89-19.11,2.03-28.2l10.29-32.13,11.11-35.83c2.3-7.43,2.43-15.16,1.64-22.82-1.41-13.67-10.8-23.62-23.33-23.47-6.59.08-13.18,2.05-19.28,5.1-7.57,3.78-14.89,7.66-21.49,13.29l-30.42,25.98-60.48,62.88c-9.77,10.15-18.95,19.75-30.5,28.17,2.03-7.78,4.64-14.18,7.69-20.95l18.4-40.88c11.19-24.86,22.51-52.85,19.68-80.4-1.44-13.99-10.7-23.65-23.31-23.27-8.69.26-16.56,3.31-24.34,7.75-11.49,6.56-21.71,14.44-31.94,23.45-17.8,15.68-34.12,32.46-49.95,50.58l-23.09,26.44-38.55,45.48-18.13,20.27c7.3-24.18,16.05-46.34,26.89-68.04l29.91-59.89c3.06-6.12,4.41-12.42,1.1-18.7-2.57-4.89-7.66-9.48-13.69-8.85-4.99.52-9.85,3.3-12.6,7.88l-7.03,11.74c-19.61,40.02-37.14,80.85-52.34,123.28-3.75,10.49-6.88,20.41-8.99,31.23-2.28,11.7-.65,26.33,8.31,30.39,7.95,3.6,16.3-1.78,22.11-9.47l26.47-35.05c33.11-45.87,69.42-88.03,109.56-126.24,9.05-8.62,18.16-16.13,28.06-23.17,6.58-4.68,19.58-11.39,23.55-8.06,3.73,3.13.77,16.95-1.5,24.96-4.76,16.82-10.8,32.56-18.02,48.26l-16.81,36.55-13.68,33.75c-3.54,8.72-5.53,23.86-.11,30.79,7.04,9.03,18.38,9.05,26.86,2.14l23.52-22.62,15.01-15.95,36.74-40.56,41.31-41.67c8.65-8.73,38.32-31.08,44.81-24.81,2.56,2.47,1.55,14.24-.27,20.1l-9.24,29.81-9.74,30.72c-3.03,9.56-4.35,19.29-4.43,29.43-.09,10.61,2.81,20.28,9.13,28.22,14.01,17.57,35.88,17.58,55.57,10.54,37.68-13.47,79.66-48.6,109.19-78.47,19.69-19.92,41.67-41.64,65.88-53.17,14.03-6.68,28.86-7.83,43.49-3.08l14.49,4.7c.52.17,2.37-.43,2.14-.98-.18-.41-.76-1.26-1.11-1.57-13.3-11.73-29.2-16.75-46.17-14.84\"><\/path><path class=\"st1\" d=\"M1073.43,231.39c-.27-1.58-.67-3.06-1.33-4.55-.96-2.14-2.35-4.1-4.15-5.65-2.13-1.83-4.62-3.08-7.37-3.76-2.02-.5-4.05-.78-6.13-.65l-.57.04c-5.46.35-11.03,2.86-15.01,6.44l-1.08.97-1.02,1.02c-3.71,3.92-6.54,9.18-8.69,14.07l-.09-1.57c-.13-2.22-.42-4.4-1.07-6.53l-.78-2.58-.28-.73-.85-1.98c-.64-1.27-1.35-2.49-2.33-3.54-1.28-1.38-2.8-2.5-4.6-3.18-1.72-.65-3.54-.94-5.4-.88-4.06.12-7.58,1.85-10.41,4.61-.82.8-1.55,1.6-2.23,2.52-.94,1.29-1.74,2.58-2.38,4.04-1.37,3.09-2.26,6.32-2.55,9.67l-.07.86-.06.95c-.06.82-.06,1.64,0,2.46l.06.88.07.86.14,1.13c.14,1.17.39,2.26.68,3.41,1.39,5.61,3.95,10.54,7.43,15.19,1.38,1.85,2.81,3.61,4.39,5.29l1.65,1.76,2.46,2.43,1.01.96.67.63,1.04.93.75.67.65.57.97.85,1.63,1.38,2.95,2.28c.37.29.84.35,1.3.21.75-.24,1.13-1.07.81-1.7-.2-.37-.5-.63-.78-.93l-.99-1.04-.83-.87-.62-.67-.82-.87-.67-.7-.58-.63-.45-.5-.48-.54-.54-.6-1.37-1.56c-3.24-3.66-6.99-8.71-9.27-12.98l-.69-1.29c-.86-1.61-1.54-3.24-2.19-4.95-.88-2.32-1.5-4.65-1.84-7.1-.12-.88-.22-1.74-.22-2.63v-2.39c.14-3.53.96-6.94,2.56-10.12l.41-.74c.45-.81,1-1.55,1.58-2.27.54-.67,1.12-1.21,1.76-1.77.88-.77,1.84-1.35,2.94-1.84,1.66-.74,3.52-.93,5.32-.65.61.1,1.16.24,1.71.48l1,.45c1.58.87,2.92,2.12,3.89,3.62.41.63.77,1.23,1.08,1.9,1.25,2.73,2.05,6.05,2.4,9.02l.08.71.06.67.07.99v2.01l-.06.87-.08.85-.33,2.83-.08.67-.06.74c-.04.55.18.99.78,1.16.55.15,1.3-.11,1.49-.72.78-2.54,1.63-5,2.77-7.4l1.6-3.12.5-.84,1.06-1.72c1.3-2.09,2.75-4.04,4.45-5.83l.87-.91,1.89-1.76.7-.6c1.32-1.12,2.78-2.05,4.32-2.88l1.85-.89c1.78-.78,3.63-1.3,5.58-1.46l.89-.07h1.3s.81.07.81.07c2.94.26,5.7,1.64,7.66,3.78,1.63,1.78,2.66,4.28,2.86,6.64l.1,1.12v.53s-.08,1.27-.08,1.27l-.07.65-.26,1.49-.61,2.34-.86,2.25c-1.71,3.96-4.64,7.86-7.59,11.08-5.28,5.78-11.52,10.26-18.04,14.63l-2.05,1.37-1.15.76-1.56,1.04-.69.46-.58.38-2.14,1.47-.65.45-3.75,2.78c-.57.42-.92,1.12-.48,1.76.35.51,1.06.55,1.63.44,2.25-.42,6.51-2.23,8.69-3.29l3.41-1.65c6.46-3.27,12.83-7.17,18.23-11.9l.44-.39.93-.85,1.62-1.56.83-.87.79-.84c2.74-2.94,4.99-6.22,6.92-9.72l.97-1.89c1.78-3.74,2.89-7.91,2.75-12.06l-.27-2.64Z\"><\/path><\/g><\/svg><\/div>\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-92c3bd6 e-con e-atomic-element e-div-block-base e-92c3bd6-c6412b5 \" data-id=\"92c3bd6\" data-element_type=\"e-div-block\" data-e-type=\"e-div-block\" data-interaction-id=\"92c3bd6\" data-e-type=\"e-div-block\" data-id=\"92c3bd6\">\n    \t\t<div class=\"elementor-element elementor-element-7388dfd vf-photo-form elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"7388dfd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" name=\"New Form\" aria-label=\"New Form\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"12\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"7388dfd\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"\" \/>\n\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-upload elementor-field-group elementor-column elementor-field-group-field_b35f9ea elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t<input type=\"file\" name=\"form_fields[field_b35f9ea][]\" id=\"form-field-field_b35f9ea\" class=\"elementor-field elementor-size-sm  elementor-upload-field\" required=\"required\" multiple=\"multiple\" data-maxsize=\"10\" data-maxsize-message=\"Dit bestand overschrijdt de maximaal toegestane grootte.\">\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Foto\u2019s versturen<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2becafb elementor-widget elementor-widget-html\" data-id=\"2becafb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Previews binnen hetzelfde uploadvak *\/\n.vf-photo-form .vf-dropzone.vf-has-files {\n    min-height: 0 !important;\n    padding: 28px 24px 26px !important;\n    justify-content: flex-start !important;\n    overflow: visible !important;\n}\n\n.vf-photo-form .vf-dropzone.vf-has-files .vf-upload-intro {\n    display: none !important;\n}\n\n.vf-photo-form .vf-dropzone .vf-selection {\n    width: 100% !important;\n    max-width: none !important;\n    margin: 0 0 22px !important;\n}\n\n.vf-photo-form .vf-dropzone .vf-selection[hidden] {\n    display: none !important;\n}\n\n.vf-photo-form .vf-dropzone .vf-previews {\n    width: 100%;\n}\n\n.vf-photo-form .vf-dropzone.vf-has-files .vf-choose-button {\n    margin-top: 4px;\n}\n\n.vf-photo-form .vf-upload-types,\n.vf-photo-form .vf-upload-arrow {\n    display: none !important;\n}\n\n@media (max-width: 600px) {\n    .vf-photo-form .vf-dropzone.vf-has-files {\n        padding: 22px 14px 22px !important;\n    }\n\n    .vf-photo-form .vf-dropzone .vf-previews {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        gap: 12px;\n    }\n}\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n    const forms = document.querySelectorAll('.vf-photo-form form');\n\n    forms.forEach(function (form) {\n        const input = form.querySelector(\n            '.elementor-field-type-upload input[type=\"file\"], input[type=\"file\"]'\n        );\n\n        if (!input || input.dataset.vfEnhanced === 'true') {\n            return;\n        }\n\n        input.dataset.vfEnhanced = 'true';\n        input.setAttribute('accept', 'image\/jpeg,image\/png,image\/webp');\n        input.setAttribute('multiple', 'multiple');\n\n        const originalContainer =\n            input.closest('.elementor-field-type-upload') ||\n            input.parentElement;\n\n        const uploader = document.createElement('div');\n        uploader.className = 'vf-uploader';\n\n        uploader.innerHTML = `\n            <div\n                class=\"vf-dropzone\"\n                tabindex=\"0\"\n                role=\"button\"\n                aria-label=\"Selecteer foto's\"\n            >\n                <div class=\"vf-upload-intro\">\n                    <div class=\"vf-upload-visual\" aria-hidden=\"true\">\n                        <img decoding=\"async\"\n                            class=\"vf-love-image\"\n                            src=\"https:\/\/m-mbruiloft.nl\/wp-content\/uploads\/2026\/07\/Love.png\"\n                            alt=\"\"\n                        >\n                    <\/div>\n\n                    <div class=\"vf-upload-title\">\n                        Selecteer foto\u2019s\n                    <\/div>\n\n                    <div class=\"vf-upload-description\">\n                        Sleep foto\u2019s hierheen of klik om bestanden te kiezen\n                    <\/div>\n                <\/div>\n\n                <div class=\"vf-selection\" hidden>\n                    <div class=\"vf-selection-header\">\n                        <strong class=\"vf-file-count\"><\/strong>\n\n                        <button type=\"button\" class=\"vf-clear-button\">\n                            Alles verwijderen\n                        <\/button>\n                    <\/div>\n\n                    <div class=\"vf-previews\"><\/div>\n                <\/div>\n\n                <button type=\"button\" class=\"vf-choose-button\">\n                    Foto\u2019s kiezen\n                <\/button>\n            <\/div>\n\n            <div class=\"vf-progress\" hidden>\n                <div class=\"vf-progress-info\">\n                    <span class=\"vf-progress-text\">\n                        Upload voorbereiden\u2026\n                    <\/span>\n\n                    <span class=\"vf-progress-percent\">\n                        0%\n                    <\/span>\n                <\/div>\n\n                <div class=\"vf-progress-track\">\n                    <div class=\"vf-progress-bar\"><\/div>\n                <\/div>\n            <\/div>\n\n            <div\n                class=\"vf-message\"\n                aria-live=\"polite\"\n            ><\/div>\n        `;\n\n        originalContainer.insertBefore(uploader, input);\n\n        uploader.appendChild(input);\n        input.classList.add('vf-file-input');\n\n        const dropzone =\n            uploader.querySelector('.vf-dropzone');\n\n        const chooseButton =\n            uploader.querySelector('.vf-choose-button');\n\n        const selection =\n            uploader.querySelector('.vf-selection');\n\n        const fileCount =\n            uploader.querySelector('.vf-file-count');\n\n        const previews =\n            uploader.querySelector('.vf-previews');\n\n        const clearButton =\n            uploader.querySelector('.vf-clear-button');\n\n        const progress =\n            uploader.querySelector('.vf-progress');\n\n        const progressBar =\n            uploader.querySelector('.vf-progress-bar');\n\n        const progressText =\n            uploader.querySelector('.vf-progress-text');\n\n        const progressPercent =\n            uploader.querySelector('.vf-progress-percent');\n\n        const message =\n            uploader.querySelector('.vf-message');\n\n        let progressTimer = null;\n        let currentProgress = 0;\n\n        function openPicker() {\n            input.click();\n        }\n\n        function formatSize(bytes) {\n            if (bytes < 1024 * 1024) {\n                return Math.max(\n                    1,\n                    Math.round(bytes \/ 1024)\n                ) + ' KB';\n            }\n\n            return (\n                bytes \/ (1024 * 1024)\n            ).toFixed(1) + ' MB';\n        }\n\n        function validateFiles(files) {\n            const allowedTypes = [\n                'image\/jpeg',\n                'image\/png',\n                'image\/webp'\n            ];\n\n            const maxSize =\n                10 * 1024 * 1024;\n\n            const accepted = [];\n            const rejected = [];\n\n            Array.from(files).forEach(function (file) {\n                if (!allowedTypes.includes(file.type)) {\n                    rejected.push(\n                        file.name +\n                        ' is geen toegestaan bestandstype.'\n                    );\n\n                    return;\n                }\n\n                if (file.size > maxSize) {\n                    rejected.push(\n                        file.name +\n                        ' is groter dan 10 MB.'\n                    );\n\n                    return;\n                }\n\n                accepted.push(file);\n            });\n\n            return {\n                accepted: accepted,\n                rejected: rejected\n            };\n        }\n\n        function setInputFiles(files) {\n            try {\n                const dataTransfer =\n                    new DataTransfer();\n\n                files.forEach(function (file) {\n                    dataTransfer.items.add(file);\n                });\n\n                input.files =\n                    dataTransfer.files;\n            } catch (error) {\n                console.warn(\n                    'De bestandslijst kon niet worden aangepast.',\n                    error\n                );\n            }\n        }\n\n        function renderFiles() {\n            previews.innerHTML = '';\n\n            message.textContent = '';\n            message.className = 'vf-message';\n\n            const files =\n                Array.from(input.files || []);\n\n            if (!files.length) {\n                selection.hidden = true;\n                fileCount.textContent = '';\n                dropzone.classList.remove('vf-has-files');\n                chooseButton.textContent = 'Foto\u2019s kiezen';\n                return;\n            }\n\n            selection.hidden = false;\n            dropzone.classList.add('vf-has-files');\n            chooseButton.textContent = 'Meer foto\u2019s kiezen';\n\n            fileCount.textContent =\n                files.length === 1\n                    ? '1 foto geselecteerd'\n                    : files.length +\n                      ' foto\u2019s geselecteerd';\n\n            files.forEach(function (file, index) {\n                const item =\n                    document.createElement('div');\n\n                item.className =\n                    'vf-preview-item';\n\n                const image =\n                    document.createElement('img');\n\n                image.className =\n                    'vf-preview-image';\n\n                image.alt = '';\n\n                const reader =\n                    new FileReader();\n\n                reader.onload =\n                    function (event) {\n                        image.src =\n                            event.target.result;\n                    };\n\n                reader.readAsDataURL(file);\n\n                const details =\n                    document.createElement('div');\n\n                details.className =\n                    'vf-preview-details';\n\n                const name =\n                    document.createElement('div');\n\n                name.className =\n                    'vf-preview-name';\n\n                name.textContent =\n                    file.name;\n\n                const size =\n                    document.createElement('div');\n\n                size.className =\n                    'vf-preview-size';\n\n                size.textContent =\n                    formatSize(file.size);\n\n                const remove =\n                    document.createElement('button');\n\n                remove.type = 'button';\n                remove.className =\n                    'vf-remove-file';\n\n                remove.setAttribute(\n                    'aria-label',\n                    'Verwijder ' + file.name\n                );\n\n                remove.innerHTML = '&times;';\n\n                remove.addEventListener(\n                    'click',\n                    function () {\n                        const remaining =\n                            Array.from(\n                                input.files\n                            ).filter(\n                                function (\n                                    currentFile,\n                                    fileIndex\n                                ) {\n                                    return (\n                                        fileIndex !== index\n                                    );\n                                }\n                            );\n\n                        setInputFiles(remaining);\n\n                        input.dispatchEvent(\n                            new Event(\n                                'change',\n                                {\n                                    bubbles: true\n                                }\n                            )\n                        );\n                    }\n                );\n\n                details.appendChild(name);\n                details.appendChild(size);\n\n                item.appendChild(image);\n                item.appendChild(details);\n                item.appendChild(remove);\n\n                previews.appendChild(item);\n            });\n        }\n\n        function processFiles(files) {\n            const result =\n                validateFiles(files);\n\n            if (result.rejected.length) {\n                message.textContent =\n                    result.rejected.join(' ');\n\n                message.className =\n                    'vf-message vf-error';\n            }\n\n            if (!result.accepted.length) {\n                return;\n            }\n\n            setInputFiles(result.accepted);\n\n            input.dispatchEvent(\n                new Event(\n                    'change',\n                    {\n                        bubbles: true\n                    }\n                )\n            );\n        }\n\n        function startProgress() {\n            clearInterval(progressTimer);\n\n            currentProgress = 5;\n            progress.hidden = false;\n\n            progressBar.style.width =\n                currentProgress + '%';\n\n            progressPercent.textContent =\n                currentProgress + '%';\n\n            progressText.textContent =\n                'Foto\u2019s uploaden\u2026';\n\n            progressTimer = setInterval(\n                function () {\n                    if (currentProgress >= 90) {\n                        clearInterval(\n                            progressTimer\n                        );\n\n                        return;\n                    }\n\n                    currentProgress += Math.max(\n                        1,\n                        Math.round(\n                            (\n                                90 -\n                                currentProgress\n                            ) \/ 8\n                        )\n                    );\n\n                    currentProgress = Math.min(\n                        currentProgress,\n                        90\n                    );\n\n                    progressBar.style.width =\n                        currentProgress + '%';\n\n                    progressPercent.textContent =\n                        currentProgress + '%';\n                },\n                350\n            );\n        }\n\n        function completeProgress() {\n            clearInterval(progressTimer);\n\n            currentProgress = 100;\n            progress.hidden = false;\n            progressBar.style.width = '100%';\n            progressPercent.textContent = '100%';\n            progressText.textContent = 'Foto\u2019s succesvol verstuurd';\n\n            message.textContent =\n                'Bedankt! De foto\u2019s zijn succesvol verstuurd.';\n            message.className =\n                'vf-message vf-success';\n\n            \/* Laat de succesmelding kort zien en zet daarna alles terug. *\/\n            setTimeout(function () {\n                form.reset();\n                input.value = '';\n\n                clearInterval(progressTimer);\n                currentProgress = 0;\n\n                progress.hidden = true;\n                progressBar.style.width = '0%';\n                progressPercent.textContent = '0%';\n                progressText.textContent = 'Upload voorbereiden\u2026';\n\n                message.textContent = '';\n                message.className = 'vf-message';\n\n                \/* Verwijder ook de standaard Elementor-succesmelding. *\/\n                form.querySelectorAll(\n                    '.elementor-message-success, .elementor-message'\n                ).forEach(function (elementorMessage) {\n                    elementorMessage.remove();\n                });\n\n                renderFiles();\n\n                \/* Breng de bezoeker rustig terug naar het uploadvak. *\/\n                uploader.scrollIntoView({\n                    behavior: 'smooth',\n                    block: 'center'\n                });\n            }, 1800);\n        }\n\n        function stopProgressWithError() {\n            clearInterval(progressTimer);\n\n            progress.hidden = false;\n\n            progressText.textContent =\n                'Upload niet gelukt';\n\n            message.textContent =\n                'De foto\u2019s konden niet worden verstuurd. Probeer het opnieuw.';\n\n            message.className =\n                'vf-message vf-error';\n        }\n\n        dropzone.addEventListener(\n            'click',\n            function (event) {\n                if (\n                    event.target.closest(\n                        '.vf-remove-file'\n                    ) ||\n                    event.target.closest(\n                        '.vf-clear-button'\n                    )\n                ) {\n                    return;\n                }\n\n                openPicker();\n            }\n        );\n\n        dropzone.addEventListener(\n            'keydown',\n            function (event) {\n                if (\n                    event.key === 'Enter' ||\n                    event.key === ' '\n                ) {\n                    event.preventDefault();\n                    openPicker();\n                }\n            }\n        );\n\n        chooseButton.addEventListener(\n            'click',\n            function (event) {\n                event.preventDefault();\n                event.stopPropagation();\n\n                openPicker();\n            }\n        );\n\n        [\n            'dragenter',\n            'dragover'\n        ].forEach(function (eventName) {\n            dropzone.addEventListener(\n                eventName,\n                function (event) {\n                    event.preventDefault();\n\n                    dropzone.classList.add(\n                        'vf-dragging'\n                    );\n                }\n            );\n        });\n\n        [\n            'dragleave',\n            'drop'\n        ].forEach(function (eventName) {\n            dropzone.addEventListener(\n                eventName,\n                function (event) {\n                    event.preventDefault();\n\n                    dropzone.classList.remove(\n                        'vf-dragging'\n                    );\n                }\n            );\n        });\n\n        dropzone.addEventListener(\n            'drop',\n            function (event) {\n                processFiles(\n                    event.dataTransfer.files\n                );\n            }\n        );\n\n        input.addEventListener(\n            'change',\n            renderFiles\n        );\n\n        clearButton.addEventListener(\n            'click',\n            function () {\n                input.value = '';\n                renderFiles();\n            }\n        );\n\n        form.addEventListener(\n            'submit',\n            function (event) {\n                if (\n                    !input.files ||\n                    input.files.length === 0\n                ) {\n                    event.preventDefault();\n\n                    message.textContent =\n                        'Selecteer minimaal \u00e9\u00e9n foto.';\n\n                    message.className =\n                        'vf-message vf-error';\n\n                    dropzone.classList.add(\n                        'vf-shake'\n                    );\n\n                    setTimeout(\n                        function () {\n                            dropzone.classList.remove(\n                                'vf-shake'\n                            );\n                        },\n                        500\n                    );\n\n                    return;\n                }\n\n                message.textContent = '';\n                message.className =\n                    'vf-message';\n\n                startProgress();\n            }\n        );\n\n        if (window.jQuery) {\n            window.jQuery(form).on(\n                'submit_success',\n                function () {\n                    completeProgress();\n                }\n            );\n\n            window.jQuery(form).on(\n                'error',\n                function () {\n                    stopProgressWithError();\n                }\n            );\n        }\n\n        renderFiles();\n    });\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12"}],"version-history":[{"count":46,"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/m-mbruiloft.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}