1let getNavigation = function(doc) { 2 let currentNode; 3 let navigation = 'none'; 4 5 if (typeof doc === 'object') { 6 let nodeIterator = document.createNodeIterator( 7 doc, 8 NodeFilter.SHOW_COMMENT 9 ); 10 11 while (currentNode = nodeIterator.nextNode()) { 12 if (currentNode.nodeType === 8 && currentNode.nodeValue === 'ENGINE_NAVIGATION' && currentNode.nextSibling.nodeValue !== 'ENGINE_NAVIGATION') { 13 navigation = currentNode.nextSibling; 14 break; 15 } 16 } 17 } 18 19 return navigation; 20}; 21 22let navigation = getNavigation(document.body); 23let filterNavigation = 'none'; 24 25$(function() { 26 // ÐоиÑк по ENTER 27 $('[data-dlefilter*=dle-filter] input, [data-dlefilter*=dle-filter] textarea').keypress(function(e) { 28 if (e.which == 13) { 29 e.preventDefault(); 30 filterAjax($(this).closest('form'), true); 31 } 32 }); 33 34 // ÐолÑÑаем ID конÑенÑа 35 let getId = function(elemTag) { 36 dleFilter.id = (elemTag !== 'FORM' ? $(elemTag).closest('form[data-dlefilter]').data('dlefilter-id') : $(elemTag).data('dlefilter-id')) || 'dle-content'; 37 38 if (!dleFilter.original[dleFilter.id] && dleFilter.id != 'dle-content') { 39 dleFilter.original[dleFilter.id] = $('#' + dleFilter.id).html(); 40 } 41 } 42 43 // Ðадаем даннÑе на ÑÑÑаниÑе ÑилÑÑÑа. 44 let setFilterParam = function() { 45 let filterParam = decodeURIComponent(location.href).split('/' + dleFilter.filterUrl + '/'); 46 if (!filterParam[1]) { 47 return; 48 } 49 if (filterParam[1].slice(-1) === '/') { 50 filterParam[1] = filterParam[1].slice(0, -1); 51 } 52 53 // Разбивка даннÑÑ 54 filterParam = filterParam[1].split('/'); 55 let arrayParam = []; 56 for (let i = 0; i < filterParam.length; i++) { 57 arrayParam[i] = filterParam[i].split('='); 58 if (arrayParam[i][1]) { 59 arrayParam[i][0] = arrayParam[i][0].replace(/\+/g, ' '); 60 arrayParam[i][1] = arrayParam[i][1].replace(/\+/g, ' '); 61 } 62 } 63 64 // Ðадаем Ð´Ð»Ñ input text и textarea, Ñак же Ð´Ð»Ñ ionRange.Slider 65 $('[data-dlefilter*=dle-filter] input[type="text"], [data-dlefilter*=dle-filter] textarea').each(function () { 66 let nameElem = $(this).attr('name'); 67 if (nameElem !== undefined && nameElem.length > 0) { 68 for (let i = 0; i < arrayParam.length; i++) { 69 if (nameElem === arrayParam[i][0]) { 70 if (nameElem.indexOf('r.') + 1) { 71 let slider = $(this).data('ionRangeSlider'); 72 73 let sliderData = arrayParam[i][1].split(';'); 74 if (slider.options.type == 'single') { 75 slider.update({ 76 from: sliderData[0] 77 }); 78 } else if (slider.options.type == 'double') { 79 slider.update({ 80 from: sliderData[0], 81 to: sliderData[1] 82 }); 83 } 84 } else { 85 $(this).val(arrayParam[i][1]); 86 } 87 } 88 } 89 } 90 }); 91 92 // Select 93 $('[data-dlefilter*=dle-filter] select').each(function (index) { 94 let nameElem = $(this).attr('name'); 95 if (nameElem !== undefined && nameElem.length > 0) { 96 for (let i = 0; i < arrayParam.length; i++) { 97 if (nameElem === arrayParam[i][0]) { 98 let selectData = []; 99 if (nameElem.indexOf('c.') + 1) { 100 selectData[0] = arrayParam[i][1]; 101 } else { 102 selectData = arrayParam[i][1].split(','); 103 } 104 105 $(this).find('option').each(function (s, n) { 106 if ($.inArray(n.value, selectData) >= 0) { 107 $(this).attr('selected', true); 108 } 109 }); 110 } 111 } 112 113 if (dleFilter.jsSelect == 1) { 114 let getTail = $('.tail-select'); 115 if (getTail.length > 0) { 116 tail.select('[data-dlefilter*=dle-filter] select[data-select-id="' + index + '"]').reload(); 117 } 118 } 119 } 120 }); 121 122 if (dleFilter.jsSelect == 2) { 123 let getChosen = $('.chosen-results'); 124 if (getChosen.length > 0) { 125 $('[data-dlefilter*=dle-filter] select').trigger('chosen:updated'); 126 } 127 } 128 129 if (dleFilter.jsSelect == 3) { 130 $('[data-dlefilter*=dle-filter] select').niceSelect('update'); 131 } 132 133 // Radio / Checkbox 134 $('[data-dlefilter*=dle-filter] input[type="radio"], [data-dlefilter*=dle-filter] input[type="checkbox"]').each(function () { 135 let nameElem = $(this).attr('name'); 136 if (nameElem !== undefined && nameElem.length > 0) { 137 for (let i = 0; i < arrayParam.length; i++) { 138 if (nameElem === arrayParam[i][0]) { 139 let selectData = arrayParam[i][1].split(','); 140 141 $(this).each(function (s, n) { 142 if ($.inArray(n.value, selectData) >= 0) { 143 $(this).attr('checked', 'checked'); 144 } 145 }); 146 } 147 } 148 } 149 }); 150 }; 151 152 // ÐÑиÑÑка ÑилÑÑÑа 153 let filterClear = function() { 154 dleFilter.reset = true; 155 156 let formFilter = $(this).closest('form'); 157 let formId = $(formFilter).data('dlefilter'); 158 getId(this); 159 160 if (dleFilter.ajaxUrl == 0) { 161 document.title = dleFilter.title; 162 history.pushState(null, dleFilter.title, dleFilter.path); 163 } 164 165 if (filterNavigation !== 'none' && dleFilter.id == 'dle-content' && dleFilter.navApart == 1) { 166 $(getNavigation(document.body)).replaceWith(navigation); 167 } 168 169 if (dleFilter.path.indexOf('/' + dleFilter.filterUrl + '/') + 1) { 170 $('#dle-content').html(dleFilter.content); 171 } else { 172 if (dleFilter.id == 'dle-content') { 173 $('#dle-content').html(dleFilter.content); 174 } else { 175 $('#' + dleFilter.id).html(dleFilter.original[dleFilter.id]); 176 } 177 } 178 179 if (dleFilter.lazy == 1 && typeof lazyLoadXT !== 'undefined' && typeof lazyLoadXT === 'function') { 180 $('[data-src]').lazyLoadXT(); 181 } else if (dleFilter.lazy == 1 && typeof jQuery().lazyLoadXT !== 'undefined' && typeof jQuery().lazyLoadXT === 'function') { 182 $('[data-src]').lazyLoadXT(); 183 } 184 185 if ($('#dle-speedbar').length > 0) { 186 $('#dle-speedbar').html(dleFilter.speedbar); 187 } 188 189 $(formFilter).find('input[type="text"]').each(function() { 190 let nameElem = $(this).prop('name'); 191 if (nameElem.length > 0) { 192 if (nameElem.indexOf('r.') + 1) { 193 let slider = $(this).data('ionRangeSlider'); 194 if (slider.options.type == 'single') { 195 slider.update({ 196 from: slider.options.min 197 }); 198 } else if (slider.options.type == 'double') { 199 slider.update({ 200 from: slider.options.min,
201 to: slider.options.max 202 }); 203 } 204 } else { 205 $(this).val(''); 206 } 207 if ($(this).data('dlefilter-show') !== undefined) { 208 showAndHideFilter(this); 209 } 210 } 211 }); 212 213 $(formFilter).find('select').each(function(index) { 214 let nameElem = $(this).prop('name'); 215 if (nameElem.length > 0) { 216 $(this).children('option').each(function() { 217 $(this).prop('selected', false); 218 }); 219 220 if (dleFilter.jsSelect == 1) { 221 let getTail = $('.tail-select'); 222 if (getTail.length > 0) { 223 tail.select('[data-dlefilter*="' + formId + '"] select[data-select-id="' + index + '"]').reload(); 224 } 225 } 226 227 if ($(this).data('dlefilter-show') !== undefined) { 228 showAndHideFilter(this); 229 } 230 } 231 }); 232 233 if (dleFilter.jsSelect == 2) { 234 let getChosen = $('.chosen-results'); 235 if (getChosen.length > 0) { 236 $('[data-dlefilter*="' + formId + '"] select').trigger('chosen:updated'); 237 } 238 } 239 240 if (dleFilter.jsSelect == 3) { 241 $('[data-dlefilter*="' + formId + '"] select').niceSelect('update'); 242 } 243 244 $(formFilter).find('input[type="radio"], input[type="checkbox"]').each(function() { 245 let nameElem = $(this).prop('name'); 246 if (nameElem.length > 0) { 247 $(this).prop('checked', false); 248 if ($(this).data('dlefilter-show') !== undefined) { 249 showAndHideFilter(this); 250 } 251 } 252 }); 253 254 dleFilter.reset = false; 255 }; 256 257 // ÐаннÑе ÑилÑÑÑа 258 let filterWork = function(data) { 259 data = $.parseJSON(data); 260 261 if (data.content == 'redirect') { 262 dleFilter.ajax = 1; 263 } 264 265 if (dleFilter.ajax == 1) { 266 window.location.href = data.url; 267 } else { 268 if (data.clean == dleFilter.defaultUrl) { 269 filterClear(); 270 } else { 271 if ($('#dle-speedbar').length > 0) { 272 $('#dle-speedbar').html($('#dle-speedbar', data.speedbar).html()); 273 } 274 275 let idContent = ''; 276 if (dleFilter.path.indexOf('/' + dleFilter.filterUrl + '/') + 1) { 277 $('#dle-content').html(data.content); 278 idContent = '#dle-content'; 279 } else { 280 $('#' + dleFilter.id).html(data.content); 281 idContent = '#' + dleFilter.id; 282 } 283 284 if (data.player && ($(idContent + " .dleplyrplayer").length || $(idContent + " .dleplyrplayer").length || $(idContent + " .dlevideoplayer").length)) { 285 if (data.player == 'plyr') { 286 let playersV = Array.from(document.querySelectorAll('.dleplyrplayer:not(.dlepl)')).map(player => new DLEPlayer(player)); 287 playersV.forEach(function(instance, index) { 288 instance.on('play',function() { 289 playersV.forEach(function(instance1, index1) { 290 if (instance != instance1) { 291 instance1.pause(); 292 } 293 }); 294 }); 295 }); 296 } else { 297 $('.dleaudioplayer:not(.alreadyLoaded)').addClass('alreadyLoaded').cleanaudioplayer(); 298 $('.dlevideoplayer:not(.alreadyLoaded)').addClass('alreadyLoaded').cleanvideoplayer(); 299 } 300 } 301 302 if (dleFilterId === 1) { 303 $('pre').removeAttr('class'); 304 $('pre').each(function() { 305 if (!$(this).find('code').length) { 306 $(this).wrapInner('<code>'); 307 } 308 }); 309 310 hljs.highlightAll(); 311 } else if (dleFilterId === 0) { 312 $('pre code:not([class])').each(function(i, e) {hljs.highlightBlock(e, null)}); 313 } 314 315 if (navigation !== 'none' && data.nav && dleFilter.id == 'dle-content' && dleFilter.navApart == 1) { 316 filterNavigation = data.nav; 317 navigation = getNavigation(document.body); 318 $(navigation).replaceWith(data.nav); 319 } else if (!data.nav && dleFilter.navApart == 1) { 320 navigation = getNavigation(document.body); 321 navigation.remove(); 322 } 323 324 if (dleFilter.lazy == 1 && typeof lazyLoadXT !== 'undefined' && typeof lazyLoadXT === 'function') { 325 $('[data-src]').lazyLoadXT(); 326 } else if (dleFilter.lazy == 1 && typeof jQuery().lazyLoadXT !== 'undefined' && typeof jQuery().lazyLoadXT === 'function') { 327 $('[data-src]').lazyLoadXT(); 328 } 329 330 if (dleFilter.ajaxUrl == 0) { 331 history.pushState(null, data.title, data.clean); 332 document.title = data.title; 333 } 334 } 335 } 336 }; 337 338 // СобиÑаем даннÑе 339 let filterAjax = function(elem, enter) { 340 if (dleFilter.reset) { 341 return; 342 } 343 344 $('[data-dlefilter*=dle-filter] input[name*="r."]').each(function () { 345 let nameElem = $(this).attr('name'); 346 if (nameElem !== undefined && nameElem.length > 0) { 347 let slider = $(this).data('ionRangeSlider'); 348 let sliderDefault = 0; 349 350 if (slider.options.type == 'single') { 351 sliderDefault = slider.options.min; 352 } else if (slider.options.type == 'double') { 353 sliderDefault = slider.options.min + ';' + slider.options.max; 354 } 355 356 if (sliderDefault == $(this).val()) { 357 $(this).val(''); 358 } 359 } 360 }); 361 362 enter = enter || false; 363 let data, elemTag, elemType = ''; 364 365 if (enter === true) { 366 data = $(elem).serialize(); 367 } else { 368 elemTag = elem.target.tagName.toUpperCase(); 369 370 if (elem.target.type !== undefined) { 371 elemType = elem.target.type.toUpperCase(); 372 } 373 374 if (elemTag === 'TEXTAREA' || elemTag === 'INPUT' && (elemType === 'TEXT' || elemType === 'RESET')) { 375 return; 376 } 377 378 data = elemTag !== 'FORM' ? $(this).closest('form').serialize() : $(this).serialize(); 379 } 380 381 getId(elemTag); 382 383 $.ajax({ 384 beforeSend: function() { 385 if (dleFilter.hideLoading == 0) { 386 ShowLoading(''); 387 } 388 }, 389 url: dle_root + 'engine/lazydev/dle_filter/ajax.php', 390 type: 'POST', 391 data: { 392 data: data, 393 url: dleFilter.path, 394 dle_hash: dle_login_hash, 395 dleFilterJSData 396 }, 397 success: function(output) { 398 if (output.error) { 399 DLEalert(output.text, dle_info); 400 } else { 401 filterWork(output); 402 } 403 }, 404 error: function (output) { 405 filterWork(output.responseText); 406 } 407 }).always(function() { 408 if (dleFilter.hideLoading == 0) { 409 HideLoading(''); 410 } 411 }); 412 }; 413 414 // Ð¡Ð¾Ñ ÑанÑем даннÑе ÑпидбаÑа 415 if ($('#dle-speedbar').length > 0) { 416 dleFilter.speedbar = $('#dle-speedbar').html(); 417 } 418 419 // Ð¡Ð¾Ñ ÑанÑем даннÑе конÑенÑа 420 if ($('#dle-content').length > 0) { 421 dleFilter.content = $('#dle-content').html(); 422 } 423 424 // Ðадаем callback Ð´Ð»Ñ click / change в ÑоÑме ÑилÑÑÑа 425 $('body').on('click', '[data-dlefilter=submit]', filterAjax); 426 427 if (dleFilter.button == 0) { 428 $('body').on('change', '[data-dlefilter*=dle-filter]', filterAjax); 429 } 430 431 // Callback Ð´Ð»Ñ Ð¾ÑиÑÑки ÑилÑÑÑа 432 $('body').on('click', '[data-dlefilter=reset]', filterClear); 433 434 // РабоÑа Ñ Ð´Ð°Ñой в ÑлайдеÑе 435 let dateToTS = function(date) { 436 return date.valueOf(); 437 }; 438 439 let validateDate = function(date) { 440 date = date.toString().split(','); 441 if (Array.isArray(date) && date.length === 3) { 442 date[0] = parseInt(date[0]); 443 date[1] = parseInt(date[1]); 444 date[2] = parseInt(date[2]); 445 if (date[0] > 0 && (date[1] > 0 && date[1] <= 12) && (date[2] > 0 && date[2] <= 31)) { 446 return date; 447 } 448 } 449 450 return false;
451 }; 452 453 // ÐеÑки в ÑлайдеÑе 454 function convertToPercent(num, min, max) { 455 return (num - min) / (max - min) * 100; 456 } 457 458 function addMark($slider, config, mark) { 459 let html = ''; 460 let left = 0; 461 let leftPercent = ''; 462 463 for (let i = 0; i < mark.length; i++) { 464 let tempMark = mark[i].toString().split('|'); 465 466 left = convertToPercent(parseInt(tempMark[0]), config.min, config.max); 467 leftPercent = left + '%'; 468 html += '<span class="sliderShowcaseMark" style="left: ' + leftPercent + '">' + tempMark[1] + '</span>'; 469 } 470 471 $slider.append(html); 472 } 473 474 // РабоÑа Ñо ÑлайдеÑом 475 $('[data-dlefilter*=dle-filter]').find('input[type="text"][name*="r."]').each(function() { 476 let sliderVars = $(this).data('slider-config'); 477 let sliderType = $(this).data('slider-type'); 478 let sliderLang = $(this).data('slider-lang'); 479 let sliderMark = $(this).data('slider-mark'); 480 481 let date = ''; 482 483 if (sliderVars !== undefined && sliderVars.length > 0) { 484 let sliderConfig = {}; 485 486 if (sliderVars.slice(-1) === ';') { 487 sliderVars = sliderVars.slice(0, -1); 488 } 489 490 sliderVars = sliderVars.split(';'); 491 for (let i = 0; i < sliderVars.length; i++) { 492 let attempt = sliderVars[i].split(':'); 493 attempt[0] = attempt[0].trim(); 494 switch (attempt[0]) { 495 case 'ÐвÑоÐолзÑнок': 496 case 'ÐвÑоÐовзÑнок': 497 case 'AutoSlider': 498 sliderConfig.slider = true; 499 break; 500 case 'ÐдиноÑнÑй ÑлайдеÑ': 501 case 'Ðдин ÑлайдеÑ': 502 case 'Single': 503 sliderConfig.type = 'single'; 504 break; 505 case 'Ðвойной ÑлайдеÑ': 506 case 'Ðва ÑлайдеÑа': 507 case 'Double': 508 sliderConfig.type = 'double'; 509 break; 510 case 'ÐинималÑное знаÑение': 511 case 'ÐÑнÑмалÑне знаÑеннÑ': 512 case 'Min': 513 if (attempt[1] !== undefined) { 514 if ($.isNumeric(attempt[1])) { 515 sliderConfig.min = attempt[1]; 516 } else if (sliderType === 'date') { 517 date = validateDate(attempt[1]); 518 if (date !== false) { 519 sliderConfig.min = dateToTS(new Date(date[0], date[1] - 1, date[2])); 520 } 521 } 522 } 523 break; 524 case 'ÐакÑималÑное знаÑение': 525 case 'ÐакÑималÑне знаÑеннÑ': 526 case 'Max': 527 if (attempt[1] !== undefined) { 528 if ($.isNumeric(attempt[1])) { 529 sliderConfig.max = attempt[1]; 530 } else if (sliderType === 'date') { 531 date = validateDate(attempt[1]); 532 if (date !== false) { 533 sliderConfig.max = dateToTS(new Date(date[0], date[1] - 1, date[2])); 534 } 535 } 536 } 537 break; 538 case 'ÐаÑало ÑлайдеÑа': 539 case 'ÐоÑаÑок ÑлайдеÑа': 540 case 'Start': 541 if (attempt[1] !== undefined) { 542 if ($.isNumeric(attempt[1])) { 543 sliderConfig.from = attempt[1]; 544 } else if (sliderType === 'date') { 545 date = validateDate(attempt[1]); 546 if (date !== false) { 547 sliderConfig.from = dateToTS(new Date(date[0], date[1] - 1, date[2])); 548 } 549 } 550 } 551 break; 552 case 'ÐÐ¾Ð½ÐµÑ ÑлайдеÑа': 553 case 'ÐÑнеÑÑ ÑлайдеÑа': 554 case 'End': 555 if (attempt[1] !== undefined) { 556 if ($.isNumeric(attempt[1])) { 557 sliderConfig.to = attempt[1]; 558 } else if (sliderType === 'date') { 559 date = validateDate(attempt[1]); 560 if (date !== false) { 561 sliderConfig.to = dateToTS(new Date(date[0], date[1] - 1, date[2])); 562 } 563 } 564 } 565 break; 566 case 'Шаг': 567 case 'ÐÑок': 568 case 'Step': 569 if (attempt[1] !== undefined && $.isNumeric(attempt[1])) { 570 sliderConfig.step = attempt[1]; 571 } 572 break; 573 case 'Шаблон': 574 case 'Tpl': 575 if (attempt[1] !== undefined && attempt[1] !== '') { 576 sliderConfig.skin = attempt[1]; 577 } 578 break; 579 case 'ÐÑеÑикÑ': 580 case 'ÐÑеÑÑкÑ': 581 case 'Prefix': 582 if (attempt[1] !== undefined && attempt[1] !== '') { 583 sliderConfig.prefix = attempt[1]; 584 } 585 break; 586 case 'ÐоÑÑÑикÑ': 587 case 'ÐоÑÑÑÑкÑ': 588 case 'Postfix': 589 if (attempt[1] !== undefined && attempt[1] !== '') { 590 sliderConfig.postfix = attempt[1]; 591 } 592 break; 593 case 'СеÑка': 594 case 'СÑÑка': 595 case 'Grid': 596 sliderConfig.grid = true; 597 break; 598 case 'ÐÑаÑивÑе ÑиÑла': 599 case 'ÐÑаÑÐ¸Ð²Ñ ÑиÑла': 600 case 'Numbers': 601 sliderConfig.prettify_enabled = true; 602 break; 603 case 'СкÑÑÑÑ MinMax': 604 case 'ÐÑÐ¸Ñ Ð¾Ð²Ð°Ñи MinMax': 605 case 'Hide MinMax': 606 sliderConfig.hide_min_max = true; 607 break; 608 case 'СкÑÑÑÑ FromTo': 609 case 'ÐÑÐ¸Ñ Ð¾Ð²Ð°Ñи FromTo': 610 case 'Hide FromTo': 611 sliderConfig.hide_from_to = true; 612 break; 613 } 614 } 615 616 if (sliderConfig.from === undefined) { 617 sliderConfig.from = sliderConfig.min; 618 } 619 620 if (sliderConfig.to === undefined) { 621 sliderConfig.to = sliderConfig.max; 622 } 623 624 if (sliderMark) { 625 let mark = sliderMark.toString().split(','); 626 627 sliderConfig.onStart = function (data) { 628 addMark(data.slider, sliderConfig, mark); 629 } 630 } 631 632 if (sliderType === 'date') { 633 sliderConfig.prettify = function(ts) { 634 let d = new Date(ts); 635 636 return d.toLocaleDateString(sliderLang, { 637 year: 'numeric', 638 month: 'long', 639 day: 'numeric' 640 }); 641 }; 642 } 643 644 if (!sliderConfig.prettify_enabled && sliderType !== 'date') { 645 sliderConfig.prettify_enabled = false;
646 } 647 648 if (sliderConfig.slider) { 649 sliderConfig.onFinish = function (data) { 650 filterAjax($('[name="' + data.input[0].name + '"]').closest('form'), true); 651 }; 652 } 653 654 $(this).ionRangeSlider(sliderConfig); 655 } 656 }); 657 658 // РабоÑа Ñ Tail.Select 659 if (dleFilter.jsSelect == 1) { 660 $('[data-dlefilter*=dle-filter]').find('select').each(function(index) { 661 $(this).attr('data-select-id', index); 662 let selectVars = $(this).data('select-config'); 663 let selectConfig = {}; 664 if (selectVars !== undefined && selectVars.length > 0) { 665 if (selectVars.slice(-1) == ';') { 666 selectVars = selectVars.slice(0, -1); 667 } 668 selectVars = selectVars.split(';'); 669 for (let i = 0; i < selectVars.length; i++) { 670 let attempt = selectVars[i].split(':'); 671 switch (attempt[0]) { 672 case 'ÐоиÑк': 673 case 'ÐоÑÑк': 674 case 'Search': 675 selectConfig.search = true; 676 break; 677 case 'СкÑÑÑÑ Ð²ÑбÑаннÑе': 678 case 'ÐÑÐ¸Ñ Ð¾Ð²Ð°Ñи обÑанÑ': 679 case 'Hide': 680 selectConfig.hideSelected = true; 681 break; 682 case 'ÐакÑимÑм вÑбÑаÑÑ': 683 case 'ÐакÑимÑм вибÑаÑи': 684 case 'Max': 685 if (attempt[1] !== undefined && $.isNumeric(attempt[1])) { 686 selectConfig.multiLimit = attempt[1]; 687 } 688 break; 689 case 'ÐоказаÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво вÑбÑаннÑÑ ': 690 case 'ÐоказÑваÑи кÑлÑкÑÑÑÑ Ð²Ð¸Ð±ÑÐ°Ð½Ð¸Ñ ': 691 case 'Num': 692 if (!selectConfig.multiContainer) {
693 selectConfig.multiShowCount = true; 694 } 695 break; 696 case 'ÐÑвод вÑбÑаннÑÑ ': 697 case 'ÐÐ¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¾Ð±ÑÐ°Ð½Ð¸Ñ ': 698 case 'Show': 699 selectConfig.multiContainer = true; 700 if (selectConfig.multiShowCount) { 701 selectConfig.multiShowCount = false; 702 } 703 break; 704 case 'ÐодÑказка': 705 case 'ÐÑдказка': 706 case 'Prompt': 707 if (attempt[1] !== undefined && attempt[1] !== '') { 708 selectConfig.placeholder = attempt[1]; 709 } 710 break; 711 case 'ЯзÑк': 712 case 'Ðова': 713 case 'Lang': 714 if (attempt[1] === undefined || attempt[1].trim() == '') { 715 attempt[1] = 'ru'; 716 } 717 718 selectConfig.locale = attempt[1]; 719 break; 720 case 'СоÑÑиÑоваÑÑ': 721 case 'СоÑÑÑваÑи': 722 case 'Sort': 723 if (attempt[1] !== undefined && (attempt[1] === 'ASC' || attempt[1] === 'DESC')) { 724 selectConfig.sortItems = attempt[1]; 725 } 726 break; 727 } 728 } 729 } 730 731 if (selectConfig.locale == undefined) { 732 selectConfig.locale = 'ru'; 733 } 734 735 selectConfig.deselect = true; 736 737 tail.select('[data-dlefilter*=dle-filter] select[data-select-id="' + index + '"]', selectConfig).on('change', function(item, state) { 738 let name = item.option.parentElement.tagName.toUpperCase() === 'OPTGROUP' ? item.option.parentElement.parentElement.name : item.option.parentElement.name; 739 740 if (state === 'unselect' && !$('[name="' + name + '"] option:selected')) { 741 $('[name="' + name + '"]').val(''); 742 } 743 744 if (dleFilter.button == 0) { 745 $('[name="' + name + '"]').trigger('change'); 746 } 747 }); 748 }); 749 } 750 751 // ÐвÑомаÑиÑеÑки задаем chosen 752 if (dleFilter.jsSelect == 2) { 753 $('[data-dlefilter*=dle-filter] select').chosen(); 754 } 755 756 // ÐвÑомаÑиÑеÑки задаем niceSelect 757 if (dleFilter.jsSelect == 3) { 758 $('[data-dlefilter*=dle-filter] select').niceSelect(); 759 } 760 761 // AJAX навигаÑÐ¸Ñ 762 let ajaxNavigation = function (urlPage, pathPage) { 763 if (urlPage !== undefined) { 764 $.ajax({ 765 url: urlPage, 766 beforeSend: function() { 767 if (dleFilter.hideLoading == 0) { 768 ShowLoading(''); 769 } 770 }, 771 success: function(output) { 772 if ($('#dle-speedbar').length > 0) { 773 $('#dle-speedbar').html($('#dle-speedbar', output).html()); 774 } 775 776 if (navigation !== 'none' && dleFilter.navApart == 1) { 777 let parser = new DOMParser(); 778 let el = parser.parseFromString(output, 'text/html'); 779 let nav = getNavigation(el); 780 let navNow = getNavigation(document.body); 781 782 filterNavigation = nav; 783 $(navNow).replaceWith(nav); 784 } 785 786 if (window.location.href.toString().indexOf(pathPage) + 1) { 787 $('#dle-content').html($('#dle-content', output).html()); 788 } else { 789 $('#' + dleFilter.id).html($('#dle-content', output).html()); 790 } 791 792 if (dleFilter.lazy == 1 && typeof lazyLoadXT !== 'undefined' && typeof lazyLoadXT === 'function') { 793 $('[data-src]').lazyLoadXT(); 794 } else if (dleFilter.lazy == 1 && typeof jQuery().lazyLoadXT !== 'undefined' && typeof jQuery().lazyLoadXT === 'function') { 795 $('[data-src]').lazyLoadXT(); 796 } 797 798 if (dleFilter.ajaxUrl == 0) { 799 let titlePage = $(output).filter('title').text(); 800 window.history.pushState(titlePage, '', urlPage); 801 if (titlePage != '') { 802 document.title = $(output).filter('title').text(); 803 } 804 } 805 806 if (dleFilter.ajaxAnim == 0) { 807 $('html, body').animate({ 808 scrollTop: $('#' + dleFilter.id).offset().top 809 }, 400); 810 } 811 }, 812 error: function(output) { 813 if (dle_group === 1) { 814 console.log(output.responseText, dle_info); 815 } 816 } 817 }).always(function() { 818 if (dleFilter.hideLoading == 0) { 819 HideLoading(''); 820 } 821 }); 822 } 823 } 824 825 // Ajax навигаÑÐ¸Ñ Ð´Ð»Ñ Ð³Ð¾ÑовÑÑ ÑÑÑаниÑ
826 if (dleFilter.ajaxPage == 1 && urlFilter != 0) { 827 $('body').on('click', 'a[href*="' + urlFilter + '"]', function(e) { 828 e.preventDefault(); 829 dleFilter.id = 'dle-content'; 830 let urlPage = $(this).attr('href'); 831 ajaxNavigation(urlPage, urlFilter); 832 833 return false; 834 }); 835 } 836 837 // AJAX навигаÑÐ¸Ñ Ð´Ð»Ñ ÑÑÑÐ°Ð½Ð¸Ñ ÑилÑÑÑа 838 if (dleFilter.ajaxNav == 1) { 839 $('body').on('click', 'a[href*="/' + dleFilter.filterUrl + '/"]', function(e) { 840 e.preventDefault(); 841 getId(this); 842 let urlPage = $(this).attr('href'); 843 ajaxNavigation(urlPage, '/' + dleFilter.filterUrl + '/'); 844 845 return false; 846 }); 847 } 848 849 // РаÑÑ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ðµ маÑÑива 850 Array.prototype.diff = function(a) { 851 return this.filter(function(i) {return a.indexOf(i) < 0;}); 852 }; 853 854 let showList = {}; 855 let hideList = {}; 856 let whatHide = {}; 857 858 // СкÑÑÑие и показ блоков 859 let showAndHideFilter = function(e) { 860 let elemTag = $(e).prop('tagName').toUpperCase(); 861 let elemType = $(e).prop('type').toUpperCase(); 862 863 let showNode = $(e).data('dlefilter-show'); 864 let objShow = {}; 865 if (showNode.slice(-1) == ';') { 866 showNode = showNode.slice(0, -1); 867 } 868 869 showNode = showNode.split(';'); 870 $.each(showNode, function(index, value) { 871 let tempObj = value.split(':'); 872 if (tempObj[0] && tempObj[1]) { 873 objShow[tempObj[0]] = tempObj[1].split(','); 874 } 875 }); 876 877 if (elemTag === 'SELECT') { 878 $(e).find('option').each(function(p, elem) { 879 $.each(objShow, function(index, value) { 880 if ($(elem).val().toString().length > 0 && $(elem).prop('selected') && $.inArray($(elem).val(), value) >= 0) { 881 if (dleFilter.jsSelect == 1) { 882 showList[index] = '.dle-filter-select-' + index; 883 } else { 884 showList[index] = '[data-dlefilter-hide="' + index + '"]'; 885 } 886 } else { 887 if (dleFilter.jsSelect == 1) { 888 hideList[index] = '.dle-filter-select-' + index; 889 } else { 890 hideList[index] = '[data-dlefilter-hide="' + index + '"]'; 891 } 892 } 893 }); 894 }); 895 } else if (elemTag === 'INPUT') { 896 $.each(objShow, function(index, value) { 897 if (elemType === 'TEXT') { 898 if ($.inArray($(e).val(), value) >= 0) { 899 showList[index] = '[data-dlefilter-hide="' + index + '"]'; 900 } else { 901 hideList[index] = '[data-dlefilter-hide="' + index + '"]'; 902 } 903 } else if (elemType === 'RADIO' || elemType === 'CHECKBOX') { 904 if ($(e).prop('checked') && $.inArray($(e).val(), value) >= 0) { 905 showList[index] = '[data-dlefilter-hide="' + index + '"]'; 906 } else { 907 hideList[index] = '[data-dlefilter-hide="' + index + '"]'; 908 } 909 } 910 }); 911 } else if (elemTag === 'TEXTAREA') { 912 $.each(objShow, function(index, value) { 913 if ($.inArray($(e).val(), value) >= 0) { 914 showList[index] = '[data-dlefilter-hide="' + index + '"]'; 915 } else { 916 hideList[index] = '[data-dlefilter-hide="' + index + '"]'; 917 } 918 }); 919 } 920 921 let temp_array1 = Object.values(hideList); 922 let temp_array2 = Object.values(showList); 923 924 whatHide = temp_array1.filter(x => !temp_array2.includes(x)) 925 if (whatHide) { 926 $.each(whatHide, function(index, value) { 927 $(value).find('input[type="text"]').each(function() { 928 let nameElem = $(this).prop('name'); 929 if ($(this).data('dlefilter-show') !== undefined) { 930 showAndHideFilter(this); 931 } 932 if (nameElem.length > 0) { 933 if (nameElem.indexOf('r.') + 1) { 934 let slider = $(this).data('ionRangeSlider'); 935 if (slider.options.type == 'single') { 936 slider.update({ 937 from: slider.options.min 938 }); 939 940 } else if (slider.options.type == 'double') { 941 slider.update({ 942 from: slider.options.min, 943 to: slider.options.max 944 }); 945 } 946 } else { 947 $(this).val(''); 948 } 949 } 950 }); 951 952 $(value).find('select').each(function(index) { 953 let nameElem = $(this).prop('name'); 954 if (nameElem.length > 0) { 955 if ($(this).data('dlefilter-show') !== undefined) { 956 showAndHideFilter(this); 957 } 958 959 $(this).children('option').each(function() { 960 $(this).attr('selected', false); 961 }); 962 963 if (dleFilter.jsSelect == 1) { 964 let getTail = $('.tail-select'); 965 if (getTail.length > 0) { 966 tail.select('[data-dlefilter*=dle-filter] select[data-select-id="' + index + '"]').reload(); 967 } 968 } 969 } 970 }); 971 972 if (dleFilter.jsSelect == 2) { 973 let getChosen = $('.chosen-results'); 974 if (getChosen.length > 0) { 975 $('[data-dlefilter*=dle-filter] select').trigger('chosen:updated'); 976 } 977 } 978 979 if (dleFilter.jsSelect == 3) { 980 $('[data-dlefilter*=dle-filter] select').niceSelect('update'); 981 } 982 983 $(value).find('input[type="radio"], input[type="checkbox"]').each(function() { 984 let nameElem = $(this).prop('name'); 985 if (nameElem.length > 0) { 986 if ($(this).data('dlefilter-show') !== undefined) { 987 showAndHideFilter(this); 988 } 989 $(this).attr('checked', false); 990 } 991 }); 992 }); 993 } 994 }; 995 996 // ÐÑли ÑекÑÑÐ°Ñ ÑÑÑаниÑа ÑилÑÑÑ - задаем паÑамеÑÑÑ 997 if (dleFilter.path.indexOf('/' + dleFilter.filterUrl + '/') + 1) { 998 setFilterParam(); 999 } 1000 1001 // СкÑÑваем ÑкÑÑваемÑе блоки 1002 $('[data-dlefilter-hide]').hide(); 1003 1004 // ÐоказÑваем блоки еÑли они нÑÐ¶Ð½Ñ 1005 $('body').find('[data-dlefilter-show]').each(function(p, e) { 1006 hideList = {}; 1007 whatHide = {}; 1008 showList = {}; 1009 1010 showAndHideFilter(e); 1011 1012 if (whatHide) { 1013 $(whatHide.join(', ')).hide(); 1014 } 1015 1016 if (showList) { 1017 $(Object.values(showList).join(', ')).show(); 1018 } 1019 }); 1020 1021 // ÐоказÑваем блоки еÑли они нÑÐ¶Ð½Ñ ÐµÑли изменилиÑÑ Ð´Ð°Ð½Ð½Ñе ÑилÑÑÑа 1022 $('body').on('change', '[data-dlefilter-show]', function(e) { 1023 hideList = {}; 1024 whatHide = {}; 1025 showList = {}; 1026 1027 $('body').find('[data-dlefilter-show]').each(function(p, z) { 1028 showAndHideFilter(z); 1029 }); 1030 1031 if (whatHide) { 1032 $(whatHide.join(', ')).hide(); 1033 } 1034 1035 if (showList) { 1036 $(Object.values(showList).join(', ')).show(); 1037 } 1038 }); 1039 1040});
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.