/**
 * 全局确认对话�?
 * 加载�?index.html 中，覆盖整个页面
 */
class GlobalConfirm {
    constructor() {
        this.overlay = null;
        this.message = null;
        this.okBtn = null;
        this.cancelBtn = null;
        this.resolveCallback = null;
        this.ready = false;
        
        // 立即初始�?
        this.initPromise = this.init();
    }

    async init() {
// ('[GlobalConfirm] �?init 开�?);
        
        await this.ensureElements();
// ('[GlobalConfirm] �?查找DOM元素...');
        
        this.overlay = document.getElementById('globalConfirmOverlay');
        this.message = document.getElementById('confirmMessage');
        this.okBtn = document.getElementById('confirmOkBtn');
        this.cancelBtn = document.getElementById('confirmCancelBtn');
        
// ('[GlobalConfirm]   overlay:', !!this.overlay);
// ('[GlobalConfirm]   message:', !!this.message);
// ('[GlobalConfirm]   okBtn:', !!this.okBtn);
// ('[GlobalConfirm]   cancelBtn:', !!this.cancelBtn);
        
        if (this.overlay && this.okBtn && this.cancelBtn) {
            this.bindEvents();
            this.ready = true;
// ('[GlobalConfirm] �?初始化完成，ready=true');
        } else {
// ('[GlobalConfirm] �?初始化失败，部分元素未找�?);
        }
    }

    async ensureElements() {
// ('[GlobalConfirm] �?ensureElements 开�?);
        
        if (document.getElementById('globalConfirmOverlay')) {
// ('[GlobalConfirm] �?元素已存在，跳过加载');
            return;
        }

        try {
// ('[GlobalConfirm] �?开始加�?/page/confirm-view.html');
            const response = await fetch('/page/confirm-view.html', { cache: 'no-cache' });
// ('[GlobalConfirm]   响应状�?', response.status, response.statusText);
            
            if (!response.ok) {
                throw new Error('加载确认对话框组件失败');
            }
            const html = await response.text();
// ('[GlobalConfirm] �?HTML已获取，长度:', html.length);
            
            document.body.insertAdjacentHTML('beforeend', html);
// ('[GlobalConfirm] �?HTML已插入到body');
        } catch (error) {
// ('[GlobalConfirm] �?加载确认对话框组件失�?', error);
        }
    }

    bindEvents() {
// ('[GlobalConfirm] �?绑定事件监听�?);
        
        this.okBtn.addEventListener('click', () => {
// ('[GlobalConfirm] �?用户点击确认按钮');
            this.hide();
            if (this.resolveCallback) {
// ('[GlobalConfirm] �?调用 resolveCallback(true)');
                this.resolveCallback(true);
            }
        });

        this.cancelBtn.addEventListener('click', () => {
// ('[GlobalConfirm] �?用户点击取消按钮');
            this.hide();
            if (this.resolveCallback) {
// ('[GlobalConfirm] �?调用 resolveCallback(false)');
                this.resolveCallback(false);
            }
        });

        // 点击遮罩层取�?
        this.overlay.addEventListener('click', (e) => {
            if (e.target === this.overlay) {
                this.hide();
                if (this.resolveCallback) {
                    this.resolveCallback(false);
                }
            }
        });

        // ESC键取�?
        document.addEventListener('keydown', (e) => {
            if (e.key === 'Escape' && this.overlay && this.overlay.classList.contains('show')) {
                this.hide();
                if (this.resolveCallback) {
                    this.resolveCallback(false);
                }
            }
        });
    }

    async show(message) {
// ('[GlobalConfirm] �?show() 被调�?);
// ('[GlobalConfirm]   消息:', message);
// ('[GlobalConfirm]   ready状�?', this.ready);
        
        // 确保初始化完�?
// ('[GlobalConfirm] �?等待初始化完�?..');
        await this.initPromise;
// ('[GlobalConfirm] �?初始化完�?);
// ('[GlobalConfirm]   overlay:', !!this.overlay);
// ('[GlobalConfirm]   message:', !!this.message);
// ('[GlobalConfirm]   okBtn:', !!this.okBtn);
// ('[GlobalConfirm]   cancelBtn:', !!this.cancelBtn);
        
        return new Promise((resolve) => {
// ('[GlobalConfirm] �?创建Promise，等待用户操�?);
            this.resolveCallback = resolve;
            if (this.message) {
                this.message.textContent = message;
// ('[GlobalConfirm] �?消息已设�?);
            }
            if (this.overlay) {
                this.overlay.classList.add('show');
// ('[GlobalConfirm] �?对话框已显示');
            }
        });
    }

    hide() {
// ('[GlobalConfirm] �?隐藏对话�?);
        if (this.overlay) {
            this.overlay.classList.remove('show');
// ('[GlobalConfirm] �?对话框已隐藏');
        }
    }
}

// 全局单例
// console.log('[GlobalConfirm] 创建全局实例...');
window.GlobalConfirm = new GlobalConfirm();
// console.log('[GlobalConfirm] ✓ 全局实例已创建');

