docs: function (graphicName)  {
          if (!this.defs) {
              // create svg defs tag
              this.defs = this.createDefs();
          }
          var id = this.container.id + "-" + graphicName;
          
          // check if symbol already exists in the defs
          var existing = document.getElementById(id);
          if (existing != null) {
              return existing;
          }
          
          var symbol = OpenLayers.Renderer.symbol[graphicName];
          if (!symbol) {
              throw new Error(graphicName + ' is not a valid symbol name');
          }
  
          var symbolNode = this.nodeFactory(id, "symbol");
          var node = this.nodeFactory(null, "polygon");
          symbolNode.appendChild(node);
          var symbolExtent = new OpenLayers.Bounds(
                                      Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
  
          var points = [];
          var x,y;
          for (var i=0; i<symbol.length; i=i+2) {
              x = symbol[i];
              y = symbol[i+1];
              symbolExtent.left = Math.min(symbolExtent.left, x);
              symbolExtent.bottom = Math.min(symbolExtent.bottom, y);
              symbolExtent.right = Math.max(symbolExtent.right, x);
              symbolExtent.top = Math.max(symbolExtent.top, y);
              points.push(x, ",", y);
          }
          
          node.setAttributeNS(null, "points", points.join(" "));
          
          var width = symbolExtent.getWidth();
          var height = symbolExtent.getHeight();
          // create a viewBox three times as large as the symbol itself,
          // to allow for strokeWidth being displayed correctly at the corners.
          var viewBox = [symbolExtent.left - width,
                          symbolExtent.bottom - height, width * 3, height * 3];
          symbolNode.setAttributeNS(null, "viewBox", viewBox.join(" "));
          this.symbolMetrics[id] = [
              Math.max(width, height),
              symbolExtent.getCenterLonLat().lon,
              symbolExtent.getCenterLonLat().lat
          ];
          
          this.defs.appendChild(symbolNode);
          return symbolNode;
      }