<?php
declare(strict_types=1);
require_once __DIR__ . '/bootstrap.php';

function ad_page_start(string $lang, string $title, string $description, string $path = '', string $image = '', bool $indexable = true): void
{
    $isHome = $path === '' || $path === '/';
    $path = $isHome ? '' : '/' . ltrim($path, '/');
    $siteName = ad_setting('site_name', 'Altınlı Dekor');
    $fullTitle = $isHome ? $siteName . ' | ' . $title : $title . ' | ' . $siteName;
    $canonical = ad_site_url(ad_link($lang, $path));
    $ogImage = $image !== '' ? ad_media($image) : ad_media(ad_setting('hero_image', '/assets/b-tiles/hero-atelier.webp'));
    $ogImage = str_starts_with($ogImage, '/') ? ad_site_url($ogImage) : $ogImage;
    $rtl = $lang === 'ar';
    $menu = ad_all("SELECT * FROM ad_menus WHERE location = 'header' AND active = 1 ORDER BY sort_order ASC, id ASC");
    $currentPath = $path;
    $query = (string) ($_SERVER['QUERY_STRING'] ?? '');
    $query = $query !== '' ? '?' . $query : '';
    $organization = [
        '@context' => 'https://schema.org', '@type' => 'Organization', 'name' => $siteName,
        'url' => ad_site_url(), 'logo' => ad_site_url('/assets/favicon.svg'),
        'contactPoint' => ['@type' => 'ContactPoint', 'telephone' => ad_setting('phone', '+90 555 729 15 36'), 'contactType' => 'sales', 'availableLanguage' => AD_LANGUAGES],
        'address' => ['@type' => 'PostalAddress', 'addressLocality' => 'İstanbul', 'addressCountry' => 'TR'],
    ];
    ?>
<!doctype html>
<html lang="<?= ad_e($lang) ?>" dir="<?= $rtl ? 'rtl' : 'ltr' ?>">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="theme-color" content="#f9f6f0">
  <title><?= ad_e($fullTitle) ?></title>
  <meta name="description" content="<?= ad_e($description) ?>">
  <meta name="robots" content="<?= $indexable ? 'index,follow,max-image-preview:large' : 'noindex,nofollow' ?>">
  <link rel="canonical" href="<?= ad_e($canonical) ?>">
  <?php foreach (AD_LANGUAGES as $other): ?><link rel="alternate" hreflang="<?= ad_e($other) ?>" href="<?= ad_e(ad_site_url(ad_link($other, $path))) ?>">
  <?php endforeach; ?><link rel="alternate" hreflang="x-default" href="<?= ad_e(ad_site_url(ad_link('tr', $path))) ?>">
  <meta property="og:type" content="website"><meta property="og:site_name" content="Altınlı Dekor">
  <meta property="og:title" content="<?= ad_e($fullTitle) ?>"><meta property="og:description" content="<?= ad_e($description) ?>">
  <meta property="og:url" content="<?= ad_e($canonical) ?>"><meta property="og:image" content="<?= ad_e($ogImage) ?>">
  <meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="<?= ad_e($fullTitle) ?>"><meta name="twitter:description" content="<?= ad_e($description) ?>">
  <link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
  <link rel="stylesheet" href="/assets/css/site.css?v=2">
  <link rel="stylesheet" href="/assets/css/theme-b.css?v=1">
  <link rel="stylesheet" href="/assets/css/tile-refresh.css?v=3">
  <link rel="stylesheet" href="/assets/css/hero-classic.css?v=2">
  <script defer src="/assets/js/site.js?v=4"></script>
  <?= ad_jsonld($organization) ?>
</head>
<body>
<a class="skip-link" href="#main"><?= ad_e(ad_ui('products', $lang)) ?></a>
<header class="site-header" id="site-header">
  <div class="container header-inner">
    <a class="brand" href="<?= ad_e(ad_link($lang)) ?>" aria-label="Altınlı Dekor">
      <?php $logoUrl = (string) ad_setting('logo', ''); ?>
      <?php if ($logoUrl !== ''): ?>
        <img src="<?= ad_e(ad_media($logoUrl)) ?>" alt="Altınlı Dekor" style="max-height: 44px; width: auto; object-fit: contain;">
      <?php else: ?>
        <span class="brand-symbol">A</span><span class="brand-words"><strong>Altınlı <em>Dekor</em></strong><small><?= ad_e(ad_ui('brand_tagline', $lang)) ?></small></span>
      <?php endif; ?>
    </a>
    <nav class="main-nav" aria-label="<?= ad_e(ad_ui('footer_menu', $lang)) ?>">
      <?php foreach ($menu as $item): $href = (string) $item['href']; if (!str_starts_with($href, '/') || str_starts_with($href, '//')) continue; ?>
        <a href="<?= ad_e(ad_link($lang, $href)) ?>"<?= $href === $path || ($path === '' && $href === '/') ? ' aria-current="page"' : '' ?>><?= ad_e(ad_locale_value($item['label_json'], $lang)) ?></a>
      <?php endforeach; ?>
    </nav>
    <div class="header-actions">
      <details class="lang-picker"><summary aria-label="<?= ad_e(ad_ui('languages', $lang)) ?>"><span class="flag"><?= ['tr'=>'🇹🇷','en'=>'🇬🇧','fr'=>'🇫🇷','ar'=>'🇸🇦','ru'=>'🇷🇺','az'=>'🇦🇿','es'=>'🇪🇸'][$lang] ?></span><span class="lang-short"><?= strtoupper($lang) ?></span><span aria-hidden="true">⌄</span></summary>
        <div class="lang-list">
          <?php foreach (['tr'=>'Türkçe','en'=>'English','fr'=>'Français','ar'=>'العربية','ru'=>'Русский','az'=>'Azərbaycan','es'=>'Español'] as $code => $label): ?>
          <a lang="<?= ad_e($code) ?>" hreflang="<?= ad_e($code) ?>" href="<?= ad_e(ad_link($code, $currentPath) . $query) ?>"<?= $lang === $code ? ' aria-current="true"' : '' ?>><?= ad_e($label) ?><small><?= strtoupper($code) ?></small></a>
          <?php endforeach; ?>
        </div>
      </details>
      <a class="button button-gold header-whatsapp" href="<?= ad_e(ad_whatsapp_url()) ?>" target="_blank" rel="noopener noreferrer">WhatsApp</a>
      <button class="mobile-toggle" type="button" data-menu-toggle aria-label="<?= ad_e(ad_ui('footer_menu', $lang)) ?>" aria-expanded="false"><span></span><span></span><span></span></button>
    </div>
  </div>
  <nav class="mobile-nav" id="mobile-nav" aria-label="<?= ad_e(ad_ui('footer_menu', $lang)) ?>">
    <?php foreach ($menu as $item): $href = (string) $item['href']; if (!str_starts_with($href, '/') || str_starts_with($href, '//')) continue; ?><a href="<?= ad_e(ad_link($lang, $href)) ?>"><?= ad_e(ad_locale_value($item['label_json'], $lang)) ?></a><?php endforeach; ?>
    <a class="button button-gold" href="<?= ad_e(ad_whatsapp_url()) ?>" target="_blank" rel="noopener noreferrer">WhatsApp</a>
  </nav>
</header>
<main id="main">
<?php $flash = ad_flash(); if ($flash !== ''): ?><div class="flash container" role="status"><?= ad_e($flash) ?></div><?php endif; ?>
<?php
}

