const bindOrderButton=()=>{$(".order_btn").on("click",function(e){e.preventDefault();$("#fld_product_id").val($(this).data("id"));$("#fld_quantity").val(1);$("#frm_order_product_form").trigger("submit")})};bindOrderButton();$(".categories_filter").on("click",function(){$(this).closest("form").trigger("submit")});let query_id=0;let lastRequest=null;const oFilterProductsField=$("#filter_products");class Handler{constructor(id){this.element=$("#"+id)}show(){this.element.css("display","block")}hide(){this.element.css("display","none")}html(data){this.element.html(data)}}const blocks={disclaimer:new Handler("wrong_product_disclaimer"),searching:new Handler("searching"),no_results:new Handler("no_results"),product_list:new Handler("product_list"),category_list:new Handler("category_list")};class Helper{constructor(blocks){this.blocks=blocks}showSearching(){this.blocks.searching.show();this.blocks.no_results.hide();this.blocks.disclaimer.hide();this.blocks.product_list.hide();this.blocks.category_list.hide()}noResults(){this.blocks.searching.hide();this.blocks.no_results.show();this.blocks.product_list.hide();this.blocks.disclaimer.hide();this.blocks.category_list.hide()}showProducts(html){this.blocks.searching.hide();this.blocks.no_results.hide();this.blocks.product_list.html(html);this.blocks.product_list.show();this.blocks.disclaimer.show();this.blocks.category_list.hide()}showCategories(){this.blocks.searching.hide();this.blocks.no_results.hide();this.blocks.product_list.hide();this.blocks.disclaimer.show();this.blocks.category_list.show()}}const helper=new Helper(blocks);oFilterProductsField.on("keydown",function(e){if(e.keyCode===13){e.preventDefault();return false}});oFilterProductsField.on("keyup",function(){const searchQuery=$(this).val();helper.showSearching();if(lastRequest){lastRequest.abort()}if($.trim(searchQuery)===""){helper.showCategories()}query_id++;console.log("query");const data={_do:"FindProducts",query_id:query_id,query:searchQuery,return:"json"};lastRequest=$.post(window.location,data,function(data){if(parseInt(data.query_id)!==query_id){return}if(!data.result_count){helper.noResults();return}helper.showProducts(data.content);bindOrderButton()},"json")}).focus();