function setGetApp() {
    var get = "";
    if ($("#tecnicoto").val())
        get += "&tecnicoto=" + $("#tecnicoto").val();
    if ($("#tecnico").val())
        get += "&tecnico=" + $("#tecnico").val();
    if ($("#app").val())
        get += "&app=" + $("#app").val();
    if ($("#emp").val())
        get += "&emp=" + $("#emp").val();
    return get;
}

function tabelaPlanilhaSerie(series, cd_tipo_treino, ds_tipo_treino, type = false) {
    let i = 0;
    let _veloc_ = false;
    let _metod_ = false;
    let _pausa_ = false;
    let _carga_ = false;
    let retorno = "";
    retorno = "<div class='col s12 responsive-table'>" +
        "<table class='striped'>" +
        "<thead>" +
        "<tr>" +
        "<th><h5 class='center grey-text text-darken-1'><b>N.Serie</b></h5></td>" +
        "<th><h5 class='center grey-text text-darken-1'><b>Exercício</b></h5></th>" +
        "<th><h5 class='center grey-text text-darken-1'><b>Séries</b></h5></th>" +
        "<th class='hide_veloc'><h5 class='center grey-text text-darken-1'><b>Velocidade</b></h5></th>" +
        "<th class='hide_metod'><h5 class='center grey-text text-darken-1'><b>Método</b></h5></th>" +
        "<th class='hide_pausa'><h5 class='center grey-text text-darken-1'><b>Pausa</b></h5></th>" +
        "<th class='hide_carga'><h5 class='center grey-text text-darken-1'><b>Carga/Peso (kg)</b></h5></th>" +
        "</tr>" +
        "</thead>" +
        "<tbody>";
    let xx = 0;
    let xy = 0;
    $.each(series, function (index, serie) {
        if (serie.cd_tipo_treino)
            cd_tipo_treino = serie.cd_tipo_treino;
        if (serie.ds_tipo_treino)
            ds_tipo_treino = serie.ds_tipo_treino;
        i++;
        if (serie.ds_veloc_exec)
            _veloc_ = true;
        if (serie.ds_tipo_treino)
            _metod_ = true;
        if (serie.ds_intervalo)
            _pausa_ = true;
        if (serie.qt_peso)
            _carga_ = true;

        retorno += "<tr data-serie='" + serie.cd_serie + "'>";
        retorno += "<td><h5 class='center grey-text text-darken-1'>" + i + "</h5></td>";
        retorno += "<td><h5 class='grey-text text-darken-1'>" + serie.ds_exerc_musc + "</h5></td>";
        retorno += "<td><h5 class='center grey-text text-darken-1'>" + serie.qt_serie + " x " + serie.qt_repet + "</h5></td>";
        retorno += "<td class='hide_veloc'><h5 class='center grey-text text-darken-1'>" + (serie.ds_veloc_exec != null ? serie.ds_veloc_exec : "") + "</h5></td>";
        retorno += "<td class='hide_metod'><h5 class='center grey-text text-darken-1'>" + (ds_tipo_treino != null ? ds_tipo_treino : "") + "</h5></td>";
        retorno += "<td class='hide_pausa'><h5 class='center grey-text text-darken-1'>" + (serie.ds_intervalo != null ? serie.ds_intervalo : "") + "</h5></td>";
        retorno += "<td class='hide_carga'><h5 class='center grey-text text-darken-1'>" + (serie.qt_peso != null ? serie.qt_peso + "kg" : "") + "</h5></td>";
        retorno += "</tr>";
        if (serie.ds_obs) {
            retorno += "<tr><td colspan='7' class='left-align'><b>Obs</b>." + serie.ds_obs + "</td></tr>";
        }
        if (cd_tipo_treino == 565) {
            xy = 0;
            xx++;
            if (xx == 2) {
                xx = 0;
                retorno += "<tr><td colspan='8' class='center-align light-green-text text-darken-1'>Intervalo</td></tr>";
            }
        } else if (cd_tipo_treino == 566) {
            xx = 0;
            xy++;
            if (xy == 3) {
                xy = 0;
                retorno += "<tr><td colspan='8' class='center-align light-green-text text-darken-1'>Intervalo</td></tr>";
            }
        } else {
            xx = 0;
            xy = 0;
        }
    });
    if (!_carga_)
        retorno = retorno.replaceAllFU("hide_carga", "hide");
    if (!_veloc_)
        retorno = retorno.replaceAllFU("hide_veloc", "hide");
    if (!_metod_)
        retorno = retorno.replaceAllFU("hide_metod", "hide");
    if (!_pausa_)
        retorno = retorno.replaceAllFU("hide_pausa", "hide");
    retorno += "</tbody>" +
        "</table>" +
        "</div>";
    //return retorno.replace(/"/g, "'");
    return retorno;
}

