/* global React */
/* ===================== Language store ===================== */
const LANG_KEY = "banjara_lang";
let _lang = (typeof localStorage !== "undefined" && localStorage.getItem(LANG_KEY)) || "en";
const _subs = new Set();

function getLang() { return _lang; }
function setLang(l) {
  _lang = l;
  try { localStorage.setItem(LANG_KEY, l); } catch (e) {}
  document.documentElement.lang = l;
  document.documentElement.dataset.lang = l;
  _subs.forEach(fn => fn());
}
function hasChosenLang() {
  try { return !!localStorage.getItem(LANG_KEY); } catch (e) { return false; }
}

function useLang() {
  const [, force] = React.useState(0);
  React.useEffect(() => {
    const fn = () => force(n => n + 1);
    _subs.add(fn);
    return () => _subs.delete(fn);
  }, []);
  return [_lang, setLang];
}

// set initial dom attrs
if (typeof document !== "undefined") {
  document.documentElement.lang = _lang;
  document.documentElement.dataset.lang = _lang;
}

/* ===================== UI string dictionary ===================== */
const STR = {
  // brand / nav
  brand:        { en: "Banjara Dental Clinic", gu: "બનજારા ડેન્ટલ ક્લિનિક" },
  logoSub:      { en: "Dr. Vipul Banjara · Rajkot", gu: "ડૉ. વિપુલ બનજારા · રાજકોટ" },
  navAbout:     { en: "About", gu: "અમારા વિશે" },
  navTreatments:{ en: "Treatments", gu: "સારવાર" },
  navGallery:   { en: "Our Clinic", gu: "અમારું ક્લિનિક" },
  navFaq:       { en: "FAQ", gu: "પ્રશ્નો" },
  navBook:      { en: "Call us", gu: "અમને ફોન કરો" },

  // hero
  heroEyebrow:  { en: "Rajkot · Est. 2015", gu: "રાજકોટ · સ્થાપના 2015" },
  heroTitlePre: { en: "A smile crafted with ", gu: "" },
  heroTitleEm:  { en: "care,", gu: "કાળજી," },
  heroTitlePost:{ en: " precision & warmth.", gu: " ચોકસાઈ અને હૂંફ સાથે ઘડાયેલું સ્મિત." },
  heroSub:      { en: "Banjara Dental Clinic is a family-led dental practice in Rajkot, blending modern technology with old-school personal attention.", gu: "બનજારા ડેન્ટલ ક્લિનિક રાજકોટમાં એક ફેમિલી-સંચાલિત દંત પ્રેક્ટિસ છે, જે આધુનિક ટેકનોલોજીને જૂની-શૈલીની વ્યક્તિગત કાળજી સાથે જોડે છે." },
  heroSubAccent:{ en: "તમારા સ્મિતની સંભાળ.", gu: "" },
  heroBook:     { en: "Book an appointment", gu: "એપોઇન્ટમેન્ટ બુક કરો" },
  heroExplore:  { en: "Explore treatments", gu: "સારવાર જુઓ" },
  heroM1:       { en: "Years of practice", gu: "વર્ષનો અનુભવ" },
  heroM2:       { en: "Happy patients", gu: "ખુશ દર્દીઓ" },
  heroM3:       { en: "Google rated", gu: "ગૂગલ રેટેડ" },
  heroOpen:     { en: "Open now", gu: "અત્યારે ખુલ્લું" },
  heroOpensAt9: { en: "Opens at 9 AM", gu: "9 AM વાગ્યે ખુલશે" },
  heroOpensAt5: { en: "Opens at 5 PM", gu: "5 PM વાગ્યે ખુલશે" },
  heroOpensTomorrow: { en: "Opens tomorrow 9 AM", gu: "આવતીકાલે 9 AM વાગ્યે ખુલશે" },
  heroOpensMon: { en: "Opens Monday 9 AM", gu: "સોમવારે 9 AM વાગ્યે ખુલશે" },
  heroClosedToday: { en: "Closed today", gu: "આજે બંધ" },
  heroHours:    { en: "9 AM–1 PM · 5–8 PM", gu: "9 AM–1 PM · 5–8 PM" },
  heroQualSub:  { en: "Surgical & Prosthetic Dentistry", gu: "સર્જિકલ અને પ્રોસ્થેટિક ડેન્ટિસ્ટ્રી" },

  // about
  aboutEyebrow: { en: "About the doctor", gu: "ડૉક્ટર વિશે" },
  aboutTitle:   { en: "Meet Dr. Vipul Banjara, BDS — your dentist for life.", gu: "મળો ડૉ. વિપુલ બનજારા, BDS ને — જીવનભરના તમારા દંત ચિકિત્સક." },
  aboutP1:      { en: "For more than 26 years, Dr. Vipul Banjara has been treating patients across Saurashtra with a single belief: dentistry should never be feared. Every patient at Banjara Dental Clinic is met with patience, transparent diagnosis, and a treatment plan built around their comfort — and their budget.", gu: "26 વર્ષથી વધુ સમયથી, ડૉ. વિપુલ બનજારા સૌરાષ્ટ્રભરના દર્દીઓની સારવાર એક જ માન્યતા સાથે કરે છે: દંતચિકિત્સાથી ક્યારેય ડરવું ન જોઈએ. બનજારા ડેન્ટલ ક્લિનિકમાં દરેક દર્દીને ધીરજ, પારદર્શક નિદાન અને તેમના આરામ — અને બજેટ — ની આસપાસ બનાવેલ સારવાર યોજના મળે છે." },
  aboutP2:      { en: "From a child's first checkup to complex full-mouth rehabilitations, the clinic combines trained expertise with a warm, personal touch that has earned the trust of families across Rajkot, Saurashtra, and beyond.", gu: "બાળકના પ્રથમ ચેકઅપથી લઈને જટિલ ફુલ-માઉથ રિહેબિલિટેશન સુધી, ક્લિનિક પ્રશિક્ષિત નિપુણતાને હૂંફાળા, વ્યક્તિગત સ્પર્શ સાથે જોડે છે, જેણે રાજકોટ, સૌરાષ્ટ્ર અને તેની બહારના પરિવારોનો વિશ્વાસ મેળવ્યો છે." },
  aboutSign:    { en: "— Dr. Vipul Banjara", gu: "— ડૉ. વિપુલ બનજારા" },
  credQualK:    { en: "Qualification", gu: "લાયકાત" },
  credQualV:    { en: "BDS", gu: "BDS" },
  credExpK:     { en: "Experience", gu: "અનુભવ" },
  credExpV:     { en: "26+ Years", gu: "26+ વર્ષ" },
  credSpecK:    { en: "Specialization", gu: "નિષ્ણાતતા" },
  credSpecV:    { en: "Surgical Extractions & Prosthesis", gu: "ઓપરેશન થી ડહાપણ દાઢ કાઢવી અને કવર અને બ્રિજ" },
  credLangK:    { en: "Languages", gu: "ભાષાઓ" },
  credLangV:    { en: "ગુજરાતી · हिंदी · EN", gu: "ગુજરાતી · हिंदी · EN" },

  // treatments
  trEyebrow:    { en: "Our treatments", gu: "અમારી સારવાર" },
  trTitle:      { en: "From routine cleanings to complete smile makeovers.", gu: "નિયમિત સફાઈથી લઈને સંપૂર્ણ સ્માઇલ મેકઓવર સુધી." },
  trLead:       { en: "Twelve focused services delivered with the same standard of care. Click any treatment to see what's included.", gu: "એક જ ધોરણની કાળજી સાથે આપવામાં આવતી બાર કેન્દ્રિત સેવાઓ. શું સામેલ છે તે જોવા માટે કોઈપણ સારવાર પર ક્લિક કરો." },
  trFrom:       { en: "From", gu: "થી" },

  // why
  whyEyebrow:   { en: "Why Banjara Dental Clinic", gu: "શા માટે બનજારા ડેન્ટલ ક્લિનિક" },
  whyTitle:     { en: "Trusted by 3 Lac+ families across Saurashtra.", gu: "સૌરાષ્ટ્રભરના 3 લાખ+ પરિવારોનો વિશ્વાસ." },
  whyLead:      { en: "We've built our practice around four promises that we keep on every patient, every visit — without exception.", gu: "અમે અમારી પ્રેક્ટિસ ચાર વચનોની આસપાસ બનાવી છે જે અમે દરેક દર્દી, દરેક મુલાકાતે પાળીએ છીએ — અપવાદ વિના." },
  cnt1:         { en: "Happy patients", gu: "ખુશ દર્દીઓ" },
  cnt2:         { en: "Surgical wisdom tooth removals", gu: "ઓપરેશન થી ડહાપણ દાઢ કાઢવી" },
  cnt3:         { en: "Complete dentures", gu: "સંપૂર્ણ ચોકઠાં" },
  cnt3Suffix:   { en: " yrs", gu: " વર્ષ" },
  cntSurg:      { en: "Surgical extractions", gu: "સર્જિકલ એક્સટ્રેક્શન" },
  cnt4:         { en: "Crown & bridge patients", gu: "કવર અને બ્રિજ દર્દીઓ" },
  cnt5:         { en: "Implants placed", gu: "ઇમ્પ્લાન્ટ મૂક્યા" },

  // gallery
  galEyebrow:   { en: "Our clinic", gu: "અમારું ક્લિનિક" },
  galTitle:     { en: "Take a look inside our Rajkot clinic.", gu: "અમારા રાજકોટ ક્લિનિકની અંદર એક નજર નાખો." },
  galLead:      { en: "A clean, calm, and fully-equipped space designed for your comfort — from the reception to every treatment chair. Tap any photo to view.", gu: "રિસેપ્શનથી લઈને દરેક સારવાર ચેર સુધી — તમારા આરામ માટે રચાયેલ સ્વચ્છ, શાંત અને સંપૂર્ણ સજ્જ જગ્યા. જોવા માટે કોઈપણ ફોટો પર ટૅપ કરો." },
  galBefore:    { en: "BEFORE", gu: "પહેલાં" },
  galAfter:     { en: "AFTER", gu: "પછી" },
  galCase:      { en: "CASE", gu: "કેસ" },

  // testimonials
  tsEyebrow:    { en: "Patient stories", gu: "દર્દીઓના અનુભવ" },
  tsTitle:      { en: "What our patients say.", gu: "અમારા દર્દીઓ શું કહે છે." },
  tsLead:       { en: "Real reviews from real patients. We're grateful for every single one — and we work hard to earn every new one.", gu: "સાચા દર્દીઓની સાચી સમીક્ષાઓ. અમે દરેક માટે આભારી છીએ — અને દરેક નવી સમીક્ષા કમાવા સખત મહેનત કરીએ છીએ." },

  // faq
  faqEyebrow:   { en: "Questions", gu: "પ્રશ્નો" },
  faqTitle:     { en: "Everything you wanted to ask, answered.", gu: "તમે પૂછવા માગતા હતા તે બધું, જવાબ સાથે." },
  faqP:         { en: "Couldn't find your question? Drop us a message on WhatsApp or call the clinic directly.", gu: "તમારો પ્રશ્ન મળ્યો નહીં? અમને WhatsApp પર સંદેશ મોકલો અથવા સીધો ક્લિનિકને ફોન કરો." },
  faqBtn:       { en: "Ask a question", gu: "પ્રશ્ન પૂછો" },

  // booking
  bkEyebrow:    { en: "Book a visit", gu: "મુલાકાત બુક કરો" },
  bkTitle:      { en: "Call us to book your appointment.", gu: "એપોઇન્ટમેન્ટ બુક કરવા અમને ફોન કરો." },
  bkLead:       { en: "No forms, no waiting. Pick up the phone and speak to our front desk directly — we'll find you the next available slot.", gu: "કોઈ ફોર્મ નહીં, કોઈ રાહ નહીં. ફોન ઉપાડો અને સીધા અમારા ફ્રન્ટ ડેસ્ક સાથે વાત કરો — અમે તમારા માટે આગામી ઉપલબ્ધ સ્લોટ શોધી આપીશું." },
  bkHoursEye:   { en: "Visiting hours", gu: "મુલાકાતનો સમય" },
  bkHoursTitle: { en: "We're here, five days a week.", gu: "અમે અહીં છીએ, અઠવાડિયામાં પાંચ દિવસ." },
  bkHoursP:     { en: "Our chairs are open Monday through Friday, with a morning and an evening session to suit working professionals.", gu: "અમારી ચેર સોમવારથી શુક્રવાર ખુલ્લી રહે છે, વ્યસ્ત વ્યાવસાયિકોને અનુકૂળ સવાર અને સાંજના સત્ર સાથે." },
  bkMorningK:   { en: "Morning", gu: "સવાર" },
  bkMorningV:   { en: "9:00 AM – 1:00 PM", gu: "9:00 AM – 1:00 PM" },
  bkEveningK:   { en: "Evening", gu: "સાંજ" },
  bkEveningV:   { en: "5:00 PM – 8:00 PM", gu: "5:00 PM – 8:00 PM" },
  bkWeekK:      { en: "Mon — Fri", gu: "સોમ — શુક્ર" },
  bkWeekV:      { en: "Open both sessions", gu: "બંને સત્ર ખુલ્લા" },
  bkWeekendK:   { en: "Sat — Sun", gu: "શનિ — રવિ" },
  bkWeekendV:   { en: "Call us", gu: "અમને ફોન કરો" },
  bkWaK:        { en: "WhatsApp", gu: "WhatsApp" },
  bkWaV:        { en: "24/7 messages", gu: "24/7 સંદેશા" },
  callEye:      { en: "Call to book", gu: "બુક કરવા ફોન કરો" },
  callH:        { en: "Speak to us directly", gu: "અમારી સાથે સીધી વાત કરો" },
  callSub:      { en: "Our team will note your concern, suggest the right treatment, and book a time that works for you.", gu: "અમારી ટીમ તમારી સમસ્યા નોંધશે, યોગ્ય સારવાર સૂચવશે અને તમને અનુકૂળ સમય બુક કરશે." },
  callTap:      { en: "Tap to call", gu: "કૉલ કરવા ટૅપ કરો" },
  callNow:      { en: "Call now", gu: "હમણાં ફોન કરો" },
  callWa:       { en: "WhatsApp", gu: "WhatsApp" },
  callNote:     { en: "Mon–Fri · 9 AM–1 PM & 5–8 PM · Same-day slots usually available", gu: "સોમ–શુક્ર · 9 AM–1 PM અને 5–8 PM · સામાન્ય રીતે સેમ-ડે સ્લોટ ઉપલબ્ધ" },

  // contact
  ctEyebrow:    { en: "Visit us", gu: "અમારી મુલાકાત લો" },
  ctTitle:      { en: "Find us in the heart of Rajkot.", gu: "રાજકોટના હૃદયમાં અમને શોધો." },
  ctLead:       { en: "Conveniently located with ample parking. Walk-ins welcome between 11 AM and 4 PM, but appointments get priority.", gu: "સગવડભરી જગ્યા, પૂરતી પાર્કિંગ સાથે. 11 AM થી 4 PM વચ્ચે વોક-ઇન આવકાર્ય, પણ એપોઇન્ટમેન્ટને પ્રાધાન્ય." },
  ctAddrL:      { en: "Address", gu: "સરનામું" },
  ctAddrV:      { en: "Banjara Dental Clinic", gu: "બનજારા ડેન્ટલ ક્લિનિક" },
  ctAddrSub:    { en: "Bhaktinagar Circle, Geeta Mandir Rd, opp. Jaynath Hospital, Mansatirth, Rajkot — 360002", gu: "ભક્તિનગર સર્કલ, ગીતા મંદિર રોડ, જયનાથ હોસ્પિટલ સામે, માનસતીર્થ, રાજકોટ — 360002" },
  ctPhoneL:     { en: "Phone & WhatsApp", gu: "ફોન અને WhatsApp" },
  ctPhoneSub:   { en: "Mon–Fri 9 AM–1 PM & 5–8 PM · WhatsApp 24/7", gu: "સોમ–શુક્ર 9 AM–1 PM અને 5–8 PM · WhatsApp 24/7" },
  ctEmailL:     { en: "Email", gu: "ઈમેલ" },
  ctEmailSub:   { en: "Replies within one business day", gu: "એક કાર્યદિવસમાં જવાબ" },
  mapName:      { en: "Banjara Dental Clinic", gu: "બનજારા ડેન્ટલ ક્લિનિક" },
  mapAddr:      { en: "Bhaktinagar Circle, Rajkot", gu: "ભક્તિનગર સર્કલ, રાજકોટ" },

  // footer
  ftTagline:    { en: "“તમારા સ્મિતની સંભાળ — your smile, our care.”", gu: "“તમારા સ્મિતની સંભાળ — your smile, our care.”" },
  ftTreatments: { en: "Treatments", gu: "સારવાર" },
  ftImplants:   { en: "Implants", gu: "ઇમ્પ્લાન્ટ" },
  ftRct:        { en: "Root Canal", gu: "રૂટ કેનાલ" },
  ftOrtho:      { en: "Orthodontics", gu: "ઓર્થોડોન્ટિક્સ" },
  ftVeneers:    { en: "Cosmetic Veneers", gu: "કોસ્મેટિક વેનીયર્સ" },
  ftAll:        { en: "All services →", gu: "બધી સેવાઓ →" },
  ftClinic:     { en: "Clinic", gu: "ક્લિનિક" },
  ftAbout:      { en: "About Dr. Banjara", gu: "ડૉ. બનજારા વિશે" },
  ftClinicPhotos: { en: "Our Clinic", gu: "અમારું ક્લિનિક" },
  ftReviews:    { en: "Reviews", gu: "સમીક્ષાઓ" },
  ftContact:    { en: "Contact", gu: "સંપર્ક" },
  ftRights:     { en: "© 2026 BANJARA DENTAL CLINIC · ALL RIGHTS RESERVED", gu: "© 2026 બનજારા ડેન્ટલ ક્લિનિક · સર્વ હક અમારી પાસે" },
  ftLoc:        { en: "RAJKOT · GUJARAT · INDIA", gu: "રાજકોટ · ગુજરાત · ભારત" },

  // fab
  fabWa:        { en: "Chat on WhatsApp", gu: "WhatsApp પર ચેટ કરો" },
  fabCall:      { en: "Call clinic", gu: "ક્લિનિકને ફોન કરો" },

  // popup
  popTitle:     { en: "Choose your language", gu: "તમારી ભાષા પસંદ કરો" },
  popSub:       { en: "તમારી ભાષા પસંદ કરો", gu: "Choose your language" }
};

