// ------------------------------------------------------------------------------------------------------------
// ohamap.htm用のパラメータ設定値およびユーザ関数等
// ------------------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------------------
// 基本設定（汎用 Google Maps API スクリプト「google-map.js」の動作設定用パラメータ等の設定
// ------------------------------------------------------------------------------------------------------------
gmap_import_file		= "ohamap.xml";			//インポートするXMLファイル
gmap_import_path		= "xml/";				//インポートするXMLファイルのパス
gmap_import_cache		= 0;					//XMLファイルのキャッシュの有無
gmap_category_plural	= 1;					//複数カテゴリ選択指定有無
gmap_default_category	= "_plural";			//初期カテゴリ(複数カテゴリ指定用)
gmap_plural_categorys	= "Cat001";				//初期カテゴリ（複数指定化、初期チェックカテゴリと合わせること！）
gmap_category_all_label = "すべて表示";			//カテゴリ・ナビゲーションに表示される同機能のラベルを指定
gmap_default_zoom		= 13;					//初期尺度（0:広域～17:詳細）
gmap_default_lng		= 143.8943338394165;	//初期経度
gmap_default_lat		= 43.80789809597739;	//初期緯度
gmap_item_name			= "地点";				//アイテムの名称
gmap_category_name		= "分類";				//カテゴリの名称
gmap_html_categoryNavi	= "categoryNavi";		//カテゴリ ナビナビゲーション HTMLのID
gmap_html_itemNavi		= "itemNavi";			//アイテム ナビゲーション HTMLのID
gmap_marker_key			= "icon";				//マーカー情報のデータキー
gmap_html_mapInfo_url	= "mapInfo-url";		//マップ情報の「このページのURL」のHTMLタグのID		（省略時非表示）
gmap_html_mapInfo_point	= "mapInfo-point";		//マップ情報の「経度／緯度」のHTMLタグのID			（省略時非表示）
gmap_control_zoom = 1;							//移動とズームの種類
gmap_itemNavi_countColumn = 0; 					//アイテムナビゲーションの先頭の英字欄の表示の有無
gmap_itemNavi_page_items = 30;					//1ページ内に表示するアイテム数
gmap_itemNavi_rowStrips = 1;					//アイテムナビゲーションを1行毎にスタイルを変える 0：無効、1：有効
//gmap_itemNavi_thirdRow = "memo01 %s"; 		//アイテムナビの3列目の値
gmap_itemNavi_thirdRow = ""; 					//アイテムナビの3列目の値
gmap_limit_zoomByMouseWheel = 0;				//マウスホイールによるズームの制限 0:無効、1:有効（制限あり）
gmap_infoWindow_tab		= "【概要】,【詳細】";	//タブのラベル
gmap_search_geocoding = 0;						//住所検索（ジオコーディング）の有無 0:無効、1:有効
gmap_control_overviewMap = 1;					//オーバービューマップの有無 0:オフ、1:オン
gmap_category_autoCentering = 0;				//自動センタリング機能 0:オフ、1:センタリング、2:センタリング及びズーム
gmap_infoWindow_func_moveCenter = 1;			//情報ウィンドウ内の「センタリング」ボタンの有無 0:オフ、1:オン
gmap_infoWindow_func_zoomDetail = 1;			//情報ウィンドウ内の「ズーム」ボタンの有無 0:オフ、1:オン
gmap_mapmoveEnd_userFunction = 1;				//マップ移動完了後のユーザ関数呼出
gmap_zmarking = 1;								//Zマーキング機能の有無 0:オフ、1:オン
gmap_html_search_itemName_textField	= "search-textfield";	//アイテム名検索のテキストフィールドのHTMLタグのID
gmap_html_search_itemName = "keyword";				//検索対象となるアイテムのデータフィールド名

