code: function () {
  		var ajax = this.obj.$ajax;
  		var self = this;
  		var version = this.obj.getUserData(0, "version");
  		var url = this.serverProcessor + ajax.urlSeparator(this.serverProcessor) + ["dhx_user=" + this._user, "dhx_version=" + version].join("&");
  		url = url.replace("editing=true&", "");
  		this.getUpdates(url, function (xml) {
  			var vers = ajax.xpath("//userdata", xml);
  			self.obj.setUserData(0, "version", self._v(vers[0]));
  
  			var upds = ajax.xpath("//update", xml);
  			if (upds.length) {
  				self._silent_mode = true;
  
  				for (var i = 0; i < upds.length; i++) {
  					var status = upds[i].getAttribute('status');
  					var id = upds[i].getAttribute('id');
  					var parent = upds[i].getAttribute('parent');
  					switch (status) {
  						case 'inserted':
  							self.callEvent("insertCallback", [upds[i], id, parent]);
  							break;
  						case 'updated':
  							self.callEvent("updateCallback", [upds[i], id, parent]);
  							break;
  						case 'deleted':
  							self.callEvent("deleteCallback", [upds[i], id, parent]);
  							break;
  					}
  				}
  
  				self._silent_mode = false;
  			}
  
  			self._update_busy = false;
  			self = null;
  		});
  	}
docs: /* loads updates and processes them