var srvversion="3.0"

function versioncheck()
   {
   if(localmode()) 
    { 
    if(srvversion!=fileversion) 
     {
     if (cmaplang == "svk") 
      {
       tmsg="<br><b>Oznam o update</b> Prosím stiahnite novú verziu súboru index_svk.html<br> "
           +"pravým kliknutím myši na uvedený link a zvolením \"Uložiť cieľ odkazu ako...\"<br>"    
           +"<a href=" + URLpath + "index_svk.html target='_blank'>" + URLpath + "index_svk.html</a></td>";
       msgshow(tmsg);
      }

     if (cmaplang == "eng") 
      {  
      tmsg="<br><b>Update note</b> Please download new version of index.html<br> "
           +"Right click following link and select \"Save Target As...\"<br>"    
           +"<a href=" + URLpath + "index.html target='_blank'>" + URLpath + "index.html</a></td>";
           
      msgshow(tmsg);
      }
     }
    } 
   }

function localmode()
   {
   prot=location.protocol;
   prot=prot.toUpperCase();
   hmode=prot.indexOf('FILE');
   if(hmode==-1) return 0; else return 1;
   }

function toggleLayer(id, dstyle) {
  e = document.getElementById(id);
  if( e.style.display=='none' ) showLayer(id, dstyle);
  else hideLayer(id);
}

function showLayer(id, dstyle) {
  e = document.getElementById(id);
  e.style.display = dstyle;
}
function hideLayer(id) {
  e = document.getElementById(id);
  e.style.display = "none";
}
function msgshow(strmsg)
{
document.getElementById('MSGtext').innerHTML=strmsg;
showLayer('MSGbox',"block");
}
function setCursor(id, cursor) {
  var e = document.getElementById(id);
  e.style.cursor = cursor;
}
function getFrameByName(name) {
for (var i = 0; i < frames.length; i++)
   if (frames[i].name == name)
      return frames[i];
 
  return null;
 }


function uploadDone(name) {
   if (uploadedfilename!="-")  
    {
    tjspath=URLpath + 'tempjsdata/' + uploadedfilename + '.php';
    removejsfile(URLpath + 'tempjsdata'); 
    loadjsfile(tjspath);
    uploadedfilename="-";
    document.getElementById('HELPlink').innerHTML='';
    document.form1.Upload.style.visibility='visible';
    document.form3.Load.style.visibility='visible';
    }

   /*
   var frame = getFrameByName(name);
   if (frame) {
     ret = frame.document.getElementsByTagName("body")[0].innerHTML;
     if (ret.length) {
     //alert(ret);
     // var json = eval("("+ret+")");
     }
     else {
     //alert("empty");
     }
   
   }
   */
}

var uploadedfilename="-";

function resetuploaddata()
   {
   document.form1.Upload.style.visibility='visible';
   document.form3.Load.style.visibility='visible';
   uploadedfilename="-";
   }


function uploaddata()
   { 
     
   fsub=true;

   tm=document.form1.upload_scn.value;

   if (tm=="")  
    {
    fsub=false;   
    if (cmaplang == "svk") msgshow("Prosím zvoľ súbor");
    if (cmaplang == "eng") msgshow("Please select a file");
    return;  
    }

   if (tm!="")  
    {
    tm=tm.substring(tm.length-4);
    if (!((tm.toUpperCase()==".PLT")||(tm.toUpperCase()==".GPX")))
      {
      if (cmaplang == "svk") msgshow("Požadovaný typ súboru:  .plt or .gpx");
      if (cmaplang == "eng") msgshow("Required filetypes:  .plt or .gpx");
      fsub=false;   
      return;
      }
     }
  
 
    tm=document.form1.upload_scn.value;
    pp=tm.lastIndexOf("\\");
    if (pp==-1) pp=tm.lastIndexOf("/");  
    if (pp==-1) pp=0;   
    tm=tm.substring(pp);
    if (tm.lastIndexOf(" ")!=-1)
      {
      if (cmaplang == "svk") msgshow("V mene súboru sa nesmú vyskytovať medzery. Prosím premenuj súbor pred načítaním.");
      if (cmaplang == "eng") msgshow("Blank spaces are not allowed in filename. Please rename file before upload.");
      fsub=false;   
      return;
      }

    /*
    tm=document.form1.upload_scn.value;
    pp=tm.lastIndexOf("\\");
    if (pp==-1) pp=tm.lastIndexOf("/");  
    if (pp==-1) pp=0;   
    tm=tm.substring(pp);
    if (tm.lastIndexOf(";")!=-1)
      {
      if (cmaplang == "svk") msgshow("Znak ; sa nesmie vyskytovať v mene súboru. Prosím premenuj súbor pred načítaním.");
      if (cmaplang == "eng") msgshow("Character ; is not allowed in fiel name. Please rename file before upload.");
      fsub=false;   
      return;
      }
    */
    
   if (fsub)
      {
      uploadedfilename=Math.round(Math.random() * 100000000000);
      document.form1.randfilename.value=uploadedfilename;
      if (cmaplang == "svk") document.getElementById('HELPlink').innerHTML="<b><font color='red'>Nahrávanie súboru. Prosím čakajte.</font></b>";
      if (cmaplang == "eng") document.getElementById('HELPlink').innerHTML="<b><font color='red'>Loading file. Please wait.</font></b>";
      document.form1.Upload.style.visibility='hidden';
      document.form3.Load.style.visibility='hidden';
      document.form1.submit();
      }
   }          


function webloaddata()
   { 
     
   fsub=true;

   tm1=document.form3.websource.value;
   tm=document.form3.web_id.value;
   tm2=document.form3.center2trackB.checked;

   if (tm=="")  
    {
    fsub=false;  
      if (cmaplang == "svk") msgshow("Prosím zadaj ID trasy alebo URL na súbor.");
      if (cmaplang == "eng") msgshow("Please enter track id or file URL.");
    return;  
    }

  
   /*
   if ((tm!=="")&&(tm1=="url"))
    {
    tm=tm.substring(tm.length-4);
    if (!((tm.toUpperCase()==".PLT")||(tm.toUpperCase()==".GPX")))
      {
      if (cmaplang == "svk") msgshow("Požadovaný typ súboru:  .plt or .gpx");
      if (cmaplang == "eng") msgshow("Required filetypes:  .plt or .gpx");
      fsub=false;   
      return;
      }
     }
    */
 
   document.getElementById('HELPlink').innerHTML='';
 
   if (tm1=="gpsaw")
     {
     removejsfile('http://trasy.gpsteam.eu/gen/filelist.phtml');    
     loadjsfile('http://trasy.gpsteam.eu/gen/filelist.phtml?trackid=' + tm);
     }
    else  
     {
     tm = tm.replace(/&/g, "QsmickA");
     removejsfile(URLpath + 'webload.php');    
     loadjsfile(URLpath + 'webload.php?center2track=' + tm2 + '&websource=' + tm1 + '&web_id=' + tm);
     }


   }      


