PageSourceSearch

https://shaub-fischer.com/pt/wp-content/plugins/woocommerce-ajax-f…/widget.min.js?ver=1.5.2.8

js shaub-fischer.com collected 2026-10-04 22:03:39 UTC 132,523 bytes, 2,362 lines download raw bytes

1/* packer link http://dean.edwards.name/packer/ */
2var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_data, br_reset_all_filters, berocket_filters_first_load, berocket_in_array;
3var berocket_aapf_widget_product_filters = [],
4    berocket_aapf_widget_product_limits = [],
5    berocket_aapf_widget_product_price_limit = [],
6    berocket_aapf_attribute_data = {name: [], data: [], jquery: false, loaded: false},
7    berocket_aapf_child_parent_loaded = true,
8    woocommerce_pagination_page = 1,
9    berocket_aapf_widget_wait_for_button = false,
10    berocket_aapf_widget_selected_filters = [],
11    berocket_aapf_reset_info = [],
12    berocket_aapf_404_jump = false,
13    berocket_aapf_404_jump_fail = false,
14    berocket_aapf_widget_first_page_jump = true,
15    $berocket_aapf_last_changed,
16    berocket_last_ajax_request = null,
17    berocket_last_ajax_request_id = 1,
18    berocket_child_no_products = '',
19    berocket_replace_only_html = false;
20(function ($){
21    $('body').append('<div class="berocket_aapf_widget_loading_preload" style="position:relative; width: 1px; height: 1px;overflow: hidden;">'+the_ajax_script.load_image+'</div>');
22    $(document).ready(function (){
23        $('.berocket_aapf_widget_loading_preload').remove();
24
25        $(document).on('change', '.br_date_filter', function() {
26            var $berocket_aapf_widget = $(this).parents('.berocket_aapf_widget');
27            var $date_info = $berocket_aapf_widget.find('.berocket_date_picker');
28            var value = berocket_convert_date_to_date_picker($(this).datepicker( "getDate" ));
29            var value_send = berocket_convert_date_to_date_picker_send($(this).datepicker( "getDate" ));
30            value = value.replace(/\//g, '');
31            if( $(this).is('.br_start_date')) {
32                $date_info.data('value_1',  $(this).val());
33                $date_info.data('value1', value_send);
34            } else {
35                $date_info.data('value_2',  $(this).val());
36                $date_info.data('value2', value_send);
37            }
38        });
39        function berocket_convert_date_to_date_picker(date) {
40            var mm = date.getMonth();
41            mm++;
42            if( mm < 10 ) {
43                mm = '0'+mm;
44            }
45            var dd = date.getDate();
46            if( dd < 10 ) {
47                dd = '0'+dd;
48            }
49            var yy = date.getFullYear();
50            return mm+'/'+dd+'/'+yy;
51        }
52        function berocket_convert_date_to_date_picker_send(date) {
53            var mm = date.getMonth();
54            mm++;
55            if( mm < 10 ) {
56                mm = '0'+mm;
57            }
58            var dd = date.getDate();
59            if( dd < 10 ) {
60                dd = '0'+dd;
61            }
62            var yy = date.getFullYear();
63            return yy+''+mm+''+dd;
64        }
65        if( $(the_ajax_script.products_holder_id).is('.wf-container') ) {
66            berocket_replace_only_html = true;
67        }
68
69        var berocket_unselect_all = false;
70
71        function berocket_fire( func ){
72            if ( typeof the_ajax_script.user_func != 'undefined'
73                && the_ajax_script.user_func != null
74                && typeof func != 'undefined'
75                && func.length > 0
76            ) {
77                try{
78                    eval( func );
79                } catch(err){
80                    alert('You have some incorrect JavaScript code (AJAX Products Filter)');
81                }
82            }
83        }
84
85        function update_selected_area() {
86            var selected_area_exist = true;
87            if ( ! $('.berocket_aapf_widget_selected_area').hasClass('berocket_aapf_widget_selected_area') ) {
88                selected_area_exist = false;
89                if( ! $('.berocket_aapf_reset_button').hasClass('berocket_aapf_reset_button') ) {
90                    return false;
91                }
92            }
93            tmp_html = '';
94            prev_label = false;
95            el_type = '';
96            selected = [];
97            berocket_aapf_reset_info = [];
98            var select_taxonomies = [];
99            if ( typeof berocket_aapf_widget_selected_filters != 'undefined' && berocket_aapf_widget_selected_filters.length > 0 ) {
100                $(berocket_aapf_widget_selected_filters).each(function (i, $el) {
101                    var elements_data = [];
102                    if ($el.is('select')) {
103                        taxonomy = $el.data('taxonomy');
104                        if( select_taxonomies.indexOf(taxonomy) == -1 ) {
105                            select_taxonomies.push(taxonomy);
106                            label = $el.parents('ul.berocket_aapf_widget').prev().find('.widget-title').first().text();
107                            el_type = 'select';
108                            $el.find("option:selected").each(function(i, o) {
109                                if( $(o).val() ) {
110                                    option = $(o).data('term_name');
111                                    el_id = $(o).val();
112                                    elements_data.push({el_id:el_id, el_type:el_type, option:option, label:label, taxonomy:taxonomy, el:$el});
113                                }
114                            });
115                        }
116                    } else if ($el.is('input')) {
117                        taxonomy = $el.data('taxonomy');
118                        label = $el.parents('ul.berocket_aapf_widget').prev().find('.widget-title').first().text();
119                        option = $el.data('term_name');
120                        el_type = $el.attr('type');
121                        el_id = $el.parents('li').first().find('label').data('for');
122                        if ( $el.data('taxonomy-type') == 'color' ) {
123                            el_type = $el.data('taxonomy-type');
124                            option = $el.parents('li').first().find('label').html();
125                        }
126                        elements_data.push({el_id:el_id, el_type:el_type, option:option, label:label, taxonomy:taxonomy, el:$el});
127                    } else if ($el.hasClass('berocket_filter_slider') || $el.hasClass('berocket_date_picker')) {
128                        taxonomy = $el.data('taxonomy');
129                        val1 = $( '#'+$el.data('fields_1') ).val();
130                        val2 = $( '#'+$el.data('fields_2') ).val();
131                        el_type = 'slider';
132                        label = $el.parents('ul.berocket_aapf_widget').prev().find('h3').first().text();
133                        //if (val1 != $el.data('min') || val2 != $el.data('max')) {
134                            if ( $el.hasClass('berocket_date_picker') ) {
135                                val1 = $el.data('value_1');
136                                val2 = $el.data('value_2');
137                                if( typeof(label) == 'undefined' || ! label ) {
138                                    label = 'Date';
139                                }
140                                el_type = '_date';
141                            } else if ($el.hasClass('berocket_filter_price_slider')) {
142                                if( typeof(label) == 'undefined' || ! label ) {
143                                    label = 'Price';
144                                }
145                            }
146                        //}
147                        el_id = $el.data('fields_2');
148                        option = val1 + ' - ' + val2;
149                        elements_data.push({el_id:el_id, el_type:el_type, option:option, label:label, taxonomy:taxonomy, el:$el});
150                    }
151                    elements_data.forEach(function(element_data) {
152                        var el_id = element_data.el_id;
153                        var el_type = element_data.el_type;
154                        var option = element_data.option;
155                        var label = element_data.label;
156                        var taxonomy = element_data.taxonomy;
157                        var $el = element_data.el;
158                        berocket_aapf_reset_info.push({type:el_type, id:el_id, taxonomy:taxonomy});
159
160                        if( selected_area_exist ) {
161                            option = '<li><a href="#Unselect_' + label + '" data-el_type="' + el_type + '" data-el_id="' + el_id + '" data-el_taxonomy="' + taxonomy + '"><i class="fa fa-times"></i> ' + option + '</a></li>';
162
163                            if ( ! $el.hasClass('berocket_filter_slider') || selected.indexOf( taxonomy ) == -1 )
164                            if (prev_label === false) {
165                                tmp_html += '<div class="berocket_aapf_widget_selected_filter"><span>' + label + '</span><ul>' + option;
166                            } else if (prev_label == taxonomy) {
167                                tmp_html += option;
168                            } else {
169                                tmp_html += '</ul></div><div class="berocket_aapf_widget_selected_filter"><span>' + label + '</span><ul>' + option;
170                            }
171
172                            prev_label = taxonomy;
173                            selected.push( taxonomy );
174                        }
175                    });
176                });
177            }
178
179            if ( tmp_html == '' ) {
180                $('.berocket_aapf_widget_selected_area').html(tmp_html);
181                $('.berocket_aapf_widget_selected_area_hide').parent().hide();
182                $('.berocket_aapf_widget_selected_area_text').html(the_ajax_script.translate.nothing_selected);
183            } else {
184                tmp_html += '</ul></div>';
185                tmp_html += '<ul><li><a href="#Unselect_all" class="br_unselect_all"><i class="fa fa-times"></i> '+the_ajax_script.translate.unselect_all+'</a></li></ul>';
186                $('.berocket_aapf_widget_selected_area').html(tmp_html);
187                $('.berocket_aapf_widget_selected_area_hide').parent().show();
188            }
189        }
190
191        $(document).on( 'click', '.berocket_aapf_product_count_desc', function( event ) {
192            event.preventDefault();
193            event.stopPropagation();
194        });
195
196        $(document).on( 'click', '.berocket_aapf_product_count_desc .berocket_aapf_close_pc', function( event ) {
197            event.preventDefault();
198            $(this).parents('.berocket_aapf_product_count_desc').remove();
199        });
200
201        function update_data_containers(search_box, search_block) {
202            if ( typeof(search_box) == 'undefined' ) {
203                search_box = false;
204            }
205            if ( typeof(search_block) == 'undefined' ) {
206                search_block = $(document);
207            }
208            berocket_aapf_widget_product_filters = [];
209            berocket_aapf_widget_selected_filters = [];
210
211            search_block.find('.berocket_aapf_widget li:not(.slider) input, .berocket_aapf_widget li:not(slider) select').each(function (i,o) {
212                $el = $(o);
213
214                if ( $el.is("select") ) {
215                    el_data = [];
216                    $el.find("option:selected").each(function(i, o) {
217                        if( $(o).val() ) {
218                            el_data.push($(o).data());
219                        }
220                    });
221                    el_data_child_parent_depth = $el.parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
222
223                    el_data.forEach(function(element) {
224                        var el_show = true;
225                        $(berocket_aapf_widget_product_filters).each(function (i, o) {
226                            if (o[0] == element.taxonomy) {
227                                if ( o[5] < el_data_child_parent_depth ) {
228                                    if ( element.term_id != undefined && element.term_slug != undefined ) {
229                                        berocket_aapf_widget_product_filters[i] = [element.taxonomy, element.term_id, element.operator, element.term_slug, element.filter_type, el_data_child_parent_depth];
230                                        berocket_aapf_widget_selected_filters[i] = $el;
231                                    }
232                                    el_show = false;
233                                }
234                            }
235                        });
236                        if( el_show && $el.val() ){
237                            berocket_aapf_widget_product_filters[berocket_aapf_widget_product_filters.length] = [element.taxonomy, element.term_id, element.operator, element.term_slug, element.filter_type, el_data_child_parent_depth];
238                            berocket_aapf_widget_selected_filters[berocket_aapf_widget_selected_filters.length] = $el;
239                        }
240                    });
241                } else if ( $el.is(':checked') || $el.is(':selected') ){
242                    el_data = $el.data();
243                    el_data_child_parent_depth = $el.parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
244                    
245                    var el_show = true;
246                    remove = 0;
247                    $(berocket_aapf_widget_product_filters).each(function (i, o) {
248                        if ( o[0] == el_data.taxonomy ) {
249                            if ( o[5] < el_data_child_parent_depth ) {
250                                berocket_aapf_widget_product_filters.splice( i - remove, 1 );
251                                berocket_aapf_widget_selected_filters.splice( i - remove, 1 );
252                                remove++;
253                            } else if (  o[1] == el_data.term_id ) {
254                                el_show = false;
255                            }
256                        }
257                    });
258                    if (el_data.term_id != undefined && el_show) {
259                        berocket_aapf_widget_product_filters[berocket_aapf_widget_product_filters.length] = [el_data.taxonomy, el_data.term_id, el_data.operator, el_data.term_slug, el_data.filter_type, el_data_child_parent_depth];
260                        berocket_aapf_widget_selected_filters[berocket_aapf_widget_selected_filters.length] = $el;
261                    }
262                }
263            });
264
265            berocket_aapf_widget_product_limits = [];
266            berocket_aapf_widget_product_price_limit = [];
267            $t = search_block.find('.berocket_filter_slider, .berocket_date_picker');
268            if( $t.hasClass('berocket_filter_slider') || $t.hasClass('berocket_date_picker') ){
269                $t.each(function (i,o){
270                    if ( $(o).parents( '.berocket_child_parent_sample' ).length == 0 ) { 
271                        var all_terms_name = $(o).data('all_terms_name');
272                        var string_slider_edited = true;
273                        if( $(o).hasClass('berocket_date_picker') ) {
274                            val1 = $(o).data('value1');
275                            val2 = $(o).data('value2');
276                        } else {
277                            val1 = $(o).data('value_1');
278                            val2 = $(o).data('value_2');
279                        }
280                        data_child_parent_depth = $(o).parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
281                        var min = $(o).data( 'min' );
282                        var max = $(o).data( 'max' );
283                        if( $(o).hasClass('berocket_date_picker') ) {
284                            min = min.replace(/\//g, '');
285                            max = max.replace(/\//g, '');
286                        }
287                        if( all_terms_name != null ){
288                            if( ! ( val1 != all_terms_name[ min ] || val2 != all_terms_name[ max ] ) ) {
289                                string_slider_edited = false;
290                            }
291                            min = all_terms_name[ min ];
292                            max = all_terms_name[ max ];
293                        }
294                        var is_changed = false;
295                        if( $(o).hasClass('berocket_date_picker') ) {
296                            is_changed = ( val1 != min || val2 !=max );
297                        } else {
298                            is_changed = ( ( val1 != ( min / $(o).data( 'step' ) ) || val2 != ( max / $(o).data( 'step' ) ) ) && ( string_slider_edited || data_child_parent_depth > 0 ) );
299                        }
300                        if( is_changed ) {
301                            berocket_aapf_widget_selected_filters[berocket_aapf_widget_selected_filters.length] = $(o);
302                            if( $(o).hasClass('berocket_filter_price_slider') ){
303                                berocket_aapf_widget_product_price_limit = [val1, val2];
304                            } else {
305                                var add_limit = true;
306                                for( i = 0 ; i < berocket_aapf_widget_product_limits.length ; i++ ) {
307                                    if( berocket_aapf_widget_product_limits[ i ][ 0 ] == $(o).data( 'taxonomy' ) ) {
308                                        if ( berocket_aapf_widget_product_limits[ i ][ 3 ] < data_child_parent_depth ) {
309                                            berocket_aapf_widget_product_limits[i] = [$(o).data('taxonomy'), val1, val2, data_child_parent_depth];
310                                        }
311                                        add_limit = false;
312                                    }
313                                }
314                                if( add_limit ) {
315                                    berocket_aapf_widget_product_limits[berocket_aapf_widget_product_limits.length] = [$(o).data('taxonomy'), val1, val2, data_child_parent_depth];
316                                }
317                            }
318                        }
319                    }
320                });
321            }
322        }
323
324        get_widget_selected_filters = function() {
325            search_box = false;
326            search_block = $(document);
327            check_berocket_aapf_widget_product_filters = [];
328            check_berocket_aapf_widget_selected_filters = [];
329
330            search_block.find('.berocket_aapf_widget li:not(.slider) input, .berocket_aapf_widget li:not(slider) select').each(function (i,o) {
331                $el = $(o);
332
333                if ( $el.is("select") ) {
334                    if( $el.find("option:selected").length ) {
335                        el_data = $el.find("option:selected").data();
336                        el_data_child_parent_depth = $el.parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
337
338                        var el_show = true;
339                        if( el_show && $el.val() ){
340                            check_berocket_aapf_widget_product_filters[check_berocket_aapf_widget_product_filters.length] = [el_data.taxonomy, el_data.term_id, el_data.operator, el_data.term_slug, el_data.filter_type, el_data_child_parent_depth];
341                            check_berocket_aapf_widget_selected_filters[check_berocket_aapf_widget_selected_filters.length] = $el;
342                        }
343                    }
344                } else if ( $el.is(':checked') || $el.is(':selected') ){
345                    el_data = $el.data();
346                    el_data_child_parent_depth = $el.parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
347                    
348                    var el_show = true;
349                    remove = 0;
350                    if (el_data.term_id != undefined && el_show) {
351                        check_berocket_aapf_widget_product_filters[check_berocket_aapf_widget_product_filters.length] = [el_data.taxonomy, el_data.term_id, el_data.operator, el_data.term_slug, el_data.filter_type, el_data_child_parent_depth];
352                        check_berocket_aapf_widget_selected_filters[check_berocket_aapf_widget_selected_filters.length] = $el;
353                    }
354                }
355            });
356            $t = search_block.find('.berocket_filter_slider, .berocket_date_picker');
357            if( $t.hasClass('berocket_filter_slider') || $t.hasClass('berocket_date_picker') ){
358                $t.each(function (i,o){
359                    if ( $(o).parents( '.berocket_child_parent_sample' ).length == 0 ) { 
360                        var all_terms_name = $(o).data('all_terms_name');
361                        var string_slider_edited = true;
362                        if( $(o).hasClass('berocket_date_picker') ) {
363                            val1 = $(o).data('value1');
364                            val2 = $(o).data('value2');
365                        } else {
366                            val1 = $(o).data('value_1');
367                            val2 = $(o).data('value_2');
368                        }
369                        data_child_parent_depth = $(o).parents('.berocket_aapf_widget').data('child_parent_depth') || 0;
370                        var min = $(o).data( 'min' );
371                        var max = $(o).data( 'max' );
372                        if( $(o).hasClass('berocket_date_picker') ) {
373                            min = min.replace(/\//g, '');
374                            max = max.replace(/\//g, '');
375                        }
376                        if( all_terms_name != null ){
377                            if( ! ( val1 != all_terms_name[ min ] || val2 != all_terms_name[ max ] ) ) {
378                                string_slider_edited = false;
379                            }
380                            min = all_terms_name[ min ];
381                            max = all_terms_name[ max ];
382                        }
383                        var is_changed = false;
384                        if( $(o).hasClass('berocket_date_picker') ) {
385                            is_changed = ( val1 != min || val2 !=max );
386                        } else {
387                            is_changed = ( ( val1 != ( min / $(o).data( 'step' ) ) || val2 != ( max / $(o).data( 'step' ) ) ) && ( string_slider_edited || data_child_parent_depth > 0 ) );
388                        }
389                        if( is_changed ) {
390                            check_berocket_aapf_widget_selected_filters[check_berocket_aapf_widget_selected_filters.length] = $(o);
391                        }
392                    }
393                });
394            }
395            var reset_info = [];
396            if ( typeof check_berocket_aapf_widget_selected_filters != 'undefined' && check_berocket_aapf_widget_selected_filters.length > 0 ) {
397                $(check_berocket_aapf_widget_selected_filters).each(function (i, $el) {
398                    if ($el.is('select')) {
399                        el_type = 'select';
400                        $el.find("option:selected").each(function(i, o) {
401                            if( $(o).val() ) {
402                                el_id = $(o).val();
403                                taxonomy = $(o).data('taxonomy');
404                                reset_info.push({type:el_type, id:el_id, taxonomy:taxonomy});
405                            }
406                        });
407                    } else if ($el.is('input')) {
408                        el_type = $el.attr('type');
409                        el_id = $el.parents('li').first().find('label').data('for');
410                        if ( $el.data('taxonomy-type') == 'color' ) {
411                            el_type = $el.data('taxonomy-type');
412                        }
413                        reset_info.push({type:el_type, id:el_id});
414                    } else if ($el.hasClass('berocket_filter_slider') || $el.hasClass('berocket_date_picker')) {
415                        el_type = 'slider';
416                        if ( $el.hasClass('berocket_date_picker') ) {
417                            el_type = '_date';
418                        }
419                        el_id = $el.data('fields_2');
420                        reset_info.push({type:el_type, id:el_id});
421                    }
422                });
423            }
424            return reset_info;
425        }
426
427        updateProducts = function ( $force , search_box ){
428            $('.berocket_aapf_product_count_desc').remove();
429            if ( berocket_unselect_all ) return false;
430
431            // call user func before_update
432            if ( the_ajax_script.user_func != null )
433                berocket_fire( the_ajax_script.user_func.before_update );
434
435            if ( berocket_aapf_404_jump ) {
436                first_page_404 = the_ajax_script.first_page;
437                the_ajax_script.first_page = true;
438                berocket_aapf_widget_first_page_jump_404 = berocket_aapf_widget_first_page_jump;
439                berocket_aapf_widget_first_page_jump = true;
440            }
441            if ( typeof search_box == 'undefined' ) search_box = false;
442            if( ! search_box ) {
443                update_data_containers();
444            }
445
446            if ( typeof $force == 'undefined' ) $force = false;
447            // if we have update_button on the page we must wait for it to be clicked
448            if ( ! $force && berocket_aapf_widget_wait_for_button && ! the_ajax_script.ub_product_count ) return false;
449
450            args = {
451                current_language: the_ajax_script.current_language,
452                terms: berocket_aapf_widget_product_filters,
453                price: berocket_aapf_widget_product_price_limit,
454                limits: berocket_aapf_widget_product_limits,
455                product_cat: the_ajax_script.product_cat,
456                product_taxonomy: the_ajax_script.product_taxonomy,
457                s: the_ajax_script.s,
458                action: 'berocket_aapf_listener',
459                orderby: $('.woocommerce-ordering select.orderby').val(),
460                attributes: [],
461                cat_limit: [],
462            };
463            var attribute_selected_count_start = get_widget_selected_filters().length;
464
465            if ( ! $force && berocket_aapf_widget_wait_for_button && the_aja
465x_script.ub_product_count ) {
466                t_args = args;
467                t_args.action = 'berocket_aapf_listener_pc';
468                t_args.location = the_ajax_script.current_page_url;
469                $.post(the_ajax_script.ajaxurl, t_args, function (data) {
470                    $('.berocket_aapf_product_count_desc').remove();
471                    $widget = $berocket_aapf_last_changed.parents('.berocket_aapf_widget');
472                    if( $berocket_aapf_last_changed.is('[type=checkbox], [type=radio]') ) {
473                        var toppos = parseInt($berocket_aapf_last_changed.parents('li').first().position().top);
474                    } else {
475                        var toppos = parseInt($berocket_aapf_last_changed.position().top);
476                    }
477                    toppos = toppos+parseInt($berocket_aapf_last_changed.parents('.berocket_aapf_widget').first().position().top)-2;
478                    if( $berocket_aapf_last_changed.parents('.mCSB_container').length && $berocket_aapf_last_changed.parents('.mCSB_container').first().parents('.berocket_aapf_widget').length ) {
479                        toppos = toppos+parseInt($berocket_aapf_last_changed.parents('.mCSB_container').first().position().top);
480                    }
481                    if ( ( $widget.offset().left + $widget.width() ) < ( $(window).width() / 2 ) ) {
482                        var leftpos = $berocket_aapf_last_changed.parents('.berocket_aapf_widget').outerWidth() - $berocket_aapf_last_changed.parents('.berocket_aapf_widget-wrapper').outerWidth();
483                        $berocket_aapf_last_changed
484                            .parents('.berocket_aapf_widget')
485                            .after($('<div class="berocket_aapf_product_count_desc br_aapf_pcd_left"><span></span>'+data.product_count+' '+the_ajax_script.ub_product_text+(the_ajax_script.ub_product_button_text?' <a href="#update" class="berocket_aapf_widget_update_button" >'+the_ajax_script.ub_product_button_text+'</a>':'')+'<a class="berocket_aapf_close_pc" href="#close"><i class="fa fa-times"></i></a></div>').css('top', toppos).css('margin-left', leftpos));
486                    } else {
487                        var leftpos = -$berocket_aapf_last_changed.parents('.berocket_aapf_widget').position().left;
488                        $berocket_aapf_last_changed
489                            .parents('.berocket_aapf_widget')
490                            .after($('<div class="berocket_aapf_product_count_desc br_aapf_pcd_right"><span></span>'+data.product_count+' '+the_ajax_script.translate.products+(the_ajax_script.ub_product_button_text?' <a href="#update" class="berocket_aapf_widget_update_button" >'+the_ajax_script.ub_product_button_text+'</a>':'')+'<a class="berocket_aapf_close_pc" href="#close"><i class="fa fa-times"></i></a></div>').css('top', toppos).css('margin-right', leftpos));
491                    }
492                }, 'json');
493                return false;
494            }
495            var berocket_this_ajax_request_id = berocket_last_ajax_request_id = berocket_last_ajax_request_id + 1;
496            if ( berocket_last_ajax_request == null ) {
497                $(the_ajax_script.products_holder_id).addClass('hide_products').append(the_ajax_script.load_image);
498            } else {
499                berocket_last_ajax_request.abort();
500                berocket_last_ajax_request = null;
501            }
502            $(document).trigger('berocket_ajax_filtering_start');
503            if( the_ajax_script.pos_relative ) {
504                $('.berocket_aapf_widget_loading').parent().css('position', 'relative');
505            }
506            berocket_aapf_widget_loading();
507
508            if( the_ajax_script.seo_friendly_urls && 'history' in window && 'pushState' in history ) {
509                updateLocation(args, true);
510                args.location = location.href;
511            }else{
512                args.location = the_ajax_script.current_page_url;
513
514                cur_page = $(the_ajax_script.pagination_class+' .current').first().text();
515                var paginate_regex = new RegExp(".+\/"+the_ajax_script.pagination_base+"\/([0-9]+).+", "i");
516                if( prev_page = location.href.replace(paginate_regex, "$1") ){
517                    if( ! parseInt( cur_page ) ){
518                        cur_page = prev_page;
519                    }
520                    if(berocket_aapf_widget_first_page_jump && the_aja
520x_script.first_page) {
521                        cur_page = 1;
522                    }
523                    if( $(the_ajax_script.pagination_class+' a').last().length && $(the_ajax_script.pagination_class+' a').last().attr('href').search('product-page=') != -1 ) {
524                        args.location = args.location.replace(/\/?/,"") + "/?product-page=" + cur_page + "";
525                    } else {
526                        args.location = args.location.replace(/\/?/,"") + "/"+the_ajax_script.pagination_base+"/" + cur_page + "/";
527                    }
528                }else if( prev_page = location.href.replace(/.+paged?=([0-9]+).+/, "$1") ){
529                    if( ! parseInt( cur_page ) ){
530                        cur_page = prev_page;
531                    }
532                    if(berocket_aapf_widget_first_page_jump && the_ajax_script.first_page)   {
533                        cur_page = 1;
534                    }
535                    if( $(the_ajax_script.pagination_class+' a').last().length && $(the_ajax_script.pagination_class+' a').last().attr('href').search('product-page=') != -1 ) {
536                        args.location = args.location.replace(/\/?/,"") + "/?product-page=" + cur_page + "";
537                    } else {
538                        args.location = args.location.replace(/\/?/,"") + "/?paged=" + cur_page + "";
539                    }
540                }
541                if( the_ajax_script.seo_friendly_urls ) {
542                    uri_request = updateLocation(args, false);
543                    location.hash = '';
544                    if( parseInt( cur_page ) )
545                        location.hash = "paged="+parseInt( cur_page )+"&";
546                    if( uri_request != "")
547					    uri_request = 'filters=' + uri_request;
548                    location.hash += 'filters=('+uri_request+')';
549                }
550            }
551            if( jQuery('.berocket_product_table_compat').length ) {
552                berocket_ajax_load_product_table_compat();
553            }
554            
555            update_selected_area();
556
557            the_ajax_script.scroll_shop_top = parseInt(the_ajax_script.scroll_shop_top);
558            if( the_ajax_script.scroll_shop_top == 1 || ( $(window).width() <= 767 && the_ajax_script.scroll_shop_top == 2 ) || ( $(window).width() > 767 && the_ajax_script.scroll_shop_top == 3 ) ) {
559                var top_scroll_offset = 0;
560                if( $( the_ajax_script.products_holder_id ).length ) {
561                    top_scroll_offset = $( the_ajax_script.products_holder_id ).offset().top + parseInt(the_ajax_script.scroll_shop_top_px);
562                    if(top_scroll_offset < 0) top_scroll_offset = 0;
563                }
564                $("html, body").animate({ scrollTop: top_scroll_offset }, "slow");
565            }
566            args.location = updateLocation(args, true, true);
567            if( ! $(the_ajax_script.products_holder_id).length ) {
568                location.href = args.location;
569                return;
570            }
571            if( the_ajax_script.recount_products ) {
572                $('.berocket_aapf_widget').each(function (i,o){
573                    args.attributes[i] = $(o).data('attribute');
574                    args.cat_limit[i] = $(o).data('cat_limit');
575                });
576            }
577            if(the_ajax_script.ajax_request_load) {
578                if( the_ajax_script.ajax_request_load_style == 'jquery' ) {
579                    url = args.location;
580                    return_type = 'html';
581                    t_args = args;
582                    args = {};
583                } else {
584                    if( the_ajax_script.ajax_request_load_style == 'js' ) {
585                        return_type = 'html';
586                    } else {
587                        return_type = 'json';
588                    }
589                    if( args.location.indexOf('?') > 0 ) {
590                        url = args.location+'&explode=explode';
591                    } else {
592                        url = args.location+'/?explode=explode';
593                    }
594                    t_args = args;
595                    args = {
596                        location: t_args.location,
597                        attributes: t_args.attributes,
598                        cat_limit: t_args.cat_limit,
599                    };
600                }
601            } else {
602                return_type = 'json';
603                url = the_ajax_script.ajaxurl;
604            }
605            berocket_aapf_attribute_data.loaded = false;
606            var send_type = the_ajax_script.use_request_method;
607            var berocket_this_ajax_request = berocket_last_ajax_request = $[send_type](url, args, function (data) {
608                global_ajax_data = data;
609                berocket_last_ajax_request = null;
610                berocket_last_ajax_request_id = 1;
611                $('.berocket_aapf_product_count_desc').remove();
612                var is_product_table = false;
613                if( jQuery('.berocket_product_table_compat').length ) {
614                    var tableid = jQuery('.berocket_product_table_compat .wc-product-table').attr('id');
615                    if( typeof(window['config_'+tableid]) != 'undefined' && window['config_'+tableid].serverSide ) {
616                        is_product_table = true;
617                    }
618                }
619                $('.hide_products').removeClass('hide_products');
620                if( is_product_table ) {
621                    $data = $('<div>'+data+'</div>');
622                    berocket_aapf_attribute_data.jquery = $data;
623                } else {
624                    if( the_ajax_script.ajax_request_load && the_ajax_script.ajax_request_load_style == 'jquery' ) {
625                        $data = $('<div>'+data+'</div>');
626                        args_ajax = {
627                            pagination:$data.find(the_ajax_script.pagination_class).prop('outerHTML'),
628                            catalog_ordering:$data.find(the_ajax_script.ordering_class).prop('outerHTML'),
629                            result_count:$data.find(the_ajax_script.result_count_class).prop('outerHTML'),
630                        }
631                        if( $data.find('.woocommerce-info').hasClass('woocommerce-info') && $data.find(the_ajax_script.products_holder_id).length == 0 ) {
632                            if( $data.find('.content .woocommerce-info').length > 0 ) {
633                                args_ajax.no_products = $data.find('.content .woocommerce-info').prop('outerHTML');
634                            } else {
635                                args_ajax.no_products = the_ajax_script.no_products;
636                            }
637                        } else {
638                            var $block_products_holder_id;
639                            if( $data.find(the_ajax_script.products_holder_id).length > 1 ) {
640                                $data.find(the_ajax_script.products_holder_id).each(function () {
641                                    if( $(this).is('.berocket_aapf_true') || $(this).parents('.berocket_aapf_true').length || $(this).find('.berocket_aapf_true').length ) {
642                                        $block_products_holder_id = $(this);
643                                        return false;
644                                    }
645                                    if( typeof($block_products_holder_id) == 'undefined' && ! $(this).is('.berocket_aapf_false') && $(this).parents('.berocket_aapf_false').length && $(this).find('.berocket_aapf_false').length ) {
646                                        $block_products_holder_id = $(this);
647                                    }
648                                });
649                            }
650                            if( typeof($block_products_holder_id) == 'undefined' ) {
651                                $block_products_holder_id = $data.find(the_ajax_script.products_holder_id);
652                            }
653                            args_ajax.products = $block_products_holder_id.prop('outerHTML');
654                        }
655                        result = afterAjaxLoad(args_ajax);
656                        berocket_aapf_attribute_data.jquery = $data;
657                    } else {
658                        if( the_ajax_script.ajax_request_load && the_ajax_script.ajax_request_load_style == 'js' ) {
659                            if( data.indexOf('||EXPLODE||') > 0 ) {
660                                products = data.split('||EXPLODE||');
661                                products = products[1];
662                            } else {
663                                products = false;
664                            }
665                            json_data = JSON.parse( data.split('||JSON||')[1] );
666                            data = json_data;
667                            if( ! products ) {
668                                data.no_products = the_ajax_script.no_products;
669                            } else {
670                                data.products = products;
671                            }
672                        }
673                        
674                        if( ! the_ajax_script.ajax_request_load ) {
675                            if( data.products ) {
676                                if( jQuery('<div>'+data.products+'</div>').find(the_ajax_script.products_holder_id).length > 0 ) {
677                                    data.products = jQuery('<div>'+data.products+'</div>').find(the_ajax_script.products_holder_id).prop('outerHTML');
678                                }
679                            }
680                        }
681                        result = afterAjaxLoad(data);
682                        berocket_aapf_attribute_data.name = data.attributesname;
683                        berocket_aapf_attribute_data.data = data.attributes;
684                    }
685                }
686                berocket_aapf_attribute_data.loaded = true;
687                berocket_product_recount();
688                berocket_reset_button_hide_not();
689                $('.berocket_aapf_widget_loading').remove();
690                berocket_aapf_widget_first_page_jump = true;
691                berocket_aapf_404_jump_fail = false;
692                berocket_aapf_404_jump = false;
693                if( attribute_selected_count_start != get_widget_selected_filters().length ) {
694					updateProducts();
695				} else {
696					// call user func after_update
697					$(document).trigger('berocket_ajax_products_loaded');
698					$(document).trigger('berocket_ajax_filtering_end');
699					if( the_ajax_script.user_func != null )
700						berocket_fire( the_ajax_script.user_func.after_update );
701				}
702            }, return_type).fail(function() {
703                if ( berocket_last_ajax_request_id == berocket_this_ajax_request_id ) {
704                    if( ! berocket_aapf_404_jump_fail ) {
705                        berocket_aapf_404_jump = true;
706                        berocket_aapf_404_jump_fail = true;
707                        updateProducts($force);
708                    } else {
709                        berocket_aapf_404_jump_fail = false;
710                        berocket_aapf_404_jump = false;
711                        $(document).trigger('berocket_ajax_filtering_end');
712                    }
713                } else {
714                    $(document).trigger('berocket_ajax_filtering_end');
715                }
716            });
717            if ( berocket_aapf_404_jump ) {
718                the_ajax_script.first_page = first_page_404;
719                berocket_aapf_widget_first_page_jump = berocket_aapf_widget_first_page_jump_404;
720                first_page_404 = false;
721            }
722        }
723
724        function afterAjaxLoad( args ) {
725            result = {
726                reset_pagination_event:false,
727            }
728            if( ! the_ajax_script.woocommerce_removes.result_count ) {
729                $(the_ajax_script.result_count_class).html( $(args.result_count).html() || '' );
730            }
731            if( ! the_ajax_script.woocommerce_removes.ordering ) {
732                $(the_ajax_script.ordering_class).html( $(args.catalog_ordering).html() || '' );
733            }
734            if( ! the_ajax_script.woocommerce_removes.pagination ) {
735                $(the_ajax_script.pagination_class).html( $(args.pagination).html() || '' );
736            }
737
738            if ( typeof args.products != 'undefined' ) {
739                if( $(the_ajax_script.pagination_class).length == 0 && ! the_ajax_script.woocommerce_removes.pagination ) {
740                    args.products = args.products+( args.pagination || '' );
741                    result.reset_pagination_event = true;
742                }
743                if( $(the_ajax_script.ordering_class).length == 0 && ! the_ajax_script.woocommerce_removes.ordering ) {
744                    args.products = ( args.catalog_ordering || '' )+args.products;
745                }
746                if( $(the_ajax_script.result_count_class).length == 0 && ! the_ajax_script.woocommerce_removes.result_count ) {
747                    args.products = ( args.result_count || '' )+args.products;
748                }
749            }
750            // call user func on_update
751            
752            $(document).trigger('berocket_ajax_filtering_on_update');
753            if( the_ajax_script.user_func != null )
754                berocket_fire( the_ajax_script.user_func.on_update );
755
756            if ( $('.woocommerce-info').hasClass('woocommerce-info') && ! $(the_ajax_script.products_holder_id).is(':visible') ) {
757                if ( typeof args.products != 'undefined' ) {
758                    if( berocket_replace_only_html ) {
759                        location.reload();
760                    } else {
761                        $('.woocommerce-info').replaceWith(args.products);
762                    }
763                }
764            } else {
765                var $block_products_holder_id;
766                if( $(the_ajax_script.products_holder_id).length > 1 ) {
767                    $(the_ajax_script.products_holder_id).each(function () {
768                        if( $(this).is('.berocket_aapf_true') || $(this).parents('.berocket_aapf_true').length || $(this).find('.berocket_aapf_true').length ) {
769                            $block_products_holder_id = $(this);
770                            return false;
771                        }
772                        if( typeof($block_products_holder_id) == 'undefined' && ! $(this).is('.berocket_aapf_false') && $(this).parents('.berocket_aapf_false').length && $(this).find('.berocket_aapf_false').length ) {
773                            $block_products_holder_id = $(this);
774                        }
775                    });
776                }
777                if( typeof($block_products_holder_id) == 'undefined' ) {
778                    $block_products_holder_id = $(the_ajax_script.products_holder_id);
779                }
780                if ( typeof args.no_products != 'undefined' ) {
781                    if( berocket_child_no_products ) {
782                        args.no_products = berocket_child_no_products;
783                    }
784                    if ( $block_products_holder_id.length > 0 ) {
785                        $block_products_holder_id.html(args.no_products);
786                    } else if ( $('div.woocommerce').length > 0 ) {
787                        $('div.woocommerce').html(args.no_products);
788                    }
789                } else {
790                    var $products = $(args.products);
791                    if ( $products.length > 0 ) {
792                        if ( $block_products_holder_id.length > 0 ) {
793                            if( berocket_replace_only_html ) {
794                                $block_products_holder_id.html($products.html());
795                                if( typeof($block_products_holder_id.isotope) == 'function' ) {
796                                    $block_products_holder_id.isotope( 'reloadItems' );
797                                    $block_products_holder_id.isotope();
798                                }
799                                jQuery(document).trigger('berocket_aapf_time_to_fix_products_style');
800                                jQuery(the_ajax_script.products_holder_id).find("*").filter(function() {return jQuery(this).css("opacity") == "0";}).css("opacity", 1);
801                            } else {
802                                $block_products_holder_id.replaceWith($products);
803                            }
804                        } else {
805                            if ( $('div.woocommerce').length > 0 ) {
806                                $('div.woocommerce').html($products.prop('outerHTML'));
807                            }
808                        }
809                    } else {
810                        if ( $products.find(the_ajax_script.products_holder_id).length > 0 ) {
811                            if ( $block_products_holder_id.length > 0 ) {
812                                $block_products_holder_id.html($products.find(the_ajax_script.products_holder_id).html());
813                            } else if ( $('div.woocommerce').length > 0 ) {
814                                $('div.woocommerce').html($products.find(the_ajax_script.products_holder_id).prop('outerHTML'));
815                            }
816                        } else {
817                            if ( $block_products_holder_id.length > 0 ) {
818                                $block_products_holder_id.html(the_ajax_script.no_products);
819                            } else if ( $('div.woocommerce').length > 0 ) {
820                                $('div.woocommerce').html('');
821                            }
822                        }
823                    }
824                }
825            }
826            return result;
827        }
828
829        berocket_new_product_recount = function ($data) {
830            $is_berocket_wc_shortcode_fix = $data.is('.berocket_wc_shortcode_fix');
831            $new_widgets_list = [];
832            $data.find('.berocket_single_filter_widget').each(function (i,o) {
833                var showbutton = $('.berocket_single_filter_widget.berocket_single_filter_widget_'+$(o).data('id')).data('showbutton');
834                var $thistitle = $(o).find('.berocket_aapf_widget-title_div');
835                var widget_block = $thistitle.next('.berocket_aapf_widget');
836                if(showbutton == 'hide') {
837                    widget_block.slideDown(0, function(){widget_block.find('.mCSB_container').css('width', '');});
838                    $thistitle.find('span').removeClass('show_button').addClass('hide_button');
839                } else if( showbutton == 'show' ) {
840                    widget_block.slideUp(0);
841                    $thistitle.find('span').removeClass('hide_button').addClass('show_button');
842                }
843                var show_child_button = $('.berocket_single_filter_widget.berocket_single_filter_widget_'+$(o).data('id')).find('.br_child_toggle .fa-minus');
844                if( show_child_button.length ) {
845                    show_child_button.each(function() {
846                        hide_child_attributes($(o).find('.br_child_toggle[data-term_id='+$(this).parents('.br_child_toggle').data('term_id')+']'));
847                    });
848                }
849                $html = $(o).html();
850                if( $is_berocket_wc_shortcode_fix ) {
851                    $(o).html('');
852                    $('.berocket_single_filter_widget.berocket_single_filter_widget_'+$(o).data('id')).not('.berocket_wc_shortcode_fix .berocket_single_filter_widget').html($html);
853                } else {
854                    $('.berocket_single_filter_widget.berocket_single_filter_widget_'+$(o).data('id')).html($html);
855                }
856            });
857            $('.berocket_single_filter_widget').each(function(i, o) {
858                var showbutton = $(o).data('showbutton');
859                var $thistitle = $(o).find('.berocket_aapf_widget-title_div');
860                var widget_block = $thistitle.next('.berocket_aapf_widget');
861                if(showbutton == 'hide')
862                {
863                    widget_block.parents('.berocket_single_filter_widget').first().removeClass('berocket_single_filter_hidden').addClass('berocket_single_filter_visible');
864                    widget_block.slideDown(100, function(){widget_block.find('.mCSB_container').css('width', '');});
865                    $thistitle.find('span').removeClass('show_button').addClass('hide_button');
866                    $thistitle.parents('.berocket_single_filter_widget').data('showbutton', 'hide');
867                }
868                else if( showbutton == 'show' )
869                {
870                    widget_block.parents('.berocket_single_filter_widget').first().removeClass('berocket_single_filter_visible').addClass('berocket_single_filter_hidden');
871                    widget_block.slideUp(100);
872                    $thistitle.find('span').removeClass('hide_button').addClass('show_button');
873                    $thistitle.parents('.berocket_single_filter_widget').data('showbutton', 'show');
874                }
875                berocket_widget_show_values_text($(this));
876            });
877            if( ! $('.berocket_single_filter_widget').length ) {
878                $data.find('.berocket_aapf_widget').each(function (i,o) {
879                    $widget_id = $(o).data('widget_id');
880                    $new_widgets_list[ $new_widgets_list.length ] = $widget_id;
881
882                    if ( $(o).parents('.berocket_search_box_block').hasClass('berocket_search_box_block') ) {
883                        var $html = $(o).parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').html();
884                        $(o).parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').html('');
885                        $('#'+$widget_id).html($html).show(0);
886                    } else {
887                        if( $(o).has('.mCSB_container').length) {
888                            var $html = $(o).find('.mCSB_container').html();
889                            $(o).find('.mCSB_container').html('');
890                        } else {
891                            var $html = $(o).html();
892                            $(o).html('');
893                        }
894                        if( $('[data-widget_id="'+$widget_id+'"]').has('.mCSB_container').length ) {
895                            $('[data-widget_id="'+$widget_id+'"]').find('.mCSB_container').html($html).parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').show(0);
896                        } else {
897                            $('[data-widget_id="'+$widget_id+'"]').html($html).parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').show(0);
898                        }
899                    }
900                });
901            }
902            $( ".berocket_filter_slider" ).each(function (i,o){
903                berocket_set_slider ( i, o );
904            });
905
906            $(".berocket_aapf_widget_height_control").each(function (i,o){
907                if( ! $(o).hasClass('br_height_controled') ) {
908                    $(o).css('height', $(o).height()).mCustomScrollbar({
909                        axis: "y",
910                        theme: $(o).data('scroll_theme'),
911                        scrollInertia: 300
912                    }).addClass('br_height_controled');
913                    berocket_custom_scroll_bar_init();
914                }
915            });
916
917            $('body').find('.berocket_aapf_widget').each(function (i,o) {
918                if( $(o).parents('.berocket_single_filter_widget').length == 0 ) {
919                    $remove_it = true;
920                    $($new_widgets_list).each(function (ii,oo){
921                        if ( $(o).data('widget_id') == oo ) {
922                            $remove_it = false;
923                        }
924                    });
925
926                    if ( $remove_it ) {
927                        $('#'+$(o).data('widget_id')).hide(0);
928                    }
929                }
930            });
931            if( the_ajax_script.use_select2 && $(".berocket_aapf_widget select").length && typeof $(".berocket_aapf_widget select").select2 == 'function' ) {
932                $(".select2-container--open").remove();
933                $(".berocket_aapf_widget select").select2({width:'100%'});
934            }
935        }
936
937        berocket_product_recount = function () {
938            if( berocket_aapf_attribute_data.loaded && berocket_aapf_child_parent_loaded ) {
939                jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
940                    jQuery(o).parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').show();
941                });
942                if ( the_ajax_script.ajax_request_load_style == 'jquery' && the_ajax_script.ajax_request_load ) {
943                    var $data = berocket_aapf_attribute_data.jquery;
944                    berocket_new_product_recount($data);
945                    berocket_aapf_attribute_data.jquery = false;
946                    berocket_aapf_attribute_data.loaded = false;
947                } else {
948                    var data = {attributesname: berocket_aapf_attribute_data.name, attributes: berocket_aapf_attribute_data.data};
949                    if( the_ajax_script.recount_products ) {
950                        $('.berocket_aapf_widget').each(function (i,o){
951                            if( $(o).data('type') == 'color' || $(o).data('type') == 'checkbox' || $(o).data('type') == 'radio'  || $(o).data('type') == 'select' || $(o).data('type') == 'image' || $(o).data('type') == 'ranges' ) {
952                                attribute_pos = data.attributesname.indexOf($(o).data('attribute'));
953                                if( attribute_pos >= 0 && typeof(data.attributes[attribute_pos]) != 'undefinded' && data.attributes[attribute_pos] != null ) {
954                                    if( $(o).data('type') == 'color' || $(o).data('type') == 'checkbox' || $(o).data('type') == 'image' ) {
955                                        data.attributes[attribute_pos].forEac
955h( function(element, index, array) {
956                                            $(o).find('.checkbox_'+element.term_id+element.taxonomy).each(function( i2, o2 ) {
957                                                $(o2).data('term_count', element.count).parents('li').first().find('.berocket_aapf_count').text(element.count);
958                                                hide_show_o_value($(o2), element.count);
959                                            });
960                                        });
961                                    } else if( $(o).data('type') == 'ranges' ) {
962                                        data.attributes[attribute_pos].forEach( function(element, index, array) {
963                                            $(o).find('.checkbox_'+element.term_ranges).each(function( i2, o2 ) {
964                                                $(o2).parents('li').first().find('.berocket_aapf_count').text(element.count);
965                                                hide_show_o_value($(o2), element.count);
966                                            });
967                                        });
968                                    } else if( $(o).data('type') == 'radio' ) {
969                                        data.attributes[attribute_pos].forEach( function(element, index, array) {
970                                            $(o).find('.radio_'+element.term_id+'_'+element.taxonomy).each(function( i2, o2 ) {
971                                                $(o2).parents('li').first().find('.berocket_aapf_count').text(element.count);
972                                                hide_show_o_value($(o2), element.count);
973                                            });
974                                        });
975                                    } else if( $(o).data('type') == 'select' ) {
976                                        data.attributes[attribute_pos].forEach( function(element, index, array) {
977                                            $(o).find('.select_'+element.term_id).text($(o).find('.select_'+element.term_id).data('term_name')+' ('+element.count+')');
978                                            hide_show_o_value_select( $('.select_'+$(o).data('term_id')), element.count );
979                                        });
980                                    }
981                                }
982                            }
983                        });
984                    }
985                    berocket_aapf_attribute_data.loaded = false;
986                    berocket_aapf_attribute_data.name = [];
987                    berocket_aapf_attribute_data.data = [];
988                }
989            }
990            if( the_ajax_script.hide_empty_value ) {
991                jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
992                    if( jQuery(o).parents('.berocket_search_box_block').parents('.berocket_search_box_block').length == 0 && jQuery(o).parents('.br_child_parent_wrapper').length == 0 ) {
993                        if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').length ) {
994                            jQuery(o).parents('.berocket_aapf_widget-wrapper').addClass('berocket_hiden_without_visible_values').hide().parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').hide();
995                        }
996                    }
997                });
998            }
999            berocket_reset_button_hide_not();
1000            update_data_containers();
1001            update_selected_area();
1002        }
1003
1004        function hide_show_o_value($block, count) {
1005            if( the_ajax_script.hide_o_value ) {
1006                if( count == 0 ) {
1007                    $block.each(function(i, o) {
1008                        $(o).parents('li').first().addClass('berocket_hide_o_value');
1009                    });
1010                } else {
1011                    $block.each(function(i, o) {
1012                        $(o).parents('li').first().removeClass('berocket_hide_o_value');
1013                    });
1014                }
1015                var $parent = $block.parents('ul.berocket_aapf_widget');
1016                $parent.each( function ( i, o ) {
1017                    if( the_ajax_script.hide_o_value && $(o).find('.berocket_hide_o_value').length > 0 || 
1018                    the_ajax_script.hide_sel_value && $(o).find('.berocket_hide_sel_value').length > 0 ) {
1019                        $(o).find('.berocket_widget_show_values').show();
1020                    } else {
1021                        $(o).find('.berocket_widget_show_values').hide();
1022                    }
1023                });
1024            }
1025        }
1026
1027        function hide_show_o_value_select($block, count) {
1028            if( the_ajax_script.hide_o_value ) {
1029                if( count == 0 ) {
1030                    $block.each(function(i, o) {
1031                        $(o).addClass('berocket_hide_o_value').prop('hidden', true).prop('disabled', true);
1032                    });
1033                } else {
1034                    $block.each(function(i, o) {
1035                        $(o).removeClass('berocket_hide_o_value').prop('hidden', false).prop('disabled', false);
1036                    });
1037                }
1038            }
1039        }
1040
1041        function updateLocation( args, pushstate, return_request ){
1042            if( typeof(newUpdateLocation) == 'function' ) {
1043                return newUpdateLocation(args, pushstate, return_request);
1044            }
1045            if ( typeof return_request == 'undefined' ) return_request = false;
1046            uri_request_array = [];
1047            var uri_request = '';
1048            temp_terms = [];
1049            var taxonomy_sparator = "|", start_terms = "[", end_terms = "]", variable = 'filters';
1050
1051            if (typeof the_ajax_script.nn_url_variable != "undefined" && the_ajax_script.nn_url_variable.length > 0) {
1052                variable = the_ajax_script.nn_url_variable;
1053            }
1054            if (typeof the_ajax_script.nn_url_value_1 != "undefined" && the_ajax_script.nn_url_value_1.length > 0) {
1055                start_terms = the_ajax_script.nn_url_value_1;
1056                end_terms = the_ajax_script.nn_url_value_2;
1057            }
1058            if (typeof the_ajax_script.nn_url_split != "undefined" && the_ajax_script.nn_url_split.length > 0) {
1059                taxonomy_sparator = the_ajax_script.nn_url_split;
1060            }
1061
1062            if( the_ajax_script.nice_urls ) {
1063                taxonomy_sparator = the_ajax_script.nice_url_split;
1064                start_terms = the_ajax_script.nice_url_value_1;
1065                end_terms = the_ajax_script.nice_url_value_2;
1066                variable = the_ajax_script.nice_url_variable;
1067            }
1068
1069            if( args.price ){
1070                $price_obj = $('.berocket_filter_price_slider');
1071                if( ( args.price[0] || args.price[0] === 0 ) && ( args.price[1] || args.price[1] === 0 ) && ( args.price[0] != $price_obj.data('min') || args.price[1] != $price_obj.data('max') ) ){
1072                    if( uri_request ) uri_request += taxonomy_sparator;
1073                    uri_request += 'price'+start_terms+args.price[0]+'_'+args.price[1]+end_terms;
1074                }
1075            }
1076
1077            if( args.limits ){
1078                $(args.limits).each(function (i,o){
1079                    if( o[0].substring(0, 3) == 'pa_' ) {
1080                        if( !in_array( o[0].substring(3), temp_terms ) ){
1081                            temp_terms[temp_terms.length] = o[0].substring(3);
1082                        }
1083                        if( typeof uri_request_array[in_array( o[0].substring(3), temp_terms )] == 'undefined' ) {
1084                            uri_request_array[in_array(o[0].substring(3), temp_terms)] = [];
1085                        }
1086                        uri_request_array[in_array( o[0].substring(3), temp_terms )]
1087                            [uri_request_array[in_array( o[0].substring(3), temp_terms )].length] = [o[1],o[2]];
1088                    } else {
1089                        if( !in_array( o[0], temp_terms ) ){
1090                            temp_terms[temp_terms.length] = o[0];
1091                        }
1092                        if( typeof uri_request_array[in_array( o[0], temp_terms )] == 'undefined' ) {
1093                            uri_request_array[in_array(o[0], temp_terms)] = [];
1094                        }
1095                        uri_request_array[in_array( o[0], temp_terms )]
1096                            [uri_request_array[in_array( o[0], temp_terms )].length] = [o[1],o[2]];
1097                    }
1098                });
1099            }
1100            if( args.terms ){
1101                $(args.terms).each(function (i,o){
1102                    if ( the_ajax_script.slug_urls ) {
1103                        o[1] = o[3];
1104                    }
1105                    if( o[0].substring(0, 3) == 'pa_' ) {
1106                        if( !in_array( o[0].substring(3), temp_terms ) ){
1107                            temp_terms[temp_terms.length] = o[0].substring(3);
1108                        }
1109                        if( typeof uri_request_array[in_array( o[0].substring(3), temp_terms )] == 'undefined' ) {
1110                            uri_request_array[in_array(o[0].substring(3), temp_terms)] = [];
1111                        }
1112                        uri_request_array[in_array( o[0].substring(3), temp_terms )]
1113                            [uri_request_array[in_array( o[0].substring(3), temp_terms )].length] = [o[1],o[2]];
1114                    } else {
1115                        if( !in_array( o[0], temp_terms ) ){
1116                            temp_terms[temp_terms.length] = o[0];
1117                        }
1118                        if( typeof uri_request_array[in_array( o[0], temp_terms )] == 'undefined' ) {
1119                            uri_request_array[in_array(o[0], temp_terms)] = [];
1120                        }
1121                        uri_request_array[in_array( o[0], temp_terms )]
1122                            [uri_request_array[in_array( o[0], temp_terms )].length] = [o[1],o[2]];
1123                    }
1124                });
1125            }
1126
1127            if( uri_request_array.length ) {
1128                $(uri_request_array).each(function (i,o){
1129                    if( uri_request ) uri_request += taxonomy_sparator;
1130
1131                    if( typeof o != 'object' ){
1132                        if( the_ajax_script.seo_uri_decode ) {
1133                            uri_request += encodeURIComponent( o );
1134                        } else {
1135                            uri_request += o;
1136                        }
1137                    }else{
1138                        cnt_oo = false;
1139                        if( the_ajax_script.seo_uri_decode ) {
1140                            uri_request += encodeURIComponent( temp_terms[i] )+start_terms;
1141                        } else {
1142                            uri_request += temp_terms[i]+start_terms;
1143                        }
1144
1145                        $(o).each(function (ii,oo){
1146                            if( ( oo[1] == 'AND' || oo[1] == 'OR' ) ){
1147                                if( cnt_oo ){
1148                                    if(oo[1] == 'AND'){
1149                                        if( the_ajax_script.seo_uri_decode ) {
1150                                            uri_request += encodeURIComponent('+');
1151                                        } else {
1152                                            uri_request += '+';
1153                                        }
1154                                    }else{
1155                                        if( the_ajax_script.seo_uri_decode ) {
1156                                            uri_request += encodeURIComponent('-');
1157                                        } else {
1158                                            uri_request += '-';
1159                                        }
1160                                    }
1161                                }
1162                            }else{
1163                                oo[0] += '_'+oo[1];
1164                            }
1165                            if( the_ajax_script.seo_uri_decode ) {
1166                                uri_request += encodeURIComponent(oo[0]);
1167                            } else {
1168                                uri_request += oo[0];
1169                            }
1170                            cnt_oo = true;
1171                        });
1172                        uri_request += end_terms;
1173                    }
1174                });
1175            }
1176            uri_request = uri_request;
1177
1178            if( !pushstate ) {
1179                return uri_request;
1180            }
1181            if ( the_ajax_script.trailing_slash ) {
1182                if( the_ajax_script.nice_urls && uri_request && uri_request.slice(-1) != '/' ) {
1183                    uri_request += '/';
1184                }
1185            }
1186
1187            var uri = the_ajax_script.current_page_url;
1188            if ( /\?/.test(uri) ) {
1189                passed_vars1 = uri.split('?');
1190                uri = passed_vars1[0];
1191            }
1192            if( uri && uri.slice(-1) != '/' && ( the_ajax_script.trailing_slash ) ) {
1193                uri += '/';
1194            }
1195
1196            var cur_page = $(the_ajax_script.pagination_class).find('.current').first().text();
1197            var paginate_regex = new RegExp(".+\/"+the_ajax_script.pagination_base+"\/([0-9]+).+", "i");
1198            if( prev_page = parseInt( location.href.replace(paginate_regex, "$1") ) ) {
1199                if( ! parseInt( cur_page ) ){
1200                    cur_page = prev_page;
1201                }
1202            }
1203            if(berocket_aapf_widget_first_page_jump && the_ajax_script.first_page)   {
1204                cur_page = 1;
1205            }
1206            cur_page = parseInt( cur_page );
1207            var additional_datas = '';
1208            something_added = false;
1209            if( /\?/.test(location.href) ){
1210                passed_vars1 = location.href;
1211                if ( /\#/.test(passed_vars1) ) {
1212                    passed_vars1 = passed_vars1.split('#');
1213                    passed_vars1 = passed_vars1[0];
1214                }
1215                passed_vars1 = passed_vars1.split('?');
1216                if( passed_vars1[1] ){
1217                    passed_vars2 = [];
1218                    if( /&/.test(passed_vars1[1]) ) {
1219                        passed_vars2 = passed_vars1[1].split('&');
1220                    } else {
1221                        passed_vars2[0] = passed_vars1[1];
1222                    }
1223                    passed_vars2_length = passed_vars2.length;
1224                    for ( k = 0; k < passed_vars2.length; k++ ) {
1225                        temp = passed_vars2[k].split('=');
1226                        passed_vars2[k] = [];
1227                        passed_vars2[k][0] = temp.shift();
1228                        passed_vars2[k][1] = temp.join("=");
1229                        if( passed_vars2[k][0] == variable || passed_vars2[k][0] == 'page'  || passed_vars2[k][0] == 'paged' || passed_vars2[k][0] == 'product-page' ) continue;
1230
1231                        if( the_ajax_script.control_sorting && passed_vars2[k][0] == 'orderby' ) continue;
1232
1233                        if( something_added ) {
1234                            additional_datas += '&';
1235                        } else {
1236                            additional_datas += '?';
1237                        }
1238
1239                        additional_datas += passed_vars2[k][0]+'='+passed_vars2[k][1];
1240                        something_added = true;
1241                    }
1242                }
1243            }
1244            var next_symbol_sep = '?';
1245            if( the_ajax_script.nice_urls ) {
1246                if( uri_request ) {
1247                    if( uri.slice(-1) != '/' ) {
1248                        uri += '/';
1249                    }
1250                    uri = uri + variable + "/" + uri_request;
1251                }
1252                if( cur_page > 1 && $(the_ajax_script.pagination_class+' a').last().length && $(the_ajax_script.pagination_class+' a').last().attr('href').search('product-page=') == -1 ) {
1253                    if( uri.slice(-1) != '/' ) {
1254                        uri += '/';
1255                    }
1256                    uri = uri + the_ajax_script.pagination_base+"/" + cur_page;
1257                    if ( the_ajax_script.trailing_slash ) {
1258                        uri += '/';
1259                    }
1260                }
1261                if( something_added ) {
1262                    uri = uri + additional_datas;
1263                    next_symbol_sep = '&'
1264                }
1265            } else {
1266                if( something_added ) {
1267                    uri = uri + additional_datas;
1268                    next_symbol_sep = '&';
1269                }
1270                if( cur_page > 1 && $(the_ajax_script.pagination_class+' a').last().length && $(the_ajax_script.pagination_class+' a').last().attr('href').search('product-page=') == -1 ) {
1271                    uri = uri + next_symbol_sep + "paged=" + cur_page;
1272                    next_symbol_sep = '&';
1273                }
1274                if( uri_request ) {
1275                    uri = uri + next_symbol_sep + variable + "=" + uri_request;
1276                    next_symbol_sep = '&';
1277                }
1278            }
1279
1280            if( the_ajax_script.control_sorting && args.orderby && the_ajax_script.default_sorting != args.orderby ){
1281                uri = uri + next_symbol_sep + 'orderby=' + args.orderby;
1282                next_symbol_sep = '&';
1283            }
1284
1285            if( cur_page > 1 && $(the_ajax_script.pagination_class+' a').last().length && $(the_ajax_script.pagination_class+' a').last().attr('href').search('product-page=') != -1 ) {
1286                uri = uri + next_symbol_sep + "product-page=" + cur_page;
1287            }
1288            if ( /\#/.test(location.href) ) {
1289                passed_vars1 = location.href.split('#');
1290                passed_vars1 = passed_vars1[1];
1291                uri += '#'+passed_vars1;
1292            }
1293
1294            if( return_request ) {
1295                return uri;
1296            } else {
1297                var stateParameters = { BeRocket: "Rules" };
1298                history.replaceState(stateParameters, "");
1299                history.pushState(stateParameters, "", uri);
1300                history.pathname = uri;
1301            }
1302        }
1303        // Take control over (default) pagination and sorting, make it AJAXy and work with filters
1304        if( ! the_ajax_script.woocommerce_removes.pagination_ajax ) {
1305            $(document).on('click', the_ajax_script.pagination_class+' a', function (event) {
1306                var permalink_page = /\/page\/(\d+)/;
1307                var non_permalink_page = /paged=(\d+)/;
1308                var href = $(this).attr('href');
1309                if( permalink_page.test(href) ) {
1310                    _next_page = href.match(permalink_page);
1311                    _next_page = _next_page[1];
1312                } else if( non_permalink_page.test(href) ) {
1313                    _next_page = href.match(non_permalink_page);
1314                    _next_page = _next_page[1];
1315                } else if ( $(this).hasClass('next') || $(this).parent().hasClass('next') ) {
1316                    _next_page = $(the_ajax_script.pagination_class+' .current').first().text();
1317                    _next_page = _next_page.replace(/\D/g,'');
1318                    _next_page = parseInt( _next_page ) + 1;
1319                } else if ( $(this).hasClass('prev') || $(this).parent().hasClass('prev') ) {
1320                    _next_page = $(the_ajax_script.pagination_class+' .current').first().text();
1321                    _next_page = _next_page.replace(/\D/g,'');
1322                    _next_page = parseInt( _next_page ) - 1;
1323                } else {
1324                    _next_page = $(this).text();
1325                    _next_page = _next_page.replace(/\D/g,'');
1326                    _next_page = parseInt(_next_page);
1327                }
1328                if( typeof(_next_page) == 'undefined' || _next_page <= 0 ) {
1329                    _next_page = 1;
1330                }
1331                event.preventDefault();
1332                $(the_ajax_script.pagination_class+' .current').removeClass('current');
1333                $(this).after("<span class='page-numbers current' style='display:none;'>"+_next_page+"</span>");
1334                if( the_ajax_script.first_page ) {
1335                    berocket_aapf_widget_first_page_jump = false;
1336                }
1337                updateProducts(true);
1338            });
1339        }
1340
1341        function in_array(needle, haystack, strict) {
1342            var found = false, key, strict = !!strict;
1343            for (key in haystack) {
1344                if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
1345                    found = key;
1346                    break;
1347                }
1348            }
1349            return found;
1350        }
1351        berocket_in_array = in_array;
1352
1353        $(document).on("mousedown", ".berocket_aapf_widget input[type=radio]", function(event){
1354            if ( $(this).prop('checked') ) {
1355                $(this).addClass('radio_is_checked');
1356            } else {
1357                $(this).removeClass('radio_is_checked');
1358            }
1359        });
1360        $(document).on("click", ".berocket_aapf_widget input[type=radio]", function(event){
1361            if ( $(this).is('.radio_is_checked') ) {
1362                $label = $(this).parents('li').first().find('.berocket_label_widgets');
1363                setTimeout(function() { 
1364                    $label.click();
1365                }, 5); 
1366            }
1367        });
1368
1369        $(document).on("select2:close", ".berocket_aapf_widget select", function(){
1370            if( $(this).is('.select2changed') ) {
1371                $(this).removeClass('select2changed');
1372                berocket_on_change_inputs_selects($(this));
1373            }
1374        });
1375        $(document).on("change", ".berocket_aapf_widget input, .berocket_aapf_widget select", function(){
1376            if( $(this).is('.select2-hidden-accessible') ) {
1377                $(this).addClass('select2changed');
1378                return 0;
1379            }
1380            berocket_on_change_inputs_selects($(this));
1381        });
1382        function berocket_on_change_inputs_selects(element) {
1383            var $this = $(element);
1384            if( $this.parents('.berocket_disabled_filter_element').length ) {
1385                return;
1386            }
1387            var $parent_for = $(document);
1388            if( $this.parents('.berocket_search_box_block').length > 0 ) {
1389                $parent_for = $this.parents('.berocket_search_box_block');
1390                search_url = $parent_for.find('.berocket_search_box_button').data('url');
1391                if( the_ajax_script.current_page_url == search_url 
1392                || the_ajax_script.current_page_url.slice(-1) == '/' 
1393                && the_ajax_script.current_page_url.slice(0, -1) == search_url
1394                || search_url.slice(-1) == '/' 
1395                && the_ajax_script.current_page_url == search_url.slice(0, -1) ) {
1396                    $parent_for = $(document);
1397                }
1398            }
1399            current_value = [];
1400            $berocket_aapf_last_changed = $this;
1401            berocket_child_no_products = '';
1402            if( $this.parents('.berocket_aapf_widget-wrapper').find('.berocket_child_no_products').length > 0 && 
1403                $this.parents('.berocket_aapf_widget-wrapper').find('.berocket_child_no_products').text() ) {
1404                    berocket_child_no_products = $this.parents('.berocket_aapf_widget-wrapper').find('.berocket_child_no_products').text();
1405            }
1406            if($this.attr('type') == 'checkbox' || $this.attr('type') == 'radio')
1407            {
1408                $label = $this.parents('li').first().find('.berocket_label_widgets');
1409                if( $label.hasClass('berocket_checked')) {
1410                    $parent_for.find('.'+$label.data('for')).prop('checked', false).removeAttr('checked').trigger('refresh');
1411                    $parent_for.find('.'+$label.data('for')).each(function( i2, o2 ) {
1412                        $(o2).parents('li').first().removeClass('berocket_hide_sel_value').find('.berocket_label_widgets').removeClass('berocket_checked');
1413                    });
1414                    $label.removeClass('berocket_checked');
1415                } else {
1416                    $parent_for.find('.'+$label.data('for')).prop('checked', true).trigger('refresh');
1417                    if( $label.parents('li').first().find('input').attr('type') == 'radio' ) {
1418                        $parent_for.find('.'+$label.data('for')).parents('.berocket_aapf_widget').find('li').removeClass('berocket_hide_sel_value').find('.berocket_label_widgets').removeClass('berocket_checked');
1419                    }
1420                    $parent_for.find('.'+$label.data('for')).each(function( i2, o2 ) {
1421                        $(o2).parents('li').first().find('.berocket_label_widgets').addClass('berocket_checked');
1422                        if( the_ajax_script.hide_sel_value ) {
1423                            $(o2).parents('li').first().addClass('berocket_hide_sel_value');
1424                        }
1425                    });
1426                    $label.addClass('berocket_checked');
1427                }
1428                $parent_for.find('.'+$label.data('for')).parents('ul').find('input').trigger('refresh');
1429                if( the_ajax_script.hide_sel_value ) {
1430                    $for_objects = $parent_for.find('.'+$label.data('for')).parents('.berocket_aapf_widget');
1431                    $for_objects.each(function (i,o){
1432                        $hiden_objects = $(o).find('.berocket_hide_o_value, .berocket_hide_sel_value');
1433                        if( $hiden_objects.length == 0 ) {
1434                            $(o).find('.berocket_widget_show_values').hide();
1435                        } else {
1436                            $(o).find('.berocket_widget_show_values').show();
1437                        }
1438                    });
1439                }
1440                
1441                if($this.prop('checked'))
1442                {
1443                    $parent_for.find('.'+$label.data('for')).prop('checked', true).trigger('refresh');
1444                    if( the_ajax_script.hide_sel_value ) {
1445                        $('.'+$label.data('for')).each(function( i2, o2 ) {
1446                            $(o2).parents('li').first().addClass('berocket_hide_sel_value');
1447                        });
1448                    }
1449                }
1450                else
1451                {
1452                    $parent_for.find('.'+$label.data('for')).prop('checked', false).removeAttr('checked').trigger('refresh').each(function( i2, o2 ) {
1453                        $(o2).parents('li').removeClass('berocket_hide_sel_value');
1454                    });
1455                }
1456                $this.parents('.berocket_aapf_widget').find('input').each( function ( i, o ) {
1457                    if ( $(o).prop('checked') ) {
1458                        current_value.push( parseInt( $(o).data('term_id') ) );
1459                    }
1460                });
1461            } else if($this.is('select')) {
1462                var selected_val = [];
1463                $(element).find('option:selected').each(function(i, o) {
1464                    selected_val.push($(o).val());
1465                });
1466                if( $this.parents('.berocket_aapf_widget').data('child_parent') != 'child' ) {
1467                    $parent_for.find('select.'+$this.data('taxonomy')).val(selected_val).trigger('refresh');
1468                }
1469                current_value = selected_val;
1470                if( ! selected_val.length ) {
1471                    current_value = false;
1472                }
1473            }
1474            if( $this.parents('.berocket_search_box_block').length == 0 ) {
1475                var $widget_child = '';
1476                if ( $this.parents('.berocket_aapf_widget').data('child_parent') == 'parent' || $this.parents('.berocket_aapf_widget').data('child_parent') == 'child' ) {
1477                    berocket_aapf_child_parent_loaded = false;
1478                    $widget_child = '.'+$this.parents('.berocket_aapf_widget').data('attribute')+'_child_';
1479                    if ( $this.parents('.berocket_aapf_widget').data('child_parent') == 'parent' ) {
1480                        $widget_child += '1';
1481                    } else {
1482                        $widget_child += ( parseInt( $this.parents('.berocket_aapf_widget').data('child_parent_depth') ) + 1 );
1483                    }
1484                    $widget_child = $($widget_child);
1485                    berocket_remove_child ( $widget_child );
1486                }
1487                updateProducts();
1488                if ( $this.parents('.berocket_aapf_widget').data('child_parent') == 'parent' || $this.parents('.berocket_aapf_widget').data('child_parent') == 'child' ) {
1489                    berocket_child_load ( $widget_child, $this.parents('.berocket_aapf_widget').data('attribute'), current_value, 'default' );
1490                }
1491                if( !berocket_aapf_child_parent_loaded ) {
1492                    berocket_aapf_child_parent_loaded = true;
1493                    berocket_product_recount();
1494                }
1495                berocket_reset_button_hide_not();
1496            }
1497        }
1498
1499        berocket_set_slider = function ( i, o ) {
1500            if( ! $(o).hasClass('berocket_slidered') ) {
1501                var all_terms_name;
1502                var all_terms_slug;
1503                var slider_disabled = $(o).data('disabled');
1504                if( slider_disabled ) {
1505                    slider_disabled = true;
1506                } else {
1507                    slider_disabled = false;
1508                }
1509                $(o).addClass('berocket_slidered').slider({
1510                    range: true,
1511                    min: parseFloat($(o).data('min')),
1512                    max: parseFloat($(o).data('max')),
1513                    values: [$(o).data('value1'),$(o).data('value2')],
1514                    disabled: slider_disabled,
1515                    create: function( event, ui ) {
1516                        all_terms_name = $(o).data('all_terms_name');
1517                        all_terms_slug = $(o).data('all_terms_slug');
1518                        $o = $(o);
1519                        var number_style = $(o).data('number_style');
1520                        if( ! number_style ) {
1521                            number_style = the_ajax_script.number_style;
1522                        }
1523                        if( $(o).data('all_terms_name') == null )  {
1524                            $( '#'+$o.data('fields_1') ).val( berocket_format_number ($(o).data('value1') / $(o).data( 'step' ), number_style ) );
1525                            $( '#'+$o.data('fields_2') ).val( berocket_format_number ($(o).data('value2') / $(o).data( 'step' ), number_style ) );
1526                            $(o).data('value_1', $(o).data('value1') / $(o).data( 'step' ) );
1527                            $(o).data('value_2', $(o).data('value2') / $(o).data( 'step' ) );
1528                        } else {
1529                            $( '#'+$o.data('fields_1') ).val( all_terms_slug[ $(o).data('value1')>>0 ] );
1530                            $( '#'+$o.data('fields_2') ).val( all_terms_slug[ $(o).data('value2')>>0 ] );
1531                            $(o).data('value_1', all_terms_name[ $(o).data('value1')>>0 ] );
1532                            $(o).data('value_2', all_terms_name[ $(o).data('value2')>>0 ] );
1533                        }
1534                    }
1535                }).on('slidestop', function( event ){
1536                    var $widget_child = '', current_value = false;
1537                    if ( $(o).data('min') != $(o).data('value1') || $(o).data('max') != $(o).data('value2') ) {
1538                        current_value = [$(o).data('value1'), $(o).data('value2')];
1539                    }
1540                    if( $(this).parents('.berocket_search_box_block').length == 0 ) {
1541                        if ( $(o).parents('.berocket_aapf_widget').data('child_parent') == 'parent' || $(o).parents('.berocket_aapf_widget').data('child_parent') == 'child' ) {
1542                            
1543                            $widget_child = '.'+$(o).parents('.berocket_aapf_widget').data('attribute')+'_child_';
1544                            if ( $(o).parents('.berocket_aapf_widget').data('child_parent') == 'parent' ) {
1545                                $widget_child += '1';
1546                            } else {
1547                                $widget_child += ( parseInt( $(o).parents('.berocket_aapf_widget').data('child_parent_depth') ) + 1 );
1548                            }
1549                            $widget_child = $($widget_child);
1550                            berocket_remove_child ( $widget_child );
1551                        }
1552                        $berocket_aapf_last_changed = $(o);
1553                        updateProducts();
1554                        if ( $(o).parents('.berocket_aapf_widget').data('child_parent') == 'parent' || $(o).parents('.berocket_aapf_widget').data('child_parent') == 'child' ) {
1555                            berocket_child_load ( $widget_child, $(o).parents('.berocket_aapf_widget').data('attribute'), current_value, 'slider' );
1556                        }
1557                        if( !berocket_aapf_child_parent_loaded ) {
1558                            berocket_aapf_child_parent_loaded = true;
1559                            berocket_product_recount();
1560                        }
1561                        berocket_reset_button_hide_not();
1562                    }
1563                }).on('slide', function( event, ui ) {
1564                    $o = $(ui.handle).parents('div.berocket_filter_slider');
1565                    vals = ui.values;
1566                    var number_style = $(o).data('number_style');
1567                    if( ! number_style ) {
1568                        number_style = the_ajax_script.number_style;
1569                    }
1570                    if( $(o).data('all_terms_name') == null ) {
1571                        $( '#'+$o.data('fields_1') ).val( berocket_format_number (vals[0]/$(o).data('step'), number_style) );
1572                        $( '#'+$o.data('fields_2') ).val( berocket_format_number (vals[1]/$(o).data('step'), number_style) );
1573                        $o.data('value_1', (vals[0]/$(o).data('step')));
1574                        $o.data('value_2', (vals[1]/$(o).data('step')));
1575                    } else {
1576                        $( '#'+$o.data('fields_1') ).val( all_terms_slug[vals[0]] );
1577                        $( '#'+$o.data('fields_2') ).val( all_terms_slug[vals[1]] );
1578                        $o.data('value_1', all_terms_name[vals[0]]);
1579                        $o.data('value_2', all_terms_name[vals[1]]);
1580                    }
1581
1582                    if ( $o.data('child_parent') != 'child' && $o.data('child_parent') != 'parent' ) {
1583                        $('.slide div').each(function( i, obj ) {
1584                            if( $(obj).data('taxonomy') == $(o).data('taxonomy') ) {
1585                                $(obj).slider("values", vals);
1586                                var number_style = $(obj).data('number_style');
1587                                if( ! number_style ) {
1588                                    number_style = the_ajax_script.number_style;
1589                                }
1590                                if( $(o).data('all_terms_name') == null ) {
1591                                    $( '#'+$(obj).data('fields_1') ).val( berocket_format_number (vals[0] / $(obj).data( 'step' ), number_style ) );
1592                                    $( '#'+$(obj).data('fields_2') ).val( berocket_format_number (vals[1] / $(obj).data( 'step' ), number_style ) );
1593                                    $(obj).data('value_1', (vals[0]/$(o).data('step')));
1594                                    $(obj).data('value_2', (vals[1]/$(o).data('step')));
1595                                } else {
1596                                    $( '#'+$(obj).data('fields_1') ).val( all_terms_slug[ vals[0] ] );
1597                                    $( '#'+$(obj).data('fields_2') ).val( all_terms_slug[ vals[1] ] );
1598                                    $(obj).data('value_1', all_terms_name[vals[0]]);
1599                                    $(obj).data('value_2', all_terms_name[vals[1]]);
1600                                }
1601                            }
1602                        });
1603                    }
1604                });
1605            }
1606        }
1607        berocket_slider_input_val_started = false;
1608        $(document).on('focus', '.berocket_slider_start_val, .berocket_slider_end_val', function() {
1609            if ( ! $(this).is(':disabled') ) {
1610                var slider = $(this).parents('.berocket_aapf_widget').find('.berocket_filter_slider');
1611                var values = slider.slider( "option", "values" );
1612
1613                if( $(this).is('.berocket_slider_start_val') ) {
1614                    $(this).val( values[0] ).data('save_val', values[0]);
1615                } else {
1616                    $(this).val( values[1] ).data('save_val', values[1]);
1617                }
1618            }
1619        });
1620        $(document).on('focusout', '.berocket_slider_start_val, .berocket_slider_end_val', function() {
1621            if ( ! $(this).is(':disabled') && $(this).data('save_val') == $(this).val() ) {
1622                var slider = $(this).parents('.berocket_aapf_widget').find('.berocket_filter_slider');
1623                var number_style = slider.data('number_style');
1624                if( ! number_style ) {
1625                    number_style = the_ajax_script.number_style;
1626                }
1627
1628                $val = $(this).val();
1629                $(this).val( berocket_format_number( $val*1, number_style) );
1630            }
1631        });
1632        $(document).on('change', '.berocket_slider_start_val, .berocket_slider_end_val', function() {
1633            if( ! berocket_slider_input_val_started ) {
1634                berocket_slider_input_val_started = true;
1635                var slider = $(this).parents('.berocket_aapf_widget').find('.berocket_filter_slider');
1636                var values = slider.slider( "option", "values" );
1637                if( $(this).is('.berocket_slider_start_val') ) {
1638                    values[0] = $(this).val();
1639                } else {
1640                    values[1] = $(this).val();
1641                }
1642                slider.slider( "option", "values", values );
1643                slider
1644                .trigger('slide', {handle:slider.find('.ui-slider-handle').first(), value: values[0], values: values})
1645                .trigger('slide', {handle:slider.find('.ui-slider-handle').last(), value: values[1], values: values})
1646                .trigger('slidestop');
1647                berocket_slider_input_val_started = false;
1648            }
1649        });
1650
1651        $(document).on('click', '.berocket_aapf_widget_selected_area .br_unselect_all', function (event){
1652            event.preventDefault();
1653            br_reset_all_filters();
1654        });
1655
1656        $(document).on('mouseenter', '.berocket_aapf_widget_selected_area a, .berocket_aapf_widget a', function (event){
1657            $(this).addClass('br_hover');
1658        });
1659
1660        $(document).on('mouseleave', '.berocket_aapf_widget_selected_area a, .berocket_aapf_widget a', function (event){
1661            $(this).removeClass('br_hover');
1662        });
1663
1664        $(document).on('click', '.berocket_aapf_widget_selected_area a:not(.br_unselect_all)', function (event){
1665            event.preventDefault();
1666            $obj = $(this);
1667            berocket_unselect_all = true;
1668            var el_type = $obj.data('el_type');
1669            var el_id = $obj.data('el_id');
1670            var taxonomy = $obj.data('el_taxonomy');
1671            reset_filter(el_type, el_id, taxonomy);
1672            berocket_unselect_all = false;
1673            updateProducts(true);
1674        });
1675
1676        $(document).on('click', '.berocket_aapf_reset_button', function() {
1677            br_reset_all_filters();
1678        });
1679
1680        br_reset_all_filters = function () {
1681            berocket_unselect_all = true;
1682            reset_info = get_widget_selected_filters();
1683            reset_info.forEach(function(element) {
1684                reset_filter(element.type, element.id, element.taxonomy);
1685            });
1686            berocket_unselect_all = false;
1687            updateProducts(true);
1688        }
1689
1690        function reset_filter(el_type, el_id, taxonomy) {
1691            $berocket_aapf_last_changed = $('.berocket_aapf_widget li').first();
1692            if ( el_type == 'checkbox' || el_type == 'color' || el_type == 'radio' ) {
1693                if( $('.' + el_id).prop('checked') ) {
1694                    $('.' + el_id).first().parents('li').first().find('label').trigger('click');
1695                }
1696            } else if ( el_type == 'select' ) {
1697                $( 'select.'+taxonomy ).find('option.select_'+el_id).prop('selected', false);
1698                $( 'select.'+taxonomy ).trigger('change.select2');
1699                updateProducts();
1700            } else if ( el_type == 'slider' ) {
1701                $slider = $('#'+el_id).closest('li').find('.berocket_filter_slider');
1702
1703                var val1 = parseFloat($slider.data('min'));
1704                var val2 = parseFloat($slider.data('max'));
1705
1706                ui = {handle:$slider.children(), values:[val1,val2]};
1707                $slider.slider( "values", [ val1, val2 ] ).trigger('slide', ui);
1708
1709                updateProducts();
1710            } else if ( el_type == '_date' ) {
1711                $date = $('.'+el_id+'.berocket_date_picker');
1712
1713                var val1 = $date.data('min');
1714                var val2 = $date.data('max');
1715
1716                berocket_unselect_all = true;
1717                $('.'+el_id+'.br_start_date').val(val1).trigger('change');
1718                $('.'+el_id+'.br_end_date').val(val2).trigger('change');
1719                berocket_unselect_all = false;
1720
1721                updateProducts();
1722            }
1723        }
1724
1725        $(document).on('click', '.berocket_aapf_widget_update_button', function (event) {
1726            event.preventDefault();
1727            updateProducts(true);
1728        });
1729
1730        $(document).on('click', '.berocket_label_widgets', function(event) {
1731            if( $(this).parents('li').first().find('input').attr('type') == 'checkbox' || $(this).parents('li').first().find('input').attr('type') == 'radio' ) {
1732                event.preventDefault();
1733                event.stopPropagation();
1734                $(this).parents('span').first().find('input').trigger('change');
1735            }
1736        });
1737
1738        $(document).on( 'click', '.berocket_aapf_widget-title_div:not(".disable_collapse")', function( event ) {
1739            event.preventDefault();
1740            if( $(window).width() > 768 && $(this).parents('.berocket_inline_clickable_hover.berocket_single_filter_visible').length ) {
1741                return false;
1742            }
1743            $(this).trigger('br_showhide');
1744        });
1745
1746        $(document).on( 'br_showhide', '.berocket_aapf_widget-title_div:not(".disable_collapse")', function( event ) {
1747            var widget_block = $(this).next('.berocket_aapf_widget');
1748            $(this).parents('.berocket_single_filter_widget').data('showbutton', widget_block.css('display') == 'none');
1749            if(widget_block.css('display') == 'none')
1750            {
1751                widget_block.parents('.berocket_single_filter_widget').first().removeClass('berocket_single_filter_hidden').addClass('berocket_single_filter_visible');
1752                widget_block.slideDown(0, function(){widget_block.find('.mCSB_container').css('width', '');});
1753                $(this).find('span').removeClass('show_button').addClass('hide_button');
1754                $(this).parents('.berocket_single_filter_widget').data('showbutton', 'hide');
1755            }
1756            else
1757            {
1758                widget_block.parents('.berocket_single_filter_widget').first().removeClass('berocket_single_filter_visible').addClass('berocket_single_filter_hidden');
1759                widget_block.slideUp(0);
1760                if( typeof(widget_block.find('select').select2) == 'function' && widget_block.find('select').data('select2') ) {
1761                    widget_block.find('select').select2("close");
1762                }
1763                $(this).find('span').removeClass('hide_button').addClass('show_button');
1764                $(this).parents('.berocket_single_filter_widget').data('showbutton', 'show');
1765            }
1766        });
1767        $(document).on( 'click', '.berocket_aapf_widget .berocket_widget_show_values', function( event ) {
1768            event.preventDefault();
1769            var widget_block = $(this).parents('.berocket_single_filter_widget');
1770            if(widget_block.hasClass('show_o_sel_values'))
1771            {
1772                widget_block.removeClass('show_o_sel_values');
1773            }
1774            else
1775            {
1776                widget_block.addClass('show_o_sel_values');
1777            }
1778            berocket_widget_show_values_text(widget_block);
1779        });
1780
1781        function berocket_widget_show_values_text($widget) {
1782            var $this = $widget.find('.berocket_widget_show_values');
1783            var widget_block = $this.parents('.berocket_single_filter_widget');
1784            if(widget_block.hasClass('show_o_sel_values')) {
1785                $this.html(the_ajax_script.translate.hide_value+'<span class="hide_button fa"></span>');
1786            } else {
1787                $this.html(the_ajax_script.translate.show_value+'<span class="show_button fa"></span>');
1788            }
1789        }
1790
1791        $(document).on( the_ajax_script.description_show, '.berocket_aapf_widget-title_div .berocket_aapf_description i', function( event ) {
1792            event.preventDefault();
1793            event.stopPropagation();
1794            $('.berocket_aapf_description_div').remove();
1795            if( $('.berocket_aapf_description_div').length == 0 ) {
1796                $block = $(this).next().clone();
1797                $block.addClass( 'berocket_aapf_description_div' ).hide();
1798                $('body').append($block);
1799                i_top = ( $(this).offset().top - $(document).scrollTop() ) + ( $(this).height() / 2 );
1800                i_left = $(this).offset().left;
1801                top_px = parseInt( i_top + $( document ).scrollTop() );
1802                if( i_top >= (window.innerHeight / 2) ) {
1803                    top_px -= ( $block.outerHeight() );
1804                    top_px += 22;
1805                    top_side = 'bottom';
1806                } else {
1807                    top_side = 'top';
1808                    top_px -= 22;
1809                }
1810
1811                side_px = i_left;
1812                if( i_left < (window.innerWidth / 2) ) {
1813                    side_px += $(this).width();
1814                    side = 'left';
1815                    deside = 'right';
1816                    bottom_side = 'top';
1817                    side_px += 9;
1818                } else {
1819                    side = 'right';
1820                    deside = 'left';
1821                    bottom_side = 'bottom';
1822                    side_px = (window.innerWidth - side_px) - 3;
1823                }
1824                $block.addClass( 'berocket_aapf_description_div_'+top_side+'_'+side ).addClass( 'berocket_aapf_description_div' ).css( 'top', top_px ).css( side, side_px );
1825                $block.find('.berocket_aapf_description_arrow').css('border-'+deside, '0').css('border-'+bottom_side, '0');
1826                $block.show();
1827            }
1828        });
1829
1830        $(document).on( the_ajax_script.description_hide, '.berocket_aapf_widget-title_div .berocket_aapf_description i', function( event ) {
1831            event.preventDefault();
1832            event.stopPropagation();
1833            to_element = event.toElement || event.relatedTarget;
1834            if ( the_ajax_script.description_hide == 'mouseleave' && $(to_element).parents('.berocket_aapf_description_div').length == 0) {
1835                $('.berocket_aapf_description_div').remove();
1836            }
1837        });
1838
1839        $(document).on(the_ajax_script.description_hide, '.berocket_aapf_description_div', function( event ) {
1840            event.preventDefault();
1841            event.stopPropagation();
1842            if ( the_ajax_script.description_hide == 'mouseleave' ) {
1843                $(this).remove();
1844            }
1845        });
1846
1847        $(document).on(the_ajax_script.description_hide, function() {
1848            $('.berocket_aapf_description_div').remove();
1849        });
1850
1851        function berocket_aapf_widget_loading() {
1852            if( $('.berocket_aapf_widget_loading').length > 0 ) {
1853                loading_top = ( ( $(document).scrollTop() + ( window.innerHeight / 2 ) ) - $('.berocket_aapf_widget_loading').offset().top );
1854                if ( loading_top < 100 || $('.berocket_aapf_widget_loading').height() < 200 ) {
1855                    loading_top = 100;
1856                } else if ( loading_top > ( $('.berocket_aapf_widget_loading').height() - $('.berocket_aapf_widget_loading_container').height() ) ) {
1857                    loading_top = $('.berocket_aapf_widget_loading').height() - $('.berocket_aapf_widget_loading_container').height();
1858                }
1859                $('.berocket_aapf_widget_loading_container').css('top', loading_top);
1860			}
1861            $('.berocket_aapf_description_div').remove();
1862        }
1863        $(document).scroll( berocket_aapf_widget_loading );
1864        $(document).on( 'click', function( event ) {
1865            $('.berocket_aapf_product_count_desc').remove();
1866        });
1867
1868        window.onpopstate = function(event) {
1869            if ( event.state != null && event.state.BeRocket == 'Rules' ) {
1870                location.reload();
1871            }
1872        };
1873        $(document).on('click', '.berocket_search_box_button', function() {
1874            var search_url = $(this).data('url');
1875            if( the_ajax_script.current_page_url == search_url 
1876            || the_ajax_script.current_page_url.slice(-1) == '/' 
1877            && the_ajax_script.current_page_url.slice(0, -1) == search_url
1878            || search_url.slice(-1) == '/' 
1879            && the_ajax_script.current_page_url == search_url.slice(0, -1) ) {
1880                update_data_containers();
1881                updateProducts(true, true);
1882            } else {
1883                update_data_containers(true, $(this).parents('.berocket_search_box_block'));
1884                args = {
1885                    current_language: the_ajax_script.current_language,
1886                    terms: berocket_aapf_widget_product_filters,
1887                    price: berocket_aapf_widget_product_price_limit,
1888                    limits: berocket_aapf_widget_product_limits,
1889                    product_cat: the_ajax_script.product_cat,
1890                    product_taxonomy: the_ajax_script.product_taxonomy,
1891                    action: 'berocket_aapf_listener',
1892                    orderby: $('.woocommerce-ordering select.orderby').val(),
1893                    attributes: [],
1894                    cat_limit: [],
1895                    location: $(this).data('url'),
1896                };
1897                the_ajax_script.current_page_url = search_url;
1898                location.href = updateLocation(args, true, true);
1899            }
1900        });
1901
1902        // Option to take control over (default) sorting, make it AJAXy and work with filters
1903        if( the_ajax_script.control_sorting ) {
1904            $(document).on('submit', 'form.woocommerce-ordering', function (event) {
1905                event.preventDefault();
1906            });
1907            $(document).on('change', 'select.orderby', function (event) {
1908                event.preventDefault();
1909                $('select.orderby').val($(this).val());
1910                updateProducts(true);
1911            });
1912        }
1913
1914        berocket_reset_button_hide_not = function() {
1915            jQuery('.berocket_single_filter_widget .berocket_aapf_reset_button').parents('.berocket_aapf_widget').show();
1916            if( ! jQuery('.berocket_aapf_widget-wrapper:not(".berocket_hiden_without_visible_values")').length ) {
1917                jQuery('.berocket_single_filter_widget.berocket_no_filters .berocket_aapf_reset_button').parents('.berocket_aapf_widget').hide();
1918            }
1919            if( get_widget_selected_filters().length ) {
1920                jQuery('.berocket_single_filter_widget .berocket_aapf_reset_button').parents('.berocket_aapf_widget').show();
1921            } else {
1922                jQuery('.berocket_single_filter_widget.berocket_not_selected .berocket_aapf_reset_button').parents('.berocket_aapf_widget').hide();
1923            }
1924        }
1925
1926        berocket_filters_first_load = function() {
1927            if( $(window).width() <= 767 ) {
1928                $('.bapf_sngl_hd_mobile').remove();
1929            }
1930            if( $(window).width() > 767 && $(window).width() <= 1024 ) {
1931                $('.bapf_sngl_hd_tablet').remove();
1932            }
1933            if( $(window).width() > 1024 ) {
1934                $('.bapf_sngl_hd_desktop').remove();
1935            }
1936            if( $('.berocket_wc_shortcode_fix').length ) {
1937                berocket_new_product_recount($('.berocket_wc_shortcode_fix'));
1938                $('.berocket_wc_shortcode_fix').html('');
1939            }
1940            if( $(the_ajax_script.pagination_class).length > 0 ){
1941                woocommerce_pagination_page = parseInt( $(the_ajax_script.pagination_class+' .current').first().text() );
1942                if( woocommerce_pagination_page < 1 ) woocommerce_pagination_page = 1;
1943            }
1944
1945            if( $('.berocket_aapf_widget_update_button').hasClass('berocket_aapf_widget_update_button') ){
1946                berocket_aapf_widget_wait_for_button = true;
1947            } else {
1948                berocket_aapf_widget_wait_for_button = false;
1949            }
1950            
1951            $( ".berocket_filter_slider" ).each(function (i,o){
1952                berocket_set_slider ( i, o );
1953            });
1954
1955            $(".berocket_aapf_widget_height_control").each(function (i,o){
1956                if( ! $(o).hasClass('br_height_controled') ) {
1957                    $(o).css('height', $(o).height()).mCustomScrollbar({
1958                        axis: "y",
1959                        theme: $(o).data('scroll_theme'),
1960                        scrollInertia: 300
1961                    }).addClass('br_height_controled');
1962                    berocket_custom_scroll_bar_init();
1963                }
1964            });
1965            
1966            update_data_containers();
1967            update_selected_area();
1968            
1969            if( the_ajax_script.hide_empty_value ) {
1970                jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
1971                    if( jQuery(o).parents('.berocket_search_box_block').parents('.berocket_search_box_block').length == 0 && jQuery(o).parents('.br_child_parent_wrapper').length == 0 ) {
1972                        if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').length ) {
1973                            jQuery(o).parents('.berocket_aapf_widget-wrapper').addClass('berocket_hiden_without_visible_values').hide();
1974                        } else {
1975                            jQuery(o).parents('.berocket_aapf_widget-wrapper').removeClass('berocket_hiden_without_visible_values').show();
1976                        }
1977                    }
1978                });
1979            }
1980            if( the_ajax_script.use_select2 && $(".berocket_aapf_widget select").length && typeof $(".berocket_aapf_widget select").select2 == 'function' ) {
1981                $(".berocket_aapf_widget select").select2({width:'100%'});
1982            }
1983            berocket_reset_button_hide_not();
1984            $(document).trigger('berocket_filters_first_load');
1985        }
1986        berocket_filters_first_load();
1987        $(document).on('click', '.br_child_toggle', function() {
1988            hide_child_attributes($(this));
1989        });
1990        function hide_child_attributes($button, show_child) {
1991            var term_id = $button.data('term_id');
1992            var $blocks = $button.parents('.berocket_aapf_widget').find('.berocket_term_parent_' + term_id);
1993            if( typeof(show_child) == 'undefined' ) {
1994                show_child = false;
1995                if( $blocks.is('.berocket_hide_child_attributes') ) {
1996                    show_child = true;
1997                }
1998            }
1999            $blocks.each(function(i, o) {
2000                if( show_child ) {
2001                    $(o).removeClass('berocket_hide_child_attributes');
2002                } else {
2003                    $(o).addClass('berocket_hide_child_attributes');
2004                    hide_child_attributes($(o).find('.br_child_toggle'), show_child);
2005                }
2006            });
2007            $button.find('.fa').removeClass('fa-plus').removeClass('fa-minus');
2008            if( show_child ) {
2009                $button.find('.fa').addClass('fa-minus');
2010            } else {
2011                $button.find('.fa').addClass('fa-plus');
2012            }
2013        }
2014    });
2015})(jQuery);
2016
2017function berocket_format_number (number, number_style) {
2018    if( typeof number_style == 'undefined' ) {
2019        number_style = the_ajax_script.number_style;
2020    }
2021    var num = number.toFixed(number_style[2]);
2022    num = num.toString();
2023    var decimal = num.split('.');
2024    var new_number = decimal[0];
2025    if(num.indexOf('.') != -1)
2026    {
2027        decimal = decimal[1];
2028    }
2029    new_number = new_number.replace(/\d(?=(?:\d{3})+(?:$))/g, function($0, i){
2030        return $0+number_style[0];
2031    });
2032    if(num.indexOf('.') != -1)
2033    {
2034        new_number = new_number+number_style[1]+decimal;
2035    }
2036    return new_number;
2037}
2038function berocket_remove_child( $widget, show_previous ) {
2039    if( typeof(show_previous) == 'undefined' ) {
2040        show_previous = true;
2041    }
2042    $widget_child = '.'+jQuery($widget).data('attribute')+'_child_';
2043    $place = $widget.find('.berocket_child_parent_sample');
2044    $widget_child_number = parseInt( jQuery($widget).data('child_parent_depth') ) ;
2045    while( jQuery( $widget_child + $widget_child_number ).length > 0 ) {
2046        $widget_removed = $widget_child + $widget_child_number;
2047        jQuery( $widget_removed ).find('.berocket_widget_show_values').hide();
2048        jQuery( $widget_removed ).find( 'li' ).each( function ( i, o ) {
2049            if( ! jQuery(o).is('.berocket_child_parent_sample') && jQuery(o).parents('.berocket_child_parent_sample').length == 0 && ! jQuery(o).is('.berocket_widget_show_values') ) {
2050                jQuery(o).remove();
2051            }
2052        });
2053        $widget_child_number++;
2054        if( show_previous ) {
2055            var previous = jQuery( $widget_removed ).parents('.berocket_aapf_widget-wrapper').find('.berocket_child_previous');
2056            var $place = jQuery( $widget_removed ).find('.berocket_child_parent_sample');
2057            previous = '<li>'+previous.html()+'</li>';
2058            $place.after(previous);
2059        } else {
2060            break;
2061        }
2062    }
2063}
2064
2065function berocket_child_load ( $widget, taxonomy, term_id, type ) {
2066    if( term_id !== false && (term_id.length > 1 || term_id[0]) != false && $widget.length > 0 && term_id.length > 0 ) {
2067        term_id = JSON.stringify(term_id);
2068        data = {action: 'br_aapf_get_child',taxonomy: taxonomy, term_id: term_id, type: type};
2069        terms = false;
2070        jQuery.ajax({
2071            url: the_ajax_script.ajaxurl,
2072            data: data,
2073            type: 'POST',
2074            success: function (data) {
2075                terms = data;
2076            },
2077            dataType: 'json',
2078            async: false
2079        });
2080        berocket_remove_child( $widget, false );
2081        berocket_child_replace ( $widget, terms );
2082        if( the_ajax_script.use_select2 && jQuery(".berocket_aapf_widget select").length && typeof jQuery(".berocket_aapf_widget select").select2 == 'function' ) {
2083            jQuery(".berocket_aapf_widget select").select2({width:'100%'});
2084        }
2085    }
2086}
2087
2088function berocket_child_replace ( $widget, terms ) {
2089    $widget = jQuery($widget);
2090    var html_sample = $widget.find('.berocket_child_parent_sample ul').html();
2091    var $place = $widget.find('.berocket_child_parent_sample');
2092    var select = false;
2093    var html_single = '';
2094    if( terms.length > 0  ) {
2095        if ( $widget.data('type') == 'slider' ) {
2096            if( terms.length > 1 ) {
2097                var element = html_sample.replace( /R__term_id__R/g, terms[0].term_id );
2098                element = element.replace( /R__count__R/g, terms[0].count );
2099                element = element.replace( /R__slug__R/g, terms[0].slug );
2100                element = element.replace( /R__name__R/g, terms[0].name );
2101                element = element.replace( /R__taxonomy__R/g, terms[0].taxonomy );
2102                element = element.replace( /R__class__R/g, terms[0].r_class );
2103                allterms = [];
2104                for ( i = 0; i < terms.length; i++ ) {
2105                    allterms.push(terms[i].name);
2106                }
2107                element = element.replace( /R__min__R/g, 0 );
2108                element = element.replace( /R__value1__R/g, 0 );
2109                element = element.replace( /R__max__R/g, ( allterms.length - 1 ) );
2110                element = element.replace( /R__value2__R/g, ( allterms.length - 1 ) );
2111                element = element.replace( /"R__allterm__R"/g, "'"+JSON.stringify(allterms)+"'" );
2112                $element = jQuery(element);
2113                $place.after($element);
2114                
2115                berocket_set_slider ( 0, $widget.find('.berocket_filter_slider').last() );
2116            }
2117        } else {
2118            if ( $widget.find('.berocket_child_parent_sample').is('.select') ) {
2119                multiple = false;
2120                if( $widget.find('.berocket_child_parent_sample').is('.multiple') ) {
2121                    multiple = true;
2122                }
2123                select = true;
2124                html_sample = html_sample.replace( /<ul/g, '<select' );
2125                html_sample = html_sample.replace( /<\/ul>/g, '</select>' );
2126                html_sample = html_sample.replace( /<li/g, '<option' );
2127                html_sample = html_sample.replace( /<\/li>/g, '</option>' );
2128                html_sample = '<li>' + html_sample + '</li>';
2129                if( multiple ) {
2130                    html_single = html_sample.split('<option')[1];
2131                    html_single = html_single.split('</option>')[0];
2132                    html_single = '<option' + html_single + '</option>';
2133                } else {
2134                    html_single = html_sample.split('</option>')[1]+'</option>';
2135                }
2136            }
2137            for( i = 0; i < terms.length; i++ ) {
2138                var element = html_sample;
2139                element = element.replace( /R__term_id__R/g, terms[i].term_id );
2140                element = element.replace( /R__count__R/g, terms[i].count );
2141                element = element.replace( /R__slug__R/g, terms[i].slug );
2142                element = element.replace( /R__name__R/g, terms[i].name );
2143                element = element.replace( /R__taxonomy__R/g, terms[i].taxonomy );
2144                element = element.replace( /R__class__R/g, terms[i].r_class );
2145                element = element.replace( /#R/g, '#'+terms[i].color );
2146                $element = jQuery(element);
2147                $place.after($element);
2148                if ( select && i == 0 ) {
2149                    html_sample = html_single;
2150                    $place = $widget.find('select option').last();
2151                }
2152            }
2153        }
2154    } else {
2155        var no_values = $widget.parents('.berocket_aapf_widget-wrapper').find('.berocket_child_no_values').html();
2156        no_values = '<li>'+no_values+'</li>';
2157        $place.after(no_values);
2158    }
2159}
2160
2161function load_hash_test() {
2162    hash = location.hash;
2163    test_loc = location.href;
2164    if( test_loc.indexOf('#') != -1 ) {
2165        test_loc = test_loc.split('#');
2166        test_loc = test_loc[0];
2167    }
2168    reload = false;
2169    var filtersRegex = /filters=\((.*)\)/;
2170    if( ( filters_hash = filtersRegex.exec(hash) ) != null ) {
2171        if( test_loc.indexOf('?') != -1 ) {
2172            href_param = test_loc.split('?');
2173            if(href_param[1].indexOf('filters=') != -1) {
2174                href_params_array = href_param[1].split('&');
2175                for( var i = 0; i < href_params_array.length; i++ ) {
2176                    if( href_params_array[i].indexOf('filters=') != -1) {
2177                        test_loc = test_loc.replace(href_params_array[i],filters_hash[1]).replace('&&','&');
2178                    }
2179                }
2180            } else {
2181                test_loc = test_loc+"&"+filters_hash[1];
2182            }
2183        } else {
2184            test_loc = test_loc+"?"+filters_hash[1];
2185        }
2186        reload = true;
2187    }
2188    var filtersRegex = /paged=([0-9]+)/;
2189    if( ( filters_hash = filtersRegex.exec(hash) ) != null ) {
2190        if( location.hash != "") {
2191            location.hash = "";
2192            test_loc = location.href;
2193        }
2194        if( test_loc.indexOf('?') != -1 ) {
2195            href_param = test_loc.split('?');
2196            if(href_param[1].indexOf('paged=') != -1) {
2197                href_params_array = href_param[1].split('&');
2198                for( var i = 0; i < href_params_array.length; i++ ) {
2199                    if( href_params_array[i].indexOf('filters=') != -1) {
2200                        test_loc = test_loc.replace(href_params_array[i],filters_hash[0]).replace('&&','&');
2201                    }
2202                }
2203            } else {
2204                test_loc = test_loc+"&"+filters_hash[0];
2205            }
2206        } else {
2207            test_loc = test_loc+"?"+filters_hash[0];
2208        }
2209        reload = true;
2210    }
2211    if(reload) {
2212        location.href = test_loc;
2213    }
2214}
2215load_hash_test();
2216(function ($){
2217    function berocket_rewidth_inline_filters(cfunc) {
2218        $('.berocket_single_filter_widget.berocket_hidden_clickable').each(function() {
2219            $(this).removeClass('berocket_hidden_clickable_left').removeClass('berocket_hidden_clickable_right');
2220            var position = $(this).offset().left + $(this).outerWidth();
2221            var width = $(window).width();
2222            if( position < width/2 ) {
2223                $(this).addClass('berocket_hidden_clickable_left');
2224            } else {
2225                $(this).addClass('berocket_hidden_clickable_right');
2226            }
2227        });
2228        while( $('.berocket_single_filter_widget.berocket_inline_filters:not
2228(".berocket_inline_filters_rewidth")').length ) {
2229            $element = $('.berocket_single_filter_widget.berocket_inline_filters:not(".berocket_inline_filters_rewidth")').first();
2230            width_to_set = '12.5%!important';
2231            $style = $element.attr('style');
2232            if( typeof($style) == 'undefined' ) {
2233                $style = '';
2234            }
2235            $style = $style.replace(/width:\s?(\d|\.)+%!important;/g, '');
2236            $style = $style.replace(/clear:both!important;/g, '');
2237            $style = $style.replace(/opacity:0!important;/g, '');
2238            $element.attr('style', $style);
2239            min_width = 200;
2240            var min_filter_width_inline = $element.data('min_filter_width_inline');
2241            if( min_filter_width_inline ) {
2242                min_width = parseInt(min_filter_width_inline);
2243            }
2244            every_clear = 9;
2245            $(document).trigger('berocket_inline_before_width_calculate');
2246            var check_array = [];
2247            check_array.push({clear:2, size:(min_width/4), width:100, block:'.berocket_inline_filters_count_1'});
2248            check_array.push({clear:3, size:(min_width/2.5), width:50, block:'.berocket_inline_filters_count_2'});
2249            check_array.push({clear:4, size:(min_width/2), width:33.333, block:'.berocket_inline_filters_count_3'});
2250            check_array.push({clear:5, size:(min_width/1.6), width:25, block:'.berocket_inline_filters_count_4'});
2251            check_array.push({clear:6, size:(min_width/1.32), width:20, block:'.berocket_inline_filters_count_5'});
2252            check_array.push({clear:7, size:(min_width/1.14), width:16.666, block:'.berocket_inline_filters_count_6'});
2253            check_array.push({clear:8, size:(min_width), width:14.285, block:'.berocket_inline_filters_count_7'});
2254            check_array.some(function(element) {
2255                if( $element.outerWidth() < element.size || $element.is(element.block) ) {
2256                    every_clear = element.clear;
2257                    width_to_set = element.width+'%!important';
2258                    return true;
2259                }
2260            });
2261            $(document).trigger('berocket_inline_after_width_calculate');
2262            var element_i = 0;
2263            while($element.is('.berocket_single_filter_widget.berocket_inline_filters:not(".berocket_inline_filters_rewidth")') ) {
2264                $style = $element.attr('style');
2265                if(typeof($style) == 'undefined' ) {
2266                    $style = '';
2267                }
2268                $style = $style.replace(/width:\s?(\d|\.)+%\s?!important;/g, '');
2269                $style = $style.replace(/clear:\s?both\s?!important;/g, '');
2270                $style = $style.replace(/opacity:\s?0\s?!important;/g, '');
2271                $style = $style+'width:'+width_to_set+';';
2272                element_i++;
2273                if( element_i == every_clear ) {
2274                    $style = $style+'clear:both!important;';
2275                    element_i = 1;
2276                }
2277                $element.attr('style', $style+'width:'+width_to_set+';').addClass('berocket_inline_filters_rewidth');
2278                $element = $element.next();
2279            }
2280        }
2281        if ( typeof cfunc == "function" ) {
2282            cfunc();
2283        }
2284    }
2285    berocket_rewidth_inline_filters();
2286    $(document).ready(function (){
2287        berocket_rewidth_inline_filters();
2288        $(window).on('resize berocket_ajax_filtering_end', function() {
2289            $('.berocket_single_filter_widget.berocket_inline_filters.berocket_inline_filters_rewidth').removeClass('berocket_inline_filters_rewidth');
2290            berocket_rewidth_inline_filters();
2291        });
2292    });
2293    $(document).on('mousedown', function(event) {
2294        if( ! $(event.target).parents('.berocket_aapf_widget').length 
2295        || ! $(event.target).parents('.berocket_single_filter_widget.berocket_hidden_clickable').length ) {
2296            $filter = $('.berocket_single_filter_widget.berocket_hidden_clickable').not($(event.target).parents('.berocket_single_filter_widget.berocket_hidden_clickable'));
2297            $filter.removeClass('berocket_single_filter_visible').addClass('berocket_single_filter_hidden');
2298            $filter.find('.berocket_aapf_widget').slideUp(40);
2299            $filter.find('.berocket_aapf_widget-title_div').find('span').removeClass('hide_button').addClass('show_button');
2300            $filter.find('.berocket_aapf_widget-title_div').parents('.berocket_single_filter_widget').data('showbutton', 'show');
2301        }
2302    });
2303    var berocket_hidden_clickable_mouseenter = setTimeout(function(){},0);
2304    var berocket_hidden_clickable_mouseleave = setTimeout(function(){},0);
2305    $(document).on('mouseenter', '.berocket_hidden_clickable .berocket_aapf_widget-title_div', function() {
2306        $this = $(this);
2307        clearTimeout(berocket_hidden_clickable_mouseenter);
2308        berocket_hidden_clickable_mouseenter = setTimeout( function() {
2309            if( $('.berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible').not($this.parents('.berocket_single_filter_widget.berocket_hidden_clickable')).length
2310            || ($this.parents('.berocket_single_filter_widget.berocket_hidden_clickable.berocket_inline_clickable_hover').length && ! $this.parents('.berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible').length ) ) {
2311                if( $(window).width() > 768 ) {
2312                    $('.berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible .berocket_aapf_widget-title_div').trigger('br_showhide');
2313                    $this.trigger('br_showhide');
2314                }
2315            }
2316        }, 100);
2317    });
2318    $(document).on('mouseenter', '.berocket_single_filter_widget.berocket_hidden_clickable.berocket_inline_clickable_hover, body > .select2-container', function() {
2319        clearTimeout(berocket_hidden_clickable_mouseleave);
2320    });
2321    $(document).on('mouseleave', '.berocket_single_filter_widget.berocket_hidden_clickable.berocket_inline_clickable_hover, body > .select2-container', function() {
2322        if( $(window).width() > 768 ) {
2323            clearTimeout(berocket_hidden_clickable_mouseleave);
2324            berocket_hidden_clickable_mouseleave = setTimeout(function() {
2325                $('.berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible .berocket_aapf_widget-title_div').trigger('br_showhide');
2326            }, 100);
2327        }
2328    });
2329    $(document).on('mouseleave', '.berocket_hidden_clickable .berocket_aapf_widget-title_div', function() {
2330        clearTimeout(berocket_hidden_clickable_mouseenter);
2331    });
2332    $(document).on('mousedown', '.wc-product-table-reset a', function() {
2333        $(this).remove();
2334        br_reset_all_filters();
2335    });
2336    $(document).on('click', '.berocket_element_above_products_is_hide_toggle', function (e){
2337        e.preventDefault();
2338        $(this).toggleClass( "active" ).next().slideToggle(200, 'linear');
2339    });
2340    $(document).on('berocket_filters_first_load', function (){
2341        berocket_rewidth_inline_filters(function (){
2342            $('.berocket_element_above_products_is_hide').hide(0).removeClass('br_is_hidden');
2343        });
2344    });
2345})(jQuery);
2346function berocket_ajax_load_product_table_compat() {
2347    if( jQuery('.berocket_product_table_compat .dataTables_length select').length ) {
2348        jQuery('.berocket_product_table_compat .wc-product-table').dataTable()._fnSaveState();
2349    }
2350    var tableid = jQuery('.berocket_product_table_compat .wc-product-table').attr('id');
2351    if( typeof(window['config_'+tableid]) != 'undefined' && window['config_'+tableid].serverSide ) {
2352        jQuery('.berocket_product_table_compat .wc-product-table').DataTable().destroy();
2353        var table_html = jQuery('.berocket_product_table_compat').html();
2354        jQuery('.berocket_product_table_compat').html('');
2355        jQuery('.berocket_product_table_compat').html(table_html);
2356        jQuery('.berocket_product_table_compat .blockUI.blockOverlay').remove();
2357        jQuery('.berocket_product_table_compat .wc-product-table').productTable();
2358    }
2359}
2360function berocket_custom_scroll_bar_init() {
2361    jQuery('.mCustomScrollBox').on('wheel', function (e){ e.stopPropagation; e.preventDefault(); });
2362}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.