componentconstructors['link'] = function(dynmap, configuration) {

  var dynmapLink = L.Control.extend({
		options: { position: 'bottomleft' },

	onAdd: function(map) {
		this._map = map;
		this._container = L.DomUtil.create('div', 'dynmap-link');

		this._linkButton = this._createButton(
				'Link', 'dynmap-link-button', this._follow, this);

		this._container.appendChild(this._linkButton);
		return this._container;
	},

	getContainer: function() {
		return this._container;
	},

	getPosition: function() {
		return this.options.position;
	},

	_createButton: function(title, className, fn, context) {
		var link = document.createElement('a');
		link.href = '#';
		link.title = title;
		link.className = className;
		link.onmouseover = function() {
			link.href = dynmap.getLink();
		};

		L.DomEvent.disableClickPropagation(link);
		L.DomEvent.addListener(link, 'click', L.DomEvent.preventDefault);
		L.DomEvent.addListener(link, 'click', fn, context);

		return link;
	},

	_follow: function() {
		var url = dynmap.getLink();
		window.location = url;
	}
  });

	var link = new dynmapLink();
	dynmap.map.addControl(link);
};