/* ================= ALKERSOFT ERP — ürün alt bölümü ================= */

const ERP_SECTIONS = [
  {id: "erp-top",      k: "erp_hero",     t: () => T('erp_nav_overview', 'Genel Bakış')},
  {id: "erp-moduller", k: "erp_modules",  t: () => T('nav_erp_modules', 'Modüller')},
  {id: "erp-fiyat",    k: "erp_pricing",  t: () => T('nav_erp_pricing', 'Fiyatlandırma')},
  {id: "erp-demo",     k: "erp_demo",     t: () => T('nav_erp_demo', 'Canlı Demo')},
  {id: "erp-indir",    k: "erp_download", t: () => T('nav_erp_download', 'İndir')},
];

function ErpSubnav({active, onJump, nav}) {
  const visible = ERP_SECTIONS.filter(s => secOn(s.k));
  return (
    <div className="subnav"><div className="wrap">
      <span className="sb"><span className="m"><I.box/></span>{PHP.productName || "ALKERSOFT ERP"}</span>
      {visible.map(s => (
        <a key={s.id} className={active === s.id ? "on" : ""} onClick={() => onJump(s.id)}
           role="link" tabIndex={0} onKeyDown={(e) => { if (e.key === "Enter") onJump(s.id); }}>{s.t()}</a>
      ))}
      {secOn('page_destek') && <a onClick={() => nav("destek")} role="link" tabIndex={0}>{T('nav_support', 'Teknik Destek')}</a>}
      <span className="r">
        <button className="btn btn-primary btn-sm" onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + T('erp_demo_ctx', 'Demo Talebi'))}>
          {T('erp_demo_cta', 'Demo Talep Et')}
        </button>
      </span>
    </div></div>
  );
}

