function load_table_red_rank() {
    get_data("fcBiWorkerDaily/get?type=0&limit=3", on_red_rank_success);
}

function load_table_black_rank() {
    get_data("fcBiWorkerDaily/get?type=4&limit=3", on_black_rank_success);

}

var lastTimeHistory = "";

function history_success(obj, sta) {
    var history = first_parse(this, obj);
    var i, j, t;
    console.log(" history : ");
    console.log(history);
    if (this.url.indexOf("type=1") >= 0) {
        t = 1;
    } else if (this.url.indexOf("type=2") >= 0) {
        t = 2;
    } else if (this.url.indexOf("type=3") >= 0) {
        t = 3;
    } else {
        t = 0;
        return;
    }
    if (t === 2 || t === 3) {
        hispass[t] = 0;
        hisfail[t] = 0;
        hisstack[t] = 0;
        hisrate[t] = 0;
        for (i = 0; i < history.length - 1; i++) { //除了今日
            hispass[t] = history[i].passNum + hispass[t];
            hisfail[t] = history[i].failNum + hisfail[t];
            hisstack[t] = history[i].avgDue + hisstack[t];
        }
        orighispass[t] = hispass[t];
        orighisfail[t] = hisfail[t];
        hispass[t] += hispass[0];
        hisfail[t] += hisfail[0];
        hisstack[t] += hisstack[0];
        hisrate[t] = get_factor(hispass[t], hisfail[t]);
    } else if (t === 1) {
        hispass[1] = history[0].passNum;
        hisfail[1] = history[0].failNum;
        hisstack[1] = history[0].avgDue;
        hisrate[t] = get_factor(hispass[1], hisfail[1]);
    }

    todayotherpass = history[history.length - 1].passNum;
    todayotherfail = history[history.length - 1].failNum;
    todayotherstack = history[history.length - 1].avgDue;

    update_all_history();
}

function update_all_history(){
    hispass[0] = todayotherpass + schedulepass;
    hisfail[0] = todayotherfail + schedulefail;
    hisstack[0] = todayotherstack + schedulestack;
    hisrate[0] = get_factor(hispass[0], hisfail[0]);

    for(i=2;i<=3;i++){
        hispass[i] = orighispass[i] + hispass[0];
        hisfail[i] = orighisfail[i] + hisfail[0];
        hisrate[i] = get_factor(hispass[i], hisfail[i]);
    }
}

var todayotherpass , todayotherfail, todayotherstack;
var orighisfail= [], orighispass=[];

function isUserOfThisFlow(uid) {
    var isExist = false;
    userIDs.forEach(function (vals) {
        if (vals == uid) {
            isExist = true;
        }
    });
    return isExist;
}

function on_red_rank_success(obj, sta) {
    var redchart = first_parse(this, obj);
    var i, j;
    i = j = 0;
    console.log(" redchart : ");
    console.log(redchart);
    for (i = 0; i < redchart.list.length; i++) {
        goodid[i] = getUserName(redchart.list[i].workerId);
        goodpass[i] = redchart.list[i].passNum;
        if(redchart.list[i].passNum + redchart.list[i].failNum > 0) {
            goodfailrate[i] = Math.floor(redchart.list[i].failNum * 10000 / (redchart.list[i].passNum + redchart.list[i].failNum)) / 100;
        }else{
            goodfailrate[i] = 0;
        }
        if(isUserOfThisFlow(redchart.list[i].workerId)){
            goodColor[i] = 'red';
        }else{
            goodColor[i] = '';
        }
    }

}

function on_black_rank_success(obj, sta) {
    var blackchart = first_parse(this, obj);
    var i, j;
    i = j = 0;
    console.log(" black chart : ");
    console.log(blackchart);
    for (i = 0; i < blackchart.list.length; i++) {
        badid[i] = getUserName(blackchart.list[i].workerId);
        badpass[i] = blackchart.list[i].passNum;
        //badfailrate[i] = blackchart.list[i].failRate / 100;
        if(blackchart.list[i].passNum + blackchart.list[i].failNum > 0) {
            badfailrate[i] = Math.floor(blackchart.list[i].failNum * 10000 / (blackchart.list[i].passNum + blackchart.list[i].failNum)) / 100;
        }else{
            badfailrate[i] = 0;
        }
        if(isUserOfThisFlow(blackchart.list[i].workerId)){
            badColor[i] = 'green';
        }else{
            badColor[i] = '';
        }
    }


}

