var mapRegionMenuSelected=-1;
var mapCityMenuSelected = -1;
var hsMsg;
var nLeaderMapSelectedRegion=0;

switch (mapLanguage) {
  case 1:  
    hsMsg = {'foto':'Letecká', 'topo':'Topografická', 'relief':'Plastická'};
    break;
  case 2:
    hsMsg = {'foto':'Photographic', 'topo':'Topographical', 'relief':'Plastic'};
    break;  
  case 3:   
    hsMsg = {'foto':'Photographisch', 'topo':'Topographisch', 'relief':'Plastisch'};
    break;  
  case 4:   
    hsMsg = {'foto':'Photographique', 'topo':'Topographique', 'relief':'Plastique'};
    break;  
  case 5:   
    hsMsg = {'foto':'fotografisch', 'topo':'topografisch', 'relief':'gemodelleerd'};
    break;  
  case 6:   
    hsMsg = {'foto':'Fotograficzna', 'topo':'Topograficzna', 'relief':'Plastyczna'};
    break;
}

function checkSubServices(){
	var oParent = document.getElementById("s0");
	var oDiv = document.getElementById("mapControlLS");
	var aChecks = oDiv.getElementsByTagName("INPUT");
	var nCounter;	

	oParent.checked = !oParent.checked;
	switchInput(document.getElementById("is0"),oParent.checked);
	for (nCounter = 0;nCounter < aChecks.length; nCounter++)
	{
			if (aChecks[nCounter].checked != oParent.checked){
					aChecks[nCounter].checked = !aChecks[nCounter].checked;
					switchInput(document.getElementById("is"+aChecks[nCounter].name.substring(1,aChecks[nCounter].name.length)),aChecks[nCounter].checked);
			}
	}

	if (oParent.checked) {
		setObjects("services", "s1,s2,s3,s4,s5,s6,s7");
	}	
	else {
		setObjects("services", "");
	}		
}
function changeSelectionInDatabases(ID, cLayer) {
    var oInput = document.getElementById(ID);
    oInput.checked = !oInput.checked;
    switchInput(document.getElementById("i" + oInput.id), oInput.checked);
    displayLayer(cLayer); 
}

function layerServicesSelect(objInput) {
	var oInput = document.getElementById(objInput);

	oInput.checked = !oInput.checked;
	var prefix = oInput.name.substring(0,1); 
	var ID = oInput.name.substring(1,oInput.name.length);
	switchInput(document.getElementById("i"+prefix+ID),oInput.checked);

	var oDiv = document.getElementById("mapControlLS");
	var aChecks = oDiv.getElementsByTagName("INPUT");
	var nCounter;	
	var param="";

	for (nCounter = 0;nCounter < aChecks.length; nCounter++)
	{
			if (aChecks[nCounter].checked == true){
				if (param!="") {
					param = param + ",";
				}
				 
					param = param +aChecks[nCounter].name;
					//displayLayer(aChecks[nCounter].name);
			}
	}
	//alert(param);
	setObjects("services", param)
}

function checkSubMemories(lWithoutLink,cLayer) {
    if (lWithoutLink) {
        var oParent = document.getElementById("f0");
    }
    else {
        var oParent = document.getElementById("m0");
    }
    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;

    oParent.checked = !oParent.checked;
    if (lWithoutLink) { switchInput(document.getElementById("if0"), oParent.checked); }
    else { switchInput(document.getElementById("im0"), oParent.checked); }
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked != oParent.checked) {
            aChecks[nCounter].checked = !aChecks[nCounter].checked;
            if (lWithoutLink) { switchInput(document.getElementById("if" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked); }
            else {
                switchInput(document.getElementById("im" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked);
                displayLayer(aChecks[nCounter].name);
            }
        }
    }
    if (lWithoutLink) {
        displayLayer(cLayer);
    }
}

