/*
    Funktionen fuer die Kategorienauswahl kategorien.div.php.
*/

// Zeigt oder versteckt die Kategorien der Gruppe.
function zeigeKatGrpExp(grpId, zeige) {
    var grpExp = document.getElementById("katgrpexp_" + grpId);
    var grpBtn = document.getElementById("katgrpbtn_" + grpId);
    var grpDiv = document.getElementById("katgrpdiv_" + grpId);

    if (zeige) {
        grpExp.value = grpId;
        grpBtn.value = "-";
        grpDiv.style.display = "block";
    } else {
        grpExp.value = "";
        grpBtn.value = "+";
        grpDiv.style.display = "none";
    }
}

// Kehrt die Sichtbarkeit der Kategorien der Gruppe um.
// Wird von dem Element zum auf/zuklappen aufgerufen.
function auswahlKatGrpExp(grpId) {
    var grpExp = document.getElementById("katgrpexp_" + grpId);
    zeigeKatGrpExp(grpId, grpExp.value.length == 0);
}

// Kehrt die Auswahl einer Gruppe um und setzt die Kategorien entsprechend.
// Wird von der Checkbox fuer die Gruppe aufgerufen.
function auswahlKatGrpCB(grpId) {
    var grpCB = document.getElementById("katgrpcb_" + grpId);
    var katCBs = document.getElementsByName("kategorie[]");
    zeigeKatGrpExp(grpId, grpCB.checked);
    for (var idx = 0; idx < katCBs.length; ++idx) {
        if (katCBs[idx].id == "katcb_" + grpId + "_" + katCBs[idx].value) {
            katCBs[idx].checked = grpCB.checked;
        }
    }
}

// Passt notfalls die Auswahl der Gruppe an.
// Wird von der Checkbox fuer die Kategorie aufgerufen.
function auswahlKatCB(grpId, katId) {
    var grpCB = document.getElementById("katgrpcb_" + grpId);
    var katCBs = document.getElementsByName("kategorie[]");

    var checked = false;
    var unchecked = true;
    for (var idx = 0; idx < katCBs.length; ++idx) {
        if (katCBs[idx].id == "katcb_" + grpId + "_" + katCBs[idx].value) {
            if (katCBs[idx].checked) {
                checked = true;
            } else {
                unchecked = true;
            }
        }
    }

    grpCB.checked = checked;
}


