🎮 جاري تحميل لعبة الاختبار...

يرجى الانتظار...

const { getFirestore, doc, setDoc, getDoc } = await import('https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js'); // Initialize Firebase const app = initializeApp(firebaseConfig); const auth = getAuth(app); const db = getFirestore(app); // Elements const authDiv = document.getElementById('auth'); const userDiv = document.getElementById('user'); const usernameSpan = document.getElementById('username'); const loginBtn = document.getElementById('loginBtn'); const registerBtn = document.getElementById('registerBtn'); const signOutBtn = document.getElementById('signOutBtn'); const loginForm = document.getElementById('loginForm'); const registerForm = document.getElementById('registerForm'); const loginUsername = document.getElementById('loginUsername'); const loginPassword = document.getElementById('loginPassword'); const registerUsername = document.getElementById('registerUsername'); const registerPassword = document.getElementById('registerPassword'); const loginSubmit = document.getElementById('loginSubmit'); const registerSubmit = document.getElementById('registerSubmit'); const loginError = document.getElementById('loginError'); const registerError = document.getElementById('registerError'); const formNote = document.getElementById('formNote'); // Auth state listener onAuthStateChanged(auth, async (user) => { if (user) { authDiv.style.display = 'none'; userDiv.style.display = 'block'; hideForms(); // Fetch user data and set username in header const userDoc = await getDoc(doc(db, 'users', user.uid)); if (userDoc.exists()) { const data = userDoc.data(); const username = data.username || user.displayName || user.email.split('@')[0] || 'غير محدد'; const usernameSpan = document.getElementById('username'); if (usernameSpan) { usernameSpan.textContent = username; } } } else { authDiv.style.display = 'block'; userDiv.style.display = 'none'; hideForms(); } }); // Show login form loginBtn.addEventListener('click', () => { authDiv.style.display = 'none'; loginForm.style.display = 'block'; registerForm.style.display = 'none'; formNote.style.display = 'block'; formNote.innerHTML = 'ليس لديك حساب؟ التسجيل'; }); // Show register form registerBtn.addEventListener('click', () => { authDiv.style.display = 'none'; registerForm.style.display = 'block'; loginForm.style.display = 'none'; formNote.style.display = 'block'; formNote.innerHTML = 'لديك حساب بالفعل؟ تسجيل الدخول'; }); // Switch to register document.addEventListener('click', (e) => { if (e.target.id === 'switchToRegister') { e.preventDefault(); loginForm.style.display = 'none'; registerForm.style.display = 'block'; formNote.innerHTML = 'لديك حساب بالفعل؟ تسجيل الدخول'; } }); // Switch to login document.addEventListener('click', (e) => { if (e.target.id === 'switchToLogin') { e.preventDefault(); registerForm.style.display = 'none'; loginForm.style.display = 'block'; formNote.innerHTML = 'ليس لديك حساب؟ التسجيل'; } }); // Register registerSubmit.addEventListener('click', async () => { const username = registerUsername.value.trim(); const password = registerPassword.value; registerError.textContent = ''; if (!/^\d{11}$/.test(username)) { registerError.textContent = 'يجب أن يكون اسم المستخدم 11 رقم بالضبط.'; return; } if (password.length < 6) { registerError.textContent = 'يجب أن تكون كلمة المرور 6 أحرف على الأقل.'; return; } const email = username + '@quizapp.com'; try { const userCredential = await createUserWithEmailAndPassword(auth, email, password); await updateProfile(userCredential.user, { displayName: username }); // Add user to Firestore await setDoc(doc(db, 'users', userCredential.user.uid), { username: username, balance: 0, status: 'active', verified: false, availableQuizzes: 10, dateJoined: new Date().toISOString() }); // Registration successful, auth state will update } catch (error) { registerError.textContent = error.message; } }); // Login loginSubmit.addEventListener('click', async () => { const username = loginUsername.value.trim(); const password = loginPassword.value; loginError.textContent = ''; if (!/^\d{11}$/.test(username)) { loginError.textContent = 'يجب أن يكون اسم المستخدم 11 رقم بالضبط.'; return; } const email = username + '@quizapp.com'; try { await signInWithEmailAndPassword(auth, email, password); // Login successful, redirect to profile window.location.href = 'profile.php'; } catch (error) { loginError.textContent = error.message; } }); // Sign out signOutBtn.addEventListener('click', async () => { try { await signOut(auth); } catch (error) { console.error('Sign out error:', error); } }); function hideForms() { loginForm.style.display = 'none'; registerForm.style.display = 'none'; formNote.style.display = 'none'; } // Update server time every second function updateTime() { const now = new Date(); const cairoTime = now.toLocaleString('ar-EG', {timeZone: 'Africa/Cairo'}); document.getElementById('serverTime').textContent = cairoTime; } updateTime(); setInterval(updateTime, 1000); })();