PageSourceSearch

https://www.cardiomenderweightloss.com/wp-content/themes/Levo/asse…?cache=0.59480100%201791516329&ver=1.0

js cardiomenderweightloss.com collected 2026-10-09 03:26:29 UTC 4,533 bytes, 190 lines download raw bytes

1jQuery(document).ready(function ($) {
2
3  // ===== HAMBURGER =====
4   $("#aeHamburger").on("click", function () {
5
6    // hamburger pe class
7    $(this).toggleClass("active");
8
9    // nav links open/close
10    $(".ae-nav-links").toggleClass("active");
11
12    // logo pe class add/remove
13    $(".ae-logo").toggleClass("active");
14
15  });
16
17  // ===== DROPDOWN =====
18  /* $(".ae-has-dropdown .dropdown-toggle").on("click", function (e) {
19    e.stopPropagation();
20
21    let dropdown = $(this).children(".ae-dropdown");
22
23    if (!dropdown.length) return;
24
25    if (dropdown.hasClass("active")) {
26      dropdown.removeClass("active");
27    } else {
28      $(".ae-dropdown").removeClass("active");
29      dropdown.addClass("active");
30    }
31  }); */
32  
33  
34  $(".ae-has-dropdown .dropdown-toggle").on("click", function (e) {
35	  e.preventDefault();
36	  e.stopPropagation();
37
38	  let parent = $(this).closest(".ae-has-dropdown");
39	  let dropdown = parent.children(".ae-dropdown");
40
41	  if (!dropdown.length) return;
42
43	  // Close only sibling dropdowns at the same level
44	  parent
45		.siblings(".ae-has-dropdown")
46		.find("> .ae-dropdown")
47		.removeClass("active");
48
49	  // Toggle current dropdown
50	  dropdown.toggleClass("active");
51	});
52	
53	
54	/* ── Swiper ── */
55	  var swiper = new Swiper('.cm-reviews-swiper', {
56		loop:       true,
57		speed:      600,
58		grabCursor: true,
59		slidesPerView: 1,
60		spaceBetween:  24,
61		autoplay: {
62		  delay: 4500,
63		  disableOnInteraction: false,
64		  pauseOnMouseEnter: true,
65		},
66		pagination: {
67		  el: '.swiper-pagination',
68		  clickable: true,
69		},
70		navigation: {
71		  prevEl: '.cm-reviews-prev',
72		  nextEl: '.cm-reviews-next',
73		},
74		breakpoints: {
75		  640:  { slidesPerView: 1 },
76		  768:  { slidesPerView: 2 },
77		  1100: { slidesPerView: 3 },
78		}
79	  });
80
81
82	$(document).on('click', '.cm-review-card .cm-read-more, .cm-review-card .cm-read-less', function () {
83    
84		var $btn = $(this);
85		var $card = $btn.closest('.cm-review-card');
86
87		var $excerpt = $card.find('.cm-excerpt');
88		var $full = $card.find('.cm-fullContent');
89
90		if ($btn.hasClass('cm-read-more')) {
91			// Show full content
92			$excerpt.hide();
93			$full.show();
94
95			$btn.text('Read Less')
96				.removeClass('cm-read-more')
97				.addClass('cm-read-less');
98
99		} else {
100			// Show excerpt
101			$full.hide();
102			$excerpt.show();
103
104			$btn.text('Read More')
105				.removeClass('cm-read-less')
106				.addClass('cm-read-more');
107		}
108	});
109	
110	
111	 // FAQ accordion
112    document.querySelectorAll('.faq-q').forEach(q => {
113      q.addEventListener('click', () => {
114        const item = q.parentElement;
115        const isOpen = item.classList.contains('open');
116        document.querySelectorAll('.faq-item').forEach(i => i.classList.remove('open'));
117        if (!isOpen) item.classList.add('open');
118      });
119    });
120	
121	
122	const reviewsSwiper = new Swiper('.reviews-swiper', {
123	  slidesPerView: 1,
124	  spaceBetween: 24,
125	  loop: true,
126	  autoplay: false,
127	  pagination: {
128		el: '.swiper-pagination',
129		clickable: true,
130	  },
131	  navigation: {
132		nextEl: '.swiper-button-next',
133		prevEl: '.swiper-button-prev',
134	  },
135	  breakpoints: {
136		640: {
137		  slidesPerView: 2,
138		},
139		1024: {
140		  slidesPerView: 3,
141		},
142	  },
143	});
144	
145	document.querySelectorAll('.review-text-wrap').forEach(wrap => {
146	  const text = wrap.querySelector('.review-text');
147	  const toggle = wrap.querySelector('.review-toggle');
148	  const wordLimit = 30;
149	  const fullText = text.textContent.trim();
150	  const words = fullText.split(/\s+/);
151
152	  if (words.length <= wordLimit) {
153		toggle.style.display = 'none';
154		return; // no truncation needed
155	  }
156	  
157	  
158	  
159
160	  const shortened = words.slice(0, wordLimit).join(' ') + '…';
161	  text.textContent = shortened;
162	  toggle.style.display = 'inline';
163
164	  toggle.addEventListener('click', () => {
165		const expanded = toggle.getAttribute('aria-expanded') === 'true';
166
167		text.textContent = expanded ? shortened : fullText;
168		toggle.setAttribute('aria-expanded', String(!expanded));
169		toggle.textContent = expanded ? 'Read more' : 'Read less';
170	  });
171	});
172	
173	
174
175    /* var els = document.querySelectorAll('.sr');
176    if (!('IntersectionObserver' in window)) {
177      els.forEach(function (el) { el.classList.add('visible'); });
178      return;
179    }
180    var io = new IntersectionObserver(function (entries) {
181      entries.forEach(function (entry) {
182        if (entry.isIntersecting) {
183          entry.target.classList.add('visible');
184          io.unobserve(entry.target);
185        }
186      });
187    }, { threshold: 0.12 });
188    els.forEach(function (el) { io.observe(el); }); */
189	
190});

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.