text: /**
   * @file
   * JS Implementation of OpenLayers behavior.
   */
  
  /**
   * Javascript Drupal Theming function for inside of Tooltips
   *
   * To override
   *
   * @param feature
   *  OpenLayers feature object.
   * @return
   *  Formatted HTML.
   */
  Drupal.theme.prototype.openlayersTooltip = function(feature) {
    var output = '';
  
    if (feature.attributes.name) {
      output += '<div class="openlayers-popup openlayers-tooltip-name">' + feature.attributes.name + '</div>';
    }
    if (feature.attributes.description) {
      output += '<div class="openlayers-popup openlayers-tooltip-description">' + feature.attributes.description + '</div>';
    }
  
    return output;
  };
  
  /**
   * OpenLayers Tooltip Behavior
   */
  Drupal.openlayers.addBehavior('openlayers_behavior_tooltip', function (data, options) {
    var map = data.openlayers;
    var layers = [];
  
    // For backwards compatiability, if layers is not
    // defined, then include all vector layers
    if (typeof options.layers == 'undefined' || options.layers.length == 0) {
      layers = map.getLayersByClass('OpenLayers.Layer.Vector');
    }
    else {
      for (var i in options.layers) {
        var selectedLayer = map.getLayersBy('drupalID', options.layers[i]);
        if (typeof selectedLayer[0] != 'undefined') {
          layers.push(selectedLayer[0]);
        }
      }
    }
  
    // if only 1 layer exists, do not add as an array.  Kind of a
    // hack, see https://drupal.org/node/1393460
    if (layers.length == 1) {
      layers = layers[0];
    }
  
    // Define feature select events for selected layers.
    var popupSelect = new OpenLayers.Control.SelectFeature(layers,
      {
        hover: true,
        clickout: false,
        multiple: false,
        onSelect: function(feature) {
          // Create FramedCloud popup for tooltip.
          var output = Drupal.theme('openlayersTooltip', feature);
          if (typeof output != 'undefined') {
            popup = new OpenLayers.Popup.FramedCloud(
              'tooltip',
              feature.geometry.getBounds().getCenterLonLat(),
              null,
              output,
              null,
              true
            );
            feature.popup = popup;
            feature.layer.map.addPopup(popup);
            Drupal.attachBehaviors();
          }
        },
        onUnselect: function(feature) {
          // Remove popup.
          if (typeof feature.popup != 'undefined') {
            feature.layer.map.removePopup(feature.popup);
            feature.popup.destroy();
            feature.popup = null;
          }
        }
      }
    );
    popupSelect.handlers['feature'].stopDown = false;
    popupSelect.handlers['feature'].stopUp = false;
  
    // Actiate the popups
    map.addControl(popupSelect);
    popupSelect.activate();
  });
  