
var ModuleManager=Class.create({initialize:function(){this.moduleLoadCalls=[];this.moduleLoadOnLoadCalls=[];this.loaded=false;this.loadedCallBacks=false;this.loadedOnLoadCallBacks=false;},registerModuleLoad:function(callback){if(!callback)throw new Error("You must supply a callback to run for [registerModuleLoad]");if(typeof(callback)!="function")throw new Error("You must supply a valid function for the [registerModuleLoad] callback");this.moduleLoadCalls[this.moduleLoadCalls.length]=callback;},registerModuleLoadOnLoad:function(callback){if(!callback)throw new Error("You must supply a callback to run for [registerModuleLoadOnLoad]");if(typeof(callback)!=="function")throw new Error("You must supply a valid function for the [registerModuleLoadOnLoad] callback");this.moduleLoadOnLoadCalls[this.moduleLoadOnLoadCalls.length]=callback;},loadModules:function(){for(var loop=0;loop<moduleManager.moduleLoadCalls.length;loop++){moduleManager.moduleLoadCalls[loop]();}
moduleManager.loadedCallBacks=true;moduleManager.loaded=moduleManager.loadedCallBacks&&moduleManager.loadedOnLoadCallBacks;},loadModulesOnLoad:function(){for(var loop=0;loop<moduleManager.moduleLoadOnLoadCalls.length;loop++){moduleManager.moduleLoadOnLoadCalls[loop]();}
moduleManager.loadedOnLoadCallBacks=true;moduleManager.loaded=moduleManager.loadedCallBacks&&moduleManager.loadedOnLoadCallBacks;}});var moduleManager=new ModuleManager();Event.observe(window,'load',moduleManager.loadModulesOnLoad);if(!document.addEventListener){document.write("<s"+"cript id=XXonDOMContentLoaded defer src=//:><\/sc"+"ript>");$("XXonDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;void(setTimeout('moduleManager.loadModules()',50));}};}else{Event.observe(document,'dom:loaded',moduleManager.loadModules);}
if(window['coedit']===undefined)
{window['coedit']={};}
coedit.version=function()
{return"1.0";};coedit.browser={};coedit.browser.fx=function()
{return navigator.userAgent.indexOf('Firefox')>0;};coedit.debug=function(l_sDebugLevel)
{switch(l_sDebugLevel)
{case'todo':return true;break;case'info':return false;break;case'log':return false;break;case'error':return true;break;}};coedit.log=function(l_sMessage)
{if(coedit.debug('log'))
{if(coedit.browser.fx())
{console.log(l_sMessage);}
else
{alert('Log:\n'+l_sMessage);}}};coedit.todo=function(l_sMessage)
{if(coedit.debug('todo'))
{if(coedit.browser.fx())
{console.info('TODO: '+l_sMessage);}
else
{alert('ToDo:\n'+l_sMessage);}}};coedit.info=function(l_sMessage)
{if(coedit.debug('info'))
{if(coedit.browser.fx())
{console.info(l_sMessage);}
else
{alert('Info:\n'+l_sMessage);}}};coedit.error=function(l_sMessage)
{if(coedit.debug('error'))
{if(coedit.browser.fx())
{console.error(l_sMessage);}
else
{alert('Error:\n'+l_sMessage);}}};coedit.trim=function(l_sData)
{if(l_sData===undefined)
{return"";}
return l_sData.replace(/^\s*|\s*$/,"");};var debugWindowHandle=null;var fireBugInstalled=false;if(typeof(window.console)=='object'){if(typeof(window.console.log)=='function'){fireBugInstalled=true;}}
function openDebugWindow(){if(!fireBugInstalled){debugWindowHandle=window.open('','logWin','');if(debugWindowHandle.document.getElementsByTagName('textarea').length==0){debugWindowHandle.document.open();debugWindowHandle.document.write('<html><body><form><textarea id="log" cols="120" rows="30"></textarea></form></body></html>');debugWindowHandle.document.close();}}}
function logToDebugWindow(str){if(!fireBugInstalled){if(debugWindowHandle!=null){if(debugWindowHandle.closed!==true){var logger=debugWindowHandle.document.getElementById('log');if(logger)logger.value+='\n'+str;}}}else{console.log(str);}}