// Clown Catcher Research — catalog from official price list (updated 06/11/2026).
// For research use only. SINGLE-UNIT PRICING ONLY — kit/pack options removed per client.
// Ordering: ClownCatcherResearch@pm.me · S/H $20, free over $300.

const RAW = [
  // ── WEIGHT LOSS ──────────────────────────────
  { id: "semaglutide", name: "Semaglutide", sub: "GLP-1 Analog", cat: "Weight Loss", form: "Injectable", tag: "GLP-1 receptor research", bench: ["Metabolic", "Appetite"], vars: [{ l: "10mg", p: 60 }] },
  { id: "tirzepatide", name: "Tirzepatide", sub: "GIP / GLP-1 Dual Agonist", cat: "Weight Loss", form: "Injectable", tag: "Dual incretin pathway", bench: ["Metabolic", "Glucose"], vars: [{ l: "10mg", p: 70 }, { l: "20mg", p: 90 }] },
  { id: "retatrutide", name: "Retatrutide", sub: "GIP / GLP-1 / Glucagon", cat: "Weight Loss", form: "Injectable", tag: "Triple agonist research", bench: ["Metabolic", "Energy"], vars: [{ l: "10mg", p: 80 }, { l: "20mg", p: 130 }] },
  { id: "cagrilintide", name: "Cagrilintide", sub: "Amylin Analog", cat: "Weight Loss", form: "Injectable", tag: "Amylin receptor research", bench: ["Satiety"], vars: [{ l: "5mg", p: 60 }] },
  { id: "5-amino-1mq-inj", name: "5-Amino-1MQ", sub: "NNMT Inhibitor · Injectable", cat: "Weight Loss", form: "Injectable", tag: "Methyl pool research", bench: ["Body comp"], vars: [{ l: "50mg", p: 70 }] },

  // ── HEALING & ENERGY (incl. sleep & nerve) ───
  { id: "wolverine", name: "Wolverine Combo", sub: "TB-500 5mg + BPC-157 5mg", cat: "Healing & Energy", form: "Injectable", tag: "Soft-tissue pairing", bench: ["Recovery", "Tissue"], vars: [{ l: "10mg", p: 60 }] },
  { id: "tb-500", name: "TB-500", sub: "Thymosin Beta-4 Fragment", cat: "Healing & Energy", form: "Injectable", tag: "Cellular migration assay", bench: ["Recovery", "Vascular"], vars: [{ l: "10mg", p: 65 }] },
  { id: "bpc-157", name: "BPC-157", sub: "Pentadecapeptide", cat: "Healing & Energy", form: "Injectable", tag: "Tissue repair signal", bench: ["Soft tissue", "Gut"], vars: [{ l: "10mg", p: 45 }] },
  { id: "kpv", name: "KPV", sub: "Tripeptide", cat: "Healing & Energy", form: "Injectable", tag: "Anti-inflammatory model", bench: ["Gut", "Inflammation"], vars: [{ l: "10mg", p: 60 }] },
  { id: "mots-c", name: "MOTS-c", sub: "Mitochondrial Peptide", cat: "Healing & Energy", form: "Injectable", tag: "Metabolic substrate", bench: ["Energy", "Endurance"], vars: [{ l: "10mg", p: 60 }, { l: "30mg", p: 90 }] },
  { id: "ss-31", name: "SS-31", sub: "Mitochondrial Targeting", cat: "Healing & Energy", form: "Injectable", tag: "ROS modulator", bench: ["Mitochondria"], vars: [{ l: "10mg", p: 70 }, { l: "50mg", p: 110 }] },
  { id: "ghk-cu", name: "GHK-Cu", sub: "Copper Tripeptide", cat: "Healing & Energy", form: "Injectable", tag: "Collagen pathway", bench: ["Skin", "Wound"], vars: [{ l: "50mg", p: 60 }] },
  { id: "glow", name: "GLOW", sub: "GHK-Cu + BPC-157 + TB-500", cat: "Healing & Energy", form: "Injectable", tag: "Skin & repair blend", bench: ["Skin", "Recovery"], vars: [{ l: "70mg", p: 95 }] },
  { id: "klow", name: "KLOW", sub: "KPV + GHK-Cu + BPC-157 + TB-500", cat: "Healing & Energy", form: "Injectable", tag: "Four-compound blend", bench: ["Skin", "Gut", "Recovery"], vars: [{ l: "80mg", p: 105 }] },
  { id: "vip", name: "VIP", sub: "Vasoactive Intestinal Peptide", cat: "Healing & Energy", form: "Injectable", tag: "Immune / vascular model", bench: ["Immune"], vars: [{ l: "10mg", p: 65 }] },
  { id: "nad", name: "NAD+", sub: "Nicotinamide Adenine Dinucleotide", cat: "Healing & Energy", form: "Injectable", tag: "Cellular energy coenzyme", bench: ["Energy", "Longevity"], vars: [{ l: "500mg", p: 70 }] },
  { id: "dsip", name: "DSIP", sub: "Delta Sleep-Inducing Peptide", cat: "Healing & Energy", form: "Injectable", tag: "Slow-wave sleep model", bench: ["Sleep"], vars: [{ l: "5mg", p: 60 }] },
  { id: "ara-290", name: "ARA-290", sub: "Cibinetide", cat: "Healing & Energy", form: "Injectable", tag: "Tissue-protective / nerve", bench: ["Nerve", "Inflammation"], vars: [{ l: "10mg", p: 70 }] },

  // ── GH CLASS ─────────────────────────────────
  { id: "tesamorelin", name: "Tesamorelin", sub: "GHRH Analog", cat: "GH Class", form: "Injectable", tag: "Adipose research", bench: ["GH axis", "Body comp"], vars: [{ l: "10mg", p: 75 }] },
  { id: "tesa-ipa", name: "Tesamorelin + Ipamorelin", sub: "GHRH + Secretagogue Combo", cat: "GH Class", form: "Injectable", tag: "Combined pulse model", bench: ["GH axis"], vars: [{ l: "10mg", p: 95 }] },
  { id: "cjc-no-dac", name: "CJC-1295 No-DAC", sub: "GHRH Analog", cat: "GH Class", form: "Injectable", tag: "Pulse amplifier", bench: ["GH axis"], vars: [{ l: "5mg", p: 45 }] },
  { id: "cjc-ipa", name: "CJC No-DAC + Ipamorelin", sub: "5mg each · 10mg total", cat: "GH Class", form: "Injectable", tag: "Classic GH pairing", bench: ["GH axis"], vars: [{ l: "10mg", p: 45 }] },
  { id: "ipamorelin", name: "Ipamorelin", sub: "Selective GH Secretagogue", cat: "GH Class", form: "Injectable", tag: "Selective release", bench: ["GH axis"], vars: [{ l: "5mg", p: 45 }] },

  // ── SEXUAL HEALTH ────────────────────────────
  { id: "kisspeptin", name: "Kisspeptin", sub: "GnRH Stimulator", cat: "Sexual Health", form: "Injectable", tag: "Reproductive axis", bench: ["Hormone"], vars: [{ l: "5mg", p: 45 }] },
  { id: "pt-141", name: "PT-141", sub: "Bremelanotide", cat: "Sexual Health", form: "Injectable", tag: "Melanocortin pathway", bench: ["Libido"], vars: [{ l: "10mg", p: 50 }] },

  // ── SKIN & TAN ───────────────────────────────
  { id: "mt-1", name: "Melanotan I", sub: "MC1R Agonist", cat: "Skin & Tan", form: "Injectable", tag: "Pigment pathway", bench: ["Pigment"], vars: [{ l: "10mg", p: 40 }] },
  { id: "mt-2", name: "Melanotan II", sub: "Melanocortin Agonist", cat: "Skin & Tan", form: "Injectable", tag: "Pigment + libido model", bench: ["Pigment"], vars: [{ l: "10mg", p: 40 }] },

  // ── NOOTROPICS ───────────────────────────────
  { id: "semax", name: "Semax", sub: "ACTH Fragment", cat: "Nootropics", form: "Injectable", tag: "BDNF pathway", bench: ["Focus", "Memory"], vars: [{ l: "10mg", p: 65 }] },
  { id: "selank", name: "Selank", sub: "Anxiolytic Peptide", cat: "Nootropics", form: "Injectable", tag: "Anxiolytic profile", bench: ["Mood", "Focus"], vars: [{ l: "10mg", p: 65 }] },

  // ── SUPPLIES ─────────────────────────────────
  { id: "bac-water", name: "Bacteriostatic Water", sub: "Hospira · 30ml", cat: "Supplies", form: "Supply", tag: "Reconstitution diluent", bench: ["Supply"], vars: [{ l: "30ml", p: 30 }] },
];

