text: /*
   * L.Control is a base class for implementing map controls. Handles positioning.
   * All other controls extend from this class.
   */
  
  L.Control = L.Class.extend({
  	options: {
  		position: 'topright'
  	},
  
  	initialize: function (options) {
  		L.setOptions(this, options);
  	},
  
  	getPosition: function () {
  		return this.options.position;
  	},
  
  	setPosition: function (position) {
  		var map = this._map;
  
  		if (map) {
  			map.removeControl(this);
  		}
  
  		this.options.position = position;
  
  		if (map) {
  			map.addControl(this);
  		}
  
  		return this;
  	},
  
  	getContainer: function () {
  		return this._container;
  	},
  
  	addTo: function (map) {
  		this._map = map;
  
  		var container = this._container = this.onAdd(map),
  		    pos = this.getPosition(),
  		    corner = map._controlCorners[pos];
  
  		L.DomUtil.addClass(container, 'leaflet-control');
  
  		if (pos.indexOf('bottom') !== -1) {
  			corner.insertBefore(container, corner.firstChild);
  		} else {
  			corner.appendChild(container);
  		}
  
  		return this;
  	},
  
  	removeFrom: function (map) {
  		var pos = this.getPosition(),
  		    corner = map._controlCorners[pos];
  
  		corner.removeChild(this._container);
  		this._map = null;
  
  		if (this.onRemove) {
  			this.onRemove(map);
  		}
  
  		return this;
  	}
  });
  
  L.control = function (options) {
  	return new L.Control(options);
  };
  