function _removerCaracteresEspeciais_(string) {
    // Define os caracteres especiais que deseja remover
    var caracteresEspeciais = /[!@#$%^&*()_+\-=\[\]{};'`:"\\|,.<>\/?]+/g;

    // Remove os caracteres especiais da string
    var stringSemEspeciais = string.replace(caracteresEspeciais, '');

    return stringSemEspeciais;
}

function urlFoto(dsFoto) {
    if (dsFoto != undefined && dsFoto != "") {
        if (dsFoto.indexOf("www.") == -1) {
            if (dsFoto.substr(0, 7) == "http://") {
                dsFoto = "https://www." + dsFoto.substr(7);
            } else if (dsFoto.substr(0, 8) == "https://") {
                dsFoto = "https://www." + dsFoto.substr(8);
            } else {
                dsFoto = "https://www." + dsFoto;
            }
        } else {
            if (dsFoto.substr(0, 8) != "https://") {
                if (dsFoto.substr(0, 7) == "http://") {
                    dsFoto = "https://" + dsFoto.substr(7);
                } else {
                    dsFoto = "https://" + dsFoto;
                }
            }
        }
    }
    return dsFoto;

}

function montaUrlAppFn() {
    var parametros = "";
    const url = new URL(window.location.href);

    for (const [chave, valor] of url.searchParams) {
        if (chave == "tecnico" || chave == "tecnicoto" || chave == "app" || chave == "emp")
            parametros += "&" + chave + "=" + valor;
    }

    return parametros;
}

function detectNull(dado) {
    if (dado !== undefined && dado !== null && dado !== "")
        return true;
    else
        return false;
}

function fechaToast() {
    $(".toast").fadeOut();
    return;
}

function menor10(numero) {
    var numero2 = numero;
    if (numero2 <= 9 && numero2 >= 0 && numero.toString().length < 2)
        numero2 = "0" + numero2.toString();
    return numero2;
}

function segundosParaTempo(s) {
    function duas_casas(numero) {
        if (numero <= 9) {
            numero = "0" + numero;
        }
        return numero;
    }
    hora = duas_casas(Math.round(s / 3600));
    minuto = duas_casas(Math.round((s % 3600) / 60));
    segundo = duas_casas((s % 3600) % 60);
    formatado = hora + ":" + minuto + ":" + segundo;
    //alert(formatado);
    return formatado;
}

function segundosParaTempo2(s, mask = 0) {
    function duas_casas(numero) {
        if (numero <= 9) {
            numero = "0" + numero;
        }
        return numero;
    }
    hora = duas_casas(parseInt(s / 3600));
    minuto = duas_casas(parseInt((s % 3600) / 60));
    segundo = duas_casas((s % 3600) % 60);
    if (mask == 0)
        formatado = hora + ":" + minuto + ":" + segundo;
    else if (mask == 1)
        formatado = minuto + ":" + segundo;
    else
        formatado = hora + ":" + minuto;
    //alert(formatado);
    return formatado;
}

function geraGraficoGarmin(_dados, _ele, _tipoX, _tipoY, _distanciaTotal, _modalidade, _polar = false) {
    var primeiroReg = null;
    var multiplicadorMetro = 1;
    var x = [], y = [], overWrite = [];
    var yName = getNomeSerie(_tipoY);
    if (_tipoX == "tempo" || _tipoX == "tempo2")
        primeiroReg = _dados[0].timestamp;
    else {
        if (_dados[_dados.length - 1].distance * 950 < _distanciaTotal) // as distancias do grafico podem estar em km, isso é pra saber.
            multiplicadorMetro = 1000;
    }

    var indiceLegenda10 = parseInt((_dados.length * 10) / 100);
    var indiceLegenda30 = parseInt((_dados.length * 30) / 100);
    var indiceLegenda50 = parseInt((_dados.length * 50) / 100);
    var indiceLegenda70 = parseInt((_dados.length * 70) / 100);
    var indiceLegenda90 = parseInt((_dados.length * 90) / 100);
    var rest = 1;
    // if (_tipoY == "heart_rate") {
    //     rest = Math.ceil(_dados.length / 500);
    // }
    for (var z in _dados) {
        if (_tipoX == "tempo" || _tipoX == "tempo2") {
            x.push(segundosParaTempo2(_dados[z].timestamp - primeiroReg, 0));
        }
        else {
            x.push(parseInt(_dados[z].distance * multiplicadorMetro));
        }
        if (_tipoX == "tempo2" || _tipoX == "distancia2") {
            if (_modalidade != 1)
                yName = "Pace(min/km)";
            else
                yName = "Pace(min/100m)";
        }
        if (z == indiceLegenda10 || z == indiceLegenda30 || z == indiceLegenda50 || z == indiceLegenda70 || z == indiceLegenda90) {
            if (_tipoX == "tempo" || _tipoX == "tempo2")
                overWrite.push(segundosParaTempo2(_dados[z].timestamp - primeiroReg, 0));
            else
                overWrite.push(String(parseInt(_dados[z].distance * multiplicadorMetro)));
        }
        if (!isNaN(_dados[z][_tipoY])) {
            if (_tipoY != "heart_rate") {
                if (_tipoY == "speed" || _tipoY == "enhanced_speed") {
                    if (_tipoX == "tempo2" || _tipoX == "distancia2") {
                        if (_dados[z][_tipoY] != 0) {
                            if (_modalidade != 1) {
                                if (_tipoY == "enhanced_speed" || _polar)
                                    y.push(Math.ceil(1000 / (_dados[z][_tipoY])));
                                else
                                    y.push(Math.ceil(1000 / (_dados[z][_tipoY] / 3.6)));
                            } else {
                                if (_tipoY == "enhanced_speed" || _polar)
                                    y.push(Math.ceil(100 / (_dados[z][_tipoY])));
                                else
                                    y.push(Math.ceil(100 / (_dados[z][_tipoY] / 3.6)));
                            }
                        }
                        else
                            y.push(0);
                    }
                    else {
                        if (_tipoY == "enhanced_speed" || _polar)
                            y.push(Math.ceil(_dados[z][_tipoY] * 3.6));
                        else
                            y.push(_dados[z][_tipoY]);
                    }
                }
                else {
                    y.push(_dados[z][_tipoY]);
                }
            }
            else {
                if (z % rest == 0)
                    y.push(_dados[z][_tipoY]);
            }
        }
    }
    var corTitulo = document.querySelector("#cssCorFonteContent4") != null ? document.querySelector("#cssCorFonteContent4").value : "#03a9f4";
    var titulo = "Gráfico " + getNomeSerie(_tipoY);
    var options = {
        chart: {
            type: 'area',
            toolbar: {
                show: true,
                autoSelected: 'pan',
                tools: {
                    download: false,
                    selection: false,
                    zoom: false,
                    zoomin: false,
                    zoomout: false,
                    reset: false,
                    pan: false
                }
            }
        },
        series: [{
            type: "area",
            name: yName,
            data: y
        }],
        xaxis: {
            type: 'category',
            categories: x,
            //tickPlacement: 'between',
            overwriteCategories: overWrite,
            position: 'bottom',
            labels: {
                show: true,
                rotate: -360,
                rotateAlways: false,
                hideOverlappingLabels: true,
                showDuplicates: false,
                style: {
                    fontSize: '11px',
                    //fontWeight:'bold'
                }
            },
            axisTicks: {
                show: false
            }
        },
        yaxis: {
            //decimalsInFloat: 2,
            labels: {
                style: {
                    fontSize: '11px',
                    //fontWeight:'bold'
                },
                formatter: function (val, index) {
                    var v = val;
                    if (_tipoX == "tempo2" || _tipoX == "distancia2") {
                        if (!isNaN(v) && v != 0) {
                            if (_modalidade != 1)
                                v = segundosParaTempo2(val, 0) + "/km";
                            else
                                v = segundosParaTempo2(val, 0) + "/100m";
                        }
                        else
                            v = 0;
                    } else {
                        v = getDecVal(_tipoY, v);
                    }
                    return v;
                }
            }
        },
        markers: {
            size: 0
        },
        dataLabels: {
            enabled: false
        },
        // title: {
        //     text: titulo,
        //     align: 'left',
        //     margin: 10,
        //     style: {
        //       fontSize:  '12px',
        //       fontFamily:  "Roboto,sans-serif",
        //       color:  corTitulo
        //     }
        // }    
    }
    var chart = new ApexCharts(document.querySelector("#" + _ele), options);
    chart.render();
}

function geraGraficoStrava(_dados, _ele, _tipoX, _tipoY, _distanciaTotal, _modalidade) {
    var primeiroReg = null;
    var multiplicadorMetro = 1;
    var x = [], y = [], overWrite = [];
    var yName = getNomeSerie(_tipoY);
    // if (_tipoX == "tempo")
    //     primeiroReg = _dados[0].timestamp;
    // else{
    //     console.log(_distanciaTotal);
    //     if (_dados[_dados.length-1].distance * 950 < _distanciaTotal) // as distancias do grafico podem estar em km, isso é pra saber.
    //         multiplicadorMetro=1000;
    //}    
    var indiceLegenda10 = parseInt((_dados.length * 10) / 100);
    var indiceLegenda30 = parseInt((_dados.length * 30) / 100);
    var indiceLegenda50 = parseInt((_dados.length * 50) / 100);
    var indiceLegenda70 = parseInt((_dados.length * 70) / 100);
    var indiceLegenda90 = parseInt((_dados.length * 90) / 100);
    var segundosTotal = distanciaTotal = 0;
    for (var z in _dados) {
        if (_tipoX == "tempo" || _tipoX == "tempo2") {
            segundosTotal += _dados[z].timestamp;
            x.push(segundosParaTempo2(segundosTotal, 0));
        }
        else {
            distanciaTotal += _dados[z].distance;
            x.push(parseInt(distanciaTotal));
        }
        if (_tipoX == "tempo2" || _tipoX == "distancia2") {
            if (_modalidade != 1)
                yName = "Pace(min/km)";
            else
                yName = "Pace(min/100m)";
        }
        if (z == indiceLegenda10 || z == indiceLegenda30 || z == indiceLegenda50 || z == indiceLegenda70 || z == indiceLegenda90) {
            if (_tipoX == "tempo" || _tipoX == "tempo2")
                overWrite.push(segundosParaTempo2(segundosTotal, 0));
            else
                overWrite.push(String(parseInt(distanciaTotal)));
        }
        if (_tipoY == "speed" || _tipoY == "enhanced_speed") {
            if (_tipoX == "tempo2" || _tipoX == "distancia2") {
                if (_dados[z][_tipoY] != 0) {
                    if (_modalidade != 1)
                        y.push(Math.ceil(1000 / _dados[z][_tipoY]));
                    else
                        y.push(Math.ceil(100 / _dados[z][_tipoY]));
                }
                else
                    y.push(0);
            }
            else
                y.push(_dados[z][_tipoY] * 3.6);
        }
        else
            y.push(_dados[z][_tipoY]);

    }
    var corTitulo = document.querySelector("#cssCorFonteContent4") != null ? document.querySelector("#cssCorFonteContent4").value : "#03a9f4";
    var titulo = "Gráfico " + getNomeSerie(_tipoY);
    var options = {
        chart: {
            type: 'area',
            toolbar: {
                show: true,
                autoSelected: 'pan',
                tools: {
                    download: false,
                    selection: false,
                    zoom: false,
                    zoomin: false,
                    zoomout: false,
                    reset: false,
                    pan: false
                }
            }
        },
        series: [{
            type: "area",
            name: yName,
            data: y
        }],
        noData: {
            text: 'Carregando...'
        },
        xaxis: {
            type: 'category',
            categories: x,
            //tickPlacement: 'between',
            overwriteCategories: overWrite,
            labels: {
                show: true,
                rotate: -360,
                rotateAlways: false,
                hideOverlappingLabels: true,
                showDuplicates: false,
                style: {
                    fontSize: '11px',
                    //fontWeight:'bold'
                }
            },
            axisTicks: {
                show: false
            }
        },
        yaxis: {
            //decimalsInFloat: 0,
            labels: {
                style: {
                    fontSize: '11px',
                    //fontWeight:'bold'
                },
                formatter: function (val, index) {
                    var v = val;
                    if (_tipoX == "tempo2" || _tipoX == "distancia2") {
                        if (!isNaN(v) && v != 0) {
                            if (_modalidade != 1)
                                v = segundosParaTempo2(val, 0) + "/km";
                            else
                                v = segundosParaTempo2(val, 0) + "/100m";
                        } else
                            v = 0;
                    } else {
                        v = getDecVal(_tipoY, v);
                    }
                    return v;
                }
            }
        },
        markers: {
            size: 0
        },
        dataLabels: {
            enabled: false
        },
        // title: {
        //     text: titulo,
        //     align: 'left',
        //     margin: 10,
        //     style: {
        //       fontSize:  '12px',
        //       fontFamily:  "Roboto,sans-serif",
        //       color:  corTitulo
        //     }
        // }
    }
    var chart = new ApexCharts(document.querySelector("#" + _ele), options);
    chart.render();
}

function checkYNull(_dados, _nome) {
    var ret = true;
    var ultimo = _dados.length - 1;
    if (ultimo >= 5)
        var ultimoMenos5 = _dados.length - 5;
    else
        var ultimoMenos5 = 0;
    //const finalIndex = _dados.length >= 5 ? 4 : _dados.length;
    for (var i = ultimoMenos5; i <= ultimo; i++) {
        if (_dados[i][_nome] != null && _dados[i][_nome] != undefined && _dados[i][_nome] != 0 && _dados[i][_nome] != "" && _dados[i][_nome] != 0.00) {
            ret = false;
            break;
        }
    }
    // if (ret) {
    //     for (var i = ultimoMenos5; i <= ultimo; i++) {
    //         if (_dados[i][_nome] != null && _dados[i][_nome] != undefined && _dados[i][_nome] != 0 && _dados[i][_nome] != "" && _dados[i][_nome] != 0.00) {
    //             ret = false;
    //             break;
    //         }
    //     }
    // }
    return ret;
}

String.prototype.replaceAllFU = function (search, replacement) {
    var target = this;
    return target.split(search).join(replacement);
};

function chamaGrafico(_api, _dados, _content, _x, _y, _distanciaTotal, _modalidade, _limpa = 0) {
    // 2 para atualizacao
    var x = _x;
    //var y = _y;
    if (_limpa > 0)
        $("#" + _content).html("");
    var qtdGraficos = 0;
    var campos = Object.getOwnPropertyNames(_dados[_dados.length - 1]);
    if (_limpa != 2) {
        if (document.querySelector("div[id^=tChartCalen]") != null)
            qtdGraficos = document.querySelectorAll("div[id^=tChartCalen]").length;
    } else {
        qtdGraficos = _content.match(/\d+/g)[0];
    }
    var html = "";
    if (qtdGraficos % 2 == 0 && _limpa != 2) {
        if (qtdGraficos != 0)
            html += "<div class='col s12'></div>";
    }
    if (_limpa != 2) {
        html += "<div class='col l6 m6 s12'>";
        html += "<div class='col s12 input-field'>" +
            "<select data-y='" + _y + "' name='modalTipoGraficoTreinoCalenX" + qtdGraficos + "' id='modalTipoGraficoTreinoCalenX" + qtdGraficos + "'>";
        if (_y == "speed" || _y == "enhanced_speed") {
            //y="pace";
            if (_modalidade != 3) {
                x = "tempo2";
                if (_modalidade != 1) {
                    html += "<option value='tempo2'>Pace(min/km) x Tempo</option>";
                    html += "<option value='distancia2'>Pace(min/km) x Distância</option>";
                } else {
                    html += "<option value='tempo2'>Pace(min/100m) x Tempo</option>";
                    html += "<option value='distancia2'>Pace(min/100m) x Distância</option>";
                }
            }
        }
        html += "<option value='tempo'>" + getNomeSerie(_y) + " x Tempo</option>";
        if (campos.indexOf("distance") > -1) {
            html += "<option value='distancia'>" + getNomeSerie(_y) + " x Distância(m)</option>";
        }
        html += "</select>" +
            "<label for='modalTipoGraficoTreinoCalenX" + qtdGraficos + "'>Gráfico de</label>" +
            "</div>";
        html += "<div class='col s12' id='contentCharCalen" + qtdGraficos + "'>";
    }
    html += "<div id='tChartCalen" + qtdGraficos + "'></div>";
    if (_limpa != 2) {
        html += "</div></div>";
    }

    $("#" + _content).append(html);
    if (_api == "garmin") {
        geraGraficoGarmin(_dados, "tChartCalen" + qtdGraficos, x, _y, _distanciaTotal, _modalidade);
    } else if (_api == "strava") {
        geraGraficoStrava(_dados, "tChartCalen" + qtdGraficos, x, _y, _distanciaTotal, _modalidade);
    } else {
        geraGraficoGarmin(_dados, "tChartCalen" + qtdGraficos, x, _y, _distanciaTotal, _modalidade, true);
    }
    $("select").material_select("update");
}

function getNomeSerie(_serie) {
    var ret = _serie.toLowerCase();
    if (ret == "altitude" || ret == "enhanced_altitude")
        ret = "Altitude(m)";
    else if (ret == "enhanced_speed" || ret == "speed")
        ret = "Velocidade(km/h)";
    else if (ret == "heart_rate")
        ret = "FC(bpm)";
    else if (ret == "accumulated_power")
        ret = "Potência acumulada";
    else if (ret == "cadence")
        ret = "Cadencia";
    else if (ret == "fractional_cadence")
        ret = "Cadencia Fracionada";
    else if (ret == "temperature")
        ret = "Temperatura";
    else if (ret == "power")
        ret = "Potência";
    return ret;
}

function getDecVal(_serie, _val) {
    var ret = _serie.toLowerCase();
    var retVal = null;
    if (ret == "altitude" || ret == "enhanced_altitude" || ret == "heart_rate")
        retVal = parseInt(_val);
    else
        retVal = _val.toFixed(1);
    return retVal;
}

function identificaEixosX(_dados, _idSelect) {
    console.log(_dados);
    document.getElementById(_idSelect).innerHTML = "";
    var dados = _dados;
    var campos = Object.getOwnPropertyNames(dados);
    var option = null;
    option = new Option("Tempo", "tempo");
    document.getElementById(_idSelect).add(option);
    if (campos.includes("distance") && dados.distance != "0" && dados.distance != "0.00" && dados.distance != "0.0" && dados.distance != "") {
        option = new Option("Distância(m)", "distancia");
        document.getElementById(_idSelect).add(option);
    }
    $("#" + _idSelect).material_select("update");
}

function identificaEixosY(_dados, _idSelect) {
    document.getElementById(_idSelect).innerHTML = "";
    var dados = _dados;
    var campos = Object.getOwnPropertyNames(dados);
    var option = null;
    for (var i in campos) {
        if (campos[i] != "distance" && campos[i] != "timestamp") {
            if (dados[campos[i]] != "0" && dados[campos[i]] != "0.00" && dados[campos[i]] != "0.0" && dados[campos[i]] != "") {
                option = new Option(getNomeSerie(campos[i]), campos[i]);
                document.getElementById(_idSelect).add(option);
            }
        }
    }
    $("#" + _idSelect).material_select("update");
}

function inicGraficoTreino(_url, _objDataPost, _parentGrafico/*,_idSelectX,_idSelectY*/) {
    return new Promise(function (accept, reject) {
        var dados = api = distanciaTotal = modalidade = ds_modalidade = dtTreino = null;
        var ret = new Array();
        $("#" + _parentGrafico).html("");
        $.post(_url, _objDataPost, function (data) {
            //{"treinoPost":codTreino,"op":"getGrafico"}
            if (data.length > 0) {
                $("#" + _parentGrafico).show();
                //$("#"+_parentGrafico).html("");
                //$("label[for='"+_idSelectX+"']").show();
                //$("label[for='"+_idSelectY+"']").show();
                //$("#"+_idSelectX).parent("div.select-wrapper").show();
                //$("#"+_idSelectY).parent("div.select-wrapper").show();
                dados = JSON.parse(data[0].ds_grafico);
                api = data[0].ds_api;
                distanciaTotal = data[0].nr_distancia;
                modalidade = data[0].cd_modalidade;
                ds_modalidade = data[0].ds_modalidade;
                dtTreino = data[0].dt_treino;
                // var campos = Object.getOwnPropertyNames(dados[dados.length-1]);
                // if (campos.length==2){ //se so tiver timestamp e distance no ultimo indice
                campos = Object.getOwnPropertyNames(dados[Math.floor(dados.length / 2)]);
                //}
                //identificaEixosX(dados[dados.length-1],_idSelectX);
                //identificaEixosY(dados[dados.length-1],_idSelectY);
                enviaY = null;
                var limpa = 0;
                var contGrafico = 0;
                let newData = [];
                if (dados.length > 1000) {
                    const div = (dados.length / 1000).toFixed(2);
                    const divInteiro = Number(div.split('.')[0]);
                    const intervaloRepete = (Math.ceil(100 / Number(div.split('.')[1]))) + 2;
                    //let contInterval = 0;
                    for (let i = 0; i <= dados.length; i = i + divInteiro) {
                        if (!dados[i])
                            break;
                        // if (contInterval===intervaloRepete){
                        //     contInterval=0;
                        //     continue;
                        // }

                        newData.push(dados[i]);
                        //contInterval++;
                    }
                } else
                    newData = [...dados];
                for (var i in campos) {
                    if (campos[i] != "timestamp" && campos[i] != "distance" && campos[i] != "temperature" && campos[i] != "left_power_phase"
                        && campos[i] != "left_power_phase_peak" && campos[i] != "accumulated_power" && campos[i] != "fractional_cadence"
                        && campos[i] != "left_right_balance" && campos[i] != "activity_type" && campos[i] != "step_length") {
                        limpa = 0;
                        if (contGrafico == 0)
                            limpa = 1;

                        if (!checkYNull(newData, campos[i])) {
                            chamaGrafico(api, newData, _parentGrafico, "tempo", campos[i], distanciaTotal, modalidade, limpa);
                            ret.push({ api: api, dadosGrafico: newData, distancia: distanciaTotal, modalidade: modalidade, dsModalidade: ds_modalidade, dtTreino });
                            contGrafico++;
                        }
                        //enviaY = campos[i];
                        //break;
                    }
                }
            } else {
                $("#" + _parentGrafico).hide();
                //$("label[for='"+_idSelectX+"']").hide();
                //$("label[for='"+_idSelectY+"']").hide();
                //$("#"+_idSelectX).parent("div.select-wrapper").hide();
                //$("#"+_idSelectY).parent("div.select-wrapper").hide();
            }
        }, "json").fail(function (erro, status, msg) {
            console.log(erro.responseText);
            console.log(msg);
        }).done(function () {
            //$(_idSelectY+","+_idSelectX).material_select("update");
            accept(ret);
        });
    });
}

function converteData(date) {

    var data = new Date(date);
    var dia = data.getDate().toString().padStart(2, '0');
    var mes = (data.getMonth() + 1).toString().padStart(2, '0');
    var ano = data.getFullYear();
    var dt = dia + "/" + mes + "/" + ano;
    return dt;
}

function sincronismo() {

    $.ajax
        ({
            url: 'indexAjax.php',
            data: 'op=async',
            type: 'POST',
            dataType: 'JSON',
            error: function (erro) {
                console.log(erro.responseText);
            },
            success: function (data) {
                for (var i = 0; i < data.length; i++) {
                    const [dtRel, horRel] = data[i].dt_rel.date.replace(/\..+/g, '').split(' ');
                    const [ano, mes, dia] = dtRel.split('-');
                    const [hora, min, seg] = horRel.split(':');
                    let horarioTreino = hora + ":" + min;
                    const dt = dia + "/" + mes + "/" + ano;

                    if (data[i].TABELA == "TREINO") {


                        //var dt = converteData(data[i].dt_rel.date); 
                        $('.async').append("<p onclick='getTreinos(" + data[i]['id'] + "," + dia + "," + mes + "," + ano + ")'><span class='black-text'>" + data[i].nome + "</span> fez um treino de " + data[i].descricao + " em " + dt + " as " + horarioTreino + "&nbsp;<i class='fa fa-search' aria-hidden='true'></i></p>");

                    } else if (data[i].TABELA == "PROVA") {

                        //var dt = converteData(data[i].dt_rel.date);

                        $('.async').append("<p onclick='pegaEvento(" + data[i]['id'] + ")'><span class='black-text'>" + data[i].nome + "</span>" + $('#script2').val() + data[i].descricao + $('#script4').val() + dt + "&nbsp;<i class='fa fa-search' aria-hidden='true'></i></p>");

                    } else if (data[i].TABELA == "RESULTADO") {

                        //var dt = converteData(data[i].dt_rel.date);

                        $('.async').append("<p onclick='pegaResult(" + data[i]['id'] + ")'><span class='black-text'>" + data[i].nome + "</span>" + $('#script3').val() + data[i].descricao + $('#script4').val() + dt + "&nbsp;<i class='fa fa-search' aria-hidden='true'></i></p>");

                    }
                }

            }
        });
}

function validateDate(data) {
    // Ex: 10/01/1985
    var regex = "\\d{2}/\\d{2}/\\d{4}";
    var dtArray = data.split("/");
    if (dtArray == null || dtArray.length < 3)
        return false;

    // Checks for dd/mm/yyyy format.
    var dtDay = dtArray[0];
    var dtMonth = dtArray[1];
    var dtYear = dtArray[2];

    if (dtMonth < 1 || dtMonth > 12)
        return false;
    else if (dtDay < 1 || dtDay > 31)
        return false;
    else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31)
        return false;
    else if (dtMonth == 2) {
        var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
        if (dtDay > 29 || (dtDay == 29 && !isleap))
            return false;
    }
    return true;
}

