(function(){var scriptTag=document.currentScript;if(!scriptTag){var scripts=document.getElementsByTagName('script');scriptTag=scripts[scripts.length-1];}var siteCode=scriptTag.getAttribute('data-site');if(!siteCode){console.error('Wecampus Chatbot: data-site attribute is missing.');return;}var tooltipText=scriptTag.getAttribute('data-tooltip-text')||'챗봇 상담';var tooltipColor=scriptTag.getAttribute('data-tooltip-color')||'#0057D9';var botImgSrc=scriptTag.getAttribute('data-bot-img')||'https://chat.wecampus.kr/img/default_bot.png';var baseUrl='https://chat.wecampus.kr';function initWidget(){if(document.getElementById('wecampus-chatbot-btn'))return;var style=document.createElement('style');style.innerHTML=` #wecampus-chatbot-btn { position: fixed; bottom: 24px; right: 24px; width: 80px; height: 80px; cursor: pointer; z-index: 999998; display: flex; align-items: center; justify-content: center; transition: transform 0.2s; } #wecampus-chatbot-btn:hover { transform: scale(1.05); } #wecampus-chatbot-btn img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 4px 8px rgba(0,0,0,0.2)); } #wecampus-chatbot-btn svg { fill: #495057; width: 40px; height: 40px; background: #fff; border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 8px; } .wecampus-chatbot-tooltip { position: absolute; right: 90px; top: 50%; transform: translateY(-50%); background-color: ${tooltipColor}; color: #ffffff; padding: 10px 16px; border-radius: 12px; font-size: 15px; font-weight: 600; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s, transform 0.3s; box-shadow: 0 4px 12px rgba(0,0,0,0.15); } .wecampus-chatbot-tooltip::after { content: ''; position: absolute; top: 50%; right: -6px; transform: translateY(-50%); border-width: 6px 0 6px 6px; border-style: solid; border-color: transparent transparent transparent ${tooltipColor}; } #wecampus-chatbot-btn:hover .wecampus-chatbot-tooltip, .wecampus-chatbot-tooltip.show-auto { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(-10px); } #wecampus-chatbot-iframe-wrap { position: fixed; bottom: 110px; right: 24px; width: 380px; height: 700px; max-height: calc(100vh - 140px); border-radius: 16px; box-shadow: 0 8px 24px rgba(0,0,0,0.15); background: #fff; z-index: 999999; display: none; overflow: hidden; border: 1px solid #eaeaea; } #wecampus-chatbot-iframe { width: 100%; height: 100%; border: none; } /* 모바일 및 소형 태블릿 화면 대응 */ @media (max-width: 800px), (max-device-width: 800px) { #wecampus-chatbot-iframe-wrap { width: calc(100vw - 32px) !important; max-width: 400px !important; height: calc(100dvh - 140px) !important; max-height: 800px !important; top: auto !important; left: auto !important; bottom: 110px !important; right: 16px !important; border-radius: 16px !important; border: 1px solid #eaeaea !important; box-shadow: 0 8px 24px rgba(0,0,0,0.15) !important; } .wecampus-chatbot-tooltip { display: none; /* 모바일에서는 툴팁 숨김 */ } } `;document.head.appendChild(style);var btn=document.createElement('div');btn.id='wecampus-chatbot-btn';btn.innerHTML=`
${tooltipText}
${tooltipText} `;document.body.appendChild(btn);var tooltipEl=btn.querySelector('#wecampus-tooltip');if(tooltipEl){tooltipEl.classList.add('show-auto');setTimeout(function(){tooltipEl.classList.remove('show-auto');},3000);}var wrap=document.createElement('div');wrap.id='wecampus-chatbot-iframe-wrap';var iframe=document.createElement('iframe');iframe.id='wecampus-chatbot-iframe';wrap.appendChild(iframe);var isIframeLoaded=false;function loadIframe(){if(!isIframeLoaded){iframe.src=baseUrl+'/widget/'+siteCode;isIframeLoaded=true;}}var resizeHandle=document.createElement('div');resizeHandle.id='wecampus-chatbot-resize-handle';resizeHandle.style.cssText='position:absolute; top:0; right:0; width:20px; height:20px; cursor:nesw-resize; z-index:9999999;';wrap.appendChild(resizeHandle);var resizeHandleBR=document.createElement('div');resizeHandleBR.id='wecampus-chatbot-resize-handle-br';resizeHandleBR.style.cssText='position:absolute; bottom:0; right:0; width:20px; height:20px; cursor:nwse-resize; z-index:9999999;';wrap.appendChild(resizeHandleBR);document.body.appendChild(wrap);var isResizing=false;var rStartX,rStartY,startWidth,startHeight,rStartLeft,rStartTop;resizeHandle.addEventListener('mousedown',function(e){isResizing=true;rStartX=e.clientX;rStartY=e.clientY;var rect=wrap.getBoundingClientRect();startWidth=rect.width;startHeight=rect.height;rStartLeft=rect.left;rStartTop=rect.top;wrap.style.right='auto';wrap.style.bottom='auto';wrap.style.left=rStartLeft+'px';wrap.style.top=rStartTop+'px';e.preventDefault();});document.addEventListener('mousemove',function(e){if(isResizing){var dx=e.clientX-rStartX;var dy=e.clientY-rStartY;var newWidth=startWidth+dx;var newHeight=startHeight-dy;var newTop=rStartTop+dy;if(newWidth>320){wrap.style.width=newWidth+'px';}if(newHeight>400){wrap.style.height=newHeight+'px';wrap.style.top=newTop+'px';}}});document.addEventListener('mouseup',function(){isResizing=false;});var isResizingBR=false;var brStartX,brStartY,brStartWidth,brStartHeight,brStartLeft,brStartTop;resizeHandleBR.addEventListener('mousedown',function(e){isResizingBR=true;brStartX=e.clientX;brStartY=e.clientY;var rect=wrap.getBoundingClientRect();brStartWidth=rect.width;brStartHeight=rect.height;brStartLeft=rect.left;brStartTop=rect.top;wrap.style.right='auto';wrap.style.bottom='auto';wrap.style.left=brStartLeft+'px';wrap.style.top=brStartTop+'px';e.preventDefault();});document.addEventListener('mousemove',function(e){if(isResizingBR){var dx=e.clientX-brStartX;var dy=e.clientY-brStartY;var newWidth=brStartWidth+dx;var newHeight=brStartHeight+dy;if(newWidth>320){wrap.style.width=newWidth+'px';}if(newHeight>400){wrap.style.height=newHeight+'px';}}});document.addEventListener('mouseup',function(){isResizingBR=false;});function updateBtnIcon(){var isOpened=wrap.style.display==='block';document.getElementById('wecampus-icon-chat').style.display=isOpened?'none':'block';document.getElementById('wecampus-icon-close').style.display=isOpened?'block':'none';document.getElementById('wecampus-tooltip').style.display=isOpened?'none':'block';}btn.addEventListener('click',function(){if(wrap.style.display==='block'){wrap.style.display='none';}else {loadIframe();wrap.style.display='block';}updateBtnIcon();});window.wecampusChatbot={open:function(){loadIframe();wrap.style.display='block';updateBtnIcon();},close:function(){wrap.style.display='none';updateBtnIcon();},toggle:function(){if(wrap.style.display==='block'){wrap.style.display='none';}else {loadIframe();wrap.style.display='block';}updateBtnIcon();},popup:function(){var popupUrl=baseUrl+'/widget/'+siteCode;window.open(popupUrl,'wecampusChatbotPopup','width=450,height=700,scrollbars=yes,resizable=yes');}};var isDragging=false;var dragStartScreenX=0;var dragStartScreenY=0;var initialLeft=0;var initialTop=0;window.addEventListener('message',function(event){if(event.data){if(event.data.type==='CHATBOT_CLOSE'){wrap.style.display='none';updateBtnIcon();}else if(event.data.type==='REDIRECT'){if(event.data.url){window.location.href=event.data.url;}}else if(event.data.type==='DRAG_START'){isDragging=true;var rect=wrap.getBoundingClientRect();initialLeft=rect.left;initialTop=rect.top;dragStartScreenX=event.data.screenX;dragStartScreenY=event.data.screenY;wrap.style.right='auto';wrap.style.bottom='auto';wrap.style.left=initialLeft+'px';wrap.style.top=initialTop+'px';}else if(event.data.type==='DRAG_MOVE'&&isDragging){var dx=event.data.screenX-dragStartScreenX;var dy=event.data.screenY-dragStartScreenY;wrap.style.left=(initialLeft+dx)+'px';wrap.style.top=(initialTop+dy)+'px';}else if(event.data.type==='DRAG_END'){isDragging=false;}}});}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initWidget);}else {initWidget();}})();