/**
 * zutalw Custom Rotate Logic
 */
jQuery(document).ready(function($) {
    window.isPopupOpen = false;

    if (typeof window.ZutalwConfig === 'undefined') {
        window.ZutalwConfig = { ajax_url: '/wp-admin/admin-ajax.php', nonce: '', i18n: {} };
    }

    window.close_notify = function(elem, event) {
        if (event) { event.preventDefault(); event.stopPropagation(); }
        let parent = elem.closest('#zutalw-popup-notify') || elem.closest('.zutalw-notification-overlay');
        if (parent) jQuery(parent).fadeOut();
        
        setTimeout(function() {
            window.isPopupOpen = false;
            window.isGameLocked = false;
            // 🔥 ÉP RESET TRẠNG THÁI ĐỂ QUAY TIẾP
            window.s_rotated = false;
            window.winnerFound = false;
            window.canplay = false;
            
        }, 300);
    };

    window.close_popup = function(elem) {
        let parent = elem.closest(".zutalw-popup-form") || elem.closest(".zutalw-notification-overlay");
        if (parent) jQuery(parent).fadeOut();
        window.isPopupOpen = false;
        setTimeout(function() { window.s_rotated = false; window.winnerFound = false; window.isGameLocked = false; }, 300);
      
    };

    window.submit_customer = function(elem) {
        console.log("[ZutaLW Debug] Bắt đầu quá trình nộp Form...");
        
        let $form = jQuery(elem).closest("form");
        if (!$form.length) return;

        let fullname = $form.find(".fullname").val() ? $form.find(".fullname").val().trim() : '';
        let phone = $form.find(".phone").val() ? $form.find(".phone").val().trim() : '';
        let email = $form.find(".email").val() ? $form.find(".email").val().trim() : '';
        
        // Đảm bảo lấy được Config
        let cfg = window.ZutalwConfig || {};

        if (!fullname || !phone) {
            if (typeof window.zutalw_custom_alert === 'function') {
                window.zutalw_custom_alert("Vui lòng nhập tên và số điện thoại!");
            } else {
                alert("Vui lòng nhập tên và số điện thoại!");
            }
            return;
        }

        let $btn = jQuery(elem);
        let originalText = $btn.text();
        $btn.prop('disabled', true).text("...");

        let formData = {
            action: 'zutalw_InsCustomer',
            security: cfg.nonce,
            fullname: fullname,
            phone: phone,
            email: email,
            getgift: $form.find('input[name="getgift_hidden"]').val() || '',
            is_trade_in: $form.find('input[name="is_trade_in_hidden"]').val() || 0,
            device_id: window.zutalw_visitor_id || localStorage.getItem('zutalw_device_id'),
            campaign_id: (document.getElementById("area-game") || { dataset: { id: 1 } }).dataset.id,
            page_url: window.location.href
        };

        console.log("[ZutaLW Debug] Gửi dữ liệu AJAX:", formData);

        jQuery.ajax({
            url: cfg.ajax_url,
            type: 'POST',
            data: formData,
            success: function(response) {
                console.log("[ZutaLW Debug] Server phản hồi:", response);
                $btn.prop('disabled', false).text(originalText);
                
                // XÓA FORM NGAY SAU KHI THÀNH CÔNG
                jQuery('.zutalw-popup-form').remove();

                if (response && response.success) {
                    // Lưu thông tin để lần sau không phải nhập
                    localStorage.setItem('zutalw_saved_customer', JSON.stringify({fullname, phone, email}));
                    window.zutalw_form_submitted = true;

                    // Nếu là lượt Trade-in để đổi quà/level
                    if (response.data && response.data.is_trade_in == 1) {
                        window.zutalw_current_pool_level = 2;
                        if (typeof window.getdatascore === 'function') {
                            window.getdatascore(function(d) {
                                if (typeof window.restart_game === 'function') window.restart_game(d);
                            });
                        }
                    }
                    
                    // Hiện thông báo thành công
                    if (typeof window.zutalw_custom_alert === 'function') {
                        window.zutalw_custom_alert(response.data.message || "Thành công!");
                    }
                } else {
                    let errorMsg = (response.data && response.data.message) ? response.data.message : "Có lỗi xảy ra";
                    window.zutalw_custom_alert(errorMsg);
                }
            },
            error: function(xhr, status, error) {
                console.error("[ZutaLW Debug] Lỗi AJAX:", error);
                $btn.prop('disabled', false).text(originalText);
                window.zutalw_custom_alert("Lỗi kết nối máy chủ!");
            }
        });
    };

    window.zutalw_show_win = function(namegift, url_img, idcampain) {
        window.isPopupOpen = true;
        let url = ZutalwConfig.ajax_url + "?action=zutalw_popup&security=" + ZutalwConfig.nonce;
        let params = new URLSearchParams({ name_gif: namegift, url_img: url_img, idcampain: idcampain });

        fetch(url, { method: 'POST', body: params, headers: {'Content-type': 'application/x-www-form-urlencoded'} })
            .then(res => res.text())
            .then(html => {
                document.body.insertAdjacentHTML('beforeend', html);
                let p = jQuery(".zutalw-popup-form").last().css('display', 'flex');
                let saved = localStorage.getItem('zutalw_saved_customer');
                if (saved) {
                    let u = JSON.parse(saved);
                    p.find('.fullname').val(u.fullname); p.find('.phone').val(u.phone); p.find('.email').val(u.email);
                }
            });
    };

    // ==============================================================
    // 3. SUBMIT CUSTOMER FORM (ỦY QUYỀN SỰ KIỆN TOÀN CỤC)
    // ==============================================================

    // Sử dụng $(document).on để bắt các phần tử sinh ra sau từ AJAX
    jQuery(document).off('click', '#zutalw-submit-winner-btn').on('click', '#zutalw-submit-winner-btn', function(e) {
        e.preventDefault();
        e.stopPropagation();

        console.log("[ZutaLW Debug] Submit Button Clicked!");

        let $btn = jQuery(this);
        let $form = $btn.closest("form");
        
        // Thu thập dữ liệu
        let fullname = $form.find(".fullname").val() ? $form.find(".fullname").val().trim() : '';
        let phone = $form.find(".phone").val() ? $form.find(".phone").val().trim() : '';
        let email = $form.find(".email").val() ? $form.find(".email").val().trim() : '';

        if (!fullname || !phone) {
            window.zutalw_custom_alert("Please enter both Name and Phone number!");
            return;
        }

        // Vô hiệu hóa nút để tránh nộp nhiều lần
        let originalText = $btn.text();
        $btn.prop('disabled', true).text("Processing...");

        let formData = {
            action: 'zutalw_InsCustomer',
            security: window.ZutalwConfig.nonce,
            fullname: fullname,
            phone: phone,
            email: email,
            getgift: $form.find('input[name="getgift_hidden"]').val() || '',
            is_trade_in: $form.find('input[name="is_trade_in_hidden"]').val() || 0,
            device_id: window.zutalw_visitor_id || localStorage.getItem('zutalw_device_id'),
            campaign_id: (document.getElementById("area-game") || { dataset: { id: 1 } }).dataset.id,
            page_url: window.location.href
        };

        jQuery.ajax({
            url: window.ZutalwConfig.ajax_url,
            type: 'POST',
            data: formData,
            success: function(res) {
                console.log("[ZutaLW Debug] AJAX Response:", res);
                $btn.prop('disabled', false).text(originalText);

                if (res && res.success) {
                    // Lưu vào LocalStorage
                    localStorage.setItem('zutalw_saved_customer', JSON.stringify({fullname, phone, email}));
                    window.zutalw_form_submitted = true;

                    // Tắt form ngay lập tức
                    jQuery('.zutalw-popup-form').remove();

                    // Xử lý Trade-in
                    if (res.data && res.data.is_trade_in == 1) {
                        window.zutalw_current_pool_level = 2;
                        if (typeof window.getdatascore === 'function') {
                            window.getdatascore(function(d) {
                                if (typeof window.restart_game === 'function') window.restart_game(d);
                            });
                        }
                    }

                    window.zutalw_custom_alert(res.data.message || "Information submitted!");
                } else {
                    let msg = (res.data && res.data.message) ? res.data.message : "Submission failed.";
                    window.zutalw_custom_alert(msg);
                }
            },
            error: function() {
                $btn.prop('disabled', false).text(originalText);
                window.zutalw_custom_alert("Connection error. Please try again.");
            }
        });
    });
});