const PRODUCTS = RAW.map(r => ({
  ...r,
  subtitle: r.sub,
  category: r.cat,
  tagline: r.tag,
  variants: r.vars,
  mass: r.vars[0].l,
  dose: r.vars[0].l.split(" · ")[0],
  price: r.vars[0].p,
}));

const CATEGORIES = ["All", "Weight Loss", "Healing & Energy", "GH Class", "Sexual Health", "Skin & Tan", "Nootropics", "Supplies"];

const ORDER_INFO = {
  email: "ClownCatcherResearch@pm.me",
  shipping: 20,
  freeOver: 300,
  updated: "06/11/2026",
};

// Payment preference options — shown as a dropdown at checkout. No handles or
// instructions on-site: the seller replies to each order email with payment
// details for the buyer's chosen method.
const PAYMENT_METHODS = [
  { id: "cashapp", label: "Cash App" },
  { id: "venmo", label: "Venmo" },
  { id: "zelle", label: "Zelle" },
  { id: "btc", label: "Bitcoin" },
  { id: "cim", label: "CIM (cash in mail) · 10% off subtotal" },
  { id: "paypal", label: "PayPal (+5% fee)" },
  { id: "card", label: "Credit Card (+7% fee · limited)" },
];

// Unit word for per-unit pricing labels (single-unit pricing only — no kits)
const UNIT_WORD = (form) => form === "Oral" ? "bottle" : form === "Topical" ? "tube" : form === "Supply" ? "unit" : "vial";

// Canonical site origin — used for canonical tags, sitemap, and OG URLs.
// Change this one line if the site moves to a custom domain.
const SITE_URL = "https://www.clowncatcher.com";

// Category ↔ URL slug. Readable slugs ("weight-loss") beat encoded names
// ("Weight%20Loss") for both search engines and link sharing.
const catSlug = (name) => name.toLowerCase().replace(/&/g, "and").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
const CAT_SLUGS = CATEGORIES.filter(c => c !== "All").map(c => ({ name: c, slug: catSlug(c) }));
const CAT_FROM_SLUG = (slug) => (CAT_SLUGS.find(c => c.slug === slug) || {}).name || null;

window.UNIT_WORD = UNIT_WORD;
window.PRODUCTS = PRODUCTS;
window.CATEGORIES = CATEGORIES;
window.ORDER_INFO = ORDER_INFO;
window.PAYMENT_METHODS = PAYMENT_METHODS;
window.SITE_URL = SITE_URL;
window.CAT_SLUG = catSlug;
window.CAT_SLUGS = CAT_SLUGS;
window.CAT_FROM_SLUG = CAT_FROM_SLUG;
