var historyJson = {};
const maxIterations = 200;

function filterHistory(){
    var dateFrom = new Date($('#historyFrom').val() + 'T' + $('#historyTimeFrom').val());
    
    var dateTo = new Date($('#historyTo').val() + 'T' + $('#historyTimeTo').val());
        
    loadHistory(dateFrom, dateTo);
}

const startSearch = function(){
    filterHistory();
}
$('#btn-searchHistory').click(startSearch);

function loadHistory(dateFrom, dateTo){
    
    var eventRequest = {
        clientUUID : json[jsonIndex].clientUUID,
        localDateTimeFrom : dateFrom,
        localDateTimeTo : dateTo,
        mockedResponseId : json[jsonIndex].mockedResponseId
    };
    $.ajax({
        url: host + '/api/event',
        type: 'POST',
        data: JSON.stringify(eventRequest, null, 2),
        contentType: "application/json"
    }).done(function(data){
        historyJson = data;
        displayHistory();
    });
}

function getLast24hHistoryData(){
    $.getJSON(host + '/api/event/' + clientUUID + '/' + lastId, function(data){
        historyJson = data;
        displayHistory();
    });
}

function historyToHtml(){
    var innerHTML = '';
    var iterations = historyJson.length <= maxIterations ? historyJson.length : maxIterations;
    for(let i=0; i<iterations; i++){
        let style = i%2==0 ? ' class="even"' : '';
        innerHTML += '<tr' + style + '>' +
            '<td>' + historyJson[i].dateTimeStamp + '</td>' +
            '<td>' + historyJson[i].interfaceName + '</td>' +
        '</tr>';
    }
    return innerHTML;
}

function displayHistory(){
    $('#historyTable tbody').html(historyToHtml());
}
