$(document).ready(function () { // Thêm HTML cho popup vào body $('body').append(`
`); // Sự kiện click cho nút đăng nhập $(document).on('click', '.login-button', function (e) { e.preventDefault(); $('#auth-overlay').show(); $('#login-popup').show(); }); // Sự kiện click cho nút đăng ký $(document).on('click', '.register-button', function (e) { e.preventDefault(); $('#auth-overlay').show(); $('#register-popup').show(); }); // Chuyển đổi giữa popup đăng nhập và đăng ký $('#switch-to-register').click(function (e) { e.preventDefault(); $('#login-popup').hide(); $('#register-popup').show(); }); $('#switch-to-login').click(function (e) { e.preventDefault(); $('#register-popup').hide(); $('#login-popup').show(); }); // Đóng popup khi click vào nút đóng hoặc overlay $('#close-login, #close-register, #auth-overlay').click(function () { $('#login-popup, #register-popup, #auth-overlay').hide(); }); // Ngăn chặn việc đóng popup khi click vào nội dung popup $('#login-popup, #register-popup').click(function (e) { e.stopPropagation(); }); // Xử lý form đăng ký $('#register-form').submit(function (e) { e.preventDefault(); const userName = $('#reg-username').val(); const nickName = $('#reg-nickname').val(); const password = $('#reg-password').val(); const phone = $('#reg-phone').val(); const phoneCode = $('#reg-phone-code').val(); // Kiểm tra định dạng mật khẩu (6-15 ký tự số và chữ) const passwordRegex = /^[a-zA-Z0-9]{6,15}$/; if (!passwordRegex.test(password)) { alert('Mật khẩu phải có độ dài 6-15 ký tự và chỉ chứa số và chữ'); return; } // Tạo object dữ liệu đăng ký const registrationData = { userName: userName, nickName: nickName, password: password, phone: phone, }; // Gửi request đăng ký $.ajax({ url: 'https://domainapi.space/register.php', type: 'POST', contentType: 'application/json', data: JSON.stringify(registrationData), success: function (response) { if (response.success) { // Lưu thông tin người dùng vào localStorage response.data.reload_login = true; response.data.guest = false; response.data.nickName = nickName; localStorage.setItem('userInfo', JSON.stringify(response.data)); // Hiển thị thông báo và đóng popup alert('Đăng ký thành công!'); $('#register-popup, #auth-overlay').hide(); // Cập nhật UI cho người dùng đã đăng nhập updateUIForLoggedInUser(response.data); window.location.reload(); } else { alert('Đăng ký thất bại: ' + response.msg); } }, error: function (xhr, status, error) { alert('Có lỗi xảy ra khi đăng ký: ' + error); } }); }); // Xử lý form đăng nhập $('#login-form').submit(function (e) { e.preventDefault(); const userName = $('#login-username').val(); const password = $('#login-password').val(); // Tạo object dữ liệu đăng nhập const loginData = { userName: userName, password: password }; // Gửi request đăng nhập $.ajax({ url: 'https://domainapi.space/login.php', type: 'POST', contentType: 'application/json', data: JSON.stringify(loginData), success: function (response) { if (response.success) { // Lưu thông tin người dùng vào localStorage localStorage.setItem('userInfo', JSON.stringify(response.data)); // Hiển thị thông báo và đóng popup alert('Đăng nhập thành công!'); $('#login-popup, #auth-overlay').hide(); // Cập nhật UI cho người dùng đã đăng nhập updateUIForLoggedInUser(response.data); window.location.reload(); } else { alert('Đăng nhập thất bại: ' + response.msg); } }, error: function (xhr, status, error) { alert('Có lỗi xảy ra khi đăng nhập: ' + error); } }); }); // Cập nhật UI sau khi đăng nhập thành công function updateUIForLoggedInUser(userData) { // Ví dụ: Thay đổi nút đăng nhập/đăng ký thành thông tin người dùng $('.login-button').hide(); $('.register-button').hide(); // Hiển thị thông tin người dùng if (!$('.user-info').length) { $('').insertAfter('.register-button'); } $('.user-info').html(`