'use strict';
{
    // Call function fn when the DOM is loaded and ready. If it is already
    // loaded, call the function now.
    // http://youmightnotneedjquery.com/#ready
    /**
     * DOM就绪回调函数
     * 作用：当DOM加载完成后执行传入的回调函数；若DOM已加载，则立即执行
     * 参考自：http://youmightnotneedjquery.com/#ready（无需jQuery的DOM就绪方案）
     * @param {Function} fn - DOM就绪后要执行的回调函数
     */
    function ready(fn) {
        // 判断DOM状态：若不是“加载中”（即已就绪），直接执行回调
        if (document.readyState !== 'loading') {
            fn();
        } else {
            document.addEventListener('DOMContentLoaded', fn);
        }
    }
    // 调用ready函数，DOM就绪后执行内部逻辑
    ready(function() {
        /**
         * 取消链接点击事件处理函数
         * @param {Event} event - 点击事件对象
         */
        function handleClick(event) {
            event.preventDefault();
            const params = new URLSearchParams(window.location.search);
            if (params.has('_popup')) {
                window.close(); // Close the popup.
            } else {
                window.history.back(); // Otherwise, go back.
            }
        }

        document.querySelectorAll('.cancel-link').forEach(function(el) {
            el.addEventListener('click', handleClick);
        });
    });
}
