﻿
function getExtension() {
  var r = "";
  var ex = $get('C_hGotoBoxExtension');
  if (ex != null) {
    r = ex.value;
  }
  return r;
}

function gotoCountry()
{
  var country = $get('L_gb_tbCountry').value;
  $get('up1').style.display = 'block'; 
  Animare.IttVoltam.Web.WebService.Command.GotoCountry(country, OnSucceededGotoCountry, OnFailedGotoCountry);
}
                           
    
function OnSucceededGotoCountry(result)
{
  if (result.code != 0)
  {
    alert(result.message); 
  }
  else
  {
    var start = new GLatLng(result.latitude, result.longitude);
    map.setCenter(start, result.zoomLevel);
    showLatLng(start);
    showZoom();
    
    var country = $get('L_gb_tbCountry').value;
    var markerText = '<div class="marker"><div class="markerHead">' + country + '</div>';
    markerText += "Szélességi fok: " + start.lat() + "<br />";
    markerText += "Hosszúsági fok: " + start.lng();
    markerText += getExtension();
    markerText += "</div>";
    showGotoBoxMarker(start, country, markerText);
  }
  $get('up1').style.display = 'none'; 
} 

function OnFailedGotoCountry(error)
{
  Animare.IttVoltam.Web.WebService.Command.Error(
    error.get_exceptionType(),
    error.get_message(),
    error.get_statusCode(),
    error.get_stackTrace(),
    error.get_timedOut()
  );
  $get('up1').style.display = 'none'; 
  alert(errorMessage);
}     
    
function gotoCity()
{
  var city = $get('L_gb_tbCity').value;
  $get('up1').style.display = 'block'; 
  Animare.IttVoltam.Web.WebService.Command.GotoCity(city, OnSucceededGotoCity, OnFailedGotoCity);
}
                           
    
function OnSucceededGotoCity(result)
{
  if (result.code != 0)
  {
    alert(result.message); 
  }
  else
  {
    var start = new GLatLng(result.latitude, result.longitude);
    map.setCenter(start, result.zoomLevel);
    showLatLng(start);
    showZoom();

    var city = $get('L_gb_tbCity').value;
    var markerText = '<div class="marker"><div class="markerHead">' + city + '</div>';
    markerText += "Szélességi fok: " + start.lat() + "<br />";
    markerText += "Hosszúsági fok: " + start.lng();
    markerText += getExtension();
    markerText += "</div>";
    showGotoBoxMarker(start, city, markerText);
  }
  $get('up1').style.display = 'none'; 
} 

function OnFailedGotoCity(error)
{
  Animare.IttVoltam.Web.WebService.Command.Error(
    error.get_exceptionType(),
    error.get_message(),
    error.get_statusCode(),
    error.get_stackTrace(),
    error.get_timedOut()
  );
  $get('up1').style.display = 'none'; 
  alert(errorMessage);
} 

function gotoPlace()
{
  var latStr = $get('L_gb_tbLatitude').value.replace(",", ".");
  var lngStr = $get('L_gb_tbLongitude').value.replace(",", ".");
  
  try
  {
    var lat = latStr.parseDeg();
    var lng = lngStr.parseDeg();
    var center = new GLatLng(lat, lng)
    map.setCenter(center);
    showLatLng(center);
    var title = "Koordináta: " + center.lat() + " " + center.lng();
    var markerText = '<div class="marker"><div class="markerHead">Koordináta</div>';
    markerText += "Szélességi fok: " + center.lat() + "<br />";
    markerText += "Hosszúsági fok: " + center.lng();
    markerText += getExtension();
    markerText += "</div>";
    showGotoBoxMarker(center, title, markerText);
  }
  catch(e)
  {
    alert("Hibás a megadott koordináta!\nHasználd az alábbi formátumok valamelyikét:\n-34.82248804020\nN 46° 26,313'\n034 49 21 S");
  }
}









function searchStreet(address) {
  if (address == "") {
    var tb = $get('L_gb_tbStreet');
    address = tb.value;
  }

  if (address == "") {
    alert("Írj be egy címet!");
  }
  else {
    var geocoder = new GClientGeocoder();
    if (geocoder) {
      $get('up1').style.display = 'block';
      geocoder.setBaseCountryCode("HU");
      geocoder.getLocations(
        address,
        function(response) {
          $get('up1').style.display = 'none';
          if (!response || response.Status.code != 200) {
            alert("Ez a cím, ebben a formában nem található! (" + response.Status.code + ")\nEllenőrizd, hogy nem gépelted-e el a címet, vagy próbáld másképpen írni, vagy próbáld rövidebben írni (pl.: házszám, vagy utca név nélkül).\nA címeket ilyen formában adhatod meg:\n- Szőlő utca 25, 1034 III. kerület, Budapest, Hungary\n- Budapest, Szőlő utca 25\n- Budapest");
          }
          else {
            if (response.Placemark.length != 1) {
              showList(response);
            }
            else {
              var responseList = $get("responseList");
              responseList.innerHTML = "";

              var place = response.Placemark[0];
              var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
              map.setCenter(point, 16);

              var title = place.address;
              var markerText = '<div class="marker"><div class="markerHead">' + title.replace(',', '<br />').replace(',', '<br />') + '</div>';
              markerText += "Szélességi fok: " + point.lat() + "<br />";
              markerText += "Hosszúsági fok: " + point.lng();
              markerText += getExtension();
              markerText += "</div>";
              showGotoBoxMarker(point, title, markerText);
            }
          }
        }
      );
    }
  }
  setFocus();
}

var gotoBoxMarker = null;
function showGotoBoxMarker(point, title, markerText) {
  var icon = new GIcon();
  icon.image = "http://i.ittvoltam.hu/icon/green.png";
  icon.shadow = "http://i.ittvoltam.hu/icon/shadow.png";
  icon.iconSize = new GSize(20, 34);
  icon.shadowSize = new GSize(37, 34);
  icon.iconAnchor = new GPoint(9, 34);
  icon.infoWindowAnchor = new GPoint(9, 2);
  icon.infoShadowAnchor = new GPoint(18, 25);

  if (gotoBoxMarker != null) {
    map.removeOverlay(gotoBoxMarker);
  }

  gotoBoxMarker = new GMarker(point, { "icon": icon, "title": title });

  GEvent.addListener(gotoBoxMarker, "click",
    function() {
      gotoBoxMarker.openInfoWindowHtml(markerText);
   }
  );
  map.addOverlay(gotoBoxMarker);
  gotoBoxMarker.openInfoWindowHtml(markerText);
}

function setFocus() {
  var tb = $get('L_gb_tbStreet');
  tb.focus();
}

function showList(response) {
  var s = "<br /><b>Válassz az alábbi címek közül:</b><br />";
  var place;
  var responseList = $get("responseList");
  for (i = 0; i < response.Placemark.length; i++) {
    place = response.Placemark[i];
    s += '<br />• <a href="." onclick="searchStreet(\'' + place.address + '\'); event.returnValue = false; return false;">';
    s += place.address;
    s += "</a><br />";
  }
  responseList.innerHTML = s;
}

