add: self.afterCompletion(); 
context:         this.xmlhttp.onreadystatechange = function() {          switch (self.xmlhttp.readyState){            case 1:              self.onLoading();            break;            case 2:              self.onLoaded();            break;            case 3:              self.onInteractive();            break;            case 4:              self.response = self.xmlhttp.responseText;              self.responseXML = self.xmlhttp.responseXML;              self.responseStatus[0] = self.xmlhttp.status;              self.responseStatus[1] = self.xmlhttp.statusText;              self.onCompletion();              if(self.execute){ self.runResponse(); }              if (self.elementObj) {                var elemNodeName = self.elementObj.nodeName;                elemNodeName.toLowerCase();                if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){                  self.elementObj.value = self.response;                } else {                  self.elementObj.innerHTML = self.response;                }              }              self.URLString = "";            break;          }        };
meta: 4676	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/4676/3df72098bbc205fa4bd4735d52d2626baad93548/tw-sack.js/clean/lib/scripts/tw-sack.js