//var _dispInfo = "";
var _httpoj;
var _map = null;
var _lat;
var _lng;
var _baseIcon = null;
var _maker = null;
var _makerdiv = null;
var _subflag = false;

function dispMap(lat,lng,id,s,flg){
	_map = null;
	_lat = lat;
	_lng = lng;
	_subflag = flg;
	
	if (GBrowserIsCompatible()) {
		_map = new GMap2(document.getElementById("map_canvas"));
		_map.setCenter(new GLatLng(lat, lng), 15);
		_map.addControl(new GSmallMapControl());
//		_map.addControl(new GMapTypeControl());

		if (!_baseIcon) {
	        _baseIcon = new GIcon();
	        _baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	        _baseIcon.iconSize = new GSize(20, 34);
	        _baseIcon.shadowSize = new GSize(37, 34);
	        _baseIcon.iconAnchor = new GPoint(9, 34);
	        _baseIcon.infoWindowAnchor = new GPoint(9, 2);
	        _baseIcon.infoShadowAnchor = new GPoint(18, 25);
	    }
	}
	if (id) {
		requestDb('d='+id+'&s='+s,'post','getContentsInfo.php',true,getdata);
	}
}

function createHttpRequest()
{
  if(window.ActiveXObject){
      try {
          return new ActiveXObject("Msxml2.XMLHTTP"); //[1]'
      } catch (e) {
          try {
              return new ActiveXObject("Microsoft.XMLHTTP"); //[1]'
          } catch (e2) {
              return null;
          }
       }
  } else if(window.XMLHttpRequest){
      return new XMLHttpRequest();
  } else {
      return null;
  }
}

function requestDb( data , method , url , async, func )
{
  _httpoj = createHttpRequest(); //[1]
//  _dispInfo = "";

  _httpoj.open( method , url , async ); //[2]
  _httpoj.onreadystatechange = func;

  _httpoj.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  _httpoj.send( data ); //[3]
}

function getdata()
{
    if (_httpoj.readyState==4)  //[5]
    { 
      if (_httpoj.status==200)
      {
        on_loaded(_httpoj);
      }
    }
}

function dispInfoWin(index) {
	_maker[index].openInfoWindow(_makerdiv[index]);
}

function on_loaded(oj)
{
    dispInfo  = oj.responseText; //[6]

    if (dispInfo != "" && _map) {
        var dispa = dispInfo.split("\t");
        var obj = document.createElement("div");
        obj.innerHTML = dispa[4];
        obj.className="open_info_main";
        var p = new GLatLng(_lat,_lng);
        var mkr = createMarker(p,-1,obj,(!_subflag));

        index = 0;
        var mkdivm = document.getElementById("maker_info_m");
        var mkdiv = document.getElementById("maker_info");
        _maker = [];
        _makerdiv = [];

        var subClass = "";
        if (_subflag) {
            mkdivm.innerHTML="" + dispa[2] + "の周辺情報";
//            subClass = "marker_info_detail";
        } else {
            mkdivm.innerHTML="<a href=\"javascript:dispInfoWin('0');\">" + dispa[2] + "</a>の周辺情報";
//            subClass = "marker_info";
        }
        mkdiv.innerHTML="";
        _maker[0] = mkr;
        _makerdiv[0] = obj;
        for (i = 5; i < dispa.length; i += 5) {
            var mp = new GLatLng(dispa[i],dispa[i + 1]);
//            if(!_map.getBounds().containsLatLng(mp)) break;
            var obj2 = document.createElement("div");
            obj2.innerHTML = dispa[i + 4];
            obj2.className="open_info_main";
            _makerdiv[index+1] = obj2;
            var mkr2 = createMarker(mp,index,obj2,true);
            _maker[index+1] = mkr2;
            _map.addOverlay(mkr2);

//            var letter = String.fromCharCode("A".charCodeAt(0) + index);
            var div = document.createElement("li");
//            div.className = subClass;
            mkdiv.appendChild(div);
            div.innerHTML = "<a href=\"javascript:dispInfoWin('" + (index + 1) + "');\">" + 
                            dispa[i + 2] + "</a> <span>" + dispa[i + 3] + "</span>";
            index++;
        }

        _map.addOverlay(mkr);
//        if (!_subflag)
//            mkr.openInfoWindow(obj);
    }
//    alert(dispInfo);
}

function createMarker(point, index, obj, evtflg) {
  // Create a lettered icon for this point using our icon class
  var letteredIcon = new GIcon(_baseIcon);
  if (index != -1) {
    var letter = String.fromCharCode("A".charCodeAt(0) + index);
    letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
  } else {
    letteredIcon.image = "http://www.google.com/intl/ja_jp/mapfiles/marker.png";
  }
  
  // Set up our GMarkerOptions object
  markerOptions = { icon:letteredIcon };
  var marker = new GMarker(point, markerOptions);

  if (evtflg) {
      GEvent.addListener(marker, "click", function() {
            marker.openInfoWindow(obj);
      });
  }
  return marker;
}

function printMap(param,id) {
	if (!_map) {
		return;
	}
	
	var zoom = _map.getZoom();
	var center = _map.getCenter();
	var url = "map_print.php?" + param + "=" + id + 
	                "&zoom=" + zoom + "&lat=" + center.lat() +
	                "&lon=" + center.lng();
	var wparam = "left=0,top=0,width=750,height="+screen.height+",scrollbars=yes,location=no, menubar=yes";
	window.open(url,'はっちマップ印刷',wparam);
}

