/**
 * 文件页面标签切换功能
 * 支持记住用户选中的标签，刷新页面后保持选中状态
 */
(function() {
    'use strict';

    // 存储键名
    var STORAGE_KEY = 'file_page_active_tab';
    // 存储有效期（毫秒）- 30分钟
    var STORAGE_EXPIRE = 30 * 60 * 1000;

    /**
     * 获取当前页面的hash标识（用于区分不同文件）
     */
    function getPageHash() {
        var urlParams = new URLSearchParams(window.location.search);
        return urlParams.get('hash') || '';
    }

    /**
     * 保存选中的标签
     */
    function saveActiveTab(tabName) {
        var data = {
            tab: tabName,
            hash: getPageHash(),
            timestamp: Date.now()
        };
        try {
            localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
        } catch (e) {
            // 忽略存储错误
        }
    }

    /**
     * 获取保存的标签
     */
    function getSavedTab() {
        try {
            var data = localStorage.getItem(STORAGE_KEY);
            if (!data) return null;

            var parsed = JSON.parse(data);
            var now = Date.now();

            // 检查是否过期
            if (now - parsed.timestamp > STORAGE_EXPIRE) {
                localStorage.removeItem(STORAGE_KEY);
                return null;
            }

            // 检查是否是同一个文件
            if (parsed.hash !== getPageHash()) {
                return null;
            }

            return parsed.tab;
        } catch (e) {
            return null;
        }
    }

    /**
     * 切换到指定标签
     */
    function switchToTab(tabName) {
        // 切换标签样式
        document.querySelectorAll('.file-tab').forEach(function(tab) {
            tab.classList.remove('active');
            if (tab.getAttribute('data-tab') === tabName) {
                tab.classList.add('active');
            }
        });

        // 切换内容面板
        document.querySelectorAll('.tab-content-pane').forEach(function(pane) {
            pane.classList.remove('active');
        });

        var targetPane = document.getElementById('tab-' + tabName);
        if (targetPane) {
            targetPane.classList.add('active');
        }
    }

    /**
     * 初始化标签功能
     */
    function initTabs() {
        var tabs = document.querySelectorAll('.file-tab');
        if (!tabs.length) return;

        // 绑定点击事件
        tabs.forEach(function(tab) {
            tab.addEventListener('click', function() {
                var targetTab = this.getAttribute('data-tab');
                switchToTab(targetTab);
                saveActiveTab(targetTab);
            });
        });

        // 恢复之前选中的标签
        var savedTab = getSavedTab();
        if (savedTab) {
            var tabExists = false;
            tabs.forEach(function(tab) {
                if (tab.getAttribute('data-tab') === savedTab) {
                    tabExists = true;
                }
            });

            if (tabExists) {
                switchToTab(savedTab);
            }
        }
    }

    // DOM加载完成后初始化
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initTabs);
    } else {
        initTabs();
    }
})();
