function Events_chainEvent(element, handlerName, extraCode) { var strOldHandlerContent="" if (element[handlerName]!=null) { var strOldHandler=element[handlerName].toString(); strOldHandlerContent=strOldHandler.match(/\{[\s\S]*\}/g)[0] if(strOldHandlerContent==null) strOldHandlerContent="" if (strOldHandlerContent.length>3) strOldHandlerContent=strOldHandlerContent.substring(1,strOldHandlerContent.length-2); } if (!extraCode.substring(extraCode.length-1, extraCode.length)==";") extraCode+=";"; element[handlerName]=new Function(extraCode+strOldHandlerContent); } function Events_removeEvent(element, handlerName, removeCode) { if (!removeCode) { element[handlerName]=null; return true; } if (element[handlerName]!=null) { var strOldHandler=element[handlerName].toString(); var strOldHandlerContent=strOldHandler.match(/\{[\s\S]*\}/g)[0] if (strOldHandlerContent==null) return false; //Now pull off the first and last characters which _should_ be { and } if (strOldHandlerContent.length>3) strOldHandlerContent=strOldHandlerContent.substring(1,strOldHandlerContent.length-2); var newContent=eval("strOldHandlerContent.replace(/"+removeCode.replace(/\(/,"\\(").replace(/\)/,"\\)").replace(/\[/,"\\[").replace(/\]/,"\\]")+"\s*;{0,1}/,\"\")"); if (newContent!=strOldHandlerContent) { element[handlerName]=new Function(newContent); } else return false; } else return false; } function Events_runHere(command) { var newFunction=new Function(command); newFunction(); }