<?php
session_start();
require_once 'inc/functions.php';
check404();
securityCheck();
if (!isLoggedIn()) {
    header('Location: index.php');
    exit;
}

// Текущий пользователь (залогиненный)
$currentUser = getUserById($_SESSION['user_id']);
if (!$currentUser) {
    session_destroy();
    header('Location: index.php');
    exit;
}

// ID просматриваемого профиля
$viewed_user_id = isset($_GET['id']) ? (int)$_GET['id'] : $currentUser['id'];
$profileUser = getUserById($viewed_user_id);

if (!$profileUser) {
    header('Location: profile.php');
    exit;
}

$is_own_profile = ($viewed_user_id == $currentUser['id']);

// Сообщения для админских действий
$adminMessage = '';
$adminError = '';

// Обработка повышения мастерства (только для своего профиля)
$upgradeMessage = '';
if ($is_own_profile && isset($_POST['upgrade_mastery'])) {
    $result = upgradeMastery($profileUser['id']);
    if ($result['success']) {
        $upgradeMessage = 'Мастерство повышено до ' . $result['new_level'] . '%. Потрачено ' . $result['cost'] . ' золота.';
        $profileUser = getUserById($profileUser['id']); // обновляем данные
    } else {
        $upgradeMessage = $result['message'];
    }
}

// Обработка админских действий
if ($currentUser['role'] === 'admin' || $currentUser['role'] === 'moderator' || $currentUser['role'] === 'support') {
    // Выдача премиума (только admin)
    if (isset($_POST['give_premium']) && $currentUser['role'] === 'admin') {
        $days = (int)$_POST['premium_days'];
        $result = givePremiumByAdmin($currentUser['id'], $viewed_user_id, $days);
        if ($result['success']) {
            $adminMessage = '<div class="ok">' . htmlspecialchars($result['message']) . '</div>';
        } else {
            $adminError = '<div class="error">' . htmlspecialchars($result['message']) . '</div>';
        }
        $profileUser = getUserById($viewed_user_id); // обновляем данные
    }

    // Бан / мут
    if (isset($_POST['ban_action'])) {
        $action = $_POST['ban_action']; // ban, unban, mute, unmute
        $reason = $_POST['ban_reason'] ?? '';
        $hours = (int)($_POST['ban_hours'] ?? 0);
        $result = setUserBan($currentUser['id'], $viewed_user_id, $action, $reason, $hours);
        if ($result['success']) {
            $adminMessage = '<div class="ok">' . htmlspecialchars($result['message']) . '</div>';
        } else {
            $adminError = '<div class="error">' . htmlspecialchars($result['message']) . '</div>';
        }
        $profileUser = getUserById($viewed_user_id);
    }
}

// Данные для экипировки
$equippedItems = getEquippedItems($profileUser['id']);
$equipCount = count($equippedItems);

// Опыт
$currentExp = $profileUser['exp'];
$currentLevel = $profileUser['level'];
$expNeededNext = getExpForLevel($currentLevel + 1);
$expPercent = getExpPercent($currentExp);

// Клан
$clanInfo = getClanByUserId($profileUser['id']);
$loyaltyAbility = getLoyaltySkill($profileUser['id']);
$lastLogin = !empty($profileUser['last_login']) ? date('d M Y', strtotime($profileUser['last_login'])) : 'неизвестно';

// Для своего профиля: количество предметов в сумке
$bagItemsCount = 0;
$bagMax = 20;
if ($is_own_profile) {
    $bagItemsCount = countUserBagItems($profileUser['id']);
    $bagMax = safeGet($profileUser, 'bag_max', 20);
}

// Формируем отображение роли
$roleDisplay = '';
if ($profileUser['role'] === 'admin') {
    $roleDisplay = '<span style="color: blue; font-weight: bold;">A</span>';
} elseif ($profileUser['role'] !== 'player') {
    $roleDisplay = htmlspecialchars($profileUser['role']);
}

require_once 'inc/header.php';
?>