function checkSubMemoriesChurchFullScreen(lWithoutLink) {
    if (lWithoutLink) {
        var oParent = document.getElementById("f18");
    }
    else {
        var oParent = document.getElementById("m18");
    }
    var oDiv = document.getElementById("mapControlChurchLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;

    oParent.checked = !oParent.checked;
    if (lWithoutLink) { switchInput(document.getElementById("if18"), oParent.checked); }
    else { switchInput(document.getElementById("im18"), oParent.checked); }
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked != oParent.checked) {
            aChecks[nCounter].checked = !aChecks[nCounter].checked;
            if (lWithoutLink) { switchInput(document.getElementById("if" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked); }
            else { switchInput(document.getElementById("im" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked); }
            displayLayer(aChecks[nCounter].name);
        }
    }
}


function checkSubChurch(lWithoutLink) {
    if (lWithoutLink) { var oParent = document.getElementById("f18"); }
    else { var oParent = document.getElementById("m18"); }
	var oDiv = document.getElementById("mapControlLM");
	var aChecks = oDiv.getElementsByTagName("INPUT");
	var nCounter;	
	for (nCounter = 0;nCounter < aChecks.length; nCounter++)
	{
	    if (lWithoutLink) {
	        if (aChecks[nCounter].name == "f3" || aChecks[nCounter].name == "f11" || aChecks[nCounter].name == "f12" || aChecks[nCounter].name == "f13" || aChecks[nCounter].name == "f14" || aChecks[nCounter].name == "f25" || aChecks[nCounter].name == "f26" || aChecks[nCounter].name == "f27") {
	            if (aChecks[nCounter].checked != oParent.checked) {
	                aChecks[nCounter].checked = !aChecks[nCounter].checked;
	                switchInput(document.getElementById("if" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked);
	                displayLayer(aChecks[nCounter].name);
	            }
	        }
	    }
	    else {
	        if (aChecks[nCounter].name == "m3" || aChecks[nCounter].name == "m11" || aChecks[nCounter].name == "m12" || aChecks[nCounter].name == "m13" || aChecks[nCounter].name == "m14" || aChecks[nCounter].name == "m25" || aChecks[nCounter].name == "m26" || aChecks[nCounter].name == "m27") {
	            if (aChecks[nCounter].checked != oParent.checked) {
	                aChecks[nCounter].checked = !aChecks[nCounter].checked;
	                switchInput(document.getElementById("im" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked);
	                displayLayer(aChecks[nCounter].name);
	            }
	        }
	    }

	}
}    

/* jmeno inputu je vzdy {m=memory,s=service}+ID_kategorie
 nastavi zobrazen9 custom inputcheckbox a zavola zobrazeni vrstvy
vol8no pri kliku na custominput
*/
function layerSelect(objInput) {
  var oInput;
  if (objInput=="m29"||objInput=="lic") {
    if (objInput=="lic") { 
      oInput = document.getElementById("lic"); 
      oInput.checked = !oInput.checked;
      switchInput(document.getElementById("ilic"),oInput.checked);
      displayLayer("lic");
    }
    else {
      displayLayer("lic");
    }
  } 
  else {
	  oInput = document.getElementById(objInput);
	  var prefix = oInput.name.substring(0,1);
  	var ID = oInput.name.substring(1,oInput.name.length);
    oInput.checked = !oInput.checked;
    switchInput(document.getElementById("i"+prefix+ID),oInput.checked);
    displayLayer(oInput.name);
  	if (oInput.name=="m18" || (oInput.name=="f18")) { 	// pokud je zvoleno Cirkevni pamatky
  	    checkSubChurch(oInput.name.substr(0,1)=="f");
    }
  }
}


function projectLayerSelect(objInput) {
    var oInput;
	  oInput = document.getElementById(objInput);
	  var prefix = oInput.name.substring(0,1);
  	var ID = oInput.name.substring(1,oInput.name.length);
    oInput.checked = !oInput.checked;
    document.getElementById("ippripravenost").style.background="white";
    document.getElementById("ipoblast").style.background="white";
    document.getElementById("ipprogram").style.background="white";
    switchInput(document.getElementById("i"+prefix+ID),oInput.checked);
    if (oInput.id == "ppripravenost" ) {
      document.getElementById("poblast").checked=false;    
      document.getElementById("pprogram").checked=false;    
      document.getElementById("legendPripravenost").style.display="block";
      document.getElementById("legendOblast").style.display="none";
      document.getElementById("legendProgram").style.display="none";
    }
    if (oInput.id == "poblast" ) {
      document.getElementById("ppripravenost").checked=false;    
      document.getElementById("pprogram").checked=false;    
      document.getElementById("legendPripravenost").style.display="none";
      document.getElementById("legendOblast").style.display="block";
      document.getElementById("legendProgram").style.display="none";
    }
    if (oInput.id == "pprogram" ) {
      document.getElementById("ppripravenost").checked=false;    
      document.getElementById("poblast").checked=false;    
      document.getElementById("legendPripravenost").style.display="none";
      document.getElementById("legendOblast").style.display="none";
      document.getElementById("legendProgram").style.display="block";
    }
    displayLayer(oInput.name);
}

function checkSubOverlayLayer(){
	var oParent = document.getElementById("l0");
	var oDiv = document.getElementById("mapControlR");
	var aChecks = oDiv.getElementsByTagName("INPUT");
	var nCounter;	

	oParent.checked = !oParent.checked;
	switchInput(document.getElementById("il0"),oParent.checked);
	for (nCounter = 0;nCounter < aChecks.length; nCounter++)
	{
		
			if (aChecks[nCounter].checked != oParent.checked){
					aChecks[nCounter].checked = !aChecks[nCounter].checked;
					switchInput(document.getElementById("il"+aChecks[nCounter].name.substring(1,aChecks[nCounter].name.length)),aChecks[nCounter].checked);
					if (aChecks[nCounter].id=="lcyklo" || aChecks[nCounter].id=="lnaucne") 
						displayOverlayLayer(aChecks[nCounter].name.substring(1,aChecks[nCounter].name.length));
					if (aChecks[nCounter].id=="ljezy" || aChecks[nCounter].id=="lnaucne")  
						displayLayer(aChecks[nCounter].name.substring(0,aChecks[nCounter].name.length));
			}
	}
}    

function checkSubOverlayLayerLeader(){
	var oParent = document.getElementById("l0");
	var oDiv = document.getElementById("mapControlR");
	var aChecks = oDiv.getElementsByTagName("INPUT");
	var nCounter;	

	oParent.checked = !oParent.checked;
	switchInput(document.getElementById("il0"),oParent.checked);
	for (nCounter = 0;nCounter < aChecks.length; nCounter++)
	{
		
			if (aChecks[nCounter].checked != oParent.checked){
					aChecks[nCounter].checked = !aChecks[nCounter].checked;
					switchInput(document.getElementById("il"+aChecks[nCounter].name.substring(1,aChecks[nCounter].name.length)),aChecks[nCounter].checked);
					displayOverlayLayer(aChecks[nCounter].name.substring(1,aChecks[nCounter].name.length));
			}
	}
}    

function overlayLayerSelect(objInput) {
	var oInput = document.getElementById(objInput);
	oInput.checked = !oInput.checked;
	switchInput(document.getElementById("i"+oInput.id),oInput.checked);
  displayOverlayLayer(oInput.id.substring(1,oInput.id.length));
}


function switchInput(oMyInputBackgroundObject, lChecked){
	if (!lChecked) 
		oMyInputBackgroundObject.style.background="white";
	else
		oMyInputBackgroundObject.style.background=oMyInputBackgroundObject.style.color;	
}


function plasticMap() {
displayBaseLayer('topo');
displayOverlayLayer('stin');
}

	function switchMapMemory(oAnchor){
	var oDiv;

	if (mapMemoryZoom==false) {
		document.getElementById('memoryImage').style.display='none';
		document.getElementById('memoriesMenu').style.display='none';
		document.getElementById('mapControlLM').style.display='block';
		document.getElementById('mapPreview').style.display='block';
		document.getElementById('mapMeritko').style.display='block';
		document.getElementById('mapDetail').style.display='block';
		document.getElementById('map').style.display='block';
		document.getElementById('smallMapPicture').style.display='none';
		document.getElementById('memorySearch').style.display='none';
	}
	else {
		document.getElementById('map').style.display='none';
		document.getElementById('memoryImage').style.display='block';
		document.getElementById('memoriesMenu').style.display='block';
		document.getElementById('mapControlLM').style.display='none';
		document.getElementById('mapPreview').style.display='none';
		document.getElementById('mapMeritko').style.display='none';
		document.getElementById('mapDetail').style.display='none';
		document.getElementById('smallMapPicture').style.display='block';
		document.getElementById('memorySearch').style.display='block';
	}

	if (!mapInitialized) {
		init(6,[cJTSKX,cJTSKY]);
		//zoomTo(6);
		layerSelect('m'+cMemoryCategoryID);
		mapInitialized = true;
	}
	
	//moveTo(cJTSKX,cJTSKY);
	mapMemoryZoom = !mapMemoryZoom;
}

	function switchMapIC(oAnchor){
	var oDiv;

	if (mapICZoom==false) {
		document.getElementById('ICImage').style.display='none';
		document.getElementById('mapPreview').style.display='block';
		document.getElementById('mapMeritko').style.display='block';
		document.getElementById('mapDetail').style.display='block';
		document.getElementById('map').style.display='block';
		document.getElementById('smallMapPicture').style.display='none';
	}
	else {
		document.getElementById('map').style.display='none';
		document.getElementById('ICImage').style.display='block';
		document.getElementById('mapPreview').style.display='none';
		document.getElementById('mapMeritko').style.display='none';
		document.getElementById('mapDetail').style.display='none';
		document.getElementById('smallMapPicture').style.display='block';
	}

	if (!mapInitialized) {
		init(3,[cJTSKX,cJTSKY]);
		displayLayer('licBigIcon');
		mapInitialized = true;
	}
	mapICZoom = !mapICZoom;
}

	function switchMapService(oAnchor,cIconServiceList){
	var oDiv;
	var cServiceList, aServiceList, nCounter;

	if (mapServiceZoom==false) {
		document.getElementById('serviceImage').style.display='none';
		document.getElementById('servicesMenu').style.display='none';
		document.getElementById('mapControlLS').style.display='block';
		document.getElementById('mapPreview').style.display='block';
		document.getElementById('mapMeritko').style.display='block';
		document.getElementById('mapDetail').style.display='block';
		document.getElementById('map').style.display='block';
		document.getElementById('smallMapPicture').style.display='none';
		document.getElementById('searchServices').style.display='none';
	}
	else {
		document.getElementById('map').style.display='none';
		document.getElementById('serviceImage').style.display='block';
		document.getElementById('servicesMenu').style.display='block';
		document.getElementById('mapControlLS').style.display='none';
		document.getElementById('mapPreview').style.display='none';
		document.getElementById('mapMeritko').style.display='none';
		document.getElementById('mapDetail').style.display='none';
		document.getElementById('smallMapPicture').style.display='block';
		document.getElementById('searchServices').style.display='block';
	}

	if (!mapInitialized) {
		init(6,[cJTSKX,cJTSKY]);
		mapInitialized = true;
		if (cIconServiceList.length>0) {
		  cIconServiceList = cIconServiceList.substr(1,cIconServiceList.length-2)
      cServiceList = cIconServiceList.replace(/,/g,",s");
      //setObjects("services", "s"+cServiceList);

      aServiceList = cIconServiceList.split(",");
		  for (nCounter=0;nCounter<aServiceList.length;nCounter++)
      //{
		  layerServicesSelect("s"+aServiceList[nCounter]);
		  //}
		  //setObjects("services", cServiceList);
		}
		//
  } 
 	mapServiceZoom = !mapServiceZoom;
}

	function switchMapPacifik(oAnchor){
	var oDiv;

	if (mapPacifikZoom==false) {
		document.getElementById('memoriesMenu').style.display='none';
		document.getElementById('mapControlLM').style.display='block';
		document.getElementById('mapPreview').style.display='block';
		document.getElementById('mapMeritko').style.display='block';
		document.getElementById('mapDetail').style.display='block';
		document.getElementById('pacifikImage').style.display='none';
		document.getElementById('map').style.display='block';
		document.getElementById('smallMapPicture').style.display='none';
		document.getElementById('pacificDescription').style.display='none';
	}
	else {
		document.getElementById('map').style.display='none';
		document.getElementById('pacifikImage').style.display='block';
		document.getElementById('memoriesMenu').style.display='block';
		document.getElementById('mapControlLM').style.display='none';
		document.getElementById('mapPreview').style.display='none';
		document.getElementById('mapMeritko').style.display='none';
		document.getElementById('mapDetail').style.display='none';
		document.getElementById('smallMapPicture').style.display='block';
		document.getElementById('pacificDescription').style.display='block';
	}

	if (!mapInitialized) {
		init(4,['-725744.38828','-1068015.72104']);
		layerSelect('m16');
		mapInitialized = true;
	}
	
	mapPacifikZoom = !mapPacifikZoom;
}

	function switchMapWaterTourist(oAnchor){
	var oDiv;

	if (mapWaterTouristZoom==false) {
		document.getElementById('waterImage').style.display='none';
		document.getElementById('aktivniMenu').style.display='none';
    document.getElementById('waterLevelColumn').style.display='none';
		document.getElementById('mapControlLM').style.display='block';
		document.getElementById('mapControlLS').style.display='block';
		document.getElementById('smallMapPicture').style.display='none';
		document.getElementById('pacificDescription').style.display='none';
		document.getElementById('map').style.display='block';
		document.getElementById('mapPreview').style.display='block';
		document.getElementById('mapMeritko').style.display='block';
		document.getElementById('mapDetail').style.display='block';
	}
	else {
		document.getElementById('map').style.display='none';
		document.getElementById('mapControlLM').style.display='none';
		document.getElementById('mapControlLS').style.display='none';
		document.getElementById('aktivniMenu').style.display='block';
		document.getElementById('mapPreview').style.display='none';
		document.getElementById('mapMeritko').style.display='none';
		document.getElementById('mapDetail').style.display='none';
		document.getElementById('waterImage').style.display='block';
		document.getElementById('smallMapPicture').style.display='block';
		document.getElementById('pacificDescription').style.display='block';
		document.getElementById('waterLevelColumn').style.display='block';
	}

	if (!mapInitialized) {
		init(3,['-720634.38828','-1083015.72104']);
		displayLayer('ljezy');
		layerServicesSelect('s8');
		mapInitialized = true;
	}
	mapWaterTouristZoom = !mapWaterTouristZoom;
}

 /* 
  * funkce ktere je mozne zavolat:
  *
  * showMarker(lon,lat,urlIcon);
  * moveTo(lon,lat);
  * zoomTo(level);  0 (nejmensi detail) - 15 (nejvetsi detail)
  * getPermalink();  vraci permalink 
  * 
  */

  function displayNewMarker() {
      var lon = this.document.getElementById("inputX").value;
      var lat = this.document.getElementById("inputY").value;
      if (lon && lat) {
          moveTo(lon, lat);
          showMarker(lon,lat,"http://www.bnhelp.cz/mapserv/pokusy/openlayers/posazavi/img/red.png");
      }
  }

  /*
   * funkce, ktere jsou zavolany ve specifickych situacich
   */
  function onNewMarker(x,y) {
       this.document.getElementById("inputX").value = x;
       this.document.getElementById("inputY").value = y;   
  };


function displayPathProfile (url) {
  var lCyklotrasa = false;
  var lTematickyVylet = false;

   var r, re;                   //Declare variables.
   var s = window.location.toString();
   re = /cyklotrasa.asp/i;            //Create regular expression pattern.
   r = s.search(re);            //Search the string.
   lCyklotrasa = r>0;
   re = /tematickyvylet.asp/i;            //Create regular expression pattern.
   r = s.search(re);            //Search the string.
   lTematickyVylet = r>0;

   var ajax = new HTTPRequest; 
	 if (!lCyklotrasa){
	  if (!lTematickyVylet) {
      ajax.get(getLanguageFolder() + 'mapiterinary.asp?XmlUrl='+url, null, insertIntoDiv, true);
      displayPathPoints(url);
    }
    else{
      ajax.get(getLanguageFolder() + 'mapiterinaryTV.asp?XmlUrl='+url, null, insertIntoDiv, true);
      displayPathPoints(url);    
    }  
   }
   else{
    ajax.get(getLanguageFolder() + 'mapiterinary.asp?justcity=1&XmlUrl='+url, null, insertIntoDiv, true);   
   } 
}

function getLanguageFolder() {
  var folders = new Array ("","cz","en","de","fr","nl","pl");
  return "/" + folders[mapLanguage] + "/";
}

function displayPathPoints (url) {
  var ajax = new HTTPRequest;
  ajax.get(getLanguageFolder() + 'mapiterinary.asp?JustPointsID=1&XmlUrl='+url, null, insertPointIntoMap, true);
}

function insertIntoDiv(r) {
  if(r.readyState==4){
    	this.document.getElementById("iterinar").innerHTML = r.responseText;
  }
}

function insertPointIntoMap(r) {
  if(r.readyState==4){
    	shortestPath.addPOIs('/mapy/mappointstrip.asp?zoom=4&points='+r.responseText);
  }
}
function startSearchWay() {
  if (shortestPath.startPoint && shortestPath.endPoint)
  {
	   //this.document.getElementById("findWay").innerHTML = "Hledám trasu ...";
     shortestPath.calculate();
  }
  else
    alert("Musíte vybrat start a cíl výletu");
}

function setStartPoint(oSelect){
  var pointX,pointY, pointArray;
  if (oSelect != null && (oSelect.value != "" && oSelect.value != "0,0")) {
      if (oSelect != null) {
          pointArray = oSelect.value.split(",");
          pointX = pointArray[0];
          pointY = pointArray[1];
          shortestPath.addStartPoint(new OpenLayers.LonLat(pointX, pointY));
      }
      if (document.getElementById('firm_from')) {
          if (oSelect != document.getElementById('firm_from'))
              document.getElementById('firm_from').selectedIndex = 0;
      }
      if (document.getElementById('city_from')) {
          if (oSelect != document.getElementById('city_from'))
              document.getElementById('city_from').selectedIndex = 0;
      }
      if (document.getElementById('railway_from')) {
          if (oSelect != document.getElementById('railway_from'))
              document.getElementById('railway_from').selectedIndex = 0;
      }
  }
  else
      shortestPath.addStartPoint(null);

}


function setStartPointRiver(oSelect) {
    if (document.getElementById("river_to").selectedIndex > 0) {
        if (oSelect.selectedIndex > document.getElementById("river_to").selectedIndex) {
            var tempIndex = oSelect.selectedIndex;
            oSelect.selectedIndex = document.getElementById("river_to").selectedIndex;
            document.getElementById("river_to").selectedIndex = tempIndex;
            setEndPoint(null);
            setStartPoint(null);
            setEndPoint(document.getElementById("river_to"));
        }
    }
    if (document.getElementById("river_from").selectedIndex != document.getElementById("river_to").selectedIndex) {
        setStartPoint(document.getElementById("river_from"));
    }
}

function setEndPointRiver(oSelect) {
    if (document.getElementById("river_from").selectedIndex > 0) {
        if (oSelect.selectedIndex < document.getElementById("river_from").selectedIndex) {
            var tempIndex = oSelect.selectedIndex;
            oSelect.selectedIndex = document.getElementById("river_from").selectedIndex;
            document.getElementById("river_from").selectedIndex = tempIndex;
            setStartPoint(null);
            setEndPoint(null);
            setStartPoint(document.getElementById("river_from"));
        }
    }
    if (document.getElementById("river_from").selectedIndex != document.getElementById("river_to").selectedIndex) {
        setEndPoint(document.getElementById("river_to"));
    }
}

function setEndPoint(oSelect){
  var pointX,pointY, pointArray;
  if (oSelect != null && (oSelect.value != "" && oSelect.value != "0,0")) {
      if (oSelect != null) {
          pointArray = oSelect.value.split(",");
          pointX = pointArray[0];
          pointY = pointArray[1];
          shortestPath.addEndPoint(new OpenLayers.LonLat(pointX, pointY));
          if (shortestPath.startPoint != null) {
              shortestPath.toggleLoadingInfo(true);
          }
      }
      if (document.getElementById('city_to')) {
          if (oSelect != document.getElementById('city_to'))
              document.getElementById('city_to').selectedIndex = 0;
      }
      if (document.getElementById('firm_to')) {
          if (oSelect != document.getElementById('firm_to'))
              document.getElementById('firm_to').selectedIndex = 0;
      }
      if (document.getElementById('memory_to')) {
          if (oSelect != document.getElementById('memory_to'))
              document.getElementById('memory_to').selectedIndex = 0;
      }
      if (document.getElementById('railway_to')) {
          if (oSelect != document.getElementById('railway_to'))
              document.getElementById('railway_to').selectedIndex = 0;
      }
      if (document.getElementById('mapDetail')) {
          document.getElementById('mapDetail').style.display = 'block';
      }
  }
  else {
      shortestPath.addEndPoint(null);
      if (document.getElementById('mapDetail')) {
          document.getElementById('mapDetail').style.display = 'none';
      }
  }
}

function setMiddlePoint(oSelect){
  var pointX,pointY, pointArray;
  if (oSelect.value != "" && oSelect.value != "0,0") {
    pointArray = oSelect.value.split(",");
    pointX = pointArray[0];
    pointY = pointArray[1];
    shortestPath.addMiddlePoint(new OpenLayers.LonLat(pointX, pointY)); 
  }
  if (oSelect.value == "" ) {
    shortestPath.addMiddlePoint(null);
  }
}

function startPointClickedInMap(){
  //alert("Kliknut start");
}

function middlePointClickedInMap(){
  //alert("Kliknut middle");
}

function endPointClickedInMap(){
    document.getElementById('mapDetail').style.display='block';
}

function displayMemoryDetailInMapDetail (cID) {
  var ajax = new HTTPRequest; 
  ajax.get('/mapy/mapdetail.asp?lang=' + mapLanguage + '&id='+cID, null, insertIntoMapDetail, true);
}

function insertIntoMapDetail(r) {
  if(r.readyState==4){
    	document.getElementById("mapDetail").style.display = "block";
      document.getElementById("mapDetail").innerHTML = r.responseText;
  }
}

function naturalTrayPoints(nBodyID) {
  if (nBodyID != "")
  displayLayer('naucnePoints'+nBodyID);
}

function mapRegionMenuSelect(nID, cColor, lBordersOnly, cCustomColor) {
    mapRegionMenuSelected = nID;
    if (mapCityMenuSelected > 0) {
        wmsObceSLD();
    }
    mapCityMenuSelected = 0;
  // vsechny volby regionu odskrtnu
  var oDiv = document.getElementById('mapLegendRegion');
  var aRegions = oDiv.getElementsByTagName('span');
  for (var counter=0;counter<aRegions.length;counter++){ 
    if (aRegions[counter].id!="") {
      switchInput(document.getElementById(aRegions[counter].id), false);
    }
  }  

  // zobrazim seznam obci regionu pokud byl vybran
  if (nID==0) {
    document.getElementById('mapLegendRegionCities').style.display = "none";
  }
  else{
    document.getElementById('mapLegendRegionCities').style.display = "block";  
    mapCityMenuFill(nID, cColor);
  }

  // zvoleny region zaskrtnu
  switchInput(document.getElementById('ilMapRegion'+nID), true);
  var cSLDurl;

  var cUrlBordersOnly = "";
  if (lBordersOnly) {
      cUrlBordersOnly = "&BordersOnly=1";
  }
  var cUrlCustomColor = "";
  if ((typeof cCustomColor != 'undefined')) {
      cUrlCustomColor = "&CustomColor=#" + cCustomColor;
  }

  if (nID==0) {
    // region posazavi musi volat -1
      cSLDurl = "http://www.posazavi.com/mapy/cities.asp?regionID=-1" + cUrlBordersOnly + cUrlCustomColor;
  }
  else{
      cSLDurl = "http://www.posazavi.com/mapy/cities.asp?regionID=" + nID + cUrlBordersOnly + cUrlCustomColor;
  }


    wmsRegionySLD();
    wmsObceSLD();
    nLeaderMapSelectedRegion = nID;
  
  wmsRegionySLD(cSLDurl);
  if (lBordersOnly) {
      wmsRegionyLayer.setOpacity(1);
  }
}

function mapCityMenuSelect(nID, lWithoutRegion, lBordersOnly, cCustomColor,lExceptionForPacifikMap) {


    var tempID, tempJtskX="", tempJtskY="", nfirst, nsecond;
    if (typeof nID == "string") {
        nfirst = nID.indexOf("_");
        if (nfirst > 0) {

            tempID = nID.substr(0, nfirst);
            nsecond = nID.indexOf("_", nfirst + 1);
            tempJtskX = nID.substr(nfirst + 1, nsecond - nfirst - 1);
            tempJtskY = nID.substr(nsecond + 1);
            nID = parseInt(tempID);
        }
    }

    // vsechny volby regionu odskrtnu
    var oDiv = document.getElementById('mapLegendRegion');
    var aRegions = oDiv.getElementsByTagName('span');
    for (var counter = 0; counter < aRegions.length; counter++) {
        if (aRegions[counter].id != "") {
            switchInput(document.getElementById(aRegions[counter].id), false);
        }
    }

    // vsechny volby city odskrtnu
    if (lExceptionForPacifikMap) {
        var oDiv = document.getElementById('mapLegendPacifikCities');
    }
    else {
        var oDiv = document.getElementById('mapLegendRegionCities');
    }
  var aRegions = oDiv.getElementsByTagName('span');
  mapRegionMenuSelected = -1;
  mapCityMenuSelected = nID;


  if (!lExceptionForPacifikMap) {
      wmsRegionySLD();
  }
  if (lWithoutRegion) {
      wmsObceSLD();
  }

  for (var counter=0;counter<aRegions.length;counter++){ 
    if (aRegions[counter].id!="") {
      if (document.getElementById(aRegions[counter].id))
      switchInput(document.getElementById(aRegions[counter].id), false);
    }
  }  
  // zvoleny city zaskrtnu
  if (document.getElementById('ilMapCity'+nID))
    switchInput(document.getElementById('ilMapCity'+nID), true);

  var cSLDurl;
  var cUrlBordersOnly = "";
  if (lBordersOnly) {
      cUrlBordersOnly = "&BordersOnly=1";
  }
  var cUrlCustomColor = "";
  if ((typeof cCustomColor != 'undefined'))
  {
    cUrlCustomColor = "#" + cCustomColor;
  }
  cSLDurl = "http://www.posazavi.com/mapy/cities2.asp?cityID=" + nID + cUrlBordersOnly+cUrlCustomColor;

  if (!lExceptionForPacifikMap) {
      if (!lWithoutRegion) {
          cSLDurl = cSLDurl + "&regionID=" + nLeaderMapSelectedRegion;
      }
  }
  wmsObceSLD(cSLDurl);
  if (lBordersOnly) {
      wmsObceLayer.setOpacity(1);
  }
  if (tempJtskX != "" && tempJtskY != "") {
      moveTo(tempJtskX, tempJtskY);
      zoomTo(5);
  }

}


function mapCityMenuFill (nID, cColor) {
  var ajax = new HTTPRequest;
  ajax.get('/language/column/mapLeaderCities.asp?region_id=' + nID + '&color=' + cColor, null, mapCityMenuFillDiv, true);
}

function  mapCityMenuFillDiv(r) {
  if(r.readyState==4){
    	this.document.getElementById("mapLegendRegionCities").innerHTML = r.responseText;
  }
}

// lFirst nevim kdo pouziva, lSecond(true) znamena jen body bez brani seznamu
function getMemoryDatabase(lFirst, lSecond) {
    
    var filter = '';
    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;
    var cMemoryDatabaseCategoryFilter = "";
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked) {
            if (filter!='')
            {
                filter += ",";
            }
            filter += aChecks[nCounter].id.replace('f', '').replace('m', '');
            
            if (cMemoryDatabaseCategoryFilter != '') {
                cMemoryDatabaseCategoryFilter += ", ";
            }
            cMemoryDatabaseCategoryFilter += document.getElementById('mapMemoryCategory'+aChecks[nCounter].id.substr(1)).title;

             
        }
    }
    if (!lSecond) {
        setMemoryDatabaseCategoryFilter(cMemoryDatabaseCategoryFilter);
    }

    var urlLocationFilter = "";
    if (mapRegionMenuSelected > -1) {
        urlLocationFilter = '&region=' + mapRegionMenuSelected;
    }
    else {
        if (mapCityMenuSelected > 0) {
            urlLocationFilter = '&cityID=' + mapCityMenuSelected;
        }
    }
    var linkableFilter="";
    if (linkableMemoryDatabase) {
        linkableFilter = "&link=y"
    }

    if (!lSecond) {
        var ajax = new HTTPRequest;
        ajax.get('/mapy/memoryDatabase.asp?filter=' + filter + urlLocationFilter + linkableFilter, null, MemoryDatabaseResult, true);
    }
    mapPointsFilter = urlLocationFilter + "&filter=" + filter;
    for (var i in pointLayers) { if (pointLayers[i].visibility) { setObjects(i); } }

}

function MemoryDatabaseResult(r) {
    if (r.readyState == 4) {
        this.document.getElementById("MemoryDatabaseResult").innerHTML = r.responseText;
    }
}

function setMemoryDatabaseTitle(string) {
    document.getElementById('memoryDatabaseH1').innerHTML = "Databáze památek - " + string;
}

function setMemoryDatabaseCategoryFilter(string) {
    if (string == "") {
        string = "Vpravo musíte vybrat kategorii";
    }
    document.getElementById('memoryDatabaseCategoryFilter').innerHTML = "<b>Vybrané kategorie:</b> " + string;
}

// lFirst nevim kdo pouziva, lSecond(true) znamena jen body bez brani seznamu
function getPacifikDatabase(lFirst, lSecond) {

    var filter = '';
    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;
    var cPacifikDatabaseCategoryFilter = "";
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked) {
            if (filter != '') {
                filter += ",";
            }
            filter += aChecks[nCounter].id.replace('f', '');

            if (cPacifikDatabaseCategoryFilter != '') {
                cPacifikDatabaseCategoryFilter += ", ";
            }
            cPacifikDatabaseCategoryFilter += document.getElementById('mapMemoryCategory' + aChecks[nCounter].id.substr(1)).title;


        }
    }
    if (!lSecond) {
        setPacifikDatabaseCategoryFilter(cPacifikDatabaseCategoryFilter);
    }
    var urlLocationFilter = "";
    if (mapRegionMenuSelected > -1) {
        urlLocationFilter = '&region=' + mapRegionMenuSelected;
    }
    else {
        if (mapCityMenuSelected > 0) {
            urlLocationFilter = '&cityID=' + mapCityMenuSelected;
        }
    }
    var linkableFilter = "";
    if (linkablePacifikDatabase) {
        linkableFilter = "&link=y"
    }


    if (!lSecond) {
        var ajax = new HTTPRequest;
        ajax.get('/mapy/pacifikDatabase.asp?filter=' + filter + urlLocationFilter + linkableFilter, null, PacifikDatabaseResult, true);
    }
    mapPointsFilter = urlLocationFilter + "&filter=" + filter;
    for (var i in pointLayers) { if (pointLayers[i].visibility) { setObjects(i); } }

}

