var ajaxProxyPage = "http://" + location.host + "/proxy/vars-mapy/ajaxProxy.php";

var map_viewstyle = '';
var map_tools_style = '';
var posmapHold, posmapWold, mapSizeWold, mapSizeHold;

var wip = null;

function includeJScript(JScript)
{
    window.document.write('<script type="text/javascript" src="' + JScript + '"><\/script>'); 
}

var myHost = location.host;
//nastaveni cesty k adresari aplikace
//var myHome = "http://www.vars.cz/Liberec";
var myHome = "http://mpcr.kraj-lbc.cz/liberec";
var bUseAjaxProxyPage = true;

//vlozeni pouzitych skriptu
if(noVarsData != 'yes'){
  includeJScript(myHome + '/Javascript/settings/Styles.js');
  includeJScript(myHome + '/Javascript/app/Maplib.js');
  includeJScript(myHome + '/Javascript/app/Mathlib.js');
  includeJScript(myHome + '/Javascript/settings/Custom.js');
  includeJScript(myHome + '/Javascript/app/OverTileLayer.js');
  includeJScript(myHome + '/Javascript/app/UnderTileLayer.js');
  includeJScript(myHome + '/Javascript/app/SelectionRect.js');
  includeJScript(myHome + '/Javascript/app/TileLayer.js');
  includeJScript(myHome + '/Javascript/app/Tips.js');
  includeJScript(myHome + '/Javascript/app/MapInfo.js');
  includeJScript(myHome + '/Javascript/app/Ajax.js');
  includeJScript(myHome + '/Javascript/app/GUIElements.js');
  includeJScript(myHome + '/Javascript/app/SelectionPolygon.js');
  includeJScript(myHome + '/Javascript/app/Controls.js');
  includeJScript(myHome + '/Javascript/app/Overview.js');
  includeJScript(myHome + '/Javascript/app/Slider.js');
  includeJScript(myHome + '/Javascript/app/MapComponent.js');
  includeJScript(myHome + '/Javascript/app/Coords.js');
  includeJScript(myHome + '/Javascript/app/MapObjects.js');
  includeJScript(myHome + '/Javascript/app/ImageLayers.js');
  includeJScript(myHome + '/Javascript/app/ImgOverMap.js');
  includeJScript(myHome + '/Javascript/app/VectorGraphics.js');
  includeJScript(myHome + '/Javascript/app/Measure.js');
  includeJScript(myHome + '/Javascript/app/Route.js');
  includeJScript(myHome + '/Javascript/app/RoadSections.js');
  includeJScript(myHome + '/Javascript/app/SpiderGeometry.js');
  includeJScript(myHome + '/Javascript/app/PointEvent.js');
  includeJScript(myHome + '/Javascript/app/Interface.js');
  
  includeJScript(myHome + '/Javascript/app/CL_Interface.js');
}

function MapLoaded(){

  //alert('Mapa je kompletně načtena');
  document.getElementById('mapComponent1').style.zIndex = 8;
  mappos();
  
  if(map_viewstyle == 'detail'){
    var xmlLC = "<LayerCollection>";
      xmlLC += "<Layer>";
        xmlLC += "<Name>" + document.getElementById('map_category').value + "</Name>";
        xmlLC += "<SubLayer>";
          xmlLC += "<Name>" + document.getElementById('map_subcategory').value + "</Name>";
        xmlLC += "</SubLayer>";
      xmlLC += "</Layer>";
    xmlLC += "</LayerCollection>";
    CL_SwitchLayers(xmlLC, LayersLoaded);
    map_viewstyle = 'maptip';

  }
  
  if(document.getElementById('route')){
    if(document.getElementById('route').value != ''){
      CL_ShowRoute(document.getElementById('route').value);
    }
  }
  
  if(document.getElementById('polygon')){
    if(document.getElementById('polygon').value != ''){
      CL_ShowPolygon(document.getElementById('polygon').value);
    }
  }

}

function showMapTipPoint(category, subCategory, point){
  
    var xmlLC = "<LayerCollection>";
      xmlLC += "<Layer>";
        xmlLC += "<Name>" + category + "</Name>";
        xmlLC += "<SubLayer>";
          xmlLC += "<Name>" + subCategory + "</Name>";
          xmlLC += "<Ids>" + point + "</Ids>";
          
        xmlLC += "</SubLayer>";
      xmlLC += "</Layer>";
    xmlLC += "</LayerCollection>";
    
    map_viewstyle = 'maptip2';
    CL_SwitchLayers(xmlLC, LayersLoaded(category, subCategory, point));
    closeajax();
  
}



function LayersLoaded(category, subCategory, point){
  
  
  if(map_viewstyle == 'maptip'){
    CL_SelectPointOfInterest(document.getElementById('map_ID').value, document.getElementById('map_category').value, document.getElementById('map_subcategory').value, 'maptip', POFSelected);
    map_viewstyle = 'done';
  } else if (map_viewstyle == 'maptip2'){
    CL_SelectPointOfInterest(point, category, subCategory, 'maptip', POFSelected);
    map_viewstyle = 'done';
  }
    
}

function MapClick(xmlPoint)
{                
    document.getElementById('text').value = xmlPoint;
}

function PolygonSelected(xmlPolygon)
{                
    document.getElementById('text').value = xmlPolygon;
}

