PageSourceSearch

https://puzat.ru/wp-content/themes/puzatru/pages/knowledges/js/knowledges.js

js puzat.ru collected 2026-10-04 00:20:11 UTC 6,116 bytes, 176 lines download raw bytes

1
2(function ($) {
3    function myClickFinder() {
4        if (!$('#vsem').is(':checked')) {
5            $('#vsem').click();
6        }
7        else if (!($('#beginner').is(':checked')) && !($('#master').is(':checked'))) {
8            $('#vsem').click();
9        }
10    }
11    $("#beginner").click(myClickFinder);
12    $("#master").click(myClickFinder);
13
14    $(window).load(function () {
15        /*jshint browser:true, undef: true, unused: true, jquery: true */
16
17        var $container;
18        var filters = {};
19
20        $(function () {
21
22            $container = $('.grid');
23
24            createContent();
25
26            //var $filterDisplay = $('#filter-display');
27
28            $container.isotope({ layoutMode: 'fitRows' });
29            // do stuff when checkbox change
30            $('#options').on('change', function (jQEvent) {
31                var $checkbox = $(jQEvent.target);
32                manageCheckbox($checkbox);
33
34                var comboFilter = getComboFilter(filters);
35
36                $container.isotope({ filter: comboFilter });
37                //$filterDisplay.text( comboFilter );
38            });
39
40        });
41
42
43        var data = {
44            audience: 'vsem beginner master'.split(' '),
45            postTypes: 'articles_block video_block'.split(' '),
46        };
47
48        function createContent() {
49            var audience, postTypes;
50            var items = '';
51            $container.append(items);
52        }
53
54
55        function getComboFilter(filters) {
56            var i = 0;
57            var comboFilters = [];
58            var message = [];
59
60            for (var prop in filters) {
61                message.push(filters[prop].join(' '));
62                var filterGroup = filters[prop];
63                // skip to next filter group if it doesn't have any values
64                if (!filterGroup.length) {
65                    continue;
66                }
67                if (i === 0) {
68                    // copy to new array
69                    comboFilters = filterGroup.slice(0);
70                } else {
71                    var filterSelectors = [];
72                    // copy to fresh array
73                    var groupCombo = comboFilters.slice(0); // [ A, B ]
74                    // merge filter Groups
75                    for (var k = 0, len3 = filterGroup.length; k < len3; k++) {
76                        for (var j = 0, len2 = groupCombo.length; j < len2; j++) {
77                            filterSelectors.push(groupCombo[j] + filterGroup[k]); // [ 1, 2 ]
78                        }
79
80                    }
81                    // apply filter selectors to combo filters for next group
82                    comboFilters = filterSelectors;
83                }
84                i++;
85            }
86
87            var comboFilter = comboFilters.join(', ');
88            return comboFilter;
89        }
90
91        function manageCheckbox($checkbox) {
92            var checkbox = $checkbox[0];
93
94            var group = $checkbox.parents('.option-set').attr('data-group');
95            // create array for filter group, if not there yet
96            var filterGroup = filters[group];
97            if (!filterGroup) {
98                filterGroup = filters[group] = [];
99            }
100
101            var isAll = $checkbox.hasClass('all');
102            // reset filter group if the all box was checked
103            if (isAll) {
104                delete filters[group];
105                if (!checkbox.checked) {
106                    checkbox.checked = 'checked';
107                }
108            }
109            // index of
110            var index = $.inArray(checkbox.value, filterGroup);
111
112            if (checkbox.checked) {
113                var selector = isAll ? 'input' : 'input.all';
114                $checkbox.siblings(selector).removeAttr('checked');
115
116
117                if (!isAll && index === -1) {
118                    // add filter to group
119                    filters[group].push(checkbox.value);
120                }
121
122            } else if (!isAll) {
123                // remove filter from group
124                filters[group].splice(index, 1);
125                // if unchecked the last box, check the all
126                if (!$checkbox.siblings('[checked]').length) {
127                    $checkbox.siblings('input.all').attr('checked', 'checked');
128                }
129            }
130
131        }
132        function sidebarScrolling() {
133            var sidebarTop = $('.b-knowledge-sidebar').offset().top;
134            var sidebarHeight = $('.b-knowledge-sidebar').outerHeight();
135            var sidebarVis = sidebarTop + sidebarHeight + 1200;
136            var sidebarBlock = $('.b-knowledge-sidebar');
137            $(window).scroll(function () {
138                if ($(window).scrollTop() < sidebarVis) {
139                    if (sidebarBlock.hasClass('b-knowledge-sidebar_visible')) {
140                        return false;
141                    }
142                    else {
143                        $('.b-knowledge-sidebar').show();
144                        $('.main_knowledge_block').removeClass('col-lg-12').addClass('col-lg-9');
145
146                        sidebarBlock.removeClass('b-knowledge-sidebar_no-visible').addClass('b-knowledge-sidebar_visible');
147
148                        setTimeout(function () {
149                            $container.isotope('reloadItems').isotope();
150                        }, 200);
151                    }
152
153                }
154                else {
155                    if (sidebarBlock.hasClass('b-knowledge-sidebar_no-visible')) {
156                        return false;
157                    }
158                    else {
159                        $('.b-knowledge-sidebar').hide();
160                        $('.main_knowledge_block').removeClass('col-lg-9').addClass('col-lg-12');
161
162                        sidebarBlock.removeClass('b-knowledge-sidebar_visible').addClass('b-knowledge-sidebar_no-visible');
163                        $container.isotope('reloadItems').isotope();
164                    }
165
166                }
167            });
168
169        } // (sidebarScrolling)
170
171        if (window.matchMedia('(min-width: 1200px)').matches) {
172           // sidebarScrolling();
173        } // (sidebarScrolling init)
174
175    });
176})(jQuery);

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.