<?php
// No login required
require_once('login_connection.php'); // $conn must be defined here

$pdo = new PDO("mysql:host=localhost;dbname=luziraco_LUZIRA", "luziraco_Staff", "Luzira@2025");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Handle subject score insert/update
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    header('Content-Type: application/json');

    $action = $_POST['action'];
    $student_id = $_POST['student_id'];
    $term = $_POST['term'];
    $subject = $_POST['subject'];
    $score = $_POST['score'];
    $user = "teacher"; // Hardcoded if no session is used

    $table = ($action === 'insert_midterm_subject') ? "MIDTERM_LOWER" : (($action === 'insert_eot_subject') ? "EOT_LOWER" : null);

    if (!$table) {
        echo json_encode(["status" => "error", "message" => "Invalid action"]);
        exit;
    }

    try {
        $stmt = $conn->prepare("SELECT * FROM $table WHERE STUDENT_ID = :student_id AND TERM = :term");
        $stmt->execute([':student_id' => $student_id, ':term' => $term]);

        if ($stmt->rowCount() > 0) {
            $update = $conn->prepare("UPDATE $table SET $subject = :score WHERE STUDENT_ID = :student_id AND TERM = :term");
            $update->execute([':score' => $score, ':student_id' => $student_id, ':term' => $term]);
            echo json_encode(["status" => "success", "message" => "$subject updated successfully"]);
        } else {
            $insert = $conn->prepare("INSERT INTO $table (STUDENT_ID, TERM, $subject, RECORDED_BY) VALUES (:student_id, :term, :score, :user)");
            $insert->execute([':student_id' => $student_id, ':term' => $term, ':score' => $score, ':user' => $user]);
            echo json_encode(["status" => "success", "message" => "$subject inserted successfully"]);
        }
    } catch (Exception $e) {
        echo json_encode(["status" => "error", "message" => "DB Error: " . $e->getMessage()]);
    }
    exit;
}

// Get students based on class
if (isset($_GET['get_students']) && $_GET['get_students'] == 1 && isset($_GET['class'])) {
    $stmt = $conn->prepare("SELECT STUDENT_ID, STUDENT_NAME FROM STUDENTS WHERE CLASS = :class ORDER BY STUDENT_NAME ASC");
    $stmt->execute([':class' => $_GET['class']]);
    echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
    exit;
}

// Only P1, P2, P3
$classes = ['P1', 'P2', 'P3'];
?>

<!DOCTYPE html>
<html>
<head>
    <title>Results Entry – P1 to P3</title>
    <style>
        body { font-family: Arial; background: #f4f4f4; margin: 0; padding: 0; }
        h2 { background: #007BFF; color: white; padding: 15px; text-align: center; margin: 0; }
        h3 { text-align: center; margin-top: 10px; }
        .container { display: flex; flex-wrap: wrap; justify-content: space-around; padding: 20px; }
        .column {
            background: white;
            border-radius: 8px;
            padding: 20px;
            width: 45%;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
            min-width: 300px;
            margin-bottom: 30px;
        }
        select, input, button {
            padding: 10px;
            margin-bottom: 10px;
            width: 100%;
        }
        .dropdown-wrapper { position: relative; z-index: 1; }
        select { position: relative; z-index: 1; }
        #midtermMsg, #eotMsg {
            font-weight: bold;
            padding: 5px;
        }
        footer {
            text-align: center;
            padding: 15px;
            background: #007BFF;
            color: white;
            position: fixed;
            width: 100%;
            bottom: 0;
        }
    </style>
</head>
<body>

<h2>Results Entry (P1, P2, P3)</h2>

<div class="container">
    <!-- Midterm Entry -->
    <div class="column">
        <h3>Midterm Subject Entry</h3>
        <form id="midtermForm">
            <select name="class" id="midterm-class" required>
                <option value="">-- Select Class --</option>
                <?php foreach ($classes as $class): ?>
                    <option value="<?= $class ?>"><?= $class ?></option>
                <?php endforeach; ?>
            </select>
            <div class="dropdown-wrapper">
                <select name="student_id" id="midterm-student" required>
                    <option value="">-- Select Student --</option>
                </select>
            </div>
            <select name="term" required>
                <option value="TERM 1">TERM 1</option>
                <option value="TERM 2">TERM 2</option>
                <option value="TERM 3">TERM 3</option>
            </select>
            <select name="subject" required>
                <option value="MTC">Mathematics</option>
                <option value="ENG">English</option>
                <option value="LIT1">Literacy I</option>
                <option value="LIT2">Literacy II</option>
                <option value="RE">RE</option>
            </select>
            <input type="number" name="score" placeholder="Enter score" required>
            <input type="hidden" name="action" value="insert_midterm_subject">
            <button type="submit">Save Midterm</button>
        </form>
        <div id="midtermMsg"></div>
    </div>

    <!-- EOT Entry -->
    <div class="column">
        <h3>End of Term Subject Entry</h3>
        <form id="eotForm">
            <select name="class" id="eot-class" required>
                <option value="">-- Select Class --</option>
                <?php foreach ($classes as $class): ?>
                    <option value="<?= $class ?>"><?= $class ?></option>
                <?php endforeach; ?>
            </select>
            <div class="dropdown-wrapper">
                <select name="student_id" id="eot-student" required>
                    <option value="">-- Select Student --</option>
                </select>
            </div>
            <select name="term" required>
                <option value="TERM 1">TERM 1</option>
                <option value="TERM 2">TERM 2</option>
                <option value="TERM 3">TERM 3</option>
            </select>
            <select name="subject" required>
                <option value="MTC">Mathematics</option>
                <option value="ENG">English</option>
                <option value="LIT1">Literacy I</option>
                <option value="LIT2">Literacy II</option>
                <option value="RE">RE</option>
            </select>
            <input type="number" name="score" placeholder="Enter score" required>
            <input type="hidden" name="action" value="insert_eot_subject">
            <button type="submit">Save EOT</button>
        </form>
        <div id="eotMsg"></div>
    </div>
</div>

<footer>
    &copy; <?= date("Y") ?> Luzira COU Primary School – P1 to P3
</footer>

<script>
// Load students by class
function fetchStudents(classId, studentId) {
    const classValue = document.getElementById(classId).value;
    const studentSelect = document.getElementById(studentId);
    studentSelect.innerHTML = '<option>Loading...</option>';

    fetch(`?get_students=1&class=${encodeURIComponent(classValue)}`)
        .then(res => res.json())
        .then(data => {
            studentSelect.innerHTML = '<option value="">-- Select Student --</option>';
            data.forEach(student => {
                const opt = document.createElement("option");
                opt.value = student.STUDENT_ID;
                opt.textContent = student.STUDENT_NAME;
                studentSelect.appendChild(opt);
            });
        });
}

document.getElementById("midterm-class").addEventListener("change", () => {
    fetchStudents("midterm-class", "midterm-student");
});
document.getElementById("eot-class").addEventListener("change", () => {
    fetchStudents("eot-class", "eot-student");
});

// Submit forms
document.getElementById("midtermForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    fetch("", { method: "POST", body: formData })
        .then(res => res.json())
        .then(response => {
            document.getElementById("midtermMsg").textContent = response.message;
            document.getElementById("midtermMsg").style.color = response.status === "success" ? "green" : "red";
            this.reset();
        });
});

document.getElementById("eotForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    fetch("", { method: "POST", body: formData })
        .then(res => res.json())
        .then(response => {
            document.getElementById("eotMsg").textContent = response.message;
            document.getElementById("eotMsg").style.color = response.status === "success" ? "green" : "red";
            this.reset();
        });
});
</script>
</body>
</html>
