if (!TRANSLATE) var TRANSLATE = {};

var Mapper = new ZenMapManager;

var MapComponent = document.getElementById('map-component');
var baseW;
var baseH;
var Map;
var MapSpecs = [];
var Flight;
var CenterPoint;
var Circle;

/*** custom terrain layer ***/
LayTerrain = function (options) {
	var proto = G_PHYSICAL_MAP.getTileLayers()[0];
	proto.constructor.call(this, new GCopyrightCollection(), proto.minResolution(), proto.maxResolution(), options);
	this.constructor.prototype = proto;
};
LayTerrain.prototype = G_PHYSICAL_MAP.getTileLayers()[0];

function CreateMap () {
   //premisteni mapy na zacatek toku stranky
   var pos = ZenMap.findPos(document.getElementById('map-slot'));
   MapComponent.style.position = 'absolute';
   document.body.insertBefore(MapComponent, document.body.firstChild);
   MapComponent.style.left = pos['left']+'px';
   MapComponent.style.top = pos['top']+'px';
   
   //fce pro zmenu pos pri onresize
   window.onresize = function (e) {
      var pos = ZenMap.findPos(document.getElementById('map-slot'));
      MapComponent.style.left = pos['left']+'px';
      MapComponent.style.top = pos['top']+'px';
   };
  
   
   //layers
	var layers = new ZenLayerControl();
	var lay_elev = layers.createCustomLayer(function(tile,zoom){return "http://maps1.pgweb.cz/elev/"+(zoom)+"/"+tile.x+"/"+tile.y;});
	var lay_nasa = layers.createCustomLayer(function(tile,zoom){return "http://maps2.pgweb.cz/wms.php?layer=sat&zoom="+(17-zoom)+"&x="+tile.x+"&y="+tile.y;});
	var lay_airspace = layers.createCustomLayer(function(tile,zoom){return "http://maps.pgweb.cz/airspace/"+zoom+"/"+tile.x+"/"+tile.y;}, true);
   //var lay_daily = layers.createCustomLayer(function(tile,zoom){return "http://maps2.pgweb.cz/wms.php?layer=meteo&zoom="+(17-zoom)+"&x="+tile.x+"&y="+tile.y+"&time="+flight_time;});
	var lay_corridors = layers.createCustomLayer(function(tile,zoom){return "http://maps.pgweb.cz/corr/"+zoom+"/"+tile.x+"/"+tile.y;}, true);
	
	var lay_alpha = layers.createCustomLayer(function(tile,zoom){return "http://www.xcontest.org/img/transparent/?50"}, true);

	layers.addBaseLayer(TRANSLATE['altPGweb'],["alpha", "road", "airspace", "corridors"],lay_elev);
	//layers.addBaseLayer(TRANSLATE['satNASA'],["alpha", "road", "airspace", "corridors"],lay_nasa);
	layers.addBaseLayer(TRANSLATE['satGoogle'],["alpha", "road", "airspace", "corridors"],G_SATELLITE_MAP.getTileLayers()[0]);
	//layers.addBaseLayer(TRANSLATE['terrainGoogle'],["alpha", "airspace", "corridors"],G_PHYSICAL_MAP.getTileLayers()[0]);
	layers.addBaseLayer(TRANSLATE['terrainGoogle'],["alpha", "airspace", "corridors"], new LayTerrain({opacity : 1.0}));
   layers.addBaseLayer(TRANSLATE['map'],["alpha", "airspace", "corridors"],G_NORMAL_MAP.getTileLayers()[0]);
   
   layers.addTransLayer('A L P H A',"alpha",lay_alpha);
   
   layers.addTransLayer(TRANSLATE['airspace'],"airspace",lay_airspace);
   layers.addTransLayer(TRANSLATE['corridors'],"corridors",lay_corridors);
	layers.addTransLayer(TRANSLATE['roadMap'],"road",G_HYBRID_MAP.getTileLayers()[1]);

   //inicializace mapy
   Map = Mapper.createMap(
      document.getElementById("map"), 
      [],
      [
         new GSmallMapControl(), 
         layers, 
         new GScaleControl()
      ],
      [
         new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(1,1)), 
         new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,3)), 
         new GControlPosition(G_ANCHOR_BOTTOM_LEFT,new GSize(70,2))
	// new GSize(50,-12)
      ]
   );
   
   //zamerime na bod ktery uzivatel chce
   //Map.GMap.setCenter(new GLatLng(49.85, 15.5), 7);
   Map.GMap.setCenter(new GLatLng(POINT_lat, POINT_lon), POINT_level);
   
   layers.selectBaseLayerByName(TRANSLATE['altPGweb']);
   layers.toggleTransLayer('alpha');
   layers.toggleTransLayer('airspace');
   layers.toggleTransLayer('corridors');
   //layers.toggleTransLayer('road');
   
   //aktualizace lat/lon
   Map.addEvent('mousemove', function (e) {
      var Pos = e.target.Pos;
//alert(typeof(Pos.GLatLng.lat));
      var latlon = ZenPoint.toDM(Pos.GLatLng.lat(), false)+' / '+ZenPoint.toDM(Pos.GLatLng.lng(), true);
      //Flight.sniffTrack(Pos.GLatLng);
      document.getElementById("lat-lon").innerHTML = latlon;
   });
   document.getElementById('latlongrid').onclick = setLatLonGrid;
   document.getElementById('resizer').onclick = resizeMap;
};


