  var
    token = $('body').data('token'),
    info  = $('[data-info]').data('info');

  $('.js-modal-save').on('click', function (e) {
    $('.warning, .error').remove();
    $('.field-entry').removeClass('border-error');
    if ($('.js-modal-save').data('sincro') == '') {
      if (confirm('Deseja realmente sincronizar este produto?')) {
        sincronizar();
      } else {
        return false;
      }
    } else {
      sincronizar();
    }
  });

  function sincronizar() {
    $.ajax({
      url: 'index.php?route=module/galeriapage/bulksetting/validate&token=' + token,
      dataType: 'json',
      type: 'POST',
      data: $('#js-galeriapagefichatecnica').serialize(),
      beforeSend: function () {
        $('.js-modal-save').addClass('btn-loading');
        $('.js-modal-save').attr('disabled', true);
        $('#bulk-setting').addClass('js-adm-modal-overlay-no-close');
      },
      complete: function(){
        $('.js-modal-save').attr('disabled', false);
        $('.js-modal-save').removeClass('btn-loading');
        $('#bulk-setting').removeClass('js-adm-modal-overlay-no-close');
      },
      success: function (json) {

        if (json['error']) {
          $.each(json['error'], function (index, value) {
              $('#' + index).addClass('border-error');
              $('#' + index).closest('.field-group').append('<span class="error">' + value + '</span>');
          });
        }else{
          $('#js-galeriapagefichatecnica').submit();

        }

      }
    });
  }

  $("[name='gp_department_id']").on('change', function(){
      let $this = $(this);
      if ($this.val() == 0) {
          $("[name='gp_subcategory_id']").empty();
          $("[name='gp_category_id']").empty();
          enableCategoryFields(true, false, false);
      } else {
          $.ajax({
              url: 'index.php?route=module/galeriapage/bulksetting/category&token=' + token + '&department_id=' + $("[name='gp_department_id']").val(),
              dataType: 'json',
              type: 'GET',
              beforeSend: function () {
                  $('body').css('cursor', 'wait');
                  enableAllCategoryFields(false);
                  $("[name='gp_subcategory_id']").empty();
                  $("[name='gp_category_id']").empty();
              },
              success: function (json) {
                  if (json.totalInPage > 0) {
                      $("[name='gp_category_id']").append('<option value="0">Selecione uma categoria</option>');
                      $.each(json.data, function (idx, value) {
                          $("[name='gp_category_id']").append('<option value="' + value.id + '">' + value.name + '</option>');
                      });
                  }
                  $('body').css('cursor', 'default');
                  enableCategoryFields(true, json.totalInPage > 0, false);
              }
          });
      }
  });

  $("[name='gp_category_id']").on('change', function(){
      let $this = $(this);
      if ($this.val() == 0) {
          $("[name='gp_subcategory_id']").empty();
          enableCategoryFields(true, true, false);
      } else {
          $.ajax({
              url: 'index.php?route=module/galeriapage/bulksetting/subCategory&token=' + token + '&category_id=' + $("[name='gp_category_id']").val(),
              dataType: 'json',
              type: 'GET',
              beforeSend: function () {
                  $('body').css('cursor', 'wait');
                  enableAllCategoryFields(false);
                  $("[name='gp_subcategory_id']").empty();
              },
              success: function (json) {
                  if (json.totalInPage > 0) {
                      $("[name='gp_subcategory_id']").append('<option value="0">Selecione uma sub-categoria</option>');
                      $.each(json.data, function (idx, value) {
                          $("[name='gp_subcategory_id']").append('<option value="' + value.id + '">' + value.name + '</option>');
                      });
                  }
                  $('body').css('cursor', 'default');
                  enableCategoryFields(true, true, json.totalInPage > 0);
              }
          });
      }
  });

  function enableAllCategoryFields(enabled){
      enableCategoryFields(enabled, enabled, enabled);
  }

  function enableCategoryFields(deptoEnabled, categoryEnabled, subCategoryEnabled){
      $("[name='gp_department_id']").attr('disabled', !deptoEnabled);
      $("[name='gp_category_id']").attr('disabled', !categoryEnabled);
      $("[name='gp_subcategory_id']").attr('disabled', !subCategoryEnabled);
  }