<?php if ($upgradeMessage): ?>
    <div class="<?= strpos($upgradeMessage, 'Повышено') !== false ? 'ok' : 'error' ?>">
        <?= htmlspecialchars($upgradeMessage) ?>
    </div>
    <div class="hr"></div>
<?php endif; ?>

<?php if ($adminMessage): ?>
    <?= $adminMessage ?>
    <div class="hr"></div>
<?php endif; ?>
<?php if ($adminError): ?>
    <?= $adminError ?>
    <div class="hr"></div>
<?php endif; ?>

<?php if ($is_own_profile): ?>
<!-- ========== СВОЙ ПРОФИЛЬ ========== -->
<!-- (весь существующий код своего профиля без изменений) -->
<span class="ttl"><b>Профиль игрока</b></span>
<div class="clb"></div>
<div class="hr"></div>

<!-- Аватар и основная информация -->
<table cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td valign="top">
           <img width="50" height="50" src="<?= getAvatarUrl($profileUser) ?>" alt="аватар" border="0"/>

        </td>
        <td valign="top" style="padding-left:4px;">
            <?php $icon = getUserForumIcon($profileUser); ?>
            <img width="12" height="12" src="<?= $icon ?>" alt="иконка"/> 
            <span><?= htmlspecialchars($profileUser['username']) ?></span><br/>
            <b><?= $profileUser['level'] ?></b> ур, 
            <?php if ($roleDisplay): ?><span><?= $roleDisplay ?></span>, <?php endif; ?>
            <span><?= htmlspecialchars($profileUser['side']) ?></span><br/>
            <?php if ($clanInfo): ?>
                <a href="clan.php?id=<?= $clanInfo['id'] ?>"><?= htmlspecialchars($clanInfo['name']) ?></a>, <?= htmlspecialchars($clanInfo['rank']) ?>
            <?php endif; ?>
        </td>
    </tr>
</table>
<div class="hr"></div>
<!-- Строка достижений -->
<img width="12" height="12" src="/images/icons/achievement.png" alt="" border="0"/>
<a href="achievements.php?user_id=<?= $profileUser['id'] ?>">Достижения</a>: <b><?= getUserAchievementsCount($profileUser['id']) ?></b>
<div class="hr"></div>
<!-- Снаряжение, сумка, умения -->
<img width="12" height="12" src="images/icons/clothes.png" alt=""/> 
<a href="equipment.php">Снаряжение</a> <span class="minor">(<?= $equipCount ?>/10)</span><br/>
<img width="12" height="12" src="images/icons/bag.png" alt="" border="0"/> 
<a href="bag.php">Сумка</a> <span class="minor">(<?= $bagItemsCount ?>/<?= $bagMax ?>)</span><br/>
<!--  Почта -->
<img class="internalIcon" alt="" src="images/icons/letter.png"/>
<a href="mail.php">Почта</a><br/>

<img width="12" height="12" src="images/icons/ability.png" alt=""/> 
<a href="abilities.php">Умения</a> <span class="minor">(<?= count(getUserAbilities($profileUser['id'])) ?>)</span><br/>
<!-- Таланты (только для своего профиля) -->
<img width="12" height="12" src="images/icons/star_mif.png" alt=""/>
<a href="talents.php">Таланты</a><br/>
<div class="hr"></div>

<!-- Боевые параметры -->
<img width="12" height="12" src="images/icons/strength.png" alt=""/> атака: <span class="money"><?= (int)$profileUser['attack'] ?></span><br/>
<img width="12" height="12" src="images/icons/life.png" alt=""/> здоровье: <span class="money"><?= (int)$profileUser['health'] ?></span><br/>
<img width="12" height="12" src="images/icons/energy.png" alt=""/> выносливость: <span class="money"><?= (int)$profileUser['stamina'] ?></span><br/>
<img width="12" height="12" src="images/icons/accuracy.png" alt=""/> точность: <span><?= (float)$profileUser['accuracy'] ?>%</span> крит<br/>
<img width="12" height="12" src="images/icons/regeneration.png" alt=""/> восстановление: <span class="money"><?= (int)$profileUser['recovery'] ?></span><br/>
<img width="12" height="12" src="images/icons/shield.png" alt=""/> защита: <span class="money"><?= (int)$profileUser['defense'] ?></span> <span class="minor">(<span><?= (float)$profileUser['defense_percent'] ?>%</span>)</span><br/>
<img width="12" height="12" src="images/icons/star_default.png" alt=""/> сумма: <span class="money"><?= (int)$profileUser['total_stats'] ?></span>