//↓htmファイル側に記述
//センターマーカーの定義
//GMapDataMarker( "_center"  	, "./image/centermarker_standard01.png"	, "./image/centermarker_standard01_shadow.png"	, "" 	,   23 , 23   ,   29 , 29   ,    11 , 11 );
//マーカーの定義　icon="○△" が GMapDataMarker( "○△" ～ に対応
//GMapDataMarker( "Cat001" 	, "./image/item001-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat002" 	, "./image/item002-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat003" 	, "./image/item003-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat004" 	, "./image/item004-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat005" 	, "./image/item005-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat006" 	, "./image/item006-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat007" 	, "./image/item007-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );
//GMapDataMarker( "Cat008" 	, "./image/item008-pt.png" , "./image/standard_shadow.png"	, ""	,   20 , 34   ,   37 , 34   ,     9 , 34   ,   9 , 2 );


// ------------------------------------------------------------------------------------------------------------
// 以下、 ユーザー関数
// ------------------------------------------------------------------------------------------------------------
// ------------------------------------------------------
// ユーザー関数用外部変数
// ------------------------------------------------------
var httpObj;		//HTTP通信用
// ------------------------------------------------------
// マップアイテム - 情報ウィンドウ内HTML生成
// ------------------------------------------------------
function user_GMapItem_makeHTML( data ){
	var result;
	//タイトル部
	result = "<div align=\"left\" style=\"margin-bottom: 5px;  font-size: 100%;  font-weight: bold; color: #000099;\"><img src=\"" + gmap_image_path +"item-list" + data[ "category" ].substring(3,6) + ".gif\" width=\"20\" height=\"20\" border=\"0\" align=\"absmiddle\"  style=\"margin: 0px 5px 2px 0px;\"/>" + data[ "name" ] + "</div>";
	//以下、タブに応じて表示するHTMLを変える
	switch( GMapMap.infoWindow.tabPage ){
		case 1 :	//1枚目のタブ
			if(data[ "img" ]!=''){
				//画像有
				result += "<table border='0' width='300' cellspacing='0' cellpadding='0'><tr>" + 
						  "<td width=\"125\">" + 
						  "<a href=\"" + gmap_itemimage_path + "org-" + data[ "img" ] + "\" rel=\"lightbox\" onclick=\"showLightbox(this); return false;\" title=\"" + data[ "name" ] + "\">" + 
						  "<img src='" + gmap_itemimage_path + data[ "img" ] + "' vspace='3' border='0' style=\"margin: 0px 5px 5px 0\">" + 
						  "</td></a>" + 
						  "<td align=\"left\" style=\"font-size: 75%;  color: #000033; line-height:120%\">" + data[ "memo01" ] + "</td></tr></table>" + 
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">〒" + data[ "addno" ] + " " + data[ "add" ] + "</div>" +
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">TEL:" + data[ "tel" ] + "</div>" + 
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">URL:<a href='" + data[ "url" ] + "' target='_blank'>" + data[ "url" ] + "</a></div>";
			}else{
				//画像無
				result += "<div align=\"left\" style=\"width:300px; margin-bottom: 3px;  font-size: 75%;  color: #000033;\">" + data[ "memo01" ] + "</div>" + 
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">〒" + data[ "addno" ] + " " + data[ "add" ] + "</div>" +
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">TEL:" + data[ "tel" ] + "</div>" + 
						  "<div align=\"left\" style=\"font-size: 75%;  color: #444444;\">URL:<a href='" + data[ "url" ] + "' target='_blank'>" + data[ "url" ] + "</a></div>";
			}
			break;
		case 2 :	//2枚目のタブ
			if(data[ "memo02" ]!=''){
				result += "<div style=\"width:300px; font-size: 75%;  color: #444444;\">" + data[ "memo02" ] + "</div>";
			}else{
				result += "<div style=\"width:300px; font-size: 75%;  color: #444444;\">[詳細情報はありません]</div>";
			}
			break;
	}
	return result;
}
// ------------------------------------------------------
// 独自カテゴリナビ～カテゴリを変更
// ------------------------------------------------------
function user_GMapItem_ChangeCat(checkbox){
	var selcat ="";
	if( document.getElementById("Cat001").checked ){ selcat += "Cat001,"; }
	if( document.getElementById("Cat002").checked ){ selcat += "Cat002,"; }
	if( document.getElementById("Cat003").checked ){ selcat += "Cat003,"; }
	if( document.getElementById("Cat004").checked ){ selcat += "Cat004,"; }
	if( document.getElementById("Cat005").checked ){ selcat += "Cat005,"; }
	if( document.getElementById("Cat006").checked ){ selcat += "Cat006,"; }
	if( document.getElementById("Cat007").checked ){ selcat += "Cat007,"; }
	if( document.getElementById("Cat008").checked ){ selcat += "Cat008,"; }
	if(selcat != ""){
		gmap_plural_categorys = selcat;
		GMapFunc.category.change( null , "_plural" );
	} else {
		window.alert("カテゴリは最低１個以上選択してください。");
		GMapCommon.Event.cancel( event );
	}
}
// ------------------------------------------------------
// 独自カテゴリナビ～標準カテゴリ選択用Selectと選択内容を合わせる
// ------------------------------------------------------
function user_GMapItem_SyncCat(cat){
	if(cat == "_all"){
		document.getElementById("Cat001").checked = true;
		document.getElementById("Cat002").checked = true;
		document.getElementById("Cat003").checked = true;
		document.getElementById("Cat004").checked = true;
		document.getElementById("Cat005").checked = true;
		document.getElementById("Cat006").checked = true;
		document.getElementById("Cat007").checked = true;
		document.getElementById("Cat008").checked = true;
	}else{
		document.getElementById("Cat001").checked = false;
		document.getElementById("Cat002").checked = false;
		document.getElementById("Cat003").checked = false;
		document.getElementById("Cat004").checked = false;
		document.getElementById("Cat005").checked = false;
		document.getElementById("Cat006").checked = false;
		document.getElementById("Cat007").checked = false;
		document.getElementById("Cat008").checked = false;
		if (cat.substring(0,3) == "Cat"){ document.getElementById(cat).checked = true; }
	}
	var selcat ="";
	if( document.getElementById("Cat001").checked ){ selcat += "Cat001,"; }
	if( document.getElementById("Cat002").checked ){ selcat += "Cat002,"; }
	if( document.getElementById("Cat003").checked ){ selcat += "Cat003,"; }
	if( document.getElementById("Cat004").checked ){ selcat += "Cat004,"; }
	if( document.getElementById("Cat005").checked ){ selcat += "Cat005,"; }
	if( document.getElementById("Cat006").checked ){ selcat += "Cat006,"; }
	if( document.getElementById("Cat007").checked ){ selcat += "Cat007,"; }
	if( document.getElementById("Cat008").checked ){ selcat += "Cat008,"; }
	if(selcat != ""){ gmap_plural_categorys = selcat; }
}
// ------------------------------------------------------
// Map移動完了後のユーザ関数～必要に応じて適当に(ここでは現在の座標より、住所を取得して表示している)
// ------------------------------------------------------
function user_GMapmap_moveEnd(){
	var mPoint = GMapMap.gmap.getCenter();	
	cur_lng = mPoint.lng();
	cur_lat = mPoint.lat();
	var cginame;
	var geturl;
	var ag_lng = cur_lng + ""; //文字列に変換
	var ag_lat = cur_lat + "";
	//-------------------------------------------------------------------------------------------------
	//Yahoo地図のリバースジオコーダ利用版～公開していない機能を勝手に使っているので怒られたらやめること
	//緯度経度をYahoo用に変換～世界測地系(Google座標)から日本測地系(Yahoo座標)に変換
	ag_lng = ag_lng.substring(0,ag_lng.indexOf(".")) + ag_lng.substring(ag_lng.indexOf("."),ag_lng.length) ;
	ag_lat = ag_lat.substring(0,ag_lat.indexOf(".")) + ag_lat.substring(ag_lat.indexOf("."),ag_lat.length) ;
	ag_lng -= 0; //数値に変換
	ag_lat -= 0;
	var ag_lat_j = ag_lat + 0.00010696 * ag_lat - 0.000017467 * ag_lng - 0.0046020;
	var ag_lng_j = ag_lng + 0.000046047 * ag_lat + 0.000083049 * ag_lng - 0.010041;
	geturl ="http://map.yahoo.co.jp/geo/lonlat2address?lat=" + ag_lat_j + "&lon=" + ag_lng_j ;
	//-------------------------------------------------------------------------------------------------
	//ちず丸「ここの住所は？」利用版～公開していない機能を勝手に使っているので怒られたらやめること
	//とりあえずテスト版
	//geturl ="http://www.chizumaru.com/czm/currentadr.aspx?x=502779.393&y=128135.353" ; ←座標の指定に注意
	//-------------------------------------------------------------------------------------------------
	// HTTP通信を使って検索結果URLの実行結果を取得する
	httpObj = createXMLHttpRequest(user_HttpRequest_Result_RevGeocoder);
	if (httpObj){
		//XMLHttpRequestで通信可能なのは同一サーバー内に限定されているので一旦CGIをかます必要がある
		cginame = "exe/pageget.exe"; 
		httpObj.open("POST",cginame,true);
		httpObj.send("url=" + geturl);
	}
}
// ------------------------------------------------------
// HTTP通信完了後の処理～座標より取得した住所情報を表示
// ------------------------------------------------------
function user_HttpRequest_Result_RevGeocoder (){
	var Result_Add = "" ;
	if (httpObj.readyState == 4){
		if (httpObj.status == 200){
			//-------------------------------------------------------------------------------------------------
			//Yahoo地図のリバースジオコーダ利用版～公開していない機能を勝手に使っているので怒られたらやめること
			var xmlData = httpObj.responseXML;
			if(xmlData.documentElement.childNodes.length){
				Result_Add = xmlData.getElementsByTagName("gxml:unstructuredAddressString")[0].childNodes[0].nodeValue;
				Result_Add += " 周辺" ;
			}
			//-------------------------------------------------------------------------------------------------
			//ちず丸「ここの住所は？」利用版～公開していない機能を勝手に使っているので怒られたらやめること
			//とりあえずテスト版
			//Result_Add = "";
			//-------------------------------------------------------------------------------------------------
		}
	}
	//Map上に住所を表示する
	if(Result_Add != ""){ 	user_GMapmap_MassageShow(Result_Add); }
}
// ------------------------------------------------------
// マップ上に任意のメッセージを表示させる
// ------------------------------------------------------
var Address_labelObj ; //メッセージ表示用のMap上ラベル　汎用ライブラリtlabel.2.05.js利用
function user_GMapmap_MassageShow( msg ){
	var LatLngObj = GMapMap.gmap.getBounds();	
	var w_lnglat = [];
	w_lnglat = (LatLngObj.getNorthEast() + "").split(",");
	var w_lat =w_lnglat[0].substring(1,w_lnglat[0].length);
	w_lnglat = (LatLngObj.getSouthWest() + "").split(",");
	var w_lng =w_lnglat[1].substring(0,w_lnglat[1].length-1);
	//最初だけの処理
	if(!Address_labelObj){Address_labelObj = new TLabel(); }
	//既にラベルを表示していたら削除する（１つのIDのラベルを使いまわす）
	if(Address_labelObj.id != null){ 
		GMapMap.gmap.removeTLabel(Address_labelObj); 
		Address_labelObj = new TLabel(); //メッセージ表示用のMap上ラベル　汎用ライブラリtlabel.2.05.js利用
	}
	//以下、ラベル設定＆追加
	Address_labelObj.id = "MapMassage";
	Address_labelObj.anchorPoint = "topLeft";
	Address_labelObj.anchorLatLng = new GLatLng(w_lat, w_lng);
	Address_labelObj.percentOpacity = 70;
	Address_labelObj.content = "<div class='user_MapMassage'>" + msg + "</div>";
	GMapMap.gmap.addTLabel(Address_labelObj);
}
// ------------------------------------------------------------------------------------------------------------
