1function includeHTML(id, file) { 2 fetch(file) 3 .then(function(r) { return r.text(); }) 4 .then(function(html) { 5 var el = document.getElementById(id); 6 if (el) { 7 el.outerHTML = html; 8 if (id === 'navbar-placeholder') { 9 var hamburger = document.querySelector('.hamburger'); 10 var menu = document.querySelector('.mobile-menu'); 11 if (hamburger && menu) { 12 hamburger.addEventListener('click', function() { 13 menu.classList.toggle('open'); 14 hamburger.classList.toggle('active'); 15 }); 16 } 17 } 18 } 19 }); 20 } 21 includeHTML('navbar-placeholder', 'navbar.html'); 22 includeHTML('footer-placeholder', 'footer.html'); 23 24(function() { 25 var plans = { 26 monthly: { starter: 'â¹1,199', growth: 'â¹11,999', 27 sNote: 'Billed every month', 28 gNote: 'Billed every month', 29 save: 'Yearly is <strong>20%</strong> cheaper. Quarterly is <strong>10%</strong> cheaper.' }, 30 quarterly: { starter: 'â¹1,099', growth: 'â¹10,999', 31 sNote: 'â¹3,297 billed every 3 months', 32 gNote: 'â¹32,997 billed every 3 months', 33 save: '<strong>10%</strong> cheaper than paying monthly.' }, 34 annual: { starter: 'â¹999', growth: 'â¹9,999', 35 sNote: 'â¹11,988 billed once a year', 36 gNote: 'â¹1,19,988 billed once a year', 37 save: '<strong>20%</strong> cheaper than monthly.' } 38 }; 39 40 var buttons = document.querySelectorAll('#billing-toggle button'); 41 buttons.forEach(function(b) { 42 b.addEventListener('click', function() { 43 buttons.forEach(function(x) { x.classList.remove('active'); }); 44 b.classList.add('active'); 45 var p = plans[b.dataset.bill]; 46 document.querySelector('[data-price="starter"]').textContent = p.starter; 47 document.querySelector('[data-price="growth"]').textContent = p.growth; 48 document.querySelector('[data-note="starter"]').textContent = p.sNote; 49 document.querySelector('[data-note="growth"]').textContent = p.gNote; 50 document.getElementById('saveline').innerHTML = p.save; 51 }); 52 }); 53 54 var faqItems = document.querySelectorAll('.faq-list details'); 55 faqItems.forEach(function(item) { 56 item.addEventListener('toggle', function() { 57 if (!item.open) return; 58 faqItems.forEach(function(other) { 59 if (other !== item && other.open) other.removeAttribute('open'); 60 }); 61 }); 62 }); 63 })();
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.