setTimeout('CreateMap()', 500); 


//funkce pro resizing mapy
function resizeMap () {
   var mapc_s = MapComponent.style;
   var map_s = Map.MapElement.style;
   
   if (!baseW) baseW = map_s.width;
   if (!baseH) baseH = map_s.height;
   
   var maxW = (document.body.offsetWidth-4-(document.all && !window.Opera ? 20 : 0))+'px';
   var maxH = (document.body.offsetHeight-24)+'px';
   
   var newW = map_s.width==baseW ? maxW : baseW;
   var newH = map_s.height==baseH ? maxH : baseH;
   
   
   
   if (newW==maxW) {
      MapComponent.style.display = 'none';
      document.getElementById('page').style.display = 'none';
      document.getElementById('resizer').title = TRANSLATE['minimizeToDefault']; //'zmenšit na původní rozměry';
      if (parseFloat(maxW)>700) {
         //document.getElementById('map-status').style.width = 'auto';
         //document.getElementById('label-gps').style.display = 'block';
         //document.getElementById('status-gps').style.display = 'block';
      };
      mapc_s.top = '0px';
      mapc_s.left = '0px';
      MapComponent.style.display = 'block';
   } else {
      MapComponent.style.display = 'none';
      document.getElementById('page').style.display = '';
      var pos = ZenMap.findPos(document.getElementById('map-slot'));
      document.getElementById('resizer').title = TRANSLATE['extendOnScreen']; //'roztáhnout na celou obrazovku';
      //document.getElementById('map-status').style.width = '';
      //document.getElementById('label-gps').style.display = 'none';
      //document.getElementById('status-gps').style.display = 'none';
      mapc_s.top = pos['top']+'px';
      mapc_s.left = pos['left']+'px';
      MapComponent.style.display = 'block';
   };
   
   
   mapc_s.width = newW;
   map_s.width = newW;
   map_s.height = newH;
   
   //akomodace
   Map.GMap.checkResize();
   Map.GMap.setCenter(new GLatLng(49.85, 15.5));
   
   if (Flight) {
      //Flight.LineTrackpoints.redraw(true);
      Flight.LineTrackpoints.focus();
   };
   
   if (Flight && Flight.Graph) {
      Flight.Graph.createProfile(document.getElementById('flight-profile'), {
         'width' : Math.round(parseFloat(newW))
      });
   };
};


//show/hide lat/lon grid
function setLatLonGrid ()
{
   if (this.checked) {
      Map.attachCoordLines();
   } else {
      Map.detachCoordLines();
   };
};



function changeZoomIfRequired(bounds)
{
   //pripadna zmena zoomu
   var actualZoom = Map.GMap.getZoom();
   var minZoom = Map.GMap.getBoundsZoomLevel(bounds);
   if (minZoom < actualZoom) Map.GMap.setZoom(minZoom);
}
