(function() { var take = function() { var vframe; var changePayment=false; var pageInfoUrl; var cartInUrl; if (window.location.hostname === 'localhost') { pageInfoUrl = "http://localhost:8080/client/pageInfo"; }else{ pageInfoUrl = "https://r2.aqur.com/client/pageInfo"; } var pageInfo; // fetchでGETリクエストを送信し、レスポンスをJSON形式で受け取りpageInfoに格納 fetch(pageInfoUrl) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(data => { pageInfo = data; if (window.location.hostname == 'localhost') { cartInUrl = "http://localhost:8080/#lastname"; }else{ cartInUrl= pageInfo.find((v)=>(v.pid==pid)).url; } //console.log("cartInUrl",cartInUrl); }) .catch(error => { console.error('There was a problem with the fetch operation:', error); }); document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.botchan_open').forEach(element => { element.classList.replace('botchan_open', 'chatformBtn'); }); createAqurBinding() }); window.addEventListener("createVframe", (event) => { if(vframe){ return } 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"; window.aqur.vframe = vframe; vframe.addEventListener("load", (e) => { //console.log(e.target.src) var insertDDP =()=>{ var script = vframe.contentWindow.document.createElement('script'); if (window.location.hostname === 'localhost') { script.src = "http://localhost:8080/client/ddp"; }else{ script.src = "https://r2.aqur.com/client/ddp"; } vframe.contentWindow.document.head.appendChild(script); var reset = () => { //console.log("reset") window.aqur.reset(); }; setTimeout(reset, 2000); } 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 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 REF = new URL(cartInUrl); let ad_code = url.searchParams.get('ad_code') REF.searchParams.append('ad_code', ad_code); REF.searchParams.append('chatbot', 1); 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.left=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 = "don_normal"; 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', "18b50d9f-4b24-41b5-ace2-6a16716588e2"); 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.191.31.19"); 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_close"){ activateChatformWidget(); } if(event.data.event == "chatform_evalScript"){ //console.log("chatform_evalScript",event.data.script) 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_submit"){ var project = event.data.project; var param={ event: "chatform_vframe_submit", project:project } vframe.contentWindow.postMessage(param, "*"); console.log("chatform_vframe_submit",project) } 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 }, "*"); } if(event.data.event == "globalAlert"){ //console.log("chatform_page_transition") const target = document.querySelector('.chatform_widget'); var param={ event: "globalAlert", text:event.data.text } target.contentWindow.postMessage(param, "*"); } if(window.aqur){ window.aqur.bind(event) } },false) function createAqurBinding(){ //console.log("createAqurBinding") //aqur bind start window.aqur = {} window.aqur.debug = false; window.aqur.save = (key, value) => { window.aqur[key] = value; } window.aqur.reset = () => { //console.log("do reset",window.aqur) window.aqur.setLastName(window.aqur.LastName) window.aqur.setFirstName(window.aqur.FirstName) window.aqur.setLastNameKana(window.aqur.LastNameKana) window.aqur.setFirstNameKana(window.aqur.FirstNameKana) window.aqur.setPostalCode(window.aqur.PostalCode) window.aqur.setPref(window.aqur.Pref) window.aqur.setCity(window.aqur.City) window.aqur.setStreet(window.aqur.Street) window.aqur.setBuilding(window.aqur.Building) window.aqur.setTel(window.aqur.Tel) window.aqur.setPaymentMethod(window.aqur.PaymentMethod) window.aqur.setToken(window.aqur.Token) } window.aqur.bind = (event) => { //console.log("waq",event.data.event) if (event.data.event == "name") { var FullName = event.data.value.values[0].value + event.data.value.values[1].value + event.data.value.values[2].value + event.data.value.values[3].value if(FullName!=window.aqur.FullName){ window.aqur.setLastName(event.data.value.values[0].value) window.aqur.setFirstName(event.data.value.values[1].value) window.aqur.setLastNameKana(event.data.value.values[2].value) window.aqur.setFirstNameKana(event.data.value.values[3].value) window.aqur.save("LastName", event.data.value.values[0].value) window.aqur.save("FirstName", event.data.value.values[1].value) window.aqur.save("LastNameKana", event.data.value.values[2].value) window.aqur.save("FirstNameKana", event.data.value.values[3].value) window.aqur.save("FullName", event.data.value.values[0].value + event.data.value.values[1].value + event.data.value.values[2].value + event.data.value.values[3].value ) } } if (event.data.event == "address") { var FullAddress = event.data.value.values[0].value + event.data.value.values[1].value + event.data.value.values[2].value + event.data.value.values[3].value + event.data.value.values[4].value; if(FullAddress!=window.aqur.FullAddress){ window.aqur.setPostalCode(event.data.value.values[0].value) window.aqur.setPref(event.data.value.values[1].value) window.aqur.setCity(event.data.value.values[2].value) window.aqur.setStreet(event.data.value.values[3].value) window.aqur.setBuilding(event.data.value.values[4].value) window.aqur.save("PostalCode", event.data.value.values[0].value) window.aqur.save("Pref", event.data.value.values[1].value) window.aqur.save("City", event.data.value.values[2].value) window.aqur.save("Street", event.data.value.values[3].value.replace(/[−ー―‐-〜]/g, '-')) window.aqur.save("Building", event.data.value.values[4].value.replace(/[−ー―‐-〜]/g, '-')) window.aqur.save("FullAddress", event.data.value.values[0].value + event.data.value.values[1].value + event.data.value.values[2].value + event.data.value.values[3].value + event.data.value.values[4].value ) } } if (event.data.event == "tel") { window.aqur.setTel(event.data.value.values[0].value) window.aqur.save("Tel", event.data.value.values[0].value) } if (event.data.event == "birthday") { window.aqur.setBirthdayYear(Number(event.data.value.values[0].value)) window.aqur.setBirthdayMonth(Number(event.data.value.values[1].value)) window.aqur.setBirthdayDay(Number(event.data.value.values[2].value)) window.aqur.save("Year", event.data.value.values[0].value) window.aqur.save("Month", event.data.value.values[1].value) window.aqur.save("Day", event.data.value.values[2].value) } if (event.data.event == "gender") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) if(item){ window.aqur.setGender(item.value) window.aqur.save("Gender", item.value) } } if (event.data.event == "email") { window.aqur.setEmail(event.data.value.values[0].value) window.aqur.save("Email", event.data.value.values[0].value) } if (event.data.event == "password") { window.aqur.setPassword(event.data.value.values[0].value) window.aqur.setPasswordConfirmation(event.data.value.values[0].value) window.aqur.save("Password", event.data.value.values[0].value) } if (event.data.event == "payment") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) window.aqur.setPaymentMethod(item.value) window.aqur.save("PaymentMethod", item.value) } if (event.data.event == "cc") { window.aqur.setCardNumber(event.data.value.values[0].value) window.aqur.setCardExpirationYear(event.data.value.values[1].value) window.aqur.setCardExpirationMonth(event.data.value.values[2].value) window.aqur.setCardCvc(event.data.value.values[3].value) window.aqur.setCardHolderName(event.data.value.values[4].value) window.aqur.save("CardNumber", event.data.value.values[0].value) window.aqur.save("CardExpirationYear", event.data.value.values[1].value) window.aqur.save("CardExpirationMonth", event.data.value.values[2].value) window.aqur.save("CardExpirationCvc", event.data.value.values[3].value) window.aqur.save("CardExpirationHolderName", event.data.value.values[4].value) } if (event.data.event == "mailmagazine") { var d = event.data.value || event.data.data.data var item = window.aqur.getCheckedOptionMA(d.options); window.aqur.setNewsletterSendable(item==="" ? false : true) window.aqur.save("NewsletterSendable", item==="" ? false : true) } if (event.data.event == "couponMethod") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) if(item){ window.aqur.setCouponMethod(item.value) } } if (event.data.event == "upsell") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) window.aqur.setProduct(item.value) } if (event.data.event == "deliveryDate") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) if(item){ window.aqur.setDeliveryDate(item.value) } } if (event.data.event == "deliveryTime") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) if(item){ window.aqur.setDeliveryTime(item.value) } } if (event.data.event == "multipleselect") { var item = window.aqur.getCheckedOptionSA(event.data.value.options) if(item){ window.aqur.setPaymentMethod(item.value) window.aqur.save("PaymentMethod", item.value) } } if (event.data.event == "token") { window.aqur.setToken(event.data.value.values[0].value) window.aqur.save("Token", event.data.value.values[0].value) } //Syncronize Datadatables if(event.data.event == "getDeliveryDate"){ //console.log("getDeliveryDate") var rtn = []; const options = document.querySelectorAll('#select_scheduled_to_be_delivered_at option'); options.forEach((el,i)=>{ rtn.push( { name : "deliveryDate", id : "deliveryDate_"+i, value : el.label, label : el.label, checked : i==0?true:false } ) }) const iframe = document.querySelector('.chatform_widget'); iframe.contentWindow.postMessage( { type:"getDeliveryDate", data:rtn }, "*"); } if(event.data.event == "getDeliveryTime"){ //console.log("getDeliveryDate") var rtn = []; const options = document.querySelectorAll('#select_scheduled_delivery_time option'); options.forEach((el,i)=>{ rtn.push( { name : "deliveryTime", id : "deliveryTime_"+i, value : el.label, label : el.label, checked : i==0?true:false } ) }) const iframe = document.querySelector('.chatform_widget'); iframe.contentWindow.postMessage( { type:"getDeliveryTime", data:rtn }, "*"); } } //Binding Method for tamagokichi window.aqur.setLastName = (value) => { window.aqur.debug && console.log("debug setLastName", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setLastName",value:value}, "*"); } } window.aqur.setFirstName = (value) => { window.aqur.debug && console.log("debug setFirstName", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setFirstName",value:value}, "*"); } } window.aqur.setLastNameKana = (value) => { window.aqur.debug && console.log("debug setLastNameKana", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setLastNameKana",value:value}, "*"); } } window.aqur.setFirstNameKana = (value) => { window.aqur.debug && console.log("debug setFirstNameKana", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setFirstNameKana",value:value}, "*"); } } window.aqur.setPostalCode = (value) => { window.aqur.debug && console.log("debug setPostalCode", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setPostalCode",value:value}, "*"); } } window.aqur.setPref = (value) => { window.aqur.debug && console.log("debug setPref", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setPref",value:value}, "*"); } } window.aqur.setCity = (value) => { window.aqur.debug && console.log("debug setCity", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setCity",value:value}, "*"); } } window.aqur.setStreet = (value) => { window.aqur.debug && console.log("debug setStreet", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setStreet",value:value}, "*"); } } window.aqur.setBuilding = (value) => { window.aqur.debug && console.log("debug setBuilding", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setBuilding",value:value}, "*"); } } window.aqur.setTel = (value) => { window.aqur.debug && console.log("debug setTel", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setTel",value:value}, "*"); } } window.aqur.setPaymentMethod = (value) => { window.aqur.debug && console.log("debug setPaymentMethod", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setPaymentMethod",value:value}, "*"); } } window.aqur.setToken = (value) => { window.aqur.debug && console.log("debug setToken", value); if(value&&window.aqur.vframe){ window.aqur.vframe.contentWindow.postMessage({ event: "setToken",value:value}, "*"); } } //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(", "); } } } setTimeout(take, 0); }())