function getSpotHtml(htmlbody, i) {
    if(typeof hispass[i] === "undefined"){
        htmlbody += "<tr>";
        htmlbody += `<tr>
                    <td> - </td>
                    <td> - </td>
                    <td> - </td>
                    <td> - </td>
                    <td> - </td>
                </tr>`;
        htmlbody += "</tr>";
        return htmlbody;
    }
    htmlbody += "<tr>";
    htmlbody += `<tr>
                    <td>${timeday[i]}</td>
                    <td>${hispass[i]}</td>
                    <td>${hisfail[i]}</td>
                    <td>${hisstack[i]}</td>
                    <td>${hisrate[i] + '%'}</td>
                </tr>`;
    htmlbody += "</tr>";
    return htmlbody;
}

function getSpotHtml1(htmlbody, i) {
    if(typeof goodid[i] === "undefined"){
        htmlbody += "<tr>";
        htmlbody += `<tr>
                    <td> - </td>
                    <td> - </td>
                    <td> - </td>
                </tr>`;
        htmlbody += "</tr>";
        return htmlbody;
    }
    htmlbody += "<tr>";
    htmlbody += `<tr style="background-color: ${goodColor[i]}">
                    <td>${goodid[i]}</td>
                    <td>${goodpass[i]}</td>
                    <td>${goodfailrate[i] + '%'}</td>
                </tr>`;
    htmlbody += "</tr>";
    return htmlbody;
}

function getSpotHtml2(htmlbody, i) {
    if(typeof badid[i] === "undefined"){
        htmlbody += "<tr>";
        htmlbody += `<tr style="background-color: ${badColor[i]}">
                    <td> - </td>
                    <td> - </td>
                    <td> - </td>
                </tr>`;
        htmlbody += "</tr>";
        return htmlbody;
    }
    htmlbody += "<tr>";
    htmlbody += `<tr>
                    <td>${badid[i]}</td>
                    <td>${badpass[i]}</td>
                    <td>${badfailrate[i] + '%'}</td>
                </tr>`;
    htmlbody += "</tr>";
    return htmlbody;
}


var lastTimeRank1 = "";
var lastTimeRank2 = "";
var lastTimeRank3 = "";

function showEachSpot() {
    var htmlbody = "", one_person = "";
    var i = 0;
    var triGap = 4;
    htmlbody = "";
    for (i = 0; i < triGap; i++) {

        htmlbody = getSpotHtml(htmlbody, i);
    }
    if(lastTimeRank1 !== htmlbody) {
        $("#rank-one").html(htmlbody);
        lastTimeRank1 = htmlbody;
    }
    //console.log(htmlbody);
}

function showEachSpot1() {

    var htmlbody = "", one_person = "";
    var i = 0;
    var triGap = 3;
    htmlbody = "";
    for (i = 0; i < triGap; i++) {

        htmlbody = getSpotHtml1(htmlbody, i);
    }
    if(lastTimeRank2 !== htmlbody){
        $("#rank-two").html(htmlbody);
        lastTimeRank2 = htmlbody;
    }
    //console.log(htmlbody);
}

function showEachSpot2() {
    var htmlbody = "", one_person = "";
    var i = 0;
    var triGap = 3;

    htmlbody = "";
    for (i = 0; i < triGap; i++) {

        htmlbody = getSpotHtml2(htmlbody, i);
    }
    if(lastTimeRank3 !== htmlbody){
        $("#rank-three").html(htmlbody);
        lastTimeRank3 = htmlbody;
    }
    //console.log(htmlbody);
}