(function() { var take = function() { var vframe; var changePayment=false; window.addEventListener("createVframe", (event) => { const pageInfo=[ { pid:"sbrnt", url:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI1NSI7czozOiJxdHkiO3M6MToiMSI7fX19X0", url2:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI4MiI7czozOiJxdHkiO3M6MToiMSI7fX19", url3:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI4MyI7czozOiJxdHkiO3M6MToiMSI7fX19", subDomain:"medicine", projectName:"シボラナイト" }, { pid:"sbrnt_pfi", url:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czozOiIxMDUiO3M6MzoicXR5IjtzOjE6IjEiO319fQ", subDomain:"medicine", projectName:"シボラナイトF" }, { pid:"nmn", url:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI1MCI7czozOiJxdHkiO3M6MToiMSI7fX19", url2:"", url3:"https://medicine.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI4NiI7czozOiJxdHkiO3M6MToiMSI7fX19", subDomain:"medicine", projectName:"NMN" }, { pid:"don", url:"https://cosme.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI4OSI7czozOiJxdHkiO3M6MToiMSI7fX19", subDomain:"cosme", projectName:"ドンホワイドン" }, { pid:"cula", url:"https://store.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czo0OiIxNzg1IjtzOjM6InF0eSI7czoxOiIxIjt9fX0", subDomain:"store", projectName:"キュラ" }, { pid:"wmoa", url:"https://store.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czo0OiIxNjg5IjtzOjM6InF0eSI7czoxOiIxIjt9fX0", subDomain:"store", projectName:"まつ毛★デラックス メッグ マスカラ" }, { pid:"khyk", url:"https://cosme.tamagokichi.com/sc/products/product_connect/YToyOntzOjM6Im54diI7czoxOiIyIjtzOjc6InByb2R1Y3QiO2E6MTp7aTowO2E6Mjp7czoyOiJpZCI7czoyOiI5NSI7czozOiJxdHkiO3M6MToiMSI7fX19", subDomain:"cosme", projectName:"防風通聖散 貴秘薬" } ] var url = new URL(window.location.href); let userChatbot = url.searchParams.get('usechatbot') if(userChatbot){ return } 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"; vframe.addEventListener("load", (e) => { //console.log(e.target.src) var insertDDP =()=>{ var script = vframe.contentWindow.document.createElement('script'); script.src = "https://r2.aqur.com/client/ddp"; vframe.contentWindow.document.head.appendChild(script); } var url = new URL(vframe.contentWindow.location.href) var target = document.querySelector('.chatform_widget'); switch (url.pathname) { case "/sc/error": if(target){ target.contentWindow.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 2, pageIndex: -1 }, "*") var alert="お客様の情報を見直してください。"; var iframeDocument = vframe.contentWindow.document; var alertDanger = iframeDocument.querySelector('.alert_danger'); if (alertDanger) { alert = alertDanger.textContent } else { alert = iframeDocument.querySelector('.section_inner p').textContent; } if(/「戻る」ボタンよりお戻り頂き/.test(alert)||/クレジット決済は完了していません/.test(alert)){ changePayment = true } //console.log(alert) var param={ event: "chatform_bindFormErrorFound", text:alert, } target.contentWindow.postMessage(param, '*'); var cartInUrl = pageInfo.find((v)=>(v.pid==pid)).url var REF = new URL(cartInUrl); REF.searchParams.append('usechatbot', "no"); vframe.src = REF; } break; case "/sc/checkouts/index": const chatform=localStorage.getItem("chatform") if(chatform && changePayment){ console.log("pchange") var iframeDocument = vframe.contentWindow.document; iframeDocument.querySelectorAll('label').forEach(function(label) { if (label.textContent.includes("代金引換")) { var radioButtonId = label.getAttribute('for'); iframeDocument.getElementById(radioButtonId).checked = true; iframeDocument.getElementById(radioButtonId).click(); } }); var setSubmit = () => { var submitButton = iframeDocument.querySelector('.btn_cart'); if (submitButton) { //sp submitButton.click(); } else { //pc iframeDocument.querySelector("#btn_next").click() } }; setTimeout(setSubmit, 500); } insertDDP() if(target){ var param={ event: "chatform_vframeLoaded", url:url.href } target.contentWindow.postMessage(param, "*"); } break; default: insertDDP() console.log('do nothing'); } }) var cartInUrl = pageInfo.find((v)=>(v.pid==pid)).url var REF = new URL(cartInUrl); REF.searchParams.append('usechatbot', "no"); vframe.src = REF; document.body.appendChild(vframe); let vfmode = url.searchParams.get('vfmode') if(vfmode=="debug"){ vframe.width="100%"; vframe.height="150px" vframe.style.display= "block"; vframe.style.zIndex= 100000000; vframe.style.position= "fixed"; vframe.style.backgroundColor= "white"; vframe.style.top=0; vframe.style.boxSizing="border-box"; vframe.style.border="2px solid red"; vframe.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" }); var param={ event: "chatform_vframe_debug" } vframe.contentWindow.postMessage(param, "*"); } }) function render(template, data){ //console.log("render",template,data) return template.replace(/{{(.*?)}}/g, (match) => { return data[match.split(/{{|}}/).filter(Boolean)[0].trim()] }) } function activateChatformWidget(){ if(!chatform_initialized){ console.log("chatbot is not ready yet") return } const w = document.querySelector('.chatform_widget'); w.classList.toggle("close"); w.classList.toggle("normal"); if(w.classList.contains("close")){ document.body.classList.remove("chat_open"); }else{ document.body.classList.add("chat_open"); } } var chatform_initialized = false const pid = "sbrnt"; 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', "a1571114-b5fc-4b4c-9c14-e63aaf7898a9"); 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', "18.188.249.30"); REF.searchParams.append('ref', REF.href); REF.searchParams.append('path', REF.pathname); //for UI REF.searchParams.append('CLIENT_ID', 'R'); REF.searchParams.append('BASE_URL', 'https://rkyoto2-server-533951b5f2b3.herokuapp.com'); REF.searchParams.append('HEADER_LABEL', 'お申し込みはこちらから!'); REF.searchParams.append('HEADER_BG_COLOR', '#ed5757'); REF.searchParams.append('HEADER_LABEL_COLOR', '#fff'); REF.searchParams.append('SHOW_TIMER', 'true'); REF.searchParams.append('ICON_PATH', 'https://res.cloudinary.com/dts6mbw86/image/upload/v1713319985/aqur/common/icon_azvikf.png'); const params = new URLSearchParams(REF.search.slice(1)); var sid = params.get('qu_sid'); if(sid){ REF.searchParams.append('sid', sid); } let search = REF.search.slice(1) 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(){ //console.log("creationComplete") 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.id == "chatform_widget_cancelbtn" ) { activateChatformWidget() } }); document.dispatchEvent(new CustomEvent("chatform_widget_creation_complete")); }; setTimeout(creationComplete, 500); window.addEventListener("message", (event) => { if(event.data.event == "chatform_initialized"){ console.log("chatform_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 == "chatform_start"){ console.log(event.data.uuId) } if(event.data.event == "chatform_cose"){ 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_sent"){ console.log("chatform_sent",params) var params = event.data.params; location.href = params.targetURL; } if(event.data.event == "chatform_windowOpen"){ console.log("chatform_sent",params) var params = event.data.params; window.open(params.targetURL); } if(event.data.event == "chatform_vframe_bind"){ //console.log("chatform_vframe_bind",event.data) var data = event.data.project; var param={ event: "chatform_bindForm", project:data } vframe.contentWindow.postMessage(param, "*"); } if(event.data.event == "chatform_vframe_submit"){ //console.log("chatform_vframe_submit") var data = event.data.project; var param={ event: "chatform_bindFormSubmit" } vframe.contentWindow.postMessage(param, "*"); } if(event.data.event == "chatform_bindFormConversion"){ //console.log("chatform_bindFormConversion") const target = document.querySelector('.chatform_widget'); var param={ event: "chatform_bindFormConversion", order_id:event.data.order_id, onetime_password:event.data.onetime_password } target.contentWindow.postMessage(param, "*"); } if(event.data.event == "chatform_bindFormErrorFound"){ //console.log("chatform_bindFormErrorFound") const target = document.querySelector('.chatform_widget'); var param={ event: "chatform_bindFormErrorFound", text:event.data.text } target.contentWindow.postMessage(param, "*"); } if(event.data.event == "chatform_page_transition"){ //console.log("chatform_page_transition") const target = document.querySelector('.chatform_widget'); var param={ event: "page_transition", message:event.data.message, totalProcess: event.data.totalProcess, pageIndex:event.data.pageIndex } target.contentWindow.postMessage(param, "*"); } if(event.data.event == "chatform_windowOpen"){ console.log("chatform_sent",params) var params = event.data.params; window.open(params.targetURL); } if(event.data.event == "getIframeHeight"){ const iframe = document.querySelector('.chatform_widget'); var contentWindow = iframe.contentWindow; contentWindow.postMessage( { event:"sendIframeHeight", data:window.innerHeight }, "*"); } },false) } setTimeout(take, 0); }())