text: L.DrawToolbar = L.Toolbar.extend({
  
  	options: {
  		polyline: {
  			title: L.drawLocal.draw.toolbar.polyline
  		},
  		polygon: {
  			title: L.drawLocal.draw.toolbar.polygon
  		},
  		rectangle: {
  			title: L.drawLocal.draw.toolbar.rectangle
  		},
  		circle: {
  			title: L.drawLocal.draw.toolbar.circle
  		},
  		marker: {
  			title: L.drawLocal.draw.toolbar.marker
  		}
  	},
  
  	initialize: function (options) {
  		// Ensure that the options are merged correctly since L.extend is only shallow
  		for (var type in this.options) {
  			if (this.options.hasOwnProperty(type)) {
  				if (options[type]) {
  					options[type] = L.extend({}, this.options[type], options[type]);
  				}
  			}
  		}
  
  		L.Toolbar.prototype.initialize.call(this, options);
  	},
  
  	addToolbar: function (map) {
  		var container = L.DomUtil.create('div', 'leaflet-draw-section'),
  			buttonIndex = 0,
  			buttonClassPrefix = 'leaflet-draw-draw';
  
  		this._toolbarContainer = L.DomUtil.create('div', 'leaflet-draw-toolbar leaflet-bar');
  
  
  		if (this.options.polyline) {
  			this._initModeHandler(
  				new L.Draw.Polyline(map, this.options.polyline),
  				this._toolbarContainer,
  				buttonIndex++,
  				buttonClassPrefix
  			);
  		}
  
  		if (this.options.polygon) {
  			this._initModeHandler(
  				new L.Draw.Polygon(map, this.options.polygon),
  				this._toolbarContainer,
  				buttonIndex++,
  				buttonClassPrefix
  			);
  		}
  
  		if (this.options.rectangle) {
  			this._initModeHandler(
  				new L.Draw.Rectangle(map, this.options.rectangle),
  				this._toolbarContainer,
  				buttonIndex++,
  				buttonClassPrefix
  			);
  		}
  
  		if (this.options.circle) {
  			this._initModeHandler(
  				new L.Draw.Circle(map, this.options.circle),
  				this._toolbarContainer,
  				buttonIndex++,
  				buttonClassPrefix
  			);
  		}
  
  		if (this.options.marker) {
  			this._initModeHandler(
  				new L.Draw.Marker(map, this.options.marker),
  				this._toolbarContainer,
  				buttonIndex++,
  				buttonClassPrefix
  			);
  		}
  
  		// Save button index of the last button, -1 as we would have ++ after the last button
  		this._lastButtonIndex = --buttonIndex;
  
  		// Create the actions part of the toolbar
  		this._actionsContainer = this._createActions([
  			{
  				title: L.drawLocal.draw.toolbar.title,
  				text: L.drawLocal.draw.toolbar.text,
  				callback: this.disable,
  				context: this
  			}
  		]);
  
  		// Add draw and cancel containers to the control container
  		container.appendChild(this._toolbarContainer);
  		container.appendChild(this._actionsContainer);
  
  		return container;
  	},
  
  	setOptions: function (options) {
  		L.setOptions(this, options);
  
  		for (var type in this._modes) {
  			if (this._modes.hasOwnProperty(type) && options.hasOwnProperty(type)) {
  				this._modes[type].handler.setOptions(options[type]);
  			}
  		}
  	}
  });