<?php
// OZORWebFactory — Admin Panel
// Password stored as SHA256 hash in config.json
session_start();
$config = json_decode(file_get_contents(__DIR__ . '/config.json'), true);
$error = '';

// LOGIN
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['password'])) {
    if (hash('sha256', $_POST['password']) === $config['adminHash']) {
        $_SESSION['auth'] = true;
        header('Location: admin.php');
        exit;
    }
    $error = 'Parolă incorectă.';
}
if (isset($_POST['logout'])) {
    session_destroy();
    header('Location: admin.php');
    exit;
}

// SAVE
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_SESSION['auth']) && isset($_POST['save'])) {
    // Business info
    $config['businessName']    = trim($_POST['businessName'] ?? $config['businessName']);
    $config['tagline']         = trim($_POST['tagline'] ?? $config['tagline']);
    $config['phone']           = trim($_POST['phone'] ?? $config['phone']);
    $config['address']         = trim($_POST['address'] ?? $config['address']);
    $config['hours']           = trim($_POST['hours'] ?? $config['hours']);
    $config['instagram']       = trim($_POST['instagram'] ?? '');
    $config['heroTitle']       = trim($_POST['heroTitle'] ?? $config['heroTitle']);
    $config['heroDesc']        = trim($_POST['heroDesc'] ?? $config['heroDesc']);
    $config['aboutText1']      = trim($_POST['aboutText1'] ?? $config['aboutText1']);
    $config['aboutText2']      = trim($_POST['aboutText2'] ?? $config['aboutText2']);

    // Services
    for ($i = 0; $i < count($config['services']); $i++) {
        if (isset($_POST["svc_name_$i"])) {
            $config['services'][$i]['name'] = trim($_POST["svc_name_$i"]);
            $config['services'][$i]['desc'] = trim($_POST["svc_desc_$i"]);
        }
    }

    // Photos
    $config['heroPhoto'] = trim($_POST['heroPhoto'] ?? $config['heroPhoto']);
    for ($i = 0; $i < count($config['galleryPhotos']); $i++) {
        if (isset($_POST["gallery_$i"])) {
            $config['galleryPhotos'][$i] = trim($_POST["gallery_$i"]);
        }
    }

    // Reviews
    for ($i = 0; $i < count($config['reviews']); $i++) {
        if (isset($_POST["rev_name_$i"])) {
            $config['reviews'][$i]['name'] = trim($_POST["rev_name_$i"]);
            $config['reviews'][$i]['text'] = trim($_POST["rev_text_$i"]);
        }
    }

    // Password change
    if (!empty($_POST['newPassword']) && strlen($_POST['newPassword']) >= 6) {
        $config['adminHash'] = hash('sha256', $_POST['newPassword']);
    }

    file_put_contents(__DIR__ . '/config.json', json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
    $saved = true;
}

$auth = isset($_SESSION['auth']);
?>
<!DOCTYPE html>
<html lang="ro">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin — <?= htmlspecialchars($config['businessName']) ?></title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
<style>
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:#0F1117;color:#E8EAF0;min-height:100vh}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login-box{background:#1A1D27;border:1px solid #2A2D3E;border-radius:12px;padding:3rem;width:100%;max-width:380px;text-align:center}
.login-logo{font-size:1.4rem;font-weight:600;margin-bottom:.4rem;color:#fff}
.login-sub{font-size:.78rem;color:#888;margin-bottom:2rem}
.login-box input{width:100%;padding:.85rem 1.1rem;border:1px solid #2A2D3E;background:#0F1117;color:#fff;border-radius:8px;font-size:.88rem;margin-bottom:1rem;outline:none;transition:border-color .2s}
.login-box input:focus{border-color:#5B6CF0}
.btn{width:100%;padding:.85rem;background:#5B6CF0;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .2s}
.btn:hover{opacity:.85}
.error{background:#3D1515;border:1px solid #7B2020;color:#FF8080;padding:.75rem 1rem;border-radius:6px;font-size:.8rem;margin-bottom:1rem}

/* Admin layout */
.admin-wrap{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
.sidebar{background:#1A1D27;border-right:1px solid #2A2D3E;padding:1.5rem}
.sidebar-logo{font-size:1rem;font-weight:600;color:#fff;margin-bottom:.3rem}
.sidebar-site{font-size:.72rem;color:#888;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #2A2D3E}
.sidebar nav a{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border-radius:6px;font-size:.8rem;color:#AAB0C8;text-decoration:none;margin-bottom:.2rem;transition:all .2s}
.sidebar nav a:hover,.sidebar nav a.active{background:#252840;color:#fff}
.sidebar nav a span{font-size:.9rem}
.sidebar-footer{margin-top:auto;padding-top:2rem}
.logout-btn{width:100%;padding:.65rem;background:transparent;border:1px solid #2A2D3E;color:#888;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s}
.logout-btn:hover{border-color:#FF5555;color:#FF5555}

.main{padding:2.5rem;overflow-y:auto}
.page-title{font-size:1.2rem;font-weight:600;margin-bottom:.3rem}
.page-sub{font-size:.78rem;color:#888;margin-bottom:2.5rem}
.saved-banner{background:#0D2E1A;border:1px solid #1A5C35;color:#5BBA80;padding:.85rem 1.2rem;border-radius:8px;margin-bottom:1.5rem;font-size:.82rem}

.card{background:#1A1D27;border:1px solid #2A2D3E;border-radius:10px;padding:1.75rem;margin-bottom:1.5rem}
.card-title{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#5B6CF0;margin-bottom:1.25rem;font-weight:500}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.form-row.full{grid-template-columns:1fr}
label{display:block;font-size:.72rem;color:#888;margin-bottom:.35rem;letter-spacing:.04em}
input[type=text],textarea{width:100%;padding:.75rem .9rem;background:#0F1117;border:1px solid #2A2D3E;color:#E8EAF0;border-radius:7px;font-size:.83rem;font-family:'Inter',sans-serif;outline:none;transition:border-color .2s;resize:vertical}
input[type=text]:focus,textarea:focus{border-color:#5B6CF0}
textarea{min-height:80px}
.photo-preview{width:100%;height:120px;object-fit:cover;border-radius:6px;margin-top:.5rem;border:1px solid #2A2D3E}
.svc-item,.rev-item{background:#0F1117;border:1px solid #2A2D3E;border-radius:7px;padding:1.1rem;margin-bottom:.75rem}
.svc-num{font-size:.65rem;color:#5B6CF0;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.6rem}
.gallery-grid-admin{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}
.gallery-item label{font-size:.65rem;color:#888;margin-bottom:.35rem;display:block}
.submit-bar{position:sticky;bottom:0;background:#0F1117;border-top:1px solid #2A2D3E;padding:1rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 -2.5rem -2.5rem}
.btn-save{background:#5B6CF0;color:#fff;border:none;padding:.8rem 2.5rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .2s}
.btn-save:hover{opacity:.85}
.preview-link{font-size:.78rem;color:#5B6CF0;text-decoration:none}
.preview-link:hover{text-decoration:underline}
@media(max-width:700px){.admin-wrap{grid-template-columns:1fr}.sidebar{display:none}.form-row{grid-template-columns:1fr}.gallery-grid-admin{grid-template-columns:1fr 1fr}}
</style>
</head>
<body>

<?php if (!$auth): ?>
<div class="login-wrap">
  <div class="login-box">
    <div class="login-logo">⚡ OZORWebFactory</div>
    <div class="login-sub">Admin — <?= htmlspecialchars($config['businessName']) ?></div>
    <?php if ($error): ?><div class="error"><?= $error ?></div><?php endif; ?>
    <form method="POST">
      <input type="password" name="password" placeholder="Parolă" autofocus>
      <button type="submit" class="btn">Intră în cont</button>
    </form>
  </div>
</div>

<?php else: ?>
<form method="POST">
<input type="hidden" name="save" value="1">
<div class="admin-wrap">
  <div class="sidebar">
    <div class="sidebar-logo">⚡ Admin Panel</div>
    <div class="sidebar-site"><?= htmlspecialchars($config['businessName']) ?></div>
    <nav>
      <a href="#info" class="active"><span>🏢</span> Informații</a>
      <a href="#hero"><span>🖼</span> Hero & Texte</a>
      <a href="#services"><span>✂️</span> Servicii</a>
      <a href="#gallery"><span>📸</span> Galerie poze</a>
      <a href="#reviews"><span>⭐</span> Recenzii</a>
      <a href="#security"><span>🔒</span> Securitate</a>
    </nav>
    <div class="sidebar-footer">
      <form method="POST" style="display:inline">
        <input type="hidden" name="logout" value="1">
        <button type="submit" class="logout-btn">Ieșire din cont</button>
      </form>
    </div>
  </div>

  <div class="main">
    <?php if (isset($saved)): ?>
    <div class="saved-banner">✅ Modificările au fost salvate cu succes!</div>
    <?php endif; ?>

    <div class="page-title">Editează site-ul</div>
    <div class="page-sub">Toate modificările se aplică imediat după salvare.</div>

    <!-- INFO -->
    <div class="card" id="info">
      <div class="card-title">Informații business</div>
      <div class="form-row">
        <div><label>Nume business</label><input type="text" name="businessName" value="<?= htmlspecialchars($config['businessName']) ?>"></div>
        <div><label>Tagline</label><input type="text" name="tagline" value="<?= htmlspecialchars($config['tagline'] ?? '') ?>"></div>
      </div>
      <div class="form-row">
        <div><label>Telefon</label><input type="text" name="phone" value="<?= htmlspecialchars($config['phone']) ?>"></div>
        <div><label>Instagram (fără @)</label><input type="text" name="instagram" value="<?= htmlspecialchars($config['instagram'] ?? '') ?>"></div>
      </div>
      <div class="form-row full">
        <div><label>Adresă completă</label><input type="text" name="address" value="<?= htmlspecialchars($config['address']) ?>"></div>
      </div>
      <div class="form-row full">
        <div><label>Program (ex: Luni–Sâmbătă: 10:00–20:00)</label><input type="text" name="hours" value="<?= htmlspecialchars($config['hours']) ?>"></div>
      </div>
    </div>

    <!-- HERO -->
    <div class="card" id="hero">
      <div class="card-title">Hero — Prima secțiune</div>
      <div class="form-row full">
        <div><label>Titlu principal</label><input type="text" name="heroTitle" value="<?= htmlspecialchars($config['heroTitle'] ?? '') ?>"></div>
      </div>
      <div class="form-row full">
        <div><label>Descriere scurtă</label><textarea name="heroDesc"><?= htmlspecialchars($config['heroDesc'] ?? '') ?></textarea></div>
      </div>
      <div class="form-row">
        <div><label>Despre noi — paragraful 1</label><textarea name="aboutText1"><?= htmlspecialchars($config['aboutText1'] ?? '') ?></textarea></div>
        <div><label>Despre noi — paragraful 2</label><textarea name="aboutText2"><?= htmlspecialchars($config['aboutText2'] ?? '') ?></textarea></div>
      </div>
      <div class="form-row full">
        <div>
          <label>URL Foto Hero (Unsplash sau altul)</label>
          <input type="text" name="heroPhoto" id="heroPhotoInput" value="<?= htmlspecialchars($config['heroPhoto']) ?>" oninput="document.getElementById('heroPreview').src=this.value">
          <img id="heroPreview" class="photo-preview" src="<?= htmlspecialchars($config['heroPhoto']) ?>" alt="Hero preview">
        </div>
      </div>
    </div>

    <!-- SERVICES -->
    <div class="card" id="services">
      <div class="card-title">Servicii</div>
      <?php foreach ($config['services'] as $i => $svc): ?>
      <div class="svc-item">
        <div class="svc-num">Serviciu <?= $i+1 ?></div>
        <div class="form-row">
          <div><label>Nume</label><input type="text" name="svc_name_<?= $i ?>" value="<?= htmlspecialchars($svc['name']) ?>"></div>
          <div><label>Descriere</label><input type="text" name="svc_desc_<?= $i ?>" value="<?= htmlspecialchars($svc['desc']) ?>"></div>
        </div>
      </div>
      <?php endforeach; ?>
    </div>

    <!-- GALLERY -->
    <div class="card" id="gallery">
      <div class="card-title">Galerie Foto — URL-uri imagini</div>
      <div class="gallery-grid-admin">
        <?php foreach ($config['galleryPhotos'] as $i => $url): ?>
        <div class="gallery-item">
          <label>Poza <?= $i+1 ?></label>
          <input type="text" name="gallery_<?= $i ?>" value="<?= htmlspecialchars($url) ?>" oninput="document.getElementById('gp<?= $i ?>').src=this.value">
          <img id="gp<?= $i ?>" class="photo-preview" src="<?= htmlspecialchars($url) ?>" alt="">
        </div>
        <?php endforeach; ?>
      </div>
      <p style="font-size:.72rem;color:#666">Poți folosi orice URL public (Unsplash, propriile poze uploadate etc.)</p>
    </div>

    <!-- REVIEWS -->
    <div class="card" id="reviews">
      <div class="card-title">Recenzii clienți</div>
      <?php foreach ($config['reviews'] as $i => $rev): ?>
      <div class="rev-item">
        <div class="svc-num">Recenzie <?= $i+1 ?></div>
        <div class="form-row">
          <div><label>Numele clientului</label><input type="text" name="rev_name_<?= $i ?>" value="<?= htmlspecialchars($rev['name']) ?>"></div>
          <div><label>De când (ex: 2 luni)</label><input type="text" name="rev_ago_<?= $i ?>" value="<?= htmlspecialchars($rev['ago'] ?? '') ?>"></div>
        </div>
        <div class="form-row full">
          <div><label>Textul recenziei</label><textarea name="rev_text_<?= $i ?>"><?= htmlspecialchars($rev['text']) ?></textarea></div>
        </div>
      </div>
      <?php endforeach; ?>
    </div>

    <!-- SECURITY -->
    <div class="card" id="security">
      <div class="card-title">Schimbă parola</div>
      <div class="form-row">
        <div><label>Parolă nouă (minim 6 caractere)</label><input type="text" name="newPassword" placeholder="Lasă gol pentru a păstra parola actuală"></div>
      </div>
    </div>
  </div>

  <!-- STICKY SAVE BAR -->
  <div class="submit-bar">
    <a href="index.php" target="_blank" class="preview-link">👁 Previzualizează site-ul →</a>
    <button type="submit" class="btn-save">💾 Salvează modificările</button>
  </div>
</div>
</form>
<?php endif; ?>

</body>
</html>