function getTreinos(id_treino, dia, mes, ano) {
    $.ajax
        ({
            url: 'ultsAtualizacoesAjax.php',
            type: 'POST',
            data: { 'op': 'selTreino', 'id': id_treino },
            dataType: 'JSON',
            beforeSend: function () {
                Materialize.toast($('#script9').val(), 90000, classes);
            },
            error: function (erro) {
                Materialize.toast($('#script10').val(), 2000, classesRed);
                console.log(erro.responseText);
            },
            success: function (data) {
                $('div .Onlyy').show();
                $('#salvarFeedback,#cria_comentario').hide();
                var aba = data[0].ds_treino;
                var aba2 = data[0].tipo;
                if (aba != null) {
                    abaMestre(aba, aba2);
                } else {
                    abaMestre('master', aba2);
                }
                $('#salvarFeedback').hide();
                $('#tx_text').text("Treino Realizado");
                $('.cr_car').hide();
                $('.gam').hide();

                //var tipo = data[0].tipo;
                var desc = data[0].ds_treino != null ? data[0].ds_treino.replace(/\|{3}/g, "'") : "";
                var descQueb = desc.split($('#script11').val());
                if (descQueb.length > 1) {
                    desc = descQueb[0];
                    if (descQueb[1] == 'sim') {
                        $('#rdSimples0').prop('checked', true);
                        $('#rdSimples1').prop('checked', false);
                        $('#rdSimples2').prop('checked', false);
                    }
                    if (descQueb[1] == 'parcialmente') {
                        $('#rdSimples0').prop('checked', false);
                        $('#rdSimples1').prop('checked', true);
                        $('#rdSimples2').prop('checked', false);
                    }
                    if (descQueb[1] == 'nao' || descQueb[1] == 'não') {
                        $('#rdSimples0').prop('checked', false);
                        $('#rdSimples1').prop('checked', false);
                        $('#rdSimples2').prop('checked', true);
                    }
                }
                else {
                    $('#rdSimples0').prop('checked', true);
                    $('#rdSimples1').prop('checked', false);
                    $('#rdSimples2').prop('checked', false);
                }
                $('#data-treino').val(dia + '/' + mes + '/' + ano);
                $('#data-treino').next('label').addClass('active');
                $('#data-treino2').val(dia + '/' + mes + '/' + ano);
                $('#data-treino2').next('label').addClass('active');
                $('#data-treino3').val(dia + '/' + mes + '/' + ano);
                $('#data-treino3').next('label').addClass('active');
                $('#data-treino4').val(dia + '/' + mes + '/' + ano);
                $('#data-treino4').next('label').addClass('active');
                $('#modalidade-treino option[value=' + data[0].cd_modalidade + ']').attr('selected', true);
                $('#modalidade-treino').material_select('destroy');
                $('#modalidade-treino').material_select();
                $('#modalidade-treino').attr('disabled', true);
                $('#modalidade-treino2 option[value=' + data[0].cd_modalidade + ']').attr('selected', true);
                $('#modalidade-treino2').material_select('destroy');
                $('#modalidade-treino2').material_select();
                $('#modalidade-treino3 option[value=' + data[0].cd_modalidade + ']').attr('selected', true);
                $('#modalidade-treino3').material_select('destroy');
                $('#modalidade-treino3').material_select();
                $('#modalidade-treino4 option[value=' + data[0].cd_modalidade + ']').attr('selected', true);
                $('#modalidade-treino4').material_select('destroy');
                $('#modalidade-treino4').material_select();
                $('#descr-treino').val(desc);
                $('#descr-treino').attr('readonly', true);
                $('#descr-treino').next('label').addClass('active');
                $('#inicio-treino').val(data[0]['dt_realizado']);
                $('#inicio-treino').next('label').addClass('active');
                $('#inicio-treino').attr('readonly', true);
                $('#inicio-treino2').val(data[0]['dt_realizado']);
                $('#inicio-treino2').next('label').addClass('active');
                $('#inicio-treino2').attr('readonly', true);
                $('#inicio-treino3').val(data[0]['dt_realizado']);
                $('#inicio-treino3').next('label').addClass('active');
                $('#inicio-treino3').attr('readonly', true);
                $('#inicio-treino4').val(data[0]['dt_realizado']);
                $('#inicio-treino4').next('label').addClass('active');
                $('#inicio-treino4').attr('readonly', true);

                if (data[0].tipo == 'normal' || data[0].tipo == 'avancado' || data[0].tipo == 'garmin' || data[0].tipo == 'strava' || data[0].tipo == 'polar') {
                    if (data[0].nr_distancia != '.00' && data[0].nr_distancia != '' && data[0].nr_distancia != '0') {
                        $('#distancia-total-treino').val(data[0].nr_distancia);
                        $('#distancia-total-treino').attr('readonly', true);

                        $('#distancia-total-treino2').val(data[0].nr_distancia);
                        $('#distancia-total-treino2').attr('readonly', true);

                        $('#distancia-total-treino3').val(data[0].nr_distancia);
                        $('#distancia-total-treino3').attr('readonly', true);

                        $('#distancia-total-treino4').val(data[0].nr_distancia);
                        $('#distancia-total-treino4').attr('readonly', true);
                        if (data[0].cd_med_distancia != null && data[0].cd_med_distancia > 0) {
                            $('#distancia-medida-treino option[value=' + data[0].cd_med_distancia + ']').attr('selected', true);
                            $('#distancia-medida-treino').material_select('destroy');
                            $('#distancia-medida-treino').material_select();
                            $('#distancia-medida-treino').attr('disabled', true);

                            $('#distancia-medida-treino2 option[value=' + data[0].cd_med_distancia + ']').attr('selected', true);
                            $('#distancia-medida-treino2').material_select('destroy');
                            $('#distancia-medida-treino2').material_select();
                            $('#distancia-medida-treino2').attr('disabled', true);

                            $('#distancia-medida-treino3 option[value=' + data[0].cd_med_distancia + ']').attr('selected', true);
                            $('#distancia-medida-treino3').material_select('destroy');
                            $('#distancia-medida-treino3').material_select();
                            $('#distancia-medida-treino3').attr('disabled', true);

                            $('#distancia-medida-treino4 option[value=' + data[0].cd_med_distancia + ']').attr('selected', true);
                            $('#distancia-medida-treino4').material_select('destroy');
                            $('#distancia-medida-treino4').material_select();
                            $('#distancia-medida-treino4').attr('disabled', true);
                        }
                        else
                            $('#distancia-medida-treino option[value=1]').attr('selected', true);
                    }
                    var duracao = data[0].nr_duracao;
                    $('#tempo-duracao-total-treino').val(duracao);
                    $('#tempo-duracao-total-treino2').val(duracao);
                    $('#tempo-duracao-total-treino3').val(duracao);
                    $('#tempo-duracao-total-treino4').val(duracao);
                    if (data[0].nr_duracao_liquida && String(data[0].nr_duracao_liquida).trim() !== "00:00:00" && String(duracao).trim() !== String(data[0].nr_duracao_liquida).trim()) {
                        $('input[id^=tempo-duracao-liquida-treino]').val(String(data[0].nr_duracao_liquida).trim());
                        $('div[id^=parentDuracaoLiquida]').removeClass('hide');
                    } else {
                        $('input[id^=tempo-duracao-liquida-treino]').val("");
                        $('div[id^=parentDuracaoLiquida]').addClass('hide');
                    }

                    if (data[0].cd_intensidade != null && data[0].cd_intensidade != '0' && data[0].cd_intensidade != 0) {
                        $('#esforco-treino option[value=' + data[0].cd_intensidade + ']').attr('selected', true);
                        $('#esforco-treino').material_select('destroy');
                        $('#esforco-treino').material_select();
                    }
                    else
                        $('#esforco-treino option[value=1]').attr('selected', true);

                    if (data[0].nr_gastocal != 0 && data[0].nr_gastocal != null & data[0].nr_gastocal != '0.00') {
                        var gasto = data[0].nr_gastocal.replace('.', ',');
                        $('#gasto-calorico-treino').val(gasto);
                        $('#gasto-calorico-treino').attr('readonly', true);
                        $('#gasto-calorico-treino2').val(gasto);
                        $('#gasto-calorico-treino2').attr('readonly', true);
                        $('#gasto-calorico-treino3').val(gasto);
                        $('#gasto-calorico-treino3').attr('readonly', true);
                        $('#gasto-calorico-treino4').val(gasto);
                        $('#gasto-calorico-treino4').attr('readonly', true);
                    }

                    if (data[0].tipo == 'normal') {
                        if (data[0].nr_fc_med != null && data[0].nr_fc_med != 0 && data[0].nr_fc_med != '0')
                            $('#frequencia-media-treino').val(data[0].nr_fc_med);
                        $('#frequencia-media-treino').attr('readonly', true);
                    }
                    else {
                        if (data[0].nr_fc_med != null && data[0].nr_fc_med != 0 && data[0].nr_fc_med != '0')
                            $('#frequencia-media-avancada-treino').val(data[0].nr_fc_med);
                        $('#frequencia-media-avancada-treino').attr('readonly', true);
                        $('#frequencia-media-avancada-treino').next('label').addClass('active');
                        $('#frequencia-media-avancada-treino2').val(data[0].nr_fc_med);
                        $('#frequencia-media-avancada-treino2').attr('readonly', true);
                        $('#frequencia-media-avancada-treino2').next('label').addClass('active');
                        $('#frequencia-media-avancada-treino3').val(data[0].nr_fc_med);
                        $('#frequencia-media-avancada-treino3').attr('readonly', true);
                        $('#frequencia-media-avancada-treino3').next('label').addClass('active');
                        $('#frequencia-media-avancada-treino4').val(data[0].nr_fc_med);
                        $('#frequencia-media-avancada-treino4').attr('readonly', true);
                        $('#frequencia-media-avancada-treino4').next('label').addClass('active');
                        if (data[0].nr_fcb != null && data[0].nr_fcb != 0 && data[0].nr_fcb != '0')
                            $('#frequencia-basal-treino').val(data[0].nr_fcb);
                        $('#frequencia-basal-treino').attr('readonly', true);
                        $('#frequencia-basal-treino').next('label').addClass('active');
                        if (data[0].nr_fc_ini != null && data[0].nr_fc_ini != 0 && data[0].nr_fc_ini != '0')
                            $('#frequencia-inicial-treino').val(data[0].nr_fc_ini);
                        $('#frequencia-inicial-treino').attr('readonly', true);
                        $('#frequencia-inicial-treino').next('label').addClass('active');
                        if (data[0].nr_fc_max != null && data[0].nr_fc_max != 0 && data[0].nr_fc_max != '0')
                            $('#frequencia-maxima-treino').val(data[0].nr_fc_max);
                        $('#frequencia-maxima-treino').attr('readonly', true);
                        $('#frequencia-maxima-treino').next('label').addClass('active');
                        $('#frequencia-maxima-treino2').val(data[0].nr_fc_max);
                        $('#frequencia-maxima-treino2').attr('readonly', true);
                        $('#frequencia-maxima-treino2').next('label').addClass('active');
                        $('#frequencia-maxima-treino3').val(data[0].nr_fc_max);
                        $('#frequencia-maxima-treino3').attr('readonly', true);
                        $('#frequencia-maxima-treino3').next('label').addClass('active');
                        $('#frequencia-maxima-treino4').val(data[0].nr_fc_max);
                        $('#frequencia-maxima-treino4').attr('readonly', true);
                        $('#frequencia-maxima-treino4').next('label').addClass('active');

                        if (data[0].nr_temperatura != null && data[0].nr_temperatura != 0)
                            $('#temperatura-treino').val(data[0].nr_temperatura);
                        $('#temperatura-treino').attr('readonly', true);
                        if (data[0].cd_sono != null && data[0].cd_sono != 0) {
                            $('#sono-anterior-treino option[value=' + data[0].cd_sono + ']').attr('selected', true);
                            $('#sono-anterior-treino').material_select('destroy');
                            $('#sono-anterior-treino').material_select();
                        }
                        if (data[0].cd_estfis_antes != null && data[0].cd_estfis_antes != 0)

                            $('#estado-fisico-antes-treino option[value=' + data[0].cd_estfis_antes + ']').attr('selected', true);
                        $('#estado-fisico-antes-treino').material_select('destroy');
                        $('#estado-fisico-antes-treino').material_select();
                    }
                    if (data[0].cd_estfis_depois != null && data[0].cd_estfis_depois != 0) {
                        $('#estado-fisico-depois-treino option[value=' + data[0].cd_estfis_depois + ']').attr('selected', true);
                        $('#estado-fisico-depois-treino').material_select('destroy');
                        $('#estado-fisico-depois-treino').material_select();
                    }

                    if (data.length > 1) {
                        if (data[1].ds_local != null && data[1].ds_local != '')
                            $('#local-treino').val(data[1].ds_local);
                        $('#local-treino').attr('readonly', true);

                        if (data[1].cd_percurso != null && data[1].cd_percurso != 0) {
                            $('#percurso-treino option[value=' + data[1].cd_percurso + ']').attr('selected', true);
                            $('#percurso-treino').material_select('destroy');
                            $('#percurso-treino').material_select();
                        }
                        if (data[1].cd_terreno != null && data[1].cd_terreno != 0) {
                            $('#terreno-treino option[value=' + data[1].cd_terreno + ']').attr('selected', true);
                            $('#terreno-treino').material_select('destroy');
                            $('#terreno-treino').material_select();
                        }
                        if (data[1].cd_tipotreino != null && data[1].cd_tipotreino != 0) {
                            $('#terreno-treino option[value=' + data[1].cd_tipotreino + ']').attr('selected', true);
                            $('#tipo-treino').material_select('destroy');
                            $('#tipo-treino').material_select();
                        }
                    }
                    if (data[0].series != null) {
                        var distancia = new Array();
                        var intervalo = new Array();
                        var intervaloLabel = '';
                        var med_distancia = new Array();
                        var med_distancia_val = new Array();
                        var duracao = new Array();
                        var frequencia = new Array();
                        var vd2 = '';
                        var media = '';
                        var segundos = 0;
                        var duracaoSplit = Array();
                        var html_inputs;

                        for (var item in data[0].series) {
                            var seriesG = "<tr>";
                            seriesG += "<td>" + data[0].series[item].nr_repet + "</td>";
                            seriesG += "<td>" + data[0].series[item].nr_distancia + "</td>";
                            seriesG += "<td>" + data[0].series[item].nr_duracao + "</td>";
                            seriesG += "<td>" + data[0].series[item].nr_intervalo + "</td>";
                            seriesG += "<td>" + data[0].series[item].nr_frq_card + "</td>";
                            seriesG += "<tr>";

                            $('.class_row').append(seriesG);

                            for (var item in data[0].series) {
                                if (item == 0)
                                    $('#codigo_serie').val($('#codigo_serie').val() + data[0].series[item].cd_serie);
                                else
                                    $('#codigo_serie').val($('#codigo_serie').val() + "," + data[0].series[item].cd_serie);
                                intervaloLabel = '';
                                med_distancia.push(data[0].series[item].cd_med_distancia == 1 ? "m" : "km");
                                med_distancia_val.push(med_distancia == 'm' ? 1 : 2);
                                distancia.push(data[0].series[item].nr_distancia);
                                intervalo.push(data[0].series[item].nr_intervalo);
                                if (data[0].series[item].nr_intervalo != '00:00') {
                                    intervaloLabel = '(i=' + data[0].series[item].nr_intervalo + ')';
                                }
                                if (data[0].series[item].nr_duracao == 0 || data[0].series[item].nr_duracao == '' || data[0].series[item].nr_duracao == '.00') {
                                    data[0].series[item].nr_duracao = '00:00:00';
                                }
                                duracao.push(data[0].series[item].nr_duracao);
                                duracaoSplit = duracao[item].split(':');
                                segundos = (parseInt(duracaoSplit[0]) * 3600) + (parseInt(duracaoSplit[1]) * 60) + parseInt(duracaoSplit[2]);
                                frequencia.push(data[0].series[item].nr_frq_card);
                                vd2 = vd(med_distancia[item], distancia[item], segundos);
                                media = data[0].series[item].media;
                                html_inputs =
                                    '<input type="hidden" name="serie_distancia[]"        value="' + distancia[item] + '" class=distanciaValores data-med="' + med_distancia[item] + '" />' +
                                    '<input type="hidden" name="serie_med_distancia[]"    value="' + med_distancia_val[item] + '" />' +
                                    '<input type="hidden" name="serie_duracao[]"          value="' + duracao[item] + '"  class=duracaoValores />' +
                                    '<input type="hidden" name="serie_intervalo[]"        value="' + intervalo[item] + '" />' +
                                    '<input type="hidden" name="serie_frequencia[]"       value="' + frequencia[item] + '" />';
                                $('div.multipleSeries').append("<div class='dvSerie'>" + distancia[item] + med_distancia[item] + " " + intervaloLabel + " - " + duracao[item] + " - " + frequencia[item] + "bpm" + " - " + vd2 + " - " + media + html_inputs + "</div>");
                            }
                            $('div.multipleSeries').on('click', 'div.dvSerie', function () {
                                var i = $(this).index();
                                var duracaoIndex = duracao[i].split(':');
                                $('#distancia-serie-treino').val(distancia[i]);
                                $('#distancia-medida-serie-treino').val(med_distancia_val[i]);
                                $('#distancia-medida-serie-treino').material_select('destroy');
                                $('#distancia-medida-serie-treino').material_select();
                                $('#hora-tempo-serie-treino').val(duracaoIndex[0]);
                                $('#minuto-tempo-serie-treino').val(duracaoIndex[1]);
                                $('#segundo-tempo-serie-treino').val(duracaoIndex[2]);
                                if (intervalo[i] != '00:00') {
                                    var intervaloIndex = intervalo[i].split(':');
                                    $('#bool-intervalo-serie-treino').attr('checked', true);
                                    $('#minuto-intervalo-serie-treino').val(intervaloIndex[0]);
                                    $('#segundo-intervalo-serie-treino').val(intervaloIndex[1]);
                                }
                                $('#frequencia-cardiaca-serie-treino').val(frequencia[i]);
                                $(document).off('click', '.addSerie');
                                $('.addSerie').on('click', function () {
                                    addSerie(i);
                                });
                            });
                        }
                    }
                }
                $('#salvarFeedback').off('click');
                $('#salvarFeedback').on('click', function () {
                    validaFeedback(e.event.id);
                });
            },
            complete: function () {
                $('#feedback').modal({
                    dismissible: true,
                    ready: function () {
                        $('#feedback > .modal-content').scrollTop(0);
                        $('#feedback').find(':input').attr('disabled', true);
                        $('#feedback').find('ul.tabs > li:not(li.menuNew)').hide();
                        $('#feedback').find('ul.tabs > li.menuNew > a').removeAttr('onclick');
                        $('#the_strava').show();
                        $('#the_polar').show();

                    },
                    complete: function () {
                        $('#salvarFeedback,#cria_comentario').show();
                        $('#feedback').find(':input').removeAttr('disabled');
                        $('#feedback').find('ul.tabs > li').show();
                    },
                });
                $('#the_last').hide();
                $('#the_last_strava').hide();
                $('#the_last_polar').hide();
                $('#the_fur').show();
                $('.morC').hide();
                $('#capa').hide();
                $('#feedback').modal('open');
                $('.toast').fadeOut();
                Materialize.updateTextFields();
            }
        });
}

