/**
 * Header Footer Elementor - Simple Editor Bar Integration
 * Based on SureRank implementation pattern
 */

(function() {
    'use strict';


    // Flag to prevent duplicate button creation
    let hfeButtonAdded = false;

    // Helper function to add button to Elementor editor bar using jQuery (like SureRank)
    function addHFEButtonToElementorBar() {
        // Prevent duplicate buttons
        if (hfeButtonAdded) {
            return;
        }

        // Only show button if UAE Pro is NOT active
        if (window.hfeEditorConfig && window.hfeEditorConfig.isUAEPro) {
            return;
        }

        
        // Use jQuery like SureRank does
        const $ = window.jQuery;
        if (!$) {
            return;
        }

        // Wait a minimal time for Elementor to be ready
        setTimeout(() => {
            // Check if HFE button already exists (be specific, don't check for SureRank)
            if ($('#hfe-dashboard-button').length > 0) {
                hfeButtonAdded = true;
                return;
            }

            // Look for the same selector pattern that SureRank uses
            const targetContainer = $('#elementor-editor-wrapper-v2 header .MuiGrid-root:nth-child(3) .MuiStack-root');
            
            if (targetContainer.length) {
                
                // Get existing button classes from SureRank pattern
                const existingButton = targetContainer.find('button').first();
                const buttonClasses = existingButton.length ? existingButton.attr('class') : 'MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium';
                const svgClasses = existingButton.find('svg').attr('class') || 'MuiSvgIcon-root MuiSvgIcon-fontSizeMedium';

                // Create HFE button wrapper
                const hfeWrapper = $('<div class="hfe-root" id="hfe-dashboard-button"></div>');
                const buttonContainer = $('<div class="relative"></div>');
                
                // Create HFE button with plugin icon
                const iconUrl = window.hfeEditorConfig && window.hfeEditorConfig.iconUrl 
                    ? window.hfeEditorConfig.iconUrl 
                    : '/wp-content/plugins/header-footer-elementor/assets/images/settings/logo.svg';
                const hfeButton = $(`
                    <button type="button" class="${buttonClasses}" 
                            aria-label="Header Footer Elementor Dashboard" 
                            tabindex="0">
                        <img src="${iconUrl}" 
                             width="22" height="22" >
                    </button>
                `).on('click', function() {
                    // Always redirect to HFE dashboard.
                    const adminUrl = window.hfeEditorConfig && window.hfeEditorConfig.adminUrl
                        ? window.hfeEditorConfig.adminUrl
                        : '/wp-admin/admin.php?page=hfe#dashboard';
                    window.open(adminUrl, '_blank');
                });

                // Add conditional tooltip functionality
                function getTooltipText() {                    
                    // Default tooltip
                    return window.hfeEditorConfig && window.hfeEditorConfig.strings && window.hfeEditorConfig.strings.headerFooterBuilder 
                        ? window.hfeEditorConfig.strings.headerFooterBuilder 
                        : 'Header Footer Builder';
                }

                hfeButton.hover(
                    function() {
                        // Show conditional tooltip on hover
                        const tooltipText = getTooltipText();
                        $(this).attr('title', tooltipText);
                    },
                    function() {
                        // Hide tooltip
                        $(this).removeAttr('title');
                    }
                );

                buttonContainer.append(hfeButton);
                hfeWrapper.append(buttonContainer);
                
                // Insert after the last button (like SureRank does)
                targetContainer.children().last().after(hfeWrapper);
                
                hfeButtonAdded = true;
            }
        }, 500);
    }

    // Initialize when Elementor is ready (following SureRank pattern)
    function initializeHFEButton() {
        // Check if we're in Elementor editor
        if (!window.elementor) {
            return;
        }

        addHFEButtonToElementorBar();
    }

    // Use the same initialization pattern as SureRank
    window.addEventListener('elementor/frontend/init', () => {
        setTimeout(initializeHFEButton, 200);
    });

    // Also try direct initialization
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', () => {
            setTimeout(initializeHFEButton, 300);
        });
    } else {
        setTimeout(initializeHFEButton, 300);
    }

    // Fallback with window load
    window.addEventListener('load', () => {
        setTimeout(initializeHFEButton, 500);
    });

})();