<?php
// Centrale config voor de site.
// Pas deze waarden aan bij deploy naar productie.

const SITE_NAME    = 'Martin Bekebrede';
const SITE_TAGLINE = 'Scheepsontwerp · Sinds 1974';

// E-mailadres waar het contactformulier naartoe stuurt
const CONTACT_EMAIL = 'info@martin-bekebrede.nl';

// Telefoon en adres (voor footer + contact-pagina)
const CONTACT_PHONE   = '+31 (0)00 000 00 00';
const CONTACT_ADDRESS = 'Adresgegevens, Nederland';

// ─── Admin login ──────────────────────────────────────────────────────────
// WIJZIG DIT DIRECT NA DEPLOY.
//
// Voor productie: zet een bcrypt hash in ADMIN_PASSWORD_HASH (genereer met
// /admin/_setup.php — verwijder dat bestand daarna). Laat ADMIN_PASSWORD leeg.
//
// Voor demo: laat ADMIN_PASSWORD_HASH leeg en zet je wachtwoord in ADMIN_PASSWORD.
//   (Plain text — alleen voor demo. Niet voor productie.)
const ADMIN_USER          = 'admin';
const ADMIN_PASSWORD      = 'demo123';   // plain demo-wachtwoord
const ADMIN_PASSWORD_HASH = '';          // bcrypt hash voor productie

// Google Maps embed URL (vervang met juiste locatie later)
const MAPS_EMBED = 'https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2434.0!2d5.0!3d52.5!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2sNetherlands!5e0!3m2!1snl!2snl!4v1700000000000';

// ---- Talen ----
function current_lang(): string {
  if (isset($_GET['lang']) && in_array($_GET['lang'], ['nl','en'], true)) {
    setcookie('lang', $_GET['lang'], time() + 60*60*24*365, '/');
    return $_GET['lang'];
  }
  if (isset($_COOKIE['lang']) && in_array($_COOKIE['lang'], ['nl','en'], true)) {
    return $_COOKIE['lang'];
  }
  return 'nl';
}

// Helper voor i18n vertalingen
function t(string $key): string {
  static $strings = null;
  if ($strings === null) {
    $strings = require __DIR__ . '/i18n.php';
  }
  $lang = current_lang();
  return $strings[$lang][$key] ?? ($strings['nl'][$key] ?? $key);
}

// Veilige escape
function e(?string $s): string {
  return htmlspecialchars((string)$s, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}

// Build een URL met huidige taal
function url(string $path, array $params = []): string {
  $params = array_merge(['lang' => current_lang()], $params);
  $qs = http_build_query($params);
  return $path . ($qs ? '?' . $qs : '');
}

// Slugify voor serie-namen
function slugify(string $s): string {
  $s = mb_strtolower($s, 'UTF-8');
  $s = preg_replace('/[^a-z0-9]+/u', '-', $s);
  return trim($s, '-');
}

// CSRF token
function csrf_token(): string {
  if (session_status() === PHP_SESSION_NONE) session_start();
  if (empty($_SESSION['csrf'])) {
    $_SESSION['csrf'] = bin2hex(random_bytes(16));
  }
  return $_SESSION['csrf'];
}

function csrf_check(?string $token): bool {
  if (session_status() === PHP_SESSION_NONE) session_start();
  return !empty($_SESSION['csrf']) && hash_equals($_SESSION['csrf'], (string)$token);
}
