/* Minification failed. Returning unminified contents.
(1,1): run-time error CSS1019: Unexpected token, found '('
(1,2): run-time error CSS1019: Unexpected token, found 'function('
(1,11): run-time error CSS1019: Unexpected token, found ')'
(1,13): run-time error CSS1019: Unexpected token, found '{'
(2,23): run-time error CSS1031: Expected selector, found '='
(2,23): run-time error CSS1025: Expected comma or open brace, found '='
(3,25): run-time error CSS1031: Expected selector, found '='
(3,25): run-time error CSS1025: Expected comma or open brace, found '='
(5,14): run-time error CSS1031: Expected selector, found 'apply('
(5,14): run-time error CSS1025: Expected comma or open brace, found 'apply('
(23,14): run-time error CSS1031: Expected selector, found 'set('
(23,14): run-time error CSS1025: Expected comma or open brace, found 'set('
(34,12): run-time error CSS1030: Expected identifier, found 'addEventListener('
(34,12): run-time error CSS1031: Expected selector, found 'addEventListener('
(34,12): run-time error CSS1025: Expected comma or open brace, found 'addEventListener('
(42,6): run-time error CSS1019: Unexpected token, found ')'
(44,14): run-time error CSS1031: Expected selector, found 'applyStoredAccessibilitySettings('
(44,14): run-time error CSS1025: Expected comma or open brace, found 'applyStoredAccessibilitySettings('
(53,5): run-time error CSS1019: Unexpected token, found 'applyStoredAccessibilitySettings('
(53,38): run-time error CSS1019: Unexpected token, found ')'
(54,14): run-time error CSS1030: Expected identifier, found 'addEventListener('
(54,14): run-time error CSS1031: Expected selector, found 'addEventListener('
(54,14): run-time error CSS1025: Expected comma or open brace, found 'addEventListener('
(56,15): run-time error CSS1031: Expected selector, found '='
(56,15): run-time error CSS1025: Expected comma or open brace, found '='
(65,12): run-time error CSS1030: Expected identifier, found 'dispatchEvent('
(65,12): run-time error CSS1031: Expected selector, found 'dispatchEvent('
(65,12): run-time error CSS1025: Expected comma or open brace, found 'dispatchEvent('
(66,1): run-time error CSS1019: Unexpected token, found '}'
(66,2): run-time error CSS1019: Unexpected token, found ')'
(66,4): run-time error CSS1030: Expected identifier, found 'call('
(66,4): run-time error CSS1019: Unexpected token, found 'call('
(66,13): run-time error CSS1031: Expected selector, found ')'
(66,13): run-time error CSS1025: Expected comma or open brace, found ')'
 */
(function() {
    const contrastKey = "data-contrast-level";
    const colorblindKey = "data-colorblind";

    function apply(key, value) {
        const inputs = document.querySelectorAll("input[" + key + "]");
        inputs.forEach(function (input) {
            var compareValue = "";
            if (value != null) {
                compareValue = value;
            }
            input.checked = (input.value == compareValue);
        });

        const html = document.documentElement;
        if (!value) {
            html.removeAttribute(key);
            return;
        }
        html.setAttribute(key, value);
    }

    function set(key, value) {
        if (value) {
            localStorage.setItem(key, value);
        } else {
            localStorage.removeItem(key);
        }
        requestAnimationFrame(function () {
            apply(key, value);
        });
    }

    window.addEventListener("storage", function (event) {
        if (
            event.key !== contrastKey
            && event.key !== colorblindKey
        )
            return;

        apply(event.key, event.newValue);
    });

    function applyStoredAccessibilitySettings() {
        requestAnimationFrame(function () {
            const contrast = localStorage.getItem(contrastKey);
            apply(contrastKey, contrast);
            const colorblind = localStorage.getItem(colorblindKey);
            apply(colorblindKey, colorblind);
        });
    }

    applyStoredAccessibilitySettings();
    document.addEventListener("DOMContentLoaded", applyStoredAccessibilitySettings);
    
    this.A11y = {
        setContrastLevel: function (level) {
            set(contrastKey, level)
        },
        setColorBlindness: function (type) {
            set(colorblindKey, type);
        },
    };

    window.dispatchEvent(new CustomEvent("A11yLoaded"));
}).call(this)