function geraApexChart(_array, _label, _id, _type, _text, _typeGraf) {
    var options = {
        series: [{
            name: _text,
            data: _array
        }],
        chart: {
            height: 200,
            type: _typeGraf,
            toolbar: {
                tools: {
                    pan: false,
                },
            },
        },
        plotOptions: {
            bar: {
                borderRadius: 10,
                dataLabels: {
                    position: 'top', // top, center, bottom
                },
            }
        },
        dataLabels: {
            enabled: true,
            formatter: function (val) {
                if (_type == 0 || _type == 4 || _type == 13 || _type == 14 || _type == 18)
                    return val;
                else if (_type == 1)
                    return segundosParaTempo2(val, 12);
                else if (_type == 2 || _type == 16 || _type == 17) {
                    if (aux5TAT == 1 || _type == 16 || _type == 17)
                        return val + "m";
                    else
                        return val + "km";
                } else if (_type == 3)
                    return val + "cal";
                else if (_type == 5 || _type == 6 || _type == 7 || _type == 8)
                    return val + "bpm";
                else if (_type == 9 || _type == 10 || _type == 11 || _type == 12)
                    return val + "watts";
                else if (_type == 15)
                    return val + "ºC"
            },
            offsetY: -20,
            style: {
                fontSize: '12px',
                colors: ["#304758"]
            }
        },

        xaxis: {
            categories: _label,
            position: 'bottom',
            axisBorder: {
                show: false
            },
            axisTicks: {
                show: false
            },
            crosshairs: {
                fill: {
                    type: 'gradient',
                    gradient: {
                        colorFrom: '#D8E3F0',
                        colorTo: '#BED1E6',
                        stops: [0, 100],
                        opacityFrom: 0.4,
                        opacityTo: 0.5,
                    }
                }
            },
            tooltip: {
                enabled: true,
            }
        },
        yaxis: {
            axisBorder: {
                show: false
            },
            axisTicks: {
                show: false,
            },
            labels: {
                show: false,
                formatter: function (val) {
                    if (_type == 0)
                        return val;
                    else if (_type == 1)
                        return segundosParaTempo2(val, 12);
                    else if (_type == 2)
                        return val + "km";
                }
            }
        },
        title: {
            text: _text,
            floating: true,
            offsetY: 330,
            align: 'left',
            style: {
                color: '#000'
            }
        }
    };
    var chart = new ApexCharts(document.querySelector("#" + _id), options);
    chart.render();
}

