{"version":3,"file":"M10MQav56.D-NVPqG3.mjs","names":[],"sources":["https:/framerusercontent.com/modules/uJhQMXUSRwykNsvoHvEz/hggo6iJXaj3Q5TlCelZu/M10MQav56.js"],"sourcesContent":["// Generated by Framer (53c1d35)\nexport default function metadata(params,activeLocale){return{breakpoints:[{hash:\"4p1ivk\",mediaQuery:\"(min-width: 1920px)\"},{hash:\"unjpgk\",mediaQuery:\"(min-width: 1440px) and (max-width: 1919.98px)\"},{hash:\"1e41izl\",mediaQuery:\"(min-width: 1217px) and (max-width: 1439.98px)\"},{hash:\"1xjpbj7\",mediaQuery:\"(min-width: 800px) and (max-width: 1216.98px)\"},{hash:\"eu06km\",mediaQuery:\"(min-width: 545px) and (max-width: 799.98px)\"},{hash:\"1kdx7kb\",mediaQuery:\"(max-width: 544.98px)\"}],customHTMLHeadEnd:\"<script>\\n  window.fbAsyncInit = function() {\\n    FB.init({\\n      appId      : '1053297933049610',\\n      cookie     : true,\\n      xfbml      : true,\\n      version    : 'v20.0'\\n    });\\n      \\n    FB.AppEvents.logPageView();   \\n      \\n  };\\n\\n  (function(d, s, id){\\n     var js, fjs = d.getElementsByTagName(s)[0];\\n     if (d.getElementById(id)) {return;}\\n     js = d.createElement(s); js.id = id;\\n     js.src = \\\"https://connect.facebook.net/en_US/sdk.js\\\";\\n     fjs.parentNode.insertBefore(js, fjs);\\n   }(document, 'script', 'facebook-jssdk'));\\n</script>\\n<!-- Google tag (gtag.js) -->\\n<script async=\\\"\\\" src=\\\"https://www.googletagmanager.com/gtag/js?id=AW-16638722059\\\"></script>\\n<script>\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){dataLayer.push(arguments);}\\n  gtag('js', new Date());\\n\\n  gtag('config', 'AW-16638722059');\\n</script>\\n\\n\\n<!-- Hotjar Tracking Code for Site 5160115 (name missing) -->\\n<script>\\n    (function(h,o,t,j,a,r){\\n        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\\n        h._hjSettings={hjid:5160115,hjsv:6};\\n        a=o.getElementsByTagName('head')[0];\\n        r=o.createElement('script');r.async=1;\\n        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\\n        a.appendChild(r);\\n    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\\n</script>\\n\\n<script>\\n(function () {\\n  async function sendAttributionData() {\\n    const url = 'https://nfo-arbitrium.el.r.appspot.com/channelAttribution/store-attribution';\\n    const apiKey = 'lZxTPXggnP4ygq4PKaVjCQWdRVCYFrz4uxwWf3H3';\\n    const urlParams = new URLSearchParams(window.location.search);\\n\\n    // Log extracted query parameters\\n    console.log('URL Parameters:', {\\n      fbclid: urlParams.get(\\\"fbclid\\\"),\\n      utm_campaign: urlParams.get(\\\"utm_campaign\\\"),\\n      utm_source: urlParams.get(\\\"utm_source\\\"),\\n      utm_medium: urlParams.get(\\\"utm_medium\\\"),\\n      utm_term: urlParams.get(\\\"utm_term\\\"),\\n      utm_content: urlParams.get(\\\"utm_content\\\"),\\n    });\\n\\n    const existingSessionId = getCookie('session_id');\\n    console.log('Existing session_id:', existingSessionId);\\n\\n    const payload = {\\n      username: null,\\n      phone_number: null,\\n      session_id: existingSessionId || null,\\n      data: {\\n        currentUrl: window.location.href || null,\\n        currentPath: window.location.pathname || null,\\n        referrer: document.referrer || null,\\n        fbclid: urlParams.get(\\\"fbclid\\\") || null,\\n        utm_campaign: urlParams.get(\\\"utm_campaign\\\") || null,\\n        utm_source: urlParams.get(\\\"utm_source\\\") || null,\\n        utm_medium: urlParams.get(\\\"utm_medium\\\") || null,\\n        utm_term: urlParams.get(\\\"utm_term\\\") || null,\\n        utm_content: urlParams.get(\\\"utm_content\\\") || null,\\n        additional_data:{\\n          event_name:\\\"user_viewed_NFO_Books_landing_page\\\"\\n        }\\n      },\\n    };\\n\\n    // Log the constructed payload\\n    console.log('Payload to be sent:', payload);\\n\\n    try {\\n      const response = await fetch(url, {\\n        method: 'POST',\\n        headers: {\\n          'Content-Type': 'application/json',\\n          'x-api-key': apiKey,\\n        },\\n        body: JSON.stringify(payload),\\n      });\\n\\n      // Log the response status\\n      console.log('Response status:', response.status);\\n\\n      if (!response.ok) {\\n        console.error('Failed to send attribution data:', response.statusText);\\n        return;\\n      }\\n\\n      const responseData = await response.json();\\n      // Log the response data\\n      console.log('Response data:', responseData);\\n\\n      if (responseData.session_id && !existingSessionId) {\\n        console.log('Setting new session_id:', responseData.session_id);\\n        setCookie('session_id', responseData.session_id, 7);\\n      }\\n    } catch (error) {\\n      console.error('Error sending attribution data:', error);\\n    }\\n  }\\n\\n  function setCookie(name, value, days) {\\n    const expires = new Date();\\n    expires.setDate(expires.getDate() + days);\\n    console.log(`Setting cookie: ${name}=${value}; expires=${expires.toUTCString()}; path=/`);\\n    document.cookie = `${name}=${value}; expires=${expires.toUTCString()}; path=/; domain=nationalfinanceolympiad.com; secure; SameSite=None`;\\n  }\\n\\n  function getCookie(name) {\\n    const cookieArr = document.cookie.split(';');\\n    console.log('All cookies:', document.cookie);\\n    for (const cookie of cookieArr) {\\n      const [key, val] = cookie.trim().split('=');\\n      if (key === name) {\\n        console.log(`Cookie found: ${key}=${val}`);\\n        return val;\\n      }\\n    }\\n    console.log(`Cookie not found: ${name}`);\\n    return null;\\n  }\\n\\n  console.log('Initializing attribution data function on window load.');\\n  window.onload = sendAttributionData;\\n})();\\n\\n</script>\\n\\n\",customHTMLHeadStart:'<!-- \\n  📌 UTM Parameter Persistence Script\\n  This script captures UTM parameters (utm_source, utm_medium, etc.) from the URL\\n  and stores them in sessionStorage. This ensures they are preserved across internal \\n  page navigation in Framer (SPA), so components can access them even if the URL changes.\\n-->\\n<script>\\n  (function () {\\n    const urlParams = new URLSearchParams(window.location.search);\\n    const utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_term\", \"utm_content\"];\\n\\n    utmKeys.forEach((key) => {\\n      const value = urlParams.get(key);\\n      if (value) {\\n        sessionStorage.setItem(key, value);\\n        console.log(`Stored UTM param: ${key} = ${value}`);\\n      }\\n    });\\n  })();\\n</script>\\n',description:\"Why wait for adulthood to teach your child about money? The Personal Finance Handbook is here to make learning about finances exciting, fun, and practical. Packed with 65 colorful pages, real-life examples, and interactive activities.\",elements:{E7Ewj_TLB:\"reviews\",EitcrA7Yu:\"options\",hVAQr_OiO:\"footer\",TanZ_GMS0:\"schools\",yv0PBVxs6:\"reviews-1\"},framerSearch:{index:true},robots:\"max-image-preview:large\",serializationId:\"framer-V3J2x\",socialImage:\"https://framerusercontent.com/assets/z8OT1T3z83QGyF0rHgkUYWctks.png\",title:\"Personal Finance Handbook\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,SAAS,WAAW,sBAAsB,CAAC,CAAC,KAAK,SAAS,WAAW,iDAAiD,CAAC,CAAC,KAAK,UAAU,WAAW,iDAAiD,CAAC,CAAC,KAAK,UAAU,WAAW,gDAAgD,CAAC,CAAC,KAAK,SAAS,WAAW,+CAA+C,CAAC,CAAC,KAAK,UAAU,WAAW,wBAAwB,CAAC,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAovJ,oBAAoB;;;;;;;;;;;;;;;;;;;;EAAwuB,YAAY,6OAA6O,SAAS,CAAC,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,UAAU,UAAU,UAAU,YAAY,CAAC,aAAa,CAAC,MAAM,GAAK,CAAC,OAAO,0BAA0B,gBAAgB,eAAe,YAAY,sEAAsE,MAAM,4BAA4B,SAAS,qBAAqB,AAAE,mBAAa,EAAgB,EACxkN,EAAqB,CAAC,QAAU,CAAC,gBAAkB,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,QAAU,CAAC,KAAO,WAAW,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC"}