docs: function(url, params, callback) {
          var id = OpenLayers.Protocol.Script.register(callback);
          var name = OpenLayers.String.format(this.callbackTemplate, {id: id});
          params = OpenLayers.Util.extend({}, params);
          params[this.callbackKey] = this.callbackPrefix + name;
          url = OpenLayers.Util.urlAppend(
              url, OpenLayers.Util.getParameterString(params)
          );
          var script = document.createElement("script");
          script.type = "text/javascript";
          script.src = url;
          script.id = "OpenLayers_Protocol_Script_" + id;
          this.pendingRequests[script.id] = script;
          var head = document.getElementsByTagName("head")[0];
          head.appendChild(script);
          return script;
      }