<?php
// Check if we're being included from the main index.php
$config_path = file_exists('../config/config.php') ? '../config/config.php' : 'config/config.php';
require_once $config_path;

$auth = new Auth();

if (!$auth->isLoggedIn()) {
    $langParam = isset($_GET['lang']) ? '?lang=' . $_GET['lang'] : '';
    redirect('/admin/login.php' . $langParam);
}

$route = $_GET['route'] ?? 'dashboard';
$article = new Article();
$category = new Category();

// Initialize language settings
$language = new Language();

// Force English as default if no session language is set
if (!isset($_SESSION['language'])) {
    $_SESSION['language'] = 'en';
}

if (isset($_GET['lang']) && array_key_exists($_GET['lang'], SUPPORTED_LANGUAGES)) {
    $language->setLanguage($_GET['lang']);
    $currentLang = $_GET['lang'];
} else {
    $currentLang = $language->getCurrentLanguage();
}

$translations = loadLanguage($currentLang);
?>
<!DOCTYPE html>
<html lang="<?= htmlspecialchars($currentLang ?? 'en') ?>">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= __('admin') ?> - <?= __('site_title') ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <link href="../assets/css/admin.css" rel="stylesheet">
</head>
<body>
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
        <div class="container-fluid">
            <a class="navbar-brand" href="/admin/">
                <i class="fas fa-blog"></i> <?= __('site_title') ?>
            </a>

            <div class="navbar-nav ms-auto">
                <!-- Language Selector -->
                <div class="nav-item dropdown me-3">
                    <a class="nav-link dropdown-toggle" href="#" id="languageDropdown" role="button" data-bs-toggle="dropdown">
                        <i class="fas fa-language"></i> <?= SUPPORTED_LANGUAGES[$currentLang] ?>
                    </a>
                    <ul class="dropdown-menu">
                        <?php foreach (SUPPORTED_LANGUAGES as $code => $name): ?>
                            <li>
                                <a class="dropdown-item <?= $code === $currentLang ? 'active' : '' ?>"
                                   href="javascript:void(0)" onclick="changeLanguage('<?= $code ?>')">
                                    <?= $name ?>
                                </a>
                            </li>
                        <?php endforeach; ?>
                    </ul>
                </div>

                <div class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown">
                        <i class="fas fa-user"></i> <?= htmlspecialchars($_SESSION['username']) ?>
                    </a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/?route=external" target="_blank">
                            <i class="fas fa-external-link-alt"></i> <?= __('external_blog') ?>
                        </a></li>
                        <li><a class="dropdown-item" href="/?route=internal" target="_blank">
                            <i class="fas fa-lock"></i> <?= __('internal_blog') ?>
                        </a></li>
                        <li><hr class="dropdown-divider"></li>
                        <li><a class="dropdown-item" href="/admin/logout.php">
                            <i class="fas fa-sign-out-alt"></i> <?= __('logout') ?>
                        </a></li>
                    </ul>
                </div>
            </div>
        </div>
    </nav>

    <div class="container-fluid">
        <div class="row">
            <nav class="col-md-3 col-lg-2 d-md-block bg-light sidebar">
                <div class="position-sticky pt-3">
                    <ul class="nav flex-column">
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'dashboard' ? 'active' : '' ?>" href="/admin/">
                                <i class="fas fa-tachometer-alt"></i> <?= __('dashboard') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'articles' ? 'active' : '' ?>" href="/admin/?route=articles">
                                <i class="fas fa-newspaper"></i> <?= __('manage_articles') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'new-article' ? 'active' : '' ?>" href="/admin/?route=new-article">
                                <i class="fas fa-plus-circle"></i> <?= __('new_article') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'ai-writing' ? 'active' : '' ?>" href="/admin/?route=ai-writing">
                                <i class="fas fa-robot"></i> <?= __('ai_writing') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'categories' ? 'active' : '' ?>" href="/admin/?route=categories">
                                <i class="fas fa-tags"></i> <?= __('manage_categories') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'crawler' ? 'active' : '' ?>" href="/admin/?route=crawler">
                                <i class="fas fa-rss"></i> <?= __('auto_crawling') ?? 'Auto Crawling' ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'platforms' ? 'active' : '' ?>" href="/admin/?route=platforms">
                                <i class="fas fa-globe"></i> <?= __('international_publishing') ?? 'International Publishing' ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'api-keys' ? 'active' : '' ?>" href="/admin/?route=api-keys">
                                <i class="fas fa-key"></i> API Keys 管理
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'settings' ? 'active' : '' ?>" href="/admin/?route=settings">
                                <i class="fas fa-cogs"></i> <?= __('settings') ?>
                            </a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link <?= $route === 'documentation' ? 'active' : '' ?>" href="/admin/?route=documentation">
                                <i class="fas fa-book"></i> <?= __('documentation') ?>
                            </a>
                        </li>
                    </ul>
                </div>
            </nav>

            <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
                <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
                    <h1 class="h2">
                        <?php
                        switch ($route) {
                            case 'articles': echo __('manage_articles'); break;
                            case 'new-article': echo __('new_article'); break;
                            case 'ai-writing': echo __('ai_writing'); break;
                            case 'categories': echo __('manage_categories'); break;
                            case 'crawler': echo __('auto_crawling') ?? 'Auto Crawling'; break;
                            case 'platforms': echo __('international_publishing') ?? 'International Publishing'; break;
                            case 'api-keys': echo 'API Keys 管理'; break;
                            case 'settings': echo __('settings'); break;
                            case 'documentation': echo __('documentation'); break;
                            default: echo __('dashboard'); break;
                        }
                        ?>
                    </h1>
                </div>

                <?php
                switch ($route) {
                    case 'articles':
                        include 'pages/articles.php';
                        break;
                    case 'new-article':
                        include 'pages/article-form.php';
                        break;
                    case 'edit-article':
                        include 'pages/article-form.php';
                        break;
                    case 'ai-writing':
                        include 'pages/ai-writing.php';
                        break;
                    case 'categories':
                        include 'pages/categories.php';
                        break;
                    case 'crawler':
                        include 'pages/crawler.php';
                        break;
                    case 'platforms':
                        include 'pages/platforms.php';
                        break;
                    case 'api-keys':
                        include 'pages/api-keys.php';
                        break;
                    case 'settings':
                        include 'pages/settings.php';
                        break;
                    case 'documentation':
                        include 'pages/documentation.php';
                        break;
                    default:
                        include 'pages/dashboard.php';
                        break;
                }
                ?>
            </main>
        </div>
    </div>

    <!-- Chat Widget -->
    <div id="chatWidget" class="chat-widget">
        <div class="chat-header" onclick="toggleChat()">
            <i class="fas fa-comments"></i> <?= __('chat') ?>
        </div>
        <div class="chat-body" id="chatBody" style="display: none;">
            <div class="chat-messages" id="chatMessages"></div>
            <div class="chat-input">
                <input type="text" id="chatInput" placeholder="<?= __('type_message') ?>" onkeypress="handleChatKeyPress(event)">
                <button onclick="sendChatMessage()"><i class="fas fa-paper-plane"></i></button>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script src="../assets/js/admin.js"></script>
    <script src="../assets/js/chat.js"></script>

    <script>
    /**
     * Internationalization Support for Excellent Blog
     * Inline version to avoid loading issues
     */

    // Suppress any i18n.js loading errors from browser/extensions
    window.addEventListener('error', function(e) {
        if (e.filename && e.filename.includes('i18n.js')) {
            e.preventDefault();
            console.log('Suppressed i18n.js loading error - using inline version');
        }
    });

    // Global i18n object
    window.i18n = {
        // Current language (will be set by server-side rendering)
        currentLang: 'en',

        // Translation store (will be populated by server-side rendering)
        translations: {},

        // Initialize function
        init: function(lang, translations) {
            this.currentLang = lang || 'en';
            this.translations = translations || {};
        },

        // Translation function
        t: function(key, params = {}) {
            let translation = this.translations[key] || key;

            // Simple parameter replacement
            Object.keys(params).forEach(param => {
                translation = translation.replace(new RegExp(`{${param}}`, 'g'), params[param]);
            });

            return translation;
        },

        // Set language
        setLanguage: function(lang) {
            this.currentLang = lang;
            // Trigger language change event
            window.dispatchEvent(new CustomEvent('languageChanged', { detail: { lang } }));
        },

        // Get current language
        getLanguage: function() {
            return this.currentLang;
        }
    };

    // Initialize i18n with current translations
    i18n.init('<?= $currentLang ?>', <?= json_encode($translations ?? []) ?>);

    // Simple language change function
    function changeLanguage(lang) {
        window.location.href = window.location.pathname + '?lang=' + lang;
    }
    </script>
</body>
</html>