function RouteSelected(xmlRoute)
{
    document.getElementById('vmap_ta_route').value = xmlRoute;
    dataToRoute()
}

function POFSelected()
{

}
/*
function AddressPointSelected(xmlAddresPoint)
{
    document.getElementById('text').value = xmlAddresPoint;
}
*/

function POFInPolygonFinded(xmlPOF)
{
    document.getElementById('text').value = xmlPOF;
}

function POFAroundPointFinded(xmlPOF)
{
    document.getElementById('text').value = xmlPOF;
}

function TestObr()
{  
    window.open(CL_PrintImageUrl());             
}

function Graph()
{
    window.open(CL_GraphImageUrl());
}

function Route()
{
    var points = document.getElementById('points').value;
    var routeType = document.getElementById('routeType').value;
    var roundTrip = document.getElementById('roundTrip').checked;
    
    var difficulty = 0;
    var surfaceQuality = 0;
    //var difficulty = document.getElementById('difficulty').value;
    //var surfaceQuality = document.getElementById('surfaceQuality').value;
    
    var pointOfInterestDistance = document.getElementById('pointOfInterestDistance').value;
    CL_FindRoute(points,routeType,difficulty,surfaceQuality,true,true,roundTrip,pointOfInterestDistance,RouteSelected)
}

/*
function GetPoint()
{
    CL_GetPoint(MapClick2)
}

function MapClick2(xmlPoint)
{
    var xmlPointCollection = document.getElementById('points').value;
    var index = xmlPointCollection.indexOf('><',0);
    
    document.getElementById('points').value = xmlPointCollection.substring(0,index+1) + xmlPoint +  xmlPointCollection.substring(index+1,xmlPointCollection.length - 1);
}
*/
function RetGPX(result)
{
    document.getElementById('text').value = result;
}




function nacistMapu(mv, mt){
  
  var lang = document.getElementById('search_actualLang').value; 
  map_viewstyle = mv;
  map_tools_style = mt;
  
  if(document.getElementById('map_view_transparent')){
    document.getElementById('map_view_transparent').style.display = '';
  }
  document.getElementById('map_view').style.display = '';
  
  posMapArr = mappos();
  if(document.getElementById('mapComponent1')){
    
    document.getElementById('mapComponent1').style.display = '';
    
    CL_Resize(posMapArr["mapSizeW"], posMapArr["mapSizeH"]);
    CL_Move(posMapArr["posmapW"], posMapArr["posmapH"]);


  } else {  
    CL_InitMap(posMapArr["posmapW"], posMapArr["posmapH"], posMapArr["mapSizeW"], posMapArr["mapSizeH"], null, lang, 100, MapLoaded);
  }
  
  loadMapOvl();

}


