const { useState } = React;
const { getAllLoveLanguages, getTheoryOverview, getQuizInterpretation } = window.quizDataUtils;
const { LOVE_LANGUAGE_COLORS } = window.quizLogic;

const LearnMore = ({ onBack, onStartQuiz }) => {
  const [selectedLanguage, setSelectedLanguage] = useState(null);
  const [activeTab, setActiveTab] = useState('overview');
  
  const loveLanguages = getAllLoveLanguages();
  const theoryOverview = getTheoryOverview();
  const quizInterpretation = getQuizInterpretation();

  const handleLanguageSelect = (language) => {
    setSelectedLanguage(language);
    setActiveTab('details');
  };

  const renderOverview = () => (
    <div className="space-y-8">
      {/* Theory Introduction */}
      <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
        <h2 className="text-2xl font-bold mb-4" style={{ color: 'var(--color-dark)' }}>
          {theoryOverview.title}
        </h2>
        <div className="grid md:grid-cols-2 gap-8">
          <div>
            <p className="mb-4 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              <strong style={{ color: 'var(--color-dark)' }}>Developed by:</strong> {theoryOverview.author}
            </p>
            <p className="mb-4 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              {theoryOverview.description}
            </p>
            <p className="leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              <strong style={{ color: 'var(--color-dark)' }}>Key Principle:</strong> {theoryOverview.key_principle}
            </p>
          </div>
          <div 
            className="rounded-lg p-6"
            style={{
              background: `linear-gradient(135deg, var(--color-primary-alpha-10) 0%, var(--color-accent-alpha-10) 100%)`
            }}
          >
            <h3 className="font-semibold mb-4" style={{ color: 'var(--color-dark)' }}>
              Why This Matters
            </h3>
            <ul className="space-y-2 text-sm" style={{ color: 'var(--color-medium)' }}>
              <li className="flex items-start">
                <span className="mr-2" style={{ color: 'var(--color-secondary)' }}>•</span>
                Improves communication in relationships
              </li>
              <li className="flex items-start">
                <span className="mr-2" style={{ color: 'var(--color-secondary)' }}>•</span>
                Helps you understand how others show love
              </li>
              <li className="flex items-start">
                <span className="mr-2" style={{ color: 'var(--color-secondary)' }}>•</span>
                Reduces misunderstandings and conflicts
              </li>
              <li className="flex items-start">
                <span className="mr-2" style={{ color: 'var(--color-secondary)' }}>•</span>
                Strengthens emotional connections
              </li>
            </ul>
          </div>
        </div>
      </div>

      {/* Love Languages Grid */}
      <div>
        <h3 className="text-xl font-bold mb-6 text-center" style={{ color: 'var(--color-dark)' }}>
          Explore Each Love Language
        </h3>
        <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
          {loveLanguages.map((language, index) => (
            <div 
              key={language.key}
              className="cursor-pointer rounded-xl p-6 transition-all duration-300"
              style={{
                backgroundColor: 'var(--color-white)',
                boxShadow: 'var(--shadow-md)'
              }}
              onClick={() => handleLanguageSelect(language)}
              onMouseEnter={(e) => {
                e.currentTarget.style.transform = 'scale(1.05)';
                e.currentTarget.style.boxShadow = 'var(--shadow-lg)';
              }}
              onMouseLeave={(e) => {
                e.currentTarget.style.transform = 'scale(1)';
                e.currentTarget.style.boxShadow = 'var(--shadow-md)';
              }}
            >
              <div className="flex items-center mb-3">
                <div 
                  className="w-4 h-4 rounded-full mr-3"
                  style={{ backgroundColor: LOVE_LANGUAGE_COLORS[language.title] }}
                ></div>
                <h4 className="text-lg font-semibold" style={{ color: 'var(--color-dark)' }}>
                  {language.title}
                </h4>
              </div>
              <p className="text-sm mb-4 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
                {language.description}
              </p>
              <div className="text-xs" style={{ color: 'var(--color-medium)' }}>
                Click to learn more →
              </div>
            </div>
          ))}
        </div>
      </div>

      {/* Quiz Information */}
      <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
        <h3 className="text-xl font-bold mb-4" style={{ color: 'var(--color-dark)' }}>
          Understanding Quiz Results
        </h3>
        <div className="grid md:grid-cols-2 gap-8">
          <div>
            <h4 className="font-semibold mb-3" style={{ color: 'var(--color-dark)' }}>
              How Scoring Works
            </h4>
            <p className="text-sm mb-3 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              The quiz uses a letter-based scoring system where each answer corresponds to one of the five love languages. Your scores indicate which languages resonate most with you.
            </p>
            <p className="text-sm mb-3 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              <strong style={{ color: 'var(--color-dark)' }}>Maximum Score:</strong> 12 points per love language
            </p>
            <p className="text-sm leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              If two languages have equal scores, you're considered "bilingual" in love languages.
            </p>
          </div>
          <div>
            <h4 className="font-semibold mb-3" style={{ color: 'var(--color-dark)' }}>
              Applying Your Results
            </h4>
            <p className="text-sm mb-3 leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              Use your results to communicate your needs to your partner and understand how they prefer to receive love.
            </p>
            <p className="text-sm leading-relaxed" style={{ color: 'var(--color-medium)' }}>
              {quizInterpretation.other_languages_importance}
            </p>
          </div>
        </div>
      </div>
    </div>
  );

  const renderLanguageDetails = () => {
    if (!selectedLanguage) return null;

    return (
      <div className="space-y-8">
        {/* Back Button */}
        <button 
          onClick={() => setActiveTab('overview')}
          className="font-medium mb-4 transition-colors"
          style={{ color: 'var(--color-primary)' }}
          onMouseEnter={(e) => e.target.style.color = 'var(--color-primary-dark)'}
          onMouseLeave={(e) => e.target.style.color = 'var(--color-primary)'}
        >
          ← Back to Overview
        </button>

        {/* Language Header */}
        <div 
          className="text-center rounded-xl p-8"
          style={{
            backgroundColor: 'var(--color-white)',
            boxShadow: 'var(--shadow-lg)',
            borderLeft: `4px solid ${LOVE_LANGUAGE_COLORS[selectedLanguage.title]}`
          }}
        >
          <div className="flex items-center justify-center mb-4">
            <div 
              className="w-6 h-6 rounded-full mr-3"
              style={{ backgroundColor: LOVE_LANGUAGE_COLORS[selectedLanguage.title] }}
            ></div>
            <h2 className="text-3xl font-bold" style={{ color: 'var(--color-dark)' }}>
              {selectedLanguage.title}
            </h2>
          </div>
          <p className="text-lg leading-relaxed max-w-3xl mx-auto" style={{ color: 'var(--color-medium)' }}>
            {selectedLanguage.description}
          </p>
        </div>

        {/* Detailed Content */}
        <div className="grid lg:grid-cols-2 gap-8">
          {/* Characteristics */}
          <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
            <h3 className="text-xl font-bold mb-4" style={{ color: 'var(--color-dark)' }}>
              Key Characteristics
            </h3>
            <ul className="space-y-3">
              {selectedLanguage.characteristics.map((characteristic, index) => (
                <li key={index} className="flex items-start">
                  <span className="mr-3 mt-1 text-lg" style={{ color: 'var(--color-secondary)' }}>•</span>
                  <span className="leading-relaxed" style={{ color: 'var(--color-medium)' }}>
                    {characteristic}
                  </span>
                </li>
              ))}
            </ul>
          </div>

          {/* Examples */}
          <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
            <h3 className="text-xl font-bold mb-4" style={{ color: 'var(--color-dark)' }}>
              Examples & Applications
            </h3>
            <ul className="space-y-3">
              {selectedLanguage.examples.map((example, index) => (
                <li key={index} className="flex items-start">
                  <span className="mr-3 mt-1 text-lg" style={{ color: 'var(--color-accent)' }}>•</span>
                  <span className="leading-relaxed" style={{ color: 'var(--color-medium)' }}>
                    {example}
                  </span>
                </li>
              ))}
            </ul>
          </div>
        </div>

        {/* Tips Section */}
        <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
          <h3 className="text-xl font-bold mb-6" style={{ color: 'var(--color-dark)' }}>
            Tips for {selectedLanguage.title}
          </h3>
          <div className="grid md:grid-cols-2 gap-6">
            <div>
              <h4 className="font-semibold mb-3" style={{ color: 'var(--color-dark)' }}>
                If This Is Your Love Language:
              </h4>
              <ul className="space-y-2 text-sm" style={{ color: 'var(--color-medium)' }}>
                {selectedLanguage.examples.slice(0, 2).map((tip, index) => (
                  <li key={index} className="flex items-start">
                    <span className="mr-2" style={{ color: 'var(--color-primary)' }}>✓</span>
                    {tip}
                  </li>
                ))}
              </ul>
            </div>
            <div>
              <h4 className="font-semibold mb-3" style={{ color: 'var(--color-dark)' }}>
                If This Is Your Partner's Love Language:
              </h4>
              <ul className="space-y-2 text-sm" style={{ color: 'var(--color-medium)' }}>
                {selectedLanguage.examples.slice(2, 4).map((tip, index) => (
                  <li key={index} className="flex items-start">
                    <span className="mr-2" style={{ color: 'var(--color-secondary)' }}>✓</span>
                    {tip}
                  </li>
                ))}
              </ul>
            </div>
          </div>
        </div>

        {/* Related Languages */}
        <div className="rounded-xl shadow-lg p-8" style={{ backgroundColor: 'var(--color-white)' }}>
          <h3 className="text-xl font-bold mb-4" style={{ color: 'var(--color-dark)' }}>
            Explore Other Love Languages
          </h3>
          <div className="grid md:grid-cols-2 lg:grid-cols-4 gap-4">
            {loveLanguages
              .filter(lang => lang.key !== selectedLanguage.key)
              .map((language) => (
                <button
                  key={language.key}
                  onClick={() => handleLanguageSelect(language)}
                  className="text-left p-4 border rounded-lg transition-all duration-200"
                  style={{
                    borderColor: 'var(--color-light)',
                    backgroundColor: 'var(--color-white)'
                  }}
                  onMouseEnter={(e) => {
                    e.currentTarget.style.borderColor = 'var(--color-primary)';
                    e.currentTarget.style.backgroundColor = 'var(--color-primary-alpha-10)';
                  }}
                  onMouseLeave={(e) => {
                    e.currentTarget.style.borderColor = 'var(--color-light)';
                    e.currentTarget.style.backgroundColor = 'var(--color-white)';
                  }}
                >
                  <div className="flex items-center mb-2">
                    <div 
                      className="w-3 h-3 rounded-full mr-2"
                      style={{ backgroundColor: LOVE_LANGUAGE_COLORS[language.title] }}
                    ></div>
                    <h4 className="font-medium text-sm" style={{ color: 'var(--color-dark)' }}>
                      {language.title}
                    </h4>
                  </div>
                  <p className="text-xs leading-relaxed" style={{ color: 'var(--color-medium)' }}>
                    {language.description.substring(0, 80)}...
                  </p>
                </button>
              ))}
          </div>
        </div>
      </div>
    );
  };

  return (
    <div className="min-h-screen" style={{ backgroundColor: 'var(--color-light)' }}>
      {/* Header */}
      <header className="shadow-sm" style={{ backgroundColor: 'var(--color-white)' }}>
        <div className="max-w-6xl mx-auto px-4 py-6">
          <div className="flex items-center justify-between">
            <button 
              onClick={onBack}
              className="font-medium transition-colors"
              style={{ color: 'var(--color-primary)' }}
              onMouseEnter={(e) => e.target.style.color = 'var(--color-primary-dark)'}
              onMouseLeave={(e) => e.target.style.color = 'var(--color-primary)'}
            >
              ← Back
            </button>
            <h1 className="text-2xl font-bold text-center" style={{ color: 'var(--color-primary)' }}>
              Learn About Love Languages
            </h1>
            <button 
              onClick={onStartQuiz}
              className="text-sm px-4 py-2 rounded-lg font-medium transition-all"
              style={{
                backgroundColor: 'var(--color-primary)',
                color: 'var(--color-white)'
              }}
              onMouseEnter={(e) => e.target.style.backgroundColor = 'var(--color-primary-dark)'}
              onMouseLeave={(e) => e.target.style.backgroundColor = 'var(--color-primary)'}
            >
              Take Quiz
            </button>
          </div>
        </div>
      </header>

      {/* Navigation Tabs */}
      <div className="max-w-6xl mx-auto px-4 py-4">
        <div className="flex justify-center space-x-4">
          <button
            onClick={() => setActiveTab('overview')}
            className="px-6 py-2 rounded-lg font-medium transition-all duration-200"
            style={{
              backgroundColor: activeTab === 'overview' ? 'var(--color-primary)' : 'var(--color-white)',
              color: activeTab === 'overview' ? 'var(--color-white)' : 'var(--color-primary)'
            }}
            onMouseEnter={(e) => {
              if (activeTab !== 'overview') {
                e.target.style.backgroundColor = 'var(--color-primary-alpha-10)';
              }
            }}
            onMouseLeave={(e) => {
              if (activeTab !== 'overview') {
                e.target.style.backgroundColor = 'var(--color-white)';
              }
            }}
          >
            Overview
          </button>
          {selectedLanguage && (
            <button
              onClick={() => setActiveTab('details')}
              className="px-6 py-2 rounded-lg font-medium transition-all duration-200"
              style={{
                backgroundColor: activeTab === 'details' ? 'var(--color-primary)' : 'var(--color-white)',
                color: activeTab === 'details' ? 'var(--color-white)' : 'var(--color-primary)'
              }}
              onMouseEnter={(e) => {
                if (activeTab !== 'details') {
                  e.target.style.backgroundColor = 'var(--color-primary-alpha-10)';
                }
              }}
              onMouseLeave={(e) => {
                if (activeTab !== 'details') {
                  e.target.style.backgroundColor = 'var(--color-white)';
                }
              }}
            >
              {selectedLanguage.title} Details
            </button>
          )}
        </div>
      </div>

      {/* Main Content */}
      <main className="max-w-6xl mx-auto px-4 pb-12">
        {activeTab === 'overview' ? renderOverview() : renderLanguageDetails()}
      </main>

      {/* Call to Action */}
      <section className="max-w-6xl mx-auto px-4 pb-8">
        <div 
          className="text-white rounded-2xl p-8 text-center"
          style={{
            background: `linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%)`
          }}
        >
          <h3 className="text-2xl font-bold mb-4">
            Ready to Discover Your Love Language?
          </h3>
          <p className="text-lg opacity-90 mb-6">
            Take our comprehensive quiz to understand how you give and receive love.
          </p>
          <button 
            onClick={onStartQuiz}
            className="font-semibold px-8 py-4 rounded-lg transition-all duration-300"
            style={{
              backgroundColor: 'var(--color-white)',
              color: 'var(--color-primary)'
            }}
            onMouseEnter={(e) => {
              e.target.style.backgroundColor = 'var(--color-light)';
              e.target.style.transform = 'scale(1.05)';
            }}
            onMouseLeave={(e) => {
              e.target.style.backgroundColor = 'var(--color-white)';
              e.target.style.transform = 'scale(1)';
            }}
          >
            Start the Quiz
          </button>
        </div>
      </section>
    </div>
  );
};

// Expose globally
window.LearnMore = LearnMore;