function ad_page_end(string $lang): void
{
    $menu = ad_all("SELECT * FROM ad_menus WHERE location = 'footer' AND active = 1 ORDER BY sort_order ASC, id ASC");
    $current = (string) (parse_url((string) ($_SERVER['REQUEST_URI'] ?? ''), PHP_URL_PATH) ?: '/');
    $current = (string) preg_replace('~^/(tr|en|fr|ar|ru|az|es)(?=/|$)~', '', $current);
    $current = $current === '' ? '/' : $current;
    ?>
</main>
<footer class="site-footer">
  <div class="container footer-grid">
    <div>
      <a class="brand" href="<?= ad_e(ad_link($lang)) ?>"><span class="brand-symbol">A</span><span class="brand-words"><strong>Altınlı <em>Dekor</em></strong></span></a>
      <p class="footer-muted"><?= ad_e(ad_ui('footer_desc', $lang)) ?></p><p class="footer-muted b-sample-note"><?= ad_e(ad_ui('sample_note', $lang)) ?></p>
      <div class="socials">
        <?php foreach (['instagram'=>'Instagram','facebook'=>'Facebook','youtube'=>'YouTube'] as $key => $label): $url = ad_setting($key); if ($url && filter_var($url, FILTER_VALIDATE_URL) && str_starts_with($url, 'https://')): ?><a href="<?= ad_e($url) ?>" target="_blank" rel="noopener noreferrer" aria-label="<?= ad_e($label) ?>"><?= ad_e(substr($label, 0, 1)) ?></a><?php endif; endforeach; ?>
      </div>
    </div>
    <div><h3><?= ad_e(ad_ui('footer_menu', $lang)) ?></h3><ul class="footer-links">
      <?php foreach ($menu as $item): $href = (string) $item['href']; if (!str_starts_with($href, '/') || str_starts_with($href, '//')) continue; ?><li><a href="<?= ad_e(ad_link($lang, $href)) ?>"><?= ad_e(ad_locale_value($item['label_json'], $lang)) ?></a></li><?php endforeach; ?>
    </ul></div>
    <div><h3><?= ad_e(ad_ui('footer_contact', $lang)) ?></h3><ul class="footer-links">
      <li><a href="tel:<?= ad_e(preg_replace('/[^+0-9]/', '', ad_setting('phone'))) ?>">☎ &nbsp; <?= ad_e(ad_setting('phone')) ?></a></li>
      <li><a href="mailto:<?= ad_e(ad_setting('email')) ?>">✉ &nbsp; <?= ad_e(ad_setting('email')) ?></a></li>
      <li>⌖ &nbsp; <?= ad_e(ad_setting('address')) ?></li>
      <li><a href="<?= ad_e(ad_whatsapp_url()) ?>" target="_blank" rel="noopener noreferrer">↗ &nbsp; WhatsApp</a></li>
    </ul></div>
    <div><h3><?= ad_e(ad_ui('newsletter', $lang)) ?></h3><p class="footer-muted"><?= ad_e(ad_ui('newsletter_desc', $lang)) ?></p>
      <form class="newsletter-form" action="<?= ad_e(ad_link($lang, '/bulten')) ?>" method="post"><?= ad_csrf_field() ?><input type="email" name="email" placeholder="email@example.com" aria-label="<?= ad_e(ad_ui('contact_email', $lang)) ?>" required><input class="hp" type="text" name="website" tabindex="-1" autocomplete="off" aria-hidden="true"><button class="button button-gold" type="submit"><?= ad_e(ad_ui('newsletter_join', $lang)) ?></button></form>
      <h4><?= ad_e(ad_ui('languages', $lang)) ?></h4><div class="footer-langs"><?php foreach (AD_LANGUAGES as $code): ?><a lang="<?= $code ?>" hreflang="<?= $code ?>" href="<?= ad_e(ad_link($code, $current)) ?>"<?= $lang === $code ? ' aria-current="true"' : '' ?>><?= strtoupper($code) ?></a><?php endforeach; ?></div>
    </div>
  </div>
  <div class="footer-bottom"><div class="container"><span>© <?= date('Y') ?> Altınlı Dekor. <?= ad_e(ad_ui('footer_rights', $lang)) ?></span><span><a href="<?= ad_e(ad_link($lang, '/gizlilik')) ?>"><?= ad_e(ad_ui('privacy', $lang)) ?></a> &nbsp; · &nbsp; <a href="/admin/">Admin</a></span></div></div>
</footer>
</body></html>
<?php
}

