- 👋 Hi, I’m @BAHATI44
<!DOCTYPE html>
<html lang="fr">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="description" content="Inscription BuloMED">
    <meta name="keywords" content="inscription, BuloMED, santé">
    <meta name="author" content="Salomo B.M">
    <title>Inscription BuloMED</title>
    <link rel="stylesheet" href="styles/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/css/intlTelInput.css">
    <link rel="icon" type="image/png" sizes="32x32" href="BuloMED.PNG">
    <!-- Sécurité supplémentaire -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self' https: 'unsafe-inline' 'unsafe-eval';">
    <meta http-equiv="X-Content-Type-Options" content="nosniff">
    <meta http-equiv="X-Frame-Options" content="DENY">

    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f8f9fa;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        
        .form-wrapper {
            position: relative;
            padding: 5px;
            border-radius: 15px;
            background: linear-gradient(45deg, #ff0000, #00ff00, #0000ff, #ff00ff, #ffff00);
            background-size: 200% 200%;
            animation: gradientAnimation 3s ease infinite;
            display: flex;
        }
        /* Exemple de media queries pour petits écrans */
        
        @media (max-width: 600px) {
            .form-container {
                width: 90%;
                /* Utiliser une largeur en pourcentage pour s'adapter */
                max-width: none;
                /* Supprimer la limite fixe */
                padding: 10px;
                /* Réduire les espaces si nécessaire */
            }
            .form-group input {
                width: 100%;
                /* Assurer que les inputs prennent toute la largeur disponible */
                font-size: 1rem;
                /* Ajuster la taille de police pour plus de lisibilité */
            }
            .button-container {
                flex-direction: column;
                /* Sur petits écrans, empiler les boutons */
                gap: 5px;
            }
        }
        /* Optionnel : règles pour les écrans moyens */
        
        @media (min-width: 601px) and (max-width: 1024px) {
            .form-container {
                width: 80%;
                padding: 12px;
            }
            .form-group input {
                font-size: 1.1rem;
            }
        }
        
        @keyframes gradientAnimation {
            0% {
                background-position: 0% 50%;
            }
            50% {
                background-position: 100% 50%;
            }
            100% {
                background-position: 0% 50%;
            }
        }
        
        .form-container {
            background-color: #7b7c7c;
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 0 7px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 350px;
            position: relative;
            z-index: 1;
        }
        
        .form-container h2 {
            text-align: center;
            margin-bottom: 25px;
            color: #fff;
        }
        
        .form-group {
            margin-bottom: 15px;
            position: relative;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 5px;
        }
        
        .form-group input {
            width: 95%;
            padding: 10px;
            border: 2px solid #ccc;
            border-radius: 8px;
        }
        
        .password-toggle {
            position: absolute;
            right: 10px;
            top: 35px;
            cursor: pointer;
        }
        
        .loading-spinner {
            display: none;
            border: 3px solid #f3f3f3;
            border-top: 3px solid #4CAF50;
            border-radius: 50%;
            width: 20px;
            height: 20px;
            animation: spin 1s linear infinite;
        }
        
        @keyframes spin {
            0% {
                transform: rotate(0deg);
            }
            100% {
                transform: rotate(360deg);
            }
        }
        /* Nouveau style pour aligner les boutons cĂ´te Ă  cĂ´te */
        
        .button-container {
            display: flex;
            justify-content: space-between;
            gap: 10px;
        }
        
        .button-container button {
            flex: 1;
        }
        /* Style du popup de succès */
        
        .success-popup {
            display: none;
            position: fixed;
            top: 20px;
            right: 20px;
            background-color: #4CAF50;
            color: white;
            padding: 15px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            z-index: 1000;
        }
    </style>
</head>

<body>
    <div class="form-wrapper">
        <div class="form-container">
            <h2>Inscription</h2>
            <form id="registrationForm">
                <div class="form-group">
                    <label for="username">Nom d'utilisateur</label>
                    <input type="text" id="username" name="username" maxlength="50" placeholder="Saisir le nom D'utilisateur" required>
                    <div class="error" id="usernameError"></div>
                </div>
                <div class="form-group">
                    <label for="email">Email</label>
                    <input type="email" id="email" name="email" maxlength="50" placeholder="Saisir l'Email" required>
                    <div class="error" id="emailError"></div>
                </div>
                <div class="form-group">
                    <label for="password">Mot de passe</label>
                    <input type="password" id="password" name="password" maxlength="50" placeholder="Saisir Votre Mot de Passe" required>
                    <i class="fa fa-eye password-toggle" id="togglePassword"></i>
                    <div class="password-strength" id="passwordStrength"></div>
                    <div class="error" id="passwordError"></div>
                </div>
                <div class="form-group">
                    <label for="phone">Numéro de téléphone</label>
                    <input type="tel" id="phone" name="phone" maxlength="13" required>
                    <div class="error" id="phoneError"></div>
                </div>
                <!-- Conteneur pour les deux boutons -->
                <div class="button-container">
                    <button type="submit">
                        <span class="button-text">S'inscrire</span>
                        <div class="loading-spinner"></div>
                    </button>
                    <button type="button" id="loginButton">Se connecter</button>
                </div>
            </form>
        </div>
    </div>

    <!-- Popup de succès -->
    <div id="successPopup" class="success-popup">Connexion réussie !</div>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/intlTelInput.min.js"></script>
    <script>
        // Empêcher le clic droit pour bloquer l'accès au menu contextuel
        document.addEventListener('contextmenu', function(e) {
            e.preventDefault();
            return false;
        });

        // Bloquer les raccourcis clavier (Ctrl+Shift+I, Ctrl+U, F12, etc.)
        document.addEventListener('keydown', function(e) {
            if (e.ctrlKey || e.keyCode === 123 || e.keyCode === 85) {
                e.preventDefault();
                return false;
            }
        });

        // Détection des outils de développement
        setInterval(function() {
            if (window.outerWidth - window.innerWidth > 100 ||
                window.outerHeight - window.innerHeight > 100) {
                window.location.href = "about:blank";
            }
        }, 1000);

        // Empêcher la sélection de texte
        document.body.style.userSelect = 'none';
        document.body.style.webkitUserSelect = 'none';

        // Initialisation des éléments du formulaire
        document.addEventListener('DOMContentLoaded', function() {
            const phoneInput = document.getElementById('phone');
            const passwordInput = document.getElementById('password');
            const passwordStrength = document.getElementById('passwordStrength');
            const togglePassword = document.getElementById('togglePassword');
            const form = document.getElementById('registrationForm');
            const loginButton = document.getElementById('loginButton');
            const successPopup = document.getElementById('successPopup');

            // Initialisation du sélecteur de numéro de téléphone
            if (window.intlTelInput) {
                const iti = window.intlTelInput(phoneInput, {
                    initialCountry: "auto",
                    utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js"
                });
            } else {
                console.error("intlTelInput library is not loaded correctly.");
            }

            // Vérification de la force du mot de passe
            passwordInput.addEventListener('input', function() {
                const hasMixedCase = /(?=.*[a-z])(?=.*[A-Z])/.test(this.value);
                const hasNumbers = /\d/.test(this.value);
                const hasSpecial = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(this.value);
                if (hasMixedCase && hasNumbers && hasSpecial) {
                    passwordStrength.className = 'password-strength strong';
                } else if ((hasMixedCase && hasNumbers) || (hasNumbers && hasSpecial)) {
                    passwordStrength.className = 'password-strength medium';
                } else {
                    passwordStrength.className = 'password-strength weak';
                }
            });

            // Basculer la visibilité du mot de passe
            togglePassword.addEventListener('click', function() {
                const type = passwordInput.type === 'password' ? 'text' : 'password';
                passwordInput.type = type;
                this.classList.toggle('fa-eye-slash');
            });

            // Gestion de la soumission du formulaire
            form.addEventListener('submit', function(event) {
                event.preventDefault();
                const button = form.querySelector('button[type="submit"]');
                button.disabled = true;
                button.querySelector('.loading-spinner').style.display = 'inline-block';
                button.querySelector('.button-text').textContent = 'Traitement...';

                // Simuler un traitement de 1,5 seconde
                setTimeout(() => {
                    button.querySelector('.loading-spinner').style.display = 'none';
                    button.disabled = false;
                    button.querySelector('.button-text').textContent = 'S\'inscrire';

                    // Afficher le popup de succès
                    successPopup.style.display = 'block';
                    setTimeout(() => {
                        successPopup.style.display = 'none';
                    }, 3000);

                    // Redirection vers la page d'accueil après 3 secondes
                    setTimeout(() => {
                        window.location.href = 'accueil.html';
                    }, 3000);
                }, 1500);
            });

            // Navigation vers la page de connexion
            loginButton.addEventListener('click', function() {
                window.location.href = 'connexion.html';
            });
        });
    </script>
</body>

</html>