/***** INICIALES *****/
let datalist_click = [false];
$('.richtext').richText();
$('.datepicker').MonthPicker({ MaxMonth: 0, Button: false });
loadEmpleos();

/***** EMPLEOS *****/
function loadEmpleos(){
    $.ajax({
        url:  'action/empleos_action.php',
        type: 'POST', 
        dataType: 'json',
        data: { tipo: 1, id: $('#idUser').val() },
        success: function(result) {
            $('main').children('div').html(result['html']);
            $('.ing-editar').click(editarEmpleo);
            $('.ing-basura').click(eliminarEmpleo);
        },
        error: function(jqXHR, textStatus, errorThrown ){
            $('main').children('div').html(`<div class='msgAviso d-flex flex-row justify-content-between align-items-stretch mt-4'>
                <div class='iconAviso bg-warning d-flex justify-content-center align-items-center'><i class='display-3 ing-importante'></i></div>
                <div class='txtAviso flex-grow-1 d-flex flex-column justify-content-center align-items-center'>
                    <div class='display-5 indivisa-text-black mb-3'>¡Lo sentimos!</div>
                    <div class='text-center'>Se presentó un error inesperado en el sistema.<br />Por favor inténtalo más tarde.</div>
                </div>
            </div>`);
        }
    });
}

/***** AGREGAR | EDITAR *****/
$('#btnAgregar').click(function(){
    $('#titModal').text('Nuevo Empleo');
    $('#btnOkEmpleo').data('tipo', '2');
    $('#btnOkEmpleo').data('id', '0');
    $('#modalEmpleo').modal('show');
});
$('#modalEmpleo').on('hidden.bs.modal', function(){
    $('#inputPuesto').val('').removeClass('is-invalid');
    $('#inputEmpresa').val('').removeClass('is-invalid');
    if ($('#switchActual').hasClass('active'))
        $('#switchActual').click();
    $('#inputFechaInicio').val('').removeClass('is-invalid');
    $('#inputFechaFin').val('').removeClass('is-invalid');
    $('#txtDescripcion').val('');
    $('#txtDescripcion').text('');
    $('#txtDescripcion').siblings('div.richText-editor').html('');
    $('.alert').hide();
});
$('#dlEmpresa ul li').mousedown({index: 0},mousedownDataList);
$('#dlEmpresa ul li').mouseup({elem: 'Empresa', index: 0},mouseupDataList);
$('#inputEmpresa').click({elem: 'Empresa'},clickDataList);
$('#inputEmpresa').blur({elem: 'Empresa', index: 0},blurDataList);
$('#inputEmpresa').keyup({elem: 'Empresa'},inputKeyUp);
$('#iconEmpresa').mousedown({index: 0},mousedownDataList);
$('#iconEmpresa').mouseup({elem: 'Empresa', index: 0},mouseupDataList);
$('#iconEmpresa').click({elem: 'Empresa'},limpiaInputDL);
$('#dlEmpresa ul li').click({elem: 'Empresa'}, itemDataList);
$('#btnOkEmpleo').click(function(){
    if (datosValidos()){
        $('#modalEmpleo').modal('hide');
        $.ajax({
            url:  'action/empleos_action.php',
            type: 'POST', 
            dataType: 'json',
            data: { 
                tipo: $(this).data('tipo'), 
                id: $(this).data('id'), 
                puesto: $('#inputPuesto').val(), 
                empresa: $('#inputEmpresa').val(), 
                inicio: $('#inputFechaInicio').val(), 
                fin: $('#inputFechaFin').val(),
                descripcion: $('#txtDescripcion').val()
            },
            success: function(result) {
                if(result['error']!= '' &&  result['error'] !== undefined){
                    $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
                    $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
                    $('.msg1').text('¡Error!');
                    $('.msg2').html(result['error']);
                    $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
                } else {
                    $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
                    $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-aceptar');
                    $('.msg1').text('¡Felicidades!');
                    $('.msg2').html(result['ok']);
                    $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
                    loadEmpleos();
                }            
                $('#modalAviso').modal('show');
            },
            error: function(jqXHR, textStatus, errorThrown ){                
                $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
                $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
                $('.msg1').text('¡Lo sentimos!');
                if ($(this).data('tipo') == '2')
                    $('.msg2').text('Se presentó un error inesperado al momento de agregar el nuevo empleo');
                else
                    $('.msg2').text('Se presentó un error inesperado al momento de actualizar el nuevo empleo');
                $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
                $('#modalAviso').modal('show');
            }
        });
    }
});
function datosValidos(){
    let valido = true;
    if($('#inputPuesto').val() == ''){
        $('#inputPuesto').addClass('is-invalid');
        valido = false;
    } else {
        $('#inputPuesto').removeClass('is-invalid');
    }
    if($('#inputEmpresa').val() == ''){
        $('#inputEmpresa').addClass('is-invalid');
        valido = false;
    } else {
        $('#inputEmpresa').removeClass('is-invalid');
    }
    if($('#inputFechaInicio').val() == ''){
        $('#inputFechaInicio').addClass('is-invalid');
        valido = false;
    } else {
        $('#inputFechaInicio').removeClass('is-invalid');
    }
    if (!$('#actual').is(':checked') && $('#inputFechaFin').val() == ''){
        $('#inputFechaFin').addClass('is-invalid');
        valido = false;
    } else {
        $('#inputFechaFin').removeClass('is-invalid');
    }
    return valido;
}
function editarEmpleo(){
    let id = $(this).data('id');
    let puesto = $(this).parent().siblings('div.indivisa-text-italic').text();
    $.ajax({
        url:  'action/empleos_action.php',
        type: 'POST', 
        dataType: 'json',
        data: { tipo: 5, id: id  },
        success: function(result) {
            if(result['error']!= '' &&  result['error'] !== undefined){
                $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
                $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
                $('.msg1').text('¡Error!');
                $('.msg2').html(result['error'] + '<span class="text-azul1">' + puesto  + '</span>');
                $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
                $('#modalAviso').modal('show');
            } else {
                $('#inputPuesto').val(result['puesto']);
                $('#inputEmpresa').val(result['empresa']);
                $('#inputFechaInicio').val(result['inicio']);
                if (result['fin'] == '') {
                    if (!$('#switchActual').hasClass('active'))
                        $('#switchActual').click();
                } else {
                    if ($('#switchActual').hasClass('active'))
                        $('#switchActual').click();
                    $('#inputFechaFin').val(result['fin']);
                }
                $('#txtDescripcion').siblings('div.richText-editor').html(result['descripcion']);
                $('#titModal').text('Nuevo Empleo');
                $('#btnOkEmpleo').data('tipo', '3');
                $('#btnOkEmpleo').data('id', id);
                $('#modalEmpleo').modal('show');
            }
        },
        error: function(jqXHR, textStatus, errorThrown ){
            $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
            $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
            $('.msg1').text('¡Lo sentimos!');
            $('.msg2').text('Se presentó un error inesperado al momento de editar el empleo ' + puesto);
            $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
            $('#modalAviso').modal('show');
        }
    });
}
$('#switchActual').click(function(){
    $(this).toggleClass('active');
    if ($('.span').text() == $(this).data('on')){
        $('.span').text($(this).data('off'));
        $(this).children('input').prop('checked',false);
        $('#inputFechaFin').show();
        $('#lblActualidad').hide();
    } else {
        $('.span').text($(this).data('on'));
        $(this).children('input').prop('checked',true);
        $('#inputFechaFin').val('').hide();
        $('#lblActualidad').show();        
    }                    
});

