/**
 * Panel Script - Toast Notifications
 */
(function() {
    'use strict';
    
    // ===== Toast Notification System =====
    window.PanelToast = {
        show: function(message, type) {
            type = type || 'success'; // success | error | warning | info
            
            var icons = {
                success: '✅',
                error: '❌',
                warning: '⚠️',
                info: 'ℹ️'
            };
            
            var colors = {
                success: { bg: '#f0fdf4', border: '#bbf7d0', text: '#166534', icon: '#16a34a' },
                error: { bg: '#fef2f2', border: '#fecaca', text: '#991b1b', icon: '#dc2626' },
                warning: { bg: '#fffbeb', border: '#fde68a', text: '#92400e', icon: '#f59e0b' },
                info: { bg: '#eff6ff', border: '#bfdbfe', text: '#1e40af', icon: '#3b82f6' }
            };
            
            var c = colors[type];
            
            // حذف toast قبلی
            var old = document.querySelector('.panel-toast');
            if (old) old.remove();
            
            // ساخت toast
            var toast = document.createElement('div');
            toast.className = 'panel-toast panel-toast-' + type;
            toast.innerHTML = '<span class="toast-icon">' + icons[type] + '</span><span class="toast-text">' + message + '</span>';
            
            // استایل inline
            toast.style.cssText = [
                'position: fixed',
                'top: 24px',
                'left: 50%',
                'transform: translateX(-50%) translateY(-120px)',
                'background: ' + c.bg,
                'border: 1px solid ' + c.border,
                'color: ' + c.text,
                'padding: 14px 24px',
                'border-radius: 12px',
                'font-size: 14px',
                'font-weight: 500',
                'z-index: 999999',
                'display: flex',
                'align-items: center',
                'gap: 10px',
                'box-shadow: 0 8px 24px rgba(0,0,0,0.1)',
                'backdrop-filter: blur(8px)',
                'transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)',
                'font-family: inherit',
                'max-width: 500px',
                'text-align: center',
                'direction: rtl'
            ].join(';');
            
            document.body.appendChild(toast);
            
            // انیمیشن ورود
            setTimeout(function() {
                toast.style.transform = 'translateX(-50%) translateY(0)';
            }, 50);
            
            // حذف بعد از ۴ ثانیه
            setTimeout(function() {
                toast.style.transform = 'translateX(-50%) translateY(-120px)';
                toast.style.opacity = '0';
                setTimeout(function() {
                    if (toast.parentNode) toast.remove();
                }, 400);
            }, 4000);
        },
        
        success: function(msg) { this.show(msg, 'success'); },
        error: function(msg) { this.show(msg, 'error'); },
        warning: function(msg) { this.show(msg, 'warning'); },
        info: function(msg) { this.show(msg, 'info'); }
    };
    
    // ===== Ajax Handler =====
    window.handleAjax = function(form, action, btn) {
        if (!form || !btn) return;
        
        var originalText = btn.textContent;
        btn.disabled = true;
        btn.textContent = 'لطفاً صبر کنید...';
        
        var formData = new FormData(form);
        formData.append('action', action);
        
        fetch(panelAjax.ajaxurl, {
            method: 'POST',
            credentials: 'same-origin',
            body: formData
        })
        .then(function(res) { return res.json(); })
        .then(function(data) {
            if (data.success) {
                PanelToast.success(data.data.message || data.data);
                if (data.data.redirect) {
                    setTimeout(function() { window.location.href = data.data.redirect; }, 800);
                } else if (action === 'panel_register') {
                    setTimeout(function() { window.location.href = panelAjax.loginUrl; }, 2000);
                }
            } else {
                PanelToast.error(data.data);
                btn.disabled = false;
                btn.textContent = originalText;
            }
        })
        .catch(function() {
            PanelToast.error('خطا در ارتباط با سرور');
            btn.disabled = false;
            btn.textContent = originalText;
        });
    };
    
    // ===== DOM Ready =====
    document.addEventListener('DOMContentLoaded', function() {
        
        // Login Form
        var loginForm = document.getElementById('loginForm');
        if (loginForm) {
            loginForm.addEventListener('submit', function(e) {
                e.preventDefault();
                var btn = this.querySelector('.btn-submit');
                if (!btn) btn = this.querySelector('button[type="submit"]');
                handleAjax(this, 'panel_login', btn);
            });
        }
        
        // Register Form
        var registerForm = document.getElementById('regForm');
        if (registerForm) {
            
            // Password match check
            var passInput = document.getElementById('password');
            var passConfirm = document.getElementById('password_confirm');
            if (passInput && passConfirm) {
                function checkMatch() {
                    var p = passInput.value, c = passConfirm.value;
                    var el = document.getElementById('passMatch');
                    if (!el) return;
                    if (!c) { el.textContent = ''; el.className = 'pass-match-msg'; return; }
                    if (p === c) { el.textContent = '✅ مطابقت'; el.className = 'pass-match-msg ok'; }
                    else { el.textContent = '❌ مغایرت'; el.className = 'pass-match-msg no'; }
                }
                passInput.addEventListener('input', checkMatch);
                passConfirm.addEventListener('input', checkMatch);
            }
            
            registerForm.addEventListener('submit', function(e) {
                e.preventDefault();
                var form = this;
                var btn = form.querySelector('.btn-submit');
                if (!btn) btn = form.querySelector('button[type="submit"]');
                
                // Mobile check
                var mob = form.querySelector('input[name="mobile"]');
                if (mob && !mob.value.match(/^09[0-9]{9}$/)) {
                    PanelToast.error('شماره موبایل نامعتبر است');
                    return;
                }
                
                // Password check
                if (passInput && passConfirm) {
                    if (passInput.value.length < 8) {
                        PanelToast.error('رمز عبور باید حداقل ۸ کاراکتر باشد');
                        return;
                    }
                    if (passInput.value !== passConfirm.value) {
                        PanelToast.error('رمز عبور و تکرار آن مطابقت ندارند');
                        return;
                    }
                }
                
                handleAjax(this, 'panel_register', btn);
            });
        }
        
        // Mobile menu toggle
        var menuToggle = document.getElementById('menuToggle');
        var sidebar = document.getElementById('sidebar');
        if (menuToggle && sidebar) {
            menuToggle.addEventListener('click', function() {
                sidebar.classList.toggle('open');
            });
        }
        
    });
    
})();