<!-- Мастерство (с кнопкой повышения) -->
<div class="hr"></div>
<div>
    <img width="12" height="12" src="images/icons/bluestar.png" alt=""/> 
    <span><em>мастерство</em></span>
    <span class="info">+<?= (float)$profileUser['mastery'] ?>%</span>
    <span class="minor">(ко всем параметрам)</span>
</div>
<div class="hr"></div>
<form method="post" style="margin:0;">
    <button type="submit" name="upgrade_mastery" value="1" class="btn small" 
        <?php if ($currentUser['gold'] < (1 + 5 * (int)$profileUser['mastery'])) echo 'disabled'; ?>>
        Повысить мастерство 
        <img width="12" height="12" src="images/icons/money_gold.png" alt=""/> 
        <span><?= 1 + 5 * (int)$profileUser['mastery'] ?></span>
    </button>
</form>
<div class="hr"></div>

<!-- Валюта -->
<img width="12" height="12" src="images/icons/money_gold.png" alt=""/> 
<a href="#">золото</a>: <span class="money"><?= formatNumber($profileUser['gold']) ?></span><br/>
<img width="12" height="12" src="images/icons/ironbar.png" alt=""/> 
<a href="#">баксы</a>: <span class="money"><?= formatNumber($profileUser['bucks']) ?></span><br/>
<img width="12" height="12" src="images/icons/bottle.png" alt=""/> 
<a href="#">аптечки</a>: <span class="money"><?= (int)$profileUser['medkits'] ?></span><br/>
<br/>

<!-- Энергия -->
<img width="12" height="12" src="images/icons/bruteEnergy.png" alt=""/> энергия: <span class="money"><?= $profileUser['energy'] ?></span><br/>

<!-- Опыт -->
<img width="12" height="12" src="images/icons/star_mif.png" alt=""/> опыт: 
<span><?= formatNumber($currentExp) ?></span>/<span><?= formatNumber($expNeededNext) ?></span> 
<span class="minor">(<?= $expPercent ?>%)</span><br/>

<!-- ===== ПРЕМИУМ (ОБНОВЛЁННЫЙ БЛОК) ===== -->
<div>
    <img width="12" height="12" src="/images/icons/star_mif.png" alt=""/>
    <span class="admin">Премиум</span>
    <?php if (isPremiumActive($profileUser['id'])): 
        $remaining = getPremiumRemainingDays($profileUser['id']);
        $daysText = plural($remaining, 'день', 'дня', 'дней');
    ?>
        <span class="info">активен, осталось <?= $remaining ?> <?= $daysText ?></span>
    <?php else: ?>
        <span class="minor">(неактивен)</span>
        <a href="premium.php" class="btn small">Ускорить прокачку</a>
    <?php endif; ?>
</div>
<div class="hr"></div>
<!-- Настройки профиля -->
<img class="internalIcon" alt="" src="images/icons/dot.png"/> 
<a href="profile_settings.php">Настройки</a><br/>
<div class="hr"></div>

<?php else: ?>
<!-- ========== ЧУЖОЙ ПРОФИЛЬ ========== -->

