const topBtnsUIUtils = {

    handleGroupByGroupClickAsync: async function handleGroupByGroupClickAsync(elemId) {
        // handle a click in an option button in the "group by" group
        // elemId: the DOM element id of the clicked input element

        const logHeader = 'topBtnsUIUtils.handleGroupByGroupClickAsync: ';
        log(logHeader + 'enter');
        log(logHeader + 'elemId=' + elemId);

        switch (elemId) {
            case "inpOptionAlpha":

                displayByUtils.handleAlphaBtnClick();

                break;

            case "inpOptionGroup":

                await displayByUtils.handleGroupBtnClickAsync();

                break;
        }

        log(logHeader + 'leave');
    },

    showHideTopBtnsHRByFlag: function showHideTopBtnsHRByFlag(flag) {
        log('showHideTopBtnsHRByFlag: enter');
        log('showHideTopBtnsHRByFlag: flag' + flag);

        const hrVisible = ($('#hrTopBtns').css('display') === 'block');
        // is the HR visible?

        log('showHIdeTopBtnsHRByFlag: hrVisible' + hrVisible);

        if (flag) {
            if (!hrVisible) {
                $('#hrTopBtns').css('display', 'block');
                // if not visible, show it
            }
        }
        else {
            if (hrVisible) {
                $('#hrTopBtns').css('display', 'none');
                // if visible, hide it
            }
        }

        log('showHideTopBtnsHRByFlag: leave');
    },

    showHideTopBtnsHR: function showHideTopBtnsHR() {
        log('showHideTopBtnsHR: enter');

        const findWhichVisible = ($('#divFindWhichBtnsNav').css('display') !== 'none');
        // are the Find Which buttons visible?

        const groupByVisible = ($('#divColFindWhichGroupBy').css('display') !== 'none');
        // are the Group By buttons visible?

        log('showHideTopBtnsHR: findWhichVisible=' + findWhichVisible);
        log('showHideTopBtnsHR: groupByVisible=' + groupByVisible);

        const showHR = (findWhichVisible || groupByVisible);
        // if either button group is visible, show the HR, otherwise hide it

        log('showHideTopBtnsHR: showHR=' + showHR);

        this.showHideTopBtnsHRByFlag(showHR);
        // show or hide the horizontal rule

        log('showHideTopBtnsHR: leave');
    }
};