//nutne zlo mit map jako globalni
var map;

function gmapInit() {
var myLatlng = new google.maps.LatLng(49.4467, 17.182617);
var myOptions = {
  zoom: 6,
  center: myLatlng,
  navigationControl: true,
  navigationControlOptions: {
      style: google.maps.NavigationControlStyle.ZOOM_PAN
      //style: google.maps.NavigationControlStyle.SMALL
  },
  mapTypeControl: true,
  scaleControl: true,
  scrollwheel: false,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

infoWindow = new google.maps.InfoWindow();
}

function addInfowindow(marker)
{
  google.maps.event.addListener(marker, 'click', function() {         
      var infowindow = new google.maps.InfoWindow({
        content: marker.content
      });
      
      infowindow.open(map,marker);         
  });      
}

function gmapShowAll(importedMarkers)
{
  gmapInit();
  for(var i=0; i<importedMarkers.length; i++)
  {
      importedM = importedMarkers[i];
      latlng = new google.maps.LatLng(importedM.lat, importedM.lng);
      var marker = new google.maps.Marker({
        position: latlng, 
        map: map,
        id: importedM.id,
        title: importedM.title,
        content: importedM.content
      });
      //markers[marker.id] = marker;          
      addInfowindow(marker);         
  }
}

function gmapGetEditMarkerLat()
{
  return jQuery("#frm-gps_lat");
}

function gmapGetEditMarkerLng()
{
  return jQuery("#frm-gps_lng")
}

function gmapCreateEditMarker(lat, lng)
{
  var latlng = new google.maps.LatLng(lat, lng);
  
  var marker = new google.maps.Marker({
    position: latlng, 
    map: map,
    draggable: true
  });
  
  google.maps.event.addListener(marker, 'dragend', function(){
      var novaPozice = marker.getPosition();
      gmapMoveMarker(novaPozice.lat(), novaPozice.lng());
  });      
}

function gmapNewEditMarker()
{
  google.maps.event.addListener(map, 'click', function(event){
      if(gmapGetEditMarkerLat().val() == '' || gmapGetEditMarkerLng().val() == '')
      {
          novaPozice = event.latLng;
          gmapMoveMarker(novaPozice.lat(), novaPozice.lng());
          gmapCreateEditMarker(novaPozice.lat(), novaPozice.lng());
      }
  });
}

function gmapEditMarkerInit()
{
  gmapInit();
  var formLat = gmapGetEditMarkerLat();
  var formLng = gmapGetEditMarkerLng();
  
  if(formLat.val() == '' || formLng.val() == '')
  {
      gmapNewEditMarker();
  }
  else
  {
      gmapCreateEditMarker(formLat.val(), formLng.val());
      
  }
}

function gmapMoveMarker(lat, lng)
{
  gmapGetEditMarkerLat().val(lat);
  gmapGetEditMarkerLng().val(lng);
}

