/*!
 * bforge sitepackage v1.0.0 (https://brainforge.at)
 * Copyright 2023-2024 Philip Grussmann
 * Licensed under the GPL-2.0-or-later license
 */
import{configVarsPromise,startup,userInteractionPromise}from"promiseHelpers";import{stage,debug}from"Debug";class CheckeffectHelper{#debug=debug("checkeffect");#userid1;#userid2;#mymonPromise=!1;#mymonFormPromise=!1;#previousUrl="";constructor({userid1:e,userid2:t}){this.#userid1=stage?"test_stage":e,this.#userid2=stage&&void 0!==t?"test_stage":t,this.#debug&&(console.log("Setting up checkeffect helper"),console.log({userid1:this.#userid1,userid2:this.#userid2})),globalThis.ceFormEvents=globalThis.ceFormEvents||[],globalThis.ceARG={u:this.#userid1,dom:"//checkeffect.at",no_run:1,rmEvListener:1},globalThis.cefARG={u:this.#userid1,dom:"//checkeffect.at",no_run:1},globalThis.ceFormEvents.forEach(e=>{e=this.#assertFormEvent(e);!1!==e&&this.#sendFormEvent(e)}),globalThis.ceFormEvents.push=e=>{e=this.#assertFormEvent(e);!1!==e&&this.#sendFormEvent(e)}}#assertFormEvent(e){var t;let s,o;return"object"==typeof e&&null!==e&&"a"in e&&"string"==typeof e.a&&("view"===e.a||"send"===e.a)&&(t=e.a,"t1"in e&&"number"==typeof e.t1&&(s=e.t1),"t2"in e&&"number"==typeof e.t2&&(o=e.t2),{action:t,formId1:s,formId2:o})}async#sendFormEvent({action:e,formId1:t,formId2:s}){if(this.#debug&&(console.log("Logging form event:"),console.log({action:e,formId1:t,formId2:s})),stage&&!1===this.#debug)return!1;if("number"==typeof t&&"string"==typeof this.#userid1){await this.#mymonForm,globalThis.cefARG.a=e,globalThis.cefARG.u=this.#userid1,globalThis.cefARG.t=t;try{globalThis.ce_runFlog({force:1})}catch(e){console.log("Could not run ce_runFlog")}}if("number"==typeof s&&"string"==typeof this.#userid2){await this.#mymonForm,globalThis.cefARG.a=e,globalThis.cefARG.u=this.#userid2,globalThis.cefARG.t=s;try{globalThis.ce_runFlog({force:1})}catch(e){console.log("Could not run ce_runFlog")}}}get#mymon(){return(!stage||!1!==this.#debug)&&(!1===this.#mymonPromise&&(this.#mymonPromise=new Promise(e=>{var t=document.createElement("script");t.src="//checkeffect.at/mymon2.js",t.onload=()=>{e()},document.head.append(t)})),this.#mymonPromise)}get#mymonForm(){return(!stage||!1!==this.#debug)&&(!1===this.#mymonFormPromise&&(this.#mymonFormPromise=new Promise(e=>{var t=document.createElement("script");t.src="//checkeffect.at/mymon_form_log2.js",t.onload=()=>{e()},document.head.append(t)})),this.#mymonFormPromise)}async pageView(e=void 0){if(this.#debug&&(console.log("Logging page view"),console.log(e??document.location.href)),stage&&!1===this.#debug)return!1;var t=(await configVarsPromise)?.pid?.search===document.body.dataset.pid,e=new URL(e??document.location.href);if(t&&null!==(t=document.getElementById("tx-indexedsearch-searchbox-sword"))&&"value"in t&&"string"==typeof t.value&&(t=t.value,e.searchParams.set("q",t)),this.#previousUrl===e.href)this.#debug&&console.log("URL same as previous URL don't track!");else{this.#previousUrl=e.href,globalThis.ceARG.fpage=e.href,await this.#mymon;try{globalThis.ce_run_it({force:1}),"string"==typeof this.#userid2&&(globalThis.ceARG.u=this.#userid2,globalThis.ce_run_it({force:1}),globalThis.ceARG.u=this.#userid1)}catch(e){}this.#debug&&console.log(globalThis.ceARG),this.#trackClicks()}}#trackClicks(){if(stage&&!1===this.#debug)return!1;globalThis.cc={},document.querySelectorAll('a[href^="tel:"],a[href^="mailto:"]').forEach(s=>{s instanceof HTMLAnchorElement&&s.addEventListener("click",e=>{var t=s.href.startsWith("tel:")?"hptlcl":"hpemcl";globalThis.celgClick(e,this.#userid1,1,t,1),void 0!==this.#userid2&&globalThis.celgClick(e,this.#userid2,1,t,1)},{once:!0})})}}let ceInstance=null,start=async()=>{var e=await configVarsPromise,t=(e?.api?.checkeffect?.userID1??"").trim(),e=(e?.api?.checkeffect?.userID2??"").trim();if(""!==t)return new CheckeffectHelper({userid1:t,userid2:""!==e?e:void 0})};startup({promise:userInteractionPromise,emitter:[{emitter:document,events:["turbo:load"]}]},async e=>{let t=await(ceInstance=null===ceInstance?start():ceInstance);void 0!==t&&(t.pageView((e??{})?.event?.detail?.url),0!==(e=document.querySelectorAll("turbo-frame")).length)&&e.forEach(e=>{e.addEventListener("turbo:frame-load",e=>{t.pageView(e?.detail?.url)})})});