/** Adres bir video dosyası mı (.mp4 / .webm)? */
function ad_is_video_url(string $url): bool
{
    return (bool) preg_match('/\.(?:mp4|webm)$/i', (string) parse_url($url, PHP_URL_PATH));
}

/** Yüklenen dosya görselse <img>, video ise sessiz/döngülü <video> üretir (panelden her alana video yüklenebilsin). */
function ad_media_tag(string $url, string $alt = '', string $extra = ''): string
{
    if ($url === '') return '';
    if (ad_is_video_url($url)) {
        $type = strtolower((string) pathinfo((string) parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION)) === 'webm' ? 'video/webm' : 'video/mp4';
        return '<video class="media-video" autoplay muted loop playsinline preload="metadata" aria-label="' . ad_e($alt) . '"><source src="' . ad_e($url) . '" type="' . $type . '"></video>';
    }
    return '<img src="' . ad_e($url) . '" alt="' . ad_e($alt) . '" loading="lazy"' . ($extra !== '' ? ' ' . $extra : '') . '>';
}

function ad_intro(string $eyebrow, string $title, string $description = ''): void
{
    echo '<div class="page-intro container"><span class="eyebrow">' . ad_e($eyebrow) . '</span><h1 class="display">' . ad_e($title) . '</h1>' . ($description !== '' ? '<p>' . ad_e($description) . '</p>' : '') . '</div>';
}

