<?php
session_start();
require_once('login_connection.php'); // Must define $conn for user verification

// Check session and user role
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'Class Teacher') {
    header('Location: login.php');
    exit();
}

$username = $_SESSION['username']; // grab username from session

// PDO connection
$pdo = new PDO("mysql:host=localhost;dbname=luziraco_LUZIRA", "luziraco_Staff", "Luzira@2025");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


// ---------------- PASSWORD CHANGE ----------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'change_password') {

    $current = trim($_POST['current_password']);
    $new = trim($_POST['new_password']);
    $confirm = trim($_POST['confirm_password']);

    if ($new !== $confirm) {
        exit("<span style='color:red;'>❌ New passwords do not match.</span>");
    }

    $stmt = $conn->prepare("SELECT PASSWORD FROM USERS WHERE TRIM(USER_NAME) = TRIM(?)");
    $stmt->execute([$username]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$user) {
        exit("<span style='color:red;'>❌ User not found.</span>");
    }

    if (trim($user['PASSWORD']) !== $current) {
        exit("<span style='color:red;'>❌ Current password is incorrect.</span>");
    }

    $update = $conn->prepare("UPDATE USERS SET PASSWORD = ? WHERE USER_NAME = ?");
    $success = $update->execute([$new, $username]);

    exit($success
        ? "<span style='color:green;'>✅ Password updated successfully.</span>"
        : "<span style='color:red;'>❌ Failed to update password.</span>"
    );
}


// Default term and current year
$currentYear = date('Y');
$term = $_GET['term'] ?? 'TERM 1'; // default TERM 1

// ---------------- SCHOOL ENROLMENT STATS ----------------
$maleCountStmt = $pdo->prepare("SELECT COUNT(*) FROM STUDENTS WHERE SEX = 'M'");
$maleCountStmt->execute([$term, $currentYear]);
$maleCount = $maleCountStmt->fetchColumn();

$femaleCountStmt = $pdo->prepare("SELECT COUNT(*) FROM STUDENTS WHERE SEX = 'F'");
$femaleCountStmt->execute([$term, $currentYear]);
$femaleCount = $femaleCountStmt->fetchColumn();

$totalCountStmt = $pdo->prepare("SELECT COUNT(*) FROM STUDENTS");
$totalCountStmt->execute([$term, $currentYear]);
$totalCount = $totalCountStmt->fetchColumn();

$userCount = $pdo->query("SELECT COUNT(*) FROM USERS")->fetchColumn();

$divisionCounts = [];
foreach (['1', '2', '3', '4', 'U', 'X'] as $div) {
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM RESULTS WHERE DIVISION = ? AND TERM = ? AND YEAR(RECORD_DATE) = ?");
    $stmt->execute([$div, $term, $currentYear]);
    $divisionCounts[$div] = $stmt->fetchColumn();
}

$classes = $pdo->query("SELECT DISTINCT CLASS FROM STUDENTS ORDER BY CLASS ASC")->fetchAll(PDO::FETCH_COLUMN);
$classColors = ['#e0f7fa', '#e8f5e9', '#fff8e1', '#fce4ec', '#f3e5f5', '#ede7f6'];


// ---------------- ADD STUDENT ----------------
if (isset($_POST['action']) && $_POST['action'] === 'add_student') {
    $stmt = $pdo->prepare("INSERT INTO STUDENTS (STUDENT_NAME, CLASS, SEX) VALUES (?, ?, ?)");
    $stmt->execute([$_POST['student_name'], $_POST['class'], $_POST['sex']]);
    exit('✅ Student added successfully');
}