function pegaEvento(id_event) {

    $.ajax({
        type: "POST",
        url: "ultsAtualizacoesAjax.php",
        dataType: "json",
        data: {
            op: "event",
            id: id_event
        }, error: function (erro) {

            console.log(erro.responseText);
            console.log("defrt");

        }, success: function (data) {

            if (typeof data[0]['ds_evento'] !== "undefined") {

                $('#safe').html("<i class='fa fa-heartbeat'></i> " + data[0]['ds_evento'] + " <i class='fa fa-times right modal-action modal-close'></i>");

            } if (typeof data[0]['dt_evento']['date'] !== "undefined") {

                var claus = data[0]['dt_evento']['date'].replace(/\-/g, '/');
                var dataArray = claus.split(' ')[0].split('/').reverse();
                $('#dt_evento').val(dataArray.join('/') + " " + claus.split(' ')[1]);
                $('#dt_evento').next('label').addClass('active');

            } if (typeof data[0]['ds_modalidade'] !== "undefined") {

                $('#ds_modalidade').val(data[0]['ds_modalidade']);
                $('#ds_modalidade').next('label').addClass('active');

            } if (typeof data[0]['ds_local_evento'] !== "undefined") {

                $('#local').val(data[0]['ds_local_evento']);
                $('#local').next('label').addClass('active');

            } if (typeof data[0]['ds_distancia_evento'] !== "undefined") {

                $('#ds_distancia').val(data[0]['ds_distancia_evento']);
                $('#ds_distancia').next('label').addClass('active');

            }

        }, complete: function () {

            $('#prova').modal('open');
        }

    });
}

