// ---- Journella data + helpers ----------------------------------------

const PRICE = 49;
const CURRENCY = "€";

function eur(n) {
  return n.toFixed(2).replace(".", ",") + "\u00A0" + CURRENCY;
}

// Season from due date — April..September => Sommer, else Winter.
// Drives the saisonale Erstausstattung (not shown on the cover).
function seasonFromDate(dateStr) {
  if (!dateStr) return null;
  const d = new Date(dateStr + "T00:00:00");
  if (isNaN(d)) return null;
  const m = d.getMonth() + 1;
  return m >= 4 && m <= 9 ? "sommer" : "winter";
}
function yearFromDate(dateStr) {
  if (!dateStr) return new Date().getFullYear();
  const d = new Date(dateStr + "T00:00:00");
  return isNaN(d) ? new Date().getFullYear() : d.getFullYear();
}
function sswToday(dateStr) {
  if (!dateStr) return null;
  const due = new Date(dateStr + "T00:00:00");
  if (isNaN(due)) return null;
  const ssw = 40 - Math.floor((due - new Date()) / 86400000 / 7);
  return ssw < 1 || ssw > 42 ? null : ssw;
}
function formatDateDE(dateStr) {
  if (!dateStr) return null;
  const d = new Date(dateStr + "T00:00:00");
  if (isNaN(d)) return null;
  return d.toLocaleDateString("de-DE", { day: "2-digit", month: "long", year: "numeric" });
}
function formatDateShort(dateStr) {
  if (!dateStr) return null;
  const d = new Date(dateStr + "T00:00:00");
  if (isNaN(d)) return null;
  return d.toLocaleDateString("de-DE", { day: "2-digit", month: "2-digit", year: "numeric" });
}

// Cover themes — predefined background + text combinations. The user picks one.
const COVER_THEMES = [
  { id: "creme",      label: "Creme",      bg: "#fff7e5", name: "#3a0700", mark: "sand",       word: "brown", light: false },
  { id: "terrakotta", label: "Terrakotta", bg: "#b84e40", name: "#fff7e5", mark: "terrawm",    word: "cream", light: true  },
  { id: "rose",       label: "Rosé",       bg: "#da8a7f", name: "#3a0700", mark: "rosewm",     word: "brown", light: false },
  { id: "espresso",   label: "Espresso",   bg: "#3a0700", name: "#ffdf9a", mark: "espressowm", word: "cream", light: true  },
];

const BIRTHPLACES = {
  klinik:     { id: "klinik",     label: "Krankenhaus", bagTitle: "Meine Kliniktasche",            note: "Klinik-Checkliste und Geburtswünsche, abgestimmt auf dich." },
  geburtshaus:{ id: "geburtshaus",label: "Geburtshaus", bagTitle: "Meine Tasche fürs Geburtshaus", note: "Packliste und Wünsche für den Tag im Geburtshaus." },
  zuhause:    { id: "zuhause",    label: "Zu Hause",    bagTitle: "Meine Notfall-Kliniktasche",    note: "Plus die Seite Mein Geburtsraum zu Hause." },
};

// What each input touches in the book
const PERSONALIZATION_FIELDS = [
  { key: "name",    icon: "feather",  title: "Dein Name",     affects: "Cover und Intro" },
  { key: "et",      icon: "calendar", title: "Geburtstermin", affects: "Wochenseiten, Jahreszeit und Cover" },
  { key: "ort",     icon: "home",     title: "Geburtsort",    affects: "Kliniktasche und Geburtswünsche" },
  { key: "foto",    icon: "image",    title: "Foto-Seiten",   affects: "für Ultraschall und Babybauch, optional" },
  { key: "partner", icon: "users",    title: "Partner:in",    affects: "optional" },
];

// The four chapters of the book
const CHAPTERS = [
  { n: "01", title: "Ankommen", lead: "Der Einstieg.",
    text: "Der Moment, als alles begann. Der erste Test, deine Hoffnungen und Wünsche, die Gelüste der ersten Wochen. Platz für das, was du am Anfang denkst und fühlst.",
    items: ["Der Moment, als alles begann", "Meine Hoffnungen und Wünsche", "Gelüste und Heißhunger"] },
  { n: "02", title: "Vorbereiten und Nachschlagen", lead: "Praktisch und ehrlich.",
    text: "Namensideen, Geburtswünsche und Kliniktasche, jeweils passend zu deinem Geburtsort. Erstausstattung für dein Sommer oder Winterbaby. Dazu der Keepsake-Block: ein Brief ans Baby und eine Seite für die Familie, die wartet.",
    items: ["Unsere Namensideen", "Geburtswünsche und Kliniktasche", "Erstausstattung, saisonal", "Brief ans Baby"] },
  { n: "03", title: "Woche für Woche", lead: "Dein Kalender.",
    text: "Eine Doppelseite für jede SSW von 5 bis 41, mit den passenden Daten zu deinem Geburtstermin. So ist Journella auch ein Kalender, der Woche für Woche genau weiß, wo du gerade stehst. Links die Fakten, rechts dein Raum für Gedanken.",
    items: ["Datierte Wochenseiten, auf deinen Termin berechnet", "Babygröße, Entwicklung und Countdown", "Checkups und geprüfter Wochentipp", "Stimmung, Dankbarkeit, Reflexionsfrage"] },
  { n: "04", title: "Mein Rückblick", lead: "Der Abschluss.",
    text: "Was bleibt, wenn die neun Monate vorbei sind. Platz für deinen Rückblick, optional für Babybauch-Fotos und die ersten Ultraschallbilder.",
    items: ["Mein Rückblick", "Babybauch-Fotoseiten", "Platz für Ultraschallbilder"] },
];