function PacifikDatabaseResult(r) {
    if (r.readyState == 4) {
        this.document.getElementById("pacifikDatabaseResult").innerHTML = r.responseText;
    }
}

function setPacifikDatabaseTitle(string) {
    document.getElementById('pacifikDatabaseH1').innerHTML = "Databáze Posázavského pacifiku - " + string;
}

function setPacifikDatabaseCategoryFilter(string) {
    if (string == "") {
        string = "Vpravo musíte vybrat kategorii";
    }
    document.getElementById('pacifikDatabaseCategoryFilter').innerHTML = "<b>Vybrané kategorie:</b> " + string;
}

function checkMapSubCategoriesInMemories(parentID, lWithoutLink,cLayerName) {

    if (lWithoutLink) { var oParent = document.getElementById("f" + parentID); }
    else { var oParent = document.getElementById("m" + parentID); }

    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    if (cLayerName != null) {
        oParent.checked = !oParent.checked;
        switchInput(document.getElementById("i" + oParent.id), oParent.checked);
    }

    for (var nCounterSubMemories = 0; nCounterSubMemories < aSubMemories.length; nCounterSubMemories++) {
        if (aSubMemories[nCounterSubMemories][1] == parentID) {
            //alert(aSubMemories[nCounterSubMemories][0]);
            var nCounter;
            for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
                if (lWithoutLink) {
                    if (aChecks[nCounter].name == "f" + aSubMemories[nCounterSubMemories][0]) {
                        if (aChecks[nCounter].checked != oParent.checked) {
                            aChecks[nCounter].checked = !aChecks[nCounter].checked;
                            switchInput(document.getElementById("if" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked);
                            if (cLayerName == null) { displayLayer(aChecks[nCounter].name); }
                        }
                    }
                }
                else {
                    if (aChecks[nCounter].name == "m" + aSubMemories[nCounterSubMemories][0]) {
                        if (aChecks[nCounter].checked != oParent.checked) {
                            aChecks[nCounter].checked = !aChecks[nCounter].checked;
                            switchInput(document.getElementById("im" + aChecks[nCounter].name.substring(1, aChecks[nCounter].name.length)), aChecks[nCounter].checked);
                            if (cLayerName == null) { displayLayer(aChecks[nCounter].name); }
                        }
                    }
                }
            }
        }
    }
    if (cLayerName != null) {
        displayLayer(cLayerName); 
    }

}