function removeEmojis(text) {
    const regex = /[\u{1F300}-\u{1F5FF}\u{1F600}-\u{1F64F}\u{1F680}-\u{1F6FF}\u{2600}-\u{26FF}\u{2700}-\u{27BF}\u{1F900}-\u{1F9FF}\u{1F1E6}-\u{1F1FF}\u{1F191}-\u{1F251}]/gu;
    return text.match(regex);
}

function pegaResult(id_result) {

    $.ajax({
        type: "POST",
        url: "ultsAtualizacoesAjax.php",
        dataType: "json",
        data: {
            op: "result",
            id: id_result
        }, error: function (erro) {

            console.log(erro.responseText);

        }, success: function (data) {

            if (typeof data[0]['ds_evento'] !== "undefined") {

                $('#safes').html("<i class='fa fa-heartbeat'></i> " + data[0]['ds_evento'] + " <i class='fa fa-times right modal-action modal-close'></i>");

            } if (typeof data[0]['dt_evento']['date'] !== "undefined") {

                var claus = data[0]['dt_evento']['date'].replace(/\-/g, '/');
                var dataArray = claus.split(' ')[0].split('/').reverse();
                $('#data_evento').val(dataArray.join('/') + " " + claus.split(' ')[1]);
                $('#data_evento').next('label').addClass('active');

            } if (typeof data[0]['ds_modalidade'] !== "undefined") {

                $('#modalidade').val(data[0]['ds_modalidade']);
                $('#modalidade').next('label').addClass('active');

            } if (typeof data[0]['tempo'] !== "undefined") {

                $('#dt_tempo').val(data[0]['tempo']);
                $('#dt_tempo').next('label').addClass('active');

            } if (typeof data[0]['nr_distancia'] !== "undefined") {

                var medida = data[0]['nr_distancia'];
                var distancia = medida.replace(".", ",");
                if (data[0]['ds_med_distancia'] != null) {

                    $('#nr_distancia').val(distancia + data[0]['ds_med_distancia']);

                } else {

                    $('#nr_distancia').val(distancia);

                }
                $('#nr_distancia').next('label').addClass('active');


            }
            if (typeof data[0]['nr_col_categ'] !== "undefined") {

                $('#col_cat').val(data[0]['nr_col_categ']);
                $('#col_cat').next('label').addClass('active');

            } if (typeof data[0]['nr_col_geral'] !== "undefined") {

                $('#col_geral').val(data[0]['nr_col_geral']);
                $('#col_geral').next('label').addClass('active');

            }

        }, complete: function () {

            $('#resultado').modal('open');
        }

    });
}