// ---------------- ADD MIDTERM RESULT ----------------
if (isset($_POST['action']) && $_POST['action'] === 'add_midterm_result') {
    $student_id = $_POST['student_id'];
    $class = $_POST['class'];
    $term = $_POST['term'];
    $mtc = (int)$_POST['mtc'];
    $eng = (int)$_POST['eng'];
    $sst = (int)$_POST['sst'];
    $sci = (int)$_POST['sci'];

    // This assumes $username is set from session earlier
    $stmt = $pdo->prepare("
        INSERT INTO midterm_results (
            STUDENT_ID, STUDENT_NAME, CLASS, TERM, MTC, ENG, SST, SCI, RECORDED_BY
        ) VALUES (
            ?, (SELECT STUDENT_NAME FROM STUDENTS WHERE STUDENT_ID = ?), ?, ?, ?, ?, ?, ?, ?
        )
    ");

    $inserted = $stmt->execute([
        $student_id, $student_id, $class, $term,
        $mtc, $eng, $sst, $sci, $username
    ]);

    exit($inserted ? "✅ Midterm result added successfully." : "❌ Failed to add midterm result.");
}

// ---------------- VIEW MIDTERM RESULT ----------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_POST['action'] === 'view_midterm_results') {
    $stmt = $pdo->prepare("SELECT * FROM midterm_results WHERE CLASS = ? ORDER BY STUDENT_NAME ASC");
    $stmt->execute([$_POST['result_class']]);
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if (!empty($results)) {
        echo '<table border="1"><tr>';
        foreach (array_keys($results[0]) as $col) {
            echo '<th>' . htmlspecialchars($col) . '</th>';
        }
        echo '</tr>';
        foreach ($results as $row) {
            echo '<tr>';
            foreach ($row as $val) {
                echo '<td>' . htmlspecialchars($val) . '</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo "<p>No results found for the selected class.</p>";
    }
    exit;
}

// ---------------- ADD END-OF-TERM RESULT ----------------
if (isset($_POST['action']) && $_POST['action'] === 'add_final_result') {
    $student_id = $_POST['student_id'];
    $class = $_POST['class'];
    $term = $_POST['term'];
    $mtc = (int)$_POST['mtc'];
    $eng = (int)$_POST['eng'];
    $sst = (int)$_POST['sst'];
    $sci = (int)$_POST['sci'];

    $stmt = $pdo->prepare("
        INSERT INTO RESULTS (
            STUDENT_ID, STUDENT_NAME, CLASS, TERM, MTC, ENG, SST, SCI, RECORDED_BY
        ) VALUES (
            ?, (SELECT STUDENT_NAME FROM STUDENTS WHERE STUDENT_ID = ?), ?, ?, ?, ?, ?, ?, ?
        )
    ");

    $inserted = $stmt->execute([
        $student_id, $student_id, $class, $term,
        $mtc, $eng, $sst, $sci, $username
    ]);

    exit($inserted ? "✅ Final result added successfully." : "❌ Failed to add final result.");
}
// ---------------- VIEW END-OF-TERM RESULT ----------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_POST['action'] === 'view_eot_results') {
    $stmt = $pdo->prepare("SELECT * FROM RESULTS WHERE CLASS = ? ORDER BY STUDENT_NAME ASC");
    $stmt->execute([$_POST['result_class']]);
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if (!empty($results)) {
        echo '<table border="1"><tr>';
        foreach (array_keys($results[0]) as $col) {
            echo '<th>' . htmlspecialchars($col) . '</th>';
        }
        echo '</tr>';
        foreach ($results as $row) {
            echo '<tr>';
            foreach ($row as $val) {
                echo '<td>' . htmlspecialchars($val) . '</td>';
            }
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo "<p>No results found for the selected class.</p>";
    }
    exit;
}


// ---------------- FETCH STUDENTS BY CLASS ----------------
$studentsByClass = [];
$classes = ['P1','P2','P3','P4','P5','P6','P7'];
foreach ($classes as $class) {
    $stmt = $pdo->prepare("SELECT STUDENT_ID, STUDENT_NAME FROM STUDENTS WHERE CLASS = ? ORDER BY STUDENT_NAME ASC");
    $stmt->execute([$class]);
    $studentsByClass[$class] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// ---------------- VIEW STUDENTS BY CLASS ----------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_POST['action'] === 'view_students') {
    $stmt = $pdo->prepare("SELECT * FROM STUDENTS WHERE CLASS = ? ORDER BY STUDENT_NAME ASC");
    $stmt->execute([$_POST['view_class']]);
    $students = $stmt->fetchAll(PDO::FETCH_ASSOC);

    if ($students):
        echo '<table border="1"><tr><th>ID</th><th>Name</th><th>Class</th><th>Sex</th></tr>';
        foreach ($students as $row) {
            echo "<tr>
                    <td>{$row['STUDENT_ID']}</td>
                    <td>{$row['STUDENT_NAME']}</td>
                    <td>{$row['CLASS']}</td>
                    <td>{$row['SEX']}</td>
                </tr>";
        }
        echo '</table>';
    else:
        echo "<p>No students found in this class.</p>";
    endif;
    exit;
}

// ---------------- FETCH ALL STUDENTS ----------------
$students = $pdo->query("SELECT * FROM STUDENTS ORDER BY STUDENT_NAME ASC")->fetchAll(PDO::FETCH_ASSOC);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Admin Dashboard</title>
    <style>
        body {
            margin: 0; font-family: Arial, sans-serif; background: #f4f4f4;
        }

 #passwordModal {
            display: none;
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0;
            background: rgba(0, 0, 0, 0.6);
            z-index: 999;
        }
        #passwordModal .modal-content {
            background: #fff;
            margin: 10% auto;
            padding: 20px;
            width: 400px;
            border-radius: 8px;
            font-family: Arial;
        }
        #passwordModal input {
            width: 100%;
            margin-bottom: 10px;
            padding: 8px;
        }
        #passwordModal button {
            padding: 10px;
            border: none;
            border-radius: 5px;
        }
        #passwordModal button[type="submit"] {
            background: green;
            color: white;
        }
        #passwordModal .cancel-btn {
            background: gray;
            color: white;
            margin-left: 10px;
        }

        .sidebar {
    position: fixed;
    left: 0;
    top: 0;
    width: 220px;
    height: 100vh; /* Full viewport height */
    background-color: #101e2a;
    color: white;
    overflow-y: auto;
    padding: 20px 10px;
    font-family: Arial, sans-serif;
    border-right: 1px solid #ccc;
}

