code: function(point) {
          var numRings = this.components.length;
          var contained = false;
          if(numRings > 0) {
              // check exterior ring - 1 means on edge, boolean otherwise
              contained = this.components[0].containsPoint(point);
              if(contained !== 1) {
                  if(contained && numRings > 1) {
                      // check interior rings
                      var hole;
                      for(var i=1; i<numRings; ++i) {
                          hole = this.components[i].containsPoint(point);
                          if(hole) {
                              if(hole === 1) {
                                  // on edge
                                  contained = 1;
                              } else {
                                  // in hole
                                  contained = false;
                              }                            
                              break;
                          }
                      }
                  }
              }
          }
          return contained;
      }
docs: Method: containsPoint
  Test if a point is inside a polygon.  Points on a polygon edge are
  considered inside.
  
  Parameters:
  point - {<OpenLayers.Geometry.Point>}
  
  Returns:
  {Boolean | Number} The point is inside the polygon.  Returns 1 if the
  point is on an edge.  Returns boolean otherwise.