function hidepassed() {
    var anchor = document.getElementById("hidepassed");
    var items = document.getElementsByTagName('span');
    var newdisplay = '';

    // FIXME: handle multiple tests within a single test case!!!

    for (var pos = 0; pos < items.length; pos++) {
	var span = items[pos]
	var div = span.parentNode.parentNode;
	if (span.className.indexOf('pass') >= 0) {
	    if (newdisplay == '') {
		if (div.style.display == 'none') {
		    newdisplay = 'block';
		} else {
		    newdisplay = 'none';
		}
	    }
	    div.style.display = newdisplay;
	}
    }

    if (newdisplay == 'none') {
	anchor.innerHTML = "Show passed";
        anchor = document.getElementById("hidepartial");
	anchor.innerHTML = "Show partial";
    } else {
	anchor.innerHTML = "Hide passed";
        anchor = document.getElementById("hidepartial");
	anchor.innerHTML = "Hide partial";
    }
}

function hidefailed() {
    var anchor = document.getElementById("hidefailed");
    var items = document.getElementsByTagName('span');
    var newdisplay = '';

    // FIXME: handle multiple tests within a single test case!!!

    for (var pos = 0; pos < items.length; pos++) {
	var span = items[pos]
	var div = span.parentNode.parentNode;
	if (span.className.indexOf('fail') >= 0) {
	    if (newdisplay == '') {
		if (div.style.display == 'none') {
		    newdisplay = 'block';
		} else {
		    newdisplay = 'none';
		}
	    }
	    div.style.display = newdisplay;
	}
    }

    if (newdisplay == 'none') {
	anchor.innerHTML = "Show failed";
    } else {
	anchor.innerHTML = "Hide failed";
    }
}

function hidepartial() {
    var anchor = document.getElementById("hidepartial");
    var items = document.getElementsByTagName('span');
    var newdisplay = '';

    // FIXME: handle multiple tests within a single test case!!!

    for (var pos = 0; pos < items.length; pos++) {
	var span = items[pos]
	var div = span.parentNode.parentNode;
	if (span.className.indexOf('partial') >= 0) {
	    if (newdisplay == '') {
		if (div.style.display == 'none') {
		    newdisplay = 'block';
		} else {
		    newdisplay = 'none';
		}
	    }
	    div.style.display = newdisplay;
	}
    }

    if (newdisplay == 'none') {
	anchor.innerHTML = "Show partial";
    } else {
	anchor.innerHTML = "Hide partial";
    }
}

function hideprocessor() {
    var anchor = document.getElementById("hideproc");
    var div = document.getElementById('processor');
    div.style.display = 'none';
    console.log(div);
}

// HIDEOUS HACK

function hidepassedrows() {
    var anchor = document.getElementById("hidepassed");
    var items = document.getElementsByTagName('tr');
    var newdisplay = '';

    for (var pos = 0; pos < items.length; pos++) {
	var tr = items[pos]
	if (tr.className.indexOf('pass') >= 0) {
	    if (newdisplay == '') {
		if (tr.style.display == 'none') {
		    newdisplay = 'table-row';
		} else {
		    newdisplay = 'none';
		}
	    }
	    tr.style.display = newdisplay;
	}
    }

    if (newdisplay == 'none') {
	anchor.innerHTML = "Show passed";
    } else {
	anchor.innerHTML = "Hide passed";
    }
}
