// export 语言检测 - 改进版，支持SSR，与Nuxt i18n保持一致
export default function getLanguage() {
    // 服务端渲染时的默认语言
    if (typeof window === 'undefined') {
        return "en";
    }
    
    // 客户端逻辑
    try {
        // 1. 优先检查cookie（与Nuxt i18n保持一致）
        const cookies = document.cookie.split(';');
        const localeCookie = cookies.find(cookie => 
            cookie.trim().startsWith('i18n_redirected=')
        );
        if (localeCookie) {
            const langValue = localeCookie.split('=')[1];
            if (['cn', 'en'].includes(langValue)) {
                return langValue;
            }
        }
        
        // 2. 检查localStorage（兼容旧版本）
        const langStorage = localStorage.getItem('locale_lang');
        if (langStorage && ['cn', 'en'].includes(langStorage)) {
            return langStorage;
        }
        
        // 3. 根据浏览器语言判断
        if (navigator.language.startsWith("en")) {
            return "en";
        } else if (navigator.language.includes("zh")) {
            return "cn";
        }
        
        return "en"; // 默认英文
    } catch (error) {
        console.warn('localStorage access failed:', error);
        return "en"; // 错误时返回默认语言
    }
}

// 新增：用于组件中的响应式语言检测
export async function useLanguage() {
    // 检查是否在Nuxt环境中
    if (typeof window !== 'undefined') {
        // 客户端环境，使用useCookie
        try {
            const { useCookie } = await import('#imports');
            return useCookie('i18n_redirected', {
                default: () => 'en',
                secure: false,
                sameSite: 'lax'
            });
        } catch (e) {
            // 如果useCookie不可用，回退到普通函数
            return { value: getLanguage() };
        }
    } else {
        // 服务端环境，回退到普通函数
        return { value: getLanguage() };
    }
}

// export 导出防抖函数
export const debounce = (func, delay) => {
    let timerId;
    return () => {
        if (timerId) {
            clearTimeout(timerId);
        }
        timerId = setTimeout(() => {
            func();
            timerId = null;
        }, delay);
    };
};

// 时间戳转换年月日
export const formatTimestamp = (timestamp) => {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // getMonth()返回的是0到11，所以要加1
    const day = date.getDate();
    // 将月份和日期补零，确保是两位数
    const formattedMonth = month < 10 ? "0" + month : month;
    const formattedDay = day < 10 ? "0" + day : day;
    return `${year}-${formattedMonth}-${formattedDay}`;
};

// 时间戳转换年月日
export const formatTimestamp2 = (timestamp) => {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, "0"); // 使用padStart()方法补零
    const day = String(date.getDate()).padStart(2, "0");
    const hours = String(date.getHours()).padStart(2, "0");
    const minutes = String(date.getMinutes()).padStart(2, "0");

    return `${year}-${month}-${day}-${hours}:${minutes}`;
};