It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://www.acfcs.org/events/event_rss.asp?cat=16122

  1. <!DOCTYPE html>
  2. <html class="no-js" lang="en">
  3.    <head>
  4.        <title>ACFCS - Not Found</title>
  5.        <link rel="dns-prefetch preconnect" href="https://cdn11.bigcommerce.com/s-dzatfnb4b0" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.googleapis.com/" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.gstatic.com/" crossorigin>
  6.        <meta name='platform' content='bigcommerce.stencil' />
  7.        
  8.        
  9.  
  10.        <link href="https://cdn11.bigcommerce.com/s-dzatfnb4b0/product_images/cfcs_favicon.png?t&#x3D;1668171363" rel="shortcut icon">
  11.        <meta name="viewport" content="width=device-width, initial-scale=1">
  12.  
  13.        <script>
  14.            document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
  15.        </script>
  16.  
  17.        <script>
  18.    function browserSupportsAllFeatures() {
  19.        return window.Promise
  20.            && window.fetch
  21.            && window.URL
  22.            && window.URLSearchParams
  23.            && window.WeakMap
  24.            // object-fit support
  25.            && ('objectFit' in document.documentElement.style);
  26.    }
  27.  
  28.    function loadScript(src) {
  29.        var js = document.createElement('script');
  30.        js.src = src;
  31.        js.onerror = function () {
  32.            console.error('Failed to load polyfill script ' + src);
  33.        };
  34.        document.head.appendChild(js);
  35.    }
  36.  
  37.    if (!browserSupportsAllFeatures()) {
  38.        loadScript('https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/dist/theme-bundle.polyfills.js');
  39.    }
  40. </script>
  41.  
  42.        <script>
  43.            window.lazySizesConfig = window.lazySizesConfig || {};
  44.            window.lazySizesConfig.loadMode = 1;
  45.        </script>
  46.        <script async src="https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/dist/theme-bundle.head_async.js"></script>
  47.  
  48.        <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
  49.  
  50.        <script>
  51.            WebFont.load({
  52.                custom: {
  53.                    families: ['Karla', 'Roboto', 'Source Sans Pro']
  54.                },
  55.                classes: false
  56.            });
  57.        </script>
  58.  
  59.        <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700,500&display=swap" rel="stylesheet">
  60.        <link data-stencil-stylesheet href="https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/css/theme-4775ad70-ce85-013c-16cc-0ec3e8a06c8d.css" rel="stylesheet">
  61.  
  62.        
  63. <script type="text/javascript">
  64. (function () {
  65.    var xmlHttp = new XMLHttpRequest();
  66.  
  67.    xmlHttp.open('POST', 'https://bes.gcp.data.bigcommerce.com/nobot');
  68.    xmlHttp.setRequestHeader('Content-Type', 'application/json');
  69.    xmlHttp.send('{"store_id":"1001167372","timezone_offset":"-5","timestamp":"2024-04-23T06:06:10.24322600Z","visit_id":"a60c8639-ea66-46b4-aeb8-26128cc1fd4c","channel_id":1}');
  70. })();
  71. </script>
  72. <script type="text/javascript">
  73. var BCData = {"csrf_token":"7b13cc58fe000d2b5f967bc644ad8b27e98ef9fd25467622675c423d7b3406fa"};
  74. </script>
  75. <!-- Global site tag (gtag.js) - Google Analytics -->
  76. <script async src="https://www.googletagmanager.com/gtag/js?id=G-SLEB30Q8WW"></script>
  77. <script>
  78.  window.dataLayer = window.dataLayer || [];
  79.  function gtag(){dataLayer.push(arguments);}
  80.  gtag('js', new Date());
  81.  
  82.  gtag('config', 'G-SLEB30Q8WW');
  83.  gtag('config', 'UA-5508191-18');
  84. </script>
  85. <!-- Google Tag Manager -->
  86. <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  87. new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  88. j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  89. 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  90. })(window,document,'script','dataLayer','GTM-WL3MPJ');</script>
  91. <!-- End Google Tag Manager --><script type="text/javascript">
  92.    (function(c,l,a,r,i,t,y){
  93.        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
  94.        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
  95.        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
  96.    })(window, document, "clarity", "script", "eki9emifyn");
  97. </script><script type="application/ld+json">
  98. {
  99.  "@context": "https://schema.org",
  100.  "@type": "Organization",
  101.  "@id": "https://www.acfcs.org/#org",
  102.  "name": "Association of Certified Financial Crime Specialists",
  103.  "url": "https://www.acfcs.org/",
  104.  "logo": "https://cdn11.bigcommerce.com/s-dzatfnb4b0/images/stencil/250x86/acfcs-logo-crop_1668019114__20203.original.png",
  105.  "description": "ACFCS is a leading association and provider of practical tools and knowledge to help professionals improve results in financial crime detection and prevention.",
  106.  "disambiguatingDescription": "As the world’s most elite crime detection and prevention certification, ACFCS addresses the full spectrum of financial crime empowering specialists all over the globe with resources that improve results.",
  107.  "mainEntityOfPage": "https://en.wikipedia.org/wiki/Financial_crime",
  108.  "alternateName": "Financial Crimes Specialist Training and Certification",
  109.  "sameAs": [
  110.    "https://www.linkedin.com/company/association-of-certified-financial-crime-specialists",
  111.    "https://www.facebook.com/ACFCS.org/",
  112.    "https://twitter.com/acfcsonline"
  113.  ],
  114.  "contactPoint": [
  115.    {
  116.      "@type": "ContactPoint",
  117.      "telephone": "786-530-8231",
  118.      "contactType": "customer service",
  119.      "areaServed": "US",
  120.      "availableLanguage": "en"
  121.    }
  122.  ],
  123.      "address": {
  124.    "@type": "PostalAddress",
  125. "postalCode": "30022",
  126. "addressRegion": "Georgia",
  127. "addressCountry": "United States",
  128. "streetAddress": "3625 Brookside Pkwy., Suite 450",
  129. "addressLocality": "Alpharetta"
  130. },
  131.        "areaServed":
  132.        [
  133.        "United States of America",
  134.        "https://en.wikipedia.org/wiki/Alabama",
  135.        "https://en.wikipedia.org/wiki/Alaska",
  136.        "https://en.wikipedia.org/wiki/Arizona",  
  137. "https://en.wikipedia.org/wiki/Arkansas",
  138.        "https://en.wikipedia.org/wiki/California",
  139.        "https://en.wikipedia.org/wiki/Colorado",
  140. "https://en.wikipedia.org/wiki/Connecticut",
  141.        "https://en.wikipedia.org/wiki/Delaware",
  142.        "https://en.wikipedia.org/wiki/Florida",
  143. "https://en.wikipedia.org/wiki/Georgia",
  144.        "https://en.wikipedia.org/wiki/Hawaii",
  145.        "https://en.wikipedia.org/wiki/Idaho",
  146. "https://en.wikipedia.org/wiki/Illinois",
  147.        "https://en.wikipedia.org/wiki/Indiana",
  148.        "https://en.wikipedia.org/wiki/Iowa",
  149. "https://en.wikipedia.org/wiki/Kansas",
  150.        "https://en.wikipedia.org/wiki/Kentucky",
  151.        "https://en.wikipedia.org/wiki/Louisiana",
  152. "https://en.wikipedia.org/wiki/Maine",
  153.        "https://en.wikipedia.org/wiki/Maryland",
  154.        "https://en.wikipedia.org/wiki/Massachusetts",
  155. "https://en.wikipedia.org/wiki/Michigan",
  156.        "https://en.wikipedia.org/wiki/Minnesota",
  157.        "https://en.wikipedia.org/wiki/Mississippi",
  158. "https://en.wikipedia.org/wiki/Missouri",
  159.        "https://en.wikipedia.org/wiki/Montana",
  160.        "https://en.wikipedia.org/wiki/Nebraska",        
  161. "https://en.wikipedia.org/wiki/Nevada",
  162.        "https://en.wikipedia.org/wiki/New_Hampshire",
  163.        "https://en.wikipedia.org/wiki/New_Jersey",        
  164. "https://en.wikipedia.org/wiki/New_Mexico",
  165.        "https://en.wikipedia.org/wiki/New_York",
  166.        "https://en.wikipedia.org/wiki/North_Carolina",
  167. "https://en.wikipedia.org/wiki/North_Dakota",        
  168. "https://en.wikipedia.org/wiki/Ohio",
  169.        "https://en.wikipedia.org/wiki/Oklahoma",
  170.        "https://en.wikipedia.org/wiki/Oregon",        
  171. "https://en.wikipedia.org/wiki/Pennsylvania",
  172.        "https://en.wikipedia.org/wiki/Rhode_Island",
  173.        "https://en.wikipedia.org/wiki/South_Carolina",
  174. "https://en.wikipedia.org/wiki/South_Dakota",        
  175. "https://en.wikipedia.org/wiki/Tennessee",
  176.        "https://en.wikipedia.org/wiki/Texas",
  177.        "https://en.wikipedia.org/wiki/Utah",        
  178. "https://en.wikipedia.org/wiki/Vermont",
  179.        "https://en.wikipedia.org/wiki/Virginia",
  180.        "https://en.wikipedia.org/wiki/Washington",
  181. "https://en.wikipedia.org/wiki/West_Virginia",        
  182. "https://en.wikipedia.org/wiki/Wisconsin",
  183.        "https://en.wikipedia.org/wiki/Wyoming"
  184.        ],
  185.  "hasOfferCatalog": [
  186.    {
  187.      "@type": "OfferCatalog",
  188.      "name": "Services",
  189.      "itemListElement": [
  190.        {
  191.          "@type": "Offer",
  192.          "itemOffered": {
  193.            "@type": "Service",
  194.            "name": "Crypto Compliance Specialization"
  195.          }
  196.        },
  197.        {
  198.          "@type": "Offer",
  199.          "itemOffered": {
  200.            "@type": "Service",
  201.            "name": "AML 360 Certificate Program"
  202.          }
  203.        }
  204.      ]
  205.    }
  206.  ],
  207.        "keywords":
  208. [
  209. "financial crime detection certification",
  210. "financial crime specialist",
  211. "financial crime prevention",
  212. "financial crime prevention certification",
  213. "certified financial crime specialist (CFCS) examination",
  214. "certified financial crimes specialist",
  215. "anti-money laundering",
  216. "cyber security",
  217. "fraud",
  218. "tax evasion",
  219. "terrorist financing",
  220. "asset recovery"
  221. ],
  222.        "founder": {
  223.        "@type": "Person",
  224.        "givenName": "Joseph",
  225.        "familyName":"Yerant"
  226.        },
  227.        "foundingLocation": {
  228.        "@type": "Place",
  229.        "address": "Miami, FL"
  230.        },
  231.        "foundingDate": "2011",
  232.        "knowsAbout": [
  233.        "https://en.wikipedia.org/wiki/Financial_crime",
  234.        "https://en.wikipedia.org/wiki/Cheque_fraud",
  235.        "https://en.wikipedia.org/wiki/Credit_card_fraud",
  236.        "https://en.wikipedia.org/wiki/Mortgage_fraud",
  237.        "https://en.wikipedia.org/wiki/Medical_fraud",
  238.        "https://en.wikipedia.org/wiki/Securities_fraud",
  239.        "https://en.wikipedia.org/wiki/Insider_trading",
  240.        "https://en.wikipedia.org/wiki/Bank_fraud",
  241.        "https://en.wikipedia.org/wiki/Insurance_fraud",
  242.        "https://en.wikipedia.org/wiki/Market_manipulation",
  243.        "https://en.wikipedia.org/wiki/Health_care_fraud",
  244.        "https://en.wikipedia.org/wiki/Confidence_trick",
  245.        "https://en.wikipedia.org/wiki/Tax_evasion",
  246.        "https://en.wikipedia.org/wiki/Embezzlement",
  247.        "https://en.wikipedia.org/wiki/Identity_theft",
  248.        "https://en.wikipedia.org/wiki/Money_laundering",
  249.        "https://en.wikipedia.org/wiki/Forgery",
  250.        "https://en.wikipedia.org/wiki/Counterfeit",
  251.    "https://en.wikipedia.org/wiki/Counterfeit_money",
  252.    "https://en.wikipedia.org/wiki/Computer_crime",
  253.        "https://en.wikipedia.org/wiki/Foreign_Corrupt_Practices_Act",
  254. "https://en.wikipedia.org/wiki/Computer_security",
  255. "https://en.wikipedia.org/wiki/Tax_evasion",
  256. "https://en.wikipedia.org/wiki/Asset_recovery"
  257.        ]
  258. }
  259. </script><script>
  260. //pull store slug out of hostname
  261. const hostnameParts = window.location.hostname.split('.');
  262. const filteredArray = hostnameParts.filter(function (e) { return e !== 'mybigcommerce' })
  263. const store = filteredArray.length > 1 ? filteredArray[filteredArray.length - 2] : filteredArray[0];
  264.  
  265. (function (apiKey) {
  266. (function (p, e, n, d, o) {
  267. var v, w, x, y, z; o = p[d] = p[d] || {}; o._q = o._q || [];
  268. v = ['initialize', 'identify', 'updateOptions', 'pageLoad', 'track']; for (w = 0, x = v.length; w < x; ++w)(function (m) {
  269. o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); };
  270. })(v[w]);
  271. y = e.createElement(n); y.async = !0; y.src = 'https://cdn.pendo.io/agent/static/' + apiKey + '/pendo.js';
  272. z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z);
  273. })(window, document, 'script', 'pendo');
  274.  
  275. // This function creates anonymous visitor IDs in Pendo unless you change the visitor id field to use your app's values
  276. // This function uses the placeholder 'ACCOUNT-UNIQUE-ID' value for account ID unless you change the account id field to use your app's values
  277. // Call this function after users are authenticated in your app and your visitor and account id values are available
  278. // Please use Strings, Numbers, or Bools for value types.
  279. pendo.initialize({
  280. visitor: {
  281. id: 'VISITOR-UNIQUE-ID'   // <--- we will use the default (no visitor id)
  282. },
  283. account: {
  284. id: store // <--- dynamic, change this to store name
  285. }
  286. });
  287. })('99c55fc1-3a2c-49d1-6069-0569bd2081b2'); // <--- this is the public key for ecommerce
  288. </script><!-- OneTrust Cookies Consent Notice start for acfcs.org -->
  289.  
  290. <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"  type="text/javascript" charset="UTF-8" data-domain-script="05f95402-481c-44a0-b4b7-6332fed85ee0" ></script>
  291. <script type="text/javascript">
  292. function OptanonWrapper() { }
  293. </script>
  294. <!-- OneTrust Cookies Consent Notice end for acfcs.org --><script>
  295.    //adding banners with JS so all of this can be added to the BigCommerce script manager
  296.  
  297. var bannerStyles = `[data-sub-layout="2a3a8063-9265-43e3-b349-9814a0713419"] {
  298. padding: 0;
  299. }
  300.  
  301. [data-sub-layout] {
  302. padding: 0;
  303. }
  304.  
  305. [data-content-region="header_bottom--global"] {
  306. background-color: #F5F6F7;
  307. padding: 0 !important;
  308. position: relative;
  309. }
  310.  
  311. .cyber-content {
  312. z-index: 1;
  313. background-color: #F5F6F7;
  314. padding: 25px 0;
  315. text-align: center;
  316. width: 100%;
  317. position: relative;
  318. display: none;
  319. }
  320.  
  321. .cyber-content-leaf {
  322. position: absolute;
  323. left: -175px;
  324. top: 50px !important;
  325. z-index: 2;
  326. width: 45%;
  327. }
  328.  
  329. .cyber-content-leaf img {
  330. max-height: 200px;
  331. width: 200px;
  332. }
  333.  
  334. .cyber-content__header {
  335. font-family: 'Lora', sans-serif;
  336. font-weight: 700;
  337. font-size: 28px;
  338. margin: 0;
  339. color: #12233f;
  340. line-height: 1.5em;
  341. text-transform: uppercase;
  342. }
  343.  
  344. .cyber-content__subheader {
  345. font-size: 18px;
  346. font-weight: 400;
  347. font-family: 'Montserrat', sans-serif !important;
  348. line-height: 1.5em;
  349. color: #12233f;
  350. margin: 0;
  351. }
  352.  
  353. .cyber-content__disclaimer {
  354. width: auto;
  355. max-width: 710px;
  356. margin: 1em auto 0;
  357. font-size: 14px;
  358. color: #546277;
  359. }
  360.  
  361. .cyber-content-action-list {
  362. display: flex;
  363. flex-wrap: wrap;
  364. justify-content: center;
  365. align-items: center;
  366. margin: 0;
  367. }
  368.  
  369. .action-list__button {
  370. color: #fff;
  371. display: block;
  372. background-color: #cc3b33;
  373. width: 85%;
  374. padding: 20px;
  375. margin: 15px auto;
  376. }
  377.  
  378. .action-list__button:hover {
  379. background-color: #620D1C;
  380. color: #fff;
  381. }
  382.  
  383. @media(min-width: 768px) {
  384. .cyber-content__header {
  385. font-size: 34px;
  386. }
  387.  
  388. .cyber-content__subheader {
  389. font-size: 24px;
  390. }
  391.  
  392. .cyber-content-action-list {
  393. flex-wrap: wrap;
  394. }
  395.  
  396. .action-list__button {
  397. width: 55%;
  398. }
  399. }
  400.  
  401. @media(min-width: 992px) {
  402. [data-content-region="header_bottom--global"] {
  403. padding: 0px;
  404. }
  405.  
  406. .cyber-content-leaf {
  407. display: block;
  408. }
  409.  
  410. .cyber-content__header {
  411. font-size: 40px;
  412. }
  413.  
  414. .cyber-content__subheader {
  415. font-size: 30px;
  416. }
  417.  
  418. .cyber-content-action-list {
  419. flex-wrap: nowrap;
  420. }
  421.  
  422. .action-list__button {
  423. width: 30%;
  424. margin: 15px;
  425. }
  426. }`;
  427.  
  428. var bfBanner = `<div class="cyber-content" id="black-friday">
  429. <div class="cyber-content-leaf leafy-image">
  430. <img src="https://i.shgcdn.com/de4ad47e-a205-4b62-bee7-739549149bbc/-/preview/300x300/" alt="leafy Image">
  431. </div>
  432. <h1 class="cyber-content__header">
  433. BLACK FRIDAY
  434. </h1>
  435. <h2 class="cyber-content__subheader">
  436. Site-Wide Sale!
  437. </h2>
  438. <h3 class="cyber-content__header">
  439. Save 20%
  440. </h3>
  441. <p class="cyber-content__disclaimer">
  442. *This special offer cannot be combined with any other promotion, discount, or payment plans. Offer expires Friday November 24, 2023 @ 11:59PM PST. Savings will automatically be applied to your cart.
  443. </p>
  444. </div>`;
  445.  
  446. var cmBanner = `<div class="cyber-content" id="cyber-monday">
  447. <div class="cyber-content-leaf leafy-image">
  448. <img src="https://i.shgcdn.com/de4ad47e-a205-4b62-bee7-739549149bbc/-/preview/300x300/" alt="leafy Image">
  449. </div>
  450. <h1 class="cyber-content__header">
  451. CYBER MONDAY SALE - THIS WEEK ONLY
  452. </h1>
  453. <h2 class="cyber-content__subheader">
  454. Site-Wide Sale!
  455. </h2>
  456. <h3 class="cyber-content__header">
  457. Save 20%
  458. </h3>
  459. <p class="cyber-content__disclaimer">
  460. *This special offer cannot be combined with any other promotion, discount, or payment plans. Offer expires Friday December 1, 2023 @ 11:59PM PST. Savings will automatically be applied to your cart.
  461. </p>
  462. </div>`;
  463.  
  464.    //add banner CSS to document head
  465. var styleTag = document.createElement("style");
  466. styleTag.innerText = bannerStyles;
  467. document.head.appendChild(styleTag);
  468.  
  469. //using vanilla document ready listener to ensure jQuery is loaded
  470. document.addEventListener('DOMContentLoaded', function () {
  471. (function($){ //ensure $ = jQuery inside the function scope
  472. //add banners to the DOM once it is ready, banners are display:none to start
  473.            var siteHeader = $('header.header');
  474. siteHeader.after($(bfBanner), $(cmBanner));
  475.            //Time in EST, using -5 offset for standard time (12AM start, 3AM end)
  476. displayBanner('2023-11-22T00:00:00-05:00', '2023-11-25T03:00:00-05:00', '#black-friday');
  477. displayBanner('2023-11-27T00:00:00-05:00', '2023-12-02T03:00:00-05:00', "#cyber-monday");
  478. })(jQuery);
  479. });
  480.  
  481. //checks if it is time to show/hide the banners
  482. function displayBanner(startDate, endDate, selector) {
  483. startDate = new Date(startDate).getTime();
  484. endDate = new Date(endDate).getTime();
  485.  
  486. //if element is found on page
  487. if (document.querySelector(selector) !== null) {
  488. //show if within the timeframe
  489. if (Date.now() >= startDate && Date.now() < endDate) {
  490. document.querySelector(selector).style.display = "block";
  491. } else {
  492. document.querySelector(selector).style.display = "none";
  493. }
  494.  
  495. //in case the user does not refresh the page, set the banner to hide once endDate is reached
  496. if (Date.now() < endDate) {
  497. var nextIteration = (Date.now() < startDate ? startDate : endDate) - Date.now();
  498. //smaller than max int allowed
  499. if(nextIteration < Math.pow(2,30)){
  500. setTimeout(() => {
  501. displayBanner(startDate, endDate, selector);
  502. }, nextIteration);
  503. }
  504. }
  505. }
  506. }
  507. </script>
  508.    </head>
  509.    <body>
  510.        <svg data-src="https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/dist/icon-sprite.svg" class="icons-svg-sprite"></svg>
  511.  
  512.        <a href="#main-content" class="skip-to-main-link">Skip to main content</a>
  513. <header class="header" role="banner">
  514.    <div class="header--top">
  515.        <div class="header--content">
  516.                <div class="header-logo">
  517.                    <a href="https://www.acfcs.org/" class="header-logo__link" data-header-logo-link>
  518.            <div class="header-logo-image-container">
  519.                <img class="header-logo-image" height="48" width="260" src="https://cdn11.bigcommerce.com/s-dzatfnb4b0/images/stencil/250x86/acfcs-logo-crop_1668019114__20203.original.png" alt="ACFCS" title="ACFCS">
  520.            </div>
  521. </a>
  522.                </div>
  523.            <div class="header--section">
  524.                <div class="header--quick-search">
  525.                    <form class="form" onsubmit="return false" data-url="/search.php" data-quick-search-form>
  526.    <fieldset class="form-fieldset">
  527.        <div class="form-field">
  528.            <label class="is-srOnly" for="nav-quick-search">Search</label>
  529.            <input class="form-input"
  530.                    data-search-quick
  531.                    name="nav-quick-search"
  532.                    id="nav-quick-search"
  533.                    data-error-message="Search field cannot be empty."
  534.                    placeholder="SEARCH"
  535.                    autocomplete="off"
  536.            >
  537.            <span class="icon">
  538.                <svg>
  539.                    <use xlink:href="#icon-search"></use>
  540.                </svg>
  541.            </span>
  542.        </div>
  543.    </fieldset>
  544. </form>
  545. <section class="quickSearchResults" data-bind="html: results"></section>
  546. <p role="status"
  547.    aria-live="polite"
  548.    class="aria-description--hidden"
  549.    data-search-aria-message-predefined-text="product results for"
  550. ></p>
  551.                </div>
  552.                <nav class="navUser" aria-label="User Navigation">
  553.    
  554.    <ul class="navUser-section navUser-section--alt">
  555.        <li class="navUser-item navUser-item--account">
  556.            <a class="navUser-action" target="_blank" href="https://learn.acfcs.org/learn"
  557.                aria-label="Log In">
  558.                <span class="navUser-action__text">
  559.                    Member Log In
  560.                </span>
  561.                </a>
  562.            </li>
  563.            <li class="navUser-item navUser-item--account">
  564.                <a class="navUser-action"
  565.                    href="/login.php"
  566.                    aria-label="Log In"
  567.                >
  568.                    <span class="u-hiddenVisually">Log In</span>
  569.                    <span class="icon" aria-hidden="false">
  570.                        <svg>
  571.                            <use xlink:href="#icon-enter"></use>
  572.                        </svg>
  573.                    </span>
  574.                </a>
  575.            </li>
  576.        <li class="navUser-item navUser-item--account">
  577.            <a class="navUser-action" href="/account.php" aria-label="Account">
  578.                <span class="u-hiddenVisually">Account</span>
  579.                <span class="icon" aria-hidden="false">
  580.                    <svg>
  581.                        <use xlink:href="#icon-account"></use>
  582.                    </svg>
  583.                </span>
  584.            </a>
  585.        </li>
  586.        <li class="navUser-item navUser-item--cart">
  587.            <a class="navUser-action" data-cart-preview data-dropdown="cart-preview-dropdown" data-options="align:right"
  588.                href="/cart.php" aria-label="Cart with 0 items">
  589.                <span class="navUser-item-cartLabel u-hiddenVisually">Cart with</span>
  590.                <span class="icon" aria-hidden="false">
  591.                    <svg>
  592.                        <use xlink:href="#icon-cart-outline"></use>
  593.                    </svg>
  594.                </span>
  595.                <span class="countPill cart-quantity"></span>
  596.                <span class="navUser-item-cartLabel u-hiddenVisually">items</span>
  597.            </a>
  598.  
  599.            <div class="dropdown-menu" id="cart-preview-dropdown" data-dropdown-content aria-hidden="true"></div>
  600.        </li>
  601.    </ul>
  602. </nav>                <a href="#" class="mobileMenu-toggle" data-mobile-menu-toggle="menu">
  603.                    <span class="mobileMenu-toggleIcon">Toggle menu</span>
  604.                </a>
  605.            </div>
  606.        </div>
  607.    </div>
  608.    <div class="container">
  609.        <div class="header--flex">
  610.                <div class="header-logo header-logo--left">
  611.                    <a href="https://www.acfcs.org/" class="header-logo__link" data-header-logo-link>
  612.            <div class="header-logo-image-container">
  613.                <img class="header-logo-image" height="48" width="260" src="https://cdn11.bigcommerce.com/s-dzatfnb4b0/images/stencil/250x86/acfcs-logo-crop_1668019114__20203.original.png" alt="ACFCS" title="ACFCS">
  614.            </div>
  615. </a>
  616.                </div>
  617.            <div class="navPages-container" id="menu" data-menu>
  618.                <nav class="navPages" aria-label="Site Navigation">
  619.    <ul class="navPages-list">
  620.        <li class="navPages-item navPages-item-page">
  621.            <a class="navPages-action has-subMenu" href="/certification-overview"
  622.                data-collapsible="navPages-certification">
  623.                Certification
  624.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  625.                    <svg>
  626.                        <use xlink:href="#icon-chevron-down" />
  627.                    </svg>
  628.                </span>
  629.            </a>
  630.            <div class="navPage-subMenu" id="navPages-certification" aria-hidden="true" tabindex="-1">
  631.                <ul class="navPage-subMenu-list">
  632.                    <li class="navPage-subMenu-item">
  633.                        <a
  634.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/certification-overview"
  635.                            aria-label="Certification Overview">
  636.                            Overview
  637.                        </a>
  638.                    </li>
  639.                    <li class="navPage-subMenu-item">
  640.                        <a
  641.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/certification-eligibility"
  642.                            aria-label="Eligibility">
  643.                            Eligibility
  644.                                                    </a>
  645.                    </li>
  646.                    <li class="navPage-subMenu-item">
  647.                        <a
  648.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/exam-preparation"
  649.                            aria-label="Exam Preparation">
  650.                            Exam Preparation
  651.                                                    </a>
  652.                    </li>
  653.                    <li class="navPage-subMenu-item">
  654.                        <a
  655.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/the-exam"
  656.                            aria-label="The Exam">
  657.                            The Exam
  658.                                                    </a>
  659.                    </li>
  660.                    <li class="navPage-subMenu-item">
  661.                        <a
  662.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/recertification"
  663.                            aria-label="Recertification">
  664.                            Recertification
  665.                                                    </a>
  666.                    </li>
  667.                </ul>
  668.            </div>
  669.        </li>
  670.        <li class="navPages-item navPages-item-page">
  671.            <a class="navPages-action has-subMenu" href="/membership-overview"
  672.                data-collapsible="navPages-membership">
  673.                Membership
  674.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  675.                    <svg>
  676.                        <use xlink:href="#icon-chevron-down" />
  677.                    </svg>
  678.                </span>
  679.            </a>
  680.            <div class="navPage-subMenu" id="navPages-membership" aria-hidden="true" tabindex="-1">
  681.                <ul class="navPage-subMenu-list">
  682.                    <li class="navPage-subMenu-item">
  683.                        <a
  684.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/membership-overview"
  685.                            aria-label="Membership Overview">
  686.                            Overview
  687.                        </a>
  688.                    </li>
  689.                    <li class="navPage-subMenu-item">
  690.                        <a
  691.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/enterprise-solutions"
  692.                            aria-label="Enterprise Solutions">
  693.                            Enterprise Solutions
  694.                                                    </a>
  695.                    </li>
  696.                    <li class="navPage-subMenu-item">
  697.                        <a
  698.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/membership-spotlight"
  699.                            aria-label="Membership Spotlight">
  700.                            Membership Spotlight
  701.                                                    </a>
  702.                    </li>
  703.                    <li class="navPage-subMenu-item">
  704.                        <a target="_blank"
  705.                            class="navPage-subMenu-action navPages-action"  href="https://careers.acfcs.org"
  706.                            aria-label="Career Center">
  707.                            Career Center
  708.                                                    </a>
  709.                    </li>
  710.                    <li class="navPage-subMenu-item">
  711.                        <a
  712.                            class="navPage-subMenu-action navPages-action"
  713.                            href="/chapters"
  714.                            aria-label="Chapters Redirect">
  715.                            Chapters
  716.                        </a>
  717.                    </li>
  718.                </ul>
  719.            </div>
  720.        </li>
  721.        <li class="navPages-item navPages-item-page">
  722.            <a class="navPages-action has-subMenu" href="/training-overview"
  723.                data-collapsible="navPages-training">
  724.                Training
  725.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  726.                    <svg>
  727.                        <use xlink:href="#icon-chevron-down" />
  728.                    </svg>
  729.                </span>
  730.            </a>
  731.            <div class="navPage-subMenu" id="navPages-training" aria-hidden="true" tabindex="-1">
  732.                <ul class="navPage-subMenu-list">
  733.                    <li class="navPage-subMenu-item">
  734.                        <a
  735.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/training-overview"
  736.                            aria-label="Training Overview">
  737.                            Overview
  738.                        </a>
  739.                    </li>
  740.                    <li class="navPage-subMenu-item">
  741.                        <a
  742.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/crypto-compliance-specialization"
  743.                            aria-label="Crypto Compliance Specialization">
  744.                            Crypto Compliance Specialization
  745.                                                    </a>
  746.                    </li>
  747.                    <li class="navPage-subMenu-item">
  748.                        <a
  749.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/aml-360-certificate-program"
  750.                            aria-label="AML 360 Certificate Program">
  751.                            AML 360 Certificate Program
  752.                                                    </a>
  753.                    </li>
  754.                    <li class="navPage-subMenu-item">
  755.                        <a
  756.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/accreditation"
  757.                            aria-label="Accreditation">
  758.                            Accreditation
  759.                                                    </a>
  760.                    </li>
  761.                    <li class="navPage-subMenu-item">
  762.                        <a
  763.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/enterprise-training"
  764.                            aria-label="Enterprise Training">
  765.                            Enterprise
  766.                        </a>
  767.                    </li>
  768.                    <li class="navPage-subMenu-item">
  769.                        <a
  770.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/webinars"
  771.                            aria-label="Webinars">
  772.                            Webinars
  773.                                                    </a>
  774.                    </li>
  775.                </ul>
  776.            </div>
  777.        </li>
  778.        <li class="navPages-item navPages-item-page">
  779.            <a class="navPages-action has-subMenu" href="/events-overview"
  780.                data-collapsible="navPages-events">
  781.                Events
  782.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  783.                    <svg>
  784.                        <use xlink:href="#icon-chevron-down" />
  785.                    </svg>
  786.                </span>
  787.            </a>
  788.            <div class="navPage-subMenu" id="navPages-events" aria-hidden="true" tabindex="-1">
  789.                <ul class="navPage-subMenu-list">
  790.                    <li class="navPage-subMenu-item">
  791.                        <a
  792.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/events-overview"
  793.                            aria-label="Events Overview">
  794.                            Overview
  795.                        </a>
  796.                    </li>
  797.                    <li class="navPage-subMenu-item">
  798.                        <a
  799.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/upcoming-events"
  800.                            aria-label="Upcoming Events">
  801.                            Upcoming Events
  802.                                                    </a>
  803.                    </li>
  804.                    <li class="navPage-subMenu-item">
  805.                        <a
  806.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/past-events"
  807.                            aria-label="Past Events">
  808.                            Past Events
  809.                                                    </a>
  810.                    </li>
  811.                </ul>
  812.            </div>
  813.        </li>
  814.        <li class="navPages-item navPages-item-page">
  815.            <a class="navPages-action has-subMenu" href="/affiliate-partners"
  816.                data-collapsible="navPages-partnerships">
  817.                Partnerships
  818.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  819.                    <svg>
  820.                        <use xlink:href="#icon-chevron-down" />
  821.                    </svg>
  822.                </span>
  823.            </a>
  824.            <div class="navPage-subMenu" id="navPages-partnerships" aria-hidden="true" tabindex="-1">
  825.                <ul class="navPage-subMenu-list">
  826.                    <li class="navPage-subMenu-item">
  827.                        <a
  828.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/sponsor-partners"
  829.                            aria-label="Sponsors">
  830.                            Sponsors
  831.                                                    </a>
  832.                    </li>
  833.                    <li class="navPage-subMenu-item">
  834.                        <a
  835.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/corporate-partnerships"
  836.                            aria-label="Corporate Partnerships">
  837.                            Corporate Partnerships
  838.                                                    </a>
  839.                    </li>
  840.                    <li class="navPage-subMenu-item">
  841.                        <a
  842.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/university-partnerships"
  843.                            aria-label="University Partnerships">
  844.                            University Partnerships
  845.                                                    </a>
  846.                    </li>
  847.                    <li class="navPage-subMenu-item">
  848.                        <a
  849.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/chapters"
  850.                            aria-label="Chapters">
  851.                            Chapters
  852.                                                    </a>
  853.                    </li>
  854.                </ul>
  855.            </div>
  856.        </li>
  857.        <li class="navPages-item navPages-item-page">
  858.            <a class="navPages-action has-subMenu" href="/resources-overview"
  859.                data-collapsible="navPages-resources">
  860.                Resources
  861.                <span class="icon navPages-action-moreIcon" aria-hidden="true">
  862.                    <svg>
  863.                        <use xlink:href="#icon-chevron-down" />
  864.                    </svg>
  865.                </span>
  866.            </a>
  867.            <div class="navPage-subMenu" id="navPages-resources" aria-hidden="true" tabindex="-1">
  868.                <ul class="navPage-subMenu-list">
  869.                    <li class="navPage-subMenu-item">
  870.                        <a
  871.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/resources-overview"
  872.                            aria-label="Resources Overview">
  873.                            Overview
  874.                        </a>
  875.                    </li>
  876.                    <li class="navPage-subMenu-item">
  877.                        <a
  878.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/blog"
  879.                            aria-label="ACFCS Articles">
  880.                            ACFCS Articles
  881.                                                    </a>
  882.                    </li>
  883.                    <li class="navPage-subMenu-item">
  884.                        <a
  885.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/faq"
  886.                            aria-label="FAQ">
  887.                            FAQ
  888.                                                    </a>
  889.                    </li>
  890.                    <li class="navPage-subMenu-item">
  891.                        <a
  892.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/in-the-news"
  893.                            aria-label="In the News">
  894.                            In the News
  895.                                                    </a>
  896.                    </li>
  897.                    <li class="navPage-subMenu-item">
  898.                        <a
  899.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/financial-education"
  900.                            aria-label="Financial Education">
  901.                            Financial Education
  902.                                                    </a>
  903.                    </li>
  904.                    <li class="navPage-subMenu-item">
  905.                        <a
  906.                            class="navPage-subMenu-action navPages-action"  href="https://www.acfcs.org/podcasts"
  907.                            aria-label="Podcasts">
  908.                            Podcasts
  909.                                                    </a>
  910.                    </li>
  911.                </ul>
  912.            </div>
  913.        </li>
  914.        <div class="mobile-quick-search-container">
  915.            <form class="form" onsubmit="return false" data-url="/search.php" data-quick-search-form>
  916.    <fieldset class="form-fieldset">
  917.        <div class="form-field">
  918.            <label class="is-srOnly" for="mobile-nav-quick-search">Search</label>
  919.            <input class="form-input"
  920.                    data-search-quick
  921.                    name="mobile-nav-quick-search"
  922.                    id="mobile-nav-quick-search"
  923.                    data-error-message="Search field cannot be empty."
  924.                    placeholder="SEARCH"
  925.                    autocomplete="off"
  926.            >
  927.            <span class="icon">
  928.                <svg>
  929.                    <use xlink:href="#icon-search"></use>
  930.                </svg>
  931.            </span>
  932.        </div>
  933.    </fieldset>
  934. </form>
  935. <section class="quickSearchResults" data-bind="html: results"></section>
  936. <p role="status"
  937.    aria-live="polite"
  938.    class="aria-description--hidden"
  939.    data-search-aria-message-predefined-text="product results for"
  940. ></p>
  941.        </div>
  942.    </ul>
  943. </nav>            </div>
  944.        </div>
  945.    </div>
  946.    <div class="header--bottom">
  947.        <div class="container">
  948.            <p>A CeriFi Company</p>
  949.        </div>
  950.    </div>
  951. </header>
  952. <div data-content-region="header_bottom--global"><div data-layout-id="38a844a4-e092-4f58-9b59-62aa662428f5"><div data-sub-layout-container="4df1e574-8dc5-494f-b0cc-71d2af97cd19" data-layout-name="Layout">
  953.  <style data-container-styling="4df1e574-8dc5-494f-b0cc-71d2af97cd19">
  954.    [data-sub-layout-container="4df1e574-8dc5-494f-b0cc-71d2af97cd19"] {
  955.      box-sizing: border-box;
  956.      display: flex;
  957.      flex-wrap: wrap;
  958.      z-index: 0;
  959.      position: relative;
  960.    }
  961.    [data-sub-layout-container="4df1e574-8dc5-494f-b0cc-71d2af97cd19"]:after {
  962.      background-position: center center;
  963.      background-size: cover;
  964.      z-index: auto content: "";
  965.      display: block;
  966.      position: absolute;
  967.      top: 0;
  968.      left: 0;
  969.      bottom: 0;
  970.      right: 0;
  971.    }
  972.  </style>
  973.  <div data-sub-layout="93e98bed-f6cd-4f1c-a394-60eb28309e1d">
  974.    <style data-column-styling="93e98bed-f6cd-4f1c-a394-60eb28309e1d">
  975.      [data-sub-layout="93e98bed-f6cd-4f1c-a394-60eb28309e1d"] {
  976.        display: flex;
  977.        flex-direction: column;
  978.        box-sizing: border-box;
  979.        flex-basis: 100%;
  980.        max-width: 100%;
  981.        z-index: 0;
  982.        justify-content: center;
  983.        padding-right: 10.5px;
  984.        padding-left: 10.5px;
  985.        position: relative;
  986.      }
  987.      [data-sub-layout="93e98bed-f6cd-4f1c-a394-60eb28309e1d"]:after {
  988.        background-position: center center;
  989.        background-size: cover;
  990.        z-index: auto content: "";
  991.        display: block;
  992.        position: absolute;
  993.        top: 0;
  994.        left: 0;
  995.        bottom: 0;
  996.        right: 0;
  997.      }
  998.      @media only screen and (max-width: 700px) {
  999.        [data-sub-layout="93e98bed-f6cd-4f1c-a394-60eb28309e1d"] {
  1000.          flex-basis: 100%;
  1001.          max-width: 100%;
  1002.        }
  1003.      }
  1004.    </style>
  1005.  </div>
  1006. </div></div></div>
  1007. <div data-content-region="header_bottom"></div>
  1008.        <main class="body" id="main-content" role="main" data-currency-code="USD">
  1009.    
  1010.    <div class="container">
  1011.    <div class="page">
  1012.        <section class="page-content page-content--centered page-404">
  1013.            <h1 class="page-heading">No Pass Zone</h1>
  1014.            <p class="u-textAlignCenter">
  1015.                This page was not found.
  1016.            </p>
  1017.            <div class="page-flex-buttons">
  1018.                <a href="/" class="button button--primary">Go to Homepage</a>
  1019.                <a href="/support#contact" class="button button--secondary">Let Us Know</a>
  1020.            </div>
  1021.        </section>
  1022.    </div>
  1023. </div>
  1024.  
  1025.    <div id="modal" class="modal" data-reveal data-prevent-quick-search-close>
  1026.    <button class="modal-close"
  1027.        type="button"
  1028.        title="Close"
  1029.        
  1030. >
  1031.    <span class="aria-description--hidden">Close</span>
  1032.    <span aria-hidden="true">&#215;</span>
  1033. </button>
  1034.    <div class="modal-content"></div>
  1035.    <div class="loadingOverlay"></div>
  1036. </div>
  1037.    <div id="alert-modal" class="modal modal--alert modal--small" data-reveal data-prevent-quick-search-close>
  1038.    <div class="swal2-icon swal2-error swal2-icon-show"><span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span></div>
  1039.  
  1040.    <div class="modal-content"></div>
  1041.  
  1042.    <div class="button-container"><button type="button" class="confirm button" data-reveal-close>OK</button></div>
  1043. </div>
  1044. </main>
  1045.        <footer class="footer" role="contentinfo">
  1046.    <h2 class="footer-title-sr-only">Footer Start</h2>
  1047.    <div class="container">
  1048.        <div class="footer-info">
  1049.            <div class="footer-section">
  1050.                <div>
  1051.                    <h3 class="footer-section__header">
  1052.                        ACFCS
  1053.                    </h3>
  1054.                    <ul class="footer-info-list">
  1055.                        <li>
  1056.                            <a href="/about">About</a>
  1057.                        </li>
  1058.                        <li>
  1059.                            <a href="/support">Support</a>
  1060.                        </li>
  1061.                        <li>
  1062.                            <a target="_blank" href="https://learn.acfcs.org/learn">Member Log In</a>
  1063.                        </li>
  1064.                    </ul>
  1065.                </div>
  1066.                <div>
  1067.                    <h3 class="footer-section__header">
  1068.                        Partnership
  1069.                    </h3>
  1070.                    <ul class="footer-info-list">
  1071.                        <li>
  1072.                            <a href="/corporate-partnerships">Corporate</a>
  1073.                        </li>
  1074.                        <li>
  1075.                            <a href="/university-partnerships">Universities</a>
  1076.                        </li>
  1077.                        <li>
  1078.                            <a href="/sponsor-partners">Sponsors</a>
  1079.                        </li>
  1080.                        <li>
  1081.                            <a href="/chapters">Chapters</a>
  1082.                        </li>
  1083.                    </ul>
  1084.                </div>
  1085.                <div>
  1086.                    <ul class="footer-info-list">
  1087.                        <li>
  1088.                            <a href="/support#contact">Contact Us</a>
  1089.                        </li>
  1090.                        <li>
  1091.                            <a href="/privacy-policy">Privacy Policy</a>
  1092.                        </li>
  1093.                        <li>
  1094.                            <a href="/terms-conditions">Terms &amp; Conditions</a>
  1095.                        </li>
  1096.                    </ul>
  1097.                </div>
  1098.            </div>
  1099.            <div class="footer-section-bottom">
  1100.                <div class="footer-logo">
  1101.                    <a class="footer-logo__link" href="/" aria-label="acfcs logo icon">
  1102.                        <svg>
  1103.                            <use xlink:href="#icon-acfcs-logo"></use>
  1104.                        </svg>
  1105.                    </a>
  1106.                </div>
  1107.                <ul class="socialLinks socialLinks--alt">
  1108.                    <li class="socialLinks-item">
  1109.                        <a class="icon icon--linkedin" href="http://www.linkedin.com/company/association-of-certified-financial-crime-specialists" target="_blank" rel="noopener"
  1110.                            aria-label="Visit us at linkedin">
  1111.                            <svg>
  1112.                                <use xlink:href="#icon-linkedin-round" />
  1113.                            </svg>
  1114.                        </a>
  1115.                    </li>
  1116.                    <li class="socialLinks-item">
  1117.                        <a class="icon icon--facebook" href="http://www.facebook.com/ACFCS.org" target="_blank" rel="noopener"
  1118.                            aria-label="Visit us at facebook">
  1119.                            <svg>
  1120.                                <use xlink:href="#icon-facebook-round" />
  1121.                            </svg>
  1122.                        </a>
  1123.                    </li>
  1124.                    <li class="socialLinks-item">
  1125.                        <a class="icon icon--twitter" href="http://twitter.com/acfcsonline" target="_blank" rel="noopener"
  1126.                            aria-label="Visit us at twitter">
  1127.                            <svg>
  1128.                                <use xlink:href="#icon-twitter-round" />
  1129.                            </svg>
  1130.                        </a>
  1131.                    </li>
  1132.                                    </ul>
  1133.                <!-- The Client has requested for different icons
  1134.                        <ul class="socialLinks socialLinks--alt">
  1135.            <li class="socialLinks-item">
  1136.                <a class="icon icon--linkedin" href="http://www.linkedin.com/company/association-of-certified-financial-crime-specialists" target="_blank" rel="noopener">
  1137.                    <svg><use xlink:href="#icon-linkedin" /></svg>
  1138.                </a>
  1139.            </li>
  1140.            <li class="socialLinks-item">
  1141.                <a class="icon icon--facebook" href="http://www.facebook.com/ACFCS.org" target="_blank" rel="noopener">
  1142.                    <svg><use xlink:href="#icon-facebook" /></svg>
  1143.                </a>
  1144.            </li>
  1145.            <li class="socialLinks-item">
  1146.                <a class="icon icon--twitter" href="http://twitter.com/acfcsonline" target="_blank" rel="noopener">
  1147.                    <svg><use xlink:href="#icon-twitter" /></svg>
  1148.                </a>
  1149.            </li>
  1150.    </ul>
  1151.                -->
  1152.            </div>
  1153.        </div>
  1154.        <div class="footer-copyright">
  1155.            <p class="powered-by">&copy; 2024 Association of Certified Financial Crime Specialists. All Rights Reserved</p>
  1156.        </div>
  1157.    </div>
  1158.    <div data-content-region="ssl_site_seal--global"></div>
  1159.    <div class="scroll-btn-container">
  1160.        <button onclick="topFunction()" class="scroll-btn" id="scrollBtn" title="Go to top">Top</button>
  1161.    </div>
  1162. </footer>
  1163. <script>
  1164.    sessionStorage.removeItem('BOBO_value');
  1165.    sessionStorage.removeItem('retainState');
  1166.    sessionStorage.removeItem('ProductItem');
  1167.    sessionStorage.removeItem('paymentContinued');
  1168.    sessionStorage.removeItem('paymentPageData');
  1169.    sessionStorage.removeItem('orderNotes');
  1170. </script>
  1171.        <script>window.__webpack_public_path__ = "https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/dist/";</script>
  1172.        <script src="https://cdn11.bigcommerce.com/s-dzatfnb4b0/stencil/31e324c0-cdc5-013c-e8ae-02226d0bea36/e/7e3a2280-895d-013b-80ae-3efcf4e4337e/dist/theme-bundle.main.js"></script>
  1173.        <script>
  1174.            window.stencilBootstrap("404", "{\"zoomSize\":\"1280x1280\",\"productSize\":\"500x659\",\"showAdminBar\":true,\"genericError\":\"Oops! Something went wrong.\",\"maintenanceModeSettings\":[],\"adminBarLanguage\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"admin.maintenance_header\\\":\\\"en\\\",\\\"admin.maintenance_tooltip\\\":\\\"en\\\",\\\"admin.maintenance_showstore_link\\\":\\\"en\\\",\\\"admin.prelaunch_header\\\":\\\"en\\\",\\\"admin.page_builder_link\\\":\\\"en\\\"},\\\"translations\\\":{\\\"admin.maintenance_header\\\":\\\"Your store is down for maintenance.\\\",\\\"admin.maintenance_tooltip\\\":\\\"Only administrators can view the store at the moment. Visit your control panel settings page to disable maintenance mode.\\\",\\\"admin.maintenance_showstore_link\\\":\\\"Click here to see what your visitors will see.\\\",\\\"admin.prelaunch_header\\\":\\\"Your storefront is private. Share your site with preview code:\\\",\\\"admin.page_builder_link\\\":\\\"Design this page in Page Builder\\\"}}\",\"urls\":{\"home\":\"https://www.acfcs.org/\",\"account\":{\"index\":\"/account.php\",\"orders\":{\"all\":\"/account.php?action=order_status\",\"completed\":\"/account.php?action=view_orders\",\"save_new_return\":\"/account.php?action=save_new_return\"},\"update_action\":\"/account.php?action=update_account\",\"returns\":\"/account.php?action=view_returns\",\"addresses\":\"/account.php?action=address_book\",\"inbox\":\"/account.php?action=inbox\",\"send_message\":\"/account.php?action=send_message\",\"add_address\":\"/account.php?action=add_shipping_address\",\"wishlists\":{\"all\":\"/wishlist.php\",\"add\":\"/wishlist.php?action=addwishlist\",\"edit\":\"/wishlist.php?action=editwishlist\",\"delete\":\"/wishlist.php?action=deletewishlist\"},\"details\":\"/account.php?action=account_details\",\"recent_items\":\"/account.php?action=recent_items\"},\"brands\":\"https://www.acfcs.org/brands/\",\"gift_certificate\":{\"purchase\":\"/giftcertificates.php\",\"redeem\":\"/giftcertificates.php?action=redeem\",\"balance\":\"/giftcertificates.php?action=balance\"},\"auth\":{\"login\":\"/login.php\",\"check_login\":\"/login.php?action=check_login\",\"create_account\":\"/login.php?action=create_account\",\"save_new_account\":\"/login.php?action=save_new_account\",\"forgot_password\":\"/login.php?action=reset_password\",\"send_password_email\":\"/login.php?action=send_password_email\",\"save_new_password\":\"/login.php?action=save_new_password\",\"logout\":\"/login.php?action=logout\"},\"product\":{\"post_review\":\"/postreview.php\"},\"cart\":\"/cart.php\",\"checkout\":{\"single_address\":\"/checkout\",\"multiple_address\":\"/checkout.php?action=multiple\"},\"rss\":{\"products\":[]},\"contact_us_submit\":\"/pages.php?action=sendContactForm\",\"search\":\"/search.php\",\"compare\":\"/compare\",\"sitemap\":\"/sitemap.php\",\"subscribe\":{\"action\":\"/subscribe.php\"}},\"secureBaseUrl\":\"https://www.acfcs.org\",\"cartId\":null,\"channelId\":1,\"template\":\"pages/errors/404\",\"validationDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"validation_messages.valid_email\\\":\\\"en\\\",\\\"validation_messages.password\\\":\\\"en\\\",\\\"validation_messages.password_match\\\":\\\"en\\\",\\\"validation_messages.invalid_password\\\":\\\"en\\\",\\\"validation_messages.field_not_blank\\\":\\\"en\\\",\\\"validation_messages.certificate_amount\\\":\\\"en\\\",\\\"validation_messages.certificate_amount_range\\\":\\\"en\\\",\\\"validation_messages.price_min_evaluation\\\":\\\"en\\\",\\\"validation_messages.price_max_evaluation\\\":\\\"en\\\",\\\"validation_messages.price_min_not_entered\\\":\\\"en\\\",\\\"validation_messages.price_max_not_entered\\\":\\\"en\\\",\\\"validation_messages.price_invalid_value\\\":\\\"en\\\"},\\\"translations\\\":{\\\"validation_messages.valid_email\\\":\\\"You must enter a valid email.\\\",\\\"validation_messages.password\\\":\\\"You must enter a password.\\\",\\\"validation_messages.password_match\\\":\\\"Your passwords do not match.\\\",\\\"validation_messages.invalid_password\\\":\\\"Passwords must be at least 7 characters and contain both alphabetic and numeric characters.\\\",\\\"validation_messages.field_not_blank\\\":\\\" field cannot be blank.\\\",\\\"validation_messages.certificate_amount\\\":\\\"You must enter a gift certificate amount.\\\",\\\"validation_messages.certificate_amount_range\\\":\\\"You must enter a certificate amount between [MIN] and [MAX]\\\",\\\"validation_messages.price_min_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_messages.price_max_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_messages.price_min_not_entered\\\":\\\"Min. price is required.\\\",\\\"validation_messages.price_max_not_entered\\\":\\\"Max. price is required.\\\",\\\"validation_messages.price_invalid_value\\\":\\\"Input must be greater than 0.\\\"}}\",\"validationFallbackDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"validation_fallback_messages.valid_email\\\":\\\"en\\\",\\\"validation_fallback_messages.password\\\":\\\"en\\\",\\\"validation_fallback_messages.password_match\\\":\\\"en\\\",\\\"validation_fallback_messages.invalid_password\\\":\\\"en\\\",\\\"validation_fallback_messages.field_not_blank\\\":\\\"en\\\",\\\"validation_fallback_messages.certificate_amount\\\":\\\"en\\\",\\\"validation_fallback_messages.certificate_amount_range\\\":\\\"en\\\",\\\"validation_fallback_messages.price_min_evaluation\\\":\\\"en\\\",\\\"validation_fallback_messages.price_max_evaluation\\\":\\\"en\\\",\\\"validation_fallback_messages.price_min_not_entered\\\":\\\"en\\\",\\\"validation_fallback_messages.price_max_not_entered\\\":\\\"en\\\",\\\"validation_fallback_messages.price_invalid_value\\\":\\\"en\\\"},\\\"translations\\\":{\\\"validation_fallback_messages.valid_email\\\":\\\"You must enter a valid email.\\\",\\\"validation_fallback_messages.password\\\":\\\"You must enter a password.\\\",\\\"validation_fallback_messages.password_match\\\":\\\"Your passwords do not match.\\\",\\\"validation_fallback_messages.invalid_password\\\":\\\"Passwords must be at least 7 characters and contain both alphabetic and numeric characters.\\\",\\\"validation_fallback_messages.field_not_blank\\\":\\\" field cannot be blank.\\\",\\\"validation_fallback_messages.certificate_amount\\\":\\\"You must enter a gift certificate amount.\\\",\\\"validation_fallback_messages.certificate_amount_range\\\":\\\"You must enter a certificate amount between [MIN] and [MAX]\\\",\\\"validation_fallback_messages.price_min_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_fallback_messages.price_max_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_fallback_messages.price_min_not_entered\\\":\\\"Min. price is required.\\\",\\\"validation_fallback_messages.price_max_not_entered\\\":\\\"Max. price is required.\\\",\\\"validation_fallback_messages.price_invalid_value\\\":\\\"Input must be greater than 0.\\\"}}\",\"validationDefaultDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{},\\\"translations\\\":{}}\",\"carouselArrowAndDotAriaLabel\":\"Go to slide [SLIDE_NUMBER] of [SLIDES_QUANTITY]\",\"carouselActiveDotAriaLabel\":\"active\",\"carouselContentAnnounceMessage\":\"You are currently on slide [SLIDE_NUMBER] of [SLIDES_QUANTITY]\",\"pageType\":\"404\"}").load();
  1175.        </script>
  1176.  
  1177.        <script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/csrf-protection-header-95f3d9ac8c049e3ed132c83a168cf1d6a8ed0237.js"></script>
  1178. <script src='https://analytics.getshogun.com/collector.js' async></script><script
  1179.  src="https://code.jquery.com/jquery-3.5.1.min.js"
  1180.  integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
  1181.  crossorigin="anonymous"></script><script>
  1182.    /*
  1183.  jQuery(document).ready(function($){
  1184.   $('.carousel-cards').owlCarousel({
  1185.        loop:true,
  1186.      margin:25,
  1187.        nav:true,
  1188.        stagePadding:15,
  1189.        lazyLoad:true,
  1190.      dots:true,
  1191.        items:1,
  1192.        responsiveClass:true,
  1193.        responsive:{
  1194.            480: {
  1195.                items: 1,
  1196.                nav:true,
  1197.                dots:true
  1198.            },
  1199.            768: {
  1200.                items: 1,
  1201.                nav:true,
  1202.                dots:true
  1203.            },
  1204.            1024: {
  1205.                items: 3,
  1206.                nav:true,
  1207.                dots: false
  1208.            }
  1209.        }
  1210.   });
  1211.  });*/
  1212. </script><script>
  1213.    let scrollBtn = $("#scrollBtn");
  1214.  
  1215.    // When the user scrolls down 20px from the top of the document, show the button
  1216.    window.onscroll = function() {scrollFunction()};
  1217.  
  1218.    function scrollFunction() {
  1219.      if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
  1220.        scrollBtn[0].style.display = "block";
  1221.      } else {
  1222.        scrollBtn[0].style.display = "none";
  1223.      }
  1224.    }
  1225.  
  1226.    // When the user clicks on the button, scroll to the top of the document
  1227.    function topFunction() {
  1228.      document.body.scrollTop = 0; // For Safari
  1229.      document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
  1230.    }
  1231. </script>
  1232. <script type="text/javascript">
  1233.    /*
  1234.      SupportForm
  1235.     */
  1236.    if(typeof jQuery !== 'undefined'){
  1237.        var SupportForm = (function ($) {
  1238.        var m = (function () {
  1239.            var name = 'SupportForm';
  1240.            var version = '0.0.1';
  1241.        
  1242.            /*
  1243.            Local variable declarations
  1244.            */
  1245.        
  1246.            /*
  1247.            Handlers
  1248.            */
  1249.            var handlers = {
  1250.            disableOption: function ($option) {
  1251.                $option.prop('disabled', true).hide();
  1252.            },
  1253.            createSubmitButton: function($element){
  1254.                $submitFormRow = $element.find('.support-form--submit');
  1255.                $submitFormRow.append("<input id='formSubmitButton' class='form__submit button' type='submit' name='submit' disabled>");
  1256.            },
  1257.            disableFormSubmit: function($element){
  1258.                $submitButton = $element.find('#formSubmitButton');
  1259.                $submitButton.attr("disabled", false);
  1260.                },
  1261.            disableSubmitButton: function($element){
  1262.                $submitButton = $element.find('.support-form--submit');
  1263.                $submitButton.attr("disabled", true);
  1264.                $submitButton.css("display", "none");
  1265.            },
  1266.            enableSubmitButton: function($element){
  1267.                $submitButton = $element.find('.support-form--submit');
  1268.                $submitButton.css("display", "block");
  1269.            },
  1270.            enableOption: function ($option) {
  1271.                $option.prop('disabled', false).show();
  1272.            },
  1273.            getConditionalFields: function ($element) {
  1274.                return $element.find('div[data-conditional-field]');
  1275.            },
  1276.            getConditionalParent: function ($element, $childField) {
  1277.                var name = $childField.data('conditional-parent');
  1278.        
  1279.                return $element.find('select[name="' + name + '"]');
  1280.            },
  1281.            getForm: function ($element) {
  1282.                return $element.find('.js-support-form__form');
  1283.            },
  1284.            getErrorMessage: function ($element) {
  1285.                return $element.find('.js-support-form__error');
  1286.            },
  1287.            getLoadingMessage: function ($element) {
  1288.                return $element.find('.js-support-form__loading');
  1289.            },
  1290.            getSuccessMessage: function ($element) {
  1291.                return $element.find('.js-support-form__success');
  1292.            },
  1293.            showErrorMessage: function ($element) {
  1294.                handlers.getLoadingMessage($element).hide();
  1295.                handlers.getSuccessMessage($element).hide();
  1296.                handlers.getForm($element).hide();
  1297.                handlers.getErrorMessage($element).show();
  1298.            },
  1299.            showLoadingMessage: function ($element) {
  1300.                handlers.getErrorMessage($element).hide();
  1301.                handlers.getForm($element).hide();
  1302.                handlers.getSuccessMessage($element).hide();
  1303.                handlers.getLoadingMessage($element).show();
  1304.            },
  1305.            showSuccessMessage: function ($element) {
  1306.                handlers.getLoadingMessage($element).hide();
  1307.                handlers.getErrorMessage($element).hide();
  1308.                handlers.getForm($element).hide();
  1309.                handlers.getSuccessMessage($element).show();
  1310.            },
  1311.            injectFormData: async function($element){
  1312.                /* this keeps the orgID hidden from any users on the site*/
  1313.                var orgID = $element.find('#supportFormInput');
  1314.                await orgID.attr('name', 'orgid');
  1315.                await orgID.attr('value', '00D60000000J4Mx');
  1316.            },
  1317.            /*
  1318.            submitForm: function ($element) {
  1319.                var $form = handlers.getForm($element);
  1320.                var data = $form.serialize();
  1321.                var url = $form.attr('action');
  1322.        
  1323.                handlers.showLoadingMessage($element);
  1324.        
  1325.                $.ajax({
  1326.                headers: {
  1327.                    'Access-Control-Allow-Headers': 'Content-Type, Authorization',
  1328.                    'Access-Control-Allow-Origin': '*',
  1329.                    'Access-Control-Request-Method': 'POST',
  1330.                    'accept': 'application/json',
  1331.                },
  1332.                data: data,
  1333.                error: function(jqHXR, textStatus, errorThrown){
  1334.                    handlers.showErrorMessage($element);
  1335.                },
  1336.                success: function (data, textStatus, jqHXR) {
  1337.                    handlers.showSuccessMessage($element);
  1338.                },
  1339.                method: "POST",
  1340.                url: url,
  1341.                crossOrigin: true,
  1342.                crossDomain: true,
  1343.                });
  1344.            },
  1345.            */
  1346.            updateChildField: function ($element, $childField) {
  1347.                // Reset the child field's value
  1348.                $childField.find('select').val('');
  1349.  
  1350.                var $parentField = handlers.getConditionalParent($element, $childField);
  1351.                var parentValue = $parentField.find(':selected').data('toggle');
  1352.                
  1353.                var showChildField = false;
  1354.                var $options = $childField.find('option');
  1355.                var $scheduleButton = $childField.find('a');
  1356.                $options.each(function () {
  1357.                var $option = $(this);
  1358.                if ($option.attr('value')) {
  1359.                    // If option is nonempty and matches parentValue, enable it
  1360.                    if ($option.data('conditional-value') == parentValue) {
  1361.                    handlers.enableOption($option);
  1362.                    showChildField = true;
  1363.                    }
  1364.                    // If option is nonempty and doesn't match parentValue, disable it
  1365.                    else {
  1366.                    handlers.disableOption($option);
  1367.                    }
  1368.                }
  1369.                // If option is empty, leave it enabled.
  1370.                else {
  1371.                    handlers.enableOption($option);
  1372.                }
  1373.                });
  1374.        
  1375.                $scheduleButton.each(function (){
  1376.                var $button = $(this);
  1377.        
  1378.                if($button.attr('href')){
  1379.                    if($button.data('conditional-value') == parentValue){
  1380.                    handlers.enableOption($button);
  1381.                    showChildField = true;
  1382.                    handlers.disableSubmitButton($element);
  1383.                    }
  1384.                    else{
  1385.                    handlers.disableOption($button);
  1386.                    handlers.enableSubmitButton($element);
  1387.                    }
  1388.                }
  1389.                else{
  1390.                    handlers.enableOption($button);
  1391.                    handlers.enableSubmitButton($element);
  1392.                }
  1393.                });
  1394.        
  1395.                //toggle select field visibility and required attribute
  1396.                if(showChildField){
  1397.                    $childField.show();
  1398.                    $childField.find('select').attr('required', 'required');
  1399.                } else {
  1400.                    $childField.hide();
  1401.                    $childField.find('select').removeAttr('required');
  1402.                }
  1403.  
  1404.                //reset and hide remaining select fields
  1405.                $childField.nextAll('[data-conditional-field]').each(function(){
  1406.                    if($(this).find('select').length){
  1407.                        $(this).find('select').val('').removeAttr('required');
  1408.                        $(this).hide();
  1409.                    }
  1410.                });
  1411.            },
  1412.            };
  1413.        
  1414.        
  1415.        
  1416.            /*
  1417.            List handlers that should be
  1418.            accessible in the global namespace
  1419.            */
  1420.            var publicHandlers = [
  1421.        
  1422.            ];
  1423.        
  1424.            /*
  1425.            Events
  1426.            */
  1427.            var events = {
  1428.            /*
  1429.            formSubmit: function () {
  1430.                $('.js-support-form').each(function () {
  1431.                var $element = $(this);
  1432.                var $form = handlers.getForm($('.js-support-form'));
  1433.                $form.on('submit', function (event) {
  1434.                    event.preventDefault();
  1435.                    handlers.submitForm($element);
  1436.                });  
  1437.                });
  1438.            },
  1439.            */
  1440.            pageLoad: function () {
  1441.        
  1442.            },
  1443.            parentSelectChange: function () {
  1444.                $('form[data-support-form]').each(function () {
  1445.                var $element = $(this);
  1446.                handlers.createSubmitButton($element);
  1447.                handlers.disableFormSubmit($element);
  1448.                handlers.getConditionalFields($element).each(function () {
  1449.                    var $childField = $(this);
  1450.                    var $parentField = handlers.getConditionalParent($element, $childField);
  1451.                    
  1452.                    $parentField.on('change', function () {
  1453.                    handlers.updateChildField($element, $childField);
  1454.                    });
  1455.                });
  1456.                });
  1457.            },
  1458.            //   onSubmitForm: function(){
  1459.            //     let formElement = document.querySelector("form[data-support-form]");
  1460.            //     $form = $('form[data-support-form]');
  1461.            //     $submitButton = $form.find('#formSubmitButton');
  1462.                    
  1463.            //     $submitButton.on("click", async function(){
  1464.            //         if(formElement.classList.contains("js-support-form--error")){
  1465.            //             await handlers.injectFormData($form);
  1466.            //         }
  1467.            //     })
  1468.            //   }
  1469.            };
  1470.        
  1471.            /*
  1472.            List events in the order they
  1473.            should be bound. Any unlisted
  1474.            events will be registered last.
  1475.            */
  1476.            var eventOrder = [
  1477.            'pageLoad',
  1478.            ];
  1479.        
  1480.            /************************************************************************************
  1481.             DON'T EDIT BELOW THIS LINE
  1482.            ************************************************************************************/
  1483.        
  1484.            var bindEvents = function () {
  1485.            var eventNames = Object.keys(events);
  1486.            for (var i = 0; i < eventNames.length; i++) {
  1487.                var eventName = eventNames[i];
  1488.                if (eventOrder.indexOf(eventName) < 0) {
  1489.                eventOrder.push(eventName);
  1490.                }
  1491.            }
  1492.        
  1493.            for (var i = 0; i < eventOrder.length; i++) {
  1494.                var eventName = eventOrder[i];
  1495.                var event = events[eventName];
  1496.        
  1497.                if (event !== undefined) {
  1498.                if (typeof(event) === 'function') {
  1499.                    try {
  1500.                    event();
  1501.                    }
  1502.                    catch(e) {
  1503.                    console.error('Event binding failed: ' + eventName);
  1504.                    console.error(e);
  1505.                    }
  1506.                }
  1507.                else {
  1508.                    console.error('Event is not a function: ' + eventName);
  1509.                }
  1510.                }
  1511.                else {
  1512.                console.error('Event is undefined: ' + eventName);
  1513.                }
  1514.            }
  1515.            };
  1516.        
  1517.            var registerPublicHandlers = function () {
  1518.            for (var i = 0; i < publicHandlers.length; i++) {
  1519.                var handlerName = publicHandlers[i];
  1520.                var handler = handlers[handlerName];
  1521.                if (handler !== undefined) {
  1522.                if (typeof(handler) === 'function') {
  1523.                    interface[handlerName] = handler;
  1524.                }
  1525.                else {
  1526.                    console.error('Handler is not a function: ' + handlerName);
  1527.                }
  1528.                }
  1529.                else {
  1530.                console.error('Handler is undefined: ' + handlerName);
  1531.                }
  1532.            }
  1533.            };
  1534.        
  1535.            var interface = {
  1536.            _init_: function () {
  1537.                registerPublicHandlers();
  1538.                bindEvents();
  1539.                delete interface._init_;
  1540.            },
  1541.            toString: function () {
  1542.                return name + ' (version ' + version + ')';
  1543.            },
  1544.            };
  1545.        
  1546.            return interface;
  1547.        }());
  1548.        
  1549.        $(function () {
  1550.            // Error-safe initialization
  1551.            try {
  1552.            m._init_();
  1553.            }
  1554.            catch (e) {
  1555.            console.error('Module failed to initialize: ' + m);
  1556.            console.error(e);
  1557.            }
  1558.        });
  1559.        
  1560.        return m;
  1561.        }(jQuery));
  1562.    }
  1563.    </script><script>
  1564.  
  1565.  
  1566.    </script><script>
  1567. /**
  1568. * The purpose of this script is to move expired webinars on the /*-chapter pages
  1569. *
  1570. * The content will still have to be removed manually through shogun, but it will be moved to the appropriate 'past events' container when expired
  1571. *
  1572. * See ticket: ECM-46
  1573. */
  1574.  
  1575. const allEventCards = document.getElementsByClassName('event-card-container');
  1576. const allEvents = document.getElementsByClassName('all-events-container')[0];
  1577. const upcomingEvents = document.getElementsByClassName('upcoming-events-container')[0];
  1578. const pastEvents = document.getElementsByClassName('past-events-container')[0];
  1579.  
  1580. const expiredEventCards = [];
  1581. const freshCards = [];
  1582.  
  1583.  
  1584. // Sort cards to expired/fresh
  1585. function sortCards(){
  1586.  const dateReg = /\d{1,2}\/\d{1,2}\/\d{4}/; // Valid for: 04/01/2023 -OR- 4/1/2023
  1587.  const timeReg = /\d{1,2}:\d{2} [AP]M/;
  1588.  const now = new Date();
  1589.    
  1590.  
  1591.  for (let i = 0; i < allEventCards.length; i++){
  1592.    const card = allEventCards[i];
  1593.    const dateText = card.getElementsByClassName('card-dates')[0]; // Assume one date title per card.
  1594.    const dateMatch = dateText.innerText.match(dateReg);
  1595.    const dateStr = dateMatch[0];
  1596.  
  1597.    const timeMatch = dateText.innerText.match(timeReg);
  1598.    const timeStr = timeMatch[0];
  1599.  
  1600.    const date = new Date(`${dateStr} ${timeStr} EST`); // We will always assume EST timezones.
  1601.  
  1602.    if (date - now <= 0){ // If we are past this date, then add to the expired list.
  1603.      expiredEventCards.push(card);
  1604.    } else {
  1605.      freshCards.push(card);
  1606.    }
  1607.  }
  1608. }
  1609.  
  1610. // Move cards from the 'all container' to the past/upcoming
  1611. function moveCards(){
  1612.  const upChildren = upcomingEvents.children[0].children;
  1613.  const pastChildren = pastEvents.children[0].children;
  1614.  
  1615.  const ROW_COUNT = 3;
  1616.  let rowIndex = 0;
  1617.  
  1618.  // Move fresh cards
  1619.  freshCards.forEach(card => {
  1620.    upChildren[rowIndex].appendChild(card);
  1621.    rowIndex++;
  1622.    if (rowIndex >= ROW_COUNT) rowIndex = 0;
  1623.  });
  1624.  
  1625.  rowIndex = 0;
  1626.  
  1627.  // Move expired cards
  1628.  expiredEventCards.forEach(card => {
  1629.    pastChildren[rowIndex].appendChild(card);
  1630.    rowIndex++;
  1631.    if (rowIndex >= ROW_COUNT) rowIndex = 0;
  1632.  });
  1633. }
  1634.  
  1635. // Update the button text / style on all expired cards.
  1636. function updateButtons(){
  1637.  expiredEventCards.forEach(card => {
  1638.    const button = card.getElementsByClassName('btn--main')[0];
  1639.    const link = button.children[0];
  1640.    link.innerText = 'SOLD OUT';
  1641.    link.style.background = 'lightgray';
  1642.    link.style.color = 'black !important';
  1643.    link.style.cursor = 'not-allowed';
  1644.    link.href = "javascript:void(0)";
  1645.  });
  1646.  freshCards.forEach(card => {
  1647.    const button = card.getElementsByClassName('btn--main')[0];
  1648.    const link = button.children[0];
  1649.    link.style.background = 'linear-gradient(to right, #4C1D45 0%, #F04E23 160%)'
  1650.    console.log(link);
  1651.  });
  1652. }
  1653.  
  1654. // Only run on chatper pages.
  1655. if (window.location.pathname.includes('-chapter')){
  1656.  // Make sure the cards have been updated with the event-card-container class.
  1657.  if (allEventCards.length){
  1658.    sortCards();
  1659.    moveCards();
  1660.    updateButtons();
  1661.    console.warn(`Ran webinar move script.`);
  1662.  }
  1663. }
  1664. </script><script>
  1665. /**
  1666. * The purpose of this script is to hide expired webinars on the /live-webinars and /webinars pages.
  1667. *
  1668. * The content will still have to be removed manually through shogun, but it will be hidden from consumers
  1669. * if the date is expired.
  1670. *
  1671. * See ticket: ECM-46
  1672. */
  1673.  
  1674. // Rows that hold cards. Always should be 3 cards max.
  1675. const rowParents = [];
  1676. // All cloned cards we will be adding back to the row parent(s).
  1677. let allCards = [];
  1678. // All expired cards that we will not be adding back to the row parent(s)
  1679. const expiredCards = [];
  1680.  
  1681. // Sets all expired cards.
  1682. function setExpiredCards() {
  1683.    const dateReg = /\d{1,2}\/\d{1,2}\/\d{4}/; // Valid for: 04/01/2023 -OR- 4/1/2023
  1684.  
  1685.    const now = new Date();
  1686.  
  1687.    // All cards have this custom class name.
  1688.    const tempCards = document.getElementsByClassName('webinar-card-check');
  1689.  
  1690.    // Clone these cards so we can remove them without obj reference issues later.
  1691.    for (var i = 0; i < tempCards.length; i++) {
  1692.        const card = tempCards[i];
  1693.        // 2nd level parent is what will sit in the Row parent elements.
  1694.        const parent = findParent(card, 2);
  1695.        allCards.push(parent.cloneNode(true));
  1696.    }
  1697.  
  1698.    // Track which cloned index to take.
  1699.    let index = 0;
  1700.    for (var i = 0; i < tempCards.length; i++) {
  1701.        const card = tempCards[i];
  1702.        // Pull date heading
  1703.        const dateText = card.getElementsByClassName('card-dates')[0]; // Assume one date title per card.
  1704.        const match = dateText.innerText.match(dateReg);
  1705.        const dateStr = match[0];
  1706.  
  1707.        const timeStr = getTimeString(dateText.innerText);
  1708.  
  1709.        const date = new Date(`${dateStr} ${timeStr} EST`); // We will always assume EST timezones.
  1710.  
  1711.        if (date - now <= 0) { // If we are past this date, then add to the expired list.
  1712.            expiredCards.push(allCards[index]);
  1713.        }
  1714.  
  1715.        // Row parent is 3 levels up. Ensuring that every card's parent is known.
  1716.        addRowParent(findParent(card, 3));
  1717.        index++;
  1718.    };
  1719. }
  1720.  
  1721. // Row parent helper. Ensures no duplicate rows are added.
  1722. function addRowParent(parentElement) {
  1723.    // Confirm no duplicate objects.
  1724.    if (rowParents.indexOf(parentElement) >= 0) return;
  1725.    rowParents.push(parentElement);
  1726. }
  1727.  
  1728. function getTimeString(str) {
  1729.    str = str.toUpperCase();
  1730.    let timeReg = /(\b\d{1,2}):(\d{2})(\s*[ap]m)\b/i;
  1731.    const timeMatch = str.match(timeReg);
  1732.    const hour = timeMatch[1];
  1733.    const min = timeMatch[2];
  1734.    const amPm = timeMatch[3];
  1735.  
  1736.    return `${hour}:${min} ${amPm}`;
  1737. }
  1738.  
  1739. // Shogun parent helper.
  1740. function findParent(el, level) {
  1741.    let curParent = el;
  1742.    for (let i = 0; i < level; i++) {
  1743.        curParent = curParent.parentElement;
  1744.    }
  1745.    return curParent;
  1746. }
  1747.  
  1748. // Goes through a nodes children and removes each one. Must happen in reverse order.
  1749. function clearChildren(el) {
  1750.    for (let i = el.children.length - 1; i >= 0; i--) {
  1751.        el.children[i].remove();
  1752.    }
  1753. }
  1754.  
  1755. // Deletes all cards from the rows. Adds cloned non-expired back
  1756. function orderCards() {
  1757.    const ROW_COUNT = 3;
  1758.    let curIndex = 0;
  1759.  
  1760.    rowParents.forEach(row => {
  1761.        childrenAdded = 0;
  1762.  
  1763.        // Clear out all existing cards.
  1764.        clearChildren(row);
  1765.  
  1766.        while (childrenAdded < ROW_COUNT && curIndex < allCards.length) {
  1767.            const card = allCards[curIndex];
  1768.  
  1769.            // Skip any expired card.
  1770.            if (expiredCards.indexOf(card) >= 0) {
  1771.                curIndex++;
  1772.                continue;
  1773.            }
  1774.  
  1775.            // Add this card back.
  1776.            row.appendChild(card);
  1777.            childrenAdded++;
  1778.            curIndex++;
  1779.        }
  1780.  
  1781.        // Shogun depends on these parent elements existing to keep the cols in order. Messy stuff happens if there is less than 3.
  1782.        // The purpose of this is to clone a card and hide it. This ensures that each row technically has 3 cards.
  1783.        if (childrenAdded != ROW_COUNT && childrenAdded > 0) {
  1784.            for (let i = 0; i < ROW_COUNT - childrenAdded; i++) {
  1785.                const clone = allCards[0].cloneNode(true);
  1786.  
  1787.                // Can't hide the parent. This will cause more formatting issues. Have to hide the first child.
  1788.                clone.firstChild.style.display = 'none';
  1789.                row.appendChild(clone);
  1790.            }
  1791.        }
  1792.    });
  1793.  
  1794. }
  1795.  
  1796.  
  1797. const pageWhitelist = ['/live-webinars', '/webinars']
  1798. if (pageWhitelist.includes(window.location.pathname)) {
  1799.    // Step 1: find all valid/expired cards
  1800.    setExpiredCards();
  1801.  
  1802.    // Step 2: Reorder all valid cards.
  1803.    orderCards();
  1804.  
  1805.    console.warn(`Ran webinar removal script. Removed ${expiredCards.length} expired webinars.`);
  1806. }
  1807. </script><script>
  1808. function initCookieButton() {
  1809.    var elChild = document.createElement('li');
  1810.    elChild.innerHTML = '<a class="ot-sdk-show-settings"></a>';
  1811.    
  1812.    var navLi = document.querySelector('footer.footer .footer-section > div:last-child li:last-child');
  1813.    navLi.closest('ul').append(elChild);
  1814. }
  1815. initCookieButton();
  1816. </script>
  1817. <script>
  1818.    $('.podcasts-main-container .shg-box-content > .shg-c > .shg-row').each(function(){
  1819.       $(this).children().each(function(){
  1820.            if($(this).children().length == 0){
  1821.                $(this).remove();
  1822.            }
  1823.            if($(this).parent().parent().prev().find('.shg-row').children().length !=0 && $(this).parent().parent().prev().find('.shg-row').children().length < 3) {
  1824.                $(this).parent().parent().prev().find('.shg-row').append($(this));
  1825.            }
  1826.       });
  1827.    });
  1828. </script>
  1829.    </body>
  1830. </html>
  1831.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda