Event.observe(window, "load", initGmap);
Event.observe(window, "unload", GUnload);

function initGmap(e)
{
  if(map_class)
  {
    var gmaps = $$(map_class);
    if(gmaps.length>0)
    {
      locateGmaps(gmaps);
    }
  }
  else
  {
    var gmap = $(map_div);
    
    if(gmap)
    {
      locateGmap(gmap);
    }
  }
}

function locateGmap(gmap)
{
  var mapobj = new GMap2(gmap);
  mapobj.addControl(new GLargeMapControl());
  if(markers.length>0)
  {
    mapobj.setCenter(new GLatLng(markers[0].y, markers[0].x), 13);
    locateMarkers(mapobj);
  }
  else
  {
    mapobj.setCenter(new GLatLng(center_y, center_x), 13);
  }
  if(gmap_editable)
  {
    GEvent.addListener
    (
      mapobj, "click", 
      function(current_icon, geopoint)
      { 
        if(current_icon)
        {
          mapobj.removeOverlay(current_icon); 
        }
        else
        {
          locatePointer(mapobj, geopoint);
        } 
      }
    );
  }
}

function locateMarkers(mapobj)
{
  var i = 0;
  for(i=0;i<markers.length;i++)
  {
    var marker = new GMarker(new GLatLng(markers[i].y, markers[i].x));
    mapobj.addOverlay(marker);
    if(markers[i].caption!='')
    {
      if(markers.length==1)
      {
        marker.openInfoWindow(markers[i].caption);
      }
      else
      {
        marker.bindInfoWindow(markers[i].caption);
      }
    }
  }
}

function locatePointer(mapobj, geopoint)
{
  var icon = new GIcon();
  icon.image      = "/skin/an-mitsu/img/mappointer.png";
  icon.shadow     = "/skin/an-mitsu/img/mappointer.png";
  icon.iconSize   = new GSize(28,32);
  icon.shadowSize = new GSize(28,32);
  icon.iconAnchor = new GPoint(14,32);

  var pointer = new GMarker(geopoint, icon);
  mapobj.clearOverlays();
  mapobj.addOverlay(pointer);
  
  //set value to hidden inputs
  var xinput = $('x');
  xinput.value = geopoint.x;
  var yinput = $('y');
  yinput.value = geopoint.y;
  
}

function setLocation()
{
  var xinput = $('x');
  var yinput = $('y');
  window.returnValue = xinput.value + "," + yinput.value;
  window.close();

}

function locateGmaps(gmaps)
{
  var j = 0;
  for(j=0;j<gmaps.length;j++)
  {
    var mapobj = new GMap2(gmaps[j]);
    mapobj.addControl(new GLargeMapControl());
    if(markers[j])
    {
      mapobj.setCenter(new GLatLng(markers[j].y, markers[j].x), 13);
      locateMarker(mapobj, markers[j]);
    }
    else
    {
      mapobj.setCenter(new GLatLng(center_y, center_x), 13);
    }
  }
}

function locateMarker(mapobj, marker)
{
    var markerobj = new GMarker(new GLatLng(marker.y, marker.x));
    mapobj.addOverlay(markerobj);
    if(marker.caption)
    {
      marker.openInfoWindow(marker.caption);
    }
}