function mappos(){
  var posMapArr = new Array();
  if(document.getElementById('map_view_transparent')){
  
    if(document.getElementById('map_view_transparent').style.display != 'none'){
    
    	if (window.innerHeight){
        galSizeH = window.innerHeight;
        galSizeW = window.innerWidth;
    	} else if (document.documentElement && document.documentElement.clientHeight){
    		galSizeH = document.documentElement.clientHeight;
    		galSizeW = document.documentElement.clientWidth;
    	} else if (document.body && document.body.clientHeight){
    		galSizeH = document.body.clientHeight;
    		galSizeW = document.body.clientWidth;
      }
      if(galSizeH == 0){
      } else {
        document.getElementById('map_view_transparent').style.height = (galSizeH) + 'px';
        document.getElementById('map_view_transparent').style.width = (galSizeW) + 'px';
  
        mapSizeObH = galSizeH - 80;
        mapSizeObW = galSizeW - 80;
  
        document.getElementById('map_view').style.height = (mapSizeObH) + 'px';
        document.getElementById('map_view').style.width = (mapSizeObW) + 'px';
  
        mapSizeH = mapSizeObH - 20;
        mapSizeW = mapSizeObW;
  
  
        posMapArr["mapSizeH"] = mapSizeH;
        
        if(map_tools_style == 'tools_mini'){
          posMapArr["mapSizeW"] = mapSizeW - 24;
          document.getElementById('ovladani_mapy').style.width = '24px';
          if(document.getElementById('div_all_tools')){
            document.getElementById('div_all_tools').style.display = 'none';
            document.getElementById('div_all_tools_mini').style.display = '';
          }
        } else {
          posMapArr["mapSizeW"] = mapSizeW - 305;
          document.getElementById('ovladani_mapy').style.width = '305px';
          if(document.getElementById('div_all_tools')){
            document.getElementById('div_all_tools').style.display = '';
            document.getElementById('div_all_tools_mini').style.display = 'none';
          }
        }
  
        posmapH = ((galSizeH) - mapSizeObH) / 2;
        posmapW = ((galSizeW) - mapSizeObW) / 2;
  
        if (document.documentElement && document.documentElement.scrollTop) {
          winScroll = document.documentElement.scrollTop;
        } else if (document.body) {
          winScroll = document.body.scrollTop;
        } else {
          winScroll = 0;
        }
        
        document.getElementById('map_view_transparent').style.top = (winScroll) + 'px';
        
        document.getElementById('map_view').style.top = (winScroll + posmapH) + 'px';
        document.getElementById('map_view').style.left = (posmapW) + 'px';
  
  
        posMapArr["posmapH"] = posmapH + winScroll + 20;
        posMapArr["posmapW"] = posmapW;
        
        //ovladani
        document.getElementById('ovladani_mapy').style.top = 0 + 'px';
        document.getElementById('ovladani_mapy').style.left = (posMapArr["mapSizeW"]) + 'px';
        document.getElementById('ovladani_mapy').style.height = (mapSizeObH - 20) + 'px';// - 20
  //      document.getElementById('ovladani_mapy').style.left = posMapArr["posmapW"] + 'px';
        
        
        if(document.getElementById('mapComponent1')){
          if((posmapHold != posMapArr["posmapH"]) || (posmapWold != posMapArr["posmapW"])){
            CL_Move(posMapArr["posmapW"], posMapArr["posmapH"]);
          }
          if((mapSizeWold != posMapArr["mapSizeW"]) || (mapSizeHold != posMapArr["mapSizeH"])){
            CL_Resize(posMapArr["mapSizeW"], posMapArr["mapSizeH"]);
          }
        }
        posmapHold = posMapArr["posmapH"];
        posmapWold = posMapArr["posmapW"];
        mapSizeWold = posMapArr["mapSizeW"];
        mapSizeHold = posMapArr["mapSizeH"];
        
        setTimeout('mappos()',50);
        
        return posMapArr;
        
      }
    }
  
  } else {

  	if (window.innerHeight){
      wSizeH = window.innerHeight;
      wSizeW = window.innerWidth;
  	} else if (document.documentElement && document.documentElement.clientHeight){
  		wSizeH = document.documentElement.clientHeight;
  		wSizeW = document.documentElement.clientWidth;
  	} else if (document.body && document.body.clientHeight){
  		wSizeH = document.body.clientHeight;
  		wSizeW = document.body.clientWidth;
    }
      
      if(wSizeH == 0){
      } else {
  
        mapSizeObH = wSizeH - 140;
        mapSizeObW = wSizeW;// - 10
        
        document.getElementById('map_view').style.height = (mapSizeObH) + 'px';
        document.getElementById('map_view').style.width = (mapSizeObW) + 'px';
  
        mapSizeH = mapSizeObH;
        mapSizeW = mapSizeObW;// - 10
  
        posMapArr["mapSizeH"] = mapSizeH;
        
        if(map_tools_style == 'tools_mini'){
          posMapArr["mapSizeW"] = mapSizeW - 24;
          document.getElementById('ovladani_mapy').style.width = '24px';
          if(document.getElementById('div_all_tools')){
            document.getElementById('div_all_tools').style.display = 'none';
            document.getElementById('div_all_tools_mini').style.display = '';
          }
        } else {
          posMapArr["mapSizeW"] = mapSizeW - 305;
          document.getElementById('ovladani_mapy').style.width = '305px';
          if(document.getElementById('div_all_tools')){
            document.getElementById('div_all_tools').style.display = '';
            document.getElementById('div_all_tools_mini').style.display = 'none';
          }
        }
  
        posmapH = 140;
        posmapW = 0;
  
        
        document.getElementById('map_view').style.top = (posmapH) + 'px';
        document.getElementById('map_view').style.left = (posmapW) + 'px';
  
  
        posMapArr["posmapH"] = posmapH;
        posMapArr["posmapW"] = posmapW;
        
        //ovladani
        document.getElementById('ovladani_mapy').style.top = 0 + 'px';
        document.getElementById('ovladani_mapy').style.left = (posMapArr["mapSizeW"]) + 'px';
        document.getElementById('ovladani_mapy').style.height = (mapSizeObH) + 'px';
  //      document.getElementById('ovladani_mapy').style.left = posMapArr["posmapW"] + 'px';
        
        
        if(document.getElementById('mapComponent1')){
          if((posmapHold != posMapArr["posmapH"]) || (posmapWold != posMapArr["posmapW"])){
            CL_Move(posMapArr["posmapW"], posMapArr["posmapH"]);
          }
          if((mapSizeWold != posMapArr["mapSizeW"]) || (mapSizeHold != posMapArr["mapSizeH"])){
            CL_Resize(posMapArr["mapSizeW"], posMapArr["mapSizeH"]);
          }
        }
        posmapHold = posMapArr["posmapH"];
        posmapWold = posMapArr["posmapW"];
        mapSizeWold = posMapArr["mapSizeW"];
        mapSizeHold = posMapArr["mapSizeH"];
        
        setTimeout('mappos()',500);
        
        return posMapArr;
        
      }

  }
}

function closemapshow(){
  document.getElementById('map_view_transparent').style.display = 'none';
  document.getElementById('map_view').style.display = 'none';
  document.getElementById('mapComponent1').style.display = 'none';
}



function loadMapOvl(){
  
  var subakce;
  var lang = document.getElementById('search_actualLang').value;

  if(document.getElementById('div_all_tools')){
    subakce = map_tools_style;
    if(map_tools_style == 'how_show'){
      myDiv = document.getElementById('div_how_show');
    } else if(map_tools_style == 'tools_help'){
      myDiv = document.getElementById('div_map_help');
    } else if(map_tools_style == 'onsetroute'){
      myDiv = document.getElementById('div_map_set_route');
    }
  } else {
    subakce = 'tools_panel';
    myDiv = document.getElementById('ovladani_mapy');
    setTimeout("load_after_map_tools()", 1000);
  }
  

  if (xmlHttp)
  {
    try
    {

      var params = "&lanG=" + lang +
                   "&subakce=" + subakce;
      xmlHttp.open('GET', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);

    }
    catch (e)
    {
      alert("Can't connect to server 2:\n" + e.toString());
    }
  }

}

