document.addEventListener("DOMContentLoaded", function () { var searchBar = document.getElementById("search-bar"); var degreeFilter = document.getElementById("degree-filter"); var graduationDateFilter = document.getElementById("graduation-date-filter"); var filterButton = document.getElementById("filter-button"); var alumniResults = document.getElementById("alumni-results"); var alumniBlocks = Array.from(document.querySelectorAll(".alumni-block")); // ÇÐÀ§ ÃßÃâ (»õ ¾ç½Ä: .alumni-degree-badge, ±âÁ¸ ¾ç½Ä: .details) function getDegree(block) { var badge = block.querySelector(".alumni-degree-badge"); if (badge) return badge.textContent.trim(); var details = block.querySelector(".details"); if (details) { if (details.textContent.indexOf("PhD") !== -1) return "PhD"; if (details.textContent.indexOf("M.S.") !== -1) return "M.S."; } return ""; } // Á¹¾÷³âµµ ÃßÃâ function getYear(block) { var el = block.querySelector(".graduation-year"); if (!el) return ""; var match = el.textContent.match(/(\d{4})/); return match ? match[1] : ""; } // ÇÐÀ§ Ä«¿îÆ® ¾÷µ¥ÀÌÆ® function updateDegreeCounts() { var degreeCounts = { PhD: 0, "M.S.": 0 }; var total = 0; alumniBlocks.forEach(function (block) { total++; var deg = getDegree(block); if (deg === "PhD") degreeCounts.PhD++; else if (deg === "M.S.") degreeCounts["M.S."]++; }); degreeFilter.innerHTML = '' + '' + ''; } // ¿¬µµº° ±×·ìÇÎ + ·»´õ¸µ function renderAlumniWithDividers(filteredBlocks) { if (!filteredBlocks) filteredBlocks = alumniBlocks; var grouped = {}; filteredBlocks.forEach(function (block) { var year = getYear(block) || "Unknown"; if (!grouped[year]) grouped[year] = []; grouped[year].push(block); }); var sortedYears = Object.keys(grouped).sort(function (a, b) { return b - a; }); alumniResults.innerHTML = ""; sortedYears.forEach(function (year) { var divider = document.createElement("div"); divider.className = "year-divider"; divider.textContent = "Graduation Year: " + year; alumniResults.appendChild(divider); grouped[year].forEach(function (block) { alumniResults.appendChild(block); }); }); } // ÇÊÅÍ Àû¿ë function applyFilters() { var searchValue = searchBar.value.toLowerCase(); var degreeValue = degreeFilter.value; var yearValue = graduationDateFilter.value.trim(); var filtered = alumniBlocks.filter(function (block) { // À̸§ var nameEl = block.querySelector(".alumni-name"); var name = nameEl ? nameEl.textContent.toLowerCase() : ""; // ÇÐÀ§ var degree = getDegree(block); // Á¹¾÷³âµµ var gradYear = getYear(block); // Àüü ÅØ½ºÆ® (°Ë»ö¿ë) var fullText = block.textContent.toLowerCase(); var matchName = !searchValue || name.indexOf(searchValue) !== -1 || fullText.indexOf(searchValue) !== -1; var matchDegree = !degreeValue || degree === degreeValue; var matchYear = !yearValue || gradYear === yearValue; return matchName && matchDegree && matchYear; }); renderAlumniWithDividers(filtered); // Ä«¿îÆ® ¾÷µ¥ÀÌÆ® var allOption = degreeFilter.querySelector('option[value=""]'); if (allOption) { allOption.textContent = "All Degrees (" + filtered.length + "¸í)"; } } // À̺¥Æ® ¹ÙÀεù filterButton.addEventListener("click", applyFilters); searchBar.addEventListener("input", applyFilters); degreeFilter.addEventListener("change", applyFilters); graduationDateFilter.addEventListener("input", applyFilters); // ÃʱâÈ­ updateDegreeCounts(); renderAlumniWithDividers(); });