function ad_category_card(array $category, string $lang, int $index = 0): void
{
    $name = ad_locale_value($category['name_json'], $lang);
    $desc = ad_locale_value($category['description_json'], $lang);
    echo '<a class="category-card image-card" href="' . ad_e(ad_link($lang, '/koleksiyonlar/' . $category['slug'])) . '">' . ad_media_tag(ad_media($category['cover_image']), $name) . '<span class="image-shade"></span><span class="image-card-info">' . ($index ? '<span class="eyebrow">0' . $index . '</span>' : '') . '<strong class="display">' . ad_e($name) . '</strong><small>' . ad_e($desc) . '</small><span class="card-arrow">' . ad_e(ad_ui('explore', $lang)) . ' →</span></span></a>';
}

function ad_product_card(array $product, string $lang, string $categoryName = ''): void
{
    $title = ad_locale_value($product['title_json'], $lang);
    $short = ad_locale_value($product['short_json'], $lang);
    $image = ad_media($product['cover_image']);
    echo '<a class="product-card" href="' . ad_e(ad_link($lang, '/urunler/' . $product['slug'])) . '"><span class="product-card-image">';
    if ($image !== '') echo ad_media_tag($image, $title);
    echo '<span class="image-shade"></span>';
    if ((int) $product['featured'] === 1) echo '<span class="featured-badge">★ ' . ad_e(ad_ui('featured_badge', $lang)) . '</span>';
    if ((string) $product['product_code'] !== '') echo '<span class="code-badge">' . ad_e($product['product_code']) . '</span>';
    echo '</span><span class="product-card-info"><span class="eyebrow">' . ad_e($categoryName) . '</span><strong class="display">' . ad_e($title) . '</strong><small>' . ad_e($short) . '</small><span class="card-bottom">' . ad_e(ad_ui('view_details', $lang)) . '<b>→</b></span></span></a>';
}

function ad_project_card(array $project, string $lang): void
{
    $title = ad_locale_value($project['title_json'], $lang);
    $desc = ad_locale_value($project['description_json'], $lang);
    $location = ad_locale_value($project['location_json'], $lang);
    $type = ad_ui('type_' . $project['project_type'], $lang);
    echo '<a class="project-card image-card" href="' . ad_e(ad_link($lang, '/projeler/' . $project['slug'])) . '">' . ad_media_tag(ad_media($project['cover_image']), $title) . '<span class="image-shade"></span><span class="image-card-info"><span class="eyebrow">' . ad_e($type . ($project['project_year'] !== '' ? ' · ' . $project['project_year'] : '')) . '</span><strong class="display">' . ad_e($title) . '</strong><small>' . ad_e($location) . ' · ' . ad_e($desc) . '</small></span></a>';
}