
function osm_init_map_type(label, server_url, copyright, error_msg)
{
	quality = "";
	layers = "";
	map_tags = "";
	url_params = "";
	if (!error_msg)
		error_msg = "error";
	if (!copyright)
		copyright = "";
	
	var arr = server_url.split(",");
	var urls = new Array;
	if (arr.length >= 2) {
		for (var i = 0; i < arr.length; i++)
			urls.push(arr[i]);
		server_url = arr[0];
	} else
		arr = new Array;
	// construct
	var cp_msg = "<a style='font-size: 8pt;font-weight: bolder; text-decoration: none;' href='http://www.naviteh.ru'><font color='red'>POWERED BY:</font> <font color='black'>OSM</font></a>";

	if (copyright != "")
		cp_msg += ", " + copyright;
	var cp1 = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 0, cp_msg);
	var cp_col = new GCopyrightCollection("");
	cp_col.addCopyright(cp1);
	var tilelayers = [new GTileLayer(cp_col, 1, 17)];
	tilelayers[0].getTileUrl = osm_tile_url;
	// own params
	tilelayers[0].server_url = server_url;
	tilelayers[0].quality = quality;
	tilelayers[0].layers = layers;
	tilelayers[0].map_tags = map_tags;
	tilelayers[0].url_params = url_params;
	tilelayers[0].urls = arr;

	var mt = new GMapType(tilelayers, new GMercatorProjection(20), label, {errorMessage:error_msg});
	return mt;
}


function osm_init_map_overlay(label, server_url)
{
	quality = "";
	layers = "";
	map_tags = "";
	url_params = "";
	
	var arr = server_url.split(",");
	var urls = new Array;
	if (arr.length >= 2) {
		for (var i = 0; i < arr.length; i++)
			urls.push(arr[i]);
		server_url = arr[0];
	} else
		arr = new Array;
	// construct
	var cp_col = new GCopyrightCollection("© ");
	cp_col.addCopyright(new GCopyright('LatLon.org', new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0,'©2010 LatLon.org'));

	var tilelayer = [new GTileLayer(cp_col, 1, 17)];
	tilelayer.getTileUrl = osm_tile_url;
	// own params
	tilelayer.isPng = function() { return true;};
	tilelayer.getOpacity = function() { return 1.0; }
	return tilelayer;
}

/**
	Get WebGIS map tile url.
	Internal function.
*/
function osm_tile_url(pt, zoom) {
	var x = pt.x;
	var y = pt.y;
	var url = "";
	if (this.urls.length >= 2) {
		// select server
		var index = x % this.urls.length;
		url = this.urls[Math.floor(index)];
	} else
		url = this.server_url;

	url += "/" + zoom + "/" + x + "/" + y + ".png";
	return url;
}