function urlwebloaddata(source,idlink)
   { 
   
    if (source=="gpsaw")
     {
     removejsfile('http://trasy.gpsteam.eu/gen/filelist.phtml');    
     loadjsfile('http://trasy.gpsteam.eu/gen/filelist.phtml?trackid=' + idlink);
     }
    else
     {
     idlink = idlink.replace(/&/g, "QsmickA");
     removejsfile(URLpath + 'webload.php');    
     loadjsfile(URLpath + 'webload.php?center2track=1&websource=' + source + '&web_id=' + idlink);
     }

   }



var colorscount=10

function colors(ci)
{
ci=ci-(Math.floor(ci/10)*10)-1;

switch (ci)
   {
   case 0: 
	res = "#FF0000";              //cervena            "#800000";hnedocervena
	break;
   case 1: 
	res = "#0000FF";              //modra       "#cc00ff";fialova
        break;
   case 2: 
	res = "#FFFF00";   //jasnazlta
	break;
   case 3: 
	res = "#00FF00";    //zelena
	break;
   case 4: 
	res = "#40FFFF";   //bledomodra
	break;
   case 5: 
	res = "#000000";   //cierna
        break;  
   case 6: 
	res = "#ffcccc";   //bledocervena
        break;  
   case 7: 
	res = "#C000C0";   //tmavofialova
	break;
   case 8: 
	res = "#cccc00";   //zltozelena
	break;
   case -1: 
	res = "#cccfff";   //sivomodra
        break;  
   } 
return res;
} 



function trcolorchange(pp,pp2)
{
 if(!isNaN(pp))
  {
  vectorLayer.features[pp].style.strokeColor=pp2;
  vectorLayer.drawFeature(vectorLayer.features[pp]);
  vectorLayer2.features[pp].style.strokeColor=pp2;
  vectorLayer2.drawFeature(vectorLayer2.features[pp]);
  }
}


function trwidthchange(pp,pp2)
{
 if(!isNaN(pp))
  {
  vectorLayer.features[pp].style.strokeWidth=pp2;
  vectorLayer.drawFeature(vectorLayer.features[pp]);
  vectorLayer2.features[pp].style.strokeWidth=pp2;
  vectorLayer2.drawFeature(vectorLayer2.features[pp]);
  }
}


function selecttrack(tt)
{
 document.form2.trackcolor1.value=vectorLayer.features[tt].style.strokeColor;
 document.form2.trackcolor1.style.background=vectorLayer.features[tt].style.strokeColor;
 document.form2.trackwidth1.value=vectorLayer.features[tt].style.strokeWidth;
}






function clearviewedtrack()
 {
 var trkcount=vectorLayer.features.length-1; 
 for(i=trkcount; i>=0; i--) 
     {
     vectorLayer.features[i].destroy();
     vectorLayer2.features[i].destroy();
     }
 removeOptions('trackst');
 }




function removeOptions(id)
 {
  e = document.getElementById(id);
  var i;
  for (i = e.length - 1; i>=0; i--) 
    {
        e.remove(i);
    }
  
 }


function goto(trid)
 {
 if (!trid) return;
 if(!isNaN(trid))
  {
 
  if (p102067.equals(map.baseLayer.projection))
   {
   var gotop = vectorLayer2.features[trid].geometry.components[0];
   }


  if (p900913.equals(map.baseLayer.projection))
   {
   var gotop = vectorLayer.features[trid].geometry.components[0];
   }

  map.setCenter(new OpenLayers.LonLat(gotop.x,gotop.y));
  
  }
}





function gotoedit()
{
 var tdata = gpxTrack.getVertices();
 if (typeof(tdata)=='string') return;
 var minfo = tdata[0];            
 map.setCenter(new OpenLayers.LonLat(minfo.x,minfo.y));
}




function examp(seltype)
   {
   targ=document.form3.web_id.value;


    if (seltype=="plt")
    {
      document.form3.web_id.value="http://trasy.gpsteam.eu/mtbdata/10_22_StraznaKopa-hreben.plt";
      document.getElementById('HELPlink').innerHTML='<a href="http://trasy.gpsteam.eu" target="_blank">PLT file located on trasy.gpsteam.eu</a>';
    }


    if (seltype=="gpx")
    {
      document.form3.web_id.value="http://forum.mtbiker.sk/resources/file/40737";
      document.getElementById('HELPlink').innerHTML='<a href="http://forum.mtbiker.sk/sukromne-akcie-vyjazdy-treningy/vtacnik-t16876-120.html" target="_blank">GPX file posted on forum.mtbiker.sk</a>';
    }


    if (seltype=="bikely")
    {
      document.form3.web_id.value="Ko-eca-K-Podhradie-MTB";
      document.getElementById('HELPlink').innerHTML='<a href="http://www.bikely.com/maps/bike-path/Ko-eca-K-Podhradie-MTB" target="_blank">Ko-eca-K-Podhradie-MTB track on bikely.com</a>';
    }


    if (seltype=="bikemap")
    {
      document.form3.web_id.value=36401;
      document.getElementById('HELPlink').innerHTML='<a href="http://www.bikemap.net/route/36401" target="_blank">www.bikemap.net track Nr. 36401</a>';
    }


    if (seltype=="gpstour")
    {
      document.form3.web_id.value=21612;
      document.getElementById('HELPlink').innerHTML='<a href="http://www.gps-tour.info/de/touren/detail.21612.html" target="_blank">www.gps-tour.com track Nr. 21612</a>';
    }

    if (seltype=="gpsaw")
    {
      document.form3.web_id.value=1;
      document.getElementById('HELPlink').innerHTML='<a href="http://trasy.gpsteam.eu/index.html?trasa=1" target="_blank">trasy.gpsteam.eu track Nr. 1</a>';
    }


   }



