var state = new Array(); // holds the state of every block

var block = new Array(); // holds state for multioption blocks, used by toggle_single()

// define some blocks
var boxes   = new Array();

// set initial states
state['uitgebreide_opties']             = true;
state['uitgebreide_opties_link']        = false;
state['uitgebreide_opties_hide_link']   = false;
state['options']                        = false;

function toggle( id ) {
    // get element
    elem    = document.getElementById( id );

    // show or hide block and switch state
    if( state[id] ) {
        elem.style.display  = "none";
        state[id]           = false;
    } else {
        elem.style.display = "block";
        state[id]           = true;
    }
}

function toggle_single( id, toggle_name ) {
    // get element
    elem    = document.getElementById( id );

    // loop through linked checkboxes
    // change state to unhidden if state is all false
    // change state to hidden if only one is true
    var state_false = new Array();
    var state_true  = new Array();
    var state_false_count   = 0;
    var state_true_count    = 0;

    for( name in block[id] ) {
        // count false and true states
        if( block[id][name] ) {
            state_true_count++;
            state_true.push( name );
        } else {
            state_false_count++;
            state_false.push( name );
        }

        // update state per checkbox
        if( toggle_name == name ) {
            if( block[id][name] ) {
                state_false_count++;
                state_true_count--;
                block[id][name]     = false;
            } else {
                state_false_count--;
                state_true_count++;
                block[id][name]     = true;
            }
        }

    }

    if( state_false_count < 3 ) {
        elem.style.display  = "block";
    } else {
        elem.style.display  = "none"
    }
}
