
var map=null;
var RoadCells = new Array;
var ShowOnMapString = 'Просмотр на OSM'; 

function getClientWidth()
{
 return document.documentElement.clientWidth;
}



function getBodyScrollTop1()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}


function InitGMap()
 {
var CenterLat, CenterLong;        
/* Вычисление координат центра текущего квадрата */
var URL = new String (document.title.slice(0, document.title.indexOf(" ")).toLowerCase());
if (URL.slice(0,1) =='n') CenterLat = 56; else CenterLat=60;
if (URL.slice(1,3) =='36') CenterLong=30;
if (URL.slice(1,3) =='37') CenterLong=36;
var SqNumber = parseInt(URL.slice(URL.indexOf('_')+1, URL.length-1));
var RowNum = Math.floor((SqNumber-1)/12)+1;
var ColNum = SqNumber - (RowNum-1)*12;
CenterLat = CenterLat - (RowNum-0.5)*0.333;
CenterLong = CenterLong + (ColNum-0.5)*0.5;

        var mapOptions = {
          center: new google.maps.LatLng(CenterLat, CenterLong),
          zoom: 10,
          mapTypeId: "OSM"
        };
         map1 = new google.maps.Map(document.getElementById("map"),mapOptions);
         
         map1.mapTypes.set("OSM", new google.maps.ImageMapType({
                getTileUrl: function(coord, zoom) {
                    return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
                },
                tileSize: new google.maps.Size(256, 256),
                name: "OpenStreetMap",
                maxZoom: 18
            }));      
         
         
         
      }


function ShowOnMap(filename)
{

document.getElementById('popup_map').style.visibility="visible";

InitGMap();
var trackLayer = new google.maps.KmlLayer(filename, {preserveViewport: true});

trackLayer.setMap(map1);
}


function showComments(number)
{
var commentDiv = document.getElementById('comments');
commentDiv.style.visibility='visible';
/*
commentDiv.style.top = (getBodyScrollTop1()+50)+'px';
commentDiv.style.left ='300px';
*/

}




/*--------------------------------------------------------------------*/
var mapname = new String (document.title.slice(0, document.title.indexOf(" ")).toLowerCase());

/*------------------------------------------------------------------------------------------------------------------*/

/* Заполняем массивы RoadCells и Roads для дальнейшего создания линков на комментирование */
var RoadCounter=0;
var LastComment;
var LastCommentContent;
var AllCells = document.getElementsByTagName('td');
for (var i=0; i<AllCells.length;i++)
{
if (AllCells[i].className=='road_route')
 {
   RoadCells[RoadCounter] = AllCells[i]
   RoadCounter++
 }
}


/*  Добавляем к ссылкам на треки возможность их просмотра в GM */
var AllTDs = document.getElementsByTagName('td');
var KMLTracks = new Array;
var KMLTracksCounter=0;
for (var i=0;i<AllTDs.length;i++)
{
if (AllTDs[i].className=='road_route')
 {
 
 
 /*запоминаем ссылки на plt-файлы */
 var LinksInCell = AllTDs[i].getElementsByTagName('a');
 var PLTFileLinkHref = new Array;
 var PLTFileLinkText = new Array;
 var ii=0;
  for (var j=0;j<LinksInCell.length;j++)
    {
     if (LinksInCell[j].href.toUpperCase().indexOf('PLT')!=-1)
      {
     PLTFileLinkHref[ii] = LinksInCell[j].href;
     PLTFileLinkText[ii] = LinksInCell[j].innerHTML;
     ii++; 
      }
    }
 /*стираем содержимое ячейки, за исключением текста и ЗАКЛАДОК*/
 var children = AllTDs[i].childNodes 
 for (var j=0;j<children.length;j++)
{
 if ( (children[j].nodeName!='#text') && !((children[j].tagName.toUpperCase()=='A') && (children[j].href=='')))    {
 AllTDs[i].removeChild(children[j]);
 j--
}
}
    
 
/* добавляем новый контент */

AllTDs[i].appendChild(document.createElement('br')); 
AllTDs[i].appendChild(document.createElement('br'));
  for (var j=0;j<PLTFileLinkHref.length;j++)
    {
         var NewPLTFileLink = document.createElement('a');
     var NewPLTFileLinkText = document.createElement('span');
        NewPLTFileLink.href = PLTFileLinkHref[j];
        NewPLTFileLinkText.innerHTML = PLTFileLinkText[j]+' (PLT)';
     var KMLFileName = PLTFileLinkHref[j].slice(0, PLTFileLinkHref[j].lastIndexOf('.'))+'.kml';
     var KMLFileLink = document.createElement('a');       
     var KMLFileLinkText = document.createElement('span');
     KMLFileLink.href=KMLFileName;
     KMLFileLinkText.innerHTML = PLTFileLinkText[j]+' (KML)'
     AllTDs[i].appendChild(NewPLTFileLink); 
     AllTDs[i].appendChild(document.createElement('br'));
     AllTDs[i].appendChild(KMLFileLink);
     NewPLTFileLink.appendChild(NewPLTFileLinkText);
     KMLFileLink.appendChild(KMLFileLinkText);
     KMLTracks[KMLTracksCounter]=KMLFileName;
     KMLTracksCounter++;
     AllTDs[i].appendChild(document.createElement('br'));
     var MapLink=document.createElement('a');
     MapLink.className='maplink';
     MapLink.href= "javascript: ShowOnMap('"+KMLFileName+"')";
     AllTDs[i].appendChild(MapLink); 
     var MapLinkText=document.createElement('span');
     MapLinkText.innerHTML = ShowOnMapString; 
     MapLink.appendChild(MapLinkText); 
      
     AllTDs[i].appendChild(document.createElement('br'));
     AllTDs[i].appendChild(document.createElement('br'));
          
     }
  
 }

}

