PageSourceSearch

https://www.fisglobal.com/-/media/2ECA840C5867490B8FE65FC12699E292

js fisglobal.com collected 2026-09-27 20:53:55 UTC 7,986 bytes, 166 lines download raw bytes

1(function () {
2  const path = window.location.pathname;
3
4  const isExcluded = ['/products', '/products/product-catalog', '/products/product-map'].includes(path);
5  if (!isExcluded && path.startsWith('/products')) {
6    const markup = `
7      <section id="products-page-cta" class="fis-white-bg circle-image-left overview-component">
8        <div class="content-width">
9          <div class="l2featuresolutionrow">
10            <div class="l2featureimgleft col col-50">
11              <img src="-/media/73ABF9FBD253487A87B278D143B9A791" alt="Computer screen displaying the FIS product catalog page on fisglobal.com" />
12            </div>
13            <div class="l2featurecopyright col col-50">
14              <h2>Explore all the <span class="fis-text-teal">financial technology products</span> FIS has to&nbsp;offer</h2>
15              <a href="/products/product-catalog" class="btn-primary-green-on-white">View all products</a>
16            </div>
17          </div>
18        </div>
19      </section>
20      <style>
21        section#products-page-cta{max-width:1440px;margin-left:auto;margin-right:auto}
22        section#products-page-cta .l2featuresolutionrow{display:flex;align-items:center;padding-top:90rem;padding-bottom:90rem}
23        #products-page-cta .l2featureimgleft.col.col-50{position:relative;padding-right:90rem}
24        #products-page-cta .l2featureimgleft.col.col-50 img{max-width:100%}
25        section#products-page-cta .l2featurecopyright h2{font-weight:400;font-family:'Roobert Light',sans-serif;line-height:1.2;margin-bottom:25px;font-size:37rem}
26        section#products-page-cta .l2featurecopyright h2 span.fis-text-teal{font-family:'Roobert Bold',sans-serif;color:#05a399}
27        section#products-page-cta .l2featurecopyright a.btn-primary-green-on-white{font-weight:400;font-family:'Roobert Semibold',sans-serif}
28        section#products-page-cta .col-50{width:50%}
29        @media(min-width:1400px){
30          #products-page-cta .l2featureimgleft.col.col-50 img{max-width:436px}
31        }
32        @media(max-width:768px){
33          section#products-page-cta .col-50{width:100%}
34          #products-page-cta .l2featureimgleft.col.col-50{padding-right:0;margin-bottom:40rem}
35          section#products-page-cta .l2featuresolutionrow{flex-direction:column}
36          section#products-page-cta .l2featurecopyright h2{text-align:center}
37          section#products-page-cta .l2featurecopyright a.btn-primary-green-on-white{display:block;max-width:max-content;margin-left:auto;margin-right:auto}
38          #products-page-cta .l2featureimgleft.col.col-50 img{max-width:320px;margin-left:auto;margin-right:auto;display:block}
39        }
40      </style>`;
41
42
43        const aosMaxAttempts = 20; // Total duration = maxAttempts * intervalDelay
44        const intervalDelay = 300; // milliseconds
45        let aosAttempts = 0;
46      
47        const aosInterval = setInterval(() => {
48          aosAttempts++;
49      
50          const isAOSAvailable = typeof AOS !== 'undefined' && typeof AOS.refresh === 'function';
51          const slickPresent = document.querySelector('.slick-slide.slick-current') !== null;
52          
53      
54          if (isAOSAvailable && slickPresent) {
55            //console.log('Conditions met. Refreshing AOS...');
56            setTimeout(function(){
57              AOS.refresh();
58            },2000);
59            
60            clearInterval(aosInterval);
61          }
62      
63          if (attempts >= aosMaxAttempts) {
64            console.warn('AOS refresh check timed out.');
65            clearInterval(aosInterval);
66          }
67        }, intervalDelay);
68    
69      
70    
71    
72      const maxAttempts = 25;
73    let attempts = 0;
74
75
76
77      const interval = setInterval(() => {
78      const primaryTarget = document.querySelector('.component.cta-listing');
79      const fallbackSection = document.querySelector('section.bottom-cta-boxes.overview-component');
80      const fallbackTarget = fallbackSection ? fallbackSection.closest('.component.htmp-spot-advance') : null;
81      const iconCardListing = document.querySelector('.IconCardListing');
82      
83      if (iconCardListing){
84        console.log('Icon card listing found');
85        document.querySelectorAll('.IconCardListing').forEach(card => {
86          card.querySelectorAll('.module-title-link').forEach(link => {
87              if (link.href.includes('/marketplace')) {
88                  // Update the href
89                  link.href = link.href.replace('/marketplace', '/products/product-catalog');
90        
91                  // Update the inner HTML
92                  link.innerHTML = `
93                      <span class="margin-right-5 fis-text-green display-block"></span>
94                      Browse all products
95                      <svg class="fis-icon fis-icon-arrow fis--green">
96                          <title></title>
97                          <use xlink:href="#fis-icon-arrow"></use>
98                      </svg>
99                  `;
100              }
101          });
102        });
103      } 
104      
105
106      if (primaryTarget || fallbackTarget) {
107        const target = primaryTarget || fallbackTarget;
108        const searchString = window.location.search;
109        if (!document.getElementById('products-overview-cta')){
110          if (searchString.includes('loc=specs')){
111              target.insertAdjacentHTML('beforebegin', markup);
112              const newCTAElement = document.getElementById('products-page-cta');
113              if(newCTAElement){
114                  newCTAElement.setAttribute('style','display:none');
115                  newCTAElement.classList.add('direct-link');
116              }
117          } else {
118              target.insertAdjacentHTML('beforebegin', markup);
119          }
120         
121        }
122        
123
124        // Modify "Go to marketplace" link if it exists
125        if (primaryTarget) {
126          const links = primaryTarget.querySelectorAll('.cta-box-link a');
127          links.forEach(link => {
128            if (link.textContent.trim() === 'Go to marketplace' || link.textContent.trim() === 'Go to Marketplace' || link.textContent.trim() === 'See all marketplace') {
129              link.textContent = 'View all products';
130              link.setAttribute('href', '/products/product-catalog');
131            }
132          });
133        }
134
135        clearInterval(interval);
136      } else if (++attempts >= maxAttempts) {
137        clearInterval(interval);
138        //console.warn('Target element for markup insertion not found after waiting.');
139      }
140    }, 200);
141  }
142  
143  //ADD THE PRODUCT MAP LINK
144  if (path.startsWith('/products')) {
145  const footerMarkup = `<li><a href="/products/product-map" class="" target=""><span class="fis-text-picton-blue"> </span>Product Map</a></li>
146  <style>.fis-footer-wrapper .fis-copyright .ancillary-nav ul{display:flex;flex-wrap:wrap;justify-content:center}.fis-footer-wrapper .fis-copyright .ancillary-nav ul li{margin-right:10px;margin-bottom:8px}.fis-footer-wrapper .fis-copyright .ancillary-nav ul li:last-child{margin-right:0;}@media(min-width:992px){.fis-footer-wrapper .fis-copyright .ancillary-nav ul li:nth-of-type(7){margin-right: 10px;}}</style>`;
147  const attemptLimit = 25;
148  let attemptAmt = 0;
149  const intervalCheck = setInterval(() => {
150      const targetElement = document.querySelector('.ancillary-nav ul'); // moved inside
151      if (targetElement) {
152          //console.log('Found element and appending to footer');
153          clearInterval(intervalCheck); // also fix: should be clearInterval, not clear
154          targetElement.insertAdjacentHTML('beforeend', footerMarkup);
155      } else {
156          attemptAmt += 1;
157          //console.log('Waiting for .ancillary-nav. Attempt #: ' + attemptAmt);
158          if (attemptAmt >= attemptLimit){
159              clearInterval(intervalCheck);
160              //console.log('Interval function timed out');
161          }
162      }
163  }, 200);
164}
165
166})();

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.