PageSourceSearch

https://www.0532.ua/assets/c4271ba4/js/filter_adaptive.js?v=1789825604

js 0532.ua collected 2026-10-02 10:23:31 UTC 4,839 bytes, 122 lines download raw bytes

1(function () {
2    const filter = {};
3    filter.data = {};
4    filter.selectorBtn = '.btn-show';
5    filter.showFilterData = $(filter.selectorBtn);
6    filter.clearFilterData = $('.clear-filter-data');
7    filter.form = null;
8
9    filter.checkCheckbox = function () {
10        $('.right-filter .checkbox').on('change', function () {
11            var $this = $(this);
12            var name = $this.attr('name');
13            var value = $this.val();
14            var id = $this.data('id') || value;
15            filter.form = $this.parents('form');
16            var groupForm = filter.form.data('form') || filter.form.attr('action') || '';
17            if ($this.prop('checked')) {
18                filter.addToData(id, value, name, groupForm);
19                // filter.showLabel($this);
20                // $this.parent().addClass('checked');
21            } else {
22                filter.deleteElemsFromData(id, name, groupForm);
23                // $this.parent().removeClass('checked');
24                // filter.hideLabel($this, name, groupForm);
25            }
26        });
27    };
28
29    filter.addToData = function (id, elem, name, groupForm) {
30        if (!filter.data.hasOwnProperty(groupForm)) {
31            filter.data[groupForm] = {};
32        }
33        if (!filter.data[groupForm].hasOwnProperty(name)) {
34            filter.data[groupForm][name] = {}
35        }
36        filter.data[groupForm][name][id] = elem;
37    };
38
39    filter.deleteElemsFromData = function (id, name, groupForm) {
40        delete filter.data[groupForm][name][id];
41    };
42
43    filter.showLabel = function (elem) {
44        elem.parent().children('label').after(filter.showFilterData.show());
45    };
46
47    filter.hideLabel = function (elem, name, groupForm) {
48        if (elem.parent().children().is(filter.showFilterData)
49            || !(elem.parents('form').find("label").is(filter.showFilterData))) {
50            filter.showFilterData.hide();
51            filter.clearFilterData.hide();
52            if (Object.keys(filter.data[groupForm][name]).length > 0) {
53                const nextElem = elem.parent().nextAll('.checked').eq(0);
54                const prevElem = elem.parent().prevAll('.checked').eq(0);
55                var nearestElem = '';
56                if (Object.keys(nextElem).length == 0) {
57                    nearestElem = prevElem;
58                } else if (Object.keys(prevElem).length == 0) {
59                    nearestElem = nextElem;
60                } else {
61                    const indexElem = elem.parents('form').children().index(elem.parent());
62                    const indexNext = elem.parents('form').children().index(nextElem);
63                    const indexPrev = elem.parents('form').children().index(prevElem);
64                    if (Math.abs(indexElem - indexNext) > Math.abs(indexElem - indexPrev)) {
65                        nearestElem = prevElem;
66                    } else {
67                        nearestElem = nextElem;
68                    }
69                }
70                filter.showLabel(nearestElem.find('.jq-checkbox.checked'));
71            } else {
72                filter.showLabel(elem);
73            }
74        }
75    };
76
77    filter.saveFilters = function (groupForm) {
78        var data = filter.data[groupForm];
79        for (var key in data) {
80            if (data.hasOwnProperty(key)) {
81                if (Object.keys(data[key]).length > 0) {
82                    for (var k in data[key]) {
83                        if (data[key].hasOwnProperty(k)) {
84                            $("<input>", {type: "hidden", name: key + "[]", value: data[key][k]}).appendTo(filter.form);
85                        }
86                    }
87                }
88            }
89        }
90    };
91
92    filter.sendData = function () {
93        $('.right-block').on('click', filter.selectorBtn, function () {
94            var groupForm = $(this).parents('form').attr('data-form') || $(this).parents('form').attr('action') || '';
95            filter.saveFilters(groupForm);
96            $('input[type="checkbox"]').attr('disabled', 'disabled');
97            $(filter.form).submit();
98        });
99    }();
100
101    filter.findCheckedCheckbox = function () {
102        $('.checkbox:checked').each(function (i, elem) {
103            var value = $(elem).val();
104            var id = $(elem).data('id') || value;
105            var groupForm = $(elem).parents('form').data('form') || $(elem).parents('form').attr('action') || '';
106            filter.addToData(id, value, $(elem).attr('name'), groupForm);
107            // $(elem).parent().addClass('checked');
108        });
109    };
110
111    filter.clearData = function () {
112        $(filter.clearFilterData).on('click', function () {
113            window.location = $(filter.form).attr('action');
114        });
115    }();
116
117    $(document).ready(function () {
118        filter.findCheckedCheckbox();
119        filter.checkCheckbox();
120    });
121
122})();

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.