"use strict";

function format_currency(value) {
  return value
    .toString()
    .replace(/(?!\.)\D/g, "")
    .replace(/(?:\..*)\./g, "")
    .replace(/(?:\.\d\d).*/g, "")
    .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

$(document).ready(function () {
  // Autocomplete vi tri tuyen dung
  jQuery(".autocomplete_vi_tri_tuyen_dung")
    .on("keydown", function (event) {
      if (
        event.keyCode === jQuery.ui.keyCode.TAB &&
        jQuery(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "vi_tri_tuyen_dung",
            keyword: request["term"],
          },
          success: function (data) {
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        return false;
      },
      minLength: 2,
    });

  // Tagging
  $(".tagBox").tagging();

  // Popover
  $('[data-toggle="popover"]').popover();

  // Autocomplete Delivery address
  var delivery_address = [
    "VP ATAD HCM",
    "ATAD Đồng Nai",
    "ATAD Long An",
    "ATAD Vũng Tàu",
    "Khác",
  ];
  $(".autocomplete-delivery-address").autocomplete({
    source: delivery_address,
  });

  $(".btn-xoa-phan-quyen").click(function (e) {
    if (!confirm("Are you sure?")) return;

    e.preventDefault();

    var ma_quyen = $(this).attr("data-ma-quyen");
    var ma_nhan_vien = $(this).attr("data-ma-nhan-vien");

    $(this).remove();

    $.ajax({
      type: "POST",
      url: ajax_url,
      data: {
        action: "xoa_phan_quyen",
        ma_quyen: ma_quyen,
        ma_nhan_vien: ma_nhan_vien,
      },
      success: function (data) {
        toastr.success("Xoá quyền thành công!", "Thành công", {
          timeOut: 3000,
          closeButton: 1,
        });
      },
      error: function (error) {},
    });
  });

  // ===== Crop avatar start ====
  //var size;
  $("#cropbox").Jcrop({
    aspectRatio: 1,
    setSelect: [50, 50, 300, 300],
    onSelect: function (c) {
      /*
        size = {x:c.x,y:c.y,w:c.w,h:c.h};
        $("#crop").css("visibility", "visible");
        console.log(c.x);
        console.log(c.y);
        console.log(c.w);
        console.log(c.h);
      */

      $('input[name="x"]').val(c.x);
      $('input[name="y"]').val(c.y);
      $('input[name="w"]').val(c.w);
      $('input[name="h"]').val(c.h);
    },
  });

  /*
    $("#crop").click(function(){
        var img = $("#cropbox").attr('src');
        $("#cropped_img").show();
        $("#cropped_img").attr('src','image-crop.php?x='+size.x+'&y='+size.y+'&w='+size.w+'&h='+size.h+'&img='+img);
    });
  */

  // ===== Crop avatar end ======

  // Format currency
  // $("input.currency").on("change click keyup input paste", function (event) {
  //   $(this).val(function (index, value) {
  //     return value
  //       .replace(/(?!\.)\D/g, "")
  //       .replace(/(?:\..*)\./g, "")
  //       .replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  //     // return value.replace(/(?!\.)\D/g, "").replace(/(?:\..*)\./g, "").replace(/(?:\.\d\d).*/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  //   });
  // });
  
  $("input.currency").on("input", function (su_kien) {
    var vi_tri_con_tro = this.selectionStart;

    var gia_tri_goc = $(this).val();

    var gia_tri_xu_ly = gia_tri_goc
      .replace(/(?!\.)\D/g, "")
      .replace(/(?:\..*)\./g, "")
      .replace(/\B(?=(\d{3})+(?!\d))/g, ",");

    $(this).val(gia_tri_xu_ly);

    dat_vi_tri_con_tro(this, vi_tri_con_tro);
  });

  /*
  function dat_vi_tri_con_tro(ctrl, vi_tri) {
    if (ctrl.setSelectionRange) {
      ctrl.focus();
      ctrl.setSelectionRange(vi_tri, vi_tri);
    } else if (ctrl.createTextRange) {
      var pham_vi = ctrl.createTextRange();
      pham_vi.collapse(true);
      pham_vi.moveEnd("character", vi_tri);
      pham_vi.moveStart("character", vi_tri);
      pham_vi.select();
    }
  }
  */

  function dat_vi_tri_con_tro(ctrl, vi_tri) {
    setTimeout(function () {
      if (ctrl.setSelectionRange) {
        ctrl.focus();
        var gia_tri = ctrl.value.replace(/,/g, "");
        var so_ky_tu_truoc_vi_tri = gia_tri
          .substring(0, vi_tri)
          .replace(/\D/g, "").length;
        var so_ky_tu_sau_vi_tri = gia_tri
          .substring(vi_tri)
          .replace(/\D/g, "").length;
        var vi_tri_moi =
          vi_tri +
          Math.max(
            0,
            Math.floor(so_ky_tu_truoc_vi_tri / 3) -
              Math.floor(so_ky_tu_sau_vi_tri / 3)
          );
        ctrl.setSelectionRange(vi_tri_moi, vi_tri_moi);
      } else if (ctrl.createTextRange) {
        var pham_vi = ctrl.createTextRange();
        pham_vi.collapse(true);
        pham_vi.move("character", vi_tri);
        pham_vi.select();
      }
    }, 0);
  }

  // Add row Bieu mau du lieu
  $("#tbl-du-lieu .add-row").click(function (e) {
    e.preventDefault();

    var row =
      '<tr><td><input name="ma_du_lieu[]" class="form-control" type="text" placeholder="" autocomplete="off"></td><td><input name="ten_du_lieu[]" class="form-control" type="text" placeholder="" autocomplete="off"></td><td><select name="kieu_du_lieu[]" class="form-control"><option value="text">Text</option><option value="datepicker">Date Picker</option><option value="autoload">Autoload User</option></select></td><td><input name="cong_thuc[]" class="form-control" type="text" autocomplete="off"></td><td><input name="mac_dinh[]" class="form-control" type="text" autocomplete="off"></td><td><input name="thu_tu[]" class="form-control" type="number" autocomplete="off"></td><td><a href="#"><i class="i-Remove text-danger"> </i></a><a class="add-more-row" href="#" ><i class="i-Add text-primary"> </i></a></td></tr>';
    //console.log(el);

    $("#tbl-du-lieu > tbody").append(row);
  });

  // Remove row Bieu mau du lieu
  $("#tbl-du-lieu .remove-row").click(function (e) {
    e.preventDefault();

    $(this).parent().parent().remove();
  });

  $(".datepicker").datepicker({
    dateFormat: "yy-mm-dd",
  });

  $(".datepicker-2").datepicker({
    dateFormat: "dd/mm/yy",
    changeMonth: true,
    changeYear: true,
    yearRange: "1950:2050",
  });

  $(".datatable").DataTable({
    // columnDefs: [
    //     { orderable: false, targets: 0 }
    //    ],
    order: [[0, "desc"]],
    scrollY: "50vh",
    scrollCollapse: true,
    paging: false,
    //pageLength: 50,
    fixedHeader: true,
    searching: true,
  }); // scroll vertical and horizontal

  $(".datatable-50vh").DataTable({
    // order: [[0, 'asc']],
    ordering: false,
    scrollY: "50vh",
    scrollX: true,
    scrollCollapse: true,
    paging: false,
    //pageLength: 50,
    fixedHeader: true,
    searching: false,
  }); // scroll vertical and horizontal

  $(".datatable-20vh").DataTable({
    // order: [[0, 'asc']],
    ordering: false,
    scrollY: "20vh",
    scrollX: true,
    scrollCollapse: true,
    paging: false,
    //pageLength: 50,
    fixedHeader: true,
    searching: false,
  }); // scroll vertical and horizontal

  $(".datatable-no-search").DataTable({
    // columnDefs: [
    //     { orderable: false, targets: 0 }
    //    ],
    order: [[0, "desc"]],
    scrollY: "50vh",
    scrollCollapse: true,
    paging: false,
    //pageLength: 50,
    fixedHeader: true,
    searching: false,
  }); // scroll vertical and horizontal

  $(".datatable-scroll").DataTable({
    columnDefs: [{ orderable: false, targets: 0 }],
    //order: [[1, 'asc']],
    ordering: false,
    scrollY: "50vh",
    scrollX: true,
    scrollCollapse: true,
    paging: false,
    //pageLength: 50,
    fixedHeader: true,
    searching: false,
  }); // scroll vertical and horizontal

  // Check all in list
  var check_all = false;
  $("input.check_all").change(function () {
    if (check_all == false) check_all = true;
    else check_all = false;

    if (check_all) {
      $('table tbody input[type="checkbox"]').prop("checked", true);
    } else {
      $('table tbody input[type="checkbox"]').prop("checked", false);
    }
  });

  // Auto load don vi - phong ban - to xuong
  // $('select[name="ma_don_vi"]').change(function () {
  //   var ma_don_vi = $(this).val();

  //   // Reload Phong ban
  //   $('select[name="ma_phong_ban"] option').each(function () {
  //     if (
  //       ma_don_vi == $(this).attr("data-ma-don-vi") ||
  //       $(this).attr("data-ma-don-vi") == "All"
  //     ) {
  //       $(this).addClass("d-inline");
  //       $(this).removeClass("d-none");
  //     } else {
  //       $(this).addClass("d-none");
  //       $(this).removeClass("d-inline");
  //     }
  //   });

  //   // Reload To xuong
  //   $('select[name="ma_to_xuong"] option').each(function () {
  //     if (
  //       ma_don_vi == $(this).attr("data-ma-don-vi") ||
  //       $(this).attr("data-ma-don-vi") == "All"
  //     ) {
  //       $(this).addClass("d-inline");
  //       $(this).removeClass("d-none");
  //     } else {
  //       $(this).addClass("d-none");
  //       $(this).removeClass("d-inline");
  //     }
  //   });
  // });
  // $('select[name="ma_phong_ban"]').change(function () {
  //   var ma_phong_ban = $(this).val();
  //   $('select[name="ma_to_xuong"] option').each(function () {
  //     if (
  //       ma_phong_ban == $(this).attr("data-ma-phong-ban") ||
  //       $(this).attr("data-ma-phong-ban") == "All"
  //     ) {
  //       $(this).addClass("d-inline");
  //       $(this).removeClass("d-none");
  //     } else {
  //       $(this).addClass("d-none");
  //       $(this).removeClass("d-inline");
  //     }
  //   });
  // });

  // Auto load cong ty - don vi - phong ban - to xuong
  $('select[name="ma_cong_ty"]').change(function () {
    var ma_cong_ty = $(this).val();

    // Reload Don vi
    $('select[name="ma_don_vi"] option').each(function () {
      if (
        ma_cong_ty == $(this).attr("data-ma-cong-ty") ||
        $(this).attr("data-ma-cong-ty") == "All"
      ) {
        $(this).addClass("d-inline");
        $(this).removeClass("d-none");
      } else {
        $(this).addClass("d-none");
        $(this).removeClass("d-inline");
      }
    });

    // Reload Phong ban
    $('select[name="ma_phong_ban"] option').each(function () {
      if (
        ma_cong_ty == $(this).attr("data-ma-cong-ty") ||
        $(this).attr("data-ma-cong-ty") == "All"
      ) {
        $(this).addClass("d-inline");
        $(this).removeClass("d-none");
      } else {
        $(this).addClass("d-none");
        $(this).removeClass("d-inline");
      }
    });

    // Reload To xuong
    $('select[name="ma_to_xuong"] option').each(function () {
      if (
        ma_cong_ty == $(this).attr("data-ma-cong-ty") ||
        $(this).attr("data-ma-cong-ty") == "All"
      ) {
        $(this).addClass("d-inline");
        $(this).removeClass("d-none");
      } else {
        $(this).addClass("d-none");
        $(this).removeClass("d-inline");
      }
    });
  });
  $('select[name="ma_phong_ban"]').change(function () {
    var ma_phong_ban = $(this).val();
    $('select[name="ma_to_xuong"] option').each(function () {
      if (
        ma_phong_ban == $(this).attr("data-ma-phong-ban") ||
        $(this).attr("data-ma-phong-ban") == "All"
      ) {
        $(this).addClass("d-inline");
        $(this).removeClass("d-none");
      } else {
        $(this).addClass("d-none");
        $(this).removeClass("d-inline");
      }
    });
  });

  // Auto load loai phep
  $('select[name="ma_loai_nghi"]').change(function () {
    var ma_loai_nghi = $(this).val();

    // Reload loai phep
    $('select[name="ma_loai_phep"] option').each(function () {
      if (
        ma_loai_nghi == $(this).attr("data-ma-loai-nghi") ||
        $(this).val() == ""
      ) {
        $(this).addClass("d-inline");
        $(this).removeClass("d-none");
      } else {
        $(this).addClass("d-none");
        $(this).removeClass("d-inline");
      }
    });
  });

  // Autocomplete lay danh sach nhan vien
  function split(val) {
    return val.split(/,\s*/);
  }
  function extractLast(term) {
    return split(term).pop();
  }

  // Autocomplete danh sach viec lam
  $(".autocomplete_danh_sach_viec_lam")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "danh_sach_viec_lam",
            tieu_de: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete danh sach cau hoi
  $(".autocomplete_danh_sach_cau_hoi")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "danh_sach_cau_hoi",
            tieu_de: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete danh sach nhan vien
  var ma_don_vi = "";
  var ma_phong_ban = "";
  var group_id = "";
  var project_id = "";
  $(".autocomplete_danh_sach_nhan_vien")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }

      ma_don_vi = $(this).attr("data-ma-don-vi");
      ma_phong_ban = $(this).attr("data-ma-phong-ban");
      group_id = $(this).attr("data-group-id");
      project_id = $(this).attr("data-project-id");
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "danh_sach_nhan_vien",
            ho_ten: extractLast(request["term"]),
            ma_phong_ban: ma_phong_ban,
            ma_don_vi: ma_don_vi,
            group_id: group_id,
            project_id: project_id,
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete danh sach email nhan vien
  var ma_don_vi = "";
  var ma_phong_ban = "";
  var group_id = "";
  var project_id = "";
  $(".autocomplete_danh_sach_email_nhan_vien")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }

      ma_don_vi = $(this).attr("data-ma-don-vi");
      ma_phong_ban = $(this).attr("data-ma-phong-ban");
      group_id = $(this).attr("data-group-id");
      project_id = $(this).attr("data-project-id");
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "danh_sach_email_nhan_vien",
            ho_ten: extractLast(request["term"]),
            ma_phong_ban: ma_phong_ban,
            ma_don_vi: ma_don_vi,
            group_id: group_id,
            project_id: project_id,
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 1,
    });

  // Autocomplete danh sach don vi
  $(".autocomplete_danh_sach_don_vi")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "danh_sach_don_vi",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete member group
  var owner_id = "";
  $(".autocomplete_member_group_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }

      owner_id = $(this).attr("data-owner-id");
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "member_group_list",
            title: extractLast(request["term"]),
            owner_id: owner_id,
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete material
  //var material_search_type = 'code';
  $(".autocomplete_material_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }

      // if ($(this).attr('data-search-type'))
      // 	material_search_type = $(this).attr('data-search-type');
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "material_list",
            keyword: extractLast(request["term"]),
            //search_type: material_search_type,
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        // var terms = split( this.value );
        // terms.pop();
        // terms.push( ui.item.value );
        // terms.push( "" );
        // this.value = terms.join("");
        // return false;

        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete material group list
  $(".autocomplete_material_group_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "material_group_list",
            material_group: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 1,
    });

  // Autocomplete vendor list
  $(".autocomplete_vendor_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "vendor_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join(", ");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete pr list
  $(".autocomplete_pr_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "pr_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete pr material list
  $(".autocomplete_pr_material_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "pr_material_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete project list
  $(".autocomplete_project_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "project_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete bidding list
  $(".autocomplete_bidding_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "bidding_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete bidding title list
  $(".autocomplete_bidding_title_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "bidding_title_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete price list
  $(".autocomplete_price_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "price_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Autocomplete price title list
  $(".autocomplete_price_title_list")
    .on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $(this).autocomplete("instance").menu.active
      ) {
        event.preventDefault();
      }
    })
    .autocomplete({
      source: function (request, response) {
        $.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "price_title_list",
            keyword: extractLast(request["term"]),
          },
          success: function (data) {
            response(
              $.ui.autocomplete.filter(
                JSON.parse(data),
                extractLast(request.term)
              )
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        var terms = split(this.value);
        terms.pop();
        terms.push(ui.item.value);
        terms.push("");
        this.value = terms.join("");
        return false;
      },
      minLength: 2,
    });

  // Danh sach phu cap
  $(".autocomplete_phu_cap").each(function () {
    var $input = $(this);

    $input
      .autocomplete({
        source: function (request, response) {
          $.ajax({
            type: "POST",
            url: ajax_url,
            data: {
              action: "phu_cap",
              keyword: request.term,
            },
            success: function (data) {
              response(
                $.ui.autocomplete.filter(JSON.parse(data), request.term)
              );
            },
            error: function (error) {},
          });
        },
        minLength: 0,
      })
      .data("ui-autocomplete")._renderMenu = function (ul, items) {
      var that = this;
      $.each(items, function (index, item) {
        that._renderItemData(ul, item);
      });
      $(ul).css({
        "overflow-x": "auto",
        "max-height": "200px",
      });
    };

    $input.on("focus", function () {
      if (!$input.autocomplete("widget").is(":visible")) {
        $input.autocomplete("search", "");
      }
    });

    $input.on("keydown", function (event) {
      if (
        event.keyCode === $.ui.keyCode.TAB &&
        $input.autocomplete("widget").is(":visible")
      ) {
        event.preventDefault();
      }
    });
  });

  // Autocomplete noi cap CCCD
  var input_noi_cap_cccd = $(".autocomplete_noi_cap_cccd");
  input_noi_cap_cccd.autocomplete({
    source: function (request, response) {
      jQuery.ajax({
        type: "POST",
        url: ajax_url,
        data: {
          action: "noi_cap_cccd",
          keyword: request["term"],
        },
        success: function (data) {
          response(
            // $.ui.autocomplete.filter(
            //   JSON.parse(data),
            //   extractLast(request.term)
            // )
            jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
          );
        },
        error: function (error) {},
      });
    },
    focus: function () {
      return false;
    },
    select: function (event, ui) {
      this.value = ui.item.value;
      return false;
    },
    minLength: 0,
  });

  input_noi_cap_cccd.on("focus", function () {
    input_noi_cap_cccd.autocomplete("search", "");
  });

  input_noi_cap_cccd.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_noi_cap_cccd.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  var thanh_pho_code = "";
  var quan_huyen_code = "";
  var phuong_xa_code = "";

  // Autocomplete thanh pho
  var input_thanh_pho = $(".autocomplete_thanh_pho");
  // input_thanh_pho.on("keydown", function (event) {
  //   if (
  //     event.keyCode === jQuery.ui.keyCode.TAB &&
  //     jQuery(this).autocomplete("instance").menu.active
  //   ) {
  //     event.preventDefault();
  //   }
  // })
  input_thanh_pho
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "thanh_pho",
            keyword: request["term"],
          },
          success: function (data) {
            // response(
            //   $.ui.autocomplete.filter(
            //     JSON.parse(data),
            //     extractLast(request.term)
            //   )
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        thanh_pho_code = ui.item.id;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };
  input_thanh_pho.on("focus", function () {
    input_thanh_pho.autocomplete("search", "");
  });
  input_thanh_pho.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_thanh_pho.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete quan, huyen
  var input_quan_huyen = $(".autocomplete_quan_huyen");
  // $(".autocomplete_quan_huyen")
  // .on("keydown", function (event) {
  //   if (
  //     event.keyCode === jQuery.ui.keyCode.TAB &&
  //     jQuery(this).autocomplete("instance").menu.active
  //   ) {
  //     event.preventDefault();
  //   }
  // })
  input_quan_huyen
    .autocomplete({
      source: function (request, response) {
        if (thanh_pho_code) {
          jQuery.ajax({
            type: "POST",
            url: ajax_url,
            data: {
              action: "quan_huyen",
              thanh_pho_code: thanh_pho_code,
              keyword: request["term"],
            },
            success: function (data) {
              // response(
              //   $.ui.autocomplete.filter(
              //     JSON.parse(data),
              //     extractLast(request.term)
              //   )
              response(
                jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
              );
            },
            error: function (error) {},
          });
        }
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        quan_huyen_code = ui.item.id;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };

  input_quan_huyen.on("focus", function () {
    input_quan_huyen.autocomplete("search", "");
  });

  input_quan_huyen.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_quan_huyen.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete phuong_xa
  var input_phuong_xa = $(".autocomplete_phuong_xa");
  // $(".autocomplete_quan_huyen")
  // .on("keydown", function (event) {
  //   if (
  //     event.keyCode === jQuery.ui.keyCode.TAB &&
  //     jQuery(this).autocomplete("instance").menu.active
  //   ) {
  //     event.preventDefault();
  //   }
  // })
  input_phuong_xa
    .autocomplete({
      source: function (request, response) {
        if (quan_huyen_code) {
          jQuery.ajax({
            type: "POST",
            url: ajax_url,
            data: {
              action: "phuong_xa",
              quan_huyen_code: quan_huyen_code,
              keyword: request["term"],
            },
            success: function (data) {
              // response(
              //   $.ui.autocomplete.filter(
              //     JSON.parse(data),
              //     extractLast(request.term)
              //   )
              response(
                jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
              );
            },
            error: function (error) {},
          });
        }
      },
      focus: function () {
        return false;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        phuong_xa_code = ui.item.id;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };

  input_phuong_xa.on("focus", function () {
    input_phuong_xa.autocomplete("search", "");
  });

  input_phuong_xa.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_phuong_xa.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete noi sinh
  var input_noi_sinh = $(".autocomplete_noi_sinh");
  input_noi_sinh
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "noi_sinh",
            keyword: request["term"],
          },
          success: function (data) {
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return true;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };
  input_noi_sinh.on("focus", function () {
    input_noi_sinh.autocomplete("search", "");
  });

  input_noi_sinh.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_noi_sinh.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete que quan
  var input_que_quan = $(".autocomplete_que_quan");
  input_que_quan
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "que_quan",
            keyword: request["term"],
          },
          success: function (data) {
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return true;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };

  input_que_quan.on("focus", function () {
    input_que_quan.autocomplete("search", "");
  });

  input_que_quan.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_que_quan.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete ton giao
  var input_ton_giao = $(".autocomplete_ton_giao");
  input_ton_giao
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "ton_giao",
            keyword: request["term"],
          },
          success: function (data) {
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return true;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };

  input_ton_giao.on("focus", function () {
    input_ton_giao.autocomplete("search", "");
  });

  input_ton_giao.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_ton_giao.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });

  // Autocomplete dan toc
  var input_dan_toc = $(".autocomplete_dan_toc");
  input_dan_toc
    .autocomplete({
      source: function (request, response) {
        jQuery.ajax({
          type: "POST",
          url: ajax_url,
          data: {
            action: "dan_toc",
            keyword: request["term"],
          },
          success: function (data) {
            response(
              jQuery.ui.autocomplete.filter(JSON.parse(data), request.term)
            );
          },
          error: function (error) {},
        });
      },
      focus: function () {
        return true;
      },
      select: function (event, ui) {
        this.value = ui.item.value;
        return false;
      },
      minLength: 0,
    })
    .data("ui-autocomplete")._renderMenu = function (ul, items) {
    var that = this;
    $.each(items, function (index, item) {
      that._renderItemData(ul, item);
    });
    $(ul).css({
      "overflow-x": "auto",
      "max-height": "200px",
    });
  };

  input_dan_toc.on("focus", function () {
    input_dan_toc.autocomplete("search", "");
  });

  input_dan_toc.on("keydown", function (event) {
    if (
      event.keyCode === jQuery.ui.keyCode.TAB &&
      input_dan_toc.autocomplete("instance").menu.active
    ) {
      event.preventDefault();
    }
  });
});