function load_after_map_tools(){
  if(document.getElementById('div_all_tools')){
    if(map_tools_style != 'tools_mini'){
      loadMapOvl();
    }
  } else {
    setTimeout("load_after_map_tools()", 200);
  }
}

function map_toolsSwitch(swto){
  if(swto == 'onmini'){
    map_tools_style = 'tools_mini';
    mappos();
  } else if (swto == 'onfull') {
    map_tools_style = 'how_show';
    if(document.getElementById('div_how_show').innerHTML == ''){
      loadMapOvl();
      document.getElementById('div_map_help').style.display = 'none';
      document.getElementById('div_map_set_route').style.display = 'none';
      document.getElementById('div_how_show').style.display = '';
      document.getElementById('div_map_itinerar').style.display = 'none';
    }
    mappos();
  } else if (swto == 'how_show'){
    map_tools_style = 'how_show';
    if(document.getElementById('div_how_show').innerHTML == ''){
      loadMapOvl();    
    }
    document.getElementById('div_map_help').style.display = 'none';
    document.getElementById('div_map_set_route').style.display = 'none';
    document.getElementById('div_how_show').style.display = '';
    document.getElementById('div_map_itinerar').style.display = 'none';
    mappos();
  } else if (swto == 'onsetroute') {
    map_tools_style = 'onsetroute';
    if(document.getElementById('div_map_set_route').innerHTML == ''){
      loadMapOvl();    
    }
    document.getElementById('div_map_help').style.display = 'none';
    document.getElementById('div_map_set_route').style.display = '';
    document.getElementById('div_how_show').style.display = 'none';
    document.getElementById('div_map_itinerar').style.display = 'none';
    mappos();
    //CL_GetRoute(RouteSelected);
  } else if (swto == 'tools_itinerar'){
    map_tools_style = 'tools_itinerar';
    if(document.getElementById('div_map_itinerar').innerHTML == ''){
      loadMapOvl();    
    }
    document.getElementById('div_map_help').style.display = 'none';
    document.getElementById('div_map_set_route').style.display = 'none';
    document.getElementById('div_how_show').style.display = 'none';
    document.getElementById('div_map_itinerar').style.display = '';
    mappos();
  } else if (swto == 'tools_help') {
    map_tools_style = 'tools_help';
    if(document.getElementById('div_map_help').innerHTML == ''){
      loadMapOvl();    
    }
    document.getElementById('div_map_help').style.display = '';
    document.getElementById('div_map_set_route').style.display = 'none';
    document.getElementById('div_how_show').style.display = 'none';
    document.getElementById('div_map_itinerar').style.display = 'none';
    mappos();
  } 
  
  
}



function changeCategory(idCat, typ, subId){
  var icosrcLen, icosrcArr;
  if(typ == 'h'){
    if(document.getElementById('c' + idCat).checked == true){
      var toChangeArr = subId.split(",");
      for(var i=0;i<=toChangeArr.length;i++){
        if(document.getElementById('c' + toChangeArr[i])){
          document.getElementById('c' + toChangeArr[i]).checked = true;
          icosrcArr = document.getElementById('cimg' + toChangeArr[i]).src.split("/");
          icosrcLen = icosrcArr.length - 1;
          document.getElementById('cimg' + toChangeArr[i]).src = 'http://www.liberecky-kraj.cz/redakce/rs/liberecky_kraj/mapico/' + icosrcArr[icosrcLen];
        }
      }
    } else {
      var toChangeArr = subId.split(",");
      for(var i=0;i<=toChangeArr.length;i++){
        if(document.getElementById('c' + toChangeArr[i])){
          document.getElementById('c' + toChangeArr[i]).checked = false;
          icosrcArr = document.getElementById('cimg' + toChangeArr[i]).src.split("/");
          icosrcLen = icosrcArr.length - 1;
          document.getElementById('cimg' + toChangeArr[i]).src = 'http://www.liberecky-kraj.cz/redakce/rs/liberecky_kraj/mapico_na/' + icosrcArr[icosrcLen];
        }
      }
    }
  } else if (typ == 's'){
    if(document.getElementById('c' + idCat).checked == false){
      document.getElementById('c' + subId).checked = false;
    }
    if(document.getElementById('c' + idCat).checked == true){
      icosrcArr = document.getElementById('cimg' + idCat).src.split("/");
      icosrcLen = icosrcArr.length - 1;
      document.getElementById('cimg' + idCat).src = 'http://www.liberecky-kraj.cz/redakce/rs/liberecky_kraj/mapico/' + icosrcArr[icosrcLen];
    } else {
      icosrcArr = document.getElementById('cimg' + idCat).src.split("/");
      icosrcLen = icosrcArr.length - 1;
      document.getElementById('cimg' + idCat).src = 'http://www.liberecky-kraj.cz/redakce/rs/liberecky_kraj/mapico_na/' + icosrcArr[icosrcLen];
    }
    
  }
  
  var bylLayer = 0;
  var xmlLC = "<LayerCollection>";
  
  var hodnota, hodnotaArr, oldHod0;
  for(var i=0;i<=1000;i++){
    if(document.getElementById('c' + i)){
      if(document.getElementById('c' + i).checked == true){
        hodnotaArr = document.getElementById('c' + i).value.split("-");
        if(hodnotaArr[0] != oldHod0){
          if(bylLayer == 1){
            xmlLC += "</Layer>";
          }
          xmlLC += "<Layer>";
          xmlLC += "<Name>" + hodnotaArr[0] + "</Name>";
          bylLayer = 1;       
        }

        xmlLC += "<SubLayer>";
          xmlLC += "<Name>" + hodnotaArr[1] + "</Name>";
        xmlLC += "</SubLayer>";
/*
        if(hodnotaArr[0] != oldHod0){
          xmlLC += "</Layer>";
        }
*/      
        oldHod0 = hodnotaArr[0];
        
      }
    } else {
      break;
    }
  }

  if(bylLayer == 1){
    xmlLC += "</Layer>";
  }
  
  xmlLC += "</LayerCollection>";

  CL_SwitchLayers(xmlLC,LayersLoaded);

  

}


