<?php
session_start();
$username = $_SESSION['username'] ?? 'System';

// DB Connection
$pdo = new PDO("mysql:host=localhost;dbname=luziraco_LUZIRA", "luziraco_Staff", "Luzira@2025");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Handle Form Submissions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';

    if ($action === 'load_students_by_class') {
        $stmt = $pdo->prepare("SELECT STUDENT_ID, STUDENT_NAME FROM STUDENTS WHERE CLASS = ? ORDER BY STUDENT_NAME");
        $stmt->execute([$_POST['class']]);
        $students = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo json_encode($students);
        exit;
    }

    if ($action === 'add_midterm_lower') {
        $stmt = $pdo->prepare("INSERT INTO MIDTERM_LOWER (
            STUDENT_ID, STUDENT_NAME, CLASS, TERM, MTC, ENG, LIT1, LIT2, RE, RECORDED_BY
        ) VALUES (
            ?, (SELECT STUDENT_NAME FROM STUDENTS WHERE STUDENT_ID = ?), ?, ?, ?, ?, ?, ?, ?, ?
        )");
        $done = $stmt->execute([
            $_POST['student_id'], $_POST['student_id'], $_POST['class'], $_POST['term'],
            $_POST['mtc'] ?: null, $_POST['eng'] ?: null, $_POST['lit1'] ?: null,
            $_POST['lit2'] ?: null, $_POST['re'] ?: null, $username
        ]);
        exit($done ? "✅ Midterm (Lower) result added." : "❌ Failed to add result.");

    } elseif ($action === 'view_midterm_lower') {
        $stmt = $pdo->prepare("SELECT * FROM MIDTERM_LOWER WHERE CLASS = ? ORDER BY STUDENT_NAME");
        $stmt->execute([$_POST['result_class']]);
        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo generateTable($results);
        exit;

    } elseif ($action === 'add_eot_lower') {
        $stmt = $pdo->prepare("INSERT INTO EOT_LOWER (
            STUDENT_ID, STUDENT_NAME, CLASS, TERM, MTC, ENG, LIT1, LIT2, RE, RECORDED_BY
        ) VALUES (
            ?, (SELECT STUDENT_NAME FROM STUDENTS WHERE STUDENT_ID = ?), ?, ?, ?, ?, ?, ?, ?, ?
        )");
        $done = $stmt->execute([
            $_POST['student_id'], $_POST['student_id'], $_POST['class'], $_POST['term'],
            $_POST['mtc'] ?: null, $_POST['eng'] ?: null, $_POST['lit1'] ?: null,
            $_POST['lit2'] ?: null, $_POST['re'] ?: null, $username
        ]);
        exit($done ? "✅ EOT (Lower) result added." : "❌ Failed to add result.");

    } elseif ($action === 'view_eot_lower') {
        $stmt = $pdo->prepare("SELECT * FROM EOT_LOWER WHERE CLASS = ? ORDER BY STUDENT_NAME");
        $stmt->execute([$_POST['result_class']]);
        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo generateTable($results);
        exit;
    }
}

function generateTable($results) {
    if (empty($results)) return "<p>No results found.</p>";
    $html = "<table class='styled-table'><thead><tr>";
    foreach (array_keys($results[0]) as $col) {
        $html .= "<th>" . htmlspecialchars($col) . "</th>";
    }
    $html .= "</tr></thead><tbody>";
    foreach ($results as $row) {
        $html .= "<tr>";
        foreach ($row as $val) {
            $html .= "<td>" . htmlspecialchars($val) . "</td>";
        }
        $html .= "</tr>";
    }
    $html .= "</tbody></table>";
    return $html;
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Lower Class Results</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            background: #f4f4f4;
            padding: 20px;
        }
        .section {
            background: #ffffff;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            padding: 20px;
            margin-bottom: 30px;
            max-width: 100%;
            overflow-x: auto;
        }
        h2, h3 {
            color: #333;
        }
        form {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
        }
        input, select, button {
            padding: 10px;
            font-size: 14px;
            border-radius: 5px;
            border: 1px solid #ccc;
        }
        button {
            background-color: #28a745;
            color: white;
            cursor: pointer;
            border: none;
        }
        button:hover {
            background-color: #218838;
        }
        .styled-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        .styled-table th {
            background-color: #007BFF;
            color: white;
            padding: 10px;
        }
        .styled-table td {
            padding: 10px;
            border: 1px solid #ddd;
        }
        .styled-table tr:nth-child(even) {
            background-color: #f9f9f9;
        }
    </style>
