window.MXOBJ = MXOBJ = window.MXOBJ||{}; MXOBJ.dialog=MXOBJ.dialog||{}; MXOBJ.attachEvent = MXOBJ.attachEvent || function(e,t,f) {if (e&&e.addEventListener)e.addEventListener(t, f, true); else e&&e.attachEvent('on'+t, f);}; if (!MXOBJ.setAttrs) MXOBJ.setAttrs = function(e, attrs) {if (!e||!attrs)return; let arr = attrs.split(";"); arr.forEach(function(s) {let colon = s.indexOf(":");if (colon>0) {let name = s.substring(0, colon).trim(), val = s.substring(colon+1, s.length).trim();e.setAttribute(name, val);}});}; MXOBJ.dialog.img_success = MXOBJ.moduleBaseUrl + '/images/mx/icons/24x24_Free_Application/ok.png'; MXOBJ.dialog.img_quest = MXOBJ.moduleBaseUrl + '/images/mx/icons/Super Mono_Jack Cai/question_balloon.png'; MXOBJ.dialog.img_info = MXOBJ.moduleBaseUrl + '/images/mx/icons/Oxygen_Oxygen_Team/document_properties.png'; MXOBJ.dialog.img_warn = MXOBJ.moduleBaseUrl + '/images/mx/icons/Oxygen-Refit_deviantdark/dialog_warning.png'; MXOBJ.dialog.img_error = MXOBJ.moduleBaseUrl + '/images/mx/icons/Free_Common_widepixel/exclamation5.png'; MXOBJ.dialog.staticOnShows = MXOBJ.dialog.staticOnShows||[]; MXOBJ.dialog.staticOnHides = MXOBJ.dialog.staticOnHides||[]; MXOBJ.dialog.styleSheetPath = 'styles/module_embed/embed_dialog.css'; // ATTENTION: if a modal popup is shown then event handlers not working MXOBJ.dialog.create = function(showOkButton, showCancelButton, icon, color, onOk, onCancel, params) { params=params||{}; let d = document.createElement('div'); document.body.appendChild(d); let id = 'dial_' + Math.random(); d.setAttribute('id', id); d.setAttribute('class', 'mx_dialogue'); d.params = params; d.onShows = []; d.onHides = []; d.onOkValidators = []; d.onStyleSheetLoadeds = []; d.showing = d.animing = d.hiding = d.shown = false; d.animTop = params['anim_top'] || MXOBJ.dialog.defAnim==='anim_top'; d.animOpacity = params['anim_opacity'] || MXOBJ.dialog.defAnim==='anim_opacity'; d.hasAnim = d.animTop || d.animOpacity; d.animSec = params['anim_sec'] ? params['anim_sec'] : 0.5; d.setAttribute('style', 'display:block;position:fixed;z-index:10001;box-shadow:1px 1px 35px #999'); MXOBJ.setAttrs(d, params.attrs); MXOBJ.dialog.loadStyleSheet(d); color=color||'lightblue'; MXOBJ.attachEvent(d, 'transitionend', function(evt){MXOBJ.dialog.onTransitionend(d, evt);}); d.eByCl = function(c) {let n=d.getElementsByClassName(c);return n.length===0?null:n[0];}; let innerHtml = '
'; if (!params['hide_head']) { innerHtml += '' + '' + ''; } innerHtml += '' + '' + ''; if (!params['hide_foot']) { innerHtml += '' + '' + ''; } innerHtml += '
' + '
' + (icon ? '
' : '') + '' + '
' + '' + '
X
' + '
' + '' + '
' + '
' + (showOkButton ? ('') : '') + (showCancelButton ? ('') : '') + '
' + '
'; d.innerHTML = innerHtml; d.style.top = (-window.innerHeight*2) + 'px'; d.headTR = d.eByCl('mx_dial_head_tr'); d.headSpan = d.eByCl('mx_dial_head_span'); d.headPanel = d.eByCl('mx_dial_head_panel'); d.contentTD = d.eByCl('mx_dial_content_td'); d.footTR = d.eByCl('mx_dial_foot_tr'); d.buttonPanel = d.eByCl('mx_dial_button_panel'); d.okButton = d.eByCl('mx_dial_okButton'); d.cancelButton = d.eByCl('mx_dial_cancelButton'); d.closeSign = d.eByCl('mx_dial_close_sign'); d.glass = document.createElement('div'); d.glass.setAttribute('style', 'width:' + window.innerWidth + 'px;height:' + window.innerHeight + 'px'); d.glass.setAttribute('class', 'mx_dial_glass'); d.setTitle = function(html) {d.headSpan.innerHTML = html}; MXOBJ.attachEvent(d.okButton, 'click', function(){ for (let i=0;i