declare global {
    interface Window {
        Calendly?: {
            initPopupWidget: (options: {
                url: string;
                embed_locale?: string;
            }) => void;
        };
    }
}

export const openCalendly = (url: string, locale?: string) => {
    const triggerPopup = () => {
        if (window.Calendly) {
            window.Calendly.initPopupWidget({
                url,
                embed_locale: locale,
            });
        }
    };

    if (window.Calendly) {
        triggerPopup();
    } else {
        // Dynamically load CSS if not already present
        if (!document.querySelector('link[href*="calendly.com/assets/external/widget.css"]')) {
            const link = document.createElement("link");
            link.rel = "stylesheet";
            link.href = "https://assets.calendly.com/assets/external/widget.css";
            document.head.appendChild(link);
        }

        // Dynamically load JS script
        const script = document.createElement("script");
        script.src = "https://assets.calendly.com/assets/external/widget.js";
        script.async = true;
        script.onload = () => {
            triggerPopup();
        };
        document.body.appendChild(script);
    }
};