/*
 * ora - javascript pro hledani trasy
 * 14.3.2011
 */

var spojnice=null, nalezena_trasa;
var m_start, m_end;
var gMap;
var state=-1;
function hledani_init()
{
  center = new GLatLng(0,0);
  m_start = new GMarker(center, {
    draggable: true
  });
  m_end = new GMarker(center, {
    draggable: true
  });

  GEvent.addListener(m_start, "drag", function(lng) {
    reloadSpojnice()
  });
  GEvent.addListener(m_end, "drag", function(lng) {
    reloadSpojnice()
  });
}


function reloadSpojnice()
{
  if (spojnice)    {
    gMap.removeOverlay(spojnice);
    spojnice=null;
  }
  spojnice = new  GPolyline([  m_start.getLatLng(), m_end.getLatLng(), ], "#AA0000", 3);
  gMap.addOverlay(spojnice);
}

function addLatLng(overlay , latlong) {
  if (state > 1 || state < 0) return;

  var actual;

  if (state == 0)  actual = m_start;
  else   actual = m_end;

  gMap.addOverlay(actual);
  actual.setLatLng(latlong);

  if (state == 1) reloadSpojnice();

  state++;
  if (state > 1) {
    document.getElementById('path_submit').disabled = false;
    document.getElementById('path_list').disabled = false;
  }
}

function clearIt() {
  gMap.removeOverlay(m_start);
  gMap.removeOverlay(m_end);
  if (spojnice) gMap.removeOverlay(spojnice);

  state = 0;
  document.getElementById('path_submit').disabled = true;
  document.getElementById('path_list').disabled = true;

  document.getElementById('path_lat0').value = "";
  document.getElementById('path_lon0').value = "";
  document.getElementById('path_lat1').value = "";
  document.getElementById('path_lon1').value = "";
}

var addhandle;
function showPathCtr() {
  var ctr = document.getElementById('path_ctr');
  if (state >= 0) {
    clearIt();
    ctr.style.visibility = "hidden";
    document.getElementById("trasabtn").innerHTML = "Trasa &rsaquo;&rsaquo;";
    state = -1;
    if (gMap && addhandle)
      GEvent.removeListener(addhandle);
  }
  else {
    clearIt();
    ctr.style.visibility = "visible";
    document.getElementById("trasabtn").innerHTML = "Trasa &lsaquo;&lsaquo;";
    if (gMap)
      addhandle=GEvent.addListener(gMap, "click",  addLatLng);
  }
}
function submitSearch() {
  document.getElementById('path_lat0').value = spojnice.getVertex(0).lat();
  document.getElementById('path_lon0').value = spojnice.getVertex(0).lng();
  document.getElementById('path_lat1').value = spojnice.getVertex(1).lat();
  document.getElementById('path_lon1').value = spojnice.getVertex(1).lng();

  document.getElementById('main_form').submit();
}

function showListing()
{
  var path = 'Trasa.jsp?path_lat0='+spojnice.getVertex(0).lat()+
  '&path_lon0='+spojnice.getVertex(0).lng()+
  '&path_lat1='+spojnice.getVertex(1).lat()+
  '&path_lon1='+spojnice.getVertex(1).lng();

  window.open (path, 'Trasa');
}
