window.initializeYouTubeAutoplay = function(iframeId) {
    const iframe = document.getElementById(iframeId);
    if (!iframe) {
        console.warn(`Iframe with id '${iframeId}' not found.`);
        return;
    }

    function loadApiAndCreatePlayer() {
        if (window.YT && window.YT.Player) {
            createPlayer();
        } else {
            const tag = document.createElement('script');
            tag.src = 'https://www.youtube.com/iframe_api';
            document.body.appendChild(tag);
            window.onYouTubeIframeAPIReady = createPlayer;
        }
    }

    let player;
    function createPlayer() {
        player = new YT.Player(iframeId, {
            events: {
                'onReady': onPlayerReady
            }
        });
    }

    function onPlayerReady() {
        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    player.playVideo();
                } else {
                    player.pauseVideo();
                }
            });
        }, { threshold: 0.25 });
        observer.observe(iframe);

        iframe.addEventListener('click', () => {
            const state = player.getPlayerState();
            if (state === YT.PlayerState.PLAYING) {
                player.pauseVideo();
            } else {
                player.playVideo();
            }
        });
    }

    loadApiAndCreatePlayer();
};