<!-- Верхний блок: аватар, ник, уровень, клан -->
<table cellpadding="0" cellspacing="0" border="0">
    <tbody>
        <tr>
            <td valign="top">
                <img width="50" height="50" src="<?= getAvatarUrl($profileUser) ?>" alt="аватар" border="0"/>
            </td>
            <td valign="top" style="padding-left:4px;">
                <?php $icon = getUserForumIcon($profileUser); ?>
                <img width="12" height="12" src="<?= $icon ?>" alt="иконка"/>
                <span><?= htmlspecialchars($profileUser['username']) ?></span><br/>
                <b><?= (int)$profileUser['level'] ?></b> ур,
                <?php if ($roleDisplay): ?><span><?= $roleDisplay ?></span>, <?php endif; ?>
                <span><?= htmlspecialchars($profileUser['side']) ?></span><br/>
                <?php if ($clanInfo): ?>
                    <a href="clan.php?id=<?= (int)$clanInfo['id'] ?>">
                        <span><?= htmlspecialchars($clanInfo['name']) ?></span>
                    </a>, <?= htmlspecialchars($clanInfo['rank']) ?>
                <?php endif; ?>
            </td>
        </tr>
    </tbody>
</table>

<!-- Достижения -->

<img width="12" height="12" src="/images/icons/achievement.png" alt="" border="0"/>
<a href="achievements.php?user_id=<?= $profileUser['id'] ?>">Достижения</a>: <b><?= getUserAchievementsCount($profileUser['id']) ?></b>
<div class="hr"></div>

<!-- Снаряжение (ссылка) -->
<div class="hr"></div>
<img width="12" height="12" src="images/icons/clothes.png" alt=""/>
<a href="equipment.php?id=<?= $profileUser['id'] ?>">Снаряжение</a>
<span class="minor">(<?= $equipCount ?>/10)</span><br/>

<!-- Отправить почту (только если стороны совпадают или админ) -->
<?php
$canSendMail = ($currentUser['side'] == $profileUser['side']) || ($currentUser['role'] == 'admin');
if ($canSendMail): ?>
    <img class="internalIcon" alt="" src="images/icons/letter.png"/>
    <a href="mail_compose.php?to=<?= $profileUser['id'] ?>">Отправить почту</a><br/>
<?php endif; ?>
<?php
// Приглашение в клан
$canInvite = false;
if ($currentUser && $profileUser) {
    // Проверяем, что текущий пользователь в клане и имеет право приглашать
    $userClanId = isUserInClan($currentUser['id']);
    if ($userClanId && canUserInvite($currentUser['id'], $userClanId)) {
        // Целевой игрок не в клане, его уровень >=10 и стороны совпадают
        if (!isUserInClan($profileUser['id']) && $profileUser['level'] >= 10 && $currentUser['side'] == $profileUser['side']) {
            $canInvite = true;
        }
    }
}
if ($canInvite): ?>
    <img class="internalIcon" alt="" src="images/icons/clan.png"/>
    <a href="clan_invite_user.php?to=<?= $profileUser['id'] ?>">Пригласить в клан</a><br/>
<?php endif; ?>
<!-- Умения -->
<img width="12" height="12" src="images/icons/ability.png" alt=""/>
<a href="abilities.php?user_id=<?= $profileUser['id'] ?>">Умения</a>
<span class="minor">(<?= (int)($profileUser['skills_count'] ?? 0) ?>)</span><br/>

<!-- Боевые параметры -->
<div class="hr"></div>
<img width="12" height="12" src="images/icons/strength.png" alt=""/> атака: <span class="money"><?= (int)$profileUser['attack'] ?></span><br/>
<img width="12" height="12" src="images/icons/life.png" alt=""/> здоровье: <span class="money"><?= (int)$profileUser['health'] ?></span><br/>
<img width="12" height="12" src="images/icons/energy.png" alt=""/> выносливость: <span class="money"><?= (int)$profileUser['stamina'] ?></span><br/>
<img width="12" height="12" src="images/icons/accuracy.png" alt=""/> точность: <span><?= (float)$profileUser['accuracy'] ?>%</span> крит<br/>
<img width="12" height="12" src="images/icons/regeneration.png" alt=""/> восстановление: <span class="money"><?= (int)$profileUser['recovery'] ?></span><br/>
<img width="12" height="12" src="images/icons/shield.png" alt=""/> защита: <span class="money"><?= (int)$profileUser['defense'] ?></span> <span class="minor">(<span><?= (float)$profileUser['defense_percent'] ?>%</span>)</span><br/>
<img width="12" height="12" src="images/icons/star_default.png" alt=""/> сумма: <span class="money"><?= (int)$profileUser['total_stats'] ?></span>

