function module_run(EV_M, EV, ActionEnvironment){
var Handled = false;
if(glob('Modules')){
var Modules = glob('Modules');
var modulename;
for(modulename in Modules){
var module = Modules[modulename];
if(module.enable&&!module.disableForEvent[EV_M+EV]){
var activeEvent = false;
var eventData = new Object();
eventData.event = EV;
eventData.button = glob('COOKIE');
eventData.sender = glob('SENDER');
eventData.rule_command = glob("RULE_COMMAND");
eventData.rule_item = glob("RULE_MESSAGE");
eventData.rule_action = glob("RULE_ACTION_ID");
eventData.handled = Handled;
if(func.DebugState>=5){
switch(EV_M){
case M_EV_GLOBAL : activeEvent = module.instance.OnEvent(module, eventData); break;
case M_EV_MODULE_INIT : activeEvent = module.instance.Init(module); break;
case M_EV_MODULE_QUIT : activeEvent = module.instance.Quit(module); break;
case M_EV_TEMPLATE_INIT : activeEvent = module.instance.OnTemplate(module,
ActionEnvironment); break;
}
}else
try{
switch(EV_M){
case M_EV_GLOBAL : activeEvent = module.instance.OnEvent(module, eventData); break;
case M_EV_MODULE_INIT : activeEvent = module.instance.Init(module); break;
case M_EV_MODULE_QUIT : activeEvent = module.instance.Quit(module); break;
case M_EV_TEMPLATE_INIT : activeEvent = module.instance.OnTemplate(module,
ActionEnvironment); break;
}
}catch(e){alert(printf(ERR_RunEvent, [e.name, e.message]))}
module.disableForEvent[EV_M+EV] = !activeEvent;
Handled = eventData.handled;
}
}
}
return(Handled)
}
|