function treeChange(idTree){
  if(document.getElementById('ul' + idTree).style.display == "none"){
    document.getElementById('ul' + idTree).style.display = "";
    document.getElementById('a' + idTree).innerHTML = '<img src="http://www.liberecky-kraj.cz/galerie/obrazky/image.php?img=119976&x=14&y=9" width="14px" height="9px" style="border:0; vertical-align:middle;" />';
  } else {
    document.getElementById('ul' + idTree).style.display = "none";
    document.getElementById('a' + idTree).innerHTML = '<img src="http://www.liberecky-kraj.cz/galerie/obrazky/image.php?img=119977&x=14&y=9" width="14px" height="9px" style="border:0; vertical-align:middle;" />';
  }
}

function dataToRoute(style){
  
  
  if(style == 'print'){
    myDiv = wip.document.getElementById('itinerar');
  } else {
    map_toolsSwitch('tools_itinerar');
    myDiv = document.getElementById('vmap_iterinar');
    myDiv.innerHTML = "<img src='/images/gallery/loading.gif' width='50px' height='50px' />";
  }
  
  var lang = document.getElementById('search_actualLang').value;
  var postparams = 'routedata=' + document.getElementById('vmap_ta_route').value;

  var params = "&lanG=" + lang +
               "&style=" + style +
               "&subakce=showroute";
  
  if(document.getElementById('vmap_ta_route').value != ''){
  
    if (xmlHttp)
    {
      try
      {
        xmlHttp.open('POST', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("charset", "utf-8");
        xmlHttp.onreadystatechange = handleRequestStateChange;
        xmlHttp.send(postparams);
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }
  
  }

}


function printroute(){
  window.open('http://www.liberecky-kraj.cz/redakce/rs/liberecky_kraj/printroute.php');
}

function doItinerare(addid, pointName, WGSE, WGSN){

  if (xmlHttp)
  {
    try
    {

      var postparams = "point=" + addid +
                       "&pointName=" + pointName +
                       "&WGSE=" + WGSE +
                       "&WGSN=" + WGSN;
                       
      var params = "&subakce=point2itinerar";
                   
      
      xmlHttp.open('POST', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.setRequestHeader("charset", "utf-8");
      xmlHttp.onreadystatechange = handleRequestStateChangeAddPoint;
      xmlHttp.send(postparams);


    }
    catch (e)
    {
      alert("Can't connect to server 2:\n" + e.toString());
    }
  }

}

function handleRequestStateChangeAddPoint()
{
  if (xmlHttp.readyState == 4)
  {
    if (xmlHttp.status == 200)
    {
      try
      {
        handleServerResponseSaveAddPoint();
      }
      catch(e)
      {
        alert("Error reading the response: " + e.toString());
      }
    }
    else
    {
      alert("There was a problem retrieving the data:\n" +
            xmlHttp.statusText);
    }
  }
}



function handleServerResponseSaveAddPoint()
{

  var xmlResponse = xmlHttp.responseXML;
  if (!xmlResponse || !xmlResponse.documentElement)
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
  var rootNodeName = xmlResponse.documentElement.nodeName;
  if (rootNodeName == "parsererror")
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
  xmlRoot = xmlResponse.documentElement;

  if (rootNodeName != "response" || !xmlRoot.firstChild)
    throw("Invalid XML structure:\n" + xmlHttp.responseText);

  var seshash = xmlRoot.getElementsByTagName("seshash").item(0).firstChild.data;
  setCookie('as4uItinerHash', seshash, '1', '/');
  
  var alertString = xmlRoot.getElementsByTagName("alert").item(0).firstChild.data;
  
  alert(alertString);
  
  if(parent.document.getElementById('table_rout_points')){
    parent.document.getElementById('table_rout_points').innerHTML = xmlRoot.getElementsByTagName("updateTable").item(0).firstChild.data;
  } else if(document.getElementById('table_rout_points')){
    document.getElementById('table_rout_points').innerHTML = xmlRoot.getElementsByTagName("updateTable").item(0).firstChild.data;
  }


}


function toRoute(){
  
  var xmlPoints = '';
  var arrGPS;

  var typSite = document.getElementById('vmap_typ_site').value;
  if(typSite != ''){
    CL_SetRouteType(typSite);
  }

  var obtiznost = document.getElementById('vmap_obtiznost').value;
  if(obtiznost != ''){
    CL_SetDifficulty(obtiznost);
  }

  var povrch = document.getElementById('vmap_povrch').value;
  if(povrch != ''){
    CL_SetSurfaceQuality(povrch);
  }

  var trasa = document.getElementById('vmap_trasa').value;
  if(trasa != ''){
    CL_SetSurfaceQuality(trasa);
  }
  
  if(document.getElementById('vmap_routepoints')){
    var rows = document.getElementById('vmap_routepoints').rows;
    if(rows.length > 1){
      
      for(var i=0;i<rows.length;i++)
      {
        if(rows[i].cells[0].innerHTML != ''){
          arrGPS = rows[i].cells[1].innerHTML.split(";");
          
          xmlPoints += '<PointD>';
            xmlPoints += '<WGSE>' + arrGPS[0] + '</WGSE>';
            xmlPoints += '<WGSN>' + arrGPS[1] + '</WGSN>';
          xmlPoints += '</PointD>';
    
        }
        
      }
      xmlPoints = '<PointCollection>' + xmlPoints + '</PointCollection>';
      
      /*
      var typSite = document.getElementById('vmap_typ_site').value;
      CL_SetRouteType(typSite);
      
      var obtiznost = document.getElementById('vmap_obtiznost').value;
      CL_SetDifficulty(obtiznost);
      
      var povrch = document.getElementById('vmap_povrch').value;
      CL_SetSurfaceQuality(povrch);
      
      var trasa = document.getElementById('vmap_trasa').value;
      CL_SetSurfaceQuality(trasa);
      */
      
      
      var dangerTrip = 0;
      if(document.getElementById('vmapy_danger_trip').checked == true){
        CL_SetDangerousSections('1');
        dangerTrip = 1;
      } else {
        CL_SetDangerousSections('0');
      }
      
      var zpetnaTrasa = false;
      if(document.getElementById('vmapy_return_trip').checked == true){
        CL_SetReturnTrip(true);
        zpetnaTrasa = true;
      } else {
        CL_SetReturnTrip(false);
        zpetnaTrasa = false;  
      }
      
      
      var poi_distance = '';
      if(document.getElementById('vmapy_poi_distance').value != ''){
        poi_distance = document.getElementById('vmapy_poi_distance').value;
      }
      
    
      
      CL_FindRoute(xmlPoints, typSite, obtiznost, povrch, dangerTrip, trasa, zpetnaTrasa, poi_distance, RouteSelected);
    } else {
      alert(document.getElementById('fraze1').innerHTML); // vyberte alespoň dva body
    }
  } else {
    alert(document.getElementById('fraze1').innerHTML); // vyberte alespoň dva body
  }

}


function findAdress(){
  var adrString = document.getElementById('lbkr_adress').value; 

}


function setCookie(key, value, days, path) {
  value = encodeURIComponent(value);
  value+='; domain='+location.host;
  value+='; path='+path;
  var date = new Date();
  date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
  value+='; expires=' + date.toGMTString();
    document.cookie = key + '=' + value;
}


function saveVmapTableRowsShort(table){
  var rows = table.rows;
  var orderby = '';

  myDiv = document.getElementById('blackhole');

  for(var i=0;i<rows.length;i++)
  {
    
    if(rows[i].cells[0].innerHTML != ''){
      orderby += rows[i].cells[0].innerHTML + ';';
    }
    
  }
  
  if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
    if (xmlHttp)
    {
      try
      {
  
        var params = "&orderby=" + orderby +
                     "&subakce=orderby";
        xmlHttp.open('GET', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.onreadystatechange = handleRequestStateChange;
        xmlHttp.send(null);
  
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }
  }

}

function vyskoveSchema(){
   
   var urlVS = CL_GraphImageUrl();
   as4uAjaxAlertShow('800', '460');
   document.getElementById('ajax_content').innerHTML = '<img src="' + urlVS + '" height=\"460\" width=\"800\" />';

   document.getElementById('mapComponent1').style.display = "none";
   waitMapShow();


}


function exportGPX(result){
  document.getElementById('gpxcontent').value = result;
  document.getElementById('form_iframegpx').submit();
}


function AddressPointSelected(xmlAddresPoint)
{

    var lang = document.getElementById('search_actualLang').value;
    var postparams = 'find_xml=' + xmlAddresPoint + 
                     '&find_in=' + document.getElementById('find_in').value;
  
    var params = "&lanG=" + lang +
                 "&subakce=findinmap";
    
  
    
    if (xmlHttp)
    {
      try
      {
        xmlHttp.open('POST', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("charset", "utf-8");
        xmlHttp.onreadystatechange = handleRequestStateChangeFindMap;
        xmlHttp.send(postparams);
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }



}


String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "")
};
 
function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }


function findInMap(typeFind){
  
  if(document.getElementById('find_in')){
    var coHledat = document.getElementById('find_in').value;
  }
  
  if(typeFind == 'point'){

    as4uAjaxAlertShow('400', '400');
    document.getElementById('ajax_content').innerHTML = "<img src='/images/gallery/loading.gif' width='50px' height='50px' />";

    document.getElementById('mapComponent1').style.display = "none";
    waitMapShow();

    
    var lang = document.getElementById('search_actualLang').value;
    var postparams = 'find_string=' + document.getElementById('find_string_point').value + 
                     '&find_in=point';
  
    var params = "&lanG=" + lang +
                 "&subakce=findinmap";
    
  
    
    if (xmlHttp)
    {
      try
      {
        xmlHttp.open('POST', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("charset", "utf-8");
        xmlHttp.onreadystatechange = handleRequestStateChangeFindMap;
        xmlHttp.send(postparams);
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }

  
  } else if(coHledat == 1){
    var xmlString = '';
    var find_string = document.getElementById('find_string').value;
    var findArr = find_string.split(",");
    var findArrUl = '';
    
    if(findArr.length == 1){
      findArr[0] = findArr[0].trim();
      xmlString += '<AddressPoint>';
//        xmlString += '<WGSN></WGSN>';
//        xmlString += '<WGSE></WGSE>';
        xmlString += '<Municipality>' + findArr[0] + '</Municipality>';
//        xmlString += '<StreetName></StreetName>';
//        xmlString += '<StreetNumber></StreetNumber>';
      xmlString += '</AddressPoint>';
    } else if (findArr.length == 2){
      
      findArr[0] = findArr[0].trim();
      findArr[1] = findArr[1].trim();
      
      findArrUl = findArr[1].split(" ");
      var posledni = findArrUl.length - 1
      
      if(true == IsNumeric(findArrUl[posledni])){
        
        var ulString = '';
        for(var i=0;i<posledni;i++){
          ulString += findArrUl[i] + ' ';
        }
        ulString = ulString.trim();    
         
        xmlString += '<AddressPoint>';
          xmlString += '<Municipality>' + findArr[0] + '</Municipality>';
          xmlString += '<StreetName>' + ulString + '</StreetName>';
          xmlString += '<StreetNumber>' + findArrUl[posledni] + '</StreetNumber>';
        xmlString += '</AddressPoint>';    
         
         
      } else {

        xmlString += '<AddressPoint>';
          xmlString += '<Municipality>' + findArr[0] + '</Municipality>';
          xmlString += '<StreetName>' + findArr[1] + '</StreetName>';
        xmlString += '</AddressPoint>';    
      
      } 
      
      
      
    }
    
    CL_GetPointByAddress(xmlString, AddressPointSelected);
    
    
  
  } else if(coHledat == 2){
     

    var poi_distance = '0';
    if(document.getElementById('vmapy_poi_distance').value != ''){
      poi_distance = document.getElementById('vmapy_poi_distance').value;
    }

    var find_string = 'T' + document.getElementById('find_string').value;
    
    CL_RouteOnCycleRoute(find_string, poi_distance, RouteSelected);
     
  } else {

    as4uAjaxAlertShow('400', '400');
    document.getElementById('ajax_content').innerHTML = "<img src='/images/gallery/loading.gif' width='50px' height='50px' />";

    document.getElementById('mapComponent1').style.display = "none";
    waitMapShow();

    
    var lang = document.getElementById('search_actualLang').value;
    var postparams = 'find_string=' + document.getElementById('find_string').value + 
                     '&find_in=' + document.getElementById('find_in').value;
  
    var params = "&lanG=" + lang +
                 "&subakce=findinmap";
    
  
    
    if (xmlHttp)
    {
      try
      {
        xmlHttp.open('POST', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("charset", "utf-8");
        xmlHttp.onreadystatechange = handleRequestStateChangeFindMap;
        xmlHttp.send(postparams);
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }
  
  }


}


function handleRequestStateChangeFindMap()
{
  if (xmlHttp.readyState == 4)
  {
    if (xmlHttp.status == 200)
    {
      try
      {
        handleServerResponseSaveFindMap();
      }
      catch(e)
      {
        alert("Error reading the response: " + e.toString());
      }
    }
    else
    {
      alert("There was a problem retrieving the data:\n" +
            xmlHttp.statusText);
    }
  }
}



function handleServerResponseSaveFindMap()
{

  var xmlResponse = xmlHttp.responseXML;
  if (!xmlResponse || !xmlResponse.documentElement)
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
  var rootNodeName = xmlResponse.documentElement.nodeName;
  if (rootNodeName == "parsererror")
    throw("Invalid XML structure:\n" + xmlHttp.responseText);
  xmlRoot = xmlResponse.documentElement;

  if (rootNodeName != "response" || !xmlRoot.firstChild)
    throw("Invalid XML structure:\n" + xmlHttp.responseText);

 
  var alertString = xmlRoot.getElementsByTagName("alert").item(0).firstChild.data;
  
  if(alertString == 'ok'){
  
    
    if(xmlRoot.getElementsByTagName("pointName").item(0)){
      var pointName = xmlRoot.getElementsByTagName("pointName").item(0).firstChild.data;
      var WGSE = xmlRoot.getElementsByTagName("WGSE").item(0).firstChild.data;
      var WGSN = xmlRoot.getElementsByTagName("WGSN").item(0).firstChild.data;
      doItinerare('0', pointName, WGSE, WGSN);
      
    } else {
      document.getElementById('ajax_content').innerHTML = xmlRoot.getElementsByTagName("findData").item(0).firstChild.data;
    }
  } else {
    alert(alertString);
    closeajax();
  }


}

function delmappoint(tri, poiid, confirmMesage){
  
  var confirmstatus = 0;
  if(tri != 'all'){
    if (confirm(confirmMesage)){
      confirmstatus = 1;
    }
  } else {
    confirmstatus = 1;
  }
  
  if (confirmstatus == 1){
  
    myDiv = document.getElementById('blackhole');
    
    if(tri == 'all'){
      poiid = 'all';
      if(document.getElementById('div_vmap_routepoints')){
        document.getElementById('div_vmap_routepoints').innerHTML = '<table onmouseover="javascript:as4uTableRowsChange(this)" id="vmap_routepoints" style="margin-top:0;"></table>';
      }
    } else {
      var rowDel = document.getElementById('pointsid_' + tri).parentNode.rowIndex;
      document.getElementById('vmap_routepoints').deleteRow(rowDel);
    }
  
    
    if (xmlHttp)
    {
      try
      {
  
        var params = "&poiid=" + poiid +
                     "&subakce=delpoiid";
        xmlHttp.open('GET', 'http://' + document.location.host + '/redakce/ajax.php?akce=lbckrajmap' + params, true);
        xmlHttp.onreadystatechange = handleRequestStateChange;
        xmlHttp.send(null);
  
      }
      catch (e)
      {
        alert("Can't connect to server 2:\n" + e.toString());
      }
    }
  }

}


function itinerarPrint(){
  var lang = document.getElementById('search_actualLang').value;
  wip = null;
  wip = window.open('http://' + document.location.host + '/redakce/rs/liberecky_kraj/itinerarprint.php?languageG=' + lang, 'itinerarprint', 'menubar=yes, scrollbars=yes, resizable=yes');
  
  //alert('Itinerář pro tisk bude otevřen v novém okně!');
  
  
  setTimeout('itinerarPrintWW()',500);
  
}

function itinerarPrintWW(){
  if(wip == null){
    setTimeout('itinerarPrintWW()',500);
  } else {
      if(wip.document.getElementById('mapa')){
  
  
      var urlObrazkuMapy = CL_PrintImageUrl();
      var urlVschema = CL_GraphImageUrl();
      
      wip.document.getElementById('mapa').innerHTML = '<img src="' + urlObrazkuMapy + '" style="border:0;" />';
      wip.document.getElementById('profil').innerHTML = '<img src="' + urlVschema + '" style="border:0;" />';
      //wip.document.getElementById('itinerar').innerHTML = document.getElementById('itinerar_data').innerHTML;
      dataToRoute('print');
    
      wip.focus();
      
    } else {
      setTimeout('itinerarPrintWW()',500);
    }

  
  }

}

function changeTitleFind(){
  var actualFind = document.getElementById('find_in').value;
  if(actualFind == 0){
    document.getElementById('find_string').title = document.getElementById('fraze2').innerHTML; // Zadejte název cílového bodu (zámku, hotelu, restaurace)
  } else if (actualFind == 1){
    document.getElementById('find_string').title = document.getElementById('fraze3').innerHTML; // Zadejte název města nebo obce, případně ulice oddělené čárkou
  } else if (actualFind == 2){
    document.getElementById('find_string').title = document.getElementById('fraze4').innerHTML; // Zadejte číslo nebo název cyklotrasy
  }

}

function vymazat_trasu(){
  CL_CleanRoute();
  delmappoint('all');
  if(document.getElementById('itinerar_data')){
    document.getElementById('itinerar_data').innerHTML = '';
  }
  map_toolsSwitch('onsetroute');
}

function findOnMap(){

  var typSite = document.getElementById('vmap_typ_site').value;
  if(typSite != ''){
    CL_SetRouteType(typSite);
  }

  var obtiznost = document.getElementById('vmap_obtiznost').value;
  if(obtiznost != ''){
    CL_SetDifficulty(obtiznost);
  }

  var povrch = document.getElementById('vmap_povrch').value;
  if(povrch != ''){
    CL_SetSurfaceQuality(povrch);
  }

  var trasa = document.getElementById('vmap_trasa').value;
  if(trasa != ''){
    CL_SetSurfaceQuality(trasa);
  }

  CL_GetRoute(RouteSelected);
}


function waitMapShow(){
  if(document.getElementById('ajax_transparent').style.display == "none"){
    document.getElementById('mapComponent1').style.display = "";
  } else {
    setTimeout('waitMapShow()',500);
  }  
}

var mauIsUsed = false;
function mapaVars(type, tools, point, category, subCategory, maptip){
  alert('Mapa je dočasně mimo provoz. Omlouváme se za způsobené potíže.');
  /*
  jQuery('#map_showtype').val('detail');
  jQuery('#map_ID').val(point);
  jQuery('#map_category').val(category);
  jQuery('#map_subcategory').val(subCategory);
  jQuery('#map_type').val(maptip);

  nacistMapu('detail', 'tools_mini');
  
  if(mauIsUsed == true){

    var xmlLC = "<LayerCollection>";
      xmlLC += "<Layer>";
        xmlLC += "<Name>" + category + "</Name>";
        xmlLC += "<SubLayer>";
          xmlLC += "<Name>" + subCategory + "</Name>";
          xmlLC += "<Ids>" + point + "</Ids>";

        xmlLC += "</SubLayer>";
      xmlLC += "</Layer>";
    xmlLC += "</LayerCollection>";

    CL_SwitchLayers(xmlLC, LayersLoaded(category, subCategory, point));

  }
  mauIsUsed = true;
  */

}
