
function NMModuleDefaultHandler(module)
{var files=module['files'];if(!files)
return;for(var i in files)
{if((i in Object.prototype))continue;var file=files[i];idx=file.lastIndexOf('.');if(idx>3)
{var ch=file.charAt(idx-3);if(ch=="_")
{var bstype=file.substring(idx-2,idx);bstype=bstype.toLowerCase();if(bstype=='ie'||bstype=="ff")
{var bs=(isFF)?'ff':'ie';if(bs!=bstype)
{continue;}}}}
var filehandler=NMFileHandlers.get(file);filehandler(file);}}
var NMModuleHandlers={add:function(type,func)
{this[type]=func;},get:function(module)
{var type=module['type'];var func=NMModuleDefaultHandler;if(typeof func!="undefined")
{func=this[type];}
return func;}}
function NMModuleToolbarItemHandler(module)
{NMModuleDefaultHandler(module);var config=module['toolbar_config'];NMAddToolbarItem(config);}
function NMModuleToolwinItemHandler(module)
{NMModuleDefaultHandler(module);var toolwin_config=module['toolwin_config'];var toolwinobjname=toolwin_config['name']?toolwin_config['name']:module['name']+"_win";var toolwinobj=new ToolWinObj(document,toolwinobjname,toolwin_config);var toolbar_config=module['toolbar_config'];if(!toolbar_config['actions']);toolbar_config['actions']=[];var actions=toolbar_config['actions'];actions['click']=toolwinobj.toggle.bind(toolwinobj);NMAddToolbarItem(toolbar_config);}
NMModuleHandlers.add("default",NMModuleDefaultHandler);NMModuleHandlers.add("toolbaritem",NMModuleToolbarItemHandler);NMModuleHandlers.add("toolwin",NMModuleToolwinItemHandler);function NMCommLoadModule(module)
{if(module['state']!="off")
{var moduleloader=NMModuleHandlers.get(module);if(moduleloader)
{moduleloader(module);}}}
function NMCommLoadModules(modules)
{for(var i in modules)
{if((i in Object.prototype))continue;var module=modules[i];NMCommLoadModule(module);}}
function NMCommModulesSetPrefs(portion,modules)
{var objstr=ObjToSource(modules);NMPrefSet("nmcommpref.modules.load",objstr);}
function NMCommModulesGetPrefs(portion,defaultvalue)
{var objstr=NMPrefGet("nmcommpref.modules."+portion);if(typeof objstr=="undefined")
return defaultvalue;var modules=ObjFromSource(objstr);return modules;}
function NMCommModulesOnBrowseComm(e)
{var url=e.url;var commurl=e.commurl;}
var gnmcommmodules=[];function NMCommModulesInit(e)
{gnmcommmodules=NMCommModulesGetPrefs("sys",gnmcommmodules);NMCommLoadModules(gnmcommmodules);EventCatch(NMBrowser,"browsecomm",NMCommModulesOnBrowseComm);}
AppendWinLoadEvent(NMCommModulesInit);debug("module.js");
