$(document).ready(function() {
    // Carga Datos Tarea
    $('#modalTareaForm').on('show.bs.modal', function (event) {
        var button = $(event.relatedTarget)
        var modal = $(this);

        modal.find('#idTarea').val(0);
        modal.find('.input-titulo').val('');
        modal.find('.text-descripcion').val('');
        tinymce.get('tareaDescripcion').setContent('');
        modal.find('.select-id-estado-tarea').val('');
        modal.find('.select-id-estado-tarea').parent().parent().show();
        modal.find('.lista-comentarios').html('');

        if (button.data('id') == 0) {
            modal.find('.btn-eliminar').hide();
            modal.find('.btn-editar').html('Crear');
            modal.find('.modal-wait').show();
            modal.find('.select-id-estado-tarea').parent().parent().hide();
        }
        else {
            var parametros = {
                id : button.data('id')
            };

            $.ajax({
                data:  parametros,
                url:   '/tareas/info',
                type:  'post',
                beforeSend: function () {
                },
                success:  function (response) {
                    if (response.status == 'success') {
                        let tarea = response.tarea;
                        modal.find('#idTarea').val(tarea.id);
                        modal.find('.input-titulo').val(tarea.titulo);
                        modal.find('.text-descripcion').val(tarea.descripcion);
                        tinymce.get('tareaDescripcion').setContent(tarea.descripcion);
                        modal.find('.select-id-responsable').val(tarea.id_responsable);
                        modal.find('.select-id-estado-tarea').val(tarea.id_estado_tarea);
                        modal.find('.select-id-estado-tarea').removeClass('estado-tarea-1').removeClass('estado-tarea-2')
                        .removeClass('estado-tarea-3').removeClass('estado-tarea-4');
                        modal.find('.select-id-estado-tarea').addClass('estado-tarea-' + tarea.id_estado_tarea);

                        modal.find('.select-id-prioridad-tarea').val(tarea.prioridad);
                        modal.find('.input-fecha-limite').val(tarea.fecha_limite);

                        modal.find('.cantidad-comentarios').html(tarea.comentarios.length);
                        if (typeof tarea.comentarios != "undefined") {
                            //html.find('.cantidad-comentarios').html(tarea.comentarios.length);
                            for (let comentario of tarea.comentarios) {
                                // carga_producto(producto, accion);
                                let html = $($.parseHTML($('.copy').html()));


                                html.find('.comentario-avatar').html(usuarios[comentario.id_usuario].charAt(0));
                                html.find('.comentario-derecha p strong').html(usuarios[comentario.id_usuario]);
                                html.find('.comentario-fecha').html(fecha(comentario.created));
                                html.find('.comentario-contenido').html(comentario.comentario);

                                modal.find('.lista-comentarios').append(html);
                            }
                        }
                    } else {
                        alert(response.message);
                    }
                }
            });
        }
    });
    
    $('#modalTareaForm #formTarea').submit(function( event ) {
        event.preventDefault();
        $('#modalTareaForm .btn-editar').click();
    });

    $('#modalTareaForm .btn-editar' ).click(function() {
        $('#formTarea').find('#tareaDescripcion').val(tinymce.get("tareaDescripcion").getContent());
        var parametros = $('#formTarea').serialize();
        $.ajax({
            data:  parametros,
            url:   '/tareas/guardar',
            type:  'post',
            beforeSend: function () {
            },
            success:  function (response) {
                if (response.status == 'success') {
                    location.reload();
                    /*
                    var id = $('#idTarea').val();

                    if (id == 0) {
                        location.reload();
                    } else {
                        let tarea = $('#tarea' + id);
                        tarea.find('.estado-tarea').html($('.select-id-estado-tarea option:selected').html());
                        tarea.find('.estado-tarea').removeClass('estado-tarea-2')
                        .removeClass('estado-tarea-3').removeClass('estado-tarea-4');
                        tarea.find('.estado-tarea').addClass('estado-tarea-' + $('.select-id-estado-tarea').val());

                        tarea.find('.titulo a').html($('.input-titulo').val());
                        tarea.find('.responsable').html($('.select-id-responsable option:selected').html());

                        $('.detalle-tarea-titulo').html($('.input-titulo').val());
                        $('.detalle-tarea-descripcion').html($('.text-descripcion').html());
                        $('.detalle-tarea-responsable').html($('.select-id-responsable option:selected').html());
                        $('#modalTareaForm').modal('hide');
                    }
                    */
                }
                else {
                    alert(response.message);
                    // Mostrar errores en div flash
                }
            }
        });
    });

    $('#modalTareaForm .btn-eliminar').click(function() {
        if (confirm('Eliminar')) {
            var id = $('#idTarea').val();
            var parametros = {
                id : id
            };
            $.ajax({
                data:  parametros,
                url:   '/tareas/eliminar',
                type:  'post',
                beforeSend: function () {
                
                },
                success:  function (response) {
                    $('#tarea' + id).remove();
                    $('#modalTareaForm').modal('hide');
                }
            });
        }
    });

    /* Funciones Detalle Tarea */

    $(".select-id-estado-tarea").change(function() {
        let select = $(this);
        let id_estado = $(this).val();
        var parametros = {
            id: $('#idTarea').val(),
            id_estado: $(this).val()
        };

        // Ajax que guarda estado en DB
        $.ajax({
            data:  parametros,
            url:   '/tareas/cambia_estado',
            type:  'post',
            beforeSend: function () {
            },
            success:  function (response) {
                if (response.status == 'success') {
                    // Si Success
                    select.removeClass('estado-tarea-1').removeClass('estado-tarea-2')
                        .removeClass('estado-tarea-3').removeClass('estado-tarea-4');
                    select.addClass('estado-tarea-' + id_estado);
                    select.blur();
                } else {
                    alert(response.message);
                }
            }
        });
    });

    $('.btn-comentar').click(function() {
        if($('#formComentario').hasClass('show')) {
            $('#nuevoComentario').val(tinymce.get("nuevoComentario").getContent());
            if ($('#nuevoComentario').val() != '') {
                $('.btn-comentar').removeAttr('data-toggle');
                $('.btn-comentar').attr('disabled', 'disabled');
                $('.btn-comentar').html('Enviando');

                var parametros = $('#formComentario').serialize();
                $.ajax({
                    data:  parametros,
                    url:   '/tareas/comentar',
                    type:  'post',
                    beforeSend: function () {
                    },
                    success:  function (response) {
                        if (response.status == 'success') {
                            location.reload();
                        }
                        else {
                            alert(response.message);
                            // Mostrar errores en div flash
                        }
                    }
                });
            }
        }
    });


    // Prevent Bootstrap dialog from blocking focusin
    $(document).on('focusin', function(e) {
        if ($(e.target).closest(".tox-tinymce, .tox-tinymce-aux, .moxman-window, .tam-assetmanager-root").length) {
            e.stopImmediatePropagation();
        }
    });

    /* Para bootstrap 5+
    document.addEventListener('focusin', (e) => {
        if (e.target.closest(".tox-tinymce-aux, .moxman-window, .tam-assetmanager-root") !== null) {
            e.stopImmediatePropagation();
        }
    });
    */
});