(function ()()

in media/js/firefox/new/desktop/download.js [32:105]


(function () {
    'use strict';

    var cells = {
        all: document.querySelectorAll('#compare-table tr > *:nth-child(1n+3)'),
        chrome: document.querySelectorAll('#compare-table tr *:nth-child(3)'),
        edge: document.querySelectorAll('#compare-table tr *:nth-child(4)'),
        safari: document.querySelectorAll('#compare-table tr *:nth-child(5)')
    };
    var buttons = document.querySelectorAll('.c-compare-button');
    var ua = navigator.userAgent;
    var compareTo = (function () {
        if (/MSIE|Trident/i.test(ua)) {
            return 'edge';
        }

        if (/Edg|Edge/i.test(ua)) {
            return 'edge';
        }

        if (/Chrome/.test(ua)) {
            return 'chrome';
        }

        // got this far without picking, now choose based on OS
        // could be Firefox/Safari/Brave/Opera/Android Browser/etc.

        if (/osx/.test(window.site.platform)) {
            return 'safari';
        }

        if (/windows/.test(window.site.platform)) {
            return 'edge';
        }

        if (/android/.test(window.site.platform)) {
            return 'chrome';
        }

        return 'chrome';
    })();

    // display chosen browser
    function show(browser) {
        // hide all comparisons
        for (var i = 0; i < cells['all'].length; ++i) {
            cells['all'][i].style.display = 'none';
        }

        // show the chosen comparison
        for (var j = 0; j < cells[browser].length; ++j) {
            cells[browser][j].style.display = 'table-cell';
        }

        // add active state to button
        for (var k = 0; k < buttons.length; ++k) {
            if (buttons[k].value === browser) {
                buttons[k].setAttribute('aria-pressed', true);
            } else {
                buttons[k].setAttribute('aria-pressed', false);
            }
        }
    }

    // match user's browser to start
    show(compareTo);

    // listen to buttons
    for (var l = 0; l < buttons.length; ++l) {
        buttons[l].addEventListener('click', function (event) {
            show(event.target.value);
        });
    }
})();