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.