// The weekly double page (Herzstück)
const WEEK_LEFT = [
  { icon: "ruler",   t: "Babygröße und Entwicklung" },
  { icon: "calendar",t: "Countdown bis zum Termin" },
  { icon: "check",   t: "Anstehende Checkups" },
  { icon: "sparkle", t: "Geprüfter Wochentipp" },
];
const WEEK_RIGHT = [
  { icon: "heartline", t: "Stimmung, Körper und Kopf" },
  { icon: "feather",   t: "Wofür ich dankbar bin" },
  { icon: "star",      t: "Highlight und Herausforderung" },
  { icon: "quote",     t: "Wechselnde Reflexionsfrage" },
];

const BOOK_FACTS = [
  { k: "Format",      v: "Hardcover, 20,5 × 20,5 cm" },
  { k: "Umfang",      v: "rund 105 bis 120 Seiten, vollfarbig" },
  { k: "Personalisiert", v: "auf Name, Geburtstermin und Geburtsort" },
  { k: "Produktion",  v: "Premium-Druck, produziert in Deutschland" },
  { k: "Versand",     v: "in 8 bis 10 Tagen, 4,95 €" },
  { k: "Idee",        v: "ein Buch, das bleibt, kein Wegwerf-Tagebuch" },
];

const USPS = [
  { icon: "feather", title: "Auf dich personalisiert", text: "Name, Termin und Geburtsort fließen ins ganze Buch ein." },
  { icon: "book",    title: "Produziert in Deutschland", text: "Hardcover, vollfarbig, mit Sorgfalt in Deutschland gefertigt." },
  { icon: "truck",   title: "Lieferung in 8 bis 10 Tagen", text: "Eigens für dich gedruckt, Versand für 4,95 €." },
  { icon: "bookmark",title: "Ein Buch, das bleibt", text: "Gemacht zum Behalten, nicht zum Wegwerfen." },
];

const REVIEWS = [
  { name: "Lena M.", date: "vor 3 Tagen", rating: 5, verified: true,
    title: "Genau so wollte ich es festhalten",
    body: "Mein Name auf dem Cover, der Termin überall eingetragen. Es liest sich, als wäre es für mich gemacht, weil es das ist. Ich schreibe jede Woche kurz hinein." },
  { name: "Saskia und Jonas", date: "vor 1 Woche", rating: 5, verified: true,
    title: "Wir füllen es zusammen aus",
    body: "Dass mein Partner überall mitgedacht ist, gefällt uns. Die Wochenseiten geben Struktur, ohne dass wir uns zu etwas gedrängt fühlen." },
  { name: "Miriam K.", date: "vor 2 Wochen", rating: 5, verified: true,
    title: "Planen und festhalten in einem",
    body: "Termine, Werte und To-dos an einem Ort, daneben Platz für Gedanken. Genau die Mischung, die ich gesucht habe." },
  { name: "Anna-Lena", date: "vor 3 Wochen", rating: 4, verified: true,
    title: "Hochwertig und ehrlich",
    body: "Das Papier ist gut, die Seiten sind klar gestaltet. Auch das Müde und Ambivalente hat Platz, das finde ich wichtig." },
];

const FAQ = [
  { q: "Wie lange dauert die Lieferung?", a: "Dein Buch wird eigens für dich gedruckt und ist in 8 bis 10 Tagen bei dir. Der Versand innerhalb Deutschlands kostet 4,95 €." },
  { q: "Kann ich die Angaben nach dem Kauf noch ändern?", a: "Bis dein Buch in den Druck geht, kannst du uns Änderungen per Mail schicken. Wir bestätigen dir, sobald die Produktion startet." },
  { q: "Was, wenn ich keinen Partner eintrage?", a: "Lässt du das Feld frei, formulieren wir alle Stellen für dich allein. Es bleiben keine Lücken im Text." },
  { q: "Aus welchem Material ist das Buch?", a: "Hardcover im Format 20,5 × 20,5 cm, rund 105 bis 120 Seiten, vollfarbig gedruckt und hochwertig in Deutschland produziert." },
  { q: "Für wen ist Journella gedacht?", a: "Für alle, die ihre Schwangerschaft Woche für Woche festhalten und ein Buch behalten möchten, das in zwanzig Jahren noch aufgeschlagen wird." },
];

// Blog / Magazin
const BLOG = [
  { cat: "Schwangerschaft",
    posts: [
      { title: "Was in jeder SSW passiert, kurz erklärt", read: "6 Min" },
      { title: "Geburtswünsche aufschreiben, ohne sich festzulegen", read: "5 Min" },
      { title: "Kliniktasche packen: die ehrliche Liste", read: "7 Min" },
      { title: "Erstausstattung für ein Winterbaby", read: "5 Min" },
    ] },
  { cat: "Festhalten und Erinnern",
    posts: [
      { title: "Warum sich ein Brief ans Baby lohnt", read: "4 Min" },
      { title: "So bleibt ein Journal auch nach der Geburt lebendig", read: "6 Min" },
      { title: "Ultraschallbilder aufbewahren, ohne dass sie verblassen", read: "3 Min" },
      { title: "Was du später am liebsten nachliest", read: "4 Min" },
    ] },
];

Object.assign(window, {
  PRICE, CURRENCY, eur, seasonFromDate, yearFromDate, sswToday, formatDateDE, formatDateShort,
  COVER_THEMES, BIRTHPLACES, PERSONALIZATION_FIELDS, CHAPTERS, WEEK_LEFT, WEEK_RIGHT,
  BOOK_FACTS, USPS, REVIEWS, FAQ, BLOG,
});
