// 章节管理JavaScript
jQuery(document).ready(function($) {
    // 测试AJAX功能
    console.log('Testing AJAX functionality');
    $.post(ajax_object.ajax_url, {
        action: 'test_ajax',
        nonce: ajax_object.nonce
    }, function(response) {
        console.log('Test AJAX response: ' + response);
    }).fail(function(jqXHR, textStatus, errorThrown) {
        console.log('Test AJAX failed: ' + textStatus + ' - ' + errorThrown);
    });
    
    // 点击章节项目
    $(document).on('click', '.chapter-item', function() {
        $('.chapter-item').removeClass('active');
        $(this).addClass('active');
        
        // 获取章节ID
        var chapterId = $(this).data('chapter-id');
        
        // 显示加载状态
        $('.chapter-edit-panel').html('<div class="loading">加载中...</div>');
        
        // 通过AJAX加载章节编辑表单
        $.post(ajax_object.ajax_url, {
            action: 'load_chapter_edit_form',
            chapter_id: chapterId,
            nonce: ajax_object.nonce
        }, function(response) {
            $('.chapter-edit-panel').html(response);
            
            // 重新初始化TinyMCE编辑器
            if (typeof tinymce !== 'undefined') {
                tinymce.init({
                    selector: '#chapter_content',
                    height: 300,
                    menubar: false,
                    plugins: [
                        'advlist autolink lists link image charmap print preview anchor',
                        'searchreplace visualblocks code fullscreen',
                        'insertdatetime media table paste code help wordcount'
                    ],
                    toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help | table',
                });
            }
        });
    });
    
    // 保存章节（事件委托）
    $(document).on('click', '#save-chapter-button', function() {
        // 获取章节ID
        var chapterId = $('#chapter-edit-form').data('chapter-id');
        
        // 获取表单数据
        var title = $('#chapter_title').val();
        var content = $('#chapter_content').val();
        
        // 如果使用TinyMCE，获取编辑器内容
        if (typeof tinymce !== 'undefined' && tinymce.get('chapter_content')) {
            content = tinymce.get('chapter_content').getContent();
        }
        
        var ancientTextId = $('#chapter_ancient_text').val();
        var volume = $('#chapter_volume').val();
        var chapterNumber = $('#chapter_number').val();
        
        // 显示保存状态
        $('#save-chapter-button').prop('disabled', true).text('保存中...');
        
        // 通过AJAX保存章节
        $.post(ajax_object.ajax_url, {
            action: 'save_chapter',
            chapter_id: chapterId,
            title: title,
            content: content,
            ancient_text_id: ancientTextId,
            volume: volume,
            chapter_number: chapterNumber,
            nonce: ajax_object.nonce
        }, function(response) {
            // 恢复按钮状态
            $('#save-chapter-button').prop('disabled', false).text('保存章节');
            
            // 显示保存结果
            alert(response);
        }).fail(function() {
            // 恢复按钮状态
            $('#save-chapter-button').prop('disabled', false).text('保存章节');
            
            // 显示错误信息
            alert('保存失败，请重试');
        });
    });
    
    // 添加章节按钮点击事件
    $(document).on('click', '.add-chapter-button', function(e) {
        e.preventDefault();
        
        var ancientTextId = $(this).data('ancient-text-id');
        console.log('Add chapter button clicked, ancient text ID: ' + ancientTextId);
        
        // 显示加载状态
        $(this).text('创建中...').prop('disabled', true);
        
        // 通过AJAX创建新章节
        $.post(ajax_object.ajax_url, {
            action: 'create_chapter',
            ancient_text_id: ancientTextId,
            nonce: ajax_object.nonce
        }, function(response) {
            console.log('AJAX response: ' + response);
            // 恢复按钮状态
            $('.add-chapter-button').text('添加章节').prop('disabled', false);
            
            // 检查响应是否为数字（章节ID）
            if (!isNaN(response)) {
                console.log('Chapter created successfully, ID: ' + response);
                // 重载当前页面以显示新章节
                location.reload();
            } else {
                console.log('Chapter creation failed: ' + response);
                alert('创建章节失败: ' + response);
            }
        }).fail(function(jqXHR, textStatus, errorThrown) {
            console.log('AJAX request failed: ' + textStatus + ' - ' + errorThrown);
            console.log('Response text: ' + jqXHR.responseText);
            // 恢复按钮状态
            $('.add-chapter-button').text('添加章节').prop('disabled', false);
            alert('创建章节失败: ' + textStatus + ' - ' + errorThrown + ' - ' + jqXHR.responseText);
        });
    });
    
    // 初始化Select2（如果页面已加载完成）
    initializeSelect2();
});

