66 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
(function () {
 | 
						|
    var table = document.querySelector("table");
 | 
						|
    var isTbody = table.children[0].nodeName == "TBODY";
 | 
						|
    var trs = isTbody
 | 
						|
        ? table.children[0].querySelectorAll("tr")
 | 
						|
        : table.querySelectorAll("tr");
 | 
						|
    trs.forEach(function (tr, idx) {
 | 
						|
        if (idx != 0 && idx + 1 < trs.length) {
 | 
						|
            var vc = 3, vv = 4, vf = 5, vh = 6;
 | 
						|
            var textContent = {
 | 
						|
                vc: tr.children[vc].textContent,
 | 
						|
                vv: tr.children[vv].textContent,
 | 
						|
                vf: tr.children[vf].textContent,
 | 
						|
                vh: tr.children[vh].textContent
 | 
						|
            };
 | 
						|
            var currentData = {
 | 
						|
                vc: int(textContent.vc.slice(0, -2)),
 | 
						|
                vv: int(textContent.vv.slice(0, -2)),
 | 
						|
                vf: int(textContent.vf.slice(0, -2)),
 | 
						|
                vh: int(textContent.vh.slice(0, -2))
 | 
						|
            };
 | 
						|
            var prevData = {
 | 
						|
                vc: int(trs[idx + 1].children[vc].textContent.slice(0, -2)),
 | 
						|
                vv: int(trs[idx + 1].children[vv].textContent.slice(0, -2)),
 | 
						|
                vf: int(trs[idx + 1].children[vf].textContent.slice(0, -2)),
 | 
						|
                vh: int(trs[idx + 1].children[vh].textContent.slice(0, -2))
 | 
						|
            };
 | 
						|
            var result = {
 | 
						|
                vc: currentData.vc - prevData.vc,
 | 
						|
                vv: currentData.vv - prevData.vv,
 | 
						|
                vf: currentData.vf - prevData.vf,
 | 
						|
                vh: currentData.vh - prevData.vh
 | 
						|
            };
 | 
						|
            if (Math.abs(result.vc) > 50)
 | 
						|
                tr.children[vc].appendChild(createElement(result.vc));
 | 
						|
            if (Math.abs(result.vv) > 50)
 | 
						|
                tr.children[vv].appendChild(createElement(result.vv));
 | 
						|
            if (Math.abs(result.vf) > 50)
 | 
						|
                tr.children[vf].appendChild(createElement(result.vf));
 | 
						|
            if (Math.abs(result.vh) > 50)
 | 
						|
                tr.children[vh].appendChild(createElement(result.vh));
 | 
						|
        }
 | 
						|
    });
 | 
						|
    function int(src) {
 | 
						|
        return src - 0;
 | 
						|
    }
 | 
						|
    function getClassName(x) {
 | 
						|
        if (x == 0)
 | 
						|
            return "equal";
 | 
						|
        return x < 0 ? "plus" : "minus";
 | 
						|
    }
 | 
						|
    function createElement(result) {
 | 
						|
        var el = document.createElement("span");
 | 
						|
        var parsedResult = parseResult(result);
 | 
						|
        el.classList.add("diff");
 | 
						|
        el.classList.add(getClassName(result));
 | 
						|
        el.textContent = parsedResult;
 | 
						|
        return el;
 | 
						|
    }
 | 
						|
    function parseResult(x) {
 | 
						|
        if (x == 0)
 | 
						|
            return "0";
 | 
						|
        return x > 0 ? "+" + x : x;
 | 
						|
    }
 | 
						|
})();
 |