 (function () {
    tp = window["tp"] || [];
  
   try {
    window.meterValue = "No meter on page";

    tp.push(["addHandler", "meterActive", function(meterData) {
      window.meterValue = meterData;
    }]);
  } catch (e) { }

    /*
         ********************************
         ADOBE ANALYTICS CALLBACKS START
         V 1.2
         ********************************
     */

    /* Checkout related */
    /**
     * Event properties
     *
     * chargeAmount - amount of purchase
     * chargeCurrency
     * uid
     * email
     * expires
     * rid
     * startedAt
     * termConversionId
     * termId
     * promotionId
     * token_list
     * cookie_domain
     * user_token
     *
     */
    function onCheckoutComplete(data) {
    }

    function onCheckoutExternalEvent() {
    }

    function onCheckoutClose(event) {
        /* Default behavior is to refresh the page on successful checkout */
        if (event && event.state == "checkoutCompleted") {
            location.reload();
        }
    }

    function onCheckoutCancel() {
    }

    function onCheckoutError() {
    }

    function onCheckoutSubmitPayment() {
    }

    /* Meter callback */
    function onMeterExpired() {

    }

    /* Meter callback */
    function onMeterActive() {

    }

   function onCustomEvent(event) {
     console.log(event);
  if (!event || !event.eventName) {
    return;
  }
  try {
    if (Object.keys(event.params).length === 0) {
      event.params = {"eventName": event.eventName}
    }
  } catch (e) {}
  if (event.eventName.includes('ARW - Register Now CTA - Click') || event.eventName.includes('HRW - Register Now CTA - Click') || event.eventName.includes('Register Now - Click Desktop') || event.eventName.includes('SF - Create Account - Click') || event.eventName.includes('RR - Register Now CTA - Click')) {
    _satellite.track('RegistrationStarted');
  } else if (event.eventName === 'SW - Submit Clicked') {
    //location.reload();
  } else if (event.eventName === 'InfoSubPurchaseClick') {
    if (window.location.href.includes('/Info/Subscribe')) {
      document.cookie = "_pc_checkoutType=InfoSubscribe; expires="
    }
  } else if (event.eventName === "Register Form - Submit - Parent") {
      const url = window.location.href;
      let eventName = 'Register Form - Submit - Click';
      if (url.includes('/Info/Subscribe')) {
        eventName = 'Register Form Checkout - Submit - Click'
      }

      const eventObject = {
        event: eventName,
        params: {"eventName": eventName}
      }

    parent.postMessage(eventObject, 'https://arcxp-sandbox-nutraingredients-v2.wrbm.com/');
  }
}

    /* Callback executed when a user must login */
    function onLoginRequired() {
        // this is a reference implementation only
        // your own custom login/registration implementation would
        // need to return the tinypass-compatible userRef inside the callback

        // mysite.showLoginRegistration(function (tinypassUserRef)
        // tp.push(["setUserRef", tinypassUserRef]); // tp.offer.startCheckout(params); // }
        // this will prevent the tinypass error screen from displaying

        return false;
    }

    /* Callback executed after a tinypassAccounts login */
    function onLoginSuccess() {
    }

    /* Callback executed after an experience executed successfully */
    function onExperienceExecute(event) {
    }

    /* Callback executed if experience execution has been failed */
    function onExperienceExecutionFailed(event) {
    }

    /* Callback executed if external checkout has been completed successfully */
    function onExternalCheckoutComplete(event) {
        /* Default behavior is to refresh the page on successful checkout */
        location.reload();
    }

    /*
        ********************************
        ADOBE ANALYTICS CALLBACKS END
        ********************************
    */

  	// Do not modify
    tp.push(["setAid", 'Xrd9EndJpu']);
  	tp.push(["setCookieDomain", "foodnavigator.com"]);
  	tp.push(["setCxenseSiteId", "4732521677511499362"]);
    tp.push(["setEndpoint", 'https://buy.tinypass.com/api/v3']);
    tp.push(["setUseTinypassAccounts", false ]);
    tp.push(["setUsePianoIdUserProvider", true ]);

    /*
    ********************************
    ADOBE ANALYTICS HANDLERS START
    V 1.0
    ********************************
*/
/* checkout related events */
tp.push(["addHandler", "checkoutComplete", onCheckoutComplete]);
tp.push(["addHandler", "checkoutClose", onCheckoutClose]);
tp.push(["addHandler", "checkoutCustomEvent", onCheckoutExternalEvent]);
tp.push(["addHandler", "checkoutCancel", onCheckoutCancel]);
tp.push(["addHandler", "checkoutError", onCheckoutError]);
tp.push(["addHandler", "checkoutSubmitPayment", onCheckoutSubmitPayment]);

/* user login events */
tp.push(["addHandler", "loginRequired", onLoginRequired]);
tp.push(["addHandler", "loginSuccess", onLoginSuccess]);

/* Adobe Analytics */
tp.push(["addHandler", "customEvent", onCustomEvent])

/* meter related */
tp.push(["addHandler", "meterExpired", onMeterExpired]);
tp.push(["addHandler", "meterActive", onMeterActive]);

tp.push(["addHandler", "experienceExecute", onExperienceExecute]);
tp.push(["addHandler", "experienceExecutionFailed", onExperienceExecutionFailed]);

/* external checkout related events */
tp.push(["addHandler", "externalCheckoutComplete", onExternalCheckoutComplete]);
  
  try {
    const waitForTypes = setInterval(() => {
        const filterTypeBlock = document.querySelector('#subtype_filter');
        if (filterTypeBlock) {
            clearInterval(waitForTypes);
            if (window.location.href.includes('/search/?query') && filterTypeBlock && filterTypeBlock.querySelector('.filter_item')) {
                const selectedFilterType = filterTypeBlock.querySelectorAll('.filter_item');
        
                selectedFilterType.forEach((item) => {
                    item.addEventListener('click', () => {
                            _satellite.track('searchFilterType');
                    });
                });
            }
        }
    }, 10);

    setTimeout(() => {
        clearInterval(waitForTypes);
    }, 3000);
} catch (e) { }
  
  /*
    Custom Data Capture
    Version 1.0.1
    Exposes the user's custom fields for capture in Adobe Analytics

*/

try {
    const waitForTpLoad = setInterval(() => {
        if (tp && tp.pianoId && tp.pianoId.loadExtendedUser) {
            clearInterval(waitForTpLoad);
            tp.pianoId.loadExtendedUser({
                extendedUserLoaded: function (data) {
                    if (data && data.custom_field_values && tp.pianoId.isUserValid() && data.custom_field_values.length) {
                        data.custom_field_values.forEach((field) => {
                            const fieldName = field.field_name;
                            const fieldValue = field.value.replace(/["\[\]\\]/g, '');
        
                            if (digitalData && digitalData.user_data && fieldName && fieldValue) {
                                if ((fieldName.includes('Company') && !fieldName.includes('Activity')) && !digitalData.user_data.company) {
                                    digitalData.user_data.company = fieldValue;
                                } else if (fieldName.includes('Company_Activity') && !digitalData.user_data.company_type) {
                                    digitalData.user_data.company_type = fieldValue;
                                } else if (fieldName.includes('Employees') && !digitalData.user_data.employees) {
                                    digitalData.user_data.company_size = fieldValue;
                                } else if (fieldName.includes('Manufacturer_Industry') && !digitalData.user_data.industry) {
                                    digitalData.user_data.industry === fieldValue;
                                } else if (fieldName.includes('Country') && !digitalData.user_data.country) {
                                    digitalData.user_data.country = fieldValue;
                                } else if (fieldName.includes('Job_Function') && !digitalData.user_data.job_function) {
                                    digitalData.user_data.job_function = fieldValue;
                                } else if (fieldName.includes('Job_Title') && !digitalData.user_data.job_title) {
                                    digitalData.user_data.job_title - fieldValue;
                                } else if (fieldName.includes('Areas_of_Interest') && !digitalData.user_data.areas_of_interest) {
                                    digitalData.user_data.areas_of_interest = fieldValue.replace(/[,/]/g, '|');
                                } else if (fieldName.includes('Job_Seniority') && !digitalData.user_data.responsibility) {
                                    digitalData.user_data.responsibility = fieldValue;
                                }
                            }
                        });
                    }
                }
            });
        }
    }, 50);
    
    setTimeout(() => {
        clearInterval(waitForTpLoad);
    }, 2000);
} catch (e) { }

/*
    Custom Data Capture End
*/

/*
    ********************************
    ADOBE ANALYTICS HANDLERS END
    ********************************
*/

    tp.push(["init", function () {
        tp.experience.init()
    }]);
})();


    // do not change this section
    // |BEGIN INCLUDE TINYPASS JS|
    (function(src){var a=document.createElement("script");a.type="text/javascript";a.async=true;a.src=src;var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b)})("//cdn.tinypass.com/api/tinypass.min.js");
    // |END   INCLUDE TINYPASS JS|

