<?php
$pageTitle = '手机号码套餐';
require_once __DIR__ . '/config.php';
require_once __DIR__ . '/includes/header.php';
$pdo = getDB();

// Load phone packages
$packages = $pdo->query("SELECT * FROM phone_packages ORDER BY id")->fetchAll();

// Load devices for add-on selection
$devices = $pdo->query("SELECT * FROM devices ORDER BY id")->fetchAll();

// Shipping fee
$shipping_fee = floatval(getSetting('shipping_fee') ?? 3.50);
$devices_json = json_encode(array_values(array_map(fn($d) => [
    'id'    => (int)$d['id'],
    'name'  => $d['name'],
    'price' => (float)$d['price'],
    'desc'  => $d['description'],
], $devices)));

// Badge helper
function pkgBadge($name) {
    if (strpos($name, '爱沙尼亚') !== false) return '<span class="badge bg-success ms-2">永久免费保号,国家代码(+372)</span>';
    if (strpos($name, '香港验证') !== false) return '<span class="badge bg-info text-dark ms-2">非实名·半年</span>';
    if (strpos($name, '香港') !== false) return '<span class="badge bg-warning text-dark ms-2">需实名制</span>';
    return '';
}
function pkgFlag($name) {
    if (strpos($name, '美国') !== false)
        return '<img src="https://flagcdn.com/w40/us.png" srcset="https://flagcdn.com/w80/us.png 2x" class="phone-flag-img" alt="US">';
    if (strpos($name, '爱沙尼亚') !== false)
        return '<img src="https://flagcdn.com/w40/ee.png" srcset="https://flagcdn.com/w80/ee.png 2x" class="phone-flag-img" alt="EE">';
    if (strpos($name, '香港') !== false)
        return '<img src="https://flagcdn.com/w40/hk.png" srcset="https://flagcdn.com/w80/hk.png 2x" class="phone-flag-img" alt="HK">';
    return '<i class="fas fa-sim-card me-1"></i>';
}
function pkgColor($name) {
    if (strpos($name, '爱沙尼亚') !== false) return 'success';
    if (strpos($name, '香港验证') !== false) return 'info';
    if (strpos($name, '香港') !== false) return 'danger';
    return 'primary';
}
function devIcon($name) {
    if (strpos($name, '写卡器') !== false) return 'usb';
    if (strpos($name, '可编程') !== false) return 'microchip';
    return 'sim-card';
}
?>

<style>
/* ── 套餐卡片 ── */
.phone-pkg-card {
    cursor: pointer;
    transition: all .22s;
    border: 2px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.phone-pkg-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0,0,0,.10);
    border-color: #c7d2fe;
}
.phone-pkg-card.selected {
    border-color: #4f46e5;
    box-shadow: 0 0 0 3px rgba(79,70,229,.18);
}
.phone-pkg-card.selected .pkg-check-icon { display: inline !important; }
.pkg-check-icon { display: none; }