function ErpPage({nav, scrollTo}) {
  const [active, setActive] = useState("erp-top");

  const jump = useCallback((id) => {
    const el = document.getElementById(id);
    if (!el) return;
    const y = el.getBoundingClientRect().top + window.scrollY - 122;
    window.scrollTo({top: Math.max(y, 0), behavior: "smooth"});
  }, []);

  // Sayfa açılırken hedef bölüme git
  useEffect(() => {
    if (!scrollTo) return;
    const id = setTimeout(() => jump(scrollTo), 90);
    return () => clearTimeout(id);
  }, [scrollTo, jump]);

  // Kaydırdıkça alt menüde aktif bölümü işaretle
  useEffect(() => {
    const ids = ERP_SECTIONS.filter(s => secOn(s.k)).map(s => s.id);
    const h = () => {
      let cur = ids[0];
      ids.forEach(id => {
        const el = document.getElementById(id);
        if (el && el.getBoundingClientRect().top <= 150) cur = id;
      });
      setActive(cur);
    };
    h();
    window.addEventListener("scroll", h, {passive: true});
    return () => window.removeEventListener("scroll", h);
  }, []);

  const modules = D.MODULES.length ? D.MODULES : DEFAULT_MODULES();

  return (
    <div className="app-fade">
      <ErpSubnav active={active} onJump={jump} nav={nav}/>

      {secOn('erp_hero') && (
        <section className="chero" id="erp-top" style={{padding:"64px 0 78px"}}>
          <div className="aur" style={{width:480,height:480,background:"rgba(147,180,255,.4)",top:-210,right:-120}}></div>
          <div className="wrap hgrid">
            <div>
              <span className="eyebrow">{T('erp_eyebrow', 'Masaüstü ERP + POS')}</span>
              <h1 className="h1 mt14" dangerouslySetInnerHTML={{__html: T('erp_title', "Stok, satış, cari ve kasa <span class='grad'>tek programda.</span>")}}/>
              <p className="lead mt20">{T('erp_lead', 'KOBİ ve perakende için kendi geliştirdiğimiz ERP. Verileriniz kendi makinenizde durur; internet kesilse bile satış ekranı çalışmaya devam eder.')}</p>
              <div className="hcta">
                <button className="btn btn-primary btn-lg" onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + T('erp_demo_ctx', 'Demo Talebi'))}>
                  {T('erp_cta1', 'Ücretsiz Demo Talep Et')}<I.arrow/>
                </button>
                <button className="btn btn-ghost btn-lg" onClick={() => jump("erp-fiyat")}>{T('erp_cta2', 'Fiyatları Gör')}</button>
              </div>
              <div className="hproof">
                <div><div className="n">{T('erp_stat1_v', '100+')}</div><div className="l">{T('erp_stat1_l', 'Aktif lisans')}</div></div>
                <div><div className="n">{modules.length || 7}</div><div className="l">{T('erp_stat2_l', 'Modül')}</div></div>
                <div><div className="n">{T('erp_stat3_v', '%100')}</div><div className="l">{T('erp_stat3_l', 'Yerel veri')}</div></div>
              </div>
            </div>
            <AppWindow view="stock"/>
          </div>
        </section>
      )}

      {secOn('erp_modules') && (
        <section className="sec tint" id="erp-moduller"><div className="wrap">
          <div className="center" style={{marginBottom:44}}>
            <span className="eyebrow">{T('nav_erp_modules', 'Modüller')}</span>
            <h2 className="h2 mt14">{T('erp_mod_title', 'Hepsi kutudan çıkıyor')}</h2>
            <p className="lead mt14">{T('erp_mod_lead', 'Modül başına ek ücret yok. Lisansı aldığınızda hepsi açık geliyor.')}</p>
          </div>
          <div className="g3">
            {modules.map((m, i) => { const Ico = I[m.icon] || I.box; return (
              <Reveal className="ccard" key={i} delay={(i % 3) * .06}>
                <span className="ic"><Ico/></span>
                <h3>{m.title}</h3>
                <p>{m.desc}</p>
                {m.points.length > 0 && <ul>{m.points.map((p, j) => <li key={j}><I.check/>{p}</li>)}</ul>}
              </Reveal>
            );})}
          </div>
        </div></section>
      )}

      {secOn('erp_why') && (
        <section className="sec dark"><div className="wrap">
          <div className="g2" style={{gap:52,alignItems:"center"}}>
            <div>
              <span className="eyebrow">{T('erp_why_eyebrow', 'Neden masaüstü')}</span>
              <h2 className="h2 mt14">{T('erp_why_title', 'Bulut herkes için değil')}</h2>
              <p className="lead mt14">{T('erp_why_lead', 'İnternet kesildiğinde bulut tabanlı kasa durur. Bizim programımız yerel veritabanıyla çalıştığı için satış devam eder, bağlantı gelince senkronize olur. Verileriniz de kendi makinenizde kalır — kimsenin sunucusunda değil.')}</p>
              <div style={{display:"flex",gap:12,marginTop:30,flexWrap:"wrap"}}>
                <button className="btn btn-primary" onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + T('erp_demo_ctx', 'Demo Talebi'))}>{T('erp_demo_cta', 'Demo Talep Et')}<I.arrow/></button>
                <button className="btn btn-line" onClick={() => jump("erp-indir")}>{T('erp_reqs', 'Teknik Gereksinimler')}</button>
              </div>
            </div>
            <div className="g2" style={{gap:14}}>
              {[["shield", T('erp_w1_t', 'Veri sizde'), T('erp_w1_d', 'Kendi sunucunuzda, kendi kontrolünüzde')],
                ["bolt", T('erp_w2_t', 'Kesintisiz kasa'), T('erp_w2_d', 'İnternet gitse de satış durmaz')],
                ["lock", T('erp_w3_t', 'Yetki kontrolü'), T('erp_w3_d', 'Kim neyi görecek, siz belirleyin')],
                ["refresh", T('erp_w4_t', 'Ücretsiz güncelleme'), T('erp_w4_d', 'Lisans süresi boyunca')]].map((w, i) => {
                const Ico = I[w[0]];
                return (
                  <div key={i} style={{background:"rgba(255,255,255,.05)",border:"1px solid rgba(255,255,255,.1)",borderRadius:15,padding:22}}>
                    <Ico size={22} style={{color:"#43d693"}}/>
                    <div style={{fontFamily:"var(--font-display)",fontWeight:700,fontSize:15,color:"#fff",marginTop:12}}>{w[1]}</div>
                    <div style={{fontSize:13,color:"#8fa2bf",marginTop:5,lineHeight:1.5}}>{w[2]}</div>
                  </div>
                );
              })}
            </div>
          </div>
        </div></section>
      )}

      {secOn('erp_pricing') && D.PRICING.length > 0 && (
        <section className="sec" id="erp-fiyat"><div className="wrap">
          <div className="center">
            <span className="eyebrow">{T('nav_erp_pricing', 'Fiyatlandırma')}</span>
            <h2 className="h2 mt14">{T('erp_price_title', 'Yıllık lisans, her şey dahil')}</h2>
            <p className="lead mt14">{T('erp_price_lead', 'Güncellemeler, yeni sürümler ve teknik destek yıllık bedele dahil. Ayrıca bakım anlaşması ücreti ödemiyorsunuz.')}</p>
          </div>
          <div className="plans">
            {D.PRICING.map((p, i) => (
              <Reveal className={"plan" + (p.featured ? " hot" : "")} key={p.key} delay={i * .06}>
                {p.featured && <span className="rib">{T('erp_price_popular', 'En çok tercih edilen')}</span>}
                <div className="nm">{p.name}</div>
                <div className="ds2">{p.tagline}</div>
                <div className="pr"><span className="v">{p.price}</span>{p.per && <span className="p">{p.per}</span>}</div>
                {p.note && <div className="note">{p.note}</div>}
                <ul>
                  {p.features.map((f, j) => <li key={"f" + j}><I.check/>{f}</li>)}
                  {p.excluded.map((f, j) => <li className="off" key={"x" + j}><I.close/>{f}</li>)}
                </ul>
                <button className={"btn " + (p.featured ? "btn-primary" : "btn-ghost")}
                  onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + p.name)}>
                  {p.featured ? T('erp_price_cta1', 'Teklif İste') : T('erp_price_cta2', 'Teklif İste')}
                </button>
              </Reveal>
            ))}
          </div>
          <p className="pnote">{T('erp_price_note', 'İlk yıl kurulum, veri aktarımı ve eğitim ücretsiz. Donanımı da bizden alırsanız kurulum ücreti hiçbir yıl alınmaz.')}</p>
        </div></section>
      )}

      {secOn('erp_demo') && (
        <section className="sec tint" id="erp-demo"><div className="wrap">
          <div className="center" style={{marginBottom:44}}>
            <span className="eyebrow">{T('nav_erp_demo', 'Canlı Demo')}</span>
            <h2 className="h2 mt14">{T('erp_demo_title', 'Anlatmayalım, deneyin')}</h2>
            <p className="lead mt14">{T('erp_demo_lead', 'Aşağıdaki ekran gerçek programın tarayıcıdaki kopyası. Sekmelere tıklayın, ürün ekleyin, satış yapın — hiçbir şey bozulmaz.')}</p>
          </div>
          {window.ErpDemo ? <Reveal><window.ErpDemo/></Reveal> : null}
          <div style={{textAlign:"center",marginTop:34}}>
            <button className="btn btn-primary btn-lg" onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + T('erp_onsite_ctx', 'Yerinde Sunum'))}>
              {T('erp_demo_onsite', 'Yerinde Sunum İste')}<I.arrow/>
            </button>
          </div>
        </div></section>
      )}

      {secOn('erp_download') && (
        <section className="sec" id="erp-indir"><div className="wrap">
          <span className="eyebrow">{T('nav_erp_download', 'İndir & Sürümler')}</span>
          <h2 className="h2 mt14">{T('erp_dl_title', 'Kurulum dosyaları')}</h2>
          <p className="lead mt14">{T('erp_dl_lead', 'Lisanslı kullanıcılarımız güncel sürümü buradan talep edebilir. Kurulum için Windows 10/11, 8 GB RAM ve 2 GB boş disk alanı gerekir.')}</p>
          <div className="dl">
            {(function () {
              const tool = PHP.supportTool;   // yüklüyse doğrudan indirilir
              const toolVer = tool && tool.version
                ? T('erp_dl3_v', 'Kurulum gerektirmez') + ' · v' + tool.version + (tool.size ? ' · ' + tool.size : '')
                : (tool && tool.size
                    ? T('erp_dl3_v', 'Kurulum gerektirmez') + ' · ' + tool.size
                    : T('erp_dl3_v', 'Kurulum gerektirmez'));

              return [
                {icon:"box",     t:T('erp_dl1_t', 'ALKERSOFT ERP Kurulum'), v:T('erp_dl1_v', 'Tam kurulum paketi · Windows 10/11'), d:T('erp_dl1_d', 'Yeni kurulumlar ve büyük sürüm geçişleri için.'), vurgu:true},
                {icon:"refresh", t:T('erp_dl2_t', 'Güncelleme Paketi'),     v:T('erp_dl2_v', 'Mevcut kurulumu günceller'),        d:T('erp_dl2_d', 'Veritabanınıza dokunmaz, ayarlarınız korunur.'), vurgu:false},
                {icon:"headset", t:T('erp_dl3_t', 'Uzaktan Destek Aracı'),  v:toolVer,                                            d:T('erp_dl3_d', 'Destek ekibimizin bilgisayarınıza bağlanabilmesi için çalıştırın.'), vurgu:false, dosya: tool ? tool.url : null, harici: tool ? !!tool.external : false},
              ];
            })().map((d, i) => { const Ico = I[d.icon]; return (
              <Reveal className="dlc" key={i} delay={i * .06}>
                <span className="ic"><Ico/></span>
                <h4>{d.t}</h4>
                <span className="ver">{d.v}</span>
                <p>{d.d}</p>
                {d.dosya ? (
                  /* Dosya varsa doğrudan indir. Harici adreste (CDN) `download`
                     özniteliği tarayıcı tarafından yok sayılır, o yüzden eklenmez. */
                  <a className="btn btn-primary" href={d.dosya}
                     download={d.harici ? undefined : true}
                     rel={d.harici ? "noopener" : undefined}>
                    <I.arrow/> {T('erp_dl_direct', 'Hemen İndir')}
                  </a>
                ) : (
                  <button className={"btn " + (d.vurgu ? "btn-primary" : "btn-ghost")}
                    onClick={() => openQuote(d.t)}><I.arrow/> {T('erp_dl_cta', 'İndirme Bağlantısı İste')}</button>
                )}
              </Reveal>
            );})}
          </div>
          <div style={{background:"var(--bg)",border:"1px solid var(--line)",borderRadius:"var(--r)",padding:"22px 26px",marginTop:26,display:"flex",gap:14,alignItems:"flex-start"}}>
            <I.warn size={20} style={{color:"var(--warn)",marginTop:2,flex:"0 0 auto"}}/>
            <p style={{fontSize:14,color:"var(--ink-2)",lineHeight:1.6}}>{T('erp_dl_warn', 'Güncelleme öncesi veritabanı yedeği almanızı öneririz. Emin değilseniz destek hattımızı arayın; güncellemeyi uzaktan biz yapalım.')}</p>
          </div>
        </div></section>
      )}

      {secOn('erp_faq') && D.FAQ.length > 0 && (
        <section className="sec tint"><div className="wrap">
          <div className="center" style={{marginBottom:40}}>
            <span className="eyebrow">{T('nav_faq', 'S.S.S.')}</span>
            <h2 className="h2 mt14">{T('erp_faq_title', 'Sık sorulanlar')}</h2>
          </div>
          <div style={{maxWidth:820,margin:"0 auto"}}><Accordion items={D.FAQ.slice(0, 6)}/></div>
        </div></section>
      )}

      <CtaBand dark
        title={T('erp_cta_t', 'Önce görün, sonra karar verin')}
        desc={T('erp_cta_d', 'Kurulum gerekmeden canlı demoyu inceleyin ya da işyerinize gelip yerinde sunum yapalım.')}
        label={T('erp_demo_cta', 'Demo Talep Et')}
        onClick={() => openQuote((PHP.productName || 'ALKERSOFT ERP') + " — " + T('erp_demo_ctx', 'Demo Talebi'))}/>
    </div>
  );
}

