// Variable to hold request
var request;

$('.btn_add_categoria').click(function (e) {
    e.preventDefault();

    var data = $(this).data();

    var button = $(this);

    var action_url = data.action;


    if (request) {
        request.abort();
    }

    button.attr("disabled","disabled");

    ajax_load("open");


    request = $.ajax({
        url: action_url,
        type: "post",
        data: "action=add",
        dataType: "json"
    });

    request.done(function (callback, textStatus, jqXHR){
        // Log a message to the console


        if (callback.message) {

            tata[callback.message.type](callback.message.title, callback.message.message, {
                duration: callback.duration ?? '5000',
                holding: callback.holding ?? false,
                animate: "slide",
                onClose: function () {

                    if (callback.redirect){
                        window.location.href = callback.redirect;
                    }

                }
            });


        }

        if (callback.retorno) {

            $(".container_categorias").prepend(callback.retorno);

            if (callback.id) {

                var html = '<a class="nav item_'+callback.id+'" href="#'+callback.id+'" title="sem nome">'+
                    '<div>'+
                    'sem nome'+
                    '</div>'+
                    '</a>';

                $(".navegacao").prepend(html);
                init_scroll_navegacao();

                var html_ordem = '<li id="recordsArray_'+callback.id+'"><span class="material-symbols-outlined">height</span> sem nome</li>';

                $(".ordem_ordem_categorias").prepend(html_ordem);
                init_popup();


            }



        }

        if (callback.ordem_painel) {

            $("body").prepend(callback.ordem_painel);

        }

    });

    request.fail(function (jqXHR, textStatus, errorThrown){
        // Log the error to the console
        console.error(
            "The following error occurred: "+
            textStatus, errorThrown
        );
    });

    request.always(function () {
        // Reenable the inputs
        ajax_load("close");
        button.removeAttr("disabled");
        //location.reload();
    });


});



$(document).on('submit','.form_categoria',function(e){
    e.preventDefault();


    var form = $(this);

    var action = form.attr("action");

    var container_form = $(form).parent();

    var card_container = $(container_form).parent();

    var nome = $(form).find("input[name='nome']").val();

    var id = $(form).find("input[name='id']").val();







    var formData = new FormData($(this)[0]);


    $.ajax({
        url: action,
        data: formData,
        type: "POST",
        dataType: "json",
        xhr: function() {
            var myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){
                myXhr.upload.addEventListener('progress',progress, false);
            }
            return myXhr;
        },
        cache: false,
        contentType: false,
        processData: false,
        beforeSend: function () {

            ajax_load("open");

            statustxt.empty();
            progressbox.slideDown(); //exibe a barra de progresso
            progressbar.width(completed); //inicia em 0%
            statustxt.html(completed); //exibe o texto
            //statustxt.css('color','#fff'); //define a cor


        },
        success: function (callback) {

            if (callback.message) {

                tata[callback.message.type](callback.message.title, callback.message.message, {
                    duration: callback.duration ?? '5000',
                    holding: callback.holding ?? false,
                    animate: "slide",
                    onClose: function () {

                        if (callback.redirect){
                            window.location.href = callback.redirect;
                        }

                    }
                });


            }

            if (callback.message.type == "success") {

                $(".navegacao .item_"+id+" div").html(nome);
                $("#popup_admin_ordem_categorias").find("#recordsArray_"+id).html('<span class="material-symbols-outlined">height</span> '+nome);

            }



        },
        complete: function () {


            progressbox.slideUp(); // esconde a barra
            ajax_load("close");
            //location.reload();
            //form.resetForm();  // reseta o form




            //console.log("Request finished.");
        }
    });





});