DomJudge Collapsible run in/output

Collapsible run in- and output on DomJudge submissions

// ==UserScript==
// @name         DomJudge Collapsible run in/output
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Collapsible run in- and output on DomJudge submissions
// @author       Sten
// @match        https://domjudge.cs.uu.nl/dj/ds/team/submission_details.php?id=*
// @grant        none
// ==/UserScript==

(function() {
    var expandBtn = document.createElement("a");
    expandBtn.innerText = "[+]";
    expandBtn.setAttribute("href", "#");

    $(".output_text").add($("div > .output_text").parent()).css("display", "none");

    $(".output_text").add($("div > .output_text").parent()).prev("h5").each((index, elem) => {
    elem.innerText += " ";
    let newExpandBtn = expandBtn.cloneNode(true);
		newExpandBtn.addEventListener("click", function(event){
            event.preventDefault();
            let nextElem = event.target.parentElement.nextElementSibling;
			      if (nextElem.tagName.toLowerCase() === "div") nextElem = nextElem.nextElementSibling;
            let nextVis = nextElem.style.display == "";
            event.target.innerText = nextVis ? "[+]" : "[-]";
            nextElem.style.display = nextVis ? "none" : "";
		});
        elem.appendChild(newExpandBtn);
    });
})();