docs: function(ajaxRequest) {
          var doc = ajaxRequest.responseXML;
          if (!doc || !doc.documentElement) {
              doc = OpenLayers.Format.XML.prototype.read(ajaxRequest.responseText);
          }
          
          if (this.useFeedTitle) {
              var name = null;
              try {
                  name = doc.getElementsByTagNameNS('*', 'title')[0].firstChild.nodeValue;
              }
              catch (e) {
                  name = doc.getElementsByTagName('title')[0].firstChild.nodeValue;
              }
              if (name) {
                  this.setName(name);
              }    
          }
         
          var options = {};
          
          OpenLayers.Util.extend(options, this.formatOptions);
          
          if (this.map && !this.projection.equals(this.map.getProjectionObject())) {
              options.externalProjection = this.projection;
              options.internalProjection = this.map.getProjectionObject();
          }    
          
          var format = new OpenLayers.Format.GeoRSS(options);
          var features = format.read(doc);
          
          for (var i=0, len=features.length; i<len; i++) {
              var data = {};
              var feature = features[i];
              
              // we don't support features with no geometry in the GeoRSS
              // layer at this time. 
              if (!feature.geometry) {
                  continue;
              }    
              
              var title = feature.attributes.title ? 
                           feature.attributes.title : "Untitled";
              
              var description = feature.attributes.description ? 
                           feature.attributes.description : "No description.";
              
              var link = feature.attributes.link ? feature.attributes.link : "";
  
              var location = feature.geometry.getBounds().getCenterLonLat();
              
              
              data.icon = this.icon == null ? 
                                       OpenLayers.Marker.defaultIcon() : 
                                       this.icon.clone();
              
              data.popupSize = this.popupSize ? 
                               this.popupSize.clone() :
                               new OpenLayers.Size(250, 120);
              
              if (title || description) {
                  // we have supplemental data, store them.
                  data.title = title;
                  data.description = description;
              
                  var contentHTML = '<div class="olLayerGeoRSSClose">[x]</div>'; 
                  contentHTML += '<div class="olLayerGeoRSSTitle">';
                  if (link) {
                      contentHTML += '<a class="link" href="'+link+'" target="_blank">';
                  }
                  contentHTML += title;
                  if (link) {
                      contentHTML += '</a>';
                  }
                  contentHTML += '</div>';
                  contentHTML += '<div style="" class="olLayerGeoRSSDescription">';
                  contentHTML += description;
                  contentHTML += '</div>';
                  data['popupContentHTML'] = contentHTML;                
              }
              var feature = new OpenLayers.Feature(this, location, data);
              this.features.push(feature);
              var marker = feature.createMarker();
              marker.events.register('click', feature, this.markerClick);
              this.addMarker(marker);
          }
          this.events.triggerEvent("loadend");
      }