var iframe_loaded = 0; var referrer = document.location.href; var widgetButtons = document.getElementsByClassName('dialog_widget_button'); var widget = document.createElement('div'); widget.classList.add('dialogai-consultant-widget'); var loader = document.createElement('div'); loader.id = 'widget-loader'; loader.classList.add('dialogai-modal-loader'); var modal = document.createElement('div'); modal.id = 'widget-modal'; modal.classList.add('dialogai-widget-modal'); var overlay = document.createElement('div'); overlay.id = 'dialogai-overlay'; document.body.appendChild(overlay); var iframe = document.createElement('iframe'); iframe.style.overflow = 'hidden'; iframe.setAttribute('sandbox', 'allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads allow-popups-to-escape-sandbox'); modal.appendChild(iframe); function checkMicrophoneSupport() { return navigator.mediaDevices && navigator.mediaDevices.getUserMedia; } async function loadIframeWithMicrophone(recordId, promptId) { try { const iframeUrl = new URL('https://functions.pro-talk.ru/api/v1.0/chatgpt_widget_dialog_api'); iframeUrl.searchParams.set('record_id', recordId); iframeUrl.searchParams.set('promt_id', promptId); iframeUrl.searchParams.set('url', referrer); iframeUrl.searchParams.set('lang', 'ru'); iframeUrl.searchParams.set('avatar', '-'); iframeUrl.searchParams.set('miniapp', '-'); iframeUrl.searchParams.set('dark', '-'); iframeUrl.searchParams.set('css', '-'); iframeUrl.searchParams.set('wait_msg', '-'); iframeUrl.searchParams.set('strict', '-'); iframeUrl.searchParams.set('video', ''); iframeUrl.searchParams.set('voice', '-'); iframeUrl.searchParams.set('inline', '1'); iframeUrl.searchParams.set('file', '-'); iframeUrl.searchParams.set('subject', ''); iframeUrl.searchParams.set('template', '-'); iframeUrl.searchParams.set('user_chat_id', 'None'); iframeUrl.searchParams.set('store_user_email', ''); const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: false }); stream.getTracks().forEach(track => track.stop()); if (iframe.src !== iframeUrl.toString()) { iframe.src = iframeUrl.toString(); iframe_loaded = 1; } return true; } catch (err) { console.warn('Microphone access error:', err.name, err.message); const iframeUrl = `https://functions.pro-talk.ru/api/v1.0/chatgpt_widget_dialog_api?record_id=${recordId}&promt_id=${promptId}&url=${referrer}&lang=ru&dark=-&css=-&strict=-&video=&store_user_email=&avatar=-&miniapp=-&wait_msg=-&inline=1`; if (iframe.src !== iframeUrl) { iframe.src = iframeUrl; iframe_loaded = 1; } return false; } } var closeButton = document.createElement('div'); closeButton.classList.add('dialogai-close-button'); //closeButton.innerHTML = 'X'; modal.appendChild(closeButton); widget.addEventListener('click', async function() { if (widgetButtons.length > 0) { await loadIframeWithMicrophone('rec7UIESmHvBJpkJh', '2103'); } if (modal.classList.contains('show')) { modal.classList.remove('show'); closeButton.style.display = 'none'; return; } loader.style.display = 'block'; if (iframe_loaded === 0) { const micGranted = await loadIframeWithMicrophone('rec7UIESmHvBJpkJh', '2103'); const delay = micGranted ? 2000 : 1000; setTimeout(function() { loader.style.display = 'none'; closeButton.style.display = 'block'; modal.classList.add('show'); }, delay); } else { setTimeout(function() { loader.style.display = 'none'; closeButton.style.display = 'block'; modal.classList.add('show'); }, 100); } }); if (widgetButtons.length > 0) { for (var i = 0; i < widgetButtons.length; i++) { widgetButtons[i].addEventListener('click', async function() { const recordId = this.getAttribute('record_id'); const promptId = this.getAttribute('promt_id'); loader.style.display = 'block'; const micGranted = await loadIframeWithMicrophone(recordId, promptId); setTimeout(function() { loader.style.display = 'none'; closeButton.style.display = 'block'; modal.classList.add('show'); }, micGranted ? 10 : 10); }); } } closeButton.addEventListener('click', function() { modal.classList.remove('show'); closeButton.style.display = 'none'; }); document.addEventListener('click', function(event) { var isClickInsideModal = modal.contains(event.target); var isClickOnWidget = widget.contains(event.target); if (!isClickInsideModal && !isClickOnWidget) { //modal.style.display = 'none'; modal.classList.remove('show'); modal.classList.remove('show'); } }); var styles = document.createElement('style'); styles.innerHTML = ` .dialogai-consultant-widget { position: fixed; bottom: 1rem; right: 1rem; width: 80px; height: 80px; background-color: #ffffff; cursor: pointer; background-image: url('https://eu1.aura.api.atiks.org/proxy-image?url=https://v5.airtableusercontent.com/v3/u/43/43/1752314400000/KCHaweIwts0rleVF03SUbw/IjmIMj2nM_ye-4Ob_xTUrsoi5lwD7F7iAoIrpZS8DPp0oAudnhFlBqbCaX0m6Vyj-5e42CDjz1YrK7zEknuDF9ZzEnnk-tXUGWK9OsjsynFcG2UeKBm3INzpB8b-s4ntFNEuaFHfw5XY3Oj5lI6mFiGI3y_YM4IcbXUDwKszZPiLouO1C8IrnaciXpYMvjJI/O_do73Z9rafU8_K7Vr3t_zVk4sreWsmeSfpwFSMu40Q?sid=nocache'); background-size: cover; border-radius: 50%; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5); z-index: 999; animation: pulse 2s infinite; border: solid #fff 5px; //transform: translate(-50%, -50%); } .dialogai-consultant-telegram-bot { position: fixed; bottom: calc(12rem + 50px); right: calc(2rem + 10px); width: 60px; height: 60px; background-color: #ffffff; cursor: pointer; background-image: url('/get_svg_file/Telegram.svg'); background-size: cover; border-radius: 50%; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5); z-index: 9998; animation: pulse 2s infinite; } .dialogai-consultant-whatsapp { position: fixed; bottom: calc(12rem + 100px); right: calc(2rem + 10px); width: 60px; height: 60px; background-color: #ffffff; cursor: pointer; background-image: url('/get_svg_file/WhatsApp.svg'); background-size: cover; border-radius: 50%; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5); z-index: 9997; animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(0.9); } 50% { transform: scale(1); } 100% { transform: scale(0.9); } } @keyframes rotateY { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(720deg); } } .dialogai-modal-loader { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 99999; } .dialogai-modal-loader::after { content: ''; display: block; width: 200px; height: 200px; background-image: url(https://functions.pro-talk.ru/get_svg_file/loading-wdget-ai.svg); background-size: cover; } .dialogai-widget-modal { display: block; position: fixed; width: 95%; height: 95%; z-index: 99999; opacity: 0; transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out; top: 50%; left: 50%; transform: translate(-50%, -50%) scaleY(0); } .dialogai-widget-modal.show { opacity: 1; transform: translate(-50%, -50%) scaleY(1); } @media (min-width: 950px) { .dialogai-widget-modal { //max-width: 25rem; //max-height: 40rem; width: 35vw; height: 75vh; max-width: 450px; max-height: 700px; top: auto; left: auto; bottom: 5rem; right: 4rem; transform: scaleY(0); } .dialogai-widget-modal.show { transform: scaleY(1); } } .dialogai-widget-modal iframe { width: 100%; height: 100%; //max-width: 400px; //max-height: 600px; //overflow: hidden; border: none; z-index: 99998; border-radius:20px; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5); overflow: auto; } #dialogai-overlay { display: none; position: fixed; z-index: 99997; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); backdrop-filter: blur(10px); } .dialogai-close-button { top: 30px; right: 0px; width: 30px; height: 30px; font-size: 18px; //padding-top: 0.3rem; position: fixed; font-weight: bold; background: #333; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAFymlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4yLWMwMDAgMTE2LmRlZTNhNzcsIDIwMjIvMDkvMDEtMTM6NTc6MDggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyMy41IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjQtMTEtMTVUMTY6Mjk6MjErMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI0LTExLTE1VDE3OjE2OjQ0KzAzOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0LTExLTE1VDE3OjE2OjQ0KzAzOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpmNjYyMDRlNy01ODliLTFiNDMtODUyOS01YTFlMzA4ODU5YzUiIHhtcE1NOkRvY3VtZW50SUQ9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); background-size: cover; text-align: center; border-radius: 100%; z-index: 999999; color: #ffffff; cursor: pointer; display: none; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.5); transform: translate(-50%, -50%); } .dialogai-close-button:hover { color: #ccc; } .dialogai-close-button.dialogai-show { display: block; } @media (max-width: 950px) { .dialogai-widget-modal--- { //max-width: 350px; //max-height: 450px; } .dialogai-widget-modal--- iframe { //width: auto; } } `; document.head.appendChild(styles); //if (widgetButtons.length > 0) {} else {} widget.appendChild(loader); document.body.appendChild(modal); setTimeout(function() { document.body.appendChild(widget); }, 100); idleTime = 0; modalTimeout = 0; function resetTimer() { clearTimeout(modalTimeout); idleTime = 0; startTimer(); } function startTimer() { modalTimeout = setTimeout(function() { if (modal.style.display != 'block') { loader.style.display='block'; setTimeout(function() { loader.style.display='none'; //modal.style.display = 'block'; modal.classList.add('show'); }, 500); } }, 5000000); } document.addEventListener('mousemove', resetTimer); document.addEventListener('click', resetTimer); document.addEventListener('keypress', resetTimer); document.addEventListener('touchstart', resetTimer); startTimer(); setInterval(function() { widget.style.animation = 'rotateY 2s linear'; setTimeout(function() { widget.style.animation = 'pulse 2s infinite'; }, 2000); }, 10000);