PageSourceSearch

https://www.convert.com/wp-content/themes/olympus/js/experiments.js?ver=1790788470

js convert.com collected 2026-10-01 08:32:38 UTC 5,145 bytes, 136 lines download raw bytes

1/* eslint-disable operator-linebreak */
2const convertExperiments = (() => {
3  const publicMethods = {};
4  const elements = {
5    homepageLogos: document.getElementById('homepageLogos'),
6    subheadingHomepage: document.getElementById('subheadingHomepage'),
7    subheadingHomepageHeading: document.getElementById('subheadingHomepageHeading'),
8    g2Variations: document.getElementById('g2Variations'),
9    featuresHomepageVariations: document.getElementById('featuresHomepageVariations'),
10    featuresHomepageAccordion: document.getElementById('featuresHomepageAccordion'),
11    gdprCommitment: document.getElementById('gdprCommitment'),
12  };
13
14  //
15  // PRIVATE METHODS
16  //
17  const flipHomepageLogos = () => {
18    if (!elements.homepageLogos) {
19      return;
20    }
21
22    const allLogos = Array.from(elements.homepageLogos.children);
23
24    if (allLogos.length === 0) {
25      console.warn('No logos found');
26      return;
27    }
28
29    // Define the desired order (indices from original array)
30    // You can easily modify this array to change the order
31    const desiredOrder = [0, 1, 3, 2]; // Example: 4th, 1st, 9th, 2nd, 3rd logos
32
33    // Filter out indices that don't exist and take only what we need
34    const validLogos = desiredOrder
35      .filter((index) => index < allLogos.length) // Only use valid indices
36      .map((index) => allLogos[index]) // Get the actual elements
37      .slice(0, 5); // Limit to 5 logos
38
39    // Clear the container
40    elements.homepageLogos.innerHTML = '';
41
42    // Add the logos in the new order
43    validLogos.forEach((logo) => {
44      elements.homepageLogos.appendChild(logo);
45      if (logo.classList.contains('hidden')) {
46        logo.classList.remove('hidden');
47      }
48    });
49
50    // Stop the hero marquee: this variant shows the logos as a static grid
51    const marquee = elements.homepageLogos.closest('.features-marquee');
52    if (marquee) {
53      marquee.classList.remove('features-marquee');
54    }
55    elements.homepageLogos.className =
56      'grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 justify-items-center items-center gap-6';
57  };
58
59  const belowTheFoldMainTitle = () => {
60    if (!elements.subheadingHomepage || !elements.subheadingHomepageHeading) {
61      return;
62    }
63
64    elements.subheadingHomepage.textContent =
65      'We’ve Optimized 40,000+ sites over 15 Years!';
66    elements.subheadingHomepageHeading.textContent =
67      'A/B Testing, Full-Stack Experiments & Personalization for German Teams — Brought to You by an Industry Leader';
68  };
69
70  const g2Slider = () => {
71    if (elements.g2Variations) {
72      elements.g2Variations.classList.remove('hidden');
73    }
74  };
75
76  const featuresHomepageVariations = () => {
77    if (elements.featuresHomepageVariations) {
78      elements.featuresHomepageVariations.classList.remove('hidden');
79      elements.featuresHomepageAccordion.classList.add('hidden');
80    }
81  };
82
83  const showTTDSGAndBDSGCommitment = () => {
84    if (!elements.gdprCommitment) {
85      return;
86    }
87
88    const paragraphs = [
89      "We respect your privacy and comply with Germany's Telecommunications-Telemedia Data Protection Act (TTDSG) and the Federal Data Protection Act (BDSG) when processing web traffic data on our site.",
90      'We use Plausible Analytics, a privacy-focused tool hosted in the EU, which does not use cookies or collect personal data. All analytics are fully anonymized and serve only to improve our website content.',
91      'For personalization and performance tracking of our LinkedIn advertising campaigns, we use the LinkedIn Insight Tag. This technology is only activated with your explicit consent, in accordance with § 25 (1) TTDSG and Art. 6 (1)(a) GDPR. You can manage or withdraw your consent at any time via our cookie settings.',
92      'We do not collect or process any data from employees or job applicants through this website.',
93      'To learn more about how we handle your data and your rights under the BDSG and GDPR, please see our <a href="/privacy-notice/" target="_blank">Privacy Notice</a>.',
94    ];
95
96    const wrapper = document.createElement('div');
97    wrapper.setAttribute('id', 'ttdsgAndBDSGCommitment');
98    wrapper.classList.add('grid', 'section-main');
99
100    const grid = document.createElement('div');
101    grid.classList.add('grid-center__8');
102    wrapper.appendChild(grid);
103
104    const title = document.createElement('h2');
105    title.setAttribute('class', 'center');
106    title.textContent = 'Our TTDSG & BDSG Commitment';
107    grid.appendChild(title);
108
109    paragraphs.forEach((paragraph) => {
110      const content = document.createElement('p');
111      content.setAttribute('class', 'lead');
112      content.innerHTML = paragraph;
113      grid.appendChild(content);
114    });
115
116    // Insert the wrapper after the gdprCommitment element
117    elements.gdprCommitment.after(wrapper);
118  };
119
120  //
121  // PUBLIC METHODS
122  //
123  publicMethods.homepageExperiments = () => {
124    flipHomepageLogos();
125    belowTheFoldMainTitle();
126    g2Slider();
127    featuresHomepageVariations();
128    showTTDSGAndBDSGCommitment();
129  };
130
131  return publicMethods;
132})();
133
134if (typeof window !== 'undefined') {
135  window.convertExperiments = convertExperiments;
136}

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.