text: /*	Copyright (c) 2016 Jean-Marc VIGLINO,
  	released under the CeCILL-B license (French BSD license)
  	(http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt).
  */
  
  import ol_ext_inherits from '../util/ext'
  import ol_control_Toggle from './Toggle'
  import ol_interaction_GeolocationDraw from '../interaction/GeolocationDraw'
  
  /** Geolocation bar
   * The control bar is a container for other controls. It can be used to create toolbars.
   * Control bars can be nested and combined with ol.control.Toggle to handle activate/deactivate.
   *
   * @constructor
   * @fires tracking
   * @extends {ol_control_Toggle}
   * @param {Object=} options ol.interaction.GeolocationDraw option.
   *  @param {String} options.className class of the control
   *  @param {String} options.title title of the control to display as tooltip, default Geolocation
   *  @param {number} options.delay delay before removing the location in ms, delfaut 3000 (3s)
   */
  var ol_control_GeolocationButton = function(options) {
    if (!options) options = {};
    // Geolocation draw interaction
    options.followTrack = options.followTrack || 'auto';
    options.zoom = options.zoom || 16;
    //options.minZoom = options.minZoom || 16;
    var interaction = new ol_interaction_GeolocationDraw(options);
  
    ol_control_Toggle.call (this, {
      className: options.className = ((options.className || '') + ' ol-geobt').trim(),
      interaction: interaction,
      title: options.title || 'Geolocation',
      onToggle: function() {
        interaction.pause(true);
        interaction.setFollowTrack(options.followTrack || 'auto');
      }
    });
    this.setActive(false);
  
    interaction.on('tracking', function(e) {
      this.dispatchEvent({ type: 'position', coordinate: e.geolocation.getPosition() });
    }.bind(this));
  
  
    // Timeout delay
    var tout;
    interaction.on('change:active', function() {
      this.dispatchEvent({ type:'position' });
      if (tout) {
        clearTimeout(tout);
        tout = null;
      }
      if (interaction.getActive()) {
        tout = setTimeout(function() {
          interaction.setActive(false);
          tout = null;
        }.bind(this), options.delay || 3000);
      }
    }.bind(this));
    
  };
  ol_ext_inherits(ol_control_GeolocationButton, ol_control_Toggle);
  
  export default ol_control_GeolocationButton
  