function mapPacifikAllCitiesSelect() {
    if (document.getElementById('ilMapRegion0'))
        switchInput(document.getElementById('ilMapRegion0'), true);

    // vsechny volby city odskrtnu
    var oDiv = document.getElementById('mapLegendPacifikCities');
    var aRegions = oDiv.getElementsByTagName('span');
    for (var counter = 0; counter < aRegions.length; counter++) {
        if (aRegions[counter].id != "") {
            if (document.getElementById(aRegions[counter].id))
                switchInput(document.getElementById(aRegions[counter].id), false);
        }
    }

    wmsObceSLD();
    mapRegionMenuSelected = 0;
    mapCityMenuSelected = -1;

}

// lFirst nevim kdo pouziva, lSecond(true) znamena jen body bez brani seznamu
function getNatureDatabase(lFirst, lSecond) {

    var filter = '';
    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;
    var cNatureDatabaseCategoryFilter = "";
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked) {
            if (filter != '') {
                filter += ",";
            }
            filter += aChecks[nCounter].id.replace('f', '');

            if (cNatureDatabaseCategoryFilter != '') {
                cNatureDatabaseCategoryFilter += ", ";
            }
            cNatureDatabaseCategoryFilter += document.getElementById('mapMemoryCategory' + aChecks[nCounter].id.substr(1)).title;


        }
    }
    if (!lSecond) {
        setNatureDatabaseCategoryFilter(cNatureDatabaseCategoryFilter);
    }
    var urlLocationFilter = "";
    if (mapRegionMenuSelected > -1) {
        urlLocationFilter = '&region=' + mapRegionMenuSelected;
    }
    else {
        if (mapCityMenuSelected > 0) {
            urlLocationFilter = '&cityID=' + mapCityMenuSelected;
        }
    }
    var linkableFilter = "";
    if (linkableNatureDatabase) {
        linkableFilter = "&link=y"
    }


    if (!lSecond) {
        var ajax = new HTTPRequest;
        ajax.get('/mapy/memoryDatabase.asp?filter=' + filter + urlLocationFilter + linkableFilter, null, NatureDatabaseResult, true);
    }

    mapPointsFilter = urlLocationFilter + "&filter=" + filter;
    for (var i in pointLayers) { if (pointLayers[i].visibility) { setObjects(i); } }

}

