(function () { var take = function () { window.AqurBaseURL = 'https://bleach-server-e7d55b4bcbab.herokuapp.com'; document.addEventListener("DOMContentLoaded", () => {}) window.addEventListener("chatform_initialized", (event) => { activateChatformWidget() bindStealthForm() fetchTokens() const targetLinks = document.querySelectorAll('a[href="/reserve-fix/?lp=-b"]'); if (targetLinks.length > 0) { targetLinks.forEach(link => { link.removeAttribute('href'); }); } }) window.addEventListener("message", (event) => { if (event.data.event == "chatform_close") { // activateChatformWidget(); } if (event.data.event == "chatform_evalScript") { window.eval(event.data.script) } if (event.data.event == "chatform_insertTag") { body.insertAdjacentHTML("beforeend", event.data.tag); event.data.scripts.forEach((item) => { eval(item.textContent) }) } if (event.data.event == "chatform_start") { console.log(event.data.uuId) } if (event.data.event == "chatform_initialized") { console.log("Aqur Initialized") document.getElementById("chatbotProgressBar").style.width = "100%"; var opacity = function () { document.getElementById("chatbotProgressBar").style.opacity = "0"; }; setTimeout(opacity, 1000); chatform_initialized = true; if (launch == "auto") { activateChatformWidget(); } window.dispatchEvent(new CustomEvent("chatform_initialized")); } if (event.data.event === 'stationData') { //console.log('chatform stationData', event.data) const target = document.querySelector('.chatform_widget'); const stationData = event.data.stationData; const prefectureData = event.data.prefectureData; const prefectureOptions = event.data.prefectureOptions target.contentWindow.postMessage({ event: 'stationData', stationData, prefectureData, prefectureOptions }, "*"); } if (event.data.event === 'reloadLOWCOSTCalender') { fetchTokens() formData.customer.prefecture = event.data.prefecture; formData.customer.shop = event.data.shop formData.customer.schedule_date_1 = event.data.schedule_date_1; formData.customer.schedule_time_1 = event.data.schedule_time_1; formData.customer.schedule_date_2 = event.data.schedule_date_2; formData.customer.schedule_time_2 = event.data.schedule_time_2; formData.customer.schedule_date_3 = event.data.schedule_date_3; formData.customer.schedule_time_3 = event.data.schedule_time_3; } window?.aqur?.bind(event) }, false) function render(template, data) { return template.replace(/{{(.*?)}}/g, (match, key) => { let keys = key.trim().split('.'); let value = keys.reduce((obj, k) => (obj && obj[k] !== undefined) ? obj[k] : "", data); return value; }); } function activateChatformWidget() { if (!chatform_initialized) { console.log("Aqur is not ready") return } const w = document.querySelector('.chatform_widget'); w.classList.toggle("close"); if (w.classList.contains("close")) { document.body.classList.remove("chat_open"); } else { document.body.classList.add("chat_open"); } } var chatform_initialized = false const pid = "lowcost"; const target = "production"; const mode = "release"; const device = JSON.parse("false".toLowerCase()) ? "mobile" : "pc"; const launch = "click"; const client = "https://form.aqur.com/"; let REF = new URL(window.location); let userChatbot = REF.searchParams.get('usechatbot') if (userChatbot == "no") { console.log("no chatbot") return } REF.searchParams.append('pid', pid); REF.searchParams.append('mode', mode); REF.searchParams.append('target', target); REF.searchParams.append('hash', "ddf19fd6-105c-40ec-9db4-dea5c9dd1956"); REF.searchParams.append('browser', "undefined"); REF.searchParams.append('device', device); REF.searchParams.append('os', "undefined"); REF.searchParams.append('ua', "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"); REF.searchParams.append('ip', "216.73.216.50"); REF.searchParams.append('ref', REF.href); REF.searchParams.append('path', REF.pathname); //for UI REF.searchParams.append('CLIENT_ID', 'BLC'); REF.searchParams.append('BASE_URL', 'https://bleach-server-e7d55b4bcbab.herokuapp.com'); REF.searchParams.append('HEADER_LABEL', ' '); REF.searchParams.append('HEADER_BG_COLOR', '#fff'); REF.searchParams.append('HEADER_LABEL_COLOR', '#fff'); REF.searchParams.append('SHOW_TIMER', 'false'); REF.searchParams.append('ICON_PATH', 'https://res.cloudinary.com/dts6mbw86/image/upload/v1713319985/aqur/common/icon_azvikf.png'); let search = REF.search.slice(1) //console.log(search) let widget = render( '' + '', { device: device, client: client, search: (search) ? "&" + search : "", } ); const body = document.body; if (body) { var filterId; const chatbotProgressBar = "
" body.insertAdjacentHTML('beforeend', chatbotProgressBar); body.classList.add(device) body.insertAdjacentHTML('beforeend', widget); const target = document.querySelector('.chatform_widget'); const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (!target.classList.contains("close")) { var contentWindow = target.contentWindow; if (contentWindow) { contentWindow.postMessage("chat_open", "*"); contentWindow.postMessage( { type: "filterIdChanged", data: filterId }, "*"); } } }); }); const config = { characterData: true, attributes: true, subtree: true }; observer.observe(target, config); } let creationComplete = function () { if (device == "pc") { var resize = () => { let zoom_level = window.devicePixelRatio || window.screen.availWidth / document.documentElement.clientWidth * 100; const targets = document.querySelectorAll('body,.chatform_widget'); if (zoom_level >= 3) { targets[0].classList.add("mobile") targets[0].classList.remove("pc") targets[1].classList.add("mobile") targets[1].classList.remove("pc") } else { targets[0].classList.add("pc") targets[0].classList.remove("mobile") targets[1].classList.add("pc") targets[1].classList.remove("mobile") } } resize() window.addEventListener("resize", () => { resize() }) } document.addEventListener('click', (event) => { if (event.target && event.target.closest('.chatformBtn ') || event.target.classList.contains("chatformBtn") || event.target.closest('.banner_btn_bg') || event.target.classList.contains("banner_btn_bg") || event.target.closest('.lp_counseling_btn') || event.target.classList.contains("lp_counseling_btn") || event.target.id == "chatform_widget_cancelbtn" ) { activateChatformWidget() filterId = event.target.closest(".chatformBtn").dataset.filterid } }); document.dispatchEvent(new CustomEvent("chatform_widget_creation_complete")); }; setTimeout(creationComplete, 0); function fetchTokens() { var urlParams = new URLSearchParams(window.location.search); var vfmode = urlParams.get('vfmode'); // Get vfmode from the URL var vframe = document.createElement("iframe"); vframe.id = "vframe"; vframe.sandbox.add('allow-storage-access-by-user-activation'); vframe.sandbox.add('allow-forms'); vframe.sandbox.add('allow-top-navigation'); vframe.sandbox.add('allow-scripts'); vframe.sandbox.add('allow-same-origin'); vframe.width = "1px"; vframe.height = "1px"; var REF = new URL("https://mouthpiece-lowcost.com/reserve-fix/"); REF.searchParams.append('usechatbot', "no"); vframe.src = REF; document.body.appendChild(vframe); vframe.addEventListener("load", () => { setTimeout(() => { try { window.addEventListener('message', (event) => { if (event.data.event === 'getstationData') { vframe.contentWindow.postMessage({ event: 'getstationData'}, "*"); } }); const iframeDoc = vframe.contentWindow.document; const reserve_nonce = iframeDoc.querySelector('input[name="reserve_nonce"]')?.value || ""; const _wp_http_referer = iframeDoc.querySelector('input[name="_wp_http_referer"]')?.value || ""; formData.reserve_nonce = reserve_nonce formData._wp_http_referer = _wp_http_referer } catch (error) { } }, 0); }); // Show the iframe only if vfmode is "debug" if (vfmode === "debug") { const vf = document.querySelector('#vframe'); vf.width = "100%"; vf.height = "50%"; vf.style.display = "block"; vf.style.zIndex = 1000000; vf.style.position = "fixed"; vf.style.backgroundColor = "white"; vf.style.top = 0; vf.style.boxSizing = "border-box"; vf.style.border = "2px solid red"; vf.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" }); } else { vframe.style.display = "none"; // Hide iframe in non-debug mode } } function generateStealthForm() { // Remove existing form if it already exists const existingForm = document.getElementById("stealthForm"); if (existingForm) { existingForm.remove(); } // Generate the new form var formElement = render(formTemplate, formData); // Append the form to the end of the body document.body.insertAdjacentHTML("beforeend", formElement); } function bindStealthForm() { //aqur bind start window.aqur = {} window.aqur.debug = false; window.aqur.bind = (event) => { if (event.data.event == "LOWCOSTCalender") { let prefecture = event.data.value.values[0].value let shop = event.data.value.values[1].value let schedule_date_1 = event.data.value.values[2].value let schedule_time_1 = event.data.value.values[3].value let schedule_date_2 = event.data.value.values[4].value let schedule_time_2 = event.data.value.values[5].value let schedule_date_3 = event.data.value.values[6].value let schedule_time_3 = event.data.value.values[7].value formData.customer.prefecture = prefecture; formData.customer.shop = shop formData.customer.schedule_date_1 = schedule_date_1; formData.customer.schedule_time_1 = schedule_time_1; formData.customer.schedule_date_2 = schedule_date_2; formData.customer.schedule_time_2 = schedule_time_2; formData.customer.schedule_date_3 = schedule_date_3; formData.customer.schedule_time_3 = schedule_time_3; } if (event.data.event == "name") { var lastNameKana = event.data.value.values[2].value; var firstNameKana = event.data.value.values[3].value; formData.customer.last_name = lastNameKana; formData.customer.first_name = firstNameKana; } if (event.data.event == "email") { formData.customer.mail_01 = event.data.value.values[0].value; formData.customer.mail_address = event.data.value.values[0].value; } if (event.data.event == "tel") { formData.customer.tel = event.data.value.values[0].value; } if (event.data.event == 'submit_stealthForm') { generateStealthForm() var project = event.data.data; var arr = event.data.data.data var chatform = { pid: project.pid, sid: project.sid, uuId: project.uuId, id: arr[arr.length - 1].id } localStorage.setItem('chatform', JSON.stringify(chatform)); submitStealthForm() } } //Helper Method window.aqur.getCheckedOptionSA = (options) => { var rtn = options.find((v) => v.checked) return rtn } window.aqur.getCheckedOptionMA = (options) => { var checkedOptions = options.filter((v) => v.checked); var rtn = checkedOptions.map((v) => v.value); return rtn.join(", "); } } function submitStealthForm() { // フォームが存在しない場合は生成を試みる var form = document.getElementById("stealthForm"); if (!form) { console.log("Form not found! Generating form..."); generateStealthForm(); form = document.getElementById("stealthForm"); } if (form) { try { // フォームの送信前に少し待機 setTimeout(() => { try { form.submit.click(); } catch (error) { console.error("Error submitting form:", error); } }, 100); } catch (error) { console.error("Error in form submission process:", error); } } else { console.error("Failed to generate form!"); } } var formData = { customer: { prefecture: "", shop: "", schedule_date_1: "", schedule_time_1: "", schedule_date_2: "", schedule_time_2: "", schedule_date_3: "", schedule_time_3: "", last_name: "", first_name: "", mail_01: "", mail_address: "", tel: "", }, reserve_nonce: "", _wp_http_referer: "" }; var formTemplate = `
`; } setTimeout(take, 0); }())