function examp1()
  {
  form9.newlayername.value="OSM_Mapnik";
  form9.newlayerurl.value="http://(a|b|c).tile.openstreetmap.org/(Z)/(X)/(Y).png";
  form9.newlayertype.value="base";
  form9.newlayermaxzoom.value=18;
  form9.newlayerminzoom.value=16;
  }

function examp2()
  {
  //http://wiki.freemap.sk/LayerAllInOne
  form9.newlayername.value="FreemapSK_Castles";
  form9.newlayerurl.value="http://tiles.freemap.sk/X~Z/(Z)/(X)/(Y).png";
  form9.newlayertype.value="over";
  form9.newlayermaxzoom.value=17;
  form9.newlayerminzoom.value=8;
  }

function examp6()
  {
  form9.newlayername.value="LocalTileCacheCycleMap";
  form9.newlayerurl.value="file:///D:/mapy/APPS/SAS.Planet100707/cache_gmt/cyclemap/z(Z)/(Y)/(X).png";
  form9.newlayertype.value="base";
  form9.newlayermaxzoom.value=14;
  form9.newlayerminzoom.value=13;
  }


function examp3()
  {
  var href = URLpath + "custom_layer_example.js";
  form11.customjsfile2.value=href;
  }


function examp4()
  {
  var href = URLpath + "custom_layer_example.js";
 var okno=window.open(href,Math.round(Math.random()*1000000),"menubar=no,scrollbars=yes,resizable=yes,toolbar=no,location=no,top=10,left=10,width=720,height=420");
  }


function examp5()
  {
  var href = "somelocalfile.js";
  form11.customjsfile2.value=href;
  }

function webIDdesc(seltype)
 {
 document.getElementById('HELPlink').innerHTML='';

    if (seltype=="plt")
     {
      document.form3.web_id.value="EnterURL";
     }


    if (seltype=="gpx")
    {
      document.form3.web_id.value="EnterURL";
    }


    if (seltype=="bikely")
    {
      document.form3.web_id.value="EnterTrackName";
    }


    if (seltype=="bikemap")
    {
      document.form3.web_id.value="EnterTrackNumber";
    }


    if (seltype=="gpstour")
    {
      document.form3.web_id.value="EnterTrackNumber";
    }

    if (seltype=="gpsaw")
    {
      document.form3.web_id.value="EnterTrackNumber";
    }


 }





 
function copyview2edit(trknm)
{
 if (!trknm) return;
 gpxTrack.clear();
 
 if (p102067.equals(map.baseLayer.projection))
  {
  gpxTrack.marksFromList(vectorLayer2.features[trknm].geometry.getVertices());
  }


 if (p900913.equals(map.baseLayer.projection))
  {
  gpxTrack.marksFromList(vectorLayer.features[trknm].geometry.getVertices());
  }

 
}




function copyedit2view() 
{
 var marks=gpxTrack.getArrayWGS();
 drawtrack(marks,0);
}





function copyedit2textbox(dir,type,reverse)   //dif: 1-front 2-end  , type: 1-full 2-selected only , reverse: true/false 
 {
 
 var tbstr=document.form7.gpsdata.value;
 var depstr=document.form7.delim.value;

 var segment="-----------------\n";
 if (tbstr=='') segment="";

 if ((type==1)&&(dir==1))
  {
  var addstr = gpxTrack.getList(1,reverse,depstr);
  document.form7.gpsdata.value=addstr + segment +tbstr;
  }


 if ((type==2)&&(dir==1))
  {
  var addstr = gpxTrack.getList(2,reverse,depstr);
  document.form7.gpsdata.value=addstr + segment +  tbstr;
  }
 
 if ((type==1)&&(dir==2))
  {
  var addstr = gpxTrack.getList(1,reverse,depstr);
  document.form7.gpsdata.value=tbstr +segment + addstr;
  }


 if ((type==2)&&(dir==2))
  {
  var addstr = gpxTrack.getList(2,reverse,depstr);
  document.form7.gpsdata.value=tbstr + segment +addstr;
  }
 
 }




function copyview2textbox(trknm,dir,reverse)   //trknm :  track number  , dif: 1-front 2-end ,    reverse: true/false 
 {

 
 if (!trknm) return;
 trknm2=parseInt(trknm);
  
 
 var tbstr=document.form7.gpsdata.value;
 var separator=document.form7.delim.value;

 var segment="-----------------\n";
 if (tbstr=='') segment="";


 var tstring="";

 var vert = vectorLayer.features[trknm2].geometry.getVertices();


 if (!(reverse))
  {
  for(var i=0; i<vert.length; i++) {
              var trkpoint = vert[i];
              var ll = new OpenLayers.LonLat(trkpoint.x,trkpoint.y).transform(map.baseLayer.projection,p4326); 
              tstring = tstring + Math.round(ll.lon*1000000)/1000000  + separator +Math.round(ll.lat*1000000)/1000000 +   separator + trkpoint.z +'\n';
             }
  } 
 else
  {
  for(var i=vert.length-1; i>=0; i--) {
              var trkpoint = vert[i];
              var ll = new OpenLayers.LonLat(trkpoint.x,trkpoint.y).transform(map.baseLayer.projection,p4326); 
              tstring = tstring + Math.round(ll.lon*1000000)/1000000  + separator +Math.round(ll.lat*1000000)/1000000 +   separator + trkpoint.z +'\n';
             }
  } 

   


 if (dir==1)
  {
  document.form7.gpsdata.value= tstring + segment +tbstr;
  }


 
 if (dir==2)
  {
  document.form7.gpsdata.value=tbstr +segment +  tstring;
  }


 }





function clearDatabox()
 {
 document.form7.gpsdata.value="";
 }




function copydata2view() {
 var tbstr = document.form7.gpsdata.value;
 var separator=document.form7.delim.value;
 var lineArray=tbstr.split("\n");
 var vline=0;
 var vert = new Array();
      for(var i=0; i<lineArray.length; i++) {
             var dataArray=lineArray[i].split(separator);
             if (dataArray.length==2)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1]))
                  {
                  vert[vline] = new Array(dataArray[0],dataArray[1],'');
                  vline++;
                  }
                }
                  
            
             if (dataArray.length==3)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1])  && (!isNaN(dataArray[2]) || dataArray[2]==''))
                   {
                   vert[vline] = new Array(dataArray[0],dataArray[1],dataArray[2]);
                   vline++;
                   } 
                }
        
              }
 if (vline>=2) 
   {
   drawtrack(vert,0);
   }
 }




