<script src="/admin/app-assets/js/core/libraries/jquery.min.js"></script> 
<script src="/admin/app-assets/vendors/js/forms/select/select2.full.min.js"></script> 
<script src="/admin/app-assets/js/scripts/forms/select/form-select2.js"></script> 
<script>


  $(document).ready(function () {

    function handleFormSubmission(formId, action) {

      function validateInput(input) {
    const i18n = {
      common: {
        emptyField: "<%= i18n.__('common.emptyField') %>",
        minLength: "<%= i18n.__('common.minLength', { minLength: '{{minLength}}' }) %>",
      }
    };

    try {
      const trimmedValue = input.value.trim();
      const minLength = 2;
      const emptyMessage = i18n.common.emptyField;
      const minLengthMessage = i18n.common.minLength.replace('{{minLength}}', minLength);
      const feedback = input.nextElementSibling;

    if (trimmedValue.length < minLength) {
        feedback.textContent = minLengthMessage;
        input.classList.add('is-invalid');
        input.style.border = '1px solid red';
        // input.setCustomValidity(minLengthMessage);
      } else {
        feedback.textContent = ''; // Clear feedback
        input.classList.remove('is-invalid');
        input.style.border = '';
        // input.setCustomValidity('');
      }

      // input.reportValidity();
    } catch (error) {
      console.error("Validation error:", error);
    }

  }

      $(document).on("submit", formId, function (e) {
        e.preventDefault();

        let confirmMessage = action === "add" 
                            ? "<%=i18n.__('common.add')%>" 
                            : "<%=i18n.__('common.edit')%>";

        var objData = new FormData(this);

      
        if ($("#uploads")[0]?.files.length) {

          let fileType = $("#uploads")[0].files[0].type;

          if (!/(jpg|jpeg|png)$/.test(fileType)) {
            Swal.fire({
              icon: "error",
              title: `<%= i18n.__('common.imageRequired')%>`,
              showConfirmButton: false,
              timer: 1500,
            });
            return;
          }


          $.each($("#uploads")[0].files[0], function (i, file) {
            objData.append("uploads", file);
          });

        }


        ajaxUpload($(this), objData, "uploadWithImage", confirmMessage);
      });
    }


    handleFormSubmission("#createBrand", "add");
    handleFormSubmission("#editBrand", "edit");

  });
</script>
