<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once __DIR__ . '/../db.php';

$token = trim($_GET['token'] ?? '');
$error = '';
$success = false;

// التحقق من صلاحية التوكن
$invite = null;
if ($token) {
    $stmt = $pdo->prepare("SELECT * FROM admin_invitations WHERE token=? AND used=0 AND expiry > NOW()");
    $stmt->execute([$token]);
    $invite = $stmt->fetch();
}

if (!$invite && $token) {
    $error = 'رابط الدعوة غير صالح أو منتهي الصلاحية.';
}

// معالجة تعيين كلمة المرور
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $invite) {
    $pass  = $_POST['password']  ?? '';
    $pass2 = $_POST['password2'] ?? '';

    if (empty($pass) || empty($pass2)) {
        $error = 'يرجى ملء جميع الحقول.';
    } elseif ($pass !== $pass2) {
        $error = 'كلمتا المرور غير متطابقتين.';
    } elseif (strlen($pass) < 8) {
        $error = 'كلمة المرور يجب أن تكون 8 أحرف على الأقل.';
    } elseif (!preg_match('/[A-Z]/', $pass)) {
        $error = 'كلمة المرور يجب أن تحتوي على حرف كبير واحد على الأقل.';
    } elseif (!preg_match('/[0-9]/', $pass)) {
        $error = 'كلمة المرور يجب أن تحتوي على رقم واحد على الأقل.';
    } else {
        // التحقق أن الإيميل غير مسجل مسبقاً
        $check = $pdo->prepare("SELECT COUNT(*) FROM admin WHERE email=?");
        $check->execute([$invite['email']]);
        if ($check->fetchColumn() > 0) {
            $error = 'هذا البريد الإلكتروني مسجل مسبقاً، تواصل مع المسؤول الرئيسي.';
        } else {
            try {
                $pdo->beginTransaction();
                $pdo->prepare("INSERT INTO admin (email, password) VALUES (?, ?)")
                    ->execute([$invite['email'], password_hash($pass, PASSWORD_DEFAULT)]);
                $pdo->prepare("UPDATE admin_invitations SET used=1 WHERE id=?")
                    ->execute([$invite['id']]);
                $pdo->commit();
                $success = true;
            } catch (Exception $e) {
                $pdo->rollBack();
                $error = 'حدث خطأ، يرجى المحاولة مجدداً.';
            }
        }
    }
}
?>
<!DOCTYPE html>
<html dir="rtl" lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>تفعيل حساب المسؤول</title>
<link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@400;700;900&display=swap" rel="stylesheet">
<style>
:root{
    --primary:#1E40AF;--primary-l:#3B82F6;
    --success:#059669;--success-l:#D1FAE5;
    --danger:#DC2626;--danger-l:#FEE2E2;
    --border:#E2E8F0;--text:#0F172A;--text-2:#475569;--text-3:#94A3B8;
    --bg:#F1F5F9;--surface:#FFFFFF;
    --radius:14px;--radius-sm:8px;--tr:all 0.22s ease;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;font-family:'Tajawal',sans-serif}
