document.addEventListener("DOMContentLoaded", () => {
  // The webform embeded in paragraph type call_to_action_lead_generation will always
  // be available at this selector path
  const form = document.querySelector('.webform-submission-form');
  
    // Set international domains because using webforms in translated paragraphs can cause duplicate JS files to load and this helps get around complications from that
  let domain = 'ourfamilywizard.com';
  let analytics_domain = 'https://www.ourfamilywizard.com';
  switch(document.documentElement.lang) {
      case 'en-gb':
        domain = 'ourfamilywizard.co.uk';
        analytics_domain = 'https://www.ourfamilywizard.co.uk';
        break;
      case 'en-ca':
        domain = 'ourfamilywizard.ca';
        analytics_domain = 'https://www.ourfamilywizard.ca';
        break;
      case 'en-au':
        domain = 'ourfamilywizard.com.au';
        analytics_domain = 'https://www.ourfamilywizard.com.au';
        break;
      case 'en-nz':
        domain = 'ourfamilywizard.co.nz';
        analytics_domain = 'https://www.ourfamilywizard.co.nz';
        break;
      case 'es':
        domain = 'ourfamilywizard.com';
        analytics_domain = 'https://es.ourfamilywizard.com';
        break;
    default:
      break;
  }

  form.addEventListener("submit", function (e) {
    e.preventDefault();

    const formTarget = e.target;

    // get the name field
    const fullName = formTarget.querySelector("#fullName").value;

    // get email field value
    const email = formTarget.querySelector("#email").value;

    // If we didn't get any form values, return out
    if (!fullName || !email) {
      return;
    }

    // Send a Segment track with email
    if (typeof analytics !== 'undefined') {
      analytics.track('Lead Captured', {
        email: email,
        leadGenerationForm: 'homepageWidget',
        url: analytics_domain
      });
    }
    
    // Split name field value to firstName and lastName
    // assume anything prior to first space is firstName, everything after is lastName
    const namePartsArray = fullName.split(" ");
    const firstName = namePartsArray.shift();
    const lastName = namePartsArray.join(" ");

    // prepare as json and encode data
    const jsonData = JSON.stringify({ firstName, lastName, email });
    const jsonDataEncoded = btoa(jsonData);

    // set cookie for join form with encoded data   
    document.cookie = `signupInfo=${jsonDataEncoded};domain=.${domain};path=/`;
    window.location = `https://join.${domain}/app/join/step1`;
  });
});