<!-- Мастерство (только просмотр) -->
<span><br/>
    <img width="12" height="12" src="images/icons/bluestar.png" alt=""/>
    <span><em>мастерство</em></span>
    <span class="info">+<?= (float)$profileUser['mastery'] ?>%</span>
</span>

<!-- Премиум в чужом профиле (если активен) -->
<?php if (isPremiumActive($profileUser['id'])): ?>
    <div class="hr"></div>
    <div>
        <img width="12" height="12" src="/images/icons/star_mif.png" alt=""/>
        <span class="admin">Премиум</span> 
        <span class="info">активен</span>
    </div>
<?php endif; ?>

<?php if ($clanInfo && $loyaltyAbility): ?>
    <div class="hr"></div>
    <div>
        <span>
            <img width="12" height="12" src="images/icons/star_mif.png" alt=""/>
            <a class="buff" href="ability.php?user_id=<?= $profileUser['id'] ?>&ability_id=<?= $loyaltyAbility['id'] ?>">
                Верность клану
            </a>
        </span>
    </div>
<?php endif; ?>

<!-- Последний вход -->
<div class="hr"></div>
<span>
    <img width="12" height="12" src="images/icons/dot.png" alt=""/>
    посл. вход: <span><?= $lastLogin ?></span><br/>
</span>

<!-- ===== НОВЫЙ БЛОК ДЛЯ МОДЕРАТОРОВ/АДМИНОВ ===== -->
<?php if ($currentUser['role'] === 'admin' || $currentUser['role'] === 'moderator' || $currentUser['role'] === 'support'): ?>
    <div class="hr"></div>
    <span class="ttl"><b>Информация для модераторов</b></span>
    <div class="hr"></div>

    <?= $adminMessage ?>
    <?= $adminError ?>

    <div class="menu-news" style="display: block; padding: 9px;">
        <div class="menu-links2 prof-razdel" style="text-align:center;background:#2c3e50;color:white;">ТЕКУЩИЙ АККАУНТ (IP ИНФО)</div>
        <?php
        $info = getDetailedInfo($profileUser['ip'] ?? '', $profileUser['user_agent'] ?? '');
        if ($info):
        ?>
        <div style="font-size:12px;">
            <div class="menu-links2 prof-razdel">IP: <?= htmlspecialchars($info['ip']) ?></div>
            <div class="menu-links2 prof-razdel">User-Agent: <?= htmlspecialchars($info['agent']) ?></div>
            <div class="menu-links2 prof-razdel">Страна: <?php if($info['flag']): ?><img src="<?= htmlspecialchars($info['flag']) ?>" width="16"> <?php endif; ?><?= htmlspecialchars($info['country']) ?></div>
            <div class="menu-links2 prof-razdel">Регион: <?= htmlspecialchars($info['region']) ?></div>
            <div class="menu-links2 prof-razdel">Город: <?= htmlspecialchars($info['city']) ?></div>
            <div class="menu-links2 prof-razdel">Провайдер: <?= htmlspecialchars($info['operator']) ?></div>
            <div class="menu-links2 prof-razdel">Часовой пояс: <?= htmlspecialchars($info['timezone']) ?></div>
            <div class="menu-links2 prof-razdel">Координаты: <?= $info['latitude'] ?>, <?= $info['longitude'] ?></div>
            <div class="menu-links2 prof-razdel">ОС: <?= htmlspecialchars($info['os']) ?></div>
            <div class="menu-links2 prof-razdel">Браузер: <?= htmlspecialchars($info['browser']) ?></div>
            <div class="menu-links2 prof-razdel">Устройство: <?= htmlspecialchars($info['device']) ?></div>
        </div>
        <?php else: ?>
        <p>Не удалось получить информацию.</p>
        <?php endif; ?>

        <!-- Аккаунты с тем же IP -->
        <?php if (!empty($profileUser['ip'])): 
            $multis = getUsersByIP($profileUser['ip'], $viewed_user_id);
        ?>
        <div class="menu-news" style="margin-top:10px; padding:5px;">
            <div class="menu-links2 prof-razdel" style="text-align:center;background:#c0392b;color:white;">АККАУНТЫ С ЭТИМ IP (<?= count($multis) ?>)</div>
            <?php if ($multis): ?>
                <?php foreach ($multis as $m): ?>
                <div class="menu-links2 prof-razdel">
                    <a href="profile.php?id=<?= $m['id'] ?>" target="_blank"><?= htmlspecialchars($m['username']) ?></a>
                    (роль: <?= $m['role'] ?>, последний вход: <?= timeAgo($m['last_login']) ?>)
                </div>
                <?php endforeach; ?>
            <?php else: ?>
            <div class="menu-links2 prof-razdel">Нет других аккаунтов.</div>
            <?php endif; ?>
        </div>
        <?php endif; ?>
    </div>