async function fetchDataCupom(type, cupom, emp, cdAux = 0) {
    class CupomError extends Error {
        constructor(message) {
            super(message);
            this.name = "CupomError";
        }
    }

    try {
        if (!cupom || !emp || !type)
            throw new CupomError("Dados insuficientes para busca de cupom");

        if (type !== "plano" && type !== "evento" && type !== "produto")
            throw new CupomError("Tipo de cupom invalido");

        const querySearchParams = '?' + new URLSearchParams({
            op: "cupom",
            cupom,
            emp,
            cd_plano: cdAux,
            type
        });

        const response = await fetch(`pre-cadastro-financeiro-ajax.php${querySearchParams}`);
        const { status } = response;
        const dataTxt = await response.text();
        const data = JSON.parse(dataTxt);

        if (status >= 400) {
            const error = data.error ? data.error : "ERRO AO BUSCAR CUPOM";
            throw new CupomError(error);
        }

        return data;
    } catch (e) {
        console.log(e);
        const { name, message } = e;
        const error = name === "CupomError" ? message : "ERRO AO BUSCAR CUPOM";
        Materialize.toast(error, 4000, "white-text red");
        return Promise.reject(error);
    }
}


function validaTempo_(_tempo) {
    _hora = "00";
    if (_tempo != "" && _tempo.length > 4 && _tempo != "00:00:00" && _tempo != "00:00" && _tempo != "00:00:0") {
        tempoSplit = _tempo.split(":");
        if (tempoSplit.length == 2) {
            if (tempoSplit[0] < 60 && tempoSplit[1] < 60)
                return _hora + ":" + tempoSplit[0] + ":" + tempoSplit[1];
            else
                return false;
        } else {
            if (tempoSplit[0] < 24 && tempoSplit[1] < 60 && tempoSplit[2] < 60)
                return tempoSplit[0] + ":" + tempoSplit[1] + ":" + (tempoSplit[2].length < 2 ? "0" + tempoSplit[2] : tempoSplit[2]);
            else
                return false;
        }
    } else {
        return false;
    }
}