function copydata2edit() {
 
 var tbstr = document.form7.gpsdata.value;
 var separator=document.form7.delim.value;
 var lineArray=tbstr.split("\n");
 var vline=0;
 var vert = new Array();
      for(var i=0; i<lineArray.length; i++) {
             var dataArray=lineArray[i].split(separator);
             if (dataArray.length==2)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1]))
                  {
                  vert[vline] =  new OpenLayers.Geometry.Point(dataArray[0],dataArray[1],'').transform(p4326,map.baseLayer.projection);
                  vline++;
                  }
                }
                  
            
             if (dataArray.length==3)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1])  && (!isNaN(dataArray[2]) || dataArray[2]==''))
                   {
                   vert[vline] = new OpenLayers.Geometry.Point(dataArray[0],dataArray[1],dataArray[2]).transform(p4326,map.baseLayer.projection);
                   vline++;
                   } 
                }
        
              }
 if (vline>=2) 
  {
  gpxTrack.clear();
  gpxTrack.marksFromList(vert);
  }
 }




function validateLines() {
 var tbstr = document.form7.gpsdata.value;
 var separator=document.form7.delim.value;
 var lineArray=tbstr.split("\n");
 var bstr="";
     for(var i=0; i<lineArray.length; i++) {
             var dataArray=lineArray[i].split(separator);
             if (dataArray.length==2)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1]))
                  {
                  bstr=bstr+lineArray[i]+"\n";
                  }
                }
                  
            
             if (dataArray.length==3)
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1])  && (!isNaN(dataArray[2]) || dataArray[2]==''))
                   {
                   bstr=bstr+lineArray[i]+"\n";
                   } 
                }
        
              }

 document.form7.gpsdata.value=bstr;
 }




function DataBoxReverse(){
 var tbstr = document.form7.gpsdata.value;
 var separator=document.form7.delim.value;
 var lineArray=tbstr.split("\n");
 var testr="";
 var i=0;
 var bstr="";
 var j=lineArray.length-1;
 

 while(i<j)
   {
   testr=lineArray[i];
   lineArray[i]=lineArray[j];
   lineArray[j]=testr;
   i++;
   j--;
   }          
 
 var st=0;
 if(lineArray[0]=="") st=1;

 for(var i=st; i<lineArray.length; i++) {
                   bstr=bstr+lineArray[i]+"\n";
                  }
             
 document.form7.gpsdata.value=bstr;
}





function DataBoxGoTo(){
 var obj=document.getElementById('gpsdata');
 var CurPos = 0;
 var SelStr ="";

 //FOR IE
 if (document.selection)
  {
  obj.focus();
  var Sel = document.selection.createRange();
  SelStr = Sel.text;
  }

  // For Firefox
 else if (obj.selectionStart || obj.selectionStart == '0') 
       {
	var startPos = obj.selectionStart;
	var endPos = obj.selectionEnd;
	SelStr = obj.value.substring(startPos,endPos);
        } 

 
 var separator=document.form7.delim.value;
 var dataArray=SelStr.split(separator);
             if ((dataArray.length==2) || (dataArray.length==3))
                {
                 if (!isNaN(dataArray[0]) && !isNaN(dataArray[1]))
                  {
                    var ncen = new OpenLayers.LonLat(dataArray[0],dataArray[1]).transform(p4326,map.baseLayer.projection);
                    map.setCenter(ncen);
                  }
                }
                  

}




function changeSeparator()  
 {
 var dcur=document.form7.delim.value;
 var dold=document.form7.delim2.value;
 var tbstr=document.form7.gpsdata.value;
 tbstr=ReplaceAll(tbstr,dold,dcur);
 document.form7.gpsdata.value=tbstr;
 document.form7.delim2.value=dcur;
 }




function ReplaceAll(str,s,d)  
 {

 var intIndexOfMatch = str.indexOf(s);
 while (intIndexOfMatch != -1){
  str = str.replace(s,d);
  intIndexOfMatch = str.indexOf(s);
  }

 return str;
}




  

function drawtrack(marks,setcenter) 
{
        var trkcount=vectorLayer.features.length+1; 
        var tcol=colors(trkcount)
        
        var style_1 = {
                strokeColor: tcol,
                strokeOpacity: 0.9,
                strokeWidth: 4,
                pointRadius: 6,
                pointerEvents: "visiblePainted"
             };



        var pointList = [];
        var pointList2 = [];

        for(i=0; i<marks.length; i++) 
        {
        var minfo = marks[i];             // again a list: lon, lat, altitude
        pointList.push(new OpenLayers.Geometry.Point(minfo[0],minfo[1],minfo[2])); 
        pointList2.push(new OpenLayers.Geometry.Point(minfo[0],minfo[1],minfo[2])); 
        }
 

        oneline=new OpenLayers.Geometry.LineString(pointList);   
        delete pointList;
        oneline=oneline.transform(p4326,p900913);
        var lineFeature = new OpenLayers.Feature.Vector(oneline,null,style_1);     
        vectorLayer.addFeatures([lineFeature]);
        
        
        oneline2=new OpenLayers.Geometry.LineString(pointList2);   
        delete pointList2;
        oneline2=oneline2.transform(p4326,p102067);
        var lineFeature2 = new OpenLayers.Feature.Vector(oneline2,null,style_1);     
        vectorLayer2.addFeatures([lineFeature2]);

        document.form2.trackst.options[(trkcount-1)] = new Option("tr. " + (trkcount),trkcount-1);
	document.form2.trackcolor1.style.background=vectorLayer.features[(trkcount-1)].style.strokeColor;
        document.form2.trackwidth1.value=vectorLayer.features[(trkcount-1)].style.strokeWidth;
	document.form2.trackst.value=trkcount-1;


        if (setcenter=='on' || (setcenter==1 || setcenter=='true'))
        {
         var minfo = marks[0];
         var curProj= map.baseLayer.projection;
         if (curProj.equals(p900913))
           {
            ncen = new OpenLayers.LonLat(minfo[0],minfo[1]).transform(p4326,p900913);
            map.setCenter(ncen);
           }

         if (curProj.equals(p102067))
           {
            ncen = new OpenLayers.LonLat(minfo[0],minfo[1]).transform(p4326,p102067);
            map.setCenter(ncen);
           }

        }
    
}



function loadjsfile(filename)
   {
    var fileref=document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", filename);
    if (typeof fileref!="undefined") document.getElementsByTagName("head")[0].appendChild(fileref);
   }



