function handleThreeStateCheckbox(cb) {
    const states = ['', 'T', 'F'];
    let currentStateIndex;

    if ($(cb).hasClass('neutral-cb')) {
        currentStateIndex = 0;
    } else if ($(cb).hasClass('true-cb')) {
        currentStateIndex = 1;
    } else {
        currentStateIndex = 2;
    }

    currentStateIndex = (currentStateIndex + 1) % states.length;

    $(cb).removeClass('neutral-cb true-cb false-cb');
    if (states[currentStateIndex] === '') {
        $(cb).addClass('neutral-cb');
        $(cb).prop('checked', false);
    } else if (states[currentStateIndex] === 'T') {
        $(cb).addClass('true-cb');
    } else {
        $(cb).addClass('false-cb');
    }

    $(cb).val(states[currentStateIndex]);
}