<?php
// powered by knuepower.de
$result = [];
$input_value = $_POST['size_input'] ?? '';
$unit = $_POST['unit'] ?? 'bytes';

if (isset($_POST['convert_size'])) {
    $units = [
        'bytes' => 1,
        'kb' => 1024,
        'mb' => 1024 ** 2,
        'gb' => 1024 ** 3,
        'tb' => 1024 ** 4,
    ];

    if (is_numeric($input_value) && isset($units[$unit])) {
        $bytes = floatval($input_value) * $units[$unit];
        foreach ($units as $name => $factor) {
            $result[$name] = round($bytes / $factor, 6);
        }
    } else {
        $result['error'] = "Ungültige Eingabe.";
    }
}
?>
<div class="card mb-4" id="file-size-converter">
  <div class="card-header fw-bold">📐 Dateigröße umrechnen</div>
  <div class="card-body">
    <form method="post" action="#file-size-converter" class="row g-2 align-items-end">
      <div class="col-md-5">
        <input type="text" name="size_input" class="form-control" placeholder="Größe z. B. 512" required value="<?= htmlspecialchars($input_value) ?>">
      </div>
      <div class="col-md-3">
        <select name="unit" class="form-select">
          <option value="bytes" <?= $unit === 'bytes' ? 'selected' : '' ?>>Byte</option>
          <option value="kb" <?= $unit === 'kb' ? 'selected' : '' ?>>Kilobyte (KB)</option>
          <option value="mb" <?= $unit === 'mb' ? 'selected' : '' ?>>Megabyte (MB)</option>
          <option value="gb" <?= $unit === 'gb' ? 'selected' : '' ?>>Gigabyte (GB)</option>
          <option value="tb" <?= $unit === 'tb' ? 'selected' : '' ?>>Terabyte (TB)</option>
        </select>
      </div>
      <div class="col-md-2">
        <button type="submit" name="convert_size" class="btn btn-primary w-100">Umrechnen</button>
      </div>
    </form>

    <?php if (!empty($result)): ?>
      <?php if (isset($result['error'])): ?>
        <div class="alert alert-danger mt-3"><?= htmlspecialchars($result['error']) ?></div>
      <?php else: ?>
        <div class="mt-4">
          <h6>Ergebnisse:</h6>
          <ul class="list-group">
            <?php foreach ($result as $name => $val): ?>
              <li class="list-group-item d-flex justify-content-between">
                <span><?= strtoupper($name) ?></span>
                <span><?= number_format($val, 6, ',', '.') ?> <?= strtoupper($name) ?></span>
              </li>
            <?php endforeach; ?>
          </ul>
        </div>
      <?php endif; ?>
    <?php endif; ?>
  </div>
</div>