function isValidcpf(cpf) {
    if (cpf.length != 11 ||
        cpf == "00000000000" ||
        cpf == "11111111111" ||
        cpf == "22222222222" ||
        cpf == "33333333333" ||
        cpf == "44444444444" ||
        cpf == "55555555555" ||
        cpf == "66666666666" ||
        cpf == "77777777777" ||
        cpf == "88888888888" ||
        cpf == "99999999999")
        return false;

    add = 0;

    for (i = 0; i < 9; i++)
        add += parseInt(cpf.charAt(i)) * (10 - i);
    rev = 11 - (add % 11);
    if (rev == 10 || rev == 11)
        rev = 0;
    if (rev != parseInt(cpf.charAt(9)))
        return false;
    add = 0;
    for (i = 0; i < 10; i++)
        add += parseInt(cpf.charAt(i)) * (11 - i);
    rev = 11 - (add % 11);
    if (rev == 10 || rev == 11)
        rev = 0;
    if (rev != parseInt(cpf.charAt(10)))
        return false;

    return true;
}

/*function domoDeFerro($string) {
    // Convert question marks to a special thing so that we can remove
    // question marks later without any problems.
    $string = str_replace("?", "{%}", $string);
    // Convert the text into UTF-8.
    $string = mb_convert_encoding($string, "ISO-8859-1", "UTF-8");
    // Convert the text to ASCII.
    $string = mb_convert_encoding($string, "UTF-8", "ISO-8859-1");
    // Replace anything that is a question mark (left over from the conversion.
    $string = preg_replace('/(\s?\?\s?)/', ' ', $string);
    // Put back the .
    $string = str_replace("{%}", "?", $string);
    // Trim and return.
    return trim($string);
}*/

const isEmpty = (value) => {
    const txtValue = String(value).trim();
    const invalidValues = ["0", "", "null", "undefined", ".00", "0,00"];
    if (invalidValues.indexOf(txtValue) > -1) return true;
    return false;
}

$(document).on("mousedown", "ul", function (e) {
    var scrollBarWidth = 15;
    var isScrollbar = (e.offsetX > $(this).width() - scrollBarWidth);
    if (isScrollbar) {
        console.log('Clique na barra de rolagem do ul!');
        e.preventDefault();
    }
});

$(document).on("mousedown", "div", function (e) {
    var scrollBarWidth = 15;
    var isScrollbar = (e.offsetX > $(this).width() - scrollBarWidth);
    if (isScrollbar) {
        console.log('Clique na barra de rolagem da div!');
        e.preventDefault();
    }
});