const MARQUEE = {
  en: ["Painless dentistry", "Single-sitting RCT", "Implants", "Smile design", "Pediatric care", "Surgical extraction", "Wisdom tooth extraction", "Crown & bridge", "Dentures", "Scaling"],
  gu: ["પીડારહિત દંતચિકિત્સા", "સિંગલ-સિટિંગ RCT", "ઇમ્પ્લાન્ટ", "સ્માઇલ ડિઝાઇન", "બાળ સંભાળ", "સર્જિકલ એક્સટ્રેક્શન", "ડહાપણ દાઢ કાઢવા", "કવર અને બ્રિજ", "ચોકઠું", "સ્કેલિંગ"]
};

/* ===================== Language toggle button ===================== */
function LangToggle() {
  const [lang, set] = useLang();
  return (
    <div className="lang-toggle" role="group" aria-label="Language">
      <button className={lang === "en" ? "active" : ""} onClick={() => set("en")}>EN</button>
      <button className={"guj " + (lang === "gu" ? "active" : "")} onClick={() => set("gu")}>ગુજ</button>
    </div>
  );
}

/* ===================== First-visit language popup ===================== */
function LangPopup() {
  const [show, setShow] = React.useState(!hasChosenLang());
  if (!show) return null;
  const choose = (l) => { setLang(l); setShow(false); };
  return (
    <div className="lang-pop-overlay" onClick={() => choose(_lang)}>
      <div className="lang-pop" onClick={e => e.stopPropagation()}>
        <img className="logo-img logo-img-lg" src="assets/logo.png" alt="Banjara Dental Clinic" />
        <h2>{STR.popTitle.en} <span className="guj" style={{ fontFamily: "'Noto Serif Gujarati', serif" }}>/ {STR.popTitle.gu}</span></h2>
        <p className="sub">Banjara Dental Clinic · Rajkot</p>
        <div className="lang-pop-actions">
          <button className="lang-pop-btn" onClick={() => choose("en")}>
            <span className="big">English</span>
            <span className="small">Continue in English</span>
          </button>
          <button className="lang-pop-btn" onClick={() => choose("gu")}>
            <span className="big guj">ગુજરાતી</span>
            <span className="small">ગુજરાતીમાં ચાલુ રાખો</span>
          </button>
        </div>
      </div>
    </div>
  );
}

window.useLang = useLang;
window.getLang = getLang;
window.STR = STR;
window.MARQUEE = MARQUEE;
window.LangToggle = LangToggle;
window.LangPopup = LangPopup;
