window.mcInitializers = {}; window.addMCInitializer = function(_name, _func, _container) { if(!!window.mcInitializers[_name]) { // console.warn('ALIX initializer ' + _name + ' exists. Will overwrite.'); delete window.mcInitializers[_name]; } window.mcInitializers[_name] = { func: _func, container: _container }; }; window.runMCInitializers = function(_target = null) { if(!!mcInitializers) { // console.log('ALIX -----------------'); for(let initer in mcInitializers) { if(mcInitializers.hasOwnProperty(initer)) { try { let initerObj = mcInitializers[initer]; if(!initerObj.container || $(initerObj.container).length) { // console.log("ALIX running MC initer", initer); initerObj.func(_target); } else { // console.warn("ALIX MC initer not in context. Removing ", initer); delete mcInitializers[initer]; initerObj = null; } } catch(e) { console.warn('MC init error: ', e); console.warn('Initer: ', initer); } } } } }; window.runMCInitializer = function(_initer) { if(!!mcInitializers && !!mcInitializers[_initer]) { try { let initerObj = mcInitializers[_initer]; if(!initerObj.container || $(initerObj.container).length) { // console.log("ALIX running MC initer", initer); initerObj.func(); } else { // console.warn("ALIX MC initer not in context. Removing ", initer); delete mcInitializers[_initer]; initerObj = null; } } catch(e) { console.warn('MC init error: ', e); console.warn('Initer: ', _initer); } } }; window.mcHooks = {}; window.addMCHook = function(_name, _func) { if(!!window.mcHooks[_name]) { // console.warn('ALIX initializer ' + _name + ' exists. Will overwrite.'); delete window.mcHooks[_name]; } window.mcHooks[_name] = { func: _func }; }; window.hasMCHook = function(_initer) { return !!mcHooks && !!mcHooks[_initer]; } window.runMCHook = function(_initer) { if(!!mcHooks && !!mcHooks[_initer]) { try { let initerObj = mcHooks[_initer]; initerObj.func(); } catch(e) { console.warn('MC hook error: ', e); console.warn('Hook: ', _initer); } } };