/* Optional: style the scrollbar */
.sidebar::-webkit-scrollbar {
    width: 6px;
}

.sidebar::-webkit-scrollbar-thumb {
    background-color: #555;
    border-radius: 10px;
}

.sidebar::-webkit-scrollbar-thumb:hover {
    background-color: #888;
}

        .sidebar h2 {
            text-align: center; margin-bottom: 30px;
        }
        .sidebar ul { list-style: none; padding: 0; }
        .sidebar ul li {
            padding: 12px; margin-bottom: 10px; background: #34495e; cursor: pointer; border-radius: 4px;
        }
        .sidebar ul li:hover {
            background: #1abc9c;
        }
        .main-content {
            margin-left: 240px; padding: 20px;
        }
        .section { display: none; }
        .active { display: block; }
        .card {
            display: inline-block; background: #fff; border-radius: 8px; padding: 20px; margin: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1);
            width: 250px; text-align: center;
        }
        .card h3 { margin: 0; font-size: 18px; color: #333; }
        .card p { font-size: 28px; color: #27ae60; margin: 10px 0 0; }
        input, select, button {
            padding: 10px; width: 100%; margin-bottom: 10px; border-radius: 4px; border: 1px solid #ccc;
        }
        button { background: #2ecc71; color: white; border: none; cursor: pointer; }
        button:hover { background: #27ae60; }
    </style>
    <style>
        body { font-family: Arial; padding: 20px; background-color: #f4f4f4; }
        h2 { text-align: center; margin-top: 30px; padding: 10px; background: #007BFF; color: white; border-radius: 5px; }
h3 { text-align: center; color: white; background: #007BFF; }
        .container { display: flex; gap: 20px; flex-wrap: wrap; }
        .column { background: #fff; padding: 15px; border-radius: 10px; flex: 1 1 45%; box-shadow: 0 0 10px rgba(0,0,0,0.1); margin-bottom: 20px; }
        form { display: flex; flex-direction: column; gap: 10px; }
        input, select, button { padding: 8px; width: 100%; }
        table { width: 100%; border-collapse: collapse; margin-top: 10px; }
        th, td { border: 1px solid #ccc; padding: 8px; text-align: center; }
        th { background: #007BFF; color: white; }
        tr:hover { background-color: #f1f1f1; }
        footer { text-align: center; margin-top: 30px; padding: 10px; background: #007BFF; color: white; border-radius: 5px; }
        .actions { margin-top: 20px; }
    </style>
    <style>
    .dashboard-section { margin-bottom: 40px; padding: 20px; border-radius: 10px; }
    .section-title { font-size: 24px; font-weight: bold; margin-bottom: 20px; }
    .card-grid-3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
    .card { border-radius: 10px; padding: 16px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); }
    .section-enrollment { background-color: #f0f4f8; }
    .section-class-summary { background-color: #fff3e0; }
    .section-midterm { background-color: #e1f5fe; }
    .section-endterm { background-color: #fce4ec; }

    header {
            background: #007BFF;
            color: white;
            padding: 0px;
            text-align: center;
            margin-top: 0px;
            margin-top: 10px;
        }

    footer {
            background: #007BFF;
            color: white;
            padding: 15px;
            text-align: center;
        }
        .footer-note a {
            color: gold;
        }
</style>
</head>
<body>
    <header>
    <h2>LUZIRA CoU PS RESULTS MANAGEMENT SYSTEM</h2>
</header>

<div class="sidebar">
    <h2>DASHBOARD</h2>
    <ul>
        <li onclick="showSection('dashboard')">🏠 HOME</li>
        <li onclick="showSection('enroll')">📋 ENROLL NEW STUDENT</li>
        <li onclick="showSection('viewClass')">👀 VIEW STUDENTS BY CLASS</li>
        <li onclick="showSection('midterm')">📝 RECORD MIDTERM RESULTS</li>
        <li onclick="showSection('viewMidterm')">📊 VIEW MIDTERM RESULTS</li>
        <li onclick="showSection('endterm')">📘 RECORD END OF TERM RESULTS</li>
        <li onclick="showSection('viewEndterm')">🧾 VIEW E.O.T RESULTS</li>
        <li onclick="showSection('analysis')">📈 RESULT ANALYSIS</li>
        <li onclick="showSection('financials')">💰 STUDENT FINANCIALS</li>
    </ul>
</div>

<div class="main-content">
    <div style="text-align: right; padding: 10px; font-family: Arial;">
    Welcome, <strong><?= htmlspecialchars($username) ?> 🎉</strong> |
    <a href="logout.php" style="color: #007BFF; text-decoration: none;">Logout</a> | 
    <a href="#" onclick="openPasswordModal()">Change Password</a>
</div>

<div id="dashboard" class="section active">
<!-- TERM FILTER FORM -->
<form method="GET" style="margin-bottom: 20px;">
    <label for="term">Select Term:</label>
    <select name="term" id="term" onchange="this.form.submit()">
        <option value="TERM 1" <?= $term === 'TERM 1' ? 'selected' : '' ?>>TERM 1</option>
        <option value="TERM 2" <?= $term === 'TERM 2' ? 'selected' : '' ?>>TERM 2</option>
        <option value="TERM 3" <?= $term === 'TERM 3' ? 'selected' : '' ?>>TERM 3</option>
    </select>
</form>
    

    <!-- 1. SCHOOL ENROLMENT SUMMARY -->
    <div class="dashboard-section section-enrollment">
        <div class="section-title">📊 School Enrolment Summary (<?= htmlspecialchars($term) ?> - <?= $currentYear ?>)</div>
        <div class="card-grid-3">
            <div class="card"><h3>Total Males</h3><p><?= $maleCount; ?></p></div>
            <div class="card"><h3>Total Females</h3><p><?= $femaleCount; ?></p></div>
            <div class="card"><h3>Total Enrollment</h3><p><?= $totalCount; ?></p></div>
            
            <?php foreach ($divisionCounts as $div => $count): ?>
                
            <?php endforeach; ?>
        </div>
    </div>

    <!-- 2. ENROLLMENT SUMMARY PER CLASS -->
    <div class="dashboard-section section-class-summary">
        <div class="section-title">🏫 Enrollment Summary Per Class (<?= htmlspecialchars($term) ?>)</div>
        <div class="card-grid-3">
        <?php
            $colorIndex = 0;
            foreach ($classes as $class):
                $stmt = $pdo->prepare("SELECT SEX, COUNT(*) as count FROM STUDENTS GROUP BY SEX");
                $stmt->execute([$class, $term, $currentYear]);
                $data = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
                $male = $data['M'] ?? 0;
                $female = $data['F'] ?? 0;
                $total = $male + $female;
                $bgColor = $classColors[$colorIndex % count($classColors)];
                $colorIndex++;
        ?>
            <div class="card" style="background-color: <?= $bgColor ?>;">
                <h3>Class <?= htmlspecialchars($class) ?></h3>
                <p>♂ Boys: <?= $male ?></p>
                <p>♀ Girls: <?= $female ?></p>
                <p>👥 Total: <?= $total ?></p>
            </div>
        <?php endforeach; ?>
        </div>
    </div>

    <!-- 3. MIDTERM RESULTS ANALYSIS -->
    <div class="dashboard-section section-midterm">
        <div class="section-title">🧪 Midterm Results Analysis (<?= htmlspecialchars($term) ?>)</div>
        <div class="card-grid-3">
        <?php
            foreach ($classes as $class):
                $stmt = $pdo->prepare("SELECT DIVISION, COUNT(*) as count FROM midterm_results WHERE CLASS = ? AND TERM = ? AND YEAR(RECORD_DATE) = ? GROUP BY DIVISION");
                $stmt->execute([$class, $term, $currentYear]);
                $results = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
        ?>
            <div class="card">
                <h3>Class <?= htmlspecialchars($class) ?></h3>
                <?php foreach (['1','2','3','4','U','X'] as $div): ?>
                    <p>Division <?= $div ?>: <?= $results[$div] ?? 0 ?></p>
                <?php endforeach; ?>
            </div>
        <?php endforeach; ?>
        </div>
    </div>

    <!-- 4. END OF TERM RESULTS ANALYSIS -->
    <div class="dashboard-section section-endterm">
        <div class="section-title">📚 End of Term Results Analysis (<?= htmlspecialchars($term) ?>)</div>
        <div class="card-grid-3">
        <?php
            foreach ($classes as $class):
                $stmt = $pdo->prepare("SELECT DIVISION, COUNT(*) as count FROM RESULTS WHERE CLASS = ? AND TERM = ? AND YEAR(RECORD_DATE) = ? GROUP BY DIVISION");
                $stmt->execute([$class, $term, $currentYear]);
                $results = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
        ?>
            <div class="card">
                <h3>Class <?= htmlspecialchars($class) ?></h3>
                <?php foreach (['1','2','3','4','U','X'] as $div): ?>
                    <p>Division <?= $div ?>: <?= $results[$div] ?? 0 ?></p>
                <?php endforeach; ?>
            </div>
        <?php endforeach; ?>
        </div>
    </div>
</div>

    <div id="enroll" class="section">
        <h2>Enroll New Student</h2>
        <form id="addStudentForm" id="enrollForm" >
            <input type="text" name="student_name" placeholder="Student Name" required>
            <select name="class" required>
                <option value="">Select Class</option>
                <?php foreach ($classes as $class): ?>
                    <option value="<?= $class ?>"><?= $class ?></option>
                <?php endforeach; ?>
            </select>
            <select name="sex" required>
                <option value="">Sex</option>
                <option value="M">Male</option>
                <option value="F">Female</option>
            </select>
            <button type="submit">Add Student</button>
        </form>
        <div id="enrollMessage"></div>
    </div>

    <!-- Add your other sections (viewClass, midterm, viewMidterm, endterm, etc.) here -->
<div id="viewClass" class="section">
        <h2>View Students</h2>
<form id="viewclassForm">
    <select name="view_class" required>
        <option value="">Select Class</option>
        <?php foreach ($classes as $class): ?>
            <option value="<?= $class ?>"><?= $class ?></option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Details</button>
</form>

<div id="classStudentsTable"></div>

<script>
document.getElementById("viewclassForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    formData.append("action", "view_students");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(html => {
        document.getElementById("classStudentsTable").innerHTML = html;
    });
});
</script>
    </div>






    <div id="midterm" class="section"> 
    <h3>📘Record Midterm Result</h3>

    <form id="midtermForm">
        <select name="class" id="midtermClassSelect" onchange="filterMidtermStudents()" required>
            <option value="">Select Class</option>
            <?php foreach ($classes as $class): ?>
                <option value="<?= htmlspecialchars($class) ?>"><?= htmlspecialchars($class) ?></option>
            <?php endforeach; ?>
        </select>

        <select name="student_id" id="midtermStudentSelect" required>
            <option value="">Select Student</option>
            <?php foreach ($students as $student): ?>
                <option value="<?= $student['STUDENT_ID'] ?>" data-class="<?= $student['CLASS'] ?>">
                    <?= $student['STUDENT_NAME'] ?> (<?= $student['STUDENT_ID'] ?>)
                </option>
            <?php endforeach; ?>
        </select>

        <select name="term" required>
            <option value="">Select Term</option>
            <option value="Term 1">Term 1</option>
            <option value="Term 2">Term 2</option>
            <option value="Term 3">Term 3</option>
        </select>

        <input type="number" name="mtc" placeholder="Math Marks" required>
        <input type="number" name="eng" placeholder="English Marks" required>
        <input type="number" name="sst" placeholder="SST Marks" required>
        <input type="number" name="sci" placeholder="Science Marks" required>

        <button type="submit">➕ Add Midterm Result</button>
    </form>

    <div id="midtermMessage"></div>
</div>
<script>
document.getElementById("midtermForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const form = this;
    const formData = new FormData(form);
    formData.append("action", "add_midterm_result");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(msg => {
        document.getElementById("midtermMessage").innerText = msg;

        // Clear form on success
        if (msg.includes("✅")) {
            form.reset();
            document.getElementById("midtermStudentSelect").value = "";
        }
    });
});
</script>

<script>
function filterMidtermStudents() {
    const selectedClass = document.getElementById("midtermClassSelect").value;
    const studentSelect = document.getElementById("midtermStudentSelect");

    for (let option of studentSelect.options) {
        if (option.value === "") {
            option.hidden = false;
            continue;
        }
        option.hidden = option.getAttribute("data-class") !== selectedClass;
    }

    studentSelect.value = "";
}
</script>




    <div id="viewMidterm" class="section">
        <h2>View Midterm Results</h2>
<form id="viewMidtermForm">
    <select name="result_class" required>
        <option value="">Select Class</option>
        <?php foreach ($classes as $class): ?>
            <option value="<?= $class ?>"><?= $class ?></option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Details</button>
</form>

<div id="midtermResultsTable"></div>

<script>
document.getElementById("viewMidtermForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    formData.append("action", "view_midterm_results");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(html => {
        document.getElementById("midtermResultsTable").innerHTML = html;
    });
});
</script>
    </div>



<div id="endterm" class="section">
    <h3>📕Record End Of Term Result</h3>

    <form id="finalResultsForm">

    <select name="class" id="finalClassSelect" onchange="filterFinalStudents()" required>
        <option value="">Select Class</option>
        <?php foreach ($classes as $class): ?>
            <option value="<?= htmlspecialchars($class) ?>"><?= htmlspecialchars($class) ?></option>
        <?php endforeach; ?>
    </select>

    <select name="student_id" id="finalStudentSelect" required>
        <option value="">Select Student</option>
        <?php foreach ($students as $student): ?>
            <option value="<?= $student['STUDENT_ID'] ?>" data-class="<?= $student['CLASS'] ?>">
                <?= $student['STUDENT_NAME'] ?> (<?= $student['STUDENT_ID'] ?>)
            </option>
        <?php endforeach; ?>
    </select>

    <select name="term" required>
        <option value="">Select Term</option>
        <option value="Term 1">Term 1</option>
        <option value="Term 2">Term 2</option>
        <option value="Term 3">Term 3</option>
    </select>

    <input type="number" name="mtc" placeholder="Math Marks" required>
    <input type="number" name="eng" placeholder="English Marks" required>
    <input type="number" name="sst" placeholder="SST Marks" required>
    <input type="number" name="sci" placeholder="Science Marks" required>

    <button type="submit">➕ Add EOT Result</button>
</form>
<div id="finalResultMessage"></div>
</div>


<script>
    // EOT submission
document.getElementById("finalResultsForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const form = this;
    const formData = new FormData(form);
    formData.append("action", "add_final_result");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(msg => {
        document.getElementById("finalResultMessage").innerText = msg;

        // Clear form after successful submission
        if (msg.includes("✅")) {
            form.reset();
            document.getElementById("finalStudentSelect").value = "";
        }
    });
});
</script>

<script>
    // ✅ Optional JS for Student/Class Filtering
function filterFinalStudents() {
    const selectedClass = document.getElementById("finalClassSelect").value;
    const studentSelect = document.getElementById("finalStudentSelect");

    for (let option of studentSelect.options) {
        if (option.value === "") {
            option.hidden = false;
            continue;
        }
        option.hidden = option.getAttribute("data-class") !== selectedClass;
    }

    studentSelect.value = "";
}
</script>



    <div id="viewEndterm" class="section">
        <h2>View E.O.T Results</h2>
<form id="viewEOTForm">
    <select name="result_class" required>
        <option value="">Select Class</option>
        <?php foreach ($classes as $class): ?>
            <option value="<?= $class ?>"><?= $class ?></option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Details</button>
</form>

<div id="eotResultsTable"></div>

<script>
document.getElementById("viewEOTForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    formData.append("action", "view_eot_results");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(html => {
        document.getElementById("eotResultsTable").innerHTML = html;
    });
});
</script>
    </div>


    <div id="reportCards" class="section">
        <div class="column">
        <div class="actions">
            <h3>Download Results Or Reports</h3>
    <form id="downloadAllForm" action="download_all_results.php" method="post" target="_blank">
        <select name="CLASS" required>
            <option value="">SELECT CLASS</option>
            <?php foreach ($CLASSES as $CLASS): ?>
                <option value="<?= htmlspecialchars($CLASS['CLASS']) ?>">
                    <?= htmlspecialchars($CLASS['CLASS']) ?>
                </option>
            <?php endforeach; ?>
        </select>
        <button type="submit">Download End Of Term Results (PDF)</button>
    </form>
</div>
 <div class="actions">
    <form id="downloadAllForm" action="download_midterm_results.php" method="post" target="_blank">
        <select name="CLASS" required>
            <option value="">SELECT CLASS</option>
            <?php foreach ($CLASSES as $CLASS): ?>
                <option value="<?= htmlspecialchars($CLASS['CLASS']) ?>">
                    <?= htmlspecialchars($CLASS['CLASS']) ?>
                </option>
            <?php endforeach; ?>
        </select>
        <button type="submit">Download midterm Results (PDF)</button>
    </form>
</div>
            <form id="individualReportForm" action="generate_individual_report.php" method="post" target="_blank">
                <select name="report_student_id" required>
                    <option value="">Select Student</option>
                    <?php foreach ($students as $student): ?>
                        <option value="<?= $student['STUDENT_ID'] ?>">
                            <?= $student['STUDENT_NAME'] ?> (<?= $student['STUDENT_ID'] ?>)
                        </option>
                    <?php endforeach; ?>
                </select>
                <button type="submit">Generate Individual Report</button>
            </form>
        <form id="classReportForm" action="generate_class_report.php" method="post" target="_blank">
    <select name="report_class" required>
        <option value="">Select Class</option>
        <?php
        $CLASSES = $pdo->query("SELECT DISTINCT CLASS FROM STUDENTS ORDER BY CLASS")->fetchAll(PDO::FETCH_ASSOC);
        foreach ($CLASSES as $CLASS):
        ?>
            <option value="<?= htmlspecialchars($CLASS['CLASS']) ?>">
                <?= htmlspecialchars($CLASS['CLASS']) ?>
            </option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Generate Class Report</button>
</form>
    </div>
</div>
    </div></div>
        <div id="enrollMessage"></div>
    </div>



    <div id="analysis" class="section">
        
        <div id="enrollMessage"></div>
    </div>



    <div id="financials" class="section">
       
    </div>



<script>
    function showSection(id) {
        document.querySelectorAll('.section').forEach(s => s.classList.remove('active'));
        document.getElementById(id).classList.add('active');
    }

    document.getElementById('enrollForm').addEventListener('submit', function(e) {
        e.preventDefault();
        const formData = new FormData(this);
        formData.append('action', 'add_student');

        fetch('', {
            method: 'POST',
            body: formData
        }).then(res => res.text()).then(response => {
            document.getElementById('enrollMessage').textContent = response;
            this.reset();
        });
    });
</script>
<script>
    const studentsByClass = <?= json_encode($studentsByClass) ?>;
    function filterStudents() {
        const classSelected = document.getElementById("classSelect").value;
        const studentDropdown = document.getElementById("studentSelect");
        studentDropdown.innerHTML = '<option value="">Select Student</option>';
        if (studentsByClass[classSelected]) {
            studentsByClass[classSelected].forEach(s => {
                let opt = document.createElement("option");
                opt.value = s.STUDENT_ID;
                opt.textContent = `${s.STUDENT_NAME} (${s.STUDENT_ID})`;
                studentDropdown.appendChild(opt);
            });
        }
    }
// ADD STUDENT FORM
document.getElementById("addStudentForm").addEventListener("submit", function(e) {
    e.preventDefault();
    const form = this;
    const formData = new FormData(form);
    formData.append("action", "add_student");

    fetch("", {
        method: "POST",
        body: formData
    })
    .then(res => res.text())
    .then(msg => {
        // Display message
        document.getElementById("enrollMessage").innerHTML = `<div style="color: green;">${msg}</div>`;
        
        // Reset the form fields
        form.reset();

        // Optional: Focus back on student name input
        form.querySelector('input[name="student_name"]').focus();
    });
});
</script>

<!-- Password Change Modal -->
<div id="passwordModal" style="display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.6); z-index:999; justify-content:center; align-items:center;">
  <div style="background:#fff; padding:20px; width:90%; max-width:400px; border-radius:8px; font-family:Arial; box-shadow:0 5px 15px rgba(0,0,0,0.3); position:relative;">
    <h3 style="margin-top:0;">🔒 Change Password</h3>
    <form id="changePasswordForm">
      <label for="current_password">Current Password:</label><br>
      <input type="password" id="current_password" name="current_password" required style="width:100%; margin-bottom:10px; padding:8px;"><br>

      <label for="new_password">New Password:</label><br>
      <input type="password" id="new_password" name="new_password" required style="width:100%; margin-bottom:10px; padding:8px;"><br>

      <label for="confirm_password">Confirm New Password:</label><br>
      <input type="password" id="confirm_password" name="confirm_password" required style="width:100%; margin-bottom:10px; padding:8px;"><br>

      <input type="hidden" name="action" value="change_password">

      <button type="submit" style="background:green; color:white; padding:10px 20px; border:none; border-radius:5px; cursor:pointer;">Update</button>
      <button type="button" onclick="closePasswordModal()" style="margin-left:10px; padding:10px 20px; border:1px solid #ccc; background:#f0f0f0; border-radius:5px; cursor:pointer;">Cancel</button>
    </form>

    <div id="passwordMsg" style="margin-top:15px; font-size:14px;"></div>
  </div>
</div>



<!-- Password Change Modal -->
<div id="passwordModal">
  <div class="modal-content">
    <h3>🔒 Change Password</h3>
    <form id="changePasswordForm">
      <label>Current Password:</label><br>
      <input type="password" name="current_password" required><br>
      <label>New Password:</label><br>
      <input type="password" name="new_password" required><br>
      <label>Confirm New Password:</label><br>
      <input type="password" name="confirm_password" required><br>
      <input type="hidden" name="action" value="change_password">
      <button type="submit">Update</button>
      <button type="button" class="cancel-btn" onclick="closePasswordModal()">Cancel</button>
    </form>
    <div id="passwordMsg" style="margin-top:10px;"></div>
  </div>
</div>

<!-- JavaScript -->
<script>
function openPasswordModal() {
    document.getElementById('passwordModal').style.display = 'block';
}
function closePasswordModal() {
    document.getElementById('passwordModal').style.display = 'none';
}

document.getElementById('changePasswordForm').addEventListener('submit', function(e) {
    e.preventDefault();
    const form = e.target;
    const formData = new FormData(form);

    fetch(location.href, {
        method: 'POST',
        body: formData
    })
    .then(res => res.text())
    .then(data => {
        document.getElementById('passwordMsg').innerHTML = data;
        if (data.includes('✅')) form.reset();
    })
    .catch(() => {
        document.getElementById('passwordMsg').innerHTML = "<span style='color:red;'>❌ Something went wrong.</span>";
    });
});
</script>

<footer>
    &copy; <?= date('Y') ?> Luzira COU Primary School - Results Portal
    <div class="footer-note">
        <a href="https://www.ristandardshop.com">Designed, Developed & Powered By Ri Standard Services Co. Ltd</a>
    </div>
</footer>
</body>
</html>
