<META NAME="robots" CONTENT="noindex,nofollow">


<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include 'config.php';
session_start();

if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
  header("Location: login.php");
  exit;
}

$today = date('Y-m-d');
$showToast = isset($_GET['success']);

// Handle Form Submission
if ($_SERVER["REQUEST_METHOD"] === "POST") {
  $fields = [
    'c_name', 'ipokey', 'islive', 'img', 'm_application', 'rat', 'details', 'emoji',
    'i_date', 'c_date', 'ipo_open', 'ipo_close', 'ipo_allotment', 'ipo_refund',
    'ipo_credit', 'ipo_listing', 'status', 'suggestion', 'date', 'allotment',
    'NO', 'TYPE', 'url', 'o_price', 'GMP', 'subscription'
  ];

  $params = [];
  foreach ($fields as $field) {
    $params[":$field"] = $_POST[$field] ?? '';
  }

  // Collect IPO date fields
$ipo_dates = [
  $_POST['ipo_open'] ?? '',
  $_POST['ipo_close'] ?? '',
  $_POST['ipo_allotment'] ?? '',
  $_POST['ipo_refund'] ?? '',
  $_POST['ipo_credit'] ?? '',
  $_POST['ipo_listing'] ?? ''
];

// If all IPO dates are same, blank them out
if (count(array_unique($ipo_dates)) === 1) {
  $_POST['ipo_open'] = '';
  $_POST['ipo_close'] = '';
  $_POST['ipo_allotment'] = '';
  $_POST['ipo_refund'] = '';
  $_POST['ipo_credit'] = '';
  $_POST['ipo_listing'] = '';
}

 function convertDate($date) {
  if (!empty($date)) {
    $d = DateTime::createFromFormat('Y-m-d', $date);
    return $d ? $d->format('d-m-Y') : $date;
  }
  return '';
}

// Convert date fields
$_POST['ipo_open']      = convertDate($_POST['ipo_open'] ?? '');
$_POST['ipo_close']     = convertDate($_POST['ipo_close'] ?? '');
$_POST['ipo_allotment'] = convertDate($_POST['ipo_allotment'] ?? '');
$_POST['ipo_refund']    = convertDate($_POST['ipo_refund'] ?? '');
$_POST['ipo_credit']    = convertDate($_POST['ipo_credit'] ?? '');
$_POST['ipo_listing']   = convertDate($_POST['ipo_listing'] ?? '');

  
// Prepare insert
$params = [];
foreach ($fields as $field) {
  $params[":$field"] = $_POST[$field] ?? '';
}

$sql = "INSERT INTO ipo_post (
  c_name, ipokey, islive, img, m_application, rat, details, emoji, 
  i_date, c_date, ipo_open, ipo_close, ipo_allotment, ipo_refund, 
  ipo_credit, ipo_listing, status, suggestion, date, allotment, 
  NO, TYPE, url, o_price, GMP, subscription
) VALUES (
  :c_name, :ipokey, :islive, :img, :m_application, :rat, :details, :emoji, 
  :i_date, :c_date, :ipo_open, :ipo_close, :ipo_allotment, :ipo_refund, 
  :ipo_credit, :ipo_listing, :status, :suggestion, :date, :allotment, 
  :NO, :TYPE, :url, :o_price, :GMP, :subscription
)";

