(function() { //DDP var take = async function() { const BASE_URL = "https://pr.aqur.com"; const fetchOptions = { method: "POST", headers: { "Content-Type": "application/json" } }; const chatform = localStorage.getItem("chatform"); if (chatform) { let chatformData = JSON.parse(chatform) if(chatformData.pid == 'inlp') { if(/\/Landing\/Formlp\/inulin_qalv_test.aspx/.test(location.pathname) || /\/Form\/Error.aspx/.test(location.pathname)) { await new Promise(resolve => setTimeout(resolve, 5000)) let errors = Array.from(document.querySelectorAll('.error_inline:not([style*="hidden"])')).filter(element => element.innerText.trim().length > 0); let error2 = document.querySelector('#ctl00_ContentPlaceHolder1_dvErrorContents')?.innerText let errText = "" if(errors.length > 0 || error2) { errText = errors.map(element => element.innerText.trim()).join(' '); if (errText || error2) { let chatformData = JSON.parse(chatform); const response2 = await fetch(`${BASE_URL}/pdi/${chatformData.uuId}`); const data2 = await response2.json(); data2.data.Completed = false; if (/カード情報を確認してください/.test(errText)) { data2.data.status = "creditcardCheckNG"; } else if (/与信審査が通りませんでした/.test(errText)) { data2.data.status = "postpaymentCheckNG"; } else { data2.data.message = errText || error2 } await fetch(`${BASE_URL}/pdi/set`, { ...fetchOptions, body: JSON.stringify(data2.data) }); } } } if(/\/Landing\/LandingCartConfirm.aspx/.test(location.pathname)) { showLoadingScreen() var confirmExec=()=>{ var confirmInterval = setInterval(function () { if(document.querySelector('[href*="javascript:__doPostBack("]')) { clearInterval(confirmInterval); document.querySelector('[href*="javascript:__doPostBack("]').click() } }, 300) } confirmExec() } if (/\/Form\/Order\/OrderComplete.aspx/.test(window.location.pathname)) { showLoadingScreen() async function track(trackingData) { try { await fetch(`${BASE_URL}/track`, { ...fetchOptions, body: trackingData }); localStorage.removeItem("chatform"); let chatformData = JSON.parse(chatform); const response2 = await fetch(`${BASE_URL}/pdi/${chatformData.uuId}`); const data2 = await response2.json(); data2.data.Completed = true; data2.data.status = "Completed"; await fetch(`${BASE_URL}/pdi/set`, { ...fetchOptions, body: JSON.stringify(data2.data) }); } catch (error) { console.error('Error:', error); } } track(chatform); hideLoadingScreen() } } } } setTimeout(take, 1000); function showLoadingScreen() { // Create loading screen container const loadingScreen = document.createElement('div'); loadingScreen.id = 'dynamicLoadingScreen'; loadingScreen.style.position = 'fixed'; loadingScreen.style.top = '0'; loadingScreen.style.left = '0'; loadingScreen.style.width = '100%'; loadingScreen.style.height = '100%'; loadingScreen.style.backgroundColor = 'rgba(255, 255, 255, 0.9)'; loadingScreen.style.display = 'flex'; loadingScreen.style.justifyContent = 'center'; loadingScreen.style.alignItems = 'center'; loadingScreen.style.flexDirection = 'column'; loadingScreen.style.color = '#333'; loadingScreen.style.zIndex = '9999999999'; loadingScreen.style.backdropFilter = 'blur(10px)'; loadingScreen.style.webkitBackdropFilter = 'blur(10px)'; // Create spinner const spinner = document.createElement('div'); spinner.style.border = '16px solid #f3f3f3'; /* Light grey */ spinner.style.borderTop = '16px solid #3498db'; /* Blue */ spinner.style.borderRadius = '50%'; spinner.style.width = '120px'; spinner.style.height = '120px'; spinner.style.animation = 'spin 2s linear infinite'; // Add spinner to loading screen loadingScreen.appendChild(spinner); // Create loading text const loadingText = document.createElement('p'); loadingText.textContent = '処理中です。そのままお待ちください。'; // Add loading text to loading screen loadingScreen.appendChild(loadingText); // Append loading screen to body document.body.appendChild(loadingScreen); // Add spinner animation (injected CSS) const styleSheet = document.createElement('style'); styleSheet.innerHTML = ` @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `; document.head.appendChild(styleSheet); } // Hide the loading screen function hideLoadingScreen() { const loadingScreen = document.getElementById('dynamicLoadingScreen'); if (loadingScreen) { loadingScreen.style.display = 'none'; // Hide the loading screen } } }())