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

$user = getUserById($_SESSION['user_id']);
if (!$user) {
    session_destroy();
    header('Location: index.php');
    exit;
}

$mailId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$mail = getMail($mailId, $user['id']);
if (!$mail) {
    header('Location: mail.php');
    exit;
}

// Определяем собеседника
$otherUserId = ($mail['from_user_id'] == $user['id']) ? $mail['to_user_id'] : $mail['from_user_id'];
$otherUser = getUserById($otherUserId);

// Обработка ответа
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['reply'])) {
    $replyBody = trim($_POST['body']);
    if (!empty($replyBody)) {
        $subject = "Re: " . $mail['subject'];
        if (sendMail($user['id'], $otherUserId, $subject, $replyBody)) {
            $_SESSION['mail_message'] = 'Ответ отправлен.';
            header("Location: mail_view.php?id=$mailId");
            exit;
        } else {
            $error = 'Ошибка отправки.';
        }
    } else {
        $error = 'Введите текст сообщения.';
    }
}

// Переключение пометки
if (isset($_GET['flag'])) {
    toggleFlagged($mailId, $user['id']);
    header("Location: mail_view.php?id=$mailId");
    exit;
}

// Удаление
if (isset($_POST['delete'])) {
    $asSender = ($mail['from_user_id'] == $user['id']);
    deleteMail($mailId, $user['id'], $asSender);
    header('Location: mail.php?mode='.($asSender?'outbox':'inbox'));
    exit;
}

// Получение вложения
if (isset($_POST['claim'])) {
    if (claimAttachment($mailId, $user['id'])) {
        $success = 'Вложение получено!';
        $mail = getMail($mailId, $user['id']);
    } else {
        $error = 'Не удалось получить вложение.';
    }
}

require_once 'inc/header.php';
?>

<span class="ttl"><b><span>Сообщение для <?= htmlspecialchars($otherUser['username'] ?? '') ?></span></b></span>
<div class="clb"></div>
<div class="hr"></div>

<!-- Просмотр письма -->
<div>
    <div>
        <?php
        $sender = ($mail['from_user_id'] == $user['id']) ? $user : $otherUser;
        $side = $sender['side'] ?? '';
        $icon = ($side == 'Коза Ностра') ? 'blue_warrior.png' : (($side == 'Якудза') ? 'red_warrior.png' : 'gray_warrior.png');
        $isOnline = (time() - strtotime($sender['last_activity'])) < 300;
        if ($isOnline) {
            $icon = str_replace('.png', '_online.png', $icon);
        }
        ?>
        <span>
            <img width="12" height="12" src="/images/icons/<?= $icon ?>" alt="" border="0"/>
            <a href="profile.php?id=<?= $sender['id'] ?>"><span><?= htmlspecialchars($sender['username']) ?></span></a>
        </span>
        (<span><?= (int)$sender['level'] ?></span> ур.),
        <span class="small minor"><?= date('d M H:i', strtotime($mail['sent_at'])) ?></span>
        <br/>
        <span class=""><p><?= nl2br(htmlspecialchars($mail['body'])) ?></p></span>
    </div>

    <?php if ($mail['attachment_type'] && $mail['to_user_id'] == $user['id'] && !$mail['is_claimed']): ?>
        <div class="hr"></div>
        <div>
            <strong>Вложение:</strong> 
            <?php
            switch ($mail['attachment_type']) {
                case 'gold': echo $mail['attachment_value'].' золота'; break;
                case 'bucks': echo $mail['attachment_value'].' баксов'; break;
                case 'medkits': echo $mail['attachment_value'].' аптечек'; break;
                case 'item': echo 'Предмет ID '.$mail['attachment_value']; break;
            }
            ?>
            <form method="post" style="display:inline;">
                <button type="submit" name="claim" class="btn small">Получить</button>
            </form>
        </div>
    <?php elseif ($mail['is_claimed']): ?>
        <div class="hr"></div>
        <div class="info">Вложение уже получено.</div>
    <?php endif; ?>

    <div>
        <img class="internalIcon" alt="" border="0" src="/images/icons/dot.png"/>
        <a href="mail_compose.php?to=<?= $otherUserId ?>">ответить</a><br/>
        <div>
            <div class="hr"></div>
            <img src="/images/icons/graystar.png" alt=""/>
            <a href="?id=<?= $mailId ?>&flag=1"><span><?= $mail['is_flagged'] ? 'снять пометку' : 'пометить письмо' ?></span></a><br/>
        </div>
    </div>
</div>

<div class="hr"></div>
<h2>История переписки</h2>
<img width="12" height="12" src="/images/icons/letter.png" alt="" border="0"/>
<a href="mail_history.php?user=<?= $otherUserId ?>">показать историю</a>

<div class="hr"></div>

<!-- Форма ответа -->
<h3>Ответить</h3>
<?php if (isset($error)): ?>
    <div class="error"><?= htmlspecialchars($error) ?></div>
<?php endif; ?>
<form method="post">
    <textarea name="body" rows="5" style="width:100%;" placeholder="Введите сообщение..."></textarea>
    <div class="hr"></div>
    <input type="submit" name="reply" value="Отправить"/>
    <span class="info">стоимость: <img width="12" height="12" src="/images/icons/ironbar.png" alt="" border="0"/>1</span>
</form>

<div class="hr"></div>

<!-- Кнопка удаления -->
<form method="post" onsubmit="return confirm('Удалить это письмо?');">
    <button type="submit" name="delete" class="btn small">Удалить письмо</button>
</form>

<?php
if (isset($_SESSION['mail_message'])) {
    echo '<div class="ok">' . htmlspecialchars($_SESSION['mail_message']) . '</div>';
    unset($_SESSION['mail_message']);
}
require_once 'inc/foot.php';
?>