/* Добавляем название текущего квадрата в заголовок псевдоокна с картой */
document.getElementById('mapheader').innerHTML+=' - '+document.title.toUpperCase();

for (var i=0; i<RoadCells.length;i++)
{

/*Добавляем в каждую строку линк для комментирования и соответвующий div */ 
var CommentCell = RoadCells[i].parentNode.cells[2];
CommentCell.innerHTML = CommentCell.innerHTML + '<hr>';
CommentCell.innerHTML = CommentCell.innerHTML+ ' <a class="comment_link" onclick= "showComments('+i+')" href="../road_comments.html'+'?'+mapname+'?'+i+'#disqus_thread" target="I1">Комментарии</a>';
}

/*  в случае наличия в адресе фрагмента типа ?название нас. пункта обеспечиваем выделение этого названия в тексте и проктурку контента до него */
var adr = document.location.href;
if (adr.indexOf('?') !=-1)
   {
    var StringScrollTo = unescape(adr.slice(adr.indexOf('?')+1, adr.length));
    var AllCells = document.getElementsByTagName('td');
    for (var i=0; i<AllCells.length; i++)
     {
     if ((AllCells[i].className == 'road_route') && (AllCells[i].innerHTML.indexOf(StringScrollTo)!=-1))
        {
         
        /* создаем "левую" ссылку, чтобы потом перевести фокус на нее и обеспечив прокрутку страницы*/
        AllCells[i].innerHTML = AllCells[i].innerHTML + '<a id="found" href="#">  </a>';
        document.getElementById('found').focus();
        
        /* прокручиваем страницу дополнительно на 200 px для удобства */
        window.scrollBy(0,200);        
        
        /* Выделяем найденный фрагмент текста, создавая тег span со стилем FoundLink */
        AllCells[i].innerHTML = AllCells[i].innerHTML.slice(0, AllCells[i].innerHTML.indexOf(StringScrollTo))+ '<span class = "FoundLink">'+ StringScrollTo + '</span>'+ AllCells[i].innerHTML.slice(AllCells[i].innerHTML.indexOf(StringScrollTo)+StringScrollTo.length, AllCells[i].innerHTML.length)
        }
     }
   }



/*-------------------------------------------------------------*/
var xd=0;
var yd=0;
var OldLeft, OldTop;
var DraggableElement ;

function ClosePopUp(element_id)
{
document.getElementById(element_id).style.visibility="hidden";
}

function Drag()
{
DraggableElement.style.left = parseInt(OldLeft)+parseInt(window.event.clientX)-parseInt(xd)+'px';
DraggableElement.style.top = parseInt(OldTop)+parseInt(window.event.clientY)-parseInt(yd)+'px';
}

function StartDrag(element_id)
{
DraggableElement = document.getElementById(element_id);
xd = window.event.clientX;
yd = window.event.clientY;
OldLeft = DraggableElement.style.left;
OldTop = DraggableElement.style.top;
document.body.onmousemove = Drag;
document.body.onmouseup = StopDrag;
}

function StopDrag()
{
document.body.onmousemove = null;
document.body.onmouseup=null;
}