/** * global.js * by Garrett Smith * Provides functionality for extending custom classes. * * ElementWrapper is a simple wrapper class. * * EventQueue provides Event Listener Functionality. */ Function.prototype.extend=function(souper){this.prototype=new souper;this.prototype.constructor=this;this.souper=souper;this.prototype.souper=souper;};ElementWrapper=function ElementWrapper(el){if(arguments.length==0)return;this.el=el;this.id=el.id;if(!ElementWrapper.list[this.id])ElementWrapper.list[this.id]=this;};ElementWrapper.list=new function(){};ElementWrapper.getWrapper=function(id){return ElementWrapper.list[id];};EventQueue=function EventQueue(eventObj){if(arguments.length==0)return;this.souper=EventQueue.souper;this.souper(eventObj);this.eventObj=eventObj;this.addToPool();};EventQueue.extend(ElementWrapper);EventQueue.prototype.addEventListener=function(etype,pointer){var list=this.eventHandlerList(etype);return list[list.length++]=pointer;};EventQueue.prototype.eventHandlerList=function(etype){if(!this[etype])this[etype]=new EventQueue.EventHandler(this,etype);return this[etype];};EventQueue.prototype.removeEventListener=function(etype,pointer){var list=this[etype];var len=list.length;if(len==0)return null;var newList=new Array(len-1);var rtn=null;for(var i=0;i