(function() {
    document.addEventListener('DOMContentLoaded', function() {
        // ターゲットとなるブロックをすべて取得
        const blocks = document.querySelectorAll('.is-style-haup-click-to-reveal');
        
        // PHPから渡されたデータ（localize_scriptで渡している変数名を確認してください）
        // もし変えた覚えがなければ haupData で合っているはずです
        if (typeof haupData === 'undefined') {
            console.error('haupData is not defined. Check wp_localize_script settings.');
            return;
        }

        const postID = haupData.postID;
        const apiURL = haupData.apiURL;
		const noName = haupData.noName;

        if (!postID || postID === 0) return;

        // 各ブロックに対してループ処理
        blocks.forEach(function(block, index) {
            // 初期状態：隠すクラスを追加
            block.classList.add('haup-is-hidden');

            // クリックイベントの設定
            block.addEventListener('click', function handler(event) {
                // 重要：クリックされた要素が「中身」であっても、
                // さかのぼって一番近い「.is-style-haup-click-to-reveal」を持つ親要素を特定する
                const targetBlock = event.target.closest('.is-style-haup-click-to-reveal');
                
                if (!targetBlock) return;

                // すでに展開済みなら何もしない
                if (targetBlock.classList.contains('haup-is-hidden')) {
                    
                    // クラスの切り替え
                    targetBlock.classList.remove('haup-is-hidden');
                    targetBlock.classList.add('haup-is-revealed');

                    // ID決定の優先順位：
                    // 1. data-haup-label（エディターで付けた名前）
                    // 2. id（HTMLアンカー）
                    // 3. unnamed_block_番号（どれも無い場合）
                    const blockID = targetBlock.getAttribute('data-haup-label') || 
                                    targetBlock.id || 
                                    //'unnamed_block_' + (index + 1);
                                    noName + ' ' + (index + 1);
                                    

                    // デバッグ用：送信されるIDをコンソールに表示
                    //console.log('Sending Tracking ID:', blockID);

                    // API送信
                    fetch(apiURL, {
                        method: 'POST',
                        headers: { 'Content-Type': 'application/json' },
                        body: JSON.stringify({
                            post_id: postID,
                            block_id: blockID
                        })
                    })
                    .then(res => res.json())
                    .then(data => {
                        console.log('Tracked successfully:', data);
                    })
                    .catch(err => {
                        console.error('Tracking Error:', err);
                    });

                    // 1回クリックしたらこのイベントリスナーを解除（二重カウント防止）
                    targetBlock.removeEventListener('click', handler);
                }
            });
        });
    });
})();