function NatureDatabaseResult(r) {
    if (r.readyState == 4) {
        this.document.getElementById("natureDatabaseResult").innerHTML = r.responseText;
    }
}

function setNatureDatabaseTitle(string) {
    document.getElementById('natureDatabaseH1').innerHTML = "Databáze Přírody - " + string;
}

function setNatureDatabaseCategoryFilter(string) {
    if (string == "") {
        string = "Vpravo musíte vybrat kategorii";
    }
    document.getElementById('natureDatabaseCategoryFilter').innerHTML = "<b>Vybrané kategorie:</b> " + string;
}

// lFirst nevim kdo pouziva, lSecond(true) znamena jen body bez brani seznamu
function getWarDatabase(lFirst, lSecond) {

    var filter = '';
    var oDiv = document.getElementById("mapControlLM");
    var aChecks = oDiv.getElementsByTagName("INPUT");
    var nCounter;
    var cWarDatabaseCategoryFilter = "";
    for (nCounter = 0; nCounter < aChecks.length; nCounter++) {
        if (aChecks[nCounter].checked) {
            if (filter != '') {
                filter += ",";
            }
            filter += aChecks[nCounter].id.replace('f', '');

            if (cWarDatabaseCategoryFilter != '') {
                cWarDatabaseCategoryFilter += ", ";
            }
            cWarDatabaseCategoryFilter += document.getElementById('mapMemoryCategory' + aChecks[nCounter].id.substr(1)).title;


        }
    }
    if (!lSecond) {
        setWarDatabaseCategoryFilter(cWarDatabaseCategoryFilter);
    }
    var urlLocationFilter = "";
    if (mapRegionMenuSelected > -1) {
        urlLocationFilter = '&region=' + mapRegionMenuSelected;
    }
    else {
        if (mapCityMenuSelected > 0) {
            urlLocationFilter = '&cityID=' + mapCityMenuSelected;
        }
    }
    var linkableFilter = "";
    if (linkableWarDatabase) {
        linkableFilter = "&link=y"
    }


    if (!lSecond) {
        var ajax = new HTTPRequest;
        ajax.get('/mapy/memoryDatabase.asp?filter=' + filter + urlLocationFilter + linkableFilter, null, WarDatabaseResult, true);
    }

    mapPointsFilter = urlLocationFilter + "&filter=" + filter;
    for (var i in pointLayers) { if (pointLayers[i].visibility) { setObjects(i); } }

}

