docs: function (style, options) {
          this.styles = {
              "default": new OpenLayers.Style(
                  OpenLayers.Feature.Vector.style["default"]),
              "select": new OpenLayers.Style(
                  OpenLayers.Feature.Vector.style["select"]),
              "temporary": new OpenLayers.Style(
                  OpenLayers.Feature.Vector.style["temporary"]),
              "delete": new OpenLayers.Style(
                  OpenLayers.Feature.Vector.style["delete"])
          };
          
          // take whatever the user passed as style parameter and convert it
          // into parts of stylemap.
          if(style instanceof OpenLayers.Style) {
              // user passed a style object
              this.styles["default"] = style;
              this.styles["select"] = style;
              this.styles["temporary"] = style;
              this.styles["delete"] = style;
          } else if(typeof style == "object") {
              for(var key in style) {
                  if(style[key] instanceof OpenLayers.Style) {
                      // user passed a hash of style objects
                      this.styles[key] = style[key];
                  } else if(typeof style[key] == "object") {
                      // user passsed a hash of style hashes
                      this.styles[key] = new OpenLayers.Style(style[key]);
                  } else {
                      // user passed a style hash (i.e. symbolizer)
                      this.styles["default"] = new OpenLayers.Style(style);
                      this.styles["select"] = new OpenLayers.Style(style);
                      this.styles["temporary"] = new OpenLayers.Style(style);
                      this.styles["delete"] = new OpenLayers.Style(style);
                      break;
                  }
              }
          }
          OpenLayers.Util.extend(this, options);
      }