/* 卡片头部 */
.pkg-card-header {
    padding: 14px 16px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 14px 14px 0 0;
}
.pkg-flag-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .95rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}
.phone-flag-img {
    width: 28px;
    height: auto;
    border-radius: 3px;
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.pkg-badge-wrap {
    margin-top: 6px;
    padding: 0 16px 10px;
}

/* 卡片主体 */
.pkg-card-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.pkg-desc-text {
    font-size: .78rem;
    color: #64748b;
    line-height: 1.55;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px dashed #e2e8f0;
}

/* 特性标签组 */
.pkg-features {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 14px;
    flex: 1;
}
.pkg-feat {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: .77rem;
    line-height: 1.45;
    color: #374151;
}
.pkg-feat .feat-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    margin-top: 1px;
}
.feat-icon.green  { background: #dcfce7; color: #16a34a; }
.feat-icon.blue   { background: #dbeafe; color: #2563eb; }
.feat-icon.orange { background: #fff7ed; color: #ea580c; }
.feat-icon.teal   { background: #ccfbf1; color: #0d9488; }
.feat-icon.purple { background: #ede9fe; color: #7c3aed; }
.feat-icon.red    { background: #fee2e2; color: #dc2626; }

/* 分隔线 + 专属特性区 */
.pkg-special {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.pkg-special .pkg-feat { font-size: .76rem; }

/* 价格区 */
.pkg-price-row {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
}
.pkg-price-row .price-num {
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1;
}
.pkg-price-row .price-unit {
    font-size: .78rem;
    color: #94a3b8;
    font-weight: 500;
}
.pkg-price-row .price-dollar {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 4px;
}

/* ── 设备选择 ── */
.addon-label { cursor: pointer; transition: all .2s; }
.addon-label.selected { border-color: #198754 !important; box-shadow: 0 0 0 2px #198754; }
.addon-label.selected .addon-check-icon { display: inline !important; }
.addon-check-icon { display: none; }
.selected-phones-summary { background: #f8f9fa; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.pay-label.pay-selected { border-color: #0d6efd !important; background: rgba(13,110,253,.06); }
</style>

<div class="container py-5">
    <div class="text-center mb-5">
        <h2 class="fw-bold">请选择手机号码套餐</h2>
        <p class="text-muted">支持接收短信和语音通话/大客户可工单联系专享定制方案</p>
        <div class="alert alert-primary d-inline-block px-4 py-2 mt-2">
            <i class="fas fa-info-circle me-2"></i>请选择一个号码套餐，搭配设备可选
        </div>
    </div>

    <!-- ===== Step 1: Select phone packages ===== -->
    <div class="mb-4">
        <h5 class="fw-bold mb-3"><span class="badge bg-primary me-2">1</span>选择号码套餐</h5>
        <div class="row g-4">
            <?php foreach ($packages as $pkg):
                $isHKVerify = strpos($pkg['name'], '香港验证') !== false;
                $isHK       = !$isHKVerify && strpos($pkg['name'], '香港') !== false;
                $isEE       = strpos($pkg['name'], '爱沙尼亚') !== false;
                $colorMap   = ['primary'=>'#4f46e5','success'=>'#059669','info'=>'#0891b2','danger'=>'#dc2626'];
                $clr        = pkgColor($pkg['name']);
                $hexClr     = $colorMap[$clr] ?? '#4f46e5';
            ?>
            <div class="col-md-6 col-lg-3">
                <div class="phone-pkg-card h-100 d-flex flex-column position-relative"
                     data-pkg-id="<?php echo $pkg['id']; ?>"
                     data-pkg-name="<?php echo htmlspecialchars($pkg['name'], ENT_QUOTES); ?>"
                     data-pkg-price="<?php echo number_format((float)$pkg['price'], 2, '.', ''); ?>"
                     onclick="togglePhonePkg(this)">

                    <!-- 卡头 -->
                    <div class="pkg-card-header" style="background:linear-gradient(135deg,<?php echo $hexClr; ?> 0%,<?php echo $hexClr; ?>cc 100%)">
                        <div class="pkg-flag-name">
                            <?php echo pkgFlag($pkg['name']); ?>
                            <span><?php echo htmlspecialchars($pkg['name']); ?></span>
                        </div>
                        <span class="pkg-check-icon text-white"><i class="fas fa-check-circle fa-lg"></i></span>
                    </div>
                    <?php if (pkgBadge($pkg['name'])): ?>
                    <div class="pkg-badge-wrap" style="background:<?php echo $hexClr; ?>22">
                        <?php echo pkgBadge($pkg['name']); ?>
                    </div>
                    <?php endif; ?>

                    <!-- 卡体 -->
                    <div class="pkg-card-body">

                        <!-- 套餐描述 -->
                        <?php if (!empty($pkg['description'])): ?>
                        <div class="pkg-desc-text"><?php echo htmlspecialchars($pkg['description']); ?></div>
                        <?php endif; ?>

                        <!-- 通用特性 -->
                        <div class="pkg-features">
                            <div class="pkg-feat">
                                <span class="feat-icon green"><i class="fas fa-phone"></i></span>
                                <span>本地电话号码</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon green"><i class="fas fa-sms"></i></span>
                                <span>接收短信验证码</span>
                            </div>
                            <?php if (!$isHKVerify): ?>
                            <div class="pkg-feat">
                                <span class="feat-icon blue"><i class="fas fa-bolt"></i></span>
                                <span>eSIM 即时激活</span>
                            </div>
                            <?php endif; ?>
                            <div class="pkg-feat">
                                <span class="feat-icon purple"><i class="fas fa-signal"></i></span>
                                <span>4G/5G 独享家宽住宅 IP</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon teal"><i class="fas fa-wifi"></i></span>
                                <span>支持热点 / CPE / 软路由，多人共享</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon orange"><i class="fas fa-globe"></i></span>
                                <span>纯净 IP，可注册海外苹果 ID / 银行账户</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon blue"><i class="fas fa-chart-line"></i></span>
                                <?php if ($isHK): ?>
                                <span>香港纯净IP,适用于外贸Tiktok等电商平台</span>
                                <?php elseif ($isHKVerify): ?>
                                <span>香港IP仅适用于外贸等,没有国际AI加持</span>
                                <?php else: ?>
                                <span>外贸直连 TK / GPT / Gemini IP 加权</span>
                                <?php endif; ?>
                            </div>
                        </div>

                        <!-- 各产品专属特性 -->
                        <?php if ($isHKVerify): ?>
                        <div class="pkg-special">
                            <div class="pkg-feat">
                                <span class="feat-icon blue"><i class="fas fa-info"></i></span>
                                <span>仅收短信，不可发短信 / 接打电话</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon teal"><i class="fas fa-wifi"></i></span>
                                <span>含 3GB 高速 + 无限低速流量</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon green"><i class="fas fa-map-marker-alt"></i></span>
                                <span>实体 SIM 卡，中国大陆可用</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon orange"><i class="fas fa-redo"></i></span>
                                <span>可续费保号，香港精品号码</span>
                            </div>
                        </div>
                        <?php elseif ($isHK): ?>
                        <div class="pkg-special">
                            <div class="pkg-feat">
                                <span class="feat-icon orange"><i class="fas fa-dollar-sign"></i></span>
                                <span>含 $7 USD余额抵扣话费And流量/365天</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon blue"><i class="fas fa-id-card"></i></span>
                                <span>支持续费保号，需提交实名认证（商务）</span>
                            </div>
                        </div>
                        <?php elseif ($isEE): ?>
                        <div class="pkg-special">
                            <div class="pkg-feat">
                                <span class="feat-icon green"><i class="fas fa-infinity"></i></span>
                                <span>每 6 个月在线一次，永久免费保号</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon blue"><i class="fas fa-sim-card"></i></span>
                                <span>号码格式：372 开头 + 后 8 位数字</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon orange"><i class="fas fa-exclamation-triangle"></i></span>
                                <span>重要：蜂窝网络-关闭漫游功能</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon teal"><i class="fas fa-shopping-cart"></i></span>
                                <span>可单独购买短信/流量充値,工单咨询</span>
                            </div>
                        </div>
                        <?php elseif (!$isHK && !$isHKVerify && !$isEE): ?>
                        <div class="pkg-special">
                            <div class="pkg-feat">
                                <span class="feat-icon green"><i class="fab fa-whatsapp"></i></span>
                                <span>What's APP外贸人必备的电话号码</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon red"><i class="fas fa-exclamation-triangle"></i></span>
                                <span><strong>提醒</strong> 灰/黑产用户自行承担法律责任</span>
                            </div>
                            <div class="pkg-feat">
                                <span class="feat-icon orange"><i class="fas fa-redo"></i></span>
                                <span>续费：每个月 4 USD / 保号</span>
                            </div>
                        </div>
                        <?php endif; ?>

                        <!-- 价格 -->
                        <div class="pkg-price-row">
                            <span class="price-dollar text-<?php echo $clr; ?>">$</span>
                            <span class="price-num text-<?php echo $clr; ?>"><?php echo number_format($pkg['price'], 2); ?></span>
                            <span class="price-unit">USD</span>
                        </div>

                    </div><!-- /.pkg-card-body -->
                </div><!-- /.phone-pkg-card -->
            </div>
            <?php endforeach; ?>
        </div>
    </div>

    <!-- ===== Step 2: Add-on devices ===== -->
    <div class="card border-0 shadow-sm mb-4">
        <div class="card-body p-4">
            <h5 class="fw-bold mb-3"><span class="badge bg-secondary me-2">2</span>可选搭配实体设备 <span class="badge bg-light text-dark border fw-normal ms-1" style="font-size:.75rem">一次快递费</span></h5>
            <div class="row g-3" id="addon-container">
                <?php foreach ($devices as $dev): ?>
                <div class="col-md-4">
                    <label class="card border h-100 addon-label position-relative" style="cursor:pointer;">
                        <div class="card-body p-3 d-flex flex-column align-items-center text-center gap-1">
                            <input type="checkbox" class="addon-check visually-hidden"
                                data-price="<?php echo number_format((float)$dev['price'], 2, '.', ''); ?>"
                                data-id="<?php echo (int)$dev['id']; ?>"
                                data-name="<?php echo htmlspecialchars($dev['name'], ENT_QUOTES); ?>">
                            <i class="fas fa-<?php echo devIcon($dev['name']); ?> fa-2x mb-1" style="color:#6c757d"></i>
                            <div class="fw-semibold" style="font-size:.88rem"><?php echo htmlspecialchars($dev['name']); ?></div>
                            <div class="fw-bold <?php echo $dev['price']>0?'text-primary':'text-success'; ?>" style="font-size:1rem">
                                <?php echo $dev['price']>0 ? '$'.number_format((float)$dev['price'],2) : '<span class="badge bg-success">免费</span>'; ?>
                            </div>
                            <small class="text-muted" style="font-size:.75rem"><?php echo htmlspecialchars($dev['description']); ?></small>
                            <span class="addon-check-icon position-absolute top-0 end-0 m-2"><i class="fas fa-check-circle text-success"></i></span>
                        </div>
                    </label>
                </div>
                <?php endforeach; ?>
            </div>
            <div class="text-muted small mt-2"><i class="fas fa-info-circle me-1 text-primary"></i>选购设备后需填写收货地址，全单只收一次快递费 <strong>$<?php echo number_format($shipping_fee, 2); ?> USD</strong></div>
        </div>
    </div>

    <!-- ===== Step 3: Checkout button ===== -->
    <div class="text-center mt-2">
        <button class="btn btn-primary btn-lg px-5" id="checkoutBtn" onclick="openOrderModal()" disabled>
            <i class="fas fa-shopping-cart me-2"></i>确认下单 &nbsp;<span id="btn-total-display">$0.00</span> USD
        </button>
        <div class="text-muted small mt-2" id="select-hint">请先选择一个号码套餐</div>
    </div>
</div>

<!-- ===== Order Modal ===== -->
<div class="modal fade" id="orderModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header border-0 pb-0">
                <h5 class="modal-title fw-bold"><i class="fas fa-shopping-cart text-primary me-2"></i>下单确认</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <form method="POST" action="/checkout.php" id="orderForm" onsubmit="return validateOrderForm()">
                <input type="hidden" name="order_type" value="phone">
                <!-- phone package ids will be injected here by JS -->
                <div id="hidden-pkg-inputs"></div>
                <!-- addon device ids will be injected here by JS -->
                <div id="hidden-addon-inputs"></div>
                <!-- payment_method hidden field (always present, updated by JS) -->
                <input type="hidden" name="payment_method" id="payment_method_hidden" value="">
                <div class="modal-body pt-2">

                    <!-- Selected packages summary -->
                    <div class="mb-4">
                        <h6 class="fw-bold mb-2"><i class="fas fa-phone text-primary me-2"></i>已选号码套餐</h6>
                        <div id="modal-pkg-summary" class="selected-phones-summary"></div>
                    </div>

                    <!-- Shipping address (shown when any device is selected) -->
                    <div id="shipping-section" style="display:none;">
                        <h6 class="fw-bold mb-3"><i class="fas fa-truck text-warning me-2"></i>收货地址</h6>
                        <?php if (isLoggedIn()): $u = getCurrentUser(); ?>
                        <?php if (!empty($u['address'])): ?>
                        <div class="alert alert-light border mb-3 p-3">
                            <div class="mb-2 fw-semibold"><i class="fas fa-map-marker-alt text-danger me-2"></i>已保存地址</div>
                            <div class="text-muted small mb-2"><?php echo htmlspecialchars(($u['province']??'').' '.($u['city']??'').' '.($u['address']??'')); ?></div>
                            <div class="d-flex gap-4">
                                <div class="form-check">
                                    <input class="form-check-input" type="radio" name="use_saved_address" value="1" id="useSaved" checked onchange="toggleAddressForm()">
                                    <label class="form-check-label small" for="useSaved">使用此地址</label>
                                </div>
                                <div class="form-check">
                                    <input class="form-check-input" type="radio" name="use_saved_address" value="0" id="useNew" onchange="toggleAddressForm()">
                                    <label class="form-check-label small" for="useNew">填写新地址</label>
                                </div>
                            </div>
                        </div>
                        <?php endif; ?>
                        <?php endif; ?>
                        <div id="new-address-form" <?php echo (isLoggedIn() && !empty(getCurrentUser()['address']??'')) ? 'style="display:none;"' : ''; ?>>
                            <div class="row g-3">
                                <div class="col-md-6"><label class="form-label">收件人姓名 <span class="text-danger">*</span></label><input type="text" name="ship_name" class="form-control" placeholder="真实姓名"></div>
                                <div class="col-md-6"><label class="form-label">联系电话 <span class="text-danger">*</span></label><input type="text" name="ship_phone" class="form-control" placeholder="手机号码"></div>
                                <div class="col-md-4"><label class="form-label">省/州 <span class="text-danger">*</span></label><input type="text" name="ship_province" class="form-control" placeholder="省份/州"></div>
                                <div class="col-md-4"><label class="form-label">城市 <span class="text-danger">*</span></label><input type="text" name="ship_city" class="form-control" placeholder="城市"></div>
                                <div class="col-md-4"><label class="form-label">邮政编码</label><input type="text" name="ship_zip" class="form-control" placeholder="邮编"></div>
                                <div class="col-12"><label class="form-label">详细地址 <span class="text-danger">*</span></label><input type="text" name="ship_address" class="form-control" placeholder="街道、门牌号等详细地址"></div>
                            </div>
                        </div>
                    </div>

                    <!-- Price summary -->
                    <div class="card bg-light border-0 mt-4">
                        <div class="card-body p-3">
                            <div id="modal-pkg-price-rows"></div>
                            <div class="d-flex justify-content-between mb-1 text-muted small" id="sum-devices-row" style="display:none;">
                                <span>设备费用</span><span>$<span id="sum-devices">0.00</span> USD</span>
                            </div>
                            <div class="d-flex justify-content-between mb-1 text-muted small" id="sum-shipping-row" style="display:none;">
                                <span>快递费</span><span>$<span id="sum-shipping">0.00</span> USD</span>
                            </div>
                            <hr class="my-2">
                            <div class="d-flex justify-content-between fw-bold fs-5">
                                <span>合计</span>
                                <span class="text-primary">$<span id="sum-total">0.00</span> USD</span>
                            </div>
                        </div>
                    </div>

                    <!-- Payment method -->
                    <h6 class="fw-bold mt-4 mb-3"><i class="fas fa-credit-card text-primary me-2"></i>选择支付方式</h6>
                    <div class="row g-2">
                        <div class="col-md-4">
                            <label class="card border pay-label h-100" style="cursor:pointer;" data-method="usdt">
                                <div class="card-body p-3 text-center">
                                    <div class="fw-bold">USDT</div><div class="small text-muted">TRC20链自动入账</div>
                                </div>
                            </label>
                        </div>
                        <div class="col-md-4">
                            <label class="card border pay-label h-100" style="cursor:pointer;" data-method="wechat">
                                <div class="card-body p-3 text-center">
                                    <div class="fw-bold">微信支付</div><div class="small text-muted">*去你妈的马化腾</div>
                                </div>
                            </label>
                        </div>
                        <div class="col-md-4">
                            <label class="card border pay-label h-100" style="cursor:pointer;" data-method="card">
                                <div class="card-body p-3 text-center">
                                    <div class="fw-bold">银行卡(银联)</div><div class="small text-muted">Visa/Master/Apple Pay</div>
                                </div>
                            </label>
                        </div>
                    </div>
                    <div id="pay-method-error" class="text-danger small mt-2" style="display:none;"><i class="fas fa-exclamation-circle me-1"></i>请选择支付方式</div>

                </div>
                <div class="modal-footer border-0">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
                    <button type="submit" class="btn btn-primary btn-lg px-5" id="modal-submit-btn">
                        <i class="fas fa-lock me-2"></i>确认下单 $<span id="modal-btn-total">0.00</span> USD
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
const SHIPPING_FEE = <?php echo $shipping_fee; ?>;
const DEVICES_DATA = <?php echo $devices_json; ?>;

// ── State ────────────────────────────────────────────────────────────────────
let selectedPkg = null;  // { id, name, price } — 单选，只保存一个
let selectedAddons = {}; // { id: { name, price } }
let selectedPayMethod = ''; // currently selected payment method

// ── Phone package toggle（单选模式）────────────────────────────────────────────
function togglePhonePkg(card) {
    <?php if (!isLoggedIn()): ?>
    window.location.href = '/login.php?redirect=' + encodeURIComponent(window.location.pathname);
    return;
    <?php endif; ?>
    const id    = card.dataset.pkgId;
    const name  = card.dataset.pkgName;
    const price = parseFloat(card.dataset.pkgPrice);

    // 取消所有卡片的选中状态
    document.querySelectorAll('.phone-pkg-card').forEach(function(c) {
        c.classList.remove('selected');
    });

    // 若点击的是已选中的套餐则取消选中，否则选中新套餐
    if (selectedPkg && selectedPkg.id === id) {
        selectedPkg = null;
    } else {
        selectedPkg = { id, name, price };
        card.classList.add('selected');
    }
    refreshCheckoutBtn();
}

// ── Addon device toggle ──────────────────────────────────────────────────────
document.querySelectorAll('.addon-label').forEach(function(label) {
    label.addEventListener('click', function(e) {
        e.preventDefault();
        const cb   = this.querySelector('.addon-check');
        const id   = cb.dataset.id;
        const name = cb.dataset.name;
        const price = parseFloat(cb.dataset.price || 0);
        if (selectedAddons[id]) {
            delete selectedAddons[id];
            this.classList.remove('selected');
        } else {
            selectedAddons[id] = { name, price };
            this.classList.add('selected');
        }
        refreshCheckoutBtn();
    });
});

// ── Refresh checkout button ──────────────────────────────────────────────────
function refreshCheckoutBtn() {
    const hasPkg = selectedPkg !== null;
    const addonCount = Object.keys(selectedAddons).length;
    const pkgTotal = hasPkg ? selectedPkg.price : 0;
    const addonTotal = Object.values(selectedAddons).reduce((s, d) => s + d.price, 0);
    const shippingTotal = addonCount > 0 ? SHIPPING_FEE : 0;
    const total = pkgTotal + addonTotal + shippingTotal;

    const btn = document.getElementById('checkoutBtn');
    const hint = document.getElementById('select-hint');
    document.getElementById('btn-total-display').textContent = '$' + total.toFixed(2);

    if (hasPkg) {
        btn.disabled = false;
        hint.textContent = '已选：' + selectedPkg.name + (addonCount > 0 ? ' + ' + addonCount + ' 件设备' : '');
    } else {
        btn.disabled = true;
        hint.textContent = '请先选择一个号码套餐';
    }
}

// ── Open order modal ─────────────────────────────────────────────────────────
function openOrderModal() {
    if (!selectedPkg) { alert('请先选择一个号码套餐'); return; }

    // Reset payment method selection
    selectedPayMethod = '';
    document.getElementById('payment_method_hidden').value = '';
    document.querySelectorAll('.pay-label').forEach(function(l) {
        l.classList.remove('pay-selected', 'border-primary');
    });
    document.getElementById('pay-method-error').style.display = 'none';

    // Inject hidden input for the single selected package
    const pkgContainer = document.getElementById('hidden-pkg-inputs');
    pkgContainer.innerHTML = '';
    const inp = document.createElement('input');
    inp.type = 'hidden'; inp.name = 'package_id'; inp.value = selectedPkg.id;
    pkgContainer.appendChild(inp);

    // Inject hidden inputs for addons
    const addonContainer = document.getElementById('hidden-addon-inputs');
    addonContainer.innerHTML = '';
    Object.keys(selectedAddons).forEach(function(id) {
        const ainp = document.createElement('input');
        ainp.type = 'hidden'; ainp.name = 'addon_devices[]'; ainp.value = id;
        addonContainer.appendChild(ainp);
    });

    // Build package summary
    const summaryEl = document.getElementById('modal-pkg-summary');
    const priceRowsEl = document.getElementById('modal-pkg-price-rows');
    summaryEl.innerHTML = '<div class="d-flex justify-content-between align-items-center py-1 border-bottom">' +
        '<span class="fw-semibold small">' + selectedPkg.name + '</span>' +
        '<span class="text-primary fw-bold">$' + selectedPkg.price.toFixed(2) + ' USD</span></div>';
    priceRowsEl.innerHTML = '<div class="d-flex justify-content-between mb-1 text-muted small">' +
        '<span>' + selectedPkg.name + '</span><span>$' + selectedPkg.price.toFixed(2) + ' USD</span></div>';

    const pkgTotal = selectedPkg.price;

    // Addon totals
    const addonCount = Object.keys(selectedAddons).length;
    const addonTotal = Object.values(selectedAddons).reduce((s, d) => s + d.price, 0);
    const shippingTotal = addonCount > 0 ? SHIPPING_FEE : 0;
    const total = pkgTotal + addonTotal + shippingTotal;

    document.getElementById('sum-devices').textContent = addonTotal.toFixed(2);
    document.getElementById('sum-shipping').textContent = shippingTotal.toFixed(2);
    document.getElementById('sum-total').textContent = total.toFixed(2);
    document.getElementById('modal-btn-total').textContent = total.toFixed(2);

    const devRow = document.getElementById('sum-devices-row');
    const shipRow = document.getElementById('sum-shipping-row');
    devRow.style.display = addonCount > 0 ? 'flex' : 'none';
    shipRow.style.display = addonCount > 0 ? 'flex' : 'none';

    // Show/hide shipping address section
    document.getElementById('shipping-section').style.display = addonCount > 0 ? 'block' : 'none';

    new bootstrap.Modal(document.getElementById('orderModal')).show();
}

// ── Address form toggle ──────────────────────────────────────────────────────
function toggleAddressForm() {
    const useSaved = document.getElementById('useSaved');
    const newForm = document.getElementById('new-address-form');
    if (newForm) newForm.style.display = (useSaved && useSaved.checked) ? 'none' : 'block';
}

// ── Payment method highlight ─────────────────────────────────────────────────
document.querySelectorAll('.pay-label').forEach(function(label) {
    label.addEventListener('click', function() {
        document.querySelectorAll('.pay-label').forEach(function(l) {
            l.classList.remove('pay-selected', 'border-primary', 'bg-primary-subtle');
        });
        this.classList.add('pay-selected', 'border-primary', 'bg-primary-subtle');
        selectedPayMethod = this.getAttribute('data-method');
        document.getElementById('payment_method_hidden').value = selectedPayMethod;
        document.getElementById('pay-method-error').style.display = 'none';
    });
});

// ── Form validation before submit ────────────────────────────────────────────
function validateOrderForm() {
    if (!selectedPayMethod) {
        document.getElementById('pay-method-error').style.display = 'block';
        return false;
    }
    document.getElementById('payment_method_hidden').value = selectedPayMethod;
    return true;
}
</script>

<?php require_once __DIR__ . '/includes/footer.php'; ?>