jQuery(document).ready(function($) {
    // 处理拼音选择和自定义输入的切换
    $('#character_pinyin').on('change', function() {
        if ($(this).val() !== '') {
            $('input[name="character_pinyin_custom"]').val($(this).val());
        }
    });
    
    $('input[name="character_pinyin_custom"]').on('input', function() {
        // 清空下拉选择
        $('#character_pinyin').val('');
    });
    
    // 处理部首选择和自定义输入的切换
    $('#character_radical').on('change', function() {
        if ($(this).val() !== '') {
            $('input[name="character_radical_custom"]').val($(this).val());
        }
    });
    
    $('input[name="character_radical_custom"]').on('input', function() {
        // 清空下拉选择
        $('#character_radical').val('');
    });
    
    // 添加拼音搜索功能
    $('#character_pinyin').select2({
        placeholder: "请选择拼音",
        allowClear: true,
        width: '250px'
    });
    
    // 添加部首搜索功能
    $('#character_radical').select2({
        placeholder: "请选择部首",
        allowClear: true,
        width: '250px'
    });
    
    // 为词语和成语的拼音选择框添加搜索功能
    $('.pinyin-select').each(function() {
        var $select = $(this);
        // 移除空选项的selected状态
        $select.find('option[value=""]').prop('selected', false);
        
        $select.select2({
            placeholder: "搜索并选择拼音...",
            allowClear: true,
            width: '300px'
        }).on("select2:select", function (evt) {
            // 移除空选项的selected状态
            $select.find('option[value=""]').prop('selected', false);
            
            // 将新选择的项移到最后
            var element = evt.params.data.element;
            var $element = $(element);
            
            $element.detach();
            $(this).append($element);
            $(this).trigger("change");
        });
    });

    // 当元框被打开或切换时重新初始化编辑器
    $(document).on('click', '.postbox .handlediv, .postbox .hndle', function() {
        var postbox = $(this).closest('.postbox');
        var editorId = postbox.find('.wp-editor-area').attr('id');
        
        if (editorId) {
            // 延迟执行以确保元框完全展开
            setTimeout(function() {
                if (typeof tinyMCE !== 'undefined' && tinyMCE.get(editorId)) {
                    // 重新初始化编辑器
                    tinyMCE.get(editorId).destroy();
                    tinyMCE.init(tinyMCEPreInit.mceInit[editorId]);
                }
            }, 500);
        }
    });
    
    // 处理元框排序后编辑器的重新初始化
    $('.meta-box-sortables').on('sortstop', function(event, ui) {
        var editorId = ui.item.find('.wp-editor-area').attr('id');
        
        if (editorId) {
            // 延迟执行以确保DOM操作完成
            setTimeout(function() {
                if (typeof tinyMCE !== 'undefined' && tinyMCE.get(editorId)) {
                    // 重新初始化编辑器
                    tinyMCE.get(editorId).destroy();
                    tinyMCE.init(tinyMCEPreInit.mceInit[editorId]);
                }
            }, 500);
        }
    });
    
    // 为发音含义对编辑页面添加Select2初始化
    if ($('#pronunciation_pinyin.pinyin-select').length > 0) {
        $('#pronunciation_pinyin.pinyin-select').select2({
            placeholder: "搜索并选择拼音...",
            allowClear: true,
            width: '300px'
        }).on("select2:select", function (evt) {
            // 移除空选项的selected状态
            $(this).find('option[value=""]').prop('selected', false);
            
            // 将新选择的项移到最后
            var element = evt.params.data.element;
            var $element = $(element);
            
            $element.detach();
            $(this).append($element);
            $(this).trigger("change");
        });
    }
});

// 为词语和成语编辑页面单独添加Select2初始化
jQuery(window).on('load', function() {
    initializeSelect2();
});

// 通用的Select2初始化函数
function initializeSelect2() {
    jQuery('.pinyin-select').each(function() {
        var $select = jQuery(this);
        // 检查是否已经初始化
        if (!$select.hasClass('select2-hidden-accessible')) {
            // 移除空选项的selected状态
            $select.find('option[value=""]').prop('selected', false);
            
            $select.select2({
                placeholder: "搜索并选择拼音...",
                allowClear: true,
                width: '300px'
            }).on("select2:select", function (evt) {
                // 移除空选项的selected状态
                $select.find('option[value=""]').prop('selected', false);
                
                // 将新选择的项移到最后
                var element = evt.params.data.element;
                var $element = jQuery(element);
                
                $element.detach();
                jQuery(this).append($element);
                jQuery(this).trigger("change");
            });
        }
    });
}

// 使用WordPress的 metabox 打开事件来确保Select2正确初始化
jQuery(document).on('postbox-toggled', function() {
    initializeSelect2();
});