Bonus Calculator

A script of calulating bonus

// ==UserScript==
// @name         Bonus Calculator
// @version      1.0
// @include      https://pt.btschool.club/*
// @require      http://code.jquery.com/jquery-1.11.0.min.js
// @description  A script of calulating bonus
// @author       rsj
// @match        https://pt.btschool.club/*
// @namespace https://greasyfork.org/users/779978
// ==/UserScript==

(function() {
    'use strict';
    function calc(T,S,N){
        var T0,N0,L,B0;
        T0=200;N0=7;B0=100;L=1000;
        var std=(1-1/Math.pow(10,T/T0))*(1+Math.sqrt(2)/Math.pow(10,(N-1)/(N0-1)));
        var A=std*S;
        var B=B0*2/Math.PI*Math.atan(A/L);
        return std;
    }
    function convertsize(size){
        if(size.indexOf("TB")!=-1) return size.substring(0,size.indexOf("TB"))*1024;
        if(size.indexOf("GB")!=-1) return size.substring(0,size.indexOf("GB"));
        if(size.indexOf("MB")!=-1) return size.substring(0,size.indexOf("MB"))/1024;
        if(size.indexOf("KB")!=-1) return size.substring(0,size.indexOf("KB"))/1024/1024;
        if(size.indexOf("B")!=-1) return size.substring(0,size.indexOf("B"))/1024/1024/1024;
        return 0;
    }
    function convertdate(date){
        var time=Date.parse(new Date());
        var curtime=Date.parse(new Date(date));
        var day=(time-curtime)/(1000*60*60*24*7);
        return day;
    }
    var torrents = $(".torrents > tbody > tr"),area = $(".torrents > tbody");
    var q=[],src=[];
    torrents.eq(0).find("> td").eq(2).after("<td id=\"delta_A\" class=\"colhead\"><a href='javascript:void(0)'>ΔA</a></td>");
    var rh = $("#delta_A");
    var head = torrents.eq(0);
    for(var i=1;i<torrents.length;i++){
        var torrent = torrents.eq(i);
        var rows = torrent.find("> td");
        var date = convertdate(rows.eq(3).find("span").attr("title"));
        var size = convertsize(rows.eq(4).text());
        var seeders = rows.eq(5).find("a").text();
        var bonus = calc(date,size,seeders);
        rows.eq(2).after("<td class=\"rowfollow\">"+(bonus*size).toFixed(4)+"</td>");
        var c={ content: torrent, number: bonus };
        q.push(c);
        src.push(c);
    }
    var sorted=0;
    q.sort(function(b,a){return a.number-b.number;});
    rh.get(0).addEventListener("click", function(){
        area.empty();
        area.append(head);
        if(sorted) for(i=0;i<src.length;i++) area.append(src[i].content);
        else for(i=0;i<q.length;i++) area.append(q[i].content);
        sorted=1-sorted;
    });
})();