/* Modül koleksiyonu boşsa gösterilecek varsayılanlar */
function DEFAULT_MODULES() {
  return [
    {icon:"box", title:T('mod1_t','Stok Yönetimi'), desc:T('mod1_d','Depodaki tüm ürün hareketlerini anlık takip edin, tükenmeden haberiniz olsun.'),
     points:[T('mod1_p1','Barkod ile giriş-çıkış'),T('mod1_p2','Minimum stok uyarısı'),T('mod1_p3','Çok depolu yapı'),T('mod1_p4','Sayım ve fire kaydı')]},
    {icon:"cart", title:T('mod2_t','Satış Yönetimi'), desc:T('mod2_d','Tekliften faturaya kadar tüm satış sürecini tek ekrandan yürütün.'),
     points:[T('mod2_p1','Teklif hazırlama ve takibi'),T('mod2_p2','Müşteri bazlı iskonto'),T('mod2_p3','Kademeli fiyat listeleri'),T('mod2_p4','İade ve değişim')]},
    {icon:"users", title:T('mod3_t','Cari Yönetimi'), desc:T('mod3_d','Müşteri ve tedarikçi kartları, bakiye ve tahsilat takibi tek yerde.'),
     points:[T('mod3_p1','Bakiye ve vade takibi'),T('mod3_p2','Tahsilat ve ödeme kaydı'),T('mod3_p3','Ekstre ve mutabakat'),T('mod3_p4','Risk limiti uyarısı')]},
    {icon:"wallet", title:T('mod4_t','Kasa & POS'), desc:T('mod4_d','Kasiyerin ilk günden kullanabileceği hızlı satış ekranı.'),
     points:[T('mod4_p1','Dokunmatik satış ekranı'),T('mod4_p2','Nakit / kart / veresiye'),T('mod4_p3','Fiş yazıcı ve çekmece'),T('mod4_p4','Vardiya ve Z raporu')]},
    {icon:"receipt", title:T('mod5_t','Teklif & Sipariş'), desc:T('mod5_d','Proje bazlı çalışıyorsanız teklifi hazırlayın, onaylanınca siparişe çevirin.'),
     points:[T('mod5_p1','PDF teklif çıktısı'),T('mod5_p2','Revizyon geçmişi'),T('mod5_p3','Onay takibi'),T('mod5_p4','Siparişe dönüştürme')]},
    {icon:"chart", title:T('mod6_t','Raporlar'), desc:T('mod6_d','Hangi ürün kazandırıyor, hangi müşteri geciktiriyor — rakamlarla görün.'),
     points:[T('mod6_p1','Kâr-zarar analizi'),T('mod6_p2','Ürün ve müşteri kârlılığı'),T('mod6_p3','Dönemsel karşılaştırma'),T('mod6_p4',"Excel'e aktarım")]},
  ];
}

window.ErpPage = ErpPage;
