var map;
var stopevent = false;
var markers = new Array();

function getWidth()
{
  return window.innerWidth ? window.innerWidth : document.documentElement.clientWidth;
}
function getHeight()
{
  return window.innerHeight ? window.innerHeight : document.documentElement.clientHeight;
}

function load() {
  if (GBrowserIsCompatible()) {
	  
    var h = this.getHeight();
    var w = this.getWidth();
    h -= 56;
	  
    map = new GMap2(document.getElementById("map"), { size: new GSize(w, h)});
    map.setCenter(new GLatLng(33.59258782619022, 130.40832370519638), 15);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    map.enableContinuousZoom();
    map.enableScrollWheelZoom();

    GDownloadUrl("/ramen/api/map", loadMarker);
  }
}

function loadMarker(doc, stat) {
  var addr = "";
  var lat;
  var lon;
  var tabs = [];
  var idx = 0;

  if (stat != 200) {
    alert("読み取り中にエラーが発生しました。再度読み込みを行ってください。");
    return;
  }
  if (doc == null) return;

  try {
    eval("var loaddata = " + doc);
  } catch (e) {
    alert("読み取り中にエラーが発生しました。再度読み込みを行ってください。");
    return;
  }
  if (loaddata.data.length > 0) {
    for (var i = 0; i < loaddata.data.length; i++) {
	  if (loaddata.data[i] == null) continue;
      lat = loaddata.data[i].lat;
      lon = loaddata.data[i].lng;
      addr = loaddata.data[i].addr;
      var tabs = new Array();
      tabs[0] = new GInfoWindowTab("店舗1",
        "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">" +
        "<tr><td>店舗名:</td><td>" + loaddata.data[i].name + "</td></tr>" +
        "<tr><td>住所:</td><td>" + loaddata.data[i].addr + "</td></tr>" +
        "<tr><td>TEL:</td><td>" + loaddata.data[i].tel + "</td></tr>" +
		"<tr><td colspan=\"2\">&nbsp;</td></tr>" +
		"<tr><td colspan=\"2\" align=\"right\">詳細は<a href=\"/ramen/item_detail/" + loaddata.data[i].id + "\" target=\"_blank\" onclick=\"open_detail('" + loaddata.data[i].id + "'); return false;\">こちら</a></td></tr>" +
        "</table>"
      );
      var marker = makeMarker(
        lat,
        lon,
        tabs
      );
      map.addOverlay(marker);
    }
  }
}

function makeMarker(lat, lon, tabs) {
  var point = new GLatLng(lat, lon);
  var marker = new GMarker(point);

  GEvent.addListener(marker, "click", function() {
//    stopevent = true;
    marker.openInfoWindowTabsHtml(
      tabs
    );
//    stopevent = false;
  });

  return marker;
}
