﻿
////////////////////////////////////////////////////////////////////
// マップの初期化
////////////////////////////////////////////////////////////////////
function initGMap2( mapId, lat, lng, zoomLevel, mapTypeNum ){

  if( lat == null ){ lat = 35; }
  if( lng == null ){ lng = 135; }
  if( zoomLevel == null ){ zoomLevel = 7; }
  if( mapTypeNum == null ){ maptypeNum = 0; }
  var mapType = mapTypeNum2MapType( mapTypeNum );
  var map = new GMap2( document.getElementById( mapId ) );
  map.addControl( new GLargeMapControl() );
  map.addControl( new GScaleControl() );
  map.addControl( new GMapTypeControl() );
  map.setCenter( new GLatLng( lat, lng ), zoomLevel, mapType );
  return map;

}


////////////////////////////////////////////////////////////////////
// ウィンドウ付きマーカーの作成
////////////////////////////////////////////////////////////////////
function makeInfoMarker( latlng, icon, html, iwo, precode ){
  var marker = new GMarker( latlng, icon );
  GEvent.addListener( marker, 'click', function() { if( precode != null ){ precode(); } marker.openInfoWindowHtml( html, iwo ); } );
  return marker;
}


////////////////////////////////////////////////////////////////////
// マップタイプ番号からマップタイプを得る
////////////////////////////////////////////////////////////////////
function mapTypeNum2MapType( mapTypeNum ){
  return G_DEFAULT_MAP_TYPES[mapTypeNum];
}


////////////////////////////////////////////////////////////////////
// マップタイプからマップタイプ番号を得る
////////////////////////////////////////////////////////////////////
function mapType2MapTypeNum( mapType ){
  for( var i=0; i<G_DEFAULT_MAP_TYPES.length; i++ ){
    if( G_DEFAULT_MAP_TYPES[i] == mapType ){ return i; };
  }
  return -1;
}


////////////////////////////////////////////////////////////////////
// 同期 HTTP GET
////////////////////////////////////////////////////////////////////
function getSyncHTTP( url, param ){

  if( param != null ){
    url += '?';
    for( var i=0; i<param.length; i++ ){
      var name = escape( param[i][0] );
      var value = escape( param[i][1] );
      url += name + '=' + value + '&';
    }
  }

  var req = GXmlHttp.create();
  req.open("GET", url, false );
  req.send( null );
  return req;

}


////////////////////////////////////////////////////////////////////
// 非同期 HTTP GET
////////////////////////////////////////////////////////////////////
function getAsyncHTTP( url, param, callback ){

  if( param != null ){
    url += '?';
    for( var i=0; i<param.length; i++ ){
      var name = escape( param[i][0] );
      var value = escape( param[i][1] );
      url += name + '=' + value + '&';
    }
  }

  var req = GXmlHttp.create();
  req.onreadystatechange = 
    function onGetResponse() {
      if (req.readyState != 4) { return;}
        callback( req );
    };
  req.open("GET", url, true);
  req.send( null );
}