function WarDatabaseResult(r) {
    if (r.readyState == 4) {
        this.document.getElementById("warDatabaseResult").innerHTML = r.responseText;
    }
}

function setWarDatabaseTitle(string) {
    document.getElementById('warDatabaseH1').innerHTML = "Databáze Bitvy a války - " + string;
}

function setWarDatabaseCategoryFilter(string) {
    if (string == "") {
        string = "Vpravo musíte vybrat kategorii";
    }
    document.getElementById('warDatabaseCategoryFilter').innerHTML = "<b>Vybrané kategorie:</b> " + string;
}

function switchMapProducer(oAnchor) {
    var oDiv;

    if (mapProducerZoom == false) {
        document.getElementById('memoryImage').style.display = 'none';
        //document.getElementById('mapPreview').style.display = 'block';
        //document.getElementById('mapMeritko').style.display = 'block';
        //document.getElementById('mapDetail').style.display = 'block';
        document.getElementById('map').style.display = 'block';
        document.getElementById('smallMapPicture').style.display = 'none';
        //document.getElementById('memorySearch').style.display = 'none';
    }
    else {
        document.getElementById('map').style.display = 'none';
        document.getElementById('memoryImage').style.display = 'block';
        //document.getElementById('mapPreview').style.display = 'none';
        //document.getElementById('mapMeritko').style.display = 'none';
        //document.getElementById('mapDetail').style.display = 'none';
        document.getElementById('smallMapPicture').style.display = 'block';
        //document.getElementById('memorySearch').style.display = 'block';
    }

    if (!mapInitialized) {
        init(6, [cJTSKX, cJTSKY]);
        //zoomTo(6);
        //layerSelect('m' + cMemoryCategoryID);
        showPoint(cJTSKX, cJTSKY, "/images/maps/mark.png", false);
        mapInitialized = true;
    }
    mapProducerZoom = !mapProducerZoom;
    }



    var marker;
    var lonlat;

    // mz costom prepis showMarker
    function showPoint(lon, lat, urlIcon, transform) {
        marker = null;
        lonlat = new OpenLayers.LonLat(null, null);


        /* smazat starou*/
        if (marker) {
            markers.removeMarker(marker);
        }
        lonlat.lon = lon;
        lonlat.lat = lat;
        var sz = new OpenLayers.Size(45, 35);
        var calculateOffset = function (size) {
            return new OpenLayers.Pixel(-13, -33);
        };
        var icon = new OpenLayers.Icon(urlIcon, sz, null, calculateOffset);
        marker = new OpenLayers.Marker(lonlat, icon);
        markers.addMarker(marker);

        //this.document.getElementById("inputX").value = lon;
        //this.document.getElementById("inputY").value = lat;

        if (transform) {
            var transformURL = "http://www.bnhelp.cz/mapserv/php/transform.php?request=GetProjected&srs=EPSG:102067&srsout=EPSG:4326&mapcoords=" + lon + "," + lat;
            OpenLayers.loadURL(transformURL, '', this, jtsk2wgs);
        }
    }

    function jtsk2wgs(r) {
        if (r.readyState == 4) {
            var wgs = r.responseText.split(" ");
            onNewMarker(lonlat.lon, lonlat.lat, wgs[0], wgs[1]);
        }
    }

    function showRiverFromXml() {
        var url = "http://www.posazavi.com/mapy/Predefined/sazava.xml";
        OpenLayers.loadURL(url, '', this, shortestPath.parseShortestPath);
        // po shortestPath.Init hack
        /*shortestPath.clicked = function (e) {
            OpenLayers.Event.stop(e);
            return;
        };*/

        map.events.register('mousemove', map, function (evt) {
            OpenLayers.Event.stop(evt); 
            return;
        });

        
        /*map.events.register('mousedown', map, function (evt) {
        OpenLayers.Event.stop(evt);
        return; 
        });
        map.events.register('mouseup', map, function (evt) {
        OpenLayers.Event.stop(evt);
        return; 
        }); */

    }


    function hackShortestPath() {
        shortestPath.onMouseMove = function (evt) {
            OpenLayers.Event.stop(evt);
            return;
        };

        return;
        shortestPath.onMouseDown = function (evt) {
            OpenLayers.Event.stop(evt);
            return; 
        };
        shortestPath.onMouseUp = function (evt) {
            OpenLayers.Event.stop(evt); 
            return;
        };
    }