function removejsfile(filename)
 {
 var targetelement="script";
 var targetattr= "src";
 var allsuspects=document.getElementsByTagName(targetelement);
 for (var i=allsuspects.length; i>=0; i--)
  { 
  //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
   {
   //remove element by calling parentNode.removeChild();
   allsuspects[i].parentNode.removeChild(allsuspects[i]);
   }
  }
}


var gpsawloading=0;
var gpsawfilecount=0;
var gpsawfiles="";

function gpsawload()
{
 removejsfile('http://trasy.gpsteam.eu/gen/filegen.phtml');     

 if (gpsawloading<gpsawfilecount)
 {
  var fileArray=gpsawfiles.split(";");
  gpsawloading++;
  if ((gpsawloading-1)==0)  
   { 
   loadjsfile('http://trasy.gpsteam.eu/gen/filegen.phtml?filename=' + fileArray[gpsawloading-1] + '&center2track=1');
   }
  else
   {
   loadjsfile('http://trasy.gpsteam.eu/gen/filegen.phtml?filename=' + fileArray[gpsawloading-1] + '&center2track=0');
   }
 }
}



//global variables
var altiIndex=0; //current track point index
var altiType=0;   //0 - finished ,-1 all trackpoints, -2 empty only , -3  one point only
var altiSource=0; //1   ,  2 




function initaltitude(index,source)     //index: >0 - one point with index , -1 all trackpoints , -2 w/o altitude trackpoints only 
{					//source: 1 strm3     ,   2  astergdem

 if (index==-1) 
  {
  altiType=-1;
  altiIndex=gpxTrack.pointCount()-1;
  if (altiIndex<=-1) return;  
  altiSource=source;
  getaltitude();
  return;
  }

 
 if (index==-2) 
  {
   altiType=-2;
   altiIndex=gpxTrack.pointCount();
   if (altiIndex<=0) return;
   altiSource=source;
   do
    {
     altiIndex--;
     var cpalti=gpxTrack.readAltitude(altiIndex);
    }
   while((cpalti!='')&&(altiIndex>0))
   if (cpalti=='') getaltitude();
   return;
  }


 if (index>0) 
  {
  altiType=-3;
  altiIndex=index-1;
  altiSource=source;
  getaltitude();
  return;
  }


}



function getaltitude()
{
 showLayer("tracklength", "block");
 var e = document.getElementById("tracklength"); 
 
 if (cmaplang == "svk")  e.innerHTML = "Nastavujem nadm. výšku. Bod trasy: " + (altiIndex + 1);
 if (cmaplang == "eng")  e.innerHTML = "Setting altitude. Track Point: " + (altiIndex + 1);

 var t = gpxTrack.getlonlat(altiIndex);

 if (altiSource==1)
  {
  loadjsfile('http://ws.geonames.org/srtm3JSON?formatted=true&lat=' + t.y + '&lng=' + t.x + '&style=full&callback=updatealtitude');
  }

 if (altiSource==2)
  {
  loadjsfile('http://ws.geonames.org/astergdemJSON?lat=' + t.y + '&lng=' + t.x + '&callback=updatealtitude');
  }

}



function updatealtitude(robj)
{

 removejsfile('http://ws.geonames.org/');     

 var balt="";

  if(robj == null )
       {
       if (cmaplang == "svk") msgshow("Chyba pri načítaní nadmorskej výšky pre bod trasy č.  " + (altiIndex + 1)  + ". Proces ukončený");
       if (cmaplang == "eng") msgshow("Altitude load error on track point nr. " + (altiIndex + 1)  + ". Proces terminated");
       hideLayer("tracklength");
       return;
       }
    else
       {
       if (altiSource==1) balt = robj.srtm3;
       if (altiSource==2) balt = robj.astergdem;
       }


 if (altiType==-1) 
  {
  gpxTrack.setAltitude(altiIndex,balt);

 
  if (altiIndex>0)
   {
   altiIndex--;
   getaltitude();
   }
  else 
   {
   hideLayer("tracklength");
   altiType=0;
   }
  return;
  }

 

  if (altiType==-2) 
  {
   gpxTrack.setAltitude(altiIndex,balt);

   if (altiIndex<=0)
    {
    hideLayer("tracklength");
    altiType=0;
    return;
    }

   do
    {
     altiIndex--;
     cpalti=gpxTrack.readAltitude(altiIndex);
    }
   while((cpalti!='')&&(altiIndex>0))  
   
   
   if (cpalti=='')
    {
    getaltitude();
    }
   else
    {
    hideLayer("tracklength");
    altiType=0;
    }
 
  return; 
  }


 if (altiType=-3) 
  {
  var e = document.getElementById('malti');
  e.value = balt;
  hideLayer("tracklength");
  altiType=0;
  return; 
  }
 
}







function viewvisibility()
{
 if (document.form2.showviewed.checked)
    {
    if (p102067.equals(map.baseLayer.projection)) vectorLayer2.setVisibility(true);
    if (p900913.equals(map.baseLayer.projection)) vectorLayer.setVisibility(true);
    }
  else
    {
    vectorLayer.setVisibility(false);
    vectorLayer2.setVisibility(false);
    }

 
}



function editvisibility()
{
 if (document.form2.showedited.checked)
    {
    gpxTrack.setVisibility(true);
    //showLayer("tracklength", "block");
    gpxTrack.updateTracklengthDisplay();
    }
  else
    {
    gpxTrack.setVisibility(false);
    hideLayer("tracklength");
    }
}


function textboxvisibility()
{
 if (document.form2.showtextbox.checked)
    {
    showLayer("textbox", "block");
    }
    else
    {
    hideLayer("textbox");
    }
}



function calcdistpoint(lon1,lat1,lon2,lat2)
{
  var r = 3963.0;
  var multiplier = 1.6093; 
  if ((lon1==lon2)&&(lat1==lat2)) return 0;
  else return multiplier * r * Math.acos(Math.sin(lat1/57.2958) * Math.sin(lat2/57.2958) +  Math.cos(lat1/57.2958) * Math.cos(lat2/57.2958) * Math.cos(lon2/57.2958 - lon1/57.2958));
}




//global array - 4profile,trackdetails

var TrackData = new Array();




