
function LoadMap () {
  var Flg = 0;
  $( 'map_form' ).getElements().each( function ( item ) {
            if ( item.id == "prefecture") {
              Flg = 1;
              return;
            }
        } );

  if (Flg) {
    var params =$F("prefecture").split(',');
  } else {
    var params =$F("region").split(',');
  }

  onLoad(new GLargeMapControl());
  if (parseFloat(params[0]) > 90) {
    Move(new GLatLng( parseFloat(params[1]), parseFloat(params[0]) ), parseFloat(params[2]) );
  } else {
    Move(new GLatLng( parseFloat(params[0]), parseFloat(params[1]) ), parseFloat(params[2]) );
  }
  GEvent.addListener( map, 'dragend', LoadMarker );
  GEvent.addListener( map, 'zoomend', LoadMarker );
}


function LoadMarker () {
  var bounds = map.getBounds();
  var sw     = bounds.getSouthWest();
  var ne     = bounds.getNorthEast();
  var position = sw.lat() + ',' + ne.lat() + ',' +  sw.lng() + ',' + ne.lng();

  $( 'position' ).value = position;
  params = $( 'map_form' ).serialize();
  new Ajax.Request( 'map_json.php', { parameters: params, onComplete: function ( req ) {
    eval( 'var markers = ' + req.responseText );
    map.clearOverlays();
    for ( var i = 0; i < markers.length-1; i++ ) {
      var item = markers[ i ];
      if (item.shop == 1) {
        var point = new GPoint( item.lon_gis, item.lat_gis );
        var marker = CreateShopMarker( point, item.html);
        map.addOverlay( marker );
      } else {
        var point = new GPoint( item.longitude, item.latitude );
        var subcategory_id = item.subcategory[0];
//      var marker = CreateMarker( point, item.spot_id, item.spot_name, item.description_marker, item.image, subcategory_id, item.count, item.promoted_image_id, item.image_url_m);
        var marker = CreateMarker( point, subcategory_id, item.html);
        map.addOverlay( marker );
      }
    }
    document.getElementById("map_list").innerHTML = markers[i];
  } } );
}

function CreateMarker ( point, subcategory_id, html ) {

	var icon = new GIcon();
	icon.image = '/DATA/SUBCATEGORY/' + subcategory_id + '.gif';
	icon.iconSize = new GSize( 22, 28 );
	icon.iconAnchor = new GPoint( 10, 24 );
	icon.infoWindowAnchor = new GPoint( 5, 1 );

	//add
	var marker = new GMarker( point, icon );

	GEvent.addListener( marker, 'click', function() {
		marker.openInfoWindowHtml( html );
	} );
	return marker;
}

function LoadShopMap () {
	var lat =$F("latitude");
	var lon =$F("longitude");
	var zoom =$F("zoom");
	onLoad(new GLargeMapControl());
	MoveShop(new GLatLng( parseFloat(lat), parseFloat(lon) ), parseFloat(zoom) );
	GEvent.addListener( map, 'dragend', LoadShopMarker );
	GEvent.addListener( map, 'zoomend', LoadShopMarker );
}

function MoveShop ( latlng, zoom ) {
  map.setCenter( latlng, zoom );
  LoadShopMarker();
}

function LoadShopMarker () {
	var bounds = map.getBounds();
	var sw     = bounds.getSouthWest();
	var ne     = bounds.getNorthEast();
	var position = sw.lat() + ',' + ne.lat() + ',' +  sw.lng() + ',' + ne.lng();
	var hs_cd =$F("hs_cd");
	var t_cd =$F("t_cd");
	var shop_hidden_zoom = $F('shop_hidden_zoom');
	var now_zoom = map.getZoom();

	$( 'position' ).value = position;
	params = $( 'map_form' ).serialize();
	var filename = 'map_json.php?hs_cd=' + hs_cd + '&t_cd=' + t_cd;
	new Ajax.Request(filename, { parameters: params, onComplete: function ( req ) {
		eval( 'var markers = ' + req.responseText );
		map.clearOverlays();
		for ( var i = 0; i < markers.length; i++ ) {
			var item = markers[ i ];
			if (item.shop == 2) {
				var point = new GPoint( item.tel, item.tnl );
				var marker;
				marker = CreateShopMarker2( point, item.html);
				map.addOverlay( marker );
			} else if (item.shop == 1) {
				if (now_zoom >= shop_hidden_zoom) {
					var point = new GPoint( item.tel, item.tnl );
					var marker;
					marker = CreateShopMarker( point, item.html);
					map.addOverlay( marker );
				}
			} else {
				var point = new GPoint( item.longitude, item.latitude );
				var subcategory_id = item.subcategory[0];
				var marker = CreateMarker( point, subcategory_id, item.html);
				map.addOverlay( marker );
			}
		}
	} } );
}

function CreateShopMarker ( point, html ) {

	var icon = new GIcon();
	icon.image = '/08IMAGES/SHOP/shop.gif';
	icon.iconSize = new GSize( 22, 28 );
	icon.iconAnchor = new GPoint( 10, 24 );
	icon.infoWindowAnchor = new GPoint( 5, 1 );

	//add
	var marker = new GMarker( point, icon );

	GEvent.addListener( marker, 'click', function() {
		marker.openInfoWindowHtml( html );
	} );
	return marker;
}

function CreateShopMarker2 ( point, html ) {

	var icon = new GIcon();
	icon.image = '/08IMAGES/SHOP/own_shop.gif';
	icon.iconSize = new GSize( 22, 28 );
	icon.iconAnchor = new GPoint( 10, 24 );
	icon.infoWindowAnchor = new GPoint( 5, 1 );

	//add
	var marker = new GMarker( point, {zIndexProcess: my_zIndexProcess, icon:icon, clickable : false} );
	marker.mem_zIndex=9999;

	return marker;
}

function my_zIndexProcess(marker){
	return marker.mem_zIndex;
}

// google
var points = [];
var markers = [];
var counter = 0;
var sidebar_html = "";
var marker_html = [];
var to_htmls = [];
var from_htmls = [];
var map = null;
function onLoad( ctrl ) {
  if (GBrowserIsCompatible()) {
    var mapObj = document.getElementById("map");
    if (mapObj != "undefined" && mapObj != null) {
      map = new GMap2(document.getElementById("map"));
      map.addControl(ctrl);
      map.addControl(new GMapTypeControl());
      map.addControl(new GScaleControl());
    }
  } else {
    alert("Sorry, the Google Maps API is not compatible with this browser.");
  }
}


function check() {
     chk = 0;
     for(i = 0; i<document.map_form.elements.length; i++) {
      if((document.map_form.elements[i].name == "subcategory[]") && (document.map_form.elements[i].checked)) { chk = 1;}
     }
     if(chk) { document.getElementById("c_box_recommend").style.display = "";
      } else {
       document.getElementById("c_box_recommend").style.display = "none";
     }
   }
   