<?php if ($currentUser['role'] === 'admin' || $currentUser['role'] === 'moderator'): ?>
    <a href="/admin/users.php?id=<?= $profileUser['id'] ?>" class="btn small">🔧 Редактировать в админке</a>
<?php endif; ?>
    <!-- Кнопки действий (admin и moderator могут банить/мутить, admin ещё и премиум) -->
    <div style="margin-top:15px; display:flex; gap:10px; flex-wrap:wrap;">
        <?php if ($currentUser['role'] === 'admin'): ?>
        <form method="post" style="display:inline;">
            <select name="premium_days">
                <option value="1">1 день</option>
                <option value="3">3 дня</option>
                <option value="7">7 дней</option>
                <option value="30">30 дней</option>
            </select>
            <button type="submit" name="give_premium" value="1" class="btn small">Выдать премиум</button>
        </form>
        <?php endif; ?>

        <?php if ($currentUser['role'] === 'admin' || $currentUser['role'] === 'moderator'): ?>
        <!-- Форма бана/мута -->
        <form method="post" style="display:inline-block; border:1px solid #aaa; padding:5px;">
            <select name="ban_action">
                <option value="ban">Забанить</option>
                <option value="unban">Разбанить</option>
                <option value="mute">Замутить</option>
                <option value="unmute">Размутить</option>
            </select>
            <input type="text" name="ban_reason" placeholder="Причина (опционально)">
            <input type="number" name="ban_hours" placeholder="Часов (0 = навсегда)" min="0" value="0">
            <button type="submit" class="btn small">Применить</button>
        </form>
        <?php endif; ?>
    </div>
    <div class="hr"></div>
<?php endif; ?>

<!-- Админская панель: отправка бонусов (оставляем как есть) -->
<?php if ($currentUser['role'] === 'admin'): ?>
    <span class="ttl"><b>Админ: отправить бонус</b></span>
    <div class="hr"></div>
    <form method="post" action="mail_send.php" style="margin:0;">
        <input type="hidden" name="admin_send" value="1">
        <table>
            <tr><td>Получатель (ID или ник):</td><td><input type="text" name="recipient" required></td></tr>
            <tr><td>Тема:</td><td><input type="text" name="subject" value="Бонус от администрации" required></td></tr>
            <tr><td>Сообщение:</td><td><textarea name="body" rows="3" required></textarea></td></tr>
            <tr><td>Тип вложения:</td><td>
                <select name="attach_type">
                    <option value="">Нет</option>
                    <option value="gold">Золото</option>
                    <option value="bucks">Баксы</option>
                    <option value="medkits">Аптечки</option>
                </select>
            </td></tr>
            <tr><td>Количество (или ID предмета):</td><td><input type="number" name="attach_value" value="0" min="0"></td></tr>
            <tr><td colspan="2"><button type="submit" class="btn">Отправить бонус</button></td></tr>
        </table>
    </form>
    <div class="hr"></div>
<?php endif; ?>
<?php endif; ?>

<?php require_once 'inc/foot.php'; ?>