function drawtrackprofile(trknm,layer)
{
  var e = document.getElementById('ProfileLayer');
  if(( e.style.display!='none' )||(trknm==-2))
   {
    TrackData.length = 0;
    hideLayer("tracklength");
    hideLayer('ProfileLayer');
    jgprofile.clear();
    if (vectorLayerP != null)
     {
     vectorLayerP.destroyFeatures();
     //document.map.removeOverlay(vectorLayerP);
     //map.removeLayer(vectorLayerP);
     //vectorLayerP = null;
     }
    return;
   }

  if (!trknm) return;
  trknm2=parseInt(trknm);
  

 if (layer=="edit")
  {
  var tdata = gpxTrack.getVertices();
  }

 if (layer=="view")
  { 
  if (p102067.equals(map.baseLayer.projection))  var tdata = vectorLayer2.features[trknm2].geometry.getVertices();
  if (p900913.equals(map.baseLayer.projection))  var tdata = vectorLayer.features[trknm2].geometry.getVertices();
  }

 if (typeof(tdata)=='string') return;


  var ysize=150;

  var WS = windowsize();

  xsize=parseInt(WS[0]*0.97);


  var e = document.getElementById('ProfileLayer');
  var wh = WS[1] - ysize - 15;
  e.style.top = wh + 'px';

 
 

 var altmin=9999;
 var altmax=-9999;
 var tdst = 0;
 var dst = 0;
 var gradient=0;

 for(var i=0; i<tdata.length; i++) {
      var minfo = tdata[i];            
   
      if (minfo.z=='')
         {
         if (cmaplang == "svk") msgshow("Niektoré body trasy nemajú definovanú nadmorskú výšku. Profil sa neda zobraziť.");
         if (cmaplang == "eng") msgshow("Some track points are without altitude. Profile can not be displayed.");
         return;
         }
      else
        {   
        var calti = Math.round(parseFloat(minfo.z)*10)/10;
        if (altmin>calti) altmin=calti;
        if (altmax<calti) altmax=calti;
   
         if (i==0) 
          {
          uphill=0;
          downhill=0;
          dst=0;
          gradient=0;
          }
         else
          {
          if (TrackData[i-1][2]<calti)         
           {
           uphill=Math.round((TrackData[i-1][3]+(calti-TrackData[i-1][2]))*10)/10;
           downhill=TrackData[i-1][4];
           }
          else 
           { 
           uphill=TrackData[i-1][3];
           downhill=Math.round((TrackData[i-1][4]+(calti-TrackData[i-1][2]))*10)/10;
           }
           var point1 = new OpenLayers.LonLat(minfo.x,minfo.y);
           point1.transform(map.baseLayer.projection,p4326);
           var point2 = new OpenLayers.LonLat(TrackData[i-1][0],TrackData[i-1][1]);
           point2.transform(map.baseLayer.projection,p4326);
           tdst = calcdistpoint(point1.lon,point1.lat,point2.lon,point2.lat);
           dst= Math.round((TrackData[i-1][5] + tdst)*100)/100;
           gradient = Math.abs(Math.round((TrackData[i-1][2]-calti)/1000/tdst*1000)/10) 
          }
 
        TrackData[i]=new Array(minfo.x,minfo.y,calti,uphill,downhill,dst,gradient);
    
        }
    }


 showLayer('ProfileLayer', 'block');
 

 jgprofile.clear();
 jgprofile.setStroke(2);
 jgprofile.setColor("#000000");


 sumdst=TrackData[tdata.length-1][5];
 difmnm=altmax-altmin;
 jgprofile.setStroke(3);


 

 for (var i = 0; i < tdata.length-1; i++) 
     {
     if((TrackData[i][2]!="")&&(TrackData[i+1][2]!=""))
      {
      if(TrackData[i+1][6]<25) jgprofile.setColor("#000000"); else jgprofile.setColor("red");
      jgprofile.drawLine((TrackData[i][5]/sumdst*xsize),(ysize-((TrackData[i][2]-altmin)/difmnm*ysize)),(TrackData[i+1][5]/sumdst*xsize),(ysize-((TrackData[i+1][2]-altmin)/difmnm*ysize)));
      }
     }
 jgprofile.paint();
}



function profileaction(e) 
{

 if (!e) var e = window.event;
 if (e.layerX || e.layerY)
      {
      offset = e.layerX;
      }
      else if (e.offsetX || e.offsetY)
       {
       offset = e.offsetX;
       } 
document.getElementById('profline').style.left = offset + 'px';

//ukaz bod na mape


 var WS = windowsize();

  xsize=parseInt(WS[0]*0.97);


sumdst=TrackData[TrackData.length-1][5];
curdist=(offset)/xsize*sumdst; 
for (var i = 0; i < TrackData.length-1; i++) 
     {
     if ((curdist>TrackData[i][5])&&(curdist<=TrackData[i+1][5]))
        {
        var cx=TrackData[i][0]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][0]-TrackData[i][0]);
        var cy=TrackData[i][1]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][1]-TrackData[i][1]);
        if ((TrackData[i][2]!="")&&(TrackData[i+1][2]!=""))
          {   
          curhigh=Math.round((TrackData[i][2]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][2]-TrackData[i][2]))*10)/10;
          }
        else curhigh="?";
           
        showLayer("tracklength", "block");
        var e = document.getElementById("tracklength"); 
        var tdst=TrackData[i][5]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][5]-TrackData[i][5]);
        var altc=TrackData[i][2]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][2]-TrackData[i][2]);

 
        if (TrackData[i+1][2]>TrackData[i][2])
         {
         var up=TrackData[i][3]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][3]-TrackData[i][3]);
         var down=TrackData[i][4];
         }
        else
         {
         var up=TrackData[i][3];
         var down=TrackData[i][4]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][4]-TrackData[i][4]);
         }

        var cgrad=TrackData[i+1][6]+"%";

        tdst=Math.round(tdst*10)/10;
        altc=Math.round(altc);
        up=Math.round(up);
        down=Math.round(down);

        e.innerHTML = "" + tdst + "km&nbsp;&nbsp;" + altc + "m&nbsp;&nbsp;&#047;&#092;+" + up + "m&nbsp;&nbsp;&#092;&#047;" + down + "m&nbsp;&nbsp;" + cgrad;

      
       drawselectioncrossOL(cx,cy);
       }
        
        
   }
}