body{background:var(--bg);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.card{background:var(--surface);border-radius:var(--radius);box-shadow:0 8px 32px rgba(0,0,0,0.10);padding:40px 36px;max-width:440px;width:100%;animation:fadeUp .4s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.logo{text-align:center;margin-bottom:28px}
.logo-icon{background:linear-gradient(135deg,var(--primary),var(--primary-l));width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.logo h1{font-size:20px;font-weight:900;color:var(--text)}
.logo p{font-size:13px;color:var(--text-3);margin-top:4px}
.msg{padding:12px 16px;border-radius:var(--radius-sm);display:flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:700;margin-bottom:20px}
.msg-error  {background:var(--danger-l);color:var(--danger);border:1px solid #FECACA}
.msg-success{background:var(--success-l);color:var(--success);border:1px solid #A7F3D0}
.email-badge{background:#EFF6FF;border:1.5px solid #BFDBFE;border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:22px;text-align:center}
.email-badge span{display:block;font-size:11px;color:var(--text-3);margin-bottom:2px}
.email-badge strong{font-size:15px;color:var(--primary)}
.form-group{margin-bottom:18px}
.form-group label{display:block;margin-bottom:7px;font-weight:700;font-size:13px;color:var(--text)}
.input-wrap{position:relative}
input[type=password],input[type=text]{width:100%;padding:11px 14px;padding-left:42px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:'Tajawal',sans-serif;color:var(--text);transition:var(--tr)}
input:focus{border-color:var(--primary-l);outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
input.ok {border-color:var(--success)!important;background:#F0FDF4!important}
input.err{border-color:var(--danger)!important;background:#FFF5F5!important}
.eye-btn{position:absolute;left:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-3);display:flex;align-items:center}
.pass-rules{background:#F8FAFC;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-top:8px;display:none}
.pass-rules.show{display:block}
.rule{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3);margin-bottom:5px;transition:var(--tr)}
.rule:last-child{margin-bottom:0}
.rule.ok{color:var(--success)}
.rule .dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);flex-shrink:0;transition:var(--tr)}
.rule.ok .dot{background:var(--success)}
.match-note{font-size:12px;margin-top:5px;font-weight:700}
.btn{width:100%;padding:13px;border-radius:var(--radius-sm);font-size:15px;font-weight:900;cursor:pointer;border:none;transition:var(--tr);display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.btn-primary{background:var(--primary);color:white}
.btn-primary:hover{background:#1E3A8A;transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,64,175,.3)}
.success-box{text-align:center;padding:16px 0}
.success-icon{font-size:52px;margin-bottom:16px}
.success-box h2{font-size:20px;font-weight:900;color:var(--success);margin-bottom:8px}
.success-box p{font-size:14px;color:var(--text-2);margin-bottom:24px;line-height:1.7}
.btn-login{background:var(--primary);color:white;padding:12px 28px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:var(--tr)}
.btn-login:hover{background:#1E3A8A}
.expired-box{text-align:center;padding:16px 0}
.expired-icon{font-size:52px;margin-bottom:16px}
.expired-box h2{font-size:18px;font-weight:900;color:var(--danger);margin-bottom:8px}
.expired-box p{font-size:13px;color:var(--text-2);line-height:1.7}
</style>
</head>
<body>
<div class="card">
    <div class="logo">
        <div class="logo-icon">
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/></svg>
        </div>
        <h1>تفعيل حساب المسؤول</h1>
        <p>لوحة تحكم المتجر</p>
    </div>

    <?php if ($success): ?>
    <div class="success-box">
        <div class="success-icon">✅</div>
        <h2>تم إنشاء حسابك بنجاح!</h2>
        <p>يمكنك الآن تسجيل الدخول إلى لوحة التحكم باستخدام بريدك الإلكتروني وكلمة المرور التي اخترتها.</p>
        <a href="login.php" class="btn-login">
            <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M15 3h4a2 2 0 012 2v14a2 2 0 01-2 2h-4"/><polyline points="10 17 15 12 10 7"/><line x1="15" y1="12" x2="3" y2="12"/></svg>
            تسجيل الدخول الآن
        </a>
    </div>

    <?php elseif (!$token || !$invite): ?>
    <div class="expired-box">
        <div class="expired-icon">⏰</div>
        <h2>رابط غير صالح أو منتهي</h2>
        <p>هذا الرابط إما منتهي الصلاحية (أكثر من 24 ساعة) أو تم استخدامه مسبقاً.<br>تواصل مع المسؤول الرئيسي لإرسال دعوة جديدة.</p>
        <?php if ($error): ?>
        <div class="msg msg-error" style="margin-top:16px;text-align:right">⚠️ <?= htmlspecialchars($error) ?></div>
        <?php endif; ?>
    </div>

    <?php else: ?>

    <?php if ($error): ?>
    <div class="msg msg-error">❌ <?= htmlspecialchars($error) ?></div>
    <?php endif; ?>

    <div class="email-badge">
        <span>ستُسجَّل بهذا البريد الإلكتروني</span>
        <strong><?= htmlspecialchars($invite['email']) ?></strong>
    </div>

    <form method="POST" onsubmit="return validateForm()">
        <div class="form-group">
            <label>كلمة المرور الجديدة <span style="color:#DC2626">*</span></label>
            <div class="input-wrap">
                <input type="password" name="password" id="pwd" required placeholder="••••••••" oninput="checkPwd()">
                <button type="button" class="eye-btn" onclick="togPwd('pwd',this)">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
                </button>
            </div>
            <div class="pass-rules" id="pwdRules">
                <div class="rule" id="r-len"><span class="dot"></span>8 أحرف على الأقل</div>
                <div class="rule" id="r-upper"><span class="dot"></span>حرف كبير (A-Z)</div>
                <div class="rule" id="r-num"><span class="dot"></span>رقم (0-9)</div>
            </div>
        </div>

        <div class="form-group">
            <label>تأكيد كلمة المرور <span style="color:#DC2626">*</span></label>
            <div class="input-wrap">
                <input type="password" name="password2" id="pwd2" required placeholder="••••••••" oninput="checkPwd2()">
                <button type="button" class="eye-btn" onclick="togPwd('pwd2',this)">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
                </button>
            </div>
            <div class="match-note" id="matchNote"></div>
        </div>

        <button type="submit" class="btn btn-primary">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg>
            تفعيل الحساب
        </button>
    </form>

    <?php endif; ?>
</div>

<script>
function togPwd(id, btn) {
    const inp = document.getElementById(id);
    const show = inp.type === 'password';
    inp.type = show ? 'text' : 'password';
    btn.innerHTML = show
        ? '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>'
        : '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>';
}
function checkPwd() {
    const val = document.getElementById('pwd').value;
    const rules = document.getElementById('pwdRules');
    rules.classList.toggle('show', val.length > 0);
    const ok = (r, v) => document.getElementById(r).classList.toggle('ok', v);
    ok('r-len',   val.length >= 8);
    ok('r-upper', /[A-Z]/.test(val));
    ok('r-num',   /[0-9]/.test(val));
    checkPwd2();
}
function checkPwd2() {
    const p1 = document.getElementById('pwd').value;
    const p2 = document.getElementById('pwd2').value;
    const note = document.getElementById('matchNote');
    const inp2 = document.getElementById('pwd2');
    if (!p2) { note.textContent = ''; inp2.classList.remove('ok','err'); return; }
    if (p1 === p2) {
        note.style.color = 'var(--success)'; note.textContent = '✅ متطابقتان';
        inp2.classList.add('ok'); inp2.classList.remove('err');
    } else {
        note.style.color = 'var(--danger)'; note.textContent = '❌ غير متطابقتين';
        inp2.classList.add('err'); inp2.classList.remove('ok');
    }
}
function validateForm() {
    const p = document.getElementById('pwd').value;
    const p2 = document.getElementById('pwd2').value;
    if (p.length < 8 || !/[A-Z]/.test(p) || !/[0-9]/.test(p)) {
        alert('كلمة المرور يجب أن تحتوي على 8 أحرف + حرف كبير + رقم');
        return false;
    }
    if (p !== p2) { alert('كلمتا المرور غير متطابقتين'); return false; }
    return true;
}
</script>
</body>
</html>