Эзоҳ: Баъди захира намудан, Шумо метавонед тағйиротҳои худро аз хотираи браузер гузариш карда, бубинед. Дар браузерҳои Mozilla / Firefox / Safari: тугмаи Shift-ро пахш намуда бо мушак Reload-ро пахш кунед, ё Ctrl-Shift-R-ро пахш намоед (Cmd-Shift-R барои компютерҳои Apple Mac); дар браузери IE: тугмаи Ctrl-ро пахш намуда бо мушак Refresh-ро пахш намоед, ё Ctrl-F5-ро пахш намоед; дар браузери Konqueror:: бо мушак Reload-ро пахш кунед, ё тугмаи F5-ро пахш намоед; дар браузери Opera ба Шумо пурра тоза кардани хотираи браузер ба воситаи Tools→Preferences лозим аст.

(function() {
    if (mw.config.get("wgTitle") != 'Знаете ли вы/Подготовка следующего выпуска')
        return;

    var anchor = $('#dyk-start');
    if (anchor.parent().is('p'))
        anchor = anchor.parent();

    var announces = anchor.nextAll('h3').map(function(index) {
        var orders = $(this).find('.dyk-status').map(function() {
            return $(this).attr('data-sort') || -Number.MAX_VALUE;
        }).get().map(parseFloat);
        orders.push(Number.MAX_VALUE); // for those who don't have status yet

        var content = $(this).nextUntil('h3, noscript, h2');
        return {
            originalOrder: index,
            order: Math.min.apply(null, orders),
            content: $(this).add(content),
            isSelected: content.find('.dyk-check').length > 0
        };
    }).get();

    function sort(getOrder) {
        var ordered = [];
        for(var i = 0; i < announces.length; i++) {
            var announce = announces[i];
            var order = getOrder(announce);

            var found = false;
            for(var j = ordered.length - 1; j >= 0; j--) {
                var o = ordered[j];
                if (getOrder(o) <= order) {
                    found = true;
                    if (j != ordered.length) {
                        announce.content.insertAfter(ordered[j].content.last());
                    }
                    ordered.splice(j + 1, 0, announce);
                    break;
                }
            }

            if (!found) {
                if (ordered.length) {
                    announce.content.insertBefore(ordered[0].content.first());
                }
                ordered.splice(0, 0, announce);
            }
        }
    }

    var sorted = false;

    function updateButtonTitle(b) {
        b.text(!sorted ? 'Отсортировать' : 'Отсортировано');
    };

    function updateBackground() {
        announces.forEach(function(a) { 
            $(a.content).css('background-color', sorted && a.isSelected ? '#eee' : '');
        });
    }

    var button = $('<a>')
        .addClass('plainlinks mw-ui-button mw-ui-primary')
        .attr('href', '#')
        .click(function(e) {
            e.preventDefault();
            if (!sorted)
                var f = function(a) { return a.isSelected ? Number.MAX_VALUE : a.order; };
            else
                var f = function(a) { return a.originalOrder; };
            sort(f);

            sorted = !sorted;
            $(this).css('background-color', sorted ? '#136' : '');
            updateButtonTitle($(this));
            updateBackground();
        })
        .insertBefore($('#dyk-start'));
    updateButtonTitle(button);
})();