# See: http://wiki.flightgear.org/MapStructure
# Class things:
var name = 'OpenAIP';
var parents = [OverlayLayer.Controller];
var __self__ = caller(0)[0];
OverlayLayer.Controller.add(name, __self__);
TileLayer.add(name, {
	parents: [TileLayer],
	type: name, # Layer type
	df_controller: __self__, # controller to use by default -- this one
});

var new = func(layer) {
	var m = {
		parents: [__self__],
		layer: layer,
		map: layer.map,
		listeners: [],
	};

	# http://1.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/6/30/43.png

	if (rand() < 0.5) {
		layer.makeURL = string.compileTemplate('http://1.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{tms_y}.png');
	} else {
		layer.makeURL = string.compileTemplate('http://2.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{tms_y}.png');
	}

	layer.makePath = string.compileTemplate(layer.maps_base ~ '/openaip_basemap/{z}/{x}/{tms_y}.png');

	layer.max_zoom = 14;
	layer.min_zoom = 4;

	m.addVisibilityListener();
	m.addRangeListener();
	m.addScreenRangeListener();
	return m;
};

var updateLayer = func() {
}

var del = func() {
	#print(name~".lcontroller.del()");
	foreach (var l; me.listeners)
		removelistener(l);
};