rem: element.target = this; element.prev_onclick = element.onclick || Prototype.emptyFunction; element.onclick = function() { this.prev_onclick(); this.target.onElementEvent(); } 
add: Event.observe(element, 'click', this.onElementEvent.bind(this)); 
context:   registerCallback: function(element) {    if (element.type) {      switch (element.type.toLowerCase()) {        case 'checkbox':        case 'radio':          element.target = this;          element.prev_onclick = element.onclick || Prototype.emptyFunction;          element.onclick = function() {            this.prev_onclick();            this.target.onElementEvent();          }          break;        case 'password':        case 'text':        case 'textarea':        case 'select-one':        case 'select-multiple':          element.target = this;          element.prev_onchange = element.onchange || Prototype.emptyFunction;          element.onchange = function() {            this.prev_onchange();            this.target.onElementEvent();          }          break;      }    }  }
meta: 5150	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5150/44d85be227cc8496144d82df38b82dfcc1224861/prototype.js/clean/intermine/webapp/main/resources/main/js/prototype.js