/* global React, ReactDOM, NOBBYO_ICONS, PageBrandLogo, usePageLang */
const { useState, useEffect } = React;
const I = window.NOBBYO_ICONS;

// =================== ICONS for sign-in ===================
const Eye = ({open}) => open ? (
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" width="18" height="18"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg>
) : (
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" width="18" height="18"><path d="M9.88 9.88a3 3 0 1 0 4.24 4.24"/><path d="M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"/><path d="M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"/><line x1="2" y1="2" x2="22" y2="22"/></svg>
);

const SocialIcons = {
  google: (
    <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
      <path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09Z"/>
      <path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23Z"/>
      <path fill="#FBBC05" d="M5.84 14.1c-.22-.66-.35-1.36-.35-2.1s.13-1.44.35-2.1V7.07H2.18A11 11 0 0 0 1 12c0 1.77.42 3.45 1.18 4.93l3.66-2.83Z"/>
      <path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1A11 11 0 0 0 2.18 7.07l3.66 2.84C6.71 7.31 9.14 5.38 12 5.38Z"/>
    </svg>
  ),
  facebook: (
    <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
      <path fill="#1877F2" d="M24 12a12 12 0 1 0-13.88 11.85v-8.38H7.08V12h3.04V9.36c0-3 1.79-4.66 4.53-4.66 1.31 0 2.68.23 2.68.23v2.95h-1.51c-1.49 0-1.95.92-1.95 1.87V12h3.32l-.53 3.47h-2.79v8.38A12 12 0 0 0 24 12Z"/>
    </svg>
  ),
  linkedin: (
    <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
      <path fill="#0A66C2" d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05a3.74 3.74 0 0 1 3.36-1.85c3.6 0 4.27 2.37 4.27 5.46v6.28ZM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13ZM7.12 20.45H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.72v20.55C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.73V1.72C24 .77 23.2 0 22.22 0Z"/>
    </svg>
  ),
};

