# Chatbot

Le script du chatbot ajoute une fenêtre de discussion responsive intégrée dans le site. Il permet d'ouvrir et de fermer le chatbot avec des animations adaptées à différentes tailles d'écran.

#### **Lien vers la documentation complète**

Pour une explication détaillée, consultez la page dédiée au [chatbot](https://aleksandre80.gitbook.io/lacier/alternance-lacier/chatbot).

```javascript
document.addEventListener('DOMContentLoaded', function () {
    // Créer les éléments du chatbot
    const chatbotContainer = document.createElement('div');
    chatbotContainer.id = 'chatbot-container';
    chatbotContainer.style.cssText = `
        display: none;
        position: fixed;
        right: 20px;
        bottom: 120px; /* Ajustement pour le monter */
        width: 400px;
        height: 600px;
        border: 1px solid #ccc;
        border-radius: 10px;
        overflow: hidden;
        box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
        z-index: 10000;
    `;
    chatbotContainer.innerHTML = `
        <iframe src="https://chatbot.devmastery.fr" style="width: 100%; height: 100%; border: none;"></iframe>
    `;

    const openChatbotBtn = document.createElement('button');
    openChatbotBtn.id = 'open-chatbot-btn';
    openChatbotBtn.style.cssText = `
        position: fixed;
        bottom: 30px;
        right: 30px;
        padding: 10px 20px;
        background-color: #2e4b68;
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        z-index: 10000;
    `;
    openChatbotBtn.textContent = 'Ouvrir le Chatbot';

    const closeChatbotBtn = document.createElement('button');
    closeChatbotBtn.id = 'close-chatbot-btn';
    closeChatbotBtn.style.cssText = `
        position: fixed;
        bottom: 30px;
        right: 30px;
        padding: 10px 20px;
        background-color: #2e4b68;
        color: white;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        z-index: 10000000;
        display: none;
    `;
    closeChatbotBtn.textContent = 'Fermer le Chatbot';

    // Ajout des éléments au DOM
    document.body.appendChild(chatbotContainer);
    document.body.appendChild(openChatbotBtn);
    document.body.appendChild(closeChatbotBtn);

    // Fonctionnalités pour ouvrir et fermer le chatbot
    openChatbotBtn.addEventListener('click', function () {
        chatbotContainer.style.display = 'block';
        openChatbotBtn.style.display = 'none';
        closeChatbotBtn.style.display = 'block';
    });

    closeChatbotBtn.addEventListener('click', function () {
        chatbotContainer.style.display = 'none';
        openChatbotBtn.style.display = 'block';
        closeChatbotBtn.style.display = 'none';
    });

    // Media queries pour rendre le chatbot responsive
    function applyResponsiveStyles() {
        const screenWidth = window.innerWidth;

        if (screenWidth < 768) {
            chatbotContainer.style.width = '90%';
            chatbotContainer.style.height = '60%';
            chatbotContainer.style.right = '5%';
            chatbotContainer.style.bottom = '70px'; /* Ajustement pour mobile */
        } else if (screenWidth < 1024) {
            chatbotContainer.style.width = '350px';
            chatbotContainer.style.height = '500px';
            chatbotContainer.style.right = '20px';
            chatbotContainer.style.bottom = '120px'; /* Ajustement pour tablettes */
        } else {
            chatbotContainer.style.width = '400px';
            chatbotContainer.style.height = '600px';
            chatbotContainer.style.right = '20px';
            chatbotContainer.style.bottom = '120px'; /* Ajustement pour desktop */
        }
    }

    // Appliquer les styles responsives au chargement et lors des redimensionnements
    applyResponsiveStyles();
    window.addEventListener('resize', applyResponsiveStyles);
});
```

<figure><img src="https://2899607860-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaJCY3K1CtAhKASS35zuU%2Fuploads%2FMcA81mZ3djbP45rc6pu5%2FScreenshot%20from%202024-11-26%2010-57-33.png?alt=media&#x26;token=3665306e-c775-433a-a516-6d057bdb2625" alt=""><figcaption></figcaption></figure>
