(function () { var take = function () { //DDP console.log("ddp1 bcc"); const BASE_URL = "https://pr.aqur.com"; const fetchOptions = { method: "POST", headers: { "Content-Type": "application/json" }, }; const chatform = localStorage.getItem("chatform_bbc"); if (localStorage.getItem("redirectScroll")) { document.addEventListener("DOMContentLoaded", () => { //ScrollFormtoSubmit("#ctl00_ContentPlaceHolder1_rCartList_ctl00_Div2") localStorage.removeItem("redirectScroll"); }); } if (chatform) { let chatFormData = JSON.parse(localStorage.getItem("chatform_bbc")); switch (true) { case window.location.pathname.includes("/Form/Error.aspx"): console.log("Form/Error.aspx"); localStorage.setItem("redirect-np", "true"); var redirectNPParam = { event: "redirect_thankPage", url: window.location.href, }; window.parent.postMessage(redirectNPParam, "*"); break; case window.location.pathname.includes("OrderConfirm.aspx"): console.log("OrderConfirm.aspx"); let secondConfirm = localStorage.getItem("secondConfirm"); let HasGMO = localStorage.getItem("HasGMO"); let passedGMO = localStorage.getItem("passedGMO"); let redirectNP = localStorage.getItem("redirect-np"); console.log("redirectNP Test", redirectNP); // document.addEventListener("DOMContentLoaded", () => { if(redirectNP) { console.log("redirectNP", redirectNP); console.log("return"); return; } if (chatFormData.paymentGMO != "" && !HasGMO && !passedGMO) { let param = { event: "chatform_page_transition", message: "order first confrm page with GMO", totalProcess: chatFormData.shippingData ? 8 : 6, pageIndex: 1, }; window.parent.postMessage(param, "*"); localStorage.setItem("HasGMO", true); // set page transition setTimeout(() => { document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_LinkButton2").click(); }, 500); } else { if (!secondConfirm) { let tmpTotal; if (passedGMO || chatFormData.paymentGMO) { tmpTotal = chatFormData.shippingData ? 8 : 6; } else { tmpTotal = chatFormData.shippingData ? 6 : 4; } if (chatFormData.shippingData) { let param = { event: "chatform_page_transition", message: "order first confrm page", totalProcess: tmpTotal, pageIndex: passedGMO ? 3 : 1, }; window.parent.postMessage(param, "*"); // document // .querySelector( // "#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_lbGotoShipping2" // ) // .click(); clickAndRetry("#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_lbGotoShipping2"); localStorage.setItem("secondConfirm", true); } else { //now comment if (localStorage.getItem("has_selcc")) { async function complete(data) { try { let ladingParam = { event: "chatform_page_transition", message: "cc_redirect", totalProcess: tmpTotal, pageIndex: passedGMO ? 3 : 1, }; window.parent.postMessage(ladingParam, "*"); const completeTarget = JSON.parse(data); await fetch(`${BASE_URL}/pdi/complete`, { ...fetchOptions, body: JSON.stringify({ pid: completeTarget.pid, sid: completeTarget.sid, uuId: completeTarget.uuId, id: "conversion", }), }); console.log("Conversion Tracked!!"); localStorage.removeItem("secondConfirm"); localStorage.removeItem("passedGMO"); localStorage.removeItem("HasGMO"); localStorage.removeItem("chatform_bbc"); localStorage.removeItem("has_selcc"); localStorage.setItem("redirectScroll", true); var param = { event: "redirect_thankPage", url: window.location.href, }; window.parent.postMessage(param, "*"); } catch (error) { console.error("Error:", error); } } complete(chatform); } else { let param = { event: "chatform_page_transition", message: "order first confrm page", totalProcess: tmpTotal, pageIndex: passedGMO ? 3 : 1, }; window.parent.postMessage(param, "*"); //old code //console.log("this is comfirm button 1!") // document // .querySelector("#ctl00_ContentPlaceHolder1_lbComplete3") // .click(); clickAndRetry("#ctl00_ContentPlaceHolder1_lbComplete3"); } } } if (secondConfirm) { let secondConfirmTotal = (passedGMO || chatFormData.paymentGMO) ? (chatFormData.shippingData ? 8 : 6) : 6; // Second Confirm After shipping page logic here // console.log("secondConfirm",secondConfirm) //now comment //window.parent.location.href.includes("3dmf-eye-048NP1OCNN2/test") if (localStorage.getItem("has_selcc")) { let param = { event: "chatform_page_transition", message: "cc_redirect", totalProcess: secondConfirmTotal, pageIndex: passedGMO ? 5 : 3, }; window.parent.postMessage(param, "*"); async function complete(data) { try { const completeTarget = JSON.parse(data); await fetch(`${BASE_URL}/pdi/complete`, { ...fetchOptions, body: JSON.stringify({ pid: completeTarget.pid, sid: completeTarget.sid, uuId: completeTarget.uuId, id: "conversion", }), }); console.log("Conversion Tracked!!"); localStorage.removeItem("secondConfirm"); localStorage.removeItem("passedGMO"); localStorage.removeItem("HasGMO"); localStorage.removeItem("chatform_bbc"); localStorage.removeItem("has_selcc"); localStorage.setItem("redirectScroll", true); var param = { event: "redirect_thankPage", url: window.location.href, }; window.parent.postMessage(param, "*"); } catch (error) { console.error("Error:", error); } } complete(chatform); } else { let param = { event: "chatform_page_transition", message: "np_redirect", totalProcess: secondConfirmTotal, pageIndex: passedGMO ? 5 : 3, }; window.parent.postMessage(param, "*"); //old code //console.log("this is comfirm button 2!") // document // .querySelector("#ctl00_ContentPlaceHolder1_lbComplete3") // .click(); clickAndRetry("#ctl00_ContentPlaceHolder1_lbComplete3"); } } } // }); break; case window.location.pathname.includes("OrderPayment.aspx"): console.log("OrderPayment.aspx"); let redirectNP2 = localStorage.getItem("redirect-np"); // document.addEventListener("DOMContentLoaded", () => { if(redirectNP2) { console.log("redirectNP2", redirectNP2); console.log("return"); return; } let paymentGMOData = chatFormData.paymentGMO; //console.log("HasGMO", HasGMO) if (paymentGMOData && localStorage.getItem("HasGMO")) { setTimeout(() => { // document // .querySelector( // "#ctl00_ContentPlaceHolder1_rCartList_ctl00_rPayment_ctl03_rbgPayment" // ) // .click(); clickAndRetry("#ctl00_ContentPlaceHolder1_rCartList_ctl00_rPayment_ctl03_rbgPayment"); }, 500); let param = { event: "chatform_page_transition", message: "order Payment Set page", totalProcess: chatFormData.shippingData ? 8 : 6, pageIndex: 2, }; window.parent.postMessage(param, "*"); localStorage.removeItem("HasGMO"); localStorage.setItem("passedGMO", true); } setTimeout(() => { clickAndRetry('[href*="javascript:doPostbackEvenIfCardAuthFailed=false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions"]'); // document // .querySelector( // '[href*="javascript:doPostbackEvenIfCardAuthFailed=false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions"]' // ) // .click(); }, 3500); // }); break; case window.location.pathname.includes("OrderShipping.aspx"): console.log("OrderShipping.aspx"); let redirectNP3 = localStorage.getItem("redirect-np"); // document.addEventListener("DOMContentLoaded", () => { if(redirectNP3) { console.log("redirectNP3", redirectNP3); console.log("return"); return; } // console.log("DOMContentLoaded OrderShipping.aspx"); let param = { event: "chatform_page_transition", message: "order shipping page", totalProcess: localStorage.getItem("passedGMO") ? 8 : 6, pageIndex: localStorage.getItem("passedGMO") ? 4 : 2, }; window.parent.postMessage(param, "*"); //配送パターン N日に届ける // console.log("shippingData", chatFormData.shippingData); let fixedPurchaseMonthlyDate = chatFormData.shippingData.fixedPurchaseMonthlyDate; const delivPtnDay = document.querySelector( "#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_ddlFixedPurchaseMonthlyDate" ); if(fixedPurchaseMonthlyDate && fixedPurchaseMonthlyDate !== "Undefind" && delivPtnDay) { delivPtnDay.querySelector( "#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_ddlFixedPurchaseMonthlyDate option[value='" + fixedPurchaseMonthlyDate + "']" ).selected = true; delivPtnDay.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); } //配送希望日 let shippingDate = chatFormData.shippingData.shippingDate; if (shippingDate != "指定なし" && shippingDate !== "Undefind") { if(document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingDate")) { const ShippingDateElem = document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingDate"); ShippingDateElem.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingDate option[value='" + shippingDate + "']").selected = true; ShippingDateElem.dispatchEvent(new Event("change", { bubbles: true, composed: true })); } } //配送時間帯 let shippingTime = chatFormData.shippingData.shippingTime; if (shippingTime != "指定なし" && shippingTime !== "Undefind") { if(document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingTime")) { const ShippingTimeElem = document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingTime"); ShippingTimeElem.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_ddlShippingTime option[value='" + shippingTime + "']").selected = true; ShippingTimeElem.dispatchEvent(new Event("change", { bubbles: true, composed: true })); } } // let setCycleDate = () => { // let shippingCycleDate = chatFormData.shippingData.shippingCycleDate // let day = fixedPurchaseMonthlyDate // if(fixedPurchaseMonthlyDate == "-1") { // let year = shippingCycleDate.split('/')[0] // let month = shippingCycleDate.split('/')[1] // let lastDayDate = new Date(year, month, 0); // day = lastDayDate.getDate(); // } // const shippingCycleDateElem = document.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_ddlNextShippingDate"); // shippingCycleDateElem.querySelector("#ctl00_ContentPlaceHolder1_rCartList_ctl00_rCart_ctl00_ddlNextShippingDate option[value='"+ shippingCycleDate + "/" + (day < 10 ? '0' + day : '' + day) + "']").selected = true; // shippingCycleDateElem.dispatchEvent(new Event('change', { bubbles: true, composed: true })); // } // setTimeout(setCycleDate, 1000) // let submitButton = document.querySelector( // '[href*="javascript:WebForm_DoPostBackWithOptions"]' // ); // submitButton.click(); // let clickSubmit = () => { // submitButton.click() // } // setTimeout(clickSubmit, 4500); clickAndRetry('[href*="javascript:WebForm_DoPostBackWithOptions"]'); // }); break; case window.location.pathname.includes("OrderComplete.aspx"): console.log("OrderComplete.aspx"); localStorage.removeItem("redirect-np"); let tmpTotal, tmpPageIndex, tmp2PageIndex; if (localStorage.getItem("passedGMO")) { tmpTotal = chatFormData.shippingData ? 8 : 6; tmpPageIndex = chatFormData.shippingData ? 6 : 4; tmp2PageIndex = chatFormData.shippingData ? 7 : 5; } else { tmpTotal = chatFormData.shippingData ? 6 : 4; tmpPageIndex = chatFormData.shippingData ? 4 : 2; tmp2PageIndex = chatFormData.shippingData ? 5 : 3; } document.addEventListener("DOMContentLoaded", () => { //console.log("DOMContentLoaded OrderComplete.aspx") let param2 = { event: "chatform_page_transition", message: "order complete page", totalProcess: tmpTotal, pageIndex: tmpPageIndex, }; window.parent.postMessage(param2, "*"); let orderId = document.querySelector( ".order__complete--id" ).innerText; let param = { event: "chatform_bindFormConversion", order_id: orderId.split(":")[1], }; window.parent.postMessage(param, "*"); complete(chatform); }); async function complete(data) { try { const completeTarget = JSON.parse(data); await fetch(`${BASE_URL}/pdi/complete`, { ...fetchOptions, body: JSON.stringify({ pid: completeTarget.pid, sid: completeTarget.sid, uuId: completeTarget.uuId, id: "conversion", }), }); console.log("Conversion Tracked!!"); let param3 = { event: "chatform_page_transition", message: "order done", totalProcess: tmpTotal, pageIndex: tmp2PageIndex, }; window.parent.postMessage(param3, "*"); } catch (error) { console.error("Error:", error); } } localStorage.removeItem("secondConfirm"); localStorage.removeItem("passedGMO"); break; default: localStorage.removeItem("secondConfirm"); localStorage.removeItem("HasGMO"); localStorage.removeItem("passedGMO"); console.log("do nothing"); } } else { console.log("No Chatform"); } window.addEventListener("message", (event) => { if (event.data.event == "chatform_vframe_debug") { //console.log("chatform_vframe_debug") } if (event.data.event == "bindTel") { // console.log("DDP bindTel", event.data) var tel = event.data.tel; getSMS(tel); } if (event.data.event == "chatform_bindForm") { // console.log("1 chatform_bindForm", event.data.project); var project = event.data.project; var arr = project.data; let shippingDate = findOption(arr, "ShippingDate"); let shippingTime = findOption(arr, "ShippingTime"); let fixedPurchaseMonthlyDate = findOption( arr, "FixedPurchaseMonthlyDate" ); let shippingCycleDate = findOption(arr, "ShippingCycleDate"); let shippingData = ""; let paymentGMOData = ""; let paymentLabel = ""; if (findOptionLabel(arr, "payment_id2") != "Undefind") { paymentLabel = findOptionLabel(arr, "payment_id2"); if (/GMO/.test(paymentLabel)) { paymentGMOData = findOption(arr, "payment_id2"); } } else if (findOptionLabel(arr, "payment_id3") != "Undefind") { paymentLabel = findOptionLabel(arr, "payment_id3"); if (/GMO/.test(paymentLabel)) { paymentGMOData = findOption(arr, "payment_id3"); } } else if (findOptionLabel(arr, "payment_id4") != "Undefind") { paymentLabel = findOptionLabel(arr, "payment_id4"); if (/GMO/.test(paymentLabel)) { paymentGMOData = findOption(arr, "payment_id4"); } } else { paymentLabel = findOptionLabel(arr, "payment_id"); if (/GMO/.test(paymentLabel)) { paymentGMOData = findOption(arr, "payment_id"); } } if ( shippingDate == "指定なし" && shippingTime == "指定なし" && fixedPurchaseMonthlyDate == 1 ) { shippingData = ""; } else { shippingData = { shippingDate: shippingDate, shippingTime: shippingTime, shippingCycleDate: shippingCycleDate, fixedPurchaseMonthlyDate: fixedPurchaseMonthlyDate, }; } //dayOfMonthlyPurchaseDateList var chatform = { pid: project.pid, sid: project.sid, uuId: project.uuId, id: arr[arr.length - 1].id, shippingData: shippingData, paymentGMO: paymentGMOData, }; localStorage.setItem("chatform_bbc", JSON.stringify(chatform)); bindForm(arr); } if (event.data.event == "chatform_bindFormSubmit") { //console.log("chatform_bindFormSubmit") bindFormSubmit(); } if (event.data.event == "chatform_bindFormUpcell") { //console.log("chatform_bindFormSubmit") document.getElementById("ups_button").click(); } if (event.data.event == "chatform_redirecURL") { console.log("chatform_redirecURL"); var url = event.data.url; window.location.href = url; } // if(event.data.event == "chatform_setProject"){ console.log("chatform_setProject") // var project = event.data.project; // console.log(project) // window.project = project; // } }); function clearChatformStorage() { //console.log("clearChatformStorage") localStorage.removeItem("chatform_bbc"); localStorage.removeItem("chatformAmazonPay"); localStorage.removeItem("secondConfirm"); } function getSMS(tel) { // console.log("getSMS => ", tel) const Tel1 = document.querySelector("input#tel1"); const Tel2 = document.querySelector("input#tel2"); const Tel3 = document.querySelector("input#tel3"); const sepTel = getFormatPhone(tel); const inputEvent = new InputEvent("input", { bubbles: true, cancelable: false, }); Tel1.value = sepTel[0]; Tel1.dispatchEvent(inputEvent); Tel2.value = sepTel[1]; Tel2.dispatchEvent(inputEvent); Tel3.value = sepTel[2]; Tel3.dispatchEvent(inputEvent); document.querySelector('[name="send_authentication_code"]').click(); } function ScrollFormtoSubmit(elm) { var viewForm = document.querySelector(elm); if (/Android/i.test(navigator.userAgent)) { //alert("work") window.location.hash = elm; var viewFormPosition = viewForm.getBoundingClientRect().top + window.pageYOffset - 100; // Adjust for header window.scrollTo({ top: viewFormPosition, behavior: "smooth", }); } else { requestAnimationFrame(function () { viewForm.scrollIntoView({ behavior: "smooth", block: "start", }); }); } } function bindForm(d) { // console.log("bindForm", d); //selectProduct(d) var bind = () => { let productColor = findOption(d, "color_id"); if (productColor != "Undefind") { const rdoColor = document.querySelector( `input[name="product_type"][id="${productColor}"]` ); if (rdoColor) { rdoColor.click(); } } const LastName = document.querySelector("#name1"); LastName.value = findValue(d, "LastName"); const FirstName = document.querySelector("#name2"); FirstName.value = findValue(d, "FirstName"); const LastNameKana = document.querySelector("#name_kana1"); LastNameKana.value = findValue(d, "LastNameKana"); const FirstNameKana = document.querySelector("#name_kana2"); FirstNameKana.value = findValue(d, "FirstNameKana"); // Wait for birthday selectors to be ready const setBirthday = () => { const yearValue = findValue(d, "Year"); const monthValue = findValue(d, "Month"); const dayValue = findValue(d, "Day"); localStorage.setItem("bdYear", yearValue) localStorage.setItem("bdMonth", monthValue) localStorage.setItem("bdDay", dayValue) const Year = document.querySelector("#birthYear"); const Month = document.querySelector("#birthMonth"); const Day = document.querySelector("#birthday"); const birthYearOption = document.querySelector("#birthYear option[value='" + yearValue + "']"); if (Year && Month && Day && birthYearOption) { // console.log("yearValue => ", yearValue) birthYearOption.selected = true; Year.dispatchEvent(new Event("change", { bubbles: true, composed: true })); Month.value = monthValue; Day.value = dayValue; } else { // Retry if elements not ready setTimeout(setBirthday, 100); } }; setTimeout(setBirthday, 100); let gender = findOption(d, "sex"); document.querySelector("#" + gender).checked = true; const sourceString = "abcdefghijklmnopqrstuvwxyz0123456789"; const randomString = generateRandomString(sourceString, 10); const Email = document.querySelector("#mail"); Email.value = findValue(d, "Email") ? findValue(d, "Email") : randomString + "@bresmile.jp"; const Zip = document.querySelector("#zip"); Zip.value = findValue(d, "Zip"); const inputEvent = new InputEvent("input", { bubbles: true, cancelable: false, }); let choosePref = () => { let Prefecture = findValue(d, "Prefecture"); document.querySelector( "select#addr1 option[value='" + Prefecture + "']" ).selected = true; const pref = document.querySelector("select#addr1"); pref.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); }; setTimeout(choosePref, 1000); const City = document.querySelector("#addr2"); City.value = findValue(d, "City"); const Street = document.querySelector("#addr3"); var StreetVal = findValue(d, "Street"); Street.value = StreetVal.replace(/\s/g, ""); const Bulding = document.querySelector("#addr4"); var BuldingVal = findValue(d, "Building"); Bulding.value = BuldingVal.replace(/\s/g, ""); const Tel1 = document.querySelector("input#tel1"); const Tel2 = document.querySelector("input#tel2"); const Tel3 = document.querySelector("input#tel3"); const sepTel = getFormatPhone(findValue(d, "Tel")); Tel1.value = sepTel[0]; Tel2.value = sepTel[1]; Tel3.value = sepTel[2]; const SMS = document.querySelector("input#authentication_code"); let smsTel = findValue(d, "smsAuth"); SMS.value = smsTel; // document.querySelector('[name="send_authentication_code"]').click() const pass = findValue(d, "Password"); const PASSWORD = document.querySelector("#password"); PASSWORD.value = pass; const PASSWORD_CONFIRM = document.querySelector("#passwordConfirm"); PASSWORD_CONFIRM.value = pass; let mailMag = findOption(d, "mail_flg"); document.querySelector("#mail_flg").checked = mailMag == "1" ? true : false; let DeliveryBox = findOptionLabel(d, "DeliveryBox"); if (/不可/.test(DeliveryBox)) { document.querySelector( "#designate_delivery_box_impossible" ).checked = true; } else { document.querySelector( "#designate_delivery_box_possible" ).checked = true; } let fixedPurchaseMonthlyDate = findOption( d, "FixedPurchaseMonthlyDate" ); const PurchaseMonthlyDate = document.querySelector( "#dayOfMonthlyPurchaseDateList" ); PurchaseMonthlyDate.querySelector( "#dayOfMonthlyPurchaseDateList option[value='" + fixedPurchaseMonthlyDate + "']" ).selected = true; PurchaseMonthlyDate.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); const upsell_mlme01 = findOption(d, "upsell_mlme01"); const upsell_dsl = findOption(d, "upsell_dsl"); const upsell_nlp3940 = findOption(d, "upsell_nlp3940"); if (upsell_mlme01 && upsell_mlme01 != "Undefind") { const upsellElem = document.querySelector("#select_id"); upsellElem.value = upsell_mlme01; } else if (upsell_dsl && upsell_dsl != "Undefind") { const upsellElem1 = document.querySelector("#select_id"); upsellElem1.value = upsell_dsl; } else if (upsell_nlp3940 && upsell_nlp3940 != "Undefind") { const upsellElem2 = document.querySelector("#select_id"); upsellElem2.value = upsell_nlp3940; } let payment_value = ""; let hasGmoLabel = ""; let paymentLabel = ""; // let hasGmoLabel = findOptionLabel(d, "payment_id2") if (findOptionLabel(d, "payment_id2") != "Undefind") { hasGmoLabel = findOptionLabel(d, "payment_id2"); paymentLabel = findOptionLabel(d, "payment_id2"); } else if (findOptionLabel(d, "payment_id3") != "Undefind") { hasGmoLabel = findOptionLabel(d, "payment_id3"); paymentLabel = findOptionLabel(d, "payment_id3"); } else if (findOptionLabel(d, "payment_id4") != "Undefind") { hasGmoLabel = findOptionLabel(d, "payment_id4"); paymentLabel = findOptionLabel(d, "payment_id4"); } else { hasGmoLabel = findOptionLabel(d, "payment_id"); paymentLabel = findOptionLabel(d, "payment_id"); } //For GMO Set Fix Value if (/GMO/.test(hasGmoLabel)) { // payment_value = "K20"; payment_value = "K32"; } else { if (findOptionLabel(d, "payment_id2") != "Undefind") { payment_value = findOption(d, "payment_id2"); } else if (findOptionLabel(d, "payment_id3") != "Undefind") { payment_value = findOption(d, "payment_id3"); } else if (findOptionLabel(d, "payment_id4") != "Undefind") { payment_value = findOption(d, "payment_id4"); } else { payment_value = findOption(d, "payment_id"); } } document.querySelector( "#payment_id option[value='" + payment_value + "']" ).selected = true; const Payment = document.querySelector("#payment_id"); Payment.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); if (/クレジットカード/.test(paymentLabel)) { const ccCardNumber = findValue(d, "CardNumber"); const ccCardNumberElem = document.querySelector("#tbCreditCardNo"); ccCardNumberElem.value = ccCardNumber; ccCardNumberElem.dispatchEvent(inputEvent); const ccMonth = findValue(d, "CardExpiryMonth"); document.querySelector( "#ddlCreditExpireMonth option[value='" + ccMonth + "']" ).selected = true; const ccMonthElem = document.querySelector("#ddlCreditExpireMonth"); ccMonthElem.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); const ccYear = findValue(d, "CardExpiryYear"); document.querySelector( "#ddlCreditExpireYear option[value='" + ccYear + "']" ).selected = true; const ccYearElem = document.querySelector("#ddlCreditExpireYear"); ccYearElem.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); const ccName = findValue(d, "CardHolderName"); const ccNameElem = document.querySelector("#tbCreditAuthorName"); ccNameElem.value = ccName; ccNameElem.dispatchEvent(inputEvent); const ccCVC = findValue(d, "CardCVC"); const ccCVCElem = document.querySelector("#tbCreditSecurityCode"); ccCVCElem.value = ccCVC; ccCVCElem.dispatchEvent(inputEvent); const dllCreditInstallments = findOption(d, "dllCreditInstallments"); document.querySelector( "#dllCreditInstallments option[value='" + dllCreditInstallments + "']" ).selected = true; const dllCreditInstallmentsElem = document.querySelector( "#dllCreditInstallments" ); dllCreditInstallmentsElem.dispatchEvent( new Event("change", { bubbles: true, composed: true }) ); } }; setTimeout(bind, 500); } function bindFormSubmit() { //console.log("bindFormSubmit") // Wait for birthday select boxes to have options loaded const waitForBirthdayOptions = (callback) => { let checkCount = 0; const maxChecks = 20; // Maximum 10 seconds (20 * 500ms) const checkInterval = setInterval(() => { const Year = document.querySelector("#birthYear"); const Month = document.querySelector("#birthMonth"); const Day = document.querySelector("#birthday"); // Check if elements exist and have options loaded if (Year && Month && Day && Year.options && Year.options.length > 1) { clearInterval(checkInterval); callback(); } checkCount++; if (checkCount >= maxChecks) { clearInterval(checkInterval); callback(); // Proceed anyway after timeout } }, 500); }; const setBirthdayBeforeSubmit = () => { const yearValue = localStorage.getItem("bdYear"); const monthValue = localStorage.getItem("bdMonth"); const dayValue = localStorage.getItem("bdDay"); const Year = document.querySelector("#birthYear"); const Month = document.querySelector("#birthMonth"); const Day = document.querySelector("#birthday"); const birthYearOption = document.querySelector("#birthYear option[value='" + yearValue + "']"); if (Year && Month && Day) { if (birthYearOption) { birthYearOption.selected = true; Year.dispatchEvent(new Event("change", { bubbles: true, composed: true })); } if (monthValue) Month.value = monthValue; if (dayValue) Day.value = dayValue; } }; var setSubmit = () => { // document.body.classList.remove("chat_open"); const paymentElement = document.getElementById("payment_id"); if (paymentElement) { const selectedLabel = paymentElement.options[paymentElement.selectedIndex].text; if (selectedLabel === "クレジットカード") { localStorage.setItem("has_selcc", "1"); } else { localStorage.removeItem("has_selcc"); } } let chatFormData = JSON.parse(localStorage.getItem("chatform_bbc")); var submit = '[name="regist_w2"]'; const submitEl = document.querySelector(submit); submitEl.click(); let tmpTotal; if (chatFormData.paymentGMO) { tmpTotal = chatFormData.shippingData ? 8 : 6; } else { tmpTotal = chatFormData.shippingData ? 6 : 4; } let param = { event: "chatform_page_transition", message: "order start", totalProcess: tmpTotal, pageIndex: 0, }; window.parent.postMessage(param, "*"); let count = 0; function checkError(a, b) { const lperror = document.querySelector("#registResultMessage"); if (lperror.innerHTML.trim()) { lperror.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest", }); var param = { event: "chatform_bindFormErrorFound", text: lperror.innerHTML.trim(), }; window.parent.postMessage(param, "*"); lperror.innerHTML = ""; clearInterval(intervalID); } count++; if (count >= 3) { clearInterval(intervalID); } } const intervalID = setInterval(checkError, 1000); }; // Execute in sequence: wait for options -> bind birthday -> submit -> check errors waitForBirthdayOptions(() => { setBirthdayBeforeSubmit(); setTimeout(setSubmit, 500); // Give a little time for binding to complete }); } function bindText(d, t, n) { //console.log(t) const el = document.querySelector(t); if (el) { el.value = findValue(d, n); el.dispatchEvent(new Event("change")); } } function bindSelect(d, t, n) { //console.log(t) const el = document.querySelector(t); var value = findOption(d, n); if (el) { el.querySelector("option[value='" + value + "']").selected = true; } } function bindRadio(d, t, n) { //console.log(t) var value = findOption(d, n); var str = t + "[value='" + value + "']"; const el = document.querySelector(str); if (el) { el.click(); } } function bindCheckbox(d, t, n) { //console.log(t) var values = findOptions(d, n); values.forEach(function (v) { var str = t + "[value='" + v + "']"; const el = document.querySelector(str); if (el) { el.checked = true; el.dispatchEvent(new Event("change")); } }); } //radio return single value function findValue(d, n) { //console.log(d,n) let value = "Undefind"; rtn = value; for (var i = 0; i < d.length; i++) { var item = d[i]; if (item.values) { item.values.forEach(function (v) { //console.log(v.name, n) if (v.name == n) { //console.log(n, v.name) rtn = v.value; } }); } } //console.log(n,rtn) return rtn; } //radio return single value function findOption(d, n) { //console.log(n) let value = "Undefind"; rtn = value; for (var i = 0; i < d.length; i++) { var item = d[i]; //console.log(item) if (item.options) { item.options.forEach(function (v) { if (v.name == n && v.checked) { //console.log(v) rtn = v.value; } }); } } return rtn; } function findOptionLabel(d, n) { //console.log(n) let value = "Undefind"; rtn = value; for (var i = 0; i < d.length; i++) { var item = d[i]; //console.log(item) if (item.options) { item.options.forEach(function (v) { if (v.name == n && v.checked) { //console.log(v) rtn = v.label; } }); } } return rtn; } //checkbox return array function findOptions(d, n) { rtn = []; for (var i = 0; i < d.length; i++) { var item = d[i]; if (item.options) { item.options.forEach(function (v) { var reg = new RegExp(n); if (reg.test(v.name) && v.checked) { rtn.push(v.value); } }); } } return rtn; } function generateRandomString(source, length) { let result = ""; const charactersLength = source.length; for (let i = 0; i < length; i++) { result += source.charAt(Math.floor(Math.random() * charactersLength)); } return result; } function getFormatPhone($INPUT, $STRICT) { $STRICT = $STRICT || false; // 市外局番のグループ定義 // データは http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html より入手後、整形 var group = { 5: { "01267": 1, "01372": 1, "01374": 1, "01377": 1, "01392": 1, "01397": 1, "01398": 1, "01456": 1, "01457": 1, "01466": 1, "01547": 1, "01558": 1, "01564": 1, "01586": 1, "01587": 1, "01632": 1, "01634": 1, "01635": 1, "01648": 1, "01654": 1, "01655": 1, "01656": 1, "01658": 1, "04992": 1, "04994": 1, "04996": 1, "04998": 1, "05769": 1, "05979": 1, "07468": 1, "08387": 1, "08388": 1, "08396": 1, "08477": 1, "08512": 1, "08514": 1, "09496": 1, "09802": 1, "09912": 1, "09913": 1, "09969": 1, }, 4: { "0123": 2, "0124": 2, "0125": 2, "0126": 2, "0133": 2, "0134": 2, "0135": 2, "0136": 2, "0137": 2, "0138": 2, "0139": 2, "0142": 2, "0143": 2, "0144": 2, "0145": 2, "0146": 2, "0152": 2, "0153": 2, "0154": 2, "0155": 2, "0156": 2, "0157": 2, "0158": 2, "0162": 2, "0163": 2, "0164": 2, "0165": 2, "0166": 2, "0167": 2, "0172": 2, "0173": 2, "0174": 2, "0175": 2, "0176": 2, "0178": 2, "0179": 2, "0182": 2, "0183": 2, "0184": 2, "0185": 2, "0186": 2, "0187": 2, "0191": 2, "0192": 2, "0193": 2, "0194": 2, "0195": 2, "0197": 2, "0198": 2, "0220": 2, "0223": 2, "0224": 2, "0225": 2, "0226": 2, "0228": 2, "0229": 2, "0233": 2, "0234": 2, "0235": 2, "0237": 2, "0238": 2, "0240": 2, "0241": 2, "0242": 2, "0243": 2, "0244": 2, "0246": 2, "0247": 2, "0248": 2, "0250": 2, "0254": 2, "0255": 2, "0256": 2, "0257": 2, "0258": 2, "0259": 2, "0260": 2, "0261": 2, "0263": 2, "0264": 2, "0265": 2, "0266": 2, "0267": 2, "0268": 2, "0269": 2, "0270": 2, "0274": 2, "0276": 2, "0277": 2, "0278": 2, "0279": 2, "0280": 2, "0282": 2, "0283": 2, "0284": 2, "0285": 2, "0287": 2, "0288": 2, "0289": 2, "0291": 2, "0293": 2, "0294": 2, "0295": 2, "0296": 2, "0297": 2, "0299": 2, "0422": 2, "0428": 2, "0436": 2, "0438": 2, "0439": 2, "0460": 2, "0463": 2, "0465": 2, "0466": 2, "0467": 2, "0470": 2, "0475": 2, "0476": 2, "0478": 2, "0479": 2, "0480": 2, "0493": 2, "0494": 2, "0495": 2, "0531": 2, "0532": 2, "0533": 2, "0536": 2, "0537": 2, "0538": 2, "0539": 2, "0544": 2, "0545": 2, "0547": 2, "0548": 2, "0550": 2, "0551": 2, "0553": 2, "0554": 2, "0555": 2, "0556": 2, "0557": 2, "0558": 2, "0561": 2, "0562": 2, "0563": 2, "0564": 2, "0565": 2, "0566": 2, "0567": 2, "0568": 2, "0569": 2, "0572": 2, "0573": 2, "0574": 2, "0575": 2, "0576": 2, "0577": 2, "0578": 2, "0581": 2, "0584": 2, "0585": 2, "0586": 2, "0587": 2, "0594": 2, "0595": 2, "0596": 2, "0597": 2, "0598": 2, "0599": 2, "0721": 2, "0725": 2, "0735": 2, "0736": 2, "0737": 2, "0738": 2, "0739": 2, "0740": 2, "0742": 2, "0743": 2, "0744": 2, "0745": 2, "0746": 2, "0747": 2, "0748": 2, "0749": 2, "0761": 2, "0763": 2, "0765": 2, "0766": 2, "0767": 2, "0768": 2, "0770": 2, "0771": 2, "0772": 2, "0773": 2, "0774": 2, "0776": 2, "0778": 2, "0779": 2, "0790": 2, "0791": 2, "0794": 2, "0795": 2, "0796": 2, "0797": 2, "0798": 2, "0799": 2, "0820": 2, "0823": 2, "0824": 2, "0826": 2, "0827": 2, "0829": 2, "0833": 2, "0834": 2, "0835": 2, "0836": 2, "0837": 2, "0838": 2, "0845": 2, "0846": 2, "0847": 2, "0848": 2, "0852": 2, "0853": 2, "0854": 2, "0855": 2, "0856": 2, "0857": 2, "0858": 2, "0859": 2, "0863": 2, "0865": 2, "0866": 2, "0867": 2, "0868": 2, "0869": 2, "0875": 2, "0877": 2, "0879": 2, "0880": 2, "0883": 2, "0884": 2, "0885": 2, "0887": 2, "0889": 2, "0892": 2, "0893": 2, "0894": 2, "0895": 2, "0896": 2, "0897": 2, "0898": 2, "0920": 2, "0930": 2, "0940": 2, "0942": 2, "0943": 2, "0944": 2, "0946": 2, "0947": 2, "0948": 2, "0949": 2, "0950": 2, "0952": 2, "0954": 2, "0955": 2, "0956": 2, "0957": 2, "0959": 2, "0964": 2, "0965": 2, "0966": 2, "0967": 2, "0968": 2, "0969": 2, "0972": 2, "0973": 2, "0974": 2, "0977": 2, "0978": 2, "0979": 2, "0980": 2, "0982": 2, "0983": 2, "0984": 2, "0985": 2, "0986": 2, "0987": 2, "0993": 2, "0994": 2, "0995": 2, "0996": 2, "0997": 2, "0180": 3, "0570": 3, "0800": 3, "0990": 3, "0120": 3, }, 3: { "011": 3, "015": 3, "017": 3, "018": 3, "019": 3, "022": 3, "023": 3, "024": 3, "025": 3, "026": 3, "027": 3, "028": 3, "029": 3, "042": 3, "043": 3, "044": 3, "045": 3, "046": 3, "047": 3, "048": 3, "049": 3, "052": 3, "053": 3, "054": 3, "055": 3, "058": 3, "059": 3, "072": 3, "073": 3, "075": 3, "076": 3, "077": 3, "078": 3, "079": 3, "082": 3, "083": 3, "084": 3, "086": 3, "087": 3, "088": 3, "089": 3, "092": 3, "093": 3, "095": 3, "096": 3, "097": 3, "098": 3, "099": 3, "050": 4, "020": $STRICT ? 3 : 4, "070": $STRICT ? 3 : 4, "080": $STRICT ? 3 : 4, "090": $STRICT ? 3 : 4, "060": $STRICT ? 3 : 4, }, 2: { "03": 4, "04": 4, "06": 4, }, }; // 市外局番の桁数を取得して降順に並べ替える var code = []; for (num in group) { code.push(num * 1); } code.sort(function ($a, $b) { return $b - $a; }); // 入力文字から数字以外を削除してnumber変数に格納する var number = String($INPUT) .replace(/[0-9]/g, function ($s) { return String.fromCharCode($s.charCodeAt(0) - 65248); }) .replace(/\D/g, ""); // 電話番号が10~11桁じゃなかったらfalseを返して終了する if (number.length < 10 || number.length > 11) { return false; } // 市外局番がどのグループに属するか確認していく for (var i = 0, n = code.length; i < n; i++) { var leng = code[i]; var area = number.substring(0, leng); var city = group[leng][area]; // 一致する市外局番を見付けたら整形して整形後の電話番号を返す if (city) { var first = area; var middle = number.substring(first.length, first.length + city); var last = number.substring(first.length + city, number.length); return [first, middle, last]; /*return area + "-" + number.substring(leng, leng+city) + (number.substring(leng + city) !== "" ? "-" + number.substring(leng + city) : "");*/ } } } function clickAndRetry(selector) { let findAttempts = 0; const maxFindAttempts = 10; const findAndClick = (find_selector) => { findAttempts++; const element = document.querySelector(find_selector); if (element) { // console.log("element found", element); element.scrollIntoView({ behavior: 'smooth', block: 'center' }); // Retry clicking multiple times to ensure it works let clickAttempts = 0; const maxClickAttempts = 3; const tryClick = () => { clickAttempts++; try { element.click(); if (clickAttempts < maxClickAttempts) { setTimeout(tryClick, 300); } } catch (error) { if (clickAttempts < maxClickAttempts) { setTimeout(tryClick, 300); } } }; setTimeout(tryClick, 500); } else { // Element not found yet, retry finding it if (findAttempts < maxFindAttempts) { // console.log("findAndClick", find_selector, findAttempts); setTimeout(() => { findAndClick(find_selector) }, 300); } else if (findAttempts == maxFindAttempts) { // console.log("findAndClick failed", find_selector, findAttempts); return false; } } }; findAndClick(selector) } }; setTimeout(take, 0); })();