// 0 )
			{
				strHtml += "■";
			}
			if( intLvl > 1 )
			{
				strHtml += "■";
			}
			if( intLvl > 2 )
			{
				strHtml += "■";
			}
			if( intLvl > 3 )
			{
				strHtml += "■";
			}
			if( intLvl > 4 )
			{
				strHtml += "■";
			}
			if( intLvl > 5 )
			{
				strHtml += "■";
			}
			if( intLvl > 6 )
			{
				strHtml += "■";
			}
			document.getElementById( "meter" ).innerHTML = strHtml;
//				document.getElementById( "meter" ).style.display = "block";
		}
	}
	
	/////////////////////////////////////////////////////
	// short cut
	var objSC = {
		// 
		fHtml: function()
		{
			// 
			if( document.getElementById( "map_shortcut" ).style.display != "none" )
			{
				var objBounds = gobjGMap.getBounds();
				var objSW = objBounds.getSouthWest();
				var objNE = objBounds.getNorthEast();
				var objMarker;
				
				// 
				var arrCatCB = document.getElementsByName( "cat_cb" );
				var arrCatVal = [];
				var intMax = arrCatCB.length ? arrCatCB.length : 0;
				for( var i = 0; i < intMax; i++ )
				{
					// 
					if( arrCatCB[i].checked )
					{
						arrCatVal.push( arrCatCB[i].value );
					}
				}
				// 上部一覧読み込み
				var strUrl = "scut.php";
				var strPrms = "sw_lat=" + objSW.lat() + "&sw_lon=" + objSW.lng() + "&ne_lat=" + objNE.lat() + "&ne_lon=" + objNE.lng() + "&cat=" + arrCatVal.join( "," ) + "&mnum=" + ( document.fmnum.markers.value < 20 ? document.fmnum.markers.value : 20 );
				// 
				$.ajax({
					url: strUrl + "?" + strPrms,
					cache: false,
					dataType: "json",
					success: function( objRes )
					{
						// 
						if( objRes.error.code != 0 )
						{
							alert( "エラー\n" + objRes.error.desc );
							return;
						}
						// 
						document.getElementById( "marker_sc" ).style.display ="none";
						document.getElementById( "marker_sc" ).innerHTML = "";
						if( objRes.data.page != "" )
						{
							document.getElementById( "marker_sc" ).innerHTML = objRes.data.page;
							document.getElementById( "marker_sc" ).style.display ="block";
						}
					}
				});
			}
		},
		// 
		fSwitch: function()
		{
			// 
			if( document.getElementById( "map_shortcut" ).style.display == "none" )
			{
				document.getElementById( "map_sc_title" ).innerHTML = "▼マーカー一覧を非表示";
				document.getElementById( "map_shortcut" ).style.display ="block";
				document.getElementById( "map_shortcut" ).innerHTML = "
表示中の最新マーカー
";
				objSC.fHtml();
				// 
				fSetCookie( "m_sc", "0", 60 * 60 * 24 * 365 );
			}
			else
			{
				document.getElementById( "map_sc_title" ).innerHTML = "▼マーカー一覧を表示";
				document.getElementById( "map_shortcut" ).innerHTML = "";
				document.getElementById( "map_shortcut" ).style.display ="none";
				// 
				fSetCookie( "m_sc", "1", 60 * 60 * 24 * 365 );
			}
		}
	}
	
	/////////////////////////////////////////////////////
	// markers 
	function cMk()
	{
		// 
		this.arrMarkers = new Array();
		
		// 
		this.fDeploy = function()
		{
			// meter
			objMt.fMeter( 0 );
			
			// 
			var objBounds = gobjGMap.getBounds();
			var objSW = objBounds.getSouthWest();
			var objNE = objBounds.getNorthEast();
			var objMarker;
			
			// meter
			objMt.fMeter( 1 );
			
			// 
			var arrCatCB = document.getElementsByName( "cat_cb" );
			var arrCatVal = [];
			var intMax = arrCatCB.length ? arrCatCB.length : 0;
			for( var i = 0; i < intMax; i++ )
			{
				// 
				if( arrCatCB[i].checked )
				{
					arrCatVal.push( arrCatCB[i].value );
				}
			}
			
			// meter
			objMt.fMeter( 2 );
			
			// マーカー読み込み
			var strUrl = "mark.php";
			var strPrms = "sw_lat=" + objSW.lat() + "&sw_lon=" + objSW.lng() + "&ne_lat=" + objNE.lat() + "&ne_lon=" + objNE.lng() + "&cat=" + arrCatVal.join( "," ) + "&mnum=" + document.fmnum.markers.value;
			// 
			$.ajax({
				url: strUrl + "?" + strPrms,
				cache: false,
				dataType: "json",
				success: function( objRes )
				{
					// meter
					objMt.fMeter( 3 );
					// meter
					objMt.fMeter( 4 );
					// 
					if( objRes.error.code != 0 )
					{
						alert( "エラー\n" + objRes.error.desc );
						return;
					}
					
					// 
					var arrItem = objRes.data;
					// 
					for( var strKey in gobjMk.arrMarkers )
					{
						// 
						gobjMk.arrMarkers[ strKey ].bolRemain = false;
					}
					
					// meter
					objMt.fMeter( 5 );
					
					// 
					intMax = arrItem.length ? arrItem.length : 0;
					for( var i = 0; i < arrItem.length; i++ )
					{
						// 
						gobjMk.fAddMarker( arrItem[ i ].strMsgId,
										   arrItem[ i ].strKeyCat,
										   arrItem[ i ].strIconNameCat,
										   arrItem[ i ].dblGeoLat,
										   arrItem[ i ].dblGeoLon );
					}
					
					// meter
					objMt.fMeter( 6 );
					gobjMk.fClean();
					// meter
					objMt.fMeter( 7 );
					
				}
			});
			
			objSC.fHtml();
		}
		// 
		this.fAddMarker = function( strMsgId, strKeyCat, strCatName, dblLat, dblLon )
		{
			// 
			if(!gobjMk.arrMarkers[ strMsgId ])
			{
				objMarker = new google.maps.Marker({
					position: new google.maps.LatLng(dblLat, dblLon),
					map: gobjGMap,
					icon: garrIcon[ strKeyCat ],
					title: strCatName
				});
				objMarker.strMsgId = strMsgId;
				// 
				google.maps.event.addListener(	objMarker,
												"click",
												function()
												{
													gobjMk.fBlowUp( this.strMsgId )
												});
				gobjMk.arrMarkers[ strMsgId ] = objMarker;
			}
			gobjMk.arrMarkers[ strMsgId ].bolRemain = true;
		}
		// 
		this.fSearched = function( strMsgId, strKeyCat, strCatName, dblLat, dblLon )
		{
			var arrCatCB = document.getElementsByName( "cat_cb" );
			var intMax = arrCatCB.length ? arrCatCB.length : 0;
			for( var i = 0; i < arrCatCB.length; i++ )
			{
				// 
				if( arrCatCB[i].value == strKeyCat )
				{
					// 
					arrCatCB[i].checked = true;
				}
			}
			
			// 
			gobjMk.fAddMarker( strMsgId, strKeyCat, strCatName, dblLat, dblLon  );
			gobjMk.fBlowUp( strMsgId );
			
			// 
			return true;
		}
		// 
		this.fBlowUp = function(strMsgId)
		{
			if(gobjInfoWindow && gobjInfoWindow[ "key" ] == strMsgId)
			{
				return;
			}
			
			closeInfoWindow();
			
			// 
			$.ajax({
				url: "blow.php?id=" + strMsgId,
				cache: false,
				dataType: "json",
				success: function( objRes )
				{
					if( objRes.error.code != 0 )
					{
						alert( "エラー\n" + objRes.error.desc );
						return;
					}
					
					gobjInfoWindow = [];
					gobjInfoWindow[ "key" ] = strMsgId;
					var infoWindow = new google.maps.InfoWindow({
						content: objRes.data.html
					});
					google.maps.event.addListener(infoWindow, "closeclick", function()
					{
						deleteInfoWindow();
					});
					gobjInfoWindow[ "window" ] = infoWindow;
					gobjInfoWindow[ "window" ].open(gobjGMap, gobjMk.arrMarkers[ strMsgId ]);
					
				}
			});
		}
		// 
		this.fClean = function()
		{
			// 
			for(var strKey in gobjMk.arrMarkers)
			{
				if(!gobjMk.arrMarkers[ strKey ].bolRemain)
				{
					if(gobjInfoWindow && gobjInfoWindow[ "key" ] == strKey)
					{
						closeInfoWindow();
					}
					gobjMk.arrMarkers[ strKey ].setMap(null);
					delete gobjMk.arrMarkers[ strKey ];
				}
			}
		}
	}
	
	function closeInfoWindow()
	{
		if(gobjInfoWindow && gobjInfoWindow[ "window" ])
		{
			gobjInfoWindow[ "window" ].close();
		}
		deleteInfoWindow();
	}
	function deleteInfoWindow()
	{
		if(gobjInfoWindow)
		{
			delete gobjInfoWindow[ "key" ];
			delete gobjInfoWindow[ "window" ];
			delete gobjInfoWindow;
		}
		gobjInfoWindow = null;
	}
	
	
	/////////////////////////////////////////////////////
	// search
	var objSearch = {
		// 
		fSearch: function( strQuery )
		{
			
			// 
			if( !document.getElementById( "map_search" ).innerHTML.length )
			{
				// 
				document.getElementById( "map_search" ).style.display ="none";
				document.getElementById( "map_search" ).innerHTML = "";
			}
			// 
			var strPrms = "";
			// 
			if( strQuery != "" )
			{
				strPrms = strQuery;
			}
			else
			{
				var strPrm = document.fsearch.query.value;
				if( strPrm != "" )
				{
					strPrms += "str=" + strPrm;
				}
			}
			// 
			if( strPrms != "" )
			{
				// 
				$.ajax({
					url: "srch.php" + "?" + strPrms,
					cache: false,
					dataType: "json",
					success: function( objRes )
					{
						// 
						if( objRes.error.code != 0 )
						{
							alert( "エラー\n" + objRes.error.desc );
							return false;
						}
						// 
						document.getElementById( "map_search" ).innerHTML = "検索結果" + objRes.data.ix + "
" + objRes.data.page + "
";
						document.getElementById( "map_search" ).style.display ="block";
					}
				});
			}
			// 
			return true;
		}
	}
	
	////////////////////////////////////////////////////////////////////////////////////////
	// geo
	
	// 
	var objGC = {
		
		// 
		fSearch: function()
		{
			// 
			document.getElementById( "map_search" ).style.display ="none";
			document.getElementById( "map_search" ).innerHTML = "";
			
			// 
			if( !document.fgeocode.query.value.length )
			{
				return;
			}
			
			var geocoder = new google.maps.Geocoder(); 
			geocoder.geocode({
				address: "日本 " + document.fgeocode.query.value
			}, function(results, status)
			{
				if(status != google.maps.GeocoderStatus.OK)
				{
					return;
				}
				
				var strHtml = "";
				
				if(results.length)
				{
					var placeMarks = new Array();
					var intMax = results.length;
					for (var i = 0; i < intMax; i++)
					{
						var addressComponents = results[ i ][ "address_components" ];
						var japan = false;
						for(var j = 0; j < addressComponents[ "length" ]; j++)
						{
							if(addressComponents[ j ][ "types" ][ 0 ] == "country" &&
								addressComponents[ j ][ "short_name" ] == "JP")
							{
								japan = true;
								break;
							}
						}
						
						if(!japan)
						{
							continue;
						}
						
						var item = new Array();
						item[ "name" ] = ("" + results[ i ][ "formatted_address" ]).replace("日本, ", "*");
						item[ "latLng" ] = results[ i ][ "geometry" ][ "location" ];
						placeMarks[i] = item;
					}
					
					console.log(placeMarks);
					
					// 
					strHtml += '';
					for(var i = 0; i < placeMarks.length; i++)
					{
						// 
						strHtml += '';
						strHtml += '| ';
						strHtml += "" + placeMarks[ i ][ "name" ] + "";
						strHtml += '';
						strHtml += ' | 
';
					}
					strHtml += '
';
				}
				
				// 
				document.getElementById( "map_search" ).innerHTML = "場所候補
";
				document.getElementById( "map_search" ).style.display ="block";
				
			});
			
			// 
			return true;
		}
	};
        
        google.load("maps",
        "3",{
            "other_params" : "sensor=fakse&libraries=geometry&key=AIzaSyCdvHbGRpAQW0GGzNFgT_-NTKjwSmQXD3I",
//            "key": "AIzaSyCdvHbGRpAQW0GGzNFgT_-NTKjwSmQXD3I",
            "callback" : initMap });
	
//]]>