</head>
<body>
<div class="section">
<h2>Midterm Result Entry (Lower)</h2>
<form id="midtermLowerForm">
    <select name="class" id="classMidterm" required>
        <option value="">Select Class</option>
        <option value="P1">P1</option>
        <option value="P2">P2</option>
        <option value="P3">P3</option>
    </select>
    <select name="student_id" id="studentMidterm" required>
        <option value="">Select Student</option>
    </select>
    <input name="term" placeholder="Term (Term 1/2/3)" required>
    <input name="mtc" type="number" placeholder="Math">
    <input name="eng" type="number" placeholder="English">
    <input name="lit1" type="number" placeholder="Lit1">
    <input name="lit2" type="number" placeholder="Lit2">
    <input name="re" type="number" placeholder="RE">
    <button type="submit">Add Midterm</button>
</form>
<div id="midtermLowerMessage"></div>
</div>

<div class="section">
<h2>View Midterm Results</h2>
<form id="viewMidtermLowerForm">
    <input name="result_class" placeholder="Class (P1-P3)" required>
    <button type="submit">View</button>
</form>
<div id="midtermLowerResultsTable"></div>
</div>

<div class="section">
<h2>EOT Result Entry (Lower)</h2>
<form id="eotLowerForm">
    <select name="class" id="classEOT" required>
        <option value="">Select Class</option>
        <option value="P1">P1</option>
        <option value="P2">P2</option>
        <option value="P3">P3</option>
    </select>
    <select name="student_id" id="studentEOT" required>
        <option value="">Select Student</option>
    </select>
    <input name="term" placeholder="Term (Term 1/2/3)" required>
    <input name="mtc" type="number" placeholder="Math">
    <input name="eng" type="number" placeholder="English">
    <input name="lit1" type="number" placeholder="Lit1">
    <input name="lit2" type="number" placeholder="Lit2">
    <input name="re" type="number" placeholder="RE">
    <button type="submit">Add EOT</button>
</form>
<div id="eotLowerMessage"></div>
</div>

<div class="section">
<h2>View EOT Results</h2>
<form id="viewEOTLowerForm">
    <input name="result_class" placeholder="Class (P1-P3)" required>
    <button type="submit">View</button>
</form>
<div id="eotLowerResultsTable"></div>
</div>

<script>
function handleForm(formId, messageId, action, resultId) {
    document.getElementById(formId).addEventListener("submit", function(e) {
        e.preventDefault();
        const formData = new FormData(this);
        formData.append("action", action);

        fetch("", { method: "POST", body: formData })
        .then(res => res.text())
        .then(msg => {
            if (messageId) document.getElementById(messageId).innerText = msg;
            if (resultId) document.getElementById(resultId).innerHTML = msg;
            if (msg.includes("✅")) this.reset();
        });
    });
}

handleForm("midtermLowerForm", "midtermLowerMessage", "add_midterm_lower");
handleForm("viewMidtermLowerForm", null, "view_midterm_lower", "midtermLowerResultsTable");
handleForm("eotLowerForm", "eotLowerMessage", "add_eot_lower");
handleForm("viewEOTLowerForm", null, "view_eot_lower", "eotLowerResultsTable");

function loadStudents(classSelectId, studentSelectId) {
    const classSelect = document.getElementById(classSelectId);
    const studentSelect = document.getElementById(studentSelectId);
    classSelect.addEventListener('change', () => {
        const formData = new FormData();
        formData.append('action', 'load_students_by_class');
        formData.append('class', classSelect.value);
        fetch('', { method: 'POST', body: formData })
            .then(res => res.json())
            .then(data => {
                studentSelect.innerHTML = '<option value="">Select Student</option>';
                data.forEach(student => {
                    const option = document.createElement('option');
                    option.value = student.STUDENT_ID;
                    option.textContent = `${student.STUDENT_NAME} (${student.STUDENT_ID})`;
                    studentSelect.appendChild(option);
                });
            });
    });
}

loadStudents("classMidterm", "studentMidterm");
loadStudents("classEOT", "studentEOT");
</script>
</body>
</html>
