HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/timentessagaantrouwen.nl/resources/js/components/questionFormHandler.js
const QuestionFormHandler = {

    form: null,

    init: function () {

        // Get map by id
        QuestionFormHandler.form = document.getElementById('questionForm');

        // Check if a map is defined
        if (isset(QuestionFormHandler.form)) {

            const chainDisabled = QuestionFormHandler.form.querySelector('.js-toggle-chain-disabled');
            if(isset(chainDisabled)) QuestionFormHandler.initChainDisabledListener(chainDisabled);

            const personsOption = QuestionFormHandler.form.querySelector('.js-toggle-present-persons');
            if(isset(personsOption)) QuestionFormHandler.initPersonListener(personsOption);

            const hasAllergiesOption = QuestionFormHandler.form.querySelector('.js-toggle-allergies');
            if(isset(hasAllergiesOption)) QuestionFormHandler.initAllergiesListener(hasAllergiesOption);

        }
    },

    initChainDisabledListener: function (node) {

        const staySleeping = QuestionFormHandler.form.querySelector('.stay_sleeping');
        const allergies = QuestionFormHandler.form.querySelector('.allergies');

        node.addEventListener('click', function () {
            const checkInput = node.querySelector('input:checked');
            if(isset(checkInput)){

                let present = checkInput.value;

                if(present == 0){
                    if(isset(staySleeping)) {
                        staySleeping.classList.add('is-disabled');
                        staySleeping.querySelector('input[value="0"]').checked = true;
                    }
                    if(isset(allergies)) {
                        allergies.querySelector('input[value="0"]').checked = true;
                        allergies.classList.add('is-disabled');
                        const allergiesRow = QuestionFormHandler.form.querySelector('.c-form-element.has_allergies');
                        if(isset(allergiesRow)) allergiesRow.classList.add('is-hidden');

                    }
                }
                else{
                    if(isset(staySleeping)) staySleeping.classList.remove('is-disabled');
                    if(isset(allergies)) allergies.classList.remove('is-disabled');
                }

            }
        });
    },

    initPersonListener: function (node) {

        const personsRow = QuestionFormHandler.form.querySelector('.c-form-element.present_persons');
        if(!isset(personsRow)) return;

        node.addEventListener('click', function () {
            const checkInput = node.querySelector('input:checked');
            if(isset(checkInput)){

                let present = checkInput.value;

                if(present == 1) personsRow.classList.remove('is-hidden');
                else personsRow.classList.add('is-hidden');

            }
        });
    },

    initAllergiesListener: function (node) {
        const allergiesRow = QuestionFormHandler.form.querySelector('.c-form-element.has_allergies');
        if(!isset(allergiesRow)) return;

        node.addEventListener('click', function () {
            const checkInput = node.querySelector('input:checked');
            if(isset(checkInput)){

                let present = checkInput.value;

                if(present == 1) allergiesRow.classList.remove('is-hidden');
                else allergiesRow.classList.add('is-hidden');
            }
        });
    }
};

QuestionFormHandler.init();