try {
  $stmt = $pdo->prepare($sql);
  $stmt->execute($params);
  header("Location: add.php?success=1");
  exit;
} catch (PDOException $e) {
  die("DB Error: " . $e->getMessage());
}
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Add IPO - Wizard</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
  <style>
    :root {
      --primary: #4f46e5;
      --primary-light: #e0e7ff;
      --primary-dark: #3730a3;
      --surface: #ffffff;
      --surface-alt: #f8fafc;
      --border: #e2e8f0;
      --text: #1e293b;
      --text-muted: #64748b;
      --success: #059669;
      --success-light: #ecfdf5;
      --warning: #d97706;
      --warning-light: #fffbeb;
      --danger: #dc2626;
      --danger-light: #fef2f2;
      --info: #0284c7;
      --info-light: #f0f9ff;
      --radius: 12px;
      --radius-sm: 8px;
      --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
      --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
      --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.08), 0 2px 4px -2px rgba(0,0,0,0.04);
    }

    * { box-sizing: border-box; }

    body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      background: #f1f5f9;
      color: var(--text);
      min-height: 100vh;
      padding: 0;
      margin: 0;
    }

    /* ── Top Bar ── */
    .top-bar {
      background: var(--surface);
      border-bottom: 1px solid var(--border);
      padding: 16px 0;
      position: sticky;
      top: 0;
      z-index: 100;
      box-shadow: var(--shadow-sm);
    }
    .top-bar .inner {
      max-width: 860px;
      margin: 0 auto;
      padding: 0 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .brand {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 700;
      font-size: 20px;
      color: var(--primary);
    }
    .brand-icon {
      width: 36px;
      height: 36px;
      background: var(--primary);
      color: #fff;
      border-radius: 10px;
      display: grid;
      place-items: center;
      font-size: 18px;
      flex-shrink: 0;
    }
    .btn-back {
      background: var(--surface-alt);
      color: var(--text-muted);
      border: 1px solid var(--border);
      padding: 8px 18px;
      border-radius: var(--radius-sm);
      font-weight: 500;
      font-size: 13px;
      text-decoration: none;
      transition: all 0.2s;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    .btn-back:hover {
      background: var(--primary-light);
      color: var(--primary);
      border-color: var(--primary);
    }

    /* ── Main Container ── */
    .main-wrap {
      max-width: 860px;
      margin: 0 auto;
      padding: 28px 24px 40px;
    }

    /* ── Progress Bar ── */
    .progress-container {
      height: 4px;
      background-color: var(--border);
      margin-bottom: 28px;
      border-radius: 4px;
      overflow: hidden;
    }
    .progress-bar-custom {
      height: 4px;
      background: linear-gradient(90deg, var(--primary), #818cf8);
      transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
      border-radius: 4px;
    }

    /* ── Step Indicators ── */
    .step-indicator {
      display: flex;
      justify-content: space-between;
      margin-bottom: 32px;
      gap: 4px;
      counter-reset: step;
      position: relative;
    }
    .step-indicator div {
      flex: 1;
      text-align: center;
      padding: 12px 6px 10px;
      font-size: 12px;
      font-weight: 500;
      color: var(--text-muted);
      position: relative;
      border-radius: var(--radius-sm);
      transition: all 0.3s;
      cursor: default;
    }
    .step-indicator div::before {
      counter-increment: step;
      content: counter(step);
      display: block;
      width: 32px;
      height: 32px;
      line-height: 32px;
      margin: 0 auto 6px;
      border-radius: 50%;
      background: var(--surface-alt);
      border: 2px solid var(--border);
      color: var(--text-muted);
      font-weight: 600;
      font-size: 13px;
      transition: all 0.3s;
    }
    .step-indicator div.active {
      color: var(--primary);
    }
    .step-indicator div.active::before {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
      box-shadow: 0 0 0 4px var(--primary-light);
    }
    .step-indicator div.completed::before {
      background: var(--success-light);
      border-color: var(--success);
      color: var(--success);
      content: '✓';
    }

    /* ── Form Card ── */
    .form-card {
      background: var(--surface);
      border-radius: var(--radius);
      border: 1px solid var(--border);
      box-shadow: var(--shadow);
      padding: 32px;
    }

    /* ── Steps ── */
    .step { display: none; opacity: 0; transition: opacity 0.3s ease; }
    .step.active { display: block; opacity: 1; }

    .step-title {
      font-size: 18px;
      font-weight: 700;
      color: var(--text);
      margin-bottom: 4px;
    }
    .step-subtitle {
      font-size: 13px;
      color: var(--text-muted);
      margin-bottom: 24px;
    }

    /* ── Form Fields ── */
    .field-group {
      margin-bottom: 18px;
    }
    .field-group label {
      display: block;
      font-size: 13px;
      font-weight: 600;
      color: var(--text);
      margin-bottom: 6px;
    }
    .field-group .form-control,
    .field-group .form-select {
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 10px 14px;
      font-size: 14px;
      color: var(--text);
      background: var(--surface);
      transition: border-color 0.2s, box-shadow 0.2s;
    }
    .field-group .form-control:focus,
    .field-group .form-select:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 3px var(--primary-light);
      outline: none;
    }
    .field-group .form-control::placeholder {
      color: #b0b8c9;
    }
    .field-group textarea.form-control {
      resize: vertical;
      min-height: 80px;
    }

    .field-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    /* ── Review ── */
    .review-grid {
      display: grid;
      gap: 0;
    }
    .review-item {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 12px 0;
      border-bottom: 1px solid var(--border);
      gap: 16px;
    }
    .review-item:last-child { border-bottom: none; }
    .review-key {
      font-size: 12px;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.03em;
      min-width: 140px;
      flex-shrink: 0;
    }
    .review-val {
      font-size: 14px;
      color: var(--text);
      text-align: right;
      word-break: break-word;
    }
    .markdown-preview {
      border: none;
      padding: 0;
      background: transparent;
    }
    .markdown-preview p {
      margin-bottom: 0.3rem;
    }

    /* ── Navigation Buttons ── */
    .nav-buttons {
      display: flex;
      justify-content: center;
      gap: 12px;
      margin-top: 28px;
      padding-top: 24px;
      border-top: 1px solid var(--border);
    }
    .btn-nav {
      padding: 11px 28px;
      border-radius: var(--radius-sm);
      font-size: 14px;
      font-weight: 600;
      border: none;
      cursor: pointer;
      transition: all 0.2s;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    .btn-prev {
      background: var(--surface-alt);
      color: var(--text-muted);
      border: 1px solid var(--border);
    }
    .btn-prev:hover {
      background: var(--border);
      color: var(--text);
    }
    .btn-next {
      background: var(--primary);
      color: #fff;
    }
    .btn-next:hover {
      background: var(--primary-dark);
      transform: translateY(-1px);
      box-shadow: var(--shadow-md);
    }
    .btn-submit {
      background: var(--success);
      color: #fff;
    }
    .btn-submit:hover {
      background: #047857;
      transform: translateY(-1px);
      box-shadow: var(--shadow-md);
    }

    /* ── Toast ── */
    .toast-custom {
      position: fixed;
      bottom: 24px;
      right: 24px;
      background: var(--success);
      color: #fff;
      padding: 14px 24px;
      border-radius: var(--radius-sm);
      font-size: 14px;
      font-weight: 500;
      box-shadow: var(--shadow-md);
      display: flex;
      align-items: center;
      gap: 8px;
      z-index: 1000;
      animation: slideIn 0.3s ease, fadeOut 0.3s ease 3s forwards;
    }
    @keyframes slideIn {
      from { transform: translateX(100%); opacity: 0; }
      to { transform: translateX(0); opacity: 1; }
    }
    @keyframes fadeOut {
      to { transform: translateY(10px); opacity: 0; }
    }

    /* ── Responsive ── */
    @media (max-width: 640px) {
      .main-wrap { padding: 16px; }
      .form-card { padding: 20px; }
      .field-row { grid-template-columns: 1fr; gap: 0; }
      .step-indicator div { font-size: 10px; padding: 10px 2px 8px; }
      .step-indicator div::before { width: 28px; height: 28px; line-height: 28px; font-size: 12px; }
      .nav-buttons { flex-direction: column; }
      .btn-nav { width: 100%; justify-content: center; }
      .review-item { flex-direction: column; gap: 2px; }
      .review-val { text-align: left; }
    }
  </style>
</head>
<body>

<!-- Top Bar -->
<div class="top-bar">
  <div class="inner">
    <div class="brand">
      <div class="brand-icon">➕</div>
      Add IPO
    </div>
    <a href="index.php" class="btn-back">← Back to List</a>
  </div>
</div>

<div class="main-wrap">
  <!-- Progress -->
  <div class="progress-container">
    <div id="progressBar" class="progress-bar-custom" style="width: 0%;"></div>
  </div>

  <!-- Step Indicators -->
  <div class="step-indicator">
    <div id="indicator-0" class="active">General</div>
    <div id="indicator-1">Dates</div>
    <div id="indicator-2">Financials</div>
    <div id="indicator-3">Status</div>
    <div id="indicator-4">Review</div>
  </div>

  <!-- Form Card -->
  <div class="form-card">
    <form method="POST" id="ipoForm">

      <!-- Step 1: General -->
      <div class="step active">
        <div class="step-title">General Information</div>
        <div class="step-subtitle">Basic details about the IPO company</div>

        <div class="field-group">
          <label>Company Name</label>
          <input type="text" name="c_name" class="form-control" placeholder="e.g. Tata Technologies Ltd" required>
        </div>
        <div class="field-group" hidden>
          <label>IPO Key</label>
          <input type="text" name="ipokey" class="form-control" placeholder="IPO Key" hidden>
        </div>
        <div class="field-row">
          <div class="field-group">
            <label>Live Status</label>
            <select name="islive" class="form-select">
              <option value="NO">NO</option>
              <option value="YES">YES</option>
            </select>
          </div>
          <div class="field-group">
            <label>Rating</label>
            <input type="text" name="rat" class="form-control" value="0">
          </div>
        </div>
        <div class="field-group">
          <label>Image URL</label>
          <input type="text" name="img" class="form-control" placeholder="https://example.com/logo.png">
        </div>
        <div class="field-group">
          <label>Details</label>
          <textarea name="details" class="form-control" rows="4"><?php echo 'Allotment: ' . date('F Y') . "\n" . 'Refund: ' . date('F Y') . "\n" . 'Listing: ' . date('F Y'); ?></textarea>
        </div>
        <div class="field-group">
          <label>Emoji</label>
          <input type="text" name="emoji" class="form-control" placeholder="🚀">
        </div>
      </div>

      <!-- Step 2: Dates -->
      <div class="step">
        <div class="step-title">Date Information</div>
        <div class="step-subtitle">Timeline for the IPO process</div>

        <div class="field-row">
          <div class="field-group">
            <label>Issue Date</label>
            <input type="text" name="i_date" class="form-control" value="<?php echo date('M Y'); ?>">
          </div>
          <div class="field-group">
            <label>Close Date</label>
            <input type="text" name="c_date" class="form-control" value="<?php echo date('M Y'); ?>">
          </div>
        </div>
        <div class="field-row">
          <div class="field-group">
            <label>IPO Open</label>
            <input type="date" name="ipo_open" class="form-control" value="<?php echo $today; ?>">
          </div>
          <div class="field-group">
            <label>IPO Close</label>
            <input type="date" name="ipo_close" class="form-control" value="<?php echo $today; ?>">
          </div>
        </div>
        <div class="field-row">
          <div class="field-group">
            <label>IPO Allotment</label>
            <input type="date" name="ipo_allotment" class="form-control" value="<?php echo $today; ?>">
          </div>
          <div class="field-group">
            <label>IPO Refund</label>
            <input type="date" name="ipo_refund" class="form-control" value="<?php echo $today; ?>">
          </div>
        </div>
        <div class="field-row">
          <div class="field-group">
            <label>IPO Credit</label>
            <input type="date" name="ipo_credit" class="form-control" value="<?php echo $today; ?>">
          </div>
          <div class="field-group">
            <label>IPO Listing</label>
            <input type="date" name="ipo_listing" class="form-control" value="<?php echo $today; ?>">
          </div>
        </div>
      </div>

      <!-- Step 3: Financials -->
      <div class="step">
        <div class="step-title">Financial Details</div>
        <div class="step-subtitle">Pricing and subscription information</div>

        <div class="field-row">
          <div class="field-group">
            <label>Offer Price</label>
            <input type="text" name="o_price" class="form-control" placeholder="₹100 - ₹120">
          </div>
          <div class="field-group">
            <label>Minimum Application</label>
            <input type="text" name="m_application" class="form-control" placeholder="₹14,400">
          </div>
        </div>
        <div class="field-group">
          <label>GMP</label>
          <input type="text" name="GMP" class="form-control" value="More Details Awaited">
        </div>
        <div class="field-group">
          <label>Subscription</label>
          <textarea name="subscription" class="form-control" rows="3">NONE</textarea>
        </div>
      </div>

      <!-- Step 4: Status -->
      <div class="step">
        <div class="step-title">Status & Configuration</div>
        <div class="step-subtitle">Set the IPO status, type, and registrar</div>

        <div class="field-row">
          <div class="field-group">
            <label>Status</label>
            <select name="status" class="form-select">
              <option value="PAST">PAST</option>
              <option value="PRESENT" selected>PRESENT</option>
              <option value="NEW">NEW</option>
            </select>
          </div>
          <div class="field-group">
            <label>Suggestion</label>
            <select name="suggestion" class="form-select">
              <option value="Wait" selected>Wait</option>
              <option value="Avoid">Avoid</option>
              <option value="Neutral">Neutral</option>
              <option value="May Apply">May Apply</option>
              <option value="Apply">Apply</option>
              <option value="Must Apply">Must Apply</option>
            </select>
          </div>
        </div>

        <input type="text" name="date" class="form-control" value="All Info. Education Purpose Only." hidden>

        <div class="field-group">
          <label>Allotment Registrar</label>
          <select name="allotment" class="form-select">
            <option value="https://ipo.bigshareonline.com/IPO_Status.html" selected>Bigshare</option>
            <option value="https://in.mpms.mufg.com/Initial_Offer/public-issues.html">MUFG - Linkintime</option>
            <option value="https://ipostatus.kfintech.com/">KFintech Kosmic</option>
            <option value="https://www.skylinerta.com/ipo.php">Skyline</option>
            <option value="https://ipostatus1.cameoindia.com/">Cameo</option>
            <option value="https://www.purvashare.com/investor-service/ipo-query">Purva</option>
            <option value="https://maashitla.com/allotment-status/public-issues">Maashitla</option>
            <option value="https://www.masserv.com/opt.asp">Mas Services</option>
            <option value="https://www.satellitecorporate.com/ipo-query.php">Satellite Corporate</option>
            <option value="http://ipo.alankit.com/">Alankit</option>
            <option value="https://ipostatus.integratedregistry.in/RegistrarsToSTANew.aspx?od=2">Integrated Registry</option>
            <option value="https://mudrarta.com/ipo.php">Mudra RTA</option>
          </select>
        </div>

        <div class="field-row">
          <div class="field-group">
            <label>IPO Number (NO)</label>
            <input type="number" name="NO" class="form-control" placeholder="e.g. 42">
          </div>
          <div class="field-group">
            <label>IPO Type</label>
            <select name="TYPE" class="form-select">
              <option value="S" selected>SME</option>
              <option value="M">Mainline</option>
            </select>
          </div>
        </div>

        <div class="field-group">
          <label>IPO Page URL</label>
          <textarea name="url" class="form-control" rows="2">NONE</textarea>
        </div>
      </div>

      <!-- Step 5: Review -->
      <div class="step">
        <div class="step-title">Review & Submit</div>
        <div class="step-subtitle">Verify all details before saving the IPO</div>
        <div id="reviewContent" class="markdown-preview"></div>
      </div>

      <!-- Navigation -->
      <div class="nav-buttons">
        <button type="button" class="btn-nav btn-prev" id="prevBtn">← Previous</button>
        <button type="button" class="btn-nav btn-next" id="nextBtn">Next →</button>
        <button type="submit" class="btn-nav btn-submit d-none" id="submitBtn">✓ Submit IPO</button>
      </div>
    </form>
  </div>
</div>

<script>
const steps = document.querySelectorAll(".step");
const indicators = document.querySelectorAll(".step-indicator div");
const progressBar = document.getElementById("progressBar");
let currentStep = 0;

function showStep(step) {
  steps.forEach((el, i) => {
    el.classList.toggle("active", i === step);
    indicators[i].classList.remove("active", "completed");
    if (i < step) indicators[i].classList.add("completed");
    if (i === step) indicators[i].classList.add("active");
  });
  progressBar.style.width = ((step) / (steps.length - 1)) * 100 + "%";
  document.getElementById("prevBtn").style.display = step === 0 ? "none" : "inline-flex";
  document.getElementById("nextBtn").classList.toggle("d-none", step === steps.length - 1);
  document.getElementById("submitBtn").classList.toggle("d-none", step !== steps.length - 1);
  if (step === steps.length - 1) fillSummary();
}

function fillSummary() {
  const form = document.getElementById("ipoForm");
  const formData = new FormData(form);
  let html = '<div class="review-grid">';
  for (const [key, value] of formData.entries()) {
    if (value && key !== 'date') {
      html += `<div class="review-item">
        <span class="review-key">${key.replace(/_/g, ' ')}</span>
        <span class="review-val">${value || '—'}</span>
      </div>`;
    }
  }
  html += '</div>';
  document.getElementById("reviewContent").innerHTML = html;
}

showStep(currentStep);

document.getElementById("nextBtn").addEventListener("click", () => {
  if (currentStep < steps.length - 1) {
    currentStep++;
    showStep(currentStep);
    window.scrollTo({ top: 0, behavior: 'smooth' });
  }
});

document.getElementById("prevBtn").addEventListener("click", () => {
  if (currentStep > 0) {
    currentStep--;
    showStep(currentStep);
    window.scrollTo({ top: 0, behavior: 'smooth' });
  }
});
</script>

<?php if ($showToast): ?>
<script>
  window.onload = () => {
    const toast = document.createElement("div");
    toast.className = "toast-custom";
    toast.innerHTML = '✅ IPO Saved Successfully!';
    document.body.appendChild(toast);
    setTimeout(() => toast.remove(), 3500);
  };
</script>
<?php endif; ?>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/