/**
 * Products Services Block Animation
 * 产品服务区块动画效果
 */

// 等待GSAP准备就绪事件
function waitForGSAPReady(callback) {
    if (window.gsap && window.ScrollTrigger) {
        callback();
    } else {
        document.addEventListener('gsapReady', callback);
        // 备用方案：如果事件未触发，使用定时器
        setTimeout(() => {
            if (window.gsap && window.ScrollTrigger) {
                callback();
            }
        }, 3000);
    }
}

// 初始化产品服务动画
function initProductsServicesAnimation() {
    // 等待GSAP兼容性就绪
    if (!document.body.classList.contains('gsap-ready')) {
        document.addEventListener('gsapCompatibilityReady', initProductsServicesAnimation);
        return;
    }
    
    const productsServicesItems = document.querySelectorAll('.products-services-item');
    
    if (productsServicesItems.length === 0) {
        return;
    }
    
    // 检查Elementor兼容性
    productsServicesItems.forEach((item, index) => {
        // 检查元素是否被Elementor暂停或已准备就绪
        if (item.hasAttribute('data-gsap-paused')) {
            // 监听Elementor准备就绪事件
            item.addEventListener('gsapElementReady', () => {
                createItemAnimation(item, index);
            });
        } else if (item.hasAttribute('data-gsap-ready') || !item.closest('[data-elementor-type]')) {
            // 元素已准备就绪或不在Elementor环境中，直接创建动画
            createItemAnimation(item, index);
        } else {
            // 默认情况下创建动画
            createItemAnimation(item, index);
        }
    });
}

// 创建项目动画
function createItemAnimation(item, index) {
    gsap.fromTo(item, 
        {
            opacity: 0,
            y: 50
        },
        {
            opacity: 1,
            y: 0,
            duration: 0.8,
            ease: "power2.out",
            delay: index * 0.2, // 逐个显示，每个延迟0.2秒
            scrollTrigger: {
                trigger: item,
                start: "top 80%", // 当元素顶部距离视口底部80%时触发
                end: "bottom 20%",
                toggleActions: "play none none reverse", // 进入时播放，离开时反转
                markers: false // 设置为 true 可以显示调试标记
            }
        }
    );
    
    // 添加GSAP悬停动画
    item.addEventListener('mouseenter', function() {
        gsap.to(item, {
            y: -10,
            duration: 0.3,
            ease: "power2.out"
        });
    });
    
    item.addEventListener('mouseleave', function() {
        gsap.to(item, {
            y: 0,
            duration: 0.3,
            ease: "power2.out"
        });
    });
}

// 创建标题动画
function createHeaderAnimation(header) {
    gsap.fromTo(header,
        {
            opacity: 0,
            y: 30
        },
        {
            opacity: 1,
            y: 0,
            duration: 1,
            ease: "power2.out",
            scrollTrigger: {
                trigger: header,
                start: "top 85%",
                end: "bottom 20%",
                toggleActions: "play none none reverse"
            }
        }
    );
}

// 等待GSAP准备就绪后初始化
waitForGSAPReady(() => {
    // 注册 ScrollTrigger 插件
    gsap.registerPlugin(ScrollTrigger);
    
    // DOM 加载完成后初始化动画
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initProductsServicesAnimation);
    } else {
        initProductsServicesAnimation();
    }
    
    // 如果是动态加载的内容，提供重新初始化的函数
    window.reinitProductsServicesAnimation = function() {
        // 刷新 ScrollTrigger
        ScrollTrigger.refresh();
        initProductsServicesAnimation();
    };
});

// 如果GSAP未加载，显示警告
if (typeof gsap === 'undefined') {
}