/**
 * 観光情報検索
 */
var map;
var gmarkerGenre = new Array(9);
var htmlGenre = new Array(9);
var gmarkerTarget = new Array(3);
var htmlTarget = new Array(3);

// 初期表示
$("document").ready(function(){
	// googlemapを表示
	map = new GMap( document.getElementById( "googlemap" ) );
	map.addControl( new GSmallMapControl() );
	map.centerAndZoom( new GPoint(138.792422, 34.912516), 5 );
	
	// 観光スポットを非表示
	$( 'div#cnt_searchspot div.bg' ).css( 'height','120px' );
});

// ジャンルクリック
function onGenreClk( value ){
	chkFlg = $( "#genre_"+value ).attr( 'checked' );
	
	if( chkFlg )
	{
		// markerの追加
		setGmakerInfo( "genre", value );
	}
	else
	{
		// markerの削除
		setDelMarker( "genre", value );
	}
	
	return false;
}

// ターゲットクリック
function onTargetClk( value ){
	chkFlg = $( "#target_"+value ).attr( 'checked' );
	if( chkFlg )
	{
		// markerの追加
		setGmakerInfo( "target", value );
	}
	else
	{
		// markerの削除
		setDelMarker( "target", value );
	}
	return false;
}

// markerの追加
function setGmakerInfo( mode, value ){
	// ajax
	$.ajax({
		type: "POST",
		url: "./getMapData.php",
		data: "mode="+mode+"&value="+value,
		success: function( mapData ){
			if(mapData == "\n")
			{
				// 取得情報が無ければ終了
				return;
			}
			
			// 座標とマップHTMLの分割
			mapData = mapData.split( "\n" );
			
			// 1つ分に分割
			mapPoint = mapData[0].split( "\t" );
			mapHtml = mapData[1].split( "\t" );
			
			if( mode == "genre" )
			{
				// マップhtmlを配列に追加
				htmlGenre[ value ] = mapHtml;
				
				// 座標の登録
				gmarkerGenre[ value ] = new Array( mapPoint.length );
				for( nCnt = 0; nCnt < mapPoint.length; nCnt++)
				{
					// 座標の分割
					point = mapPoint[ nCnt ].split( ":" );
					tmpHtml = htmlGenre[ value ][ nCnt ];
					gmarkerGenre[ value ][ nCnt ] = createMarker( point[0], point[1], tmpHtml );
					map.addOverlay( gmarkerGenre[ value ][ nCnt ] );
				}
			}
			else
			{
				// マップhtmlを配列に追加
				htmlTarget[ value ] = mapHtml;
				
				// 座標の登録
				gmarkerTarget[ value ] = new Array( mapPoint.length );
				for( nCnt = 0; nCnt < mapPoint.length; nCnt++ )
				{
					// 座標の分割
					point = mapPoint[ nCnt ].split( ":" );
					tmpHtml = htmlTarget[ value ][ nCnt ];
					gmarkerTarget[ value ][ nCnt ] = createMarker( point[0], point[1], tmpHtml );
					map.addOverlay( gmarkerTarget[ value ][ nCnt ] );
				}
			}
			
		},
		error: function(){
			alert("マップ情報を取得できませんでした。");
		}
	});
}

function createMarker( point01, point02, html )
{
	var icon = new GIcon();
	icon.image = "../images/map/mapicn_sightseeing.png";
	icon.shadow = "../images/map/shadow.png"; //影画像パス
	icon.iconSize = new GSize( 32, 39 );
	icon.iconAnchor = new GPoint( 52, 39 );
	icon.iconAnchor       = new GPoint(16, 39); //アイコンの表示開始位置（0,0）は左上角から
	var marker = new GMarker( new GPoint( point01, point02 ), icon );
	GEvent.addListener( marker, 'click', function(){
		myclick( point01, point02, html );
	} );
	return marker;
}

// markerの削除
function setDelMarker( mode, value )
{
	if( mode == "genre" )
	{
		if( gmarkerGenre[ value ] == null )
		{
			return;
		}
		for( nCnt = 0; nCnt < gmarkerGenre[ value ].length; nCnt++ )
		{
			map.removeOverlay( gmarkerGenre[ value ][ nCnt ] );
		}
		
	}
	else
	{
		if( gmarkerTarget[ value ] == null )
		{
			return;
		}
		for( nCnt = 0; nCnt < gmarkerTarget[ value ].length; nCnt++ )
		{
			map.removeOverlay( gmarkerTarget[ value ][ nCnt ] );
		}
	}
}

// markerクリック時
function myclick( point01, point02, sHtml )
{
	map.centerAndZoom( new GPoint( point01, point02 ), 1 );
	var bg = $( '#cnt_searchspot div.bg' );
	bg.html( sHtml );
	bg.css( 'display', 'block' );
}

