<script>
$(document).ready(function(){
  var isDesktop = $("#ajax_search_field:visible").length == 1;
  var searchField = isDesktop ? "#ajax_search_field" : "#ajax_search_field_mobile";
  var resultsField = isDesktop ? "#ajax_search_results" : "#ajax_search_results_mobile";

  var searchFabricField = "#ajax_search_fabric_field";
  var resultsFabricField = "#ajax_search_fabric_results";

  $(searchField).keyup(function() {
    if ($(searchField).val().length > 1) {
      delay( function() { requestSearchResults(); }, 100 );
    } else {
      $(resultsField).html("");
      $(resultsField).hide();
    }
  });

  $(searchFabricField).keyup(function() {
    if ($(searchFabricField).val().length > 1) {
      delay( function() { requestSearchFabricResults(); }, 100 );
    } else {
      $(resultsFabricField).html("");
      $(resultsFabricField).hide();
    }
  });

  $('#ajax_search_img').click(function(){
  {% if session.has('ctl_view_mode') and session.get('ctl_view_mode') == 'quickorder' %}
    window.location = "{{ url('catalog/resultsquickorder') }}?search=" + $(searchField).val();
  {% elseif not common['showVisual'] or common['catalogAccessType'] == 1 or (session.has('ctl_view_mode') and session.get('ctl_view_mode') == 'list') %}
    window.location = "{{ url('catalog/resultslist') }}?search=" + $(searchField).val();
  {% else %}
    window.location = "{{ url('catalog/results') }}?search=" + $(searchField).val();
  {% endif %}
  });

  $(searchField).keypress(function(e) {
    if (e.which == 13 && $(searchField).val().length > 1) {
    {% if session.has('ctl_view_mode') and session.get('ctl_view_mode') == 'quickorder' %}
      window.location = "{{ url('catalog/resultsquickorder') }}?search=" + $(searchField).val();
    {% elseif not common['showVisual'] or common['catalogAccessType'] == 1 or (session.has('ctl_view_mode') and session.get('ctl_view_mode') == 'list') %}
      window.location = "{{ url('catalog/resultslist') }}?search=" + $(searchField).val();
    {% else %}
      window.location = "{{ url('catalog/results') }}?search=" + $(searchField).val();
    {% endif %}
    }
  });

  $('#ajax_search_fabric_img').click(function(){
    window.location = "{{ url('catalog/resultsfabric') }}?search=" + $(searchFabricField).val();
  });

  $(searchFabricField).keypress(function(e) {
    if (e.which == 13 && $(searchFabricField).val().length > 1) {
      window.location = "{{ url('catalog/resultsfabric') }}?search=" + $(searchFabricField).val();
    }
  });

  var doSearch = true;
  var doSearchFabric = true;
  var pendentRequests = 0;
  var pendentFabricRequests = 0;
  function requestSearchResults() {
    if (!doSearch) {
      pendentRequests++;
    } else {
      doSearch = false;
      $.ajax({
        type: "POST",
        url: "{{ url('catalog/search') }}",
        dataType: "json",
        async: "false",
        data: {
          search_term: $(searchField).val(),
          catalog: "{{ common['selected_catalog'].cdcata }}",
        }
      }).done(function(data) {
        if ($(searchField).val().length > 1) {
          $(resultsField).html(data + (data == 1 ? " {{ mt._('_common.searchresult') }}" : " {{ mt._('_common.searchresults') }}"));
          $(resultsField).css("display", "inline-block");
        } else {
          $(resultsField).html("");
          $(resultsField).hide();
        }
        doSearch = true;
        if (pendentRequests > 0) {
          pendentRequests = 0;
          requestSearchResults();
        }
      }).error(function(x, t, m) {
    		printAjaxError(x, t, m);
        doSearch = true;
        if (pendentRequests > 0) {
          pendentRequests = 0;
          requestSearchResults();
        }
      });
    }
  }
  function requestSearchFabricResults() {
    if (!doSearchFabric) {
      pendentFabricRequests++;
    } else {
      doSearchFabric = false;
      $.ajax({
        type: "POST",
        url: "{{ url('catalog/searchFabric') }}",
        dataType: "json",
        async: "false",
        data: {
          search_term: $(searchFabricField).val(),
          catalog: "{{ common['selected_catalog'].cdcata }}",
        }
      }).done(function(data) {
        if ($(searchFabricField).val().length > 1) {
          $(resultsFabricField).html(data + (data == 1 ? " {{ mt._('_common.searchresult') }}" : " {{ mt._('_common.searchresults') }}"));
          $(resultsFabricField).css("display", "inline-block");
        } else {
          $(resultsFabricField).html("");
          $(resultsFabricField).hide();
        }
        doSearchFabric = true;
        if (pendentFabricRequests > 0) {
          pendentFabricRequests = 0;
          requestSearchResults();
        }
      }).error(function(x, t, m) {
    		printAjaxError(x, t, m);
        doSearchFabric = true;
        if (pendentFabricRequests > 0) {
          pendentFabricRequests = 0;
          requestSearchFabricResults();
        }
      });
    }
  }
});
var src_settings = {
  toggle: ".toggle-src-sidebar",
  exit_selector: ".slider-exit",
  animation_duration: "0.5s",
  place: "right",
  animation_curve: "cubic-bezier(0.54, 0.01, 0.57, 1.03)",
  body_slide: true,
  no_scroll: false,
  auto_close: false
};
$('#search-slider').sliiide(src_settings);
</script>