/***** ELIMINAR *****/
function eliminarEmpleo(){
    $('#modalEliminar').children().children().children('div.modal-body').children('span').text($(this).parent().siblings('div.indivisa-text-italic').text());
    $('#btnOkEliminar').data('id',$(this).data('id'));
    $('#modalEliminar').modal('show'); 
}
$('#btnOkEliminar').click(function(){
    $('#modalEliminar').modal('hide');
    $.ajax({
        url:  'action/empleos_action.php',
        type: 'POST', 
        dataType: 'json',
        data: { tipo: 4, id: $(this).data('id') },
        success: function(result) {
            if(result['error']!= '' &&  result['error'] !== undefined){
                $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
                $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
                $('.msg1').text('¡Error!');
                $('.msg2').html(result['error'] + '<span class="text-azul1">' + $('#modalEliminar').children().children().children('div.modal-body').children('span').text() + '</span>');
                $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
            } else {
                $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
                $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-aceptar');
                $('.msg1').text('¡Felicidades!');
                $('.msg2').html(result['ok'] + '<span class="text-azul1">' + $('#modalEliminar').children().children().children('div.modal-body').children('span').text() + '</span>');
                $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
                loadEmpleos();
            }
            $('#modalAviso').modal('show');
        },
        error: function(jqXHR, textStatus, errorThrown ){
            $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
            $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
            $('.msg1').text('¡Lo sentimos!');
            $('.msg2').text('Se presentó un error inesperado al momento de eliminar el empleo ' + $('#modalEliminar').children().children().children('div.modal-body').children('span').text());
            $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
            $('#modalAviso').modal('show');
        }
    });
});

/***** FECHAS *****/
$('input.endDate').change(function(){
    var sStart = $(this).siblings('input').val().split('/');
    var sEnd = $(this).val().split('/');
    var dtStart = new Date(parseInt(sStart[1]),parseInt(sStart[0])-1,1);
    var dtEnd = new Date(parseInt(sEnd[1]),parseInt(sEnd[0])-1,1);
    if (dtEnd < dtStart){
        $('.alert').show();
        $(this).val('');
    }
    else
        $('.alert').hide();
});