(() => {
    function getTimezone() {
        return Intl.DateTimeFormat().resolvedOptions().timeZone;
    }
    if (!window.originalWebSocket) {
        window.originalWebSocket = htmx.createWebSocket
        htmx.createWebSocket = function(url) {
            url = new URL(url, window.location.href).href
            url = url.replace(/^http/, 'ws');
            let modifiedUrl = url + "?timezone=" + getTimezone()
            return window.originalWebSocket(modifiedUrl)
        }
    }
    document.body.addEventListener(
        "htmx:configRequest",
        function(evt) {
            //console.log("Adding timezone to htmx request headers and making URL absolute");
            evt.detail.headers["X-Timezone"] = getTimezone();
        }
    );
})()