#!/usr/bin/env python3
import os
import json
import argparse
from jinja2 import Template

def load_jobs(jobs_dir, index_filename="jobs_index.json"):
    index_path = os.path.join(jobs_dir, index_filename)
    with open(index_path, "r", encoding="utf-8") as f:
        jobs = json.load(f)
    return jobs

def main(jobs_dir, output_dir):
    all_jobs = load_jobs(jobs_dir)
    selected_jobs = all_jobs[:20] 
    
    # MODIFIED TEMPLATE: Updated for "Authentic" look
    template_home = r"""<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Remote Jobs In USA | Find Your Next Remote Job</title>
        
        <style>
            :root {
                --blue-600: #2563EB;
                --gray-50: #F9FAFB;
                --gray-200: #E5E7EB;
                --gray-600: #4B5563;
                --gray-900: #111827;
            }

            body {
                margin: 0;
                font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
                background-color: var(--gray-50);
                color: var(--gray-900);
            }

            .container { max-width: 800px; margin: 0 auto; padding: 2rem 1rem; }

            .header { text-align: center; padding: 3rem 0; background: white; border-bottom: 1px solid var(--gray-200); }
            .header h1 { font-size: 2rem; margin-bottom: 0.5rem; }
            
            .search-form { max-width: 500px; margin: 1.5rem auto; position: relative; }
            .search-input {
                width: 100%;
                padding: 0.8rem 1.2rem;
                border-radius: 8px;
                border: 1px solid var(--gray-200);
                font-size: 1rem;
            }

            /* AUTHENTIC JOB LIST STYLE */
            .jobs-grid { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2rem; }
            
            .job-card {
                background: white;
                border: 1px solid var(--gray-200);
                padding: 1.25rem;
                border-radius: 8px;
                text-decoration: none;
                color: inherit;
                display: flex;
                justify-content: space-between;
                align-items: center;
                transition: border-color 0.2s;
            }
            .job-card:hover { border-color: var(--blue-600); }

            .job-info h2 { font-size: 1.1rem; margin: 0; color: var(--blue-600); }
            .company-name { font-size: 0.9rem; font-weight: bold; color: var(--gray-600); margin-bottom: 4px; }
            .job-meta { font-size: 0.85rem; color: var(--gray-600); margin-top: 4px; }

            .badge-remote {
                background: #DBEAFE;
                color: #1E40AF;
                padding: 4px 12px;
                border-radius: 9999px;
                font-size: 0.75rem;
                font-weight: 600;
            }
        </style>
    </head>
    <body>
        <header class="header">
            <div class="container">
                <h1>Remote Jobs USA</h1>
                <p>Helping you find work-from-home opportunities</p>
                
                <form id="searchForm" class="search-form">
                    <input type="search" class="search-input" placeholder="Search by job title...">
                </form>
            </div>
        </header>

        <main class="container">
            <div class="jobs-grid">
                {% for job in jobs %}
                <a href="{{ job.job_url }}" class="job-card">
                    <div class="job-info">
                        <div class="company-name">{{ job.company_name or "Hiring Company" }}</div>
                        <h2>{{ job.job_title }}</h2>
                        <div class="job-meta">
                            <span>📍 {{ job.location }}</span> • <span>🕒 {{ job.employment_type }}</span>
                        </div>
                    </div>
                    <div class="badge-remote">Remote</div>
                </a>
                {% endfor %}
            </div>
        </main>

        <script>
            // Live Filter Modification
            const searchInput = document.querySelector('.search-input');
            const cards = document.querySelectorAll('.job-card');

            searchInput.addEventListener('input', (e) => {
                const query = e.target.value.toLowerCase();
                cards.forEach(card => {
                    const text = card.innerText.toLowerCase();
                    card.style.display = text.includes(query) ? 'flex' : 'none';
                });
            });
        </script>
    </body>
</html>
"""

    template = Template(template_home)
    rendered_html = template.render(jobs=selected_jobs)

    os.makedirs(output_dir, exist_ok=True)
    output_path = os.path.join(output_dir, "index.html")
    with open(output_path, "w", encoding="utf-8") as f:
        f.write(rendered_html)
    
    print(f"Modified Homepage generated at: {output_path}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--jobs_dir", required=True)
    parser.add_argument("--output_dir", required=True)
    args = parser.parse_args()
    main(args.jobs_dir, args.output_dir)