<?php
require_once 'includes/db.php';
require_once 'includes/functions.php';
require_once 'includes/email.php';

if (isLoggedIn()) {
    header('Location: ' . SITE_URL);
    exit;
}

$error = '';
$success = '';
$type = $_GET['type'] ?? 'candidate';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    $email = trim($_POST['email'] ?? '');
    $password = $_POST['password'] ?? '';
    $confirmPassword = $_POST['confirm_password'] ?? '';
    $role = $_POST['role'] ?? 'candidate';
    $companyName = trim($_POST['company_name'] ?? '');
    
    if (empty($name) || empty($email) || empty($password)) {
        $error = 'Please fill in all required fields.';
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $error = 'Please enter a valid email address.';
    } elseif (strlen($password) < 6) {
        $error = 'Password must be at least 6 characters long.';
    } elseif ($password !== $confirmPassword) {
        $error = 'Passwords do not match.';
    } elseif ($role === 'employer' && empty($companyName)) {
        $error = 'Company name is required for employers.';
    } else {
        $stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?");
        $stmt->execute([$email]);
        
        if ($stmt->fetch()) {
            $error = 'An account with this email already exists.';
        } else {
            try {
                $stmt = $pdo->prepare("INSERT INTO users (name, email, password, role, is_active, company_name) VALUES (?, ?, ?, ?, 1, ?)");
                $stmt->execute([$name, $email, hashPassword($password), $role, $role === 'employer' ? $companyName : null]);
                
                $userId = $pdo->lastInsertId();
                
                sendWelcomeEmail($pdo, $userId, $email, $name, $role);
                
                $_SESSION['user_id'] = $userId;
                $_SESSION['user_name'] = $name;
                $_SESSION['user_email'] = $email;
                $_SESSION['user_role'] = $role;
                
                flash('success', 'Account created successfully! Welcome to ' . SITE_NAME . '!');
                
                if ($role === 'employer') {
                    header('Location: ' . SITE_URL . '/employer/dashboard.php');
                } else {
                    header('Location: ' . SITE_URL . '/candidate/dashboard.php');
                }
                exit;
            } catch (PDOException $e) {
                $error = 'An error occurred. Please try again.';
            }
        }
    }
}

$pageTitle = 'Create Account';
$pageDescription = 'Create a free ' . SITE_NAME . ' account to apply for jobs, save listings, and get personalized job recommendations. Join as a job seeker or employer today.';
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <title><?php echo $pageTitle . ' - ' . SITE_NAME; ?></title>
    <meta name="description" content="<?php echo htmlspecialchars($pageDescription, ENT_QUOTES, 'UTF-8'); ?>">
    <meta property="og:title" content="<?php echo $pageTitle . ' - ' . SITE_NAME; ?>">
    <meta property="og:description" content="<?php echo htmlspecialchars($pageDescription, ENT_QUOTES, 'UTF-8'); ?>">
    <meta property="og:type" content="website">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:title" content="<?php echo $pageTitle . ' - ' . SITE_NAME; ?>">
    <meta name="twitter:description" content="<?php echo htmlspecialchars($pageDescription, ENT_QUOTES, 'UTF-8'); ?>">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="/assets/css/style.css?v=<?php echo time(); ?>">
</head>
<body>
    <div class="auth-container">
        <div class="auth-card" style="max-width: 500px;">
            <a href="<?php echo SITE_URL; ?>" class="logo" style="display: block; text-align: center; margin-bottom: 20px; font-size: 1.75rem;">
                <i class="fas fa-briefcase"></i> <?php echo SITE_NAME; ?>
            </a>
            
            <h1>Create Account</h1>
            <p class="subtitle">Join us to find your dream job or hire talented candidates</p>
            
            <?php if ($error): ?>
                <div class="alert alert-danger">
                    <i class="fas fa-times-circle"></i>
                    <?php echo $error; ?>
                </div>
            <?php endif; ?>
            
            <div class="tabs" style="margin-bottom: 25px;">
                <button type="button" class="tab <?php echo $type === 'candidate' ? 'active' : ''; ?>" onclick="switchRole('candidate')">
                    <i class="fas fa-user"></i> Job Seeker
                </button>
                <button type="button" class="tab <?php echo $type === 'employer' ? 'active' : ''; ?>" onclick="switchRole('employer')">
                    <i class="fas fa-building"></i> Employer
                </button>
            </div>
            
            <form method="POST" action="" data-validate>
                <input type="hidden" name="role" id="role" value="<?php echo $type; ?>">
                
                <div class="form-group">
                    <label for="name" id="nameLabel"><?php echo $type === 'employer' ? 'Contact Name' : 'Full Name'; ?></label>
                    <input type="text" id="name" name="name" class="form-control" placeholder="Enter your name" required autocomplete="name" value="<?php echo sanitize($_POST['name'] ?? ''); ?>">
                </div>
                
                <div class="form-group" id="companyNameGroup" style="<?php echo $type !== 'employer' ? 'display: none;' : ''; ?>">
                    <label for="company_name">Company Name</label>
                    <input type="text" id="company_name" name="company_name" class="form-control" placeholder="Enter company name" autocomplete="organization" value="<?php echo sanitize($_POST['company_name'] ?? ''); ?>">
                </div>
                
                <div class="form-group">
                    <label for="email">Email Address</label>
                    <input type="email" id="email" name="email" class="form-control" placeholder="Enter your email" required autocomplete="email" value="<?php echo sanitize($_POST['email'] ?? ''); ?>">
                </div>
                
                <div class="form-group">
                    <label for="password">Password</label>
                    <div style="position: relative;">
                        <input type="password" id="password" name="password" class="form-control" placeholder="Create a password (min 6 characters)" required autocomplete="new-password">
                        <button type="button" class="password-toggle" style="position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: var(--gray-500);">
                            <i class="fas fa-eye"></i>
                        </button>
                    </div>
                </div>
                
                <div class="form-group">
                    <label for="confirm_password">Confirm Password</label>
                    <input type="password" id="confirm_password" name="confirm_password" class="form-control" placeholder="Confirm your password" required autocomplete="new-password">
                </div>
                
                <button type="submit" class="btn btn-primary btn-lg" style="width: 100%;">
                    <i class="fas fa-user-plus"></i> Create Account
                </button>
            </form>
            
            <div class="auth-footer">
                Already have an account? <a href="login.php">Sign In</a>
            </div>
            
            <div style="text-align: center; margin-top: 20px;">
                <a href="<?php echo SITE_URL; ?>" style="color: var(--gray-500);">
                    <i class="fas fa-arrow-left"></i> Back to Home
                </a>
            </div>
        </div>
    </div>
    
    <script>
        function switchRole(role) {
            document.getElementById('role').value = role;
            document.querySelectorAll('.tab').forEach(tab => tab.classList.remove('active'));
            event.target.classList.add('active');
            
            const companyGroup = document.getElementById('companyNameGroup');
            const nameLabel = document.getElementById('nameLabel');
            
            if (role === 'employer') {
                companyGroup.style.display = 'block';
                document.getElementById('company_name').required = true;
                nameLabel.textContent = 'Contact Name';
            } else {
                companyGroup.style.display = 'none';
                document.getElementById('company_name').required = false;
                nameLabel.textContent = 'Full Name';
            }
        }
    </script>
    <script src="/assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>