function profileclick(e) 
{
 if (!e) var e = window.event;
 if (e.layerX || e.layerY)
      {
      offset = e.layerX;
       }
      else if (e.offsetX || e.offsetY)
       {
       offset = e.offsetX;
       } 
 var WS = windowsize();

  xsize=parseInt(WS[0]*0.97);

 sumdst=TrackData[TrackData.length-1][5];
 curdist=(offset)/xsize*sumdst; 
  for (var i = 0; i < TrackData.length-1; i++) 
     {
     if ((curdist>TrackData[i][5])&&(curdist<=TrackData[i+1][5]))
        {
        cx=TrackData[i][0]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][0]-TrackData[i][0]);
        cy=TrackData[i][1]+(curdist-TrackData[i][5])/(TrackData[i+1][5]-TrackData[i][5])*(TrackData[i+1][1]-TrackData[i][1]);

        map.setCenter(new OpenLayers.LonLat(cx,cy),map.getZoom());
        }
     }
 
}



//kresli polohovu znacku pri zobrazovani profilu
function drawselectioncrossOL(cx,cy)
{

 bounds = new OpenLayers.Bounds();
 bounds = map.getExtent();

 xakt=cx;
 yakt=cy;
  /*
   minx=map.getExtent().left;
   maxx=map.getExtent().right;
   miny=map.getExtent().bottom;
   maxy=map.getExtent().top;
   alert(bounds.left + " " + bounds.right + " " + xakt +  " " + bounds.top + " " + bounds.bottom + " " + yakt);
   if (((xakt<maxx)&&(xakt>minx))&&((yakt<maxy)&&(yakt>miny)))
  */

   if (bounds.contains(xakt,yakt))
   {
    if (vectorLayerP != null) 
     {
     vectorLayerP.destroyFeatures();
     }
     else
     {
     /* vytvori sa pri inizializacii (multimap.js)
     vectorLayerP = new OpenLayers.Layer.Vector("ProfilBod",{
				 displayInLayerSwitcher: false
        	                 });
     
     map.addLayer(vectorLayerP);     
     */
     }
     var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
            layer_style.fillOpacity = 0.2;
            layer_style.graphicOpacity = 1;
   

     var style_mark = OpenLayers.Util.extend({}, layer_style);
            // if graphicWidth and graphicHeight are both set, the aspect ratio
            // of the image will be ignored
            
            style_mark.graphicWidth = 12;
            style_mark.graphicHeight = 20;
            style_mark.graphicXOffset = -(style_mark.graphicWidth/2);  // this is the default value
            style_mark.graphicYOffset = -style_mark.graphicHeight;   
            style_mark.externalGraphic = "http://cmaps.gpsteam.eu/pic/yellow.png";

      var point = new OpenLayers.Geometry.Point(xakt,yakt);
      var pointFeature = new OpenLayers.Feature.Vector(point,null,style_mark);
      vectorLayerP.addFeatures([pointFeature]);
   }
  else
    if (vectorLayerP != null) 
     {
     vectorLayerP.destroyFeatures();
     }
}




//detaily trasy
function trackdetail(trknm,layer)
{

 if (!trknm) return;
 trknm2=parseInt(trknm);

 if (layer=="edit")
  {
  var tdata = gpxTrack.getVertices();
  }

 if (layer=="view")
  { 
  var tdata = vectorLayer.features[trknm2].geometry.getVertices();
  }

 if (typeof(tdata)=='string') return;



 var altmin=9999;
 var altmax=-9999;
 var tdst = 0;
 var dst = 0;
 var uphill=0;
 var downhill=0;
 var pointprev;
 var pointcur;
 var altprev;
 var cpoint=tdata.length;

 for(var i=0; i<tdata.length; i++) {
        var minfo = tdata[i];            
        
         if ((minfo.z=='')||(altmin=="??"))
          {
	  altmin="??";
          altmax="??";      
          uphill="??";
          downhill="??";
          }
         else
          {  
          var calti = Math.round(parseFloat(minfo.z)*10)/10;
          if (altmin>calti) altmin=calti;
          if (altmax<calti) altmax=calti;
          }


         if (i==0) 
          {
          var pointprev = new OpenLayers.LonLat(minfo.x,minfo.y);
          pointprev.transform(map.baseLayer.projection,p4326);

          if (altmin!="??") altprev=calti;

          } 
          else
          {

           if ((altprev<calti)&&(altmin!="??"))        
            {
            uphill=uphill+(calti-altprev);
            altprev=calti;
            }
         
           if ((altprev>calti)&&(altmin!="??")) 
            { 
            downhill=downhill+(calti-altprev);
            altprev=calti;
            }

 
           var pointcur = new OpenLayers.LonLat(minfo.x,minfo.y);
           pointcur.transform(map.baseLayer.projection,p4326);

           tdst = calcdistpoint(pointprev.lon,pointprev.lat,pointcur.lon,pointcur.lat);
           dst= dst + tdst;
           pointprev=pointcur;
          }
 
    
       
    }


 dst=Math.round(dst*10)/10;
 altmin=Math.round(altmin);
 altmax=Math.round(altmax);
 uphill=Math.round(uphill);
 downhill=Math.round(downhill);


 if (cmaplang == "svk") msgshow("Počet bodov trasy: " + cpoint + "<br>Dĺžka: " + dst + "km<br>Min. nadm. výška: " + altmin + "m<br>Max. nadm. výška: " + altmax + "m<br>Celkové stúpanie: " + uphill + "m<br>Celkové klesanie: " + downhill + "m");
 if (cmaplang == "eng") msgshow("Track points: " + cpoint + "<br>Length: " + dst + "km<br>Min. Altitude: " + altmin + "m<br>Max. Altitude: " + altmax + "m<br>Ascent: " + uphill + "m<br>Descent: " + downhill + "m");
}








//external markers-----------------------------------------------------------------------------------------







var EXTmarkers = [];
var popupOL;



function deleteAllMarkers() {
   
   for(var i = 0; i < EXTmarkers.length; ++i) 
    {
    MarkersLayerEXT.removeMarker(EXTmarkers[i]);
    EXTmarkers[i].destroy();
    }
   
  
  
  EXTmarkers = [];

}






function showAWSdata()
{
 if (document.form8.showAWS.checked)
    {
    deleteAllMarkers();
    getAWSdata();
    }
  else
    {
    deleteAllMarkers();
    }
}



function getAWSdata() 
{
if (!document.form8.showAWS.checked) return;
deleteAllMarkers();

 var bds = map.getExtent();
 var bdswgs=bds.transform(map.baseLayer.projection,p4326);


 var sx1=Math.round(bdswgs.left*100000)/100000;
 var sx2=Math.round(bdswgs.right*100000)/100000;
 var sy1=Math.round(bdswgs.bottom*100000)/100000;
 var sy2=Math.round(bdswgs.top*100000)/100000;
    
 var path="http://trasy.gpsteam.eu/gen/pointgen.phtml?sx1="+sx1+"&sx2="+sx2+"&sy1="+sy1+"&sy2="+sy2;

 removejsfile("http://trasy.gpsteam.eu/gen/pointgen.phtml");
 loadjsfile(path);


}