// =================== APP ===================
function App() {
  const [lang, setLang] = window.usePageLang('bn');
  const [mode, setMode] = useState('signin'); // signin | signup
  const [role, setRole] = useState('candidate'); // candidate | employer
  const [showPwd, setShowPwd] = useState(false);
  const [form, setForm] = useState({ name:'', email:'', password:'', company:'', remember:true, terms:false });

  const update = (k, v) => setForm(f => ({...f, [k]: v}));
  const submit = (e) => {
    e.preventDefault();
    alert(lang==='bn' ? 'ডেমো ফর্ম জমা! (Backend connected হলে এটা কাজ করবে)' : 'Demo form submitted! (Will work once backend is connected)');
  };

  return (
    <div className="auth-page">
      {/* Minimal top bar — just logo and language toggle */}
      <div className="auth-top">
        <div className="container auth-top-inner">
          <PageBrandLogo size="md" />
          <div className="auth-top-right">
            <a href="homepage-bold.html" className="auth-top-link">
              <span className="t-bn">← হোম</span>
              <span className="t-en">← Home</span>
            </a>
            <div className="lang-pill">
              <button className={lang === 'bn' ? 'active' : ''} onClick={()=>setLang('bn')}>বাং</button>
              <button className={lang === 'en' ? 'active' : ''} onClick={()=>setLang('en')}>EN</button>
            </div>
          </div>
        </div>
      </div>

      <div className="auth-grid">
        {/* ============ Left: Form ============ */}
        <div className="auth-form-side">
          <div className="auth-form-wrap">
            {/* Tabs */}
            <div className="auth-tabs">
              <button
                className={'auth-tab' + (mode === 'signin' ? ' is-on' : '')}
                onClick={()=>setMode('signin')}
              >
                <span className="t-bn">সাইন ইন</span>
                <span className="t-en">Sign In</span>
              </button>
              <button
                className={'auth-tab' + (mode === 'signup' ? ' is-on' : '')}
                onClick={()=>setMode('signup')}
              >
                <span className="t-bn">সাইন আপ</span>
                <span className="t-en">Sign Up</span>
              </button>
              <div className={'auth-tab-glide auth-tab-glide-' + mode}></div>
            </div>

            <div className="auth-head">
              <h1 className="auth-title">
                {mode === 'signin' ? (
                  <>
                    <span className="t-bn">আবার স্বাগতম</span>
                    <span className="t-en">Welcome back</span>
                  </>
                ) : (
                  <>
                    <span className="t-bn">যাত্রা শুরু করুন</span>
                    <span className="t-en">Start your journey</span>
                  </>
                )}
              </h1>
              <p className="auth-sub">
                {mode === 'signin' ? (
                  <>
                    <span className="t-bn">আপনার অ্যাকাউন্টে লগইন করুন</span>
                    <span className="t-en">Log in to your account</span>
                  </>
                ) : (
                  <>
                    <span className="t-bn">৬০ সেকেন্ডে অ্যাকাউন্ট তৈরি করুন · সম্পূর্ণ ফ্রি</span>
                    <span className="t-en">Create your account in 60 seconds · totally free</span>
                  </>
                )}
              </p>
            </div>

            {/* Role toggle */}
            <div className="auth-role">
              <button
                className={'auth-role-btn' + (role === 'candidate' ? ' is-on' : '')}
                onClick={()=>setRole('candidate')}
              >
                <div className="auth-role-icon">{I.briefcase}</div>
                <div className="auth-role-text">
                  <div className="auth-role-name">
                    <span className="t-bn">আমি চাকরি খুঁজছি</span>
                    <span className="t-en">I'm looking for a job</span>
                  </div>
                  <div className="auth-role-sub">
                    <span className="t-bn">ক্যান্ডিডেট অ্যাকাউন্ট</span>
                    <span className="t-en">Candidate account</span>
                  </div>
                </div>
              </button>
              <button
                className={'auth-role-btn' + (role === 'employer' ? ' is-on' : '')}
                onClick={()=>setRole('employer')}
              >
                <div className="auth-role-icon">{I.building}</div>
                <div className="auth-role-text">
                  <div className="auth-role-name">
                    <span className="t-bn">আমি হায়ার করছি</span>
                    <span className="t-en">I'm hiring</span>
                  </div>
                  <div className="auth-role-sub">
                    <span className="t-bn">এমপ্লয়ার অ্যাকাউন্ট</span>
                    <span className="t-en">Employer account</span>
                  </div>
                </div>
              </button>
            </div>

            {/* Social */}
            <div className="auth-social">
              <button className="auth-social-btn">
                {SocialIcons.google}
                <span className="t-bn">Google</span>
                <span className="t-en">Google</span>
              </button>
              <button className="auth-social-btn">
                {SocialIcons.facebook}
                <span className="t-bn">Facebook</span>
                <span className="t-en">Facebook</span>
              </button>
              <button className="auth-social-btn">
                {SocialIcons.linkedin}
                <span className="t-bn">LinkedIn</span>
                <span className="t-en">LinkedIn</span>
              </button>
            </div>

            <div className="auth-divider">
              <span>
                <span className="t-bn">অথবা ইমেইল দিয়ে</span>
                <span className="t-en">Or with email</span>
              </span>
            </div>

            {/* Form */}
            <form className="auth-form" onSubmit={submit}>
              {mode === 'signup' && (
                <div className="auth-field">
                  <label>
                    <span className="t-bn">পূর্ণ নাম</span>
                    <span className="t-en">Full name</span>
                  </label>
                  <input
                    type="text"
                    value={form.name}
                    onChange={e=>update('name', e.target.value)}
                    placeholder={lang==='bn'?'রহিম আহমেদ':'Rahim Ahmed'}
                    required
                  />
                </div>
              )}

              {mode === 'signup' && role === 'employer' && (
                <div className="auth-field">
                  <label>
                    <span className="t-bn">কোম্পানির নাম</span>
                    <span className="t-en">Company name</span>
                  </label>
                  <input
                    type="text"
                    value={form.company}
                    onChange={e=>update('company', e.target.value)}
                    placeholder={lang==='bn'?'আপনার কোম্পানি':'Your company'}
                    required
                  />
                </div>
              )}

              <div className="auth-field">
                <label>
                  <span className="t-bn">ইমেইল</span>
                  <span className="t-en">Email</span>
                </label>
                <input
                  type="email"
                  value={form.email}
                  onChange={e=>update('email', e.target.value)}
                  placeholder="you@example.com"
                  required
                />
              </div>

              <div className="auth-field">
                <label>
                  <span className="t-bn">পাসওয়ার্ড</span>
                  <span className="t-en">Password</span>
                </label>
                <div className="auth-pwd">
                  <input
                    type={showPwd ? 'text' : 'password'}
                    value={form.password}
                    onChange={e=>update('password', e.target.value)}
                    placeholder={mode==='signup' ? (lang==='bn'?'কমপক্ষে ৮ অক্ষর':'At least 8 characters') : '••••••••'}
                    required
                    minLength={mode==='signup' ? 8 : undefined}
                  />
                  <button type="button" className="auth-pwd-toggle" onClick={()=>setShowPwd(s=>!s)} aria-label="Toggle password">
                    <Eye open={showPwd}/>
                  </button>
                </div>
                {mode === 'signup' && (
                  <PasswordStrength pwd={form.password} lang={lang} />
                )}
              </div>

              {mode === 'signin' && (
                <div className="auth-row-between">
                  <label className="auth-check">
                    <input
                      type="checkbox"
                      checked={form.remember}
                      onChange={e=>update('remember', e.target.checked)}
                    />
                    <span className="auth-check-box"></span>
                    <span className="t-bn">আমাকে মনে রাখুন</span>
                    <span className="t-en">Remember me</span>
                  </label>
                  <a href="contact.html" className="auth-link">
                    <span className="t-bn">পাসওয়ার্ড ভুলে গেছেন?</span>
                    <span className="t-en">Forgot password?</span>
                  </a>
                </div>
              )}

              {mode === 'signup' && (
                <label className="auth-check auth-terms">
                  <input
                    type="checkbox"
                    checked={form.terms}
                    onChange={e=>update('terms', e.target.checked)}
                    required
                  />
                  <span className="auth-check-box"></span>
                  <span>
                    <span className="t-bn">আমি NOBBYO Jobs-এর </span>
                    <span className="t-en">I agree to NOBBYO Jobs' </span>
                    <a href="terms.html" className="auth-link">
                      <span className="t-bn">টার্মস</span>
                      <span className="t-en">Terms</span>
                    </a>
                    <span className="t-bn"> এবং </span>
                    <span className="t-en"> and </span>
                    <a href="privacy.html" className="auth-link">
                      <span className="t-bn">প্রাইভেসি পলিসি</span>
                      <span className="t-en">Privacy Policy</span>
                    </a>
                    <span className="t-bn"> মেনে নিচ্ছি</span>
                  </span>
                </label>
              )}

              <button type="submit" className="auth-submit">
                <span className="t-bn">{mode === 'signin' ? 'সাইন ইন করুন' : 'অ্যাকাউন্ট তৈরি করুন'}</span>
                <span className="t-en">{mode === 'signin' ? 'Sign in' : 'Create account'}</span>
                {I.arrowRight}
              </button>
            </form>

            <div className="auth-switch">
              {mode === 'signin' ? (
                <>
                  <span className="t-bn">নতুন NOBBYO তে? </span>
                  <span className="t-en">New to NOBBYO? </span>
                  <a onClick={()=>setMode('signup')} className="auth-link auth-link-strong">
                    <span className="t-bn">অ্যাকাউন্ট তৈরি করুন</span>
                    <span className="t-en">Create an account</span>
                  </a>
                </>
              ) : (
                <>
                  <span className="t-bn">ইতিমধ্যে অ্যাকাউন্ট আছে? </span>
                  <span className="t-en">Already have an account? </span>
                  <a onClick={()=>setMode('signin')} className="auth-link auth-link-strong">
                    <span className="t-bn">সাইন ইন করুন</span>
                    <span className="t-en">Sign in</span>
                  </a>
                </>
              )}
            </div>
          </div>
        </div>

        {/* ============ Right: Brand showcase ============ */}
        <div className="auth-brand-side">
          <div className="auth-brand-bg" aria-hidden="true">
            <div className="srch-blob srch-blob-1"></div>
            <div className="srch-blob srch-blob-2"></div>
            <div className="srch-grid"></div>
          </div>
          <div className="auth-brand-inner">
            <div className="auth-brand-eyebrow">
              <span className="srch-pulse"></span>
              <span className="t-bn">৪২,০০০+ লাইভ চাকরি</span>
              <span className="t-en">42,000+ live jobs</span>
            </div>
            <h2 className="auth-brand-title">
              {role === 'employer' ? (
                <>
                  <span className="t-bn">সঠিক প্রার্থী খুঁজুন <em>২৪ ঘন্টায়</em></span>
                  <span className="t-en">Find the right hire <em>in 24 hours</em></span>
                </>
              ) : (
                <>
                  <span className="t-bn">আপনার পরবর্তী চাকরি <em>আপনাকে খুঁজে নিক</em></span>
                  <span className="t-en">Let your next job <em>find you</em></span>
                </>
              )}
            </h2>
            <p className="auth-brand-sub">
              {role === 'employer' ? (
                <>
                  <span className="t-bn">AI স্ক্রিনিং, যাচাইকৃত প্রোফাইল, এবং বাংলাদেশের ১,৮৪০+ কোম্পানির ট্রাস্ট।</span>
                  <span className="t-en">AI screening, verified profiles, and trust from 1,840+ companies in Bangladesh.</span>
                </>
              ) : (
                <>
                  <span className="t-bn">AI ম্যাচিং আপনার CV অনুযায়ী সেরা চাকরি খুঁজে দেবে। ভয়েস সার্চ, বাংলা CV, ৩০ সেকেন্ডে আবেদন।</span>
                  <span className="t-en">AI matching finds the best jobs from your CV. Voice search, Bangla CVs, 30-second apply.</span>
                </>
              )}
            </p>

            {/* Stats */}
            <div className="auth-brand-stats">
              <div className="auth-brand-stat">
                <div className="auth-brand-stat-num">
                  <span className="t-bn">৪২k+</span>
                  <span className="t-en">42K+</span>
                </div>
                <div className="auth-brand-stat-label">
                  <span className="t-bn">সফল হায়ার</span>
                  <span className="t-en">Hires made</span>
                </div>
              </div>
              <div className="auth-brand-stat">
                <div className="auth-brand-stat-num">
                  <span className="t-bn">১,৮৪০+</span>
                  <span className="t-en">1,840+</span>
                </div>
                <div className="auth-brand-stat-label">
                  <span className="t-bn">কোম্পানি</span>
                  <span className="t-en">Companies</span>
                </div>
              </div>
              <div className="auth-brand-stat">
                <div className="auth-brand-stat-num">
                  <span className="t-bn">৯৬%</span>
                  <span className="t-en">96%</span>
                </div>
                <div className="auth-brand-stat-label">
                  <span className="t-bn">ম্যাচ স্কোর</span>
                  <span className="t-en">Match score</span>
                </div>
              </div>
            </div>

            {/* Testimonial */}
            <div className="auth-testimonial">
              <div className="auth-testimonial-quote">
                <span className="t-bn">"NOBBYO-র AI ম্যাচ আমাকে এমন একটা রোল খুঁজে দিল, যেটা আমি কখনো খুঁজতাম না। ৩ দিনে অফার!"</span>
                <span className="t-en">"NOBBYO's AI matched me with a role I'd never have found. Offer in 3 days!"</span>
              </div>
              <div className="auth-testimonial-by">
                <div className="auth-testimonial-avatar">N</div>
                <div>
                  <div className="auth-testimonial-name">
                    <span className="t-bn">নাফিসা রহমান</span>
                    <span className="t-en">Nafisa Rahman</span>
                  </div>
                  <div className="auth-testimonial-role">
                    <span className="t-bn">সিনিয়র ডেভেলপার · bKash</span>
                    <span className="t-en">Senior Developer · bKash</span>
                  </div>
                </div>
              </div>
            </div>

            <div className="auth-trust-row">
              {I.check}
              <span className="t-bn">SSL এনক্রিপ্টেড · ডেটা সুরক্ষিত · ১০০% বাংলাদেশী</span>
              <span className="t-en">SSL encrypted · data secured · 100% Bangladeshi</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  );
}

function PasswordStrength({ pwd, lang }) {
  const score = (() => {
    if (!pwd) return 0;
    let s = 0;
    if (pwd.length >= 8) s++;
    if (/[A-Z]/.test(pwd)) s++;
    if (/[0-9]/.test(pwd)) s++;
    if (/[^A-Za-z0-9]/.test(pwd)) s++;
    return s;
  })();
  const labels = {
    0: { bn:'খুবই দুর্বল', en:'Very weak' },
    1: { bn:'দুর্বল', en:'Weak' },
    2: { bn:'মাঝারি', en:'Fair' },
    3: { bn:'শক্তিশালী', en:'Strong' },
    4: { bn:'খুব শক্তিশালী', en:'Very strong' },
  };
  return (
    <div className="auth-pwd-strength" data-score={score}>
      <div className="auth-pwd-bars">
        {[0,1,2,3].map(i => (
          <div key={i} className={'auth-pwd-bar' + (i < score ? ' is-on' : '')}></div>
        ))}
      </div>
      <span className="auth-pwd-label">
        <span className="t-bn">{labels[score].bn}</span>
        <span className="t-en">{labels[score].en}</span>
      </span>
    </div>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
