Jstris Replay PC Number

Shows PC number on Jstris replays

// ==UserScript==
// @name         Jstris Replay PC Number
// @namespace    Jstris Replay PC Number
// @version      0.0.5
// @description  Shows PC number on Jstris replays
// @author       smdbs
// @match        https://jstris.jezevec10.com/replay*
// @grant        none
// ==/UserScript==

(function setupStats() {
    'use strict';
    try {
        if(document.getElementsByClassName('formulaElement').length<1){ // To not create too many elements
            $("<div class='formulaElement' style='display:none;color:#999;font-size: 32px;text-align: center;margin-top: 15px;'>1st</div>").insertBefore("#lrem");
        }
        const formulaElement = $('.formulaElement').first();
        const sprintText = $('#stPC')[0];
        var observer1 = new MutationObserver(function(mutations){
            if(sprintText.style.display=='block'){
                   $('.formulaElement').first().css('display','block'); // If PCMode then display
               }
        });
        observer1.observe(sprintText, {
            attributes:    true,
        });

        const pcElement = $('#sprintInfo div').filter('#lrem').last()[0];
        var lastPCNumber = 0
        var lastPiecesNumber = 0;
        const suffixes = ['th','st','nd','rd','th','th','th','th'];

        var observer = new MutationObserver(function(mutations) { // Listens to change on number of PCs
            let piecesElement = $("#statTable tr td").filter(function(index){return this.textContent=="#"}).next()[0];
            let newPiecesNumber = parseInt(piecesElement.innerHTML); // piece number
            let newPCNumber = parseInt(pcElement.innerHTML); // pc number
            if(newPCNumber==0){
                formulaElement.text("1st");
                return;
            }
            let displayNumber;
            if(newPiecesNumber % 5 != 0){
                /*
                14 blocks = 5 or 10 blocks @ the start
                18 blocks = 10 or 15 blocks @ the start
                */
                if (newPiecesNumber % 10 < 5) displayNumber = ((newPiecesNumber - 5) - (newPiecesNumber - 5) % 5) * 5 % 7 + 1;
                else displayNumber = (newPiecesNumber - newPiecesNumber % 10) * 5 % 7 + 1;
            }else{
                displayNumber = newPiecesNumber*5%7+1; //
            }
            let text = displayNumber+suffixes[displayNumber];

            if(newPCNumber - lastPCNumber != 1 || (newPiecesNumber - lastPiecesNumber) % 5 > 0){
                let displayNumber2 = (displayNumber + 3) % 7 + 1;
                text += '/' + displayNumber2+suffixes[displayNumber2];
            }

            formulaElement.text(text);
            lastPiecesNumber = newPiecesNumber-newPiecesNumber%5;
            lastPCNumber = newPCNumber;
        });

        observer.observe(pcElement, {
            attributes:    true,
            childList:     true,
            characterData: true
        });

    } catch (e) { // Rerun on error
        setTimeout(setupStats, 1000);
    }
})();