PageSourceSearch

https://nhacaiuytinonline.org/wp-content/themes/flatsome-child/assets/js/custom.js?ver=1791360939

js nhacaiuytinonline.org collected 2026-10-07 08:26:11 UTC 5,098 bytes, 138 lines download raw bytes

1var KHelper = {
2    _formatString: function (str) {
3        str = str.toLowerCase();
4        str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
5        str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
6        str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
7        str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
8        str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
9        str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
10        str = str.replace(/đ/g, "d");
11     
12        return str;
13    },
14};
15
16jQuery(document).ready(function ($) {
17	$('.header-bg-container').hide();
18    var KApp = {
19        init: function () {
20            this.add_readmore_button();
21        },
22
23        // Will add readmore button to all the wrapper class .k-readmore-box automatically
24        add_readmore_button: function () {
25            var hidden_block_view = function(element, your_height = 150) {
26                var wrap = element;
27                var current_height = wrap.height();
28                if (current_height > your_height) {
29                    wrap.css('height', your_height + 'px');
30                    wrap.append(function () {
31                        return '<div class="devvn_readmore_flatsome"><span title="Xem thêm" href="javascript:void(0);">Xem thêm</span></div>';
32                    });
33                    $('body').on('click','.devvn_readmore_flatsome', function () {
34                        wrap.removeAttr('style');
35                        $('body .devvn_readmore_flatsome').remove();
36                    });
37                }
38            };
39
40            if ($('.k-readmore-box').length > 0) {
41                hidden_block_view($('.k-readmore-box'), 300);                     
42            }
43        },
44
45    }
46
47    KApp.init();
48
49    $(".gif-banner").append('<a class="x" href="javascript:void(0);">x</a>');
50    $('.gif-banner .x').click(function() {
51        $('.gif-banner').hide();
52    });
53    $('.j-gif').click(function() {
54        $('.gif-banner').show();
55    });
56    if ($('.rank-math-breadcrumb .last').text() == 'KQBD') {
57        $( '<a href="/">KQBD</a><span class="separator"> / </span>' ).insertBefore( '.rank-math-breadcrumb .last' );
58        $('.rank-math-breadcrumb .last').text($('title').text().replace(' -', ''));
59    }
60    $(".h-section .readmore").append('<button class="readmoreButton">Đọc tiếp</button>');
61    $(".h-section .readmore .readmoreButton").click(function() {
62        $('.h-section .readmore *').show();
63        $('.h-section .readmore .readmoreButton').hide();
64    });
65    $(".h-cpd").append('<div class="x">x</div>');
66    $('.h-cpd .x').click(function() {
67        $(this).parent().hide();
68    });
69    $(".header-block .j-kqbd span").prepend('<span class="live"></span>');
70});
71document.querySelectorAll('.custom-select').forEach(customSelect => {
72  const selected = customSelect.querySelector('.select-selected');
73  const items = customSelect.querySelector('.select-items');
74  if (!selected || !items) return; // bỏ qua nếu thiếu HTML
75
76  const options = items.querySelectorAll('.row_bxh_item');
77  const hiddenInput = customSelect.querySelector('input[type="hidden"]');
78
79  // Mở/đóng dropdown
80  selected.addEventListener('click', (e) => {
81    const isOpen = items.style.display === 'block';
82    items.style.display = isOpen ? 'none' : 'block';
83    selected.classList.toggle('open', !isOpen);
84  });
85
86  // Chọn option
87  options.forEach(option => {
88    option.addEventListener('click', function() {
89      selected.innerHTML = this.textContent + ' <i class="icon-angle-down"></i>'; // giữ icon
90      if (hiddenInput) hiddenInput.value = this.getAttribute('value');
91
92      options.forEach(o => o.classList.remove('active'));
93      this.classList.add('active');
94
95      items.style.display = 'none';
96      selected.classList.remove('open');
97    });
98  });
99});
100
101jQuery(document).ready(function() {
102  jQuery(".col-inner").each(function() {
103    const container = jQuery(this);
104    const content = container.find(".scroll-content");
105    const button = container.find(".button");
106
107    // Ẩn overflow ban đầu
108    content.css({
109      "max-height": "460px",
110      "overflow": "hidden",
111      "position": "relative",
112      "transition": "max-height 0.3s ease"
113    });
114
115    button.click(function(e) {
116      e.preventDefault();
117      if(content.hasClass("open")) {
118        // Thu gọn
119        content.removeClass("open");
120        content.css("max-height", "460px");
121        button.find("span").text("Đọc tiếp");
122      } else {
123        // Mở hết nội dung
124        content.addClass("open");
125        content.css("max-height", content.get(0).scrollHeight + "px");
126        button.find("span").text("Thu gọn");
127      }
128    });
129  });
130  jQuery(".gif-btn-banner").click(function(e) {
131    e.stopPropagation();
132    jQuery(".gif-banner").removeClass('hidden').addClass('visible');
133  });
134  
135  if (window.location.pathname === "/" || window.location.pathname === "/index.html") {
136    jQuery(".j-kqbd").addClass("kqbd-active");
137  }
138});

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.