/////////////////////////////////////////  GERA URL DINÂMICA CONFORME DOMINIO /////////////////////////////////////////////////

function urlsis() {
    var pathparts = location.pathname.split("/");
    if (location.host == "localhost") {
        var url =
            location.origin +
            "/" +
            pathparts[1].trim("/"); // +
        // "/" +
        // pathparts[2].trim("/");
    } else {
        var url = location.origin;
    }
    return url;
  }
  
  var url      = urlsis();

// FULL CALENDAR
document.addEventListener('DOMContentLoaded', function() {
    var containerEl = document.getElementById('external-events');
    new FullCalendar.Draggable(containerEl, {
        itemSelector: '.fc-event',
        eventData: function(eventEl) {
            return {
                title: eventEl.innerText.trim(),
                title: eventEl.innerText,
                className: eventEl.className + ' overflow-hidden '
            }
        }
    });

    var calendarEl = document.getElementById('calendar2');
    var calendar = new FullCalendar.Calendar(calendarEl, {
        headerToolbar: {
            left: 'prev,next today',
            center: 'title',
            right: 'dayGridMonth,timeGridWeek,timeGridDay'
        },
        locale: 'pt-br',
        defaultView: 'month',
        navLinks: true,
        businessHours: true,
        editable: true,
        selectable: true,
        selectMirror: true,
        droppable: true,
        select: function(arg) {
            // Abre o modal de inserção de evento
            $('#eventModal').modal('show');
        },
        eventClick: function(arg) {
            if (confirm('Tem certeza de que deseja excluir este evento?')) {
                arg.event.remove();
                // Faça uma chamada AJAX para excluir o evento
                var idEvento = arg.event.id;
                $.post(url + '/deleta_evento', { id: idEvento }, function(response) {
                    // Lógica de tratamento da resposta do servidor, se necessário
                });
            }
        },
        dayMaxEvents: true,
        events: function(info, successCallback, failureCallback) {
            // Faça uma chamada AJAX para buscar eventos do controlador Calendario
            $.get(url + '/busca_eventos', function(response) {
                // Lógica de tratamento da resposta do servidor, se necessário
                var eventos = JSON.parse(response);
                successCallback(eventos);
            });
        }
    });

    calendar.render();

    // Manipula o botão de salvar no modal
    $('#saveEvent').on('click', function() {
        var title = $('#eventTitle').val();
        var time = $('#eventTime').val();
        var endTime = $('#eventEndTime').val(); // Adicione um campo para a hora de término
        if (title && time && endTime) {
            // Crie o evento no calendário
            var newEvent = {
                title: title,
                start: time,
                end: endTime, // Inclua a hora de término
                allDay: false
            };

            // Faça uma chamada AJAX para criar o evento
            $.post(url + '/criarEvento', newEvent, function(response) {
                // Lógica de tratamento da resposta do servidor
                var result = JSON.parse(response);
                if (result.status === 'success') {
                    // Feche o modal e recarregue o calendário
                    $('#eventModal').modal('hide');
                    calendar.refetchEvents();
                } else {
                    alert('Erro ao criar o evento: ' + result.message);
                }
            });
        }
    });
});

