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

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

// Обработка действий
$message = '';
$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['upgrade_talent'])) {
        $talentId = (int)$_POST['talent_id'];
        $result = upgradeTalent($userId, $talentId);
        if ($result['success']) {
            $message = $result['message'];
        } else {
            $error = $result['message'];
        }
        $user = getUserById($userId);
    } elseif (isset($_POST['buy_bucks_point'])) {
        $result = buyTalentPointWithBucks($userId);
        if ($result['success']) {
            $message = $result['message'];
        } else {
            $error = $result['message'];
        }
        $user = getUserById($userId);
    } elseif (isset($_POST['buy_gold_point'])) {
        $result = buyTalentPointWithGold($userId);
        if ($result['success']) {
            $message = $result['message'];
        } else {
            $error = $result['message'];
        }
        $user = getUserById($userId);
    } elseif (isset($_POST['reset_all'])) {
        $result = resetAllTalents($userId);
        if ($result['success']) {
            $message = $result['message'];
        } else {
            $error = $result['message'];
        }
        $user = getUserById($userId);
    }
}

// Определяем, показывать ли конкретный талант
$singleTalentId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$singleTalent = null;
if ($singleTalentId) {
    $singleTalent = getTalentById($singleTalentId);
    if (!$singleTalent) {
        header('Location: talents.php');
        exit;
    }
}

// Данные для отображения
$talents = getAllTalents();
$availablePoints = getAvailableTalentPoints($userId);
$totalPoints = $user['talent_points_total'];
$spentPoints = $user['talent_points_spent'];
$level = $user['level'];
$levelPoints = $level >= 11 ? $level - 10 : 0;
$bucksPointsBought = $user['bucks_points_bought'];
$goldPointsBought = $user['gold_points_bought'];
$bucksCost = getBucksPointCost($userId);
$goldCost = getGoldPointCost($userId);

require_once 'inc/header.php';
?>

<div class="ttl"><b>Таланты</b></div>
<div class="clb"></div>
<div class="hr"></div>

<div style="margin-bottom:8px;">Здесь ты можешь изучить <b>Таланты</b><span>, которые нужны для развития героя</span></div>

<?php if ($message): ?>
    <div class="ok"><?= htmlspecialchars($message) ?></div><div class="hr"></div>
<?php endif; ?>
<?php if ($error): ?>
    <div class="error"><?= htmlspecialchars($error) ?></div><div class="hr"></div>
<?php endif; ?>

<?php if ($singleTalent): ?>
    <!-- Детальный блок выбранного таланта -->
    <?php
    $talent = $singleTalent;
    $currentLevel = getUserTalentLevel($userId, $talent['id']);
    $max = $talent['max_level'];
    $canUpgrade = canUpgradeTalent($userId, $talent['id']);
    ?>
    <div>
        <span class="ttl"><b><span><?= htmlspecialchars($talent['name']) ?></span></b></span>
        <div class="clb"></div>
        <div class="hr"></div>

        <div>
            <table><tbody><tr>
                <td style="width:1%;vertical-align:top;">
                    <img width="40" height="40" src="<?= htmlspecialchars($talent['icon']) ?>" alt="" border="0" style=""/>
                </td>
                <td style="vertical-align:top;">
                    <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/>
                    <span><?= htmlspecialchars($talent['name']) ?></span>
                </td>
            </tr></tbody></table>
            <div class="hr"></div>
            <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> 
            <label>
                <span class="">
                    <?php 
                    if ($currentLevel > 0) {
                        echo getTalentEffectDescription($talent, $currentLevel);
                    } else {
                        echo 'Ещё не изучено.';
                    }
                    ?>
                </span>
            </label>
            <div class="hr"></div>
            <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Уровень: 
            <span class="small minor">[<?= $currentLevel ?>/<?= $max ?>]</span><br/>
            <div class="hr"></div>

            <?php if ($currentLevel < $max): ?>
                <?php if ($canUpgrade): ?>
                    <form method="post" style="margin:0;">
                        <input type="hidden" name="talent_id" value="<?= $talent['id'] ?>">
                        <button type="submit" name="upgrade_talent" value="1" class="btn small">Повысить уровень</button>
                    </form>
                <?php else: ?>
                    <div class="minor">Недостаточно очков талантов</div>
                <?php endif; ?>
                <div class="hr"></div>
                <?php if ($currentLevel + 1 <= $max): ?>
                    <strong class="info">Следующий уровень:</strong><br/>
                    <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> 
                    <label>
                        <span class=""><?= getTalentEffectDescription($talent, $currentLevel + 1) ?></span>
                    </label>
                    <div class="hr"></div>
                <?php endif; ?>
            <?php else: ?>
                <div class="info">
                    <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> У тебя максимальный уровень!<br/>
                </div>
                <div class="hr"></div>
            <?php endif; ?>

            <div class="minor">
                Чтобы повысить уровень нужны очки талантов<br/>
            </div>
            <div class="hr"></div>
        </div>
    </div>
    <div><a href="talents.php">← К списку талантов</a></div>
    <div class="hr"></div>
<?php else: ?>
    <!-- Список талантов (кратко) -->
    <?php foreach ($talents as $talent): 
        $level = getUserTalentLevel($userId, $talent['id']);
        $max = $talent['max_level'];
    ?>
    <div>
        <table><tbody><tr>
            <td style="width:1%;vertical-align:top;">
                <img width="40" height="40" src="<?= htmlspecialchars($talent['icon']) ?>" alt="" border="0" style=""/>
            </td>
            <td style="vertical-align:top;">
                <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/>
                <a href="talents.php?id=<?= $talent['id'] ?>"><span><?= htmlspecialchars($talent['name']) ?></span></a>
                <span class="small minor">[<?= $level ?>/<?= $max ?>]</span>
                <br/>
            </td>
        </tr></tbody></table>
        <div class="hr"></div>
    </div>
    <?php endforeach; ?>
<?php endif; ?>

<!-- Блок информации об очках (показывается всегда) -->
<div>
    <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Не использовано очков: 
    <b><img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/><span><?= $availablePoints ?></span></b>
    <br/><img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Потрачено очков: 
    <b><img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/><span><?= $spentPoints ?></span></b>
    <div class="hr"></div>
    У тебя сейчас:<br/>
    <img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Очков за уровни: 
    <b><img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/><span><?= $levelPoints ?></span></b>
    <br/><img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Очков за баксы: 
    <b><img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/><span><?= $bucksPointsBought ?></span></b>
    <br/><img width="12" height="12" src="/images/icons/star_default.png" alt="" border="0"/> Очков за золото: 
    <b><img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/><span><?= $goldPointsBought ?></span></b>
    <div class="hr"></div>
    <div class="minor">Каждый уровень, начиная с <b>11</b> добавляет:<br/>
        <img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/> 1 очко таланта бесплатно<br/>
        <img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/> возможность купить 1 очко за баксы<br/>
        <img width="12" height="12" src="/images/icons/bluestar.png" alt="" border="0"/> возможность купить 1 очко за золото
    </div>
    <div class="hr"></div>
    <form method="post" style="display:inline;" onsubmit="return confirm('Сбросить все таланты? Очки вернутся.');">
        <button type="submit" name="reset_all" value="1" class="btn small">сбросить всё</button>
    </form>
</div>

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