
EnergizedWork.EventHandlerRegistrar={loadEventFired:false,eventHandlers:[],deferredScripts:[],idCounter:1,registerOnLoad:function(name,cssSelector,event,callback,params){var handler={'name':name,'cssSelector':cssSelector,'event':event,'callback':callback,'params':params};if(!this.loadEventFired){this.eventHandlers[this.eventHandlers.length]=handler;}else if(this.isEnabled()){this.registerEventHandlerForMultipleElements(handler);}},executeOnLoad:function(script){if(!this.loadEventFired){this.deferredScripts[this.deferredScripts.length]=script;}else if(this.isEnabled()){script();}},activate:function(){if(this.loadEventFired===true)return;this.loadEventFired=true;if(this.isEnabled()){for(var loop=0;loop<this.eventHandlers.length;loop++){this.registerEventHandlerForMultipleElements(this.eventHandlers[loop]);}
this.deferredScripts.each(function(script){script();});}},registerEventHandlerForMultipleElements:function(handler){var callback=eval(handler.callback);var elements=$$(handler.cssSelector);for(var loop=0;loop<elements.length;loop++){this.registerEventHandler(handler.name,elements[loop],handler.event,callback,handler.params);}},registerEventHandler:function(name,element,event,callback,params){if(!element.id){element.id="anonymous_element_"+this.idCounter++;}
if(!element.activeListeners)element.activeListeners={};if(element.activeListeners[name]&&(document.location+'').match(/(localhost|commutineer\.ew)/)){alert('This page attempted to register a duplicate event handler called \''+name+'\' for event \''+event+'\' on element with id \''+element.id+'\' and class \''+element.className+'\'.'+'\n\nThe likely cause is that register() has been incorrectly called more than once for the element in question. '+'Do not attempt to fix this by changing the event handler name; instead make the css selector more specific so that it only selects the correct elements (unless you really do want to bind multiple event handlers).');}else{var listener=callback.bindAsEventListener(params,element);element.activeListeners[name]=listener;Event.observe(element,event,listener);}},unregisterEventHandler:function(name,element,event){var listener=element.activeListeners[name];if(listener){Event.stopObserving(element,event,listener);element.activeListeners[name]=null;}},replaceEventHandler:function(newName,oldName,element,event,callback){this.unregisterEventHandler(oldName,element,event);this.registerEventHandler(newName,element,event,callback);},isEnabled:function(){return document.cookie.indexOf('disableAjax=true')<0;}};