jQuery(
function($){
$(document.body).on('added_to_cart',
function(e, fragments, cart_hash, thisbutton){
}
);
let script=document.createElement('script');
script.src='https://unpkg.com/libphonenumber-js@1.10.45/bundle/libphonenumber-min.js';
document.head.appendChild(script);
let uuidScript=document.createElement('script');
uuidScript.src='https://cdnjs.cloudflare.com/ajax/libs/uuid/8.1.0/uuidv4.min.js';
document.head.appendChild(uuidScript);
function getEmailAndPhone(inputElement, pixelCode, source){
if(window.tt4b_script_vars.advanced_matching!=='1'){
return;
}
let result={
email: "",
phone_number: ""
};
if(! inputElement){
return result
}
let form=inputElement.closest('form')||inputElement.querySelector('form');
if((! form||form.length===0)&&source!=='ninjaforms'){
return;
}else if((! form||form.length===0)&&source==='ninjaforms'){
form=inputElement.first('form')[0];
}
let inputElements=form.querySelectorAll('input');
for (let input of inputElements){
if(input.type==='email'){
result.email=input.value;
}else if(input.type==='tel'){
try {
let phone_number=input.value;
result.phone_number=libphonenumber.parsePhoneNumber(phone_number, window.tt4b_script_vars.country).number
} catch (error){
console.warn("Error occurred while parsing phone number: ", error);
}}
}
ttq.instance(pixelCode).identify(result);
}
function firePixelBasedOnFormIntent(inputElement, pixelCode, source){
let form=inputElement.closest('form')||inputElement.querySelector('form');
if((! form||form.length===0)&&source!=='ninjaforms'){
return;
}else if((! form||form.length===0)&&source==='ninjaforms'){
form=inputElement.first('form')[0];
}
let inputElements=form.querySelectorAll('input');
let hasAMData=false;
for (let input of inputElements){
if(input.type==='email'||input.type==='tel'){
hasAMData=true;
break;
}}
let eventType=hasAMData ? 'Contact':'SubmitForm'
let event_id=""
try {
event_id=uuidv4()
} catch (error){
console.warn("Error occurred while generating uuidv4: ", error);
}
ttq.instance(pixelCode).track(eventType,
{
'source':source,
'wp_plugin':source,
"event_id":event_id
}
)
}
function createObserver(source){
return new MutationObserver(
function (mutations){
mutations.forEach(function (mutation){
if(window.getComputedStyle(mutation.target).display!=='none'){
getEmailAndPhone(mutation.target, window.tt4b_script_vars.pixel_code);
firePixelBasedOnFormIntent(mutation.target, window.tt4b_script_vars.pixel_code, source)
}}
);
}
);
}
document.addEventListener('submit',
function (event){
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "fallback")
}
);
$('button, :submit').on('click',
function (event){
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
let event_id=""
try {
event_id=uuidv4()
} catch (error){
console.warn("Error occurred while generating uuidv4: ", error);
}
ttq.instance(pixel_code).track('ClickButton',
{
'content': 'SubmitClick',
"event_id": event_id
}
);
}
);
document.addEventListener('wpcf7mailsent',
function (event){
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "contactform7")
},
false
);
var mailchimp_forms=document.querySelectorAll('.mc4wp-form');
mailchimp_forms.forEach(function (form){
var pixel_code=window.tt4b_script_vars.pixel_code;
form.addEventListener('submit',
function (event){
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "mailchimp4wordpress")
}
);
}
);
var jetpackMailchimpNodes=document.querySelectorAll('.wp-block-jetpack-mailchimp_success');
if(jetpackMailchimpNodes.length > 0){
var jetpackMailchimpObserver=createObserver('jetpackmailchimp');
jetpackMailchimpNodes.forEach(function (targetNode){
jetpackMailchimpObserver.observe(targetNode, { attributes: true, childList: true, subtree: true });
}
);
}
$('input.mailpoet_submit').on('click',
function (){
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "mailpoet")
}
);
var spectraForms=document.querySelectorAll('.uagb-forms-main-form');
spectraForms.forEach(function (form){
var pixel_code=window.tt4b_script_vars.pixel_code;
form.addEventListener('submit',
function (event){
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "spectra")
}
);
}
);
$('form.wpforms-form').on('wpformsAjaxSubmitSuccess',
(event)=> {
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "wpforms")
}
)
if(document.querySelector('[class*=jetpack-contact-form]')){
document.addEventListener('submit',
(event)=> {
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
firePixelBasedOnFormIntent(event.target, pixel_code, "jetpack")
}
);
}
$(document).on('nfFormSubmitResponse',
(event)=> {
event.preventDefault();
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone($('.nf-form-layout'), pixel_code, "ninjaforms");
firePixelBasedOnFormIntent($('.nf-form-layout'), pixel_code, "ninjaforms")
}
);
$(document).on('nfFormReady',
(event)=> {
event.preventDefault();
$('button, :submit, input[type="submit"]').on('click',
function (event){
var pixel_code=window.tt4b_script_vars.pixel_code;
getEmailAndPhone(event.target, pixel_code);
ttq.instance(pixel_code).track('ClickButton',
{
'content': 'SubmitClick'
}
);
}
);
}
)
}
);