function drawAWSmarkers() 
{
 for(var i = 0; i < t.length; ++i) {
  var tLL = new OpenLayers.LonLat(t[i][3],t[i][4]).transform(p4326,map.baseLayer.projection); 

  if (t[i][0]=="track")
   {
   var markerOL = new OpenLayers.Marker(tLL,greeniconOL.clone());
   if (cmaplang == "eng") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?trasa=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu track Nr.' + t[i][1] + '</a> <br>  ' +   t[i][6] + 'km  ascent:'; 
    }
   if (cmaplang == "svk") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?trasa=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu trasa č.' + t[i][1] + '</a> <br>  ' +   t[i][6] + 'km  stúpanie:'; 
    }
   if (cmaplang == "eng") 
    {
    desc = desc +  t[i][7] + 'm <br>' + t[i][2] + '<br><p class="popinfo"><br>Click marker to upload track to ViewTracks</p>';
    }
   if (cmaplang == "svk") 
    {
    desc = desc +  t[i][7] + 'm <br>' + t[i][2] + '<br><p class="popinfo"><br>Kliknutím na ikonu trasy bude trasa načítaná do Prehliadača</p>';
    }

   MarkersLayerEXT.addMarker(markerOL);
   markerOL.events.register("click", { 'tmarker': markerOL, 'teLL': tLL,'string': t[i][5] } , mouseclickOL);
   markerOL.events.register("mouseover", { 'tmarker': markerOL, 'teLL': tLL, 'string': desc } , mouseoverOL);
   //markerOL.events.register("mouseout", { 'tmarker': markerOL, 'teLL': tLL } , mouseoutOL); 
   EXTmarkers.push(markerOL);
   }


   if (t[i][0]=="point")
   {
   var markerOL = new OpenLayers.Marker(tLL,rediconOL.clone());
   if (cmaplang == "eng") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?bod=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu point Nr.' + t[i][1] + '</a> <br>'; 
    desc = desc +'<b> '+ t[i][7] + '</b><br>' + t[i][3] + ' ' + t[i][4] + ' alt: '+ t[i][5] +'m';
    }
   if (cmaplang == "svk") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?bod=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu bod č.' + t[i][1] + '</a> <br>'; 
    desc = desc +'<b> '+ t[i][7] + '</b><br>' + t[i][3] + ' ' + t[i][4] + ' výška: '+ t[i][5] +'m';
    } 
   MarkersLayerEXT.addMarker(markerOL);
   //markerOL.events.register("click", { 'tmarker': markerOL, 'teLL': tLL,'string': t[i][5] } , mouseclickOL);
   markerOL.events.register("mouseover", { 'tmarker': markerOL, 'teLL': tLL, 'string': desc } , mouseoverOL);
   //markerOL.events.register("mouseout", { 'tmarker': markerOL, 'teLL': tLL } , mouseoutOL); 
   EXTmarkers.push(markerOL);
   }


   if (t[i][0]=="track-comment")
   {
   var markerOL = new OpenLayers.Marker(tLL,blueiconOL.clone());
   if (cmaplang == "eng") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?trasa=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu track Nr.' + t[i][1] + '</a>'; 
    }
   if (cmaplang == "svk") 
    {
    var desc = '<a href="http://trasy.gpsteam.eu/index.html?trasa=' + t[i][1] + '" target="_blank" class="poplink">trasy.gpsteam.eu trasa č.' + t[i][1] + '</a>'; 
    }

   if (cmaplang == "eng") 
    {
    desc = desc + '<p class="popinfo">Track comment with GPS data</p>' +t[i][6] + '<br><p class="popinfo"><br>Click marker to upload track to ViewTracks</p>';
    }
   if (cmaplang == "svk") 
    {
    desc = desc + '<p class="popinfo">Poznámka k trase s GPS dátami</p>' +t[i][6] + '<br><p class="popinfo"><br>Kliknutím na ikonu trasy bude trasa načítaná do Prehliadača</p>';
    }
   MarkersLayerEXT.addMarker(markerOL);
   markerOL.events.register("click", { 'tmarker': markerOL, 'teLL': tLL,'string': t[i][5] } , mouseclickOL);
   markerOL.events.register("mouseover", { 'tmarker': markerOL, 'teLL': tLL, 'string': desc } , mouseoverOL);
   //markerOL.events.register("mouseout", { 'tmarker': markerOL, 'teLL': tLL } , mouseoutOL); 
   EXTmarkers.push(markerOL);
   }

 }

 t = null;
}




function mouseclickOL(evt)
{
removejsfile('http://trasy.gpsteam.eu/gen/filegen.phtml');     
loadjsfile('http://trasy.gpsteam.eu/gen/filegen.phtml?filename=' + this.string + '&center2track=0');

//lnk="http://trasy.gpsteam.eu/mtb/wdetail.phtml?id="+tid;
//okno=window.open(lnk,Math.round(Math.random()*1000000),"menubar=no,scrollbars=yes,resizable=yes,toolbar=no,location=no,top=10,left=10,width=720,height=420");
}        



function mouseoverOL(evt)
{
             // check to see if the popup was hidden by the close box
             // if so, then destroy it before continuing
            if (popupOL != null) 
                {
                    MarkersLayerEXT.map.removePopup(popupOL);
                    popupOL.destroy();
                    popupOL = null;
                }
            else
               {
                popupOL = new OpenLayers.Popup("chicken",this.teLL,new OpenLayers.Size(250,150),"example popup",true);
                //popupOL.setContentHTML("<a href='http://www.somethingconstructive.net' target='_blank'>click me</a>");
                popupOL.setContentHTML(this.string);
                popupOL.setBackgroundColor("gold");
                popupOL.setBorder("2px dotted grey");
                //popupOL.setOpacity(0.7);
                MarkersLayerEXT.map.addPopup(popupOL);
               } 

            OpenLayers.Event.stop(evt);

}    



function mouseoutOL(evt)
{
        if (popupOL != null) 
          {
                   MarkersLayerEXT.map.removePopup(popupOL);
                   popupOL.destroy();
                   popupOL = null;
                
          }
          
        OpenLayers.Event.stop(evt);

}    











