/******************************************************************************
 *   *********  ****      *****    | @author    T&S
 *      **      *  **    *     *   | @filetype  Javascript
 *      **      * **     **        | @name      MapUtility.js
 *      **      **         ***     | @date      2011/1/13
 *      **     ** *  **      ***   | @copyright (c)T&S
 *      **     *   ***   *     *   | ------------------------------------------
 *      **     *    **   **    *   | 地図で使用する共通関数
 *      **      **** *    *****    |
 ******************************************************************************/

//------------------------------------------------------------
// オブジェクトの取得
//------------------------------------------------------------
/**
 * [description]
 * 緯度経度オブジェクト作成
 * @name getPointObj
 * @param lon 経度
 * @param lat 緯度
 */
var getPointObj = function(lon,lat)
{
	return new ZdcPoint(lon,lat,EMAP_DEFAULT_LOAD_MAP_LONLATTYPE);
}


//------------------------------------------------------------
// 地図の基本設定
//------------------------------------------------------------
/**
 * [description]
 * マウスカーソルを変更する
 * @name changeMouseCursor
 * @param type マウスカーソルタイプ
 *             'hand'手の形
 *             'default'矢印の形
 *             'users'第二引数で通常時の画像を指定、第三引数でドラッグ時の画像を指定
 * @param clickImg 通常時の画像を指定
 * @param dragImg  ドラッグ時の画像を指定
 */
var changeMouseCursor = function(type,clickImg,dragImg)
{
	// マウスカーソルモードを設定
	// type == users以外は画像を使用しないため、第二・第三引数は指定しない
	if(type == "users")
	{
		map.setMouseCursor(type,clickImg,dragImg);
	}
	else
	{
		map.setMouseCursor(type);
	}
}
/**
 * [description]
 * 現地点の緯度経度情報を変数にセットする
 * @name setMapInfo
 */
var setMapInfo = function()
{
	// マップ情報を取得
	mapLocationObj = map.getMapLocation();
	MAP_CENTER_POINT_LAT = mapLocationObj.my;
	MAP_CENTER_POINT_LON = mapLocationObj.mx;
	MAP_SCALE_LEVEL      = map.getMapScale();
	// 中心点とズームレベルから四隅の緯度経度を取得
	mapBoundBoxObj = map.getMapBoundBox(mapLocationObj,MAP_SCALE_LEVEL);
	MAP_MIN_POINT_LAT    = mapBoundBoxObj.miny;
	MAP_MIN_POINT_LON    = mapBoundBoxObj.minx;
	MAP_MAX_POINT_LAT    = mapBoundBoxObj.maxy;
	MAP_MAX_POINT_LON    = mapBoundBoxObj.maxx;

	// 中心点の緯度経度をCookieにセット
	$.cookie("ACTIZCENTERLAT",MAP_CENTER_POINT_LAT,COOKIE_OPTIONS);
	$.cookie("ACTIZCENTERLON",MAP_CENTER_POINT_LON,COOKIE_OPTIONS);

	// XMLをJSON形式に変換するクラスをコール
	var xotree = new XML.ObjTree();

	// API呼び出し先設定
	var php = "/api/GetGikLevelAPI.php?lat="+MAP_CENTER_POINT_LAT+"&lon="+MAP_CENTER_POINT_LON+"&level=2";
	var result_json = useAPIforJSON(php);

	// エラーの場合（地区情報が取れない場合など）
	if(result_json.getadstr_gik.status.returnCode != "21600000" && result_json.getadstr_gik.status.returnCode != "21600001")
	{
		setCookie("ACTIZPID",'');
		setCookie("ACTIZMID",'');
	}
	// 地区情報が正常に取得できた場合
	else
	{
		var AddressName         = result_json.getadstr_gik.result.item.address;
		var AddressNameArray    = AddressName.split("|");
		MAP_CENTER_ADDRESS      = AddressNameArray[1];
		MAP_CENTER_ADDRESS_CODE = result_json.getadstr_gik.result.item.addrCode;
		// cookieに県コードをセット
		BEFORE_PID  = CURRENT_PID;
		CURRENT_PID = MAP_CENTER_ADDRESS_CODE.substring(0,2);
		setCookie("ACTIZPID",CURRENT_PID);

		// cookieに市区町村コードをセット
		BEFORE_MID  = CURRENT_MID;
		CURRENT_MID = MAP_CENTER_ADDRESS_CODE.substring(2,5);
		setCookie("ACTIZMID",CURRENT_MID);
		var order = "lat="+ MAP_CENTER_POINT_LAT + "&lon=" + MAP_CENTER_POINT_LON + "&pref=" + CURRENT_PID;
		$.post("/api/setShareUrl.php", order, function(theResponse){
			var xotree = new XML.ObjTree();

			// XMLをJSON形式にパースする
			var jsonFromXML = xotree.parseXML(theResponse.trim());

			var showJson     = jsonFromXML.response;

			$("#mypage_twitter_btn img").click(function(){
				twitterWindowOpen(showJson.twitter.url);
			});
			$("#mypage_twitter_btn").attr("alt","「"+showJson.twitter.place+"の地図」をTwitterで共有");
			$("#mypage_twitter_btn").attr("title","「"+showJson.twitter.place+"の地図」をTwitterで共有");
			$("#mypage_facebook_btn img").click(function(){
				facebookWindowOpen(showJson.facebook.url);
			});
			$("#mypage_facebook_btn").attr("alt","「"+showJson.facebook.place+"の地図」をFacebbookで共有");
			$("#mypage_facebook_btn").attr("title","「"+showJson.facebook.place+"の地図」をFacebookで共有");
			$("#mypage_mixi_btn img").click(function(){
				twitterWindowOpen(showJson.mixi.url);
			});
			$("#mypage_mixi_btn").attr("alt","「"+showJson.mixi.place+"の地図」をmixiで共有");
			$("#mypage_mixi_btn").attr("title","「"+showJson.mixi.place+"の地図」をmixiで共有");
		});


	}

	// この地域の天気を見る
	getAreaWeatherDisp();

	// 高校野球予選結果を表示する
	//getQualifyingGameDisp();

	// 仮設住宅を表示する
	if(CURRENT_PID == "03" || CURRENT_PID == "04" || CURRENT_PID == "07" || CURRENT_PID == "08" || CURRENT_PID == "09" || CURRENT_PID == "12" || CURRENT_PID == "20"){
		// 仮設アイコンを表示する
		$("#kasetsu_icon").css("display", "");
	} else {
		// 仮設アイコンを表示する
		$("#kasetsu_icon").css("display", "none");
	}

	// 編集部オススメ
	//makeLocalLoveInfo();
	//changeDropDownMenu();
	//changeLinkToAreaProfile();
	//setCenterAreaAddress();
	// 出前館URL生成
	//setDemaekanURL();
	// 中心点の住所を取得
	/*
	var center_addr      = new ZdcGetAddressStringGik();
	var center_addr_opts = new ZdcGetAddressStringGikOptions(mapLocationObj);
	center_addr_opts.matchLevel = 3;
	ZdcEvent.addListener(center_addr, 'end', setCenterAddress);
	center_addr.search(center_addr_opts);
	*/
	// CRM画像表示
	//crmImageDisp();
	return true;
}
/**
 * [description]
 *
 */
function setCenterAddress(result)
{
	if(result.status == 0)
	{
		MAP_CENTER_ADDRESS = result.items[0].address;
		MAP_CENTER_ADDRESS_CODE = result.items[0].addrCode;

		// ジモトラブインフォ生成
		//makeLocalLoveInfo();

		// ドロップダウンメニュー変更
		//changeDropDownMenu();
		//changeLinkToAreaProfile();
		//setCenterAreaAddress();
		//setDemaekanURL();

	}
}
//------------------------------------------------------------
// 地図基本動作
//------------------------------------------------------------
/**
 * [description]
 * 検索系ローディングを開始する
 * @name searchLoadingStart
 */
var searchLoadingStart = function()
{
	// 現在LOADING処理が走っているのかどうかをチェックする
	if(MAP_SEARCH_LOADING == null)
	{
		/*
		 * まだLOADING処理が走っていない場合
		 */
		// LOADINGの開始位置を指定
		var loadingHeight = $("#".EMAP_MAIN_MAP_ID).css("height");
		var loadingWidth  = $("#".EMAP_MAIN_MAP_ID).css("width");
		// 指定位置に「読み込み中...」を追加
		map.addZdcWait(240,370,'読み込み中...');
		// 実際に地図上へと表示させる
		map.visibleZdcWait();
	}
	else
	{
		/*
		 * LOADING中になにか他の検索が行われた場合の対処
		 */
		// 検索中フラグをいったんnullとする
		MAP_SEARCH_LOADING = null;
		// 再帰呼び出し
		searchLoadingStart();
	}
}
/**
 * [description]
 * 検索系ローディングを終了する
 * @name searchLoadingEnd
 */
var searchLoadingEnd = function()
{
	// 検索中フラグをnullとする
	MAP_SEARCH_LOADING = null;
	// LOADING表示を削除
	map.removeZdcWait();
	// 最後に検索したポイントを現在の中心点で上書き
	LAST_SEARCH_POINT_LON = MAP_CENTER_POINT_LON;
	LAST_SEARCH_POINT_LAT = MAP_CENTER_POINT_LAT;
	SEARCH_LOCK = false;
	SEARCH_PARENT_LOCK = false;

}
/**
 * [description]
 * ユーザーレイヤーを作成する
 * @name createUserLayer
 */
var createUserLayer = function()
{
	// ユーザーレイヤーの作成
	var tmpLayer = new ZdcUserLayer();
	// 作成したユーザーレイヤーの有効範囲は1-18と設定する
	tmpLayer.setLayerScale(1,18);
	// レイヤー削除タイプを手動とする
	tmpLayer.setLayerType('manual');
	// 作成したレイヤーを返却
	return tmpLayer;
}
/**
 * [description]
 * 指定したIDのレイヤーを削除する
 * @name clearLayer
 * @param layer レイヤーオブジェクト
 */
function clearLayer(layer)
{
	if(layer != null)
	{
		map.removeUserLayerById(layer.layerID);
		layer = null;
	}
}
/**
 * 全てのレイヤーを削除する（検索系）
 */
function clearAllLayer()
{
	clearLayer(CLIENT_LAYER);
	clearLayer(FW_LAYER);
	clearLayer(CATEGORY_LAYER);
	clearLayer(SCENE_LAYER);
	clearLayer(RECOMMEND_LAYER);
	clearLayer(EVENT_LAYER);
	clearLayer(FAVORITE_SEARCH_LAYER);
	clearLayer(BLOSSOM_LAYER);
	clearLayer(HISTORY_LAYER);
	clearLayer(CULTURE_LAYER);
	clearLayer(PARK_LAYER);
	clearLayer(DIRECT_SALES_LAYER);
	clearLayer(ROAD_LAYER);
	clearLayer(REFUGE_LAYER);
	clearLayer(LOVE_INFO_LAYER);
	clearLayer(CIDER_LAYER);
	clearLayer(SUMMER_FESTIVAL_LAYER);
	clearLayer(TMP_HOUSING_LAYER);
	clearLayer(LOCAL_SEASON_SPOT_LAYER);
}
/**
 * 検索結果欄を削除する（検索系）
 */
function clearSearchResult()
{
	$("#"+SEARCH_RESULT_ID).html("");
}
/**
 * [description]
 * 重複アイコン設置
 * @name setIconMulti
 * @param layer アイコンを表示させるレイヤー
 * @param marker マーカーオブジェクト
 * @param lon   経度
 * @param lat   緯度
 * @param imgFile       アイコン画像
 * @param size_width    アイコンのサイズ（横）
 * @param size_height   アイコンのサイズ（縦）
 * @param offset_width  アイコンの絶対値（X）
 * @param offset_height アイコンの絶対値（Y）
 * @param toolArray     ツールチップ情報配列
 * @param totalCount    このアイコンを表示するまでに作成したツールチップの数
 * @param multiCount    この重複アイコンの重複数
 */
var setIconMulti = function(mode_type,layer,marker,icon,toolArray,totalCount,multiCount)
{
	//=====================================================
	// ツールチップ生成処理
	//=====================================================
	// ツールチップオブジェクトの生成
	var tool3 = new ZdcTooltip();
	// ツールチップテキストを指定
	marker.tool3txt    = toolArray["tool3_txt"];
	// ツールチップの表示位置を絶対値で指定
	marker.tool3offset = new ZdcPixel(toolArray["tool3_offset_x"],toolArray["tool3_offset_y"]);
	// ツールチップの横幅を指定
	marker.tool3width  = toolArray["tool3_width"];
	// ツールチップの縦幅を指定
	marker.tool3height = toolArray["tool3_width"];
	// ツールチップのzindexを指定（固定）
	marker.tool3zindex = toolArray["tool3_zindex"];
	// ツールチップをセットする前準備を行う
	tool3.setZdcTooltip(marker.Point, marker.tool3txt, marker.tool3width, marker.tool3height, marker.tool3offset, marker.tool3zindex);
	// レイヤーにツールチップ（アイコン）を追加する
	layer.addZdcTooltip(tool3);
	// マーカーオブジェクトにツールIDを登録する
	marker.tool3id     = tool3.id;

	// mouseclickmarkerイベントにツールチップ１とツールチップ２の表示を入れ替える関数追加
	ZdcEvent.addListener(marker, "mouseclickmarker", function() {
		chgToolTipFormatMulti(mode_type,this.keyToolid,this.tool1id,this.tool2id,this.tool3id,totalCount,multiCount);
	});
	// デフォルトとしてはツールチップ1を表示とする
	//layer.visibleZdcTooltipById(marker.tool1id);
	// レイヤーにマーカーを追加する
	layer.addMarker(marker);
	// 結果返却配列の設定
	var retArray = new Array();
		retArray["tool3"]   = tool3;
	    retArray["marker"]  = marker;

	return retArray;
}
/**
 * [description]
 * アイコン設置
 * @name setIconAd
 * @param layer アイコンを表示させるレイヤー
 * @param lon   経度
 * @param lat   緯度
 * @param imgFile       アイコン画像
 * @param size_width    アイコンのサイズ（横）
 * @param size_height   アイコンのサイズ（縦）
 * @param offset_width  アイコンの絶対値（X）
 * @param offset_height アイコンの絶対値（Y）
 * @param toolArray     ツールチップ情報配列
 * @param count         ツールチップ情報配列
 */
var setIconPoi = function(mode_type,layer,marker,lon,lat,imgFile,size_width,size_height,offset_width,offset_height,toolArray,count)
{
	//=====================================================
	// ツールチップ生成処理
	//=====================================================
	// ツールチップオブジェクトの生成
	var tool1          = new ZdcTooltip();
	// ツールチップのテキストを指定
	marker.tool1txt   = toolArray["tool1_txt"];
	// ツールチップの表示位置を絶対値で指定
	marker.tool1offset = new ZdcPixel(toolArray["tool1_offset_x"],toolArray["tool1_offset_y"]);
	// ツールチップの表示横幅を指定
	marker.tool1width  = toolArray["tool1_width"];
	// ツールチップの表示縦幅を指定
	marker.tool1height = toolArray["tool1_height"];
	// ツールチップのzindexを指定（固定）
	marker.tool1zindex = toolArray["tool1_zindex"];
	// ツールチップをセットする前準備を行う
	tool1.setZdcTooltip(marker.Point, marker.tool1txt, marker.toolwidth, marker.tool1height, marker.tool1offset, marker.tool1zindex);
	// レイヤーにツールチップ（アイコン）を追加する
	layer.addZdcTooltip(tool1);
	// マーカーオブジェクトにツールIDを登録する
	marker.tool1id     = tool1.id;
	//=====================================================
	// ツールチップ生成処理
	//=====================================================
	// ツールチップオブジェクトの生成
	var tool2 = new ZdcTooltip();
	// ツールチップテキストを指定
	marker.tool2txt    = toolArray["tool2_txt"];
	// ツールチップの表示位置を絶対値で指定
	marker.tool2offset = new ZdcPixel(toolArray["tool2_offset_x"],toolArray["tool2_offset_y"]);
	// ツールチップの横幅を指定
	marker.tool2width  = toolArray["tool2_width"];
	// ツールチップの縦幅を指定
	marker.tool2height = toolArray["tool2_width"];
	// ツールチップのzindexを指定（固定）
	marker.tool2zindex = toolArray["tool2_zindex"];
	// ツールチップをセットする前準備を行う
	tool2.setZdcTooltip(marker.Point, marker.tool2txt, marker.tool2width, marker.tool2height, marker.tool2offset, marker.tool2zindex);
	// レイヤーにツールチップ（アイコン）を追加する
	layer.addZdcTooltip(tool2);
	// マーカーオブジェクトにツールIDを登録する
	marker.tool2id     = tool2.id;
	//=====================================================
	// ツールチップ生成処理
	//=====================================================
	// ツールチップオブジェクトの生成
	var tool3 = new ZdcTooltip();
	// ツールチップテキストを指定
	marker.tool3txt    = toolArray["tool3_txt"];
	// ツールチップの表示位置を絶対値で指定
	marker.tool3offset = new ZdcPixel(toolArray["tool3_offset_x"],toolArray["tool3_offset_y"]);
	// ツールチップの横幅を指定
	marker.tool3width  = toolArray["tool3_width"];
	// ツールチップの縦幅を指定
	marker.tool3height = toolArray["tool3_width"];
	// ツールチップのzindexを指定（固定）
	marker.tool3zindex = toolArray["tool3_zindex"];
	// ツールチップをセットする前準備を行う
	tool3.setZdcTooltip(marker.Point, marker.tool3txt, marker.tool3width, marker.tool3height, marker.tool3offset, marker.tool3zindex);
	// レイヤーにツールチップ（アイコン）を追加する
	layer.addZdcTooltip(tool3);
	// マーカーオブジェクトにツールIDを登録する
	marker.tool3id     = tool3.id;
	// mouseclickmarkerイベントにツールチップ１とツールチップ２の表示を入れ替える関数追加
	ZdcEvent.addListener(marker, "mouseclickmarker", function() {
		chgToolTipFormat(mode_type,this.keyToolid,this.tool1id,this.tool2id,this.tool3id,count);
		chgBackGround("scroll_"+count);
	});
	// デフォルトとしてはツールチップ1を表示とする
	//layer.visibleZdcTooltipById(marker.tool1id);
	// レイヤーにマーカーを追加する
	layer.addMarker(marker);
	// 結果返却配列の設定
	var retArray = new Array();
	    retArray["tool1"]   = tool1;
	    retArray["tool2"]   = tool2;
		retArray["tool3"]   = tool3;
	    retArray["marker"]  = marker;
	return retArray;
}
/**
 * [description]
 * 前回の緯度経度の位置からある一定の距離離れているかどうかを調査する
 * @name chkSearchDistance
 */
var chkSearchDistance = function()
{
	//--------------------------------
	// マップ情報オブジェクトの作成
	var mapLocationObj = map.getMapLocation();

	//--------------------------------
	// 最終検索緯度経度がnullでない場合に適応
	if(LAST_SEARCH_POINT_LON != null && LAST_SEARCH_POINT_LAT != null)
	{
		// ①現状の中心点の緯度経度を取得
		var point = getPointObj(mapLocationObj.mx,mapLocationObj.my);

		// ②最終検索位置の緯度経度を取得
		var last_point = getPointObj(LAST_SEARCH_POINT_LON,LAST_SEARCH_POINT_LAT);

		// ①と②の２点間の距離が指定距離よりも大きければ検索を実行する
		if(point.getDistanceFromPoint(last_point) > (MOVING_SEARCH_DISTANCE[MAP_SCALE_LEVEL] * SEARCH_MULTIPLE_NUM))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

//------------------------------------------------------------
//地図の移動
//------------------------------------------------------------
/**
* [description]
* 緯度経度を指定して中心を移動
* @name  moveCenterPoint
* @param lon 経度
* @param lat 緯度
*/
var moveCenterPoint = function(lon,lat){

	// この形で移動した時は検索を行わない
	NO_SEARCH_FLG = true;

	// 中心点を移動する
	map.scrollToCenter(getPointObj(lon,lat));
	// 地図ページ表示
	review_map();
}
/**
* [description]
* 緯度経度を指定して中心を移動
* @name  moveCenterPoint
* @param lon 経度
* @param lat 緯度
*/
var moveCenterPointNoReview = function(lon,lat){
	// この形で移動した時は検索を行わない
	NO_SEARCH_FLG = true;

	// 中心点を移動する
	map.scrollToCenter(getPointObj(lon,lat));
}

/**
 * 地図を移動後に再検索をかけるバージョン
 * @name moveCenterPointSearch
 * @param lon 経度
 * @param lat 緯度
 */
var moveCenterPointSearch = function(lon,lat)
{
	map.scrollToCenter(getPointObj(lon,lat));
}
/**
* [description]
* Pointオブジェクトを指定して中心を移動
* @name moveCenterPointObj
* @param point 緯度経度ポイントオブジェクト
*/
var moveCenterPointObj = function(pointObj){

	// この形で移動し時は検索を行わない
	NO_SEARCH_FLG = true;

	// 中心点を移動する
	map.setMapLocation(pointObj);
}

//*******************************************************************
// 検索アイコン表示時にどのモードかを判別し、マーカーおよびアイコンを
// 生成するための定義処理
//*******************************************************************
function tooltipValueSet(mode_type,keyToolid,tool1id,tool2id,tool3id,flg)
{
	var retToolArray = new Array();
	switch(mode_type)
	{
		// クライアント券検索
		case MAP_MODE_CLIENT:
			retToolArray["marker_list"]   = CLIENT_MARKER_OBJLIST;
			retToolArray["tool1"]         = CLIENT_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = CLIENT_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = CLIENT_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = CLIENT_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = CLIENT_LAYER;
			retToolArray["before_key_id"] = CLIENT_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = CLIENT_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = CLIENT_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = CLIENT_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = CLIENT_TOOLTIP_MULTI_DISP;
			}
			break;
		// フリーワード検索
		case MAP_MODE_FW:
			retToolArray["marker_list"]   = FW_MARKER_OBJLIST;
			retToolArray["tool1"]         = FW_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = FW_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = FW_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = FW_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = FW_LAYER;
			retToolArray["before_key_id"] = FW_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = FW_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = FW_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = FW_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = FW_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_CATEGORY:
			retToolArray["marker_list"]   = CATEGORY_MARKER_OBJLIST;
			retToolArray["tool1"]         = CATEGORY_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = CATEGORY_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = CATEGORY_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = CATEGORY_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = CATEGORY_LAYER;
			retToolArray["before_key_id"] = CATEGORY_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = CATEGORY_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = CATEGORY_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = CATEGORY_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = CATEGORY_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_SCENE:
			retToolArray["marker_list"]   = SCENE_MARKER_OBJLIST;
			retToolArray["tool1"]         = SCENE_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = SCENE_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = SCENE_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = SCENE_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = SCENE_LAYER;
			retToolArray["before_key_id"] = SCENE_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = SCENE_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = SCENE_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = SCENE_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = SCENE_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_EVENT:
			retToolArray["marker_list"]   = EVENT_MARKER_OBJLIST;
			retToolArray["tool1"]         = EVENT_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = EVENT_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = EVENT_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = EVENT_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = EVENT_LAYER;
			retToolArray["before_key_id"] = EVENT_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = EVENT_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = EVENT_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = EVENT_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = EVENT_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_RECOMMEND:
			retToolArray["marker_list"]   = RECOMMEND_MARKER_OBJLIST;
			retToolArray["tool1"]         = RECOMMEND_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = RECOMMEND_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = RECOMMEND_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = RECOMMEND_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = RECOMMEND_LAYER;
			retToolArray["before_key_id"] = RECOMMEND_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = RECOMMEND_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = RECOMMEND_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = RECOMMEND_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = RECOMMEND_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_BLOSSOM:
			retToolArray["marker_list"]   = BLOSSOM_MARKER_OBJLIST;
			retToolArray["tool1"]         = BLOSSOM_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = BLOSSOM_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = BLOSSOM_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = BLOSSOM_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = BLOSSOM_LAYER;
			retToolArray["before_key_id"] = BLOSSOM_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = BLOSSOM_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = BLOSSOM_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = BLOSSOM_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = BLOSSOM_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_CULTURE:
			retToolArray["marker_list"]   = CULTURE_MARKER_OBJLIST;
			retToolArray["tool1"]         = CULTURE_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = CULTURE_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = CULTURE_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = CULTURE_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = CULTURE_LAYER;
			retToolArray["before_key_id"] = CULTURE_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = CULTURE_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = CULTURE_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = CULTURE_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = CULTURE_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_HISTORY:
			retToolArray["marker_list"]   = HISTORY_MARKER_OBJLIST;
			retToolArray["tool1"]         = HISTORY_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = HISTORY_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = HISTORY_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = HISTORY_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = HISTORY_LAYER;
			retToolArray["before_key_id"] = HISTORY_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = HISTORY_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = HISTORY_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = HISTORY_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = HISTORY_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_PARK:
			retToolArray["marker_list"]   = PARK_MARKER_OBJLIST;
			retToolArray["tool1"]         = PARK_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = PARK_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = PARK_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = PARK_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = PARK_LAYER;
			retToolArray["before_key_id"] = PARK_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = PARK_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = PARK_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = PARK_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = PARK_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_DIRECT_SALES:
			retToolArray["marker_list"]   = DIRECT_SALES_MARKER_OBJLIST;
			retToolArray["tool1"]         = DIRECT_SALES_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = DIRECT_SALES_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = DIRECT_SALES_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = DIRECT_SALES_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = DIRECT_SALES_LAYER;
			retToolArray["before_key_id"] = DIRECT_SALES_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = DIRECT_SALES_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = DIRECT_SALES_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = DIRECT_SALES_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = DIRECT_SALES_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_ROAD:
			retToolArray["marker_list"]   = ROAD_MARKER_OBJLIST;
			retToolArray["tool1"]         = ROAD_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = ROAD_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = ROAD_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = ROAD_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = ROAD_LAYER;
			retToolArray["before_key_id"] = ROAD_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = ROAD_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = ROAD_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = ROAD_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = ROAD_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_REFUGE:
			retToolArray["marker_list"]   = REFUGE_MARKER_OBJLIST;
			retToolArray["tool1"]         = REFUGE_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = REFUGE_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = REFUGE_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = REFUGE_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = REFUGE_LAYER;
			retToolArray["before_key_id"] = REFUGE_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = REFUGE_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = REFUGE_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = REFUGE_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = REFUGE_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_LOVE_INFO:
			retToolArray["marker_list"]   = LOVE_INFO_MARKER_OBJLIST;
			retToolArray["tool1"]         = LOVE_INFO_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = LOVE_INFO_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = LOVE_INFO_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = LOVE_INFO_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = LOVE_INFO_LAYER;
			retToolArray["before_key_id"] = LOVE_INFO_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = LOVE_INFO_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = LOVE_INFO_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = LOVE_INFO_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = LOVE_INFO_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_CIDER:
			retToolArray["marker_list"]   = CIDER_MARKER_OBJLIST;
			retToolArray["tool1"]         = CIDER_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = CIDER_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = CIDER_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = CIDER_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = CIDER_LAYER;
			retToolArray["before_key_id"] = CIDER_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = CIDER_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = CIDER_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = CIDER_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = CIDER_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_SUMMER_FESTIVAL:
			retToolArray["marker_list"]   = SUMMER_FESTIVAL_MARKER_OBJLIST;
			retToolArray["tool1"]         = SUMMER_FESTIVAL_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = SUMMER_FESTIVAL_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = SUMMER_FESTIVAL_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = SUMMER_FESTIVAL_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = SUMMER_FESTIVAL_LAYER;
			retToolArray["before_key_id"] = SUMMER_FESTIVAL_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = SUMMER_FESTIVAL_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_TMP_HOUSING:
			retToolArray["marker_list"]   = TMP_HOUSING_MARKER_OBJLIST;
			retToolArray["tool1"]         = TMP_HOUSING_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = TMP_HOUSING_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = TMP_HOUSING_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = TMP_HOUSING_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = TMP_HOUSING_LAYER;
			retToolArray["before_key_id"] = TMP_HOUSING_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = TMP_HOUSING_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = TMP_HOUSING_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = TMP_HOUSING_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = TMP_HOUSING_TOOLTIP_MULTI_DISP;
			}
			break;
		case MAP_MODE_LOCAL_SEASON_SPOT:
			retToolArray["marker_list"]   = LOCAL_SEASON_SPOT_MARKER_OBJLIST;
			retToolArray["tool1"]         = LOCAL_SEASON_SPOT_TOOLTIP_OBJLIST1[tool1id];
			retToolArray["tool2"]         = LOCAL_SEASON_SPOT_TOOLTIP_OBJLIST2[tool2id];
			retToolArray["tool3"]         = LOCAL_SEASON_SPOT_TOOLTIP_OBJLIST3[tool3id];
			retToolArray["marker"]        = LOCAL_SEASON_SPOT_MARKER_OBJLIST[keyToolid];
			retToolArray["layer"]         = LOCAL_SEASON_SPOT_LAYER;
			retToolArray["before_key_id"] = LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_KEY_ID;
			retToolArray["before_id1"]    = LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID1;
			retToolArray["before_id2"]    = LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID2;
			retToolArray["before_id3"]    = LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID3;
			if(flg == ""){
				retToolArray["multi_disp"]    = LOCAL_SEASON_SPOT_TOOLTIP_MULTI_DISP;
			}
			break;
	}
	return retToolArray;
}
function getLayerFromMode(mode_type)
{
	var layer = null;
	switch(mode_type)
	{
		case MAP_MODE_CLIENT:
			layer = CLIENT_LAYER;
			break;
		case MAP_MODE_FW:
			layer = FW_LAYER;
			break;
		case MAP_MODE_CATEGORY:
			layer = CATEGORY_LAYER;
			break;
		case MAP_MODE_SCENE:
			layer = SCENE_LAYER;
			break;
		case MAP_MODE_EVENT:
			layer = EVENT_LAYER;
			break;
		case MAP_MODE_RECOMMEND:
			layer = RECOMMEND_LAYER;
			break;
		case MAP_MODE_BLOSSOM:
			layer = BLOSSOM_LAYER;
			break;
		case MAP_MODE_CULTURE:
			layer = CULTURE_LAYER;
			break;
		case MAP_MODE_HISTORY:
			layer = HISTORY_LAYER;
			break;
		case MAP_MODE_PARK:
			layer = PARK_LAYER;
			break;
		case MAP_MODE_DIRECT_SALES:
			layer = DIRECT_SALES_LAYER;
			break;
		case MAP_MODE_ROAD:
			layer = ROAD_LAYER;
			break;
		case MAP_MODE_REFUGE:
			layer = REFUGE_LAYER;
			break;
		case MAP_MODE_LOVE_INFO:
			layer = LOVE_INFO_LAYER;
			break;
		case MAP_MODE_FAVORITE:
			layer = FAVORITE_SEARCH_LAYER;
			break;
		case MAP_MODE_CIDER:
			layer = CIDER_LAYER;
			break;
		case MAP_MODE_SUMMER_FESTIVAL:
			layer = SUMMER_FESTIVAL_LAYER;
			break;
		case MAP_MODE_TMP_HOUSING:
			layer = TMP_HOUSING_LAYER;
			break;
		case MAP_MODE_LOCAL_SEASON_SPOT:
			layer = LOCAL_SEASON_SPOT_LAYER;
			break;
	}
	return layer;
}
function setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id)
{
	if(tool1id == "") tool1id = null;
	if(tool2id == "") tool2id = null;
	if(tool3id == "") tool3id = null;
	switch(mode_type)
	{
		case MAP_MODE_CLIENT:
			CLIENT_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			CLIENT_TOOLTIP_BEFORE_ID1    = tool1id;
			CLIENT_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				CLIENT_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_FW:
			FW_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			FW_TOOLTIP_BEFORE_ID1    = tool1id;
			FW_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				FW_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_CATEGORY:
			CATEGORY_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			CATEGORY_TOOLTIP_BEFORE_ID1    = tool1id;
			CATEGORY_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				CATEGORY_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_SCENE:
			SCENE_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			SCENE_TOOLTIP_BEFORE_ID1    = tool1id;
			SCENE_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				SCENE_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_EVENT:
			EVENT_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			EVENT_TOOLTIP_BEFORE_ID1    = tool1id;
			EVENT_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				EVENT_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_RECOMMEND:
			RECOMMEND_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			RECOMMEND_TOOLTIP_BEFORE_ID1    = tool1id;
			RECOMMEND_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				RECOMMEND_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_BLOSSOM:
			BLOSSOM_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			BLOSSOM_TOOLTIP_BEFORE_ID1    = tool1id;
			BLOSSOM_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				BLOSSOM_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_CULTURE:
			CULTURE_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			CULTURE_TOOLTIP_BEFORE_ID1    = tool1id;
			CULTURE_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				CULTURE_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_HISTORY:
			HISTORY_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			HISTORY_TOOLTIP_BEFORE_ID1    = tool1id;
			HISTORY_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				HISTORY_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_PARK:
			PARK_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			PARK_TOOLTIP_BEFORE_ID1    = tool1id;
			PARK_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				PARK_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_DIRECT_SALES:
			DIRECT_SALES_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			DIRECT_SALES_TOOLTIP_BEFORE_ID1    = tool1id;
			DIRECT_SALES_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				DIRECT_SALES_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_ROAD:
			ROAD_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			ROAD_TOOLTIP_BEFORE_ID1    = tool1id;
			ROAD_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				ROAD_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_REFUGE:
			REFUGE_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			REFUGE_TOOLTIP_BEFORE_ID1    = tool1id;
			REFUGE_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				REFUGE_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_LOVE_INFO:
			LOVE_INFO_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			LOVE_INFO_TOOLTIP_BEFORE_ID1    = tool1id;
			LOVE_INFO_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				LOVE_INFO_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_CIDER:
			CIDER_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			CIDER_TOOLTIP_BEFORE_ID1    = tool1id;
			CIDER_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				CIDER_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_SUMMER_FESTIVAL:
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID1    = tool1id;
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_TMP_HOUSING:
			TMP_HOUSING_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			TMP_HOUSING_TOOLTIP_BEFORE_ID1    = tool1id;
			TMP_HOUSING_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				TMP_HOUSING_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
		case MAP_MODE_LOCAL_SEASON_SPOT:
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_KEY_ID = keyToolid;
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID1    = tool1id;
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID2    = tool2id;
			if(tool3id != null){
				LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID3    = tool3id;
			}
			break;
	}
}
function setToolTipBeforeNull(mode_type)
{
	switch(mode_type)
	{
		case MAP_MODE_CLIENT:
			CLIENT_TOOLTIP_BEFORE_KEY_ID = null;
			CLIENT_TOOLTIP_BEFORE_ID1    = null;
			CLIENT_TOOLTIP_BEFORE_ID2    = null;
			CLIENT_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_FW:
			FW_TOOLTIP_BEFORE_KEY_ID = null;
			FW_TOOLTIP_BEFORE_ID1    = null;
			FW_TOOLTIP_BEFORE_ID2    = null;
			FW_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_CATEGORY:
			CATEGORY_TOOLTIP_BEFORE_KEY_ID = null;
			CATEGORY_TOOLTIP_BEFORE_ID1    = null;
			CATEGORY_TOOLTIP_BEFORE_ID2    = null;
			CATEGORY_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_SCENE:
			SCENE_TOOLTIP_BEFORE_KEY_ID = null;
			SCENE_TOOLTIP_BEFORE_ID1    = null;
			SCENE_TOOLTIP_BEFORE_ID2    = null;
			SCENE_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_EVENT:
			EVENT_TOOLTIP_BEFORE_KEY_ID = null;
			EVENT_TOOLTIP_BEFORE_ID1    = null;
			EVENT_TOOLTIP_BEFORE_ID2    = null;
			EVENT_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_RECOMMEND:
			RECOMMEND_TOOLTIP_BEFORE_KEY_ID = null;
			RECOMMEND_TOOLTIP_BEFORE_ID1    = null;
			RECOMMEND_TOOLTIP_BEFORE_ID2    = null;
			RECOMMEND_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_BLOSSOM:
			BLOSSOM_TOOLTIP_BEFORE_KEY_ID = null;
			BLOSSOM_TOOLTIP_BEFORE_ID1    = null;
			BLOSSOM_TOOLTIP_BEFORE_ID2    = null;
			BLOSSOM_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_CULTURE:
			CULTURE_TOOLTIP_BEFORE_KEY_ID = null;
			CULTURE_TOOLTIP_BEFORE_ID1    = null;
			CULTURE_TOOLTIP_BEFORE_ID2    = null;
			CULTURE_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_HISTORY:
			HISTORY_TOOLTIP_BEFORE_KEY_ID = null;
			HISTORY_TOOLTIP_BEFORE_ID1    = null;
			HISTORY_TOOLTIP_BEFORE_ID2    = null;
			HISTORY_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_PARK:
			PARK_TOOLTIP_BEFORE_KEY_ID = null;
			PARK_TOOLTIP_BEFORE_ID1    = null;
			PARK_TOOLTIP_BEFORE_ID2    = null;
			PARK_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_DIRECT_SALES:
			DIRECT_SALES_TOOLTIP_BEFORE_KEY_ID = null;
			DIRECT_SALES_TOOLTIP_BEFORE_ID1    = null;
			DIRECT_SALES_TOOLTIP_BEFORE_ID2    = null;
			DIRECT_SALES_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_ROAD:
			ROAD_TOOLTIP_BEFORE_KEY_ID = null;
			ROAD_TOOLTIP_BEFORE_ID1    = null;
			ROAD_TOOLTIP_BEFORE_ID2    = null;
			ROAD_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_REFUGE:
			REFUGE_TOOLTIP_BEFORE_KEY_ID = null;
			REFUGE_TOOLTIP_BEFORE_ID1    = null;
			REFUGE_TOOLTIP_BEFORE_ID2    = null;
			REFUGE_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_LOVE_INFO:
			LOVE_INFO_TOOLTIP_BEFORE_KEY_ID = null;
			LOVE_INFO_TOOLTIP_BEFORE_ID1    = null;
			LOVE_INFO_TOOLTIP_BEFORE_ID2    = null;
			LOVE_INFO_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_CIDER:
			CIDER_TOOLTIP_BEFORE_KEY_ID = null;
			CIDER_TOOLTIP_BEFORE_ID1    = null;
			CIDER_TOOLTIP_BEFORE_ID2    = null;
			CIDER_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_SUMMER_FESTIVAL:
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_KEY_ID = null;
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID1    = null;
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID2    = null;
			SUMMER_FESTIVAL_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_TMP_HOUSING:
			TMP_HOUSING_TOOLTIP_BEFORE_KEY_ID = null;
			TMP_HOUSING_TOOLTIP_BEFORE_ID1    = null;
			TMP_HOUSING_TOOLTIP_BEFORE_ID2    = null;
			TMP_HOUSING_TOOLTIP_BEFORE_ID3    = null;
			break;
		case MAP_MODE_LOCAL_SEASON_SPOT:
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_KEY_ID = null;
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID1    = null;
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID2    = null;
			LOCAL_SEASON_SPOT_TOOLTIP_BEFORE_ID3    = null;
			break;
	}
}
function multiDispFlg(mode_type,flg)
{
	switch(mode_type)
	{
		case MAP_MODE_CLIENT:
			CLIENT_TOOLTIP_MULTI_DISP    = flg;
			break;
		case MAP_MODE_FW:
			FW_TOOLTIP_MULTI_DISP        = flg;
			break;
		case MAP_MODE_CATEGORY:
			CATEGORY_TOOLTIP_MULTI_DISP  = flg;
			break;
		case MAP_MODE_SCENE:
			SCENE_TOOLTIP_MULTI_DISP     = flg;
			break;
		case MAP_MODE_EVENT:
			EVENT_TOOLTIP_MULTI_DISP     = flg;
			break;
		case MAP_MODE_RECOMMEND:
			RECOMMEND_TOOLTIP_MULTI_DISP = flg;
			break;
		case MAP_MODE_BLOSSOM:
			BLOSSOM_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_CULTURE:
			CULTURE_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_HISTORY:
			HISTORY_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_PARK:
			PARK_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_DIRECT_SALES:
			DIRECT_SALES_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_ROAD:
			ROAD_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_REFUGE:
			REFUGE_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_LOVE_INFO:
			REFUGE_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_CIDER:
			CIDER_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_SUMMER_FESTIVAL:
			SUMMER_FESTIVAL_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_TMP_HOUSING:
			TMP_HOUSING_TOOLTIP_MULTI_DISP   = flg;
			break;
		case MAP_MODE_LOCAL_SEASON_SPOT:
			LOCAL_SEASON_SPOT_TOOLTIP_MULTI_DISP   = flg;
			break;
	}
}
/**
 * ツールチップの大小を切り替える（カテゴリ検索用）
 * name chgToolTipFormat
 */
var chgToolTipFormat = function(mode_type,keyToolid,tool1id,tool2id,tool3id,count)
{
	//-----------------------------------------------------
	// step.1 共通データ格納処理の実行
	// これをやることで検索どの検索を行うのかを意識させない
	var methodToolTip = tooltipValueSet(mode_type,keyToolid,tool1id,tool2id,tool3id,"");

	var marker_list   = methodToolTip["marker_list"];    // 生成したマーカーオブジェクトのリスト
	var tool1         = methodToolTip["tool1"];          // ツールチップ1オブジェクト
	var tool2         = methodToolTip["tool2"];          // ツールチップ2オブジェクト
	var tool3         = methodToolTip["tool3"];          // ツールチップ3オブジェクト
	var marker        = methodToolTip["marker"];         // マーカーオブジェクト
	var layer         = methodToolTip["layer"];          // レイヤーオブジェクト
	var before_key_id = methodToolTip["before_key_id"];  // 前回クリックのツールチップキーID
	var before_id1    = methodToolTip["before_id1"];     // 前回クリックのツールチップ1ID
	var before_id2    = methodToolTip["before_id2"];     // 前回クリックのツールチップ2ID
	var before_id3    = methodToolTip["before_id3"];     // 前回クリックのツールチップ3ID

	//-----------------------------------------------------
	// step.2 beforeがnullの場合（初回クリックの場合）
	// クリックされたツールチップを拡大し、マーカーを
	// 手前に表示する
	if(before_key_id == null)
	{
		//-------------------------------------------------
		// step.3 ツールチップ2を表示
		layer.visibleZdcTooltipById(tool2id);

		//-------------------------------------------------
		// step.4 表示させたツールチップ2を最前面に
		tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

		//-------------------------------------------------------
		// step.5 選択されたmakerを手前に、それ以外を後ろに表示
		for(var for_in_id in marker_list){
			for_in_marker = marker_list[for_in_id];
			if(for_in_id == keyToolid){
				for_in_marker.setTopZIndex();
			}
			else
			{
				for_in_marker.setDefaultZIndex();
			}
		}
		//-------------------------------------------------
		// step.6 現状のツールチップ情報をbeforeへと格納
		setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id);

	}
	//-----------------------------------------------------
	// step.2 ver2 beforeがnullで無い場合
	// クリックしたマーカーとbeforeが同じであれば縮小処理
	// 異なればクリックしたマーカーの表示を行う
	else
	{
		//-------------------------------------------------
		// step.3 beforeと比較して同じであれば縮小処理
		// つまり拡大されたものが再度クリックされた場合
		if(before_key_id == keyToolid)
		{
			//---------------------------------------------
			// step.4 ツールチップ2を非表示する
			layer.hiddenZdcTooltipById(tool2id);

			//----------------------------------------------
			// step.5 全てのマーカーのZ-indexを初期化する
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				for_in_marker.setDefaultZIndex();
			}
			//----------------------------------------------
			// step.6 保持していた前回のツールチップを初期化
			setToolTipBeforeNull(mode_type);

		}
		//-------------------------------------------------------
		// step.3 beforeと比較して値が異なればbeforeの縮小処理を行い、
		// クリックされたtool2idの拡大処理
		else
		{
			//---------------------------------------------------
			// step.4 beforeにセットされているツールチップを非表示
			layer.hiddenZdcTooltipById(before_id2);
			layer.hiddenZdcTooltipById(before_id3);

			//---------------------------------------------------
			// step.5 ツールチップ2を表示する（詳細）
			layer.visibleZdcTooltipById(tool2id);

			//---------------------------------------------------
			// step.6 クリックしたツールチップのzindex値を変更
			tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

			//---------------------------------------------------
			// step.7 選択されたmakerを手前に、それ以外を後ろに表示
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				if(for_in_id == keyToolid){
					for_in_marker.setTopZIndex();
				}else{
					for_in_marker.setDefaultZIndex();
				}
			}

			//----------------------------------------------------
			// step.8 クリックしたツールチップのIDをbeforeに格納
			setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id);
		}
	}
	//------------------------------------------------
	// last step 検索結果をスクロールさせる
	$paneTarget.stop().scrollTo('#scroll_'+count,900);
}

//----------------------------------------------------------------------
/**
 * ツールチップの大小を切り替える（カテゴリ検索用　重複用）
 * name chgToolTipFormatMulti
 */
//----------------------------------------------------------------------
var chgToolTipFormatMulti = function(mode_type,keyToolid,tool1id,tool2id,tool3id,totalCount,multiCount)
{
	var methodToolTip = tooltipValueSet(mode_type,keyToolid,tool1id,tool2id,tool3id,"multi");
	var marker_list   = methodToolTip["marker_list"];
	var tool1         = methodToolTip["tool1"];
	var tool2         = methodToolTip["tool2"];
	var tool3         = methodToolTip["tool3"];
	var marker        = methodToolTip["marker"];
	var layer         = methodToolTip["layer"];
	var before_key_id = methodToolTip["before_key_id"];
	var before_id1    = methodToolTip["before_id1"];
	var before_id2    = methodToolTip["before_id2"];
	var before_id3    = methodToolTip["before_id3"];
	var multi_disp    = methodToolTip["multi_disp"];

	//------------------------------------------
	// beforeがnullの場合（初回クリックの場合）
	// クリックされたツールチップを拡大する
	if(before_key_id == null)
	{
		// ツールチップ3を表示する
		layer.visibleZdcTooltipById(tool3id);
		// クリックしたツールチップのzindex値を変更
		tool3.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);
		// クリックしたツールチップのIDをbeforeに格納
		setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id);

		// 選択されたmakerを手前に、それ以外を後ろに表示
		for(var for_in_id in marker_list){
			for_in_marker = marker_list[for_in_id];
			if(for_in_id == keyToolid){
				for_in_marker.setTopZIndex();
			}else{
				for_in_marker.setDefaultZIndex();
			}
		}
	}
	else
	{
		//-----------------------------------------------------------
		// 重複ツールチップ2,3同時表示中の場合は両方とも非表示
		if(before_key_id == keyToolid && multi_disp)
		{
			// 重複ツールチップ2,3表示中フラグをリセット
			multiDispFlg(mode_type,false);

			// beforeツールチップ2,3を非表示とする
			layer.hiddenZdcTooltipById(before_id2);
			layer.hiddenZdcTooltipById(before_id3);

			// 保持していた前回のツールチップを初期化
			setToolTipBeforeNull(mode_type);

			// マーカーのzindex値を初期化する
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				for_in_marker.setDefaultZIndex();
			}
		}
		//-----------------------------------------------------------
		// beforeと比較して同じであれば縮小処理
		// つまり拡大されたものが再度クリックされた場合
		else if(before_key_id == keyToolid && before_id2 == tool2id)
		{
			// ツールチップ2,3を非表示とする
			layer.hiddenZdcTooltipById(tool2id);
			layer.hiddenZdcTooltipById(tool3id);

			// 保持していた前回のツールチップを初期化
			setToolTipBeforeNull(mode_type);

			// マーカーのzindex値を初期化する
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				for_in_marker.setDefaultZIndex();
			}
		}
		//----------------------------------------------------------------------
		// beforeと比較して値が異なればbeforeの縮小処理を行い、
		// クリックされたtoolid,tool2idの拡大処理
		else
		{
			// beforeツールチップ2,3を非表示とする
			layer.hiddenZdcTooltipById(before_id2);
			layer.hiddenZdcTooltipById(before_id3);

			// ツールチップ3を表示する
			layer.visibleZdcTooltipById(tool3id);
			// クリックしたツールチップのzindex値を変更
			tool3.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

			// クリックしたツールチップのIDをbeforeに格納
			setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id);

			// 選択されたmakerを手前に、それ以外を後ろに表示
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				if(for_in_id == keyToolid){
					for_in_marker.setTopZIndex();
				}else{
					for_in_marker.setDefaultZIndex();
				}
			}
		}
	}
}
/**
 * ツールチップの大小を切り替える
 * 検索結果リスト用
 * @name chgToolTipFormatList
 * @param keyToolid keyツールチップID
 * @param tool1id ツールチップID1
 * @param tool2id ツールチップID2
 * @param tool3id ツールチップID3
 */
var chgToolTipFormatList = function(mode_type,keyToolid,tool1id,tool2id,tool3id)
{
	//-----------------------------------------------------
	// step.1 共通データ格納処理の実行
	// これをやることで検索どの検索を行うのかを意識させない
	var methodToolTip = tooltipValueSet(mode_type,keyToolid,tool1id,tool2id,tool3id,"");

	var marker_list   = methodToolTip["marker_list"];    // 生成したマーカーオブジェクトのリスト
	var tool1         = methodToolTip["tool1"];          // ツールチップ1オブジェクト
	var tool2         = methodToolTip["tool2"];          // ツールチップ2オブジェクト
	var tool3         = methodToolTip["tool3"];          // ツールチップ3オブジェクト
	var marker        = methodToolTip["marker"];         // マーカーオブジェクト
	var layer         = methodToolTip["layer"];          // レイヤーオブジェクト
	var before_key_id = methodToolTip["before_key_id"];  // 前回クリックのツールチップキーID
	var before_id1    = methodToolTip["before_id1"];     // 前回クリックのツールチップ1ID
	var before_id2    = methodToolTip["before_id2"];     // 前回クリックのツールチップ2ID
	var before_id3    = methodToolTip["before_id3"];     // 前回クリックのツールチップ3ID

	//----------------------------------------------------------
	// step.2 既にオープンされているツールチップがあれば追加処理
	if(before_key_id != null)
	{
		//------------------------------------------------------
		// step.3 beforeツールチップ2,3を非表示とする
		layer.hiddenZdcTooltipById(before_id2);
		layer.hiddenZdcTooltipById(before_id3);
	}
	//----------------------------------------------------------
	// step.4 ツールチップ2を表示する
	layer.visibleZdcTooltipById(tool2id);

	//----------------------------------------------------------
	// step.5 クリックしたツールチップのzindex値を変更
	tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

	//----------------------------------------------------------
	// step.6 選択されたmakerを手前に、それ以外を後ろに表示
	for(var for_in_id in marker_list){
		for_in_marker = marker_list[for_in_id];
		if(for_in_id == keyToolid){
			for_in_marker.setTopZIndex();
		}else{
			for_in_marker.setDefaultZIndex();
		}
	}

	//----------------------------------------------------------
	// step.7 クリックしたツールチップのIDをbeforeに格納
	setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id);
}
/**
 * ツールチップの大小を切り替える（重複用）
 * 検索結果リスト用
 * @name chgToolTipFormatList
 * @param keyToolid keyツールチップID1
 * @param tool1id ツールチップID1
 * @param tool2id ツールチップID2
 */
var chgToolTipFormatListMulti = function(mode_type,keyToolid,tool1id,tool2id)
{
	var tool3id = "";
	var methodToolTip = tooltipValueSet(mode_type,keyToolid,tool1id,tool2id,tool3id,"multi");
	var marker_list   = methodToolTip["marker_list"];
	var tool1         = methodToolTip["tool1"];
	var tool2         = methodToolTip["tool2"];
	var tool3         = methodToolTip["tool3"];
	var marker        = methodToolTip["marker"];
	var layer         = methodToolTip["layer"];
	var before_key_id = methodToolTip["before_key_id"];
	var before_id1    = methodToolTip["before_id1"];
	var before_id2    = methodToolTip["before_id2"];
	var before_id3    = methodToolTip["before_id3"];


	//------------------------------------------
	// beforeがnullの場合（初回クリックの場合）
	// ツールチップ2を表示する
	if(before_key_id == null)
	{
		// ツールチップ2を表示する（詳細）
		layer.visibleZdcTooltipById(tool2id);
		// クリックしたツールチップのzindex値を変更
		tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

		// クリックしたツールチップのIDをbeforeに格納
		setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,tool3id,"","","1");

		// 選択されたmakerを手前に、それ以外を後ろに表示
		for(var for_in_id in marker_list){
			for_in_marker = marker_list[for_in_id];
			if(for_in_id == keyToolid){
				for_in_marker.setTopZIndex();
			}else{
				for_in_marker.setDefaultZIndex();
			}
		}
	}
	else
	{
		// 同じ重複アイコンをクリック
		// beforeのツールチップ2を非表示するにして、クリックされたアイコンのツールチップ2を表示
		if(before_key_id == keyToolid)
		{
			// beforeツールチップ2を非表示する
			layer.hiddenZdcTooltipById(before_id2);

			// ツールチップ2を表示する（詳細）
			layer.visibleZdcTooltipById(tool2id);
			// クリックしたツールチップのzindex値を変更
			tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

			// クリックしたツールチップのIDをbeforeに格納
			setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,"");

			// 選択されたmakerを手前に、それ以外を後ろに表示
			for(var for_in_id in marker_list){
				for_in_marker = marker_list[for_in_id];
				if(for_in_id == keyToolid){
					for_in_marker.setTopZIndex();
				}else{
					for_in_marker.setDefaultZIndex();
				}
			}

			// beforeツールチップ3に値があれば重複ツールチップ2,3同時表示中フラグを立てる
			if(before_id3){
				multiDispFlg(mode_type,true);
			}else{
				multiDispFlg(mode_type,false);
			}
		}

		// 異なる重複アイコンをクリック
		// beforeのツールチップ2,3を非表示するにして、クリックされたアイコンのツールチップ2を表示
		else
		{
			// beforeツールチップ2を非表示する
			layer.hiddenZdcTooltipById(before_id2);
			layer.hiddenZdcTooltipById(before_id3);

			// ツールチップ2を表示する（詳細）
			layer.visibleZdcTooltipById(tool2id);
			// クリックしたツールチップのzindex値を変更
			tool2.setZdcTooltipZindex(MAP_TOOLTIP_ZINDEX_FRONT);

			// クリックしたツールチップのIDをbeforeに格納
			setToolTipBefore(mode_type,keyToolid,tool1id,tool2id,"");
//					marker.setDefaultZIndex();

			// 選択されたmakerを手前に、それ以外を後ろに表示
			for(var for_in_id in CLIENT_MARKER_OBJLIST){
				for_in_marker = CLIENT_MARKER_OBJLIST[for_in_id];
				if(for_in_id == keyToolid){
					for_in_marker.setTopZIndex();
				}else{
					for_in_marker.setDefaultZIndex();
				}
			}

			// ツールチップ3に値があれば重複ツールチップ2,3同時表示中フラグを立てる
				if(before_id3){
					multiDispFlg(mode_type,true);
				}else{
					multiDispFlg(mode_type,false);
				}
			}
		}
}

/**
 * [description]
 * ツールチップを非表示状態にする
 * @param layer 対象のアイコンがあるレイヤーオブジェクト
 * @param toolid 隠したいツールチップID
 * @param tool2id 表示させたいツールチップID
 */
var hiddenTooltip = function(layer,toolid,tool2id)
{
	layer.hiddenZdcTooltipById(toolid);
	layer.visibleZdcTooltipById(tool2id);
}
/**
 * [description]
 * ツールチップを表示状態にする
 * @param layer 対象のアイコンがあるレイヤーオブジェクト
 * @param toolid 表示させたいツールチップID
 * @param tool2id 隠したいツールチップID
 */
var visibleTooltip = function(layer,toolid,tool2id)
{
	layer.hiddenZdcTooltipById(tool2id);
	layer.visibleZdcTooltipById(toolid);
}
/**
 * [description]
 * ツールチップを非表示状態にする
 * @param layer 対象のアイコンがあるレイヤーオブジェクト
 * @param toolid 隠したいツールチップID
 * @param tool2id 表示させたいツールチップID
 */
var hiddenTooltipMode = function(mode_type,toolid,tool2id)
{
	var layer = getLayerFromMode(mode_type);
	layer.hiddenZdcTooltipById(toolid);
	layer.visibleZdcTooltipById(tool2id);
}
/**
 * [description]
 * ツールチップを表示状態にする
 * @param layer 対象のアイコンがあるレイヤーオブジェクト
 * @param toolid 表示させたいツールチップID
 * @param tool2id 隠したいツールチップID
 */
var visibleTooltipMode = function(mode_type,toolid,tool2id)
{
	var layer = getLayerFromMode(mode_type);
	layer.hiddenZdcTooltipById(tool2id);
	layer.visibleZdcTooltipById(toolid);
}

/**
 * [description]
 * ツールチップの×ボタンを押した時のツールチップ削除処理
 * @param toolid 隠したいツールチップID
 * @param tool2id 表示させたいツールチップID
 */
var hiddenTooltipPeke = function(toolid,tool2id)
{
	IPPATU_TOOLTIP_BEFORE_ID    = null;
	IPPATU_TOOLTIP_BEFORE_ID2   = null;
	POI_TOOLTIP_BEFORE_ID    = null;
	POI_TOOLTIP_BEFORE_ID2   = null;
	POI_TOOLTIP_BEFORE_ID3   = null;

	POI_SEARCH_PEKE_LAYER.hiddenZdcTooltipById(tool2id);
	POI_SEARCH_PEKE_LAYER.visibleZdcTooltipById(toolid);
}
/**
 * [description]
 * ツールチップの×ボタンを押した時のツールチップ削除処理
 * @param toolid 隠したいツールチップID
 * @param tool2id 表示させたいツールチップID
 */
var hiddenTooltipPekeFreeword = function(toolid,tool2id)
{
	FREEWORD_TOOLTIP_BEFORE_ID    = null;
	FREEWORD_TOOLTIP_BEFORE_ID2   = null;
	FREEWORD_TOOLTIP_BEFORE_ID    = null;
	FREEWORD_TOOLTIP_BEFORE_ID2   = null;
	FREEWORD_TOOLTIP_BEFORE_ID3   = null;

	FREEWORD_SEARCH_PEKE_LAYER.hiddenZdcTooltipById(tool2id);
	FREEWORD_SEARCH_PEKE_LAYER.visibleZdcTooltipById(toolid);
}
/**
 * [description]
 * ユーザーレイヤーを作成する
 * @name createUserLayer
 */
function createSearchLayer()
{
	var tmpLayer = new ZdcUserLayer();
	tmpLayer.setLayerScale(1,18);
	tmpLayer.setLayerType('manual');
	return tmpLayer;
}

//------------------------------------------------------------
// データ取得
//------------------------------------------------------------
/**
 * [description]
 * phpファイルからjson形式でデータを取得
 * @name useAPIforJSON
 * @param php APIへのURL
 */
function useAPIforJSON(php)
{
	// XmlHttpRequestオブジェクトを作成
	http = ZdcXmlHttp.create();

	// 作成に失敗した場合はアラート
	if(!http) {
		jAlert('通信できません。オブジェクトの生成に失敗しました。','通信エラー');
		return false;
	}
	// データ通信開始
	http.open("GET",php,false);
	http.send(null);

	// XMLをJSON形式に変換するクラスをコール
	var xotree = new XML.ObjTree();

	// XMLをJSON形式にパースする
	var jsonFromXML = xotree.parseXML(http.responseText.trim());

	// データの返却
	return jsonFromXML;
}

/**
 * [description]
 * phpファイルからhtml形式でデータを取得
 * @name useAPIforHtml
 * @param php APIへのURL
 */
function useAPIforHtml(php)
{
	// XmlHttpRequestオブジェクトを作成
	http = ZdcXmlHttp.create();

	// 作成に失敗した場合はアラート
	if(!http) {
		jAlert('通信できません。オブジェクトの生成に失敗しました。','通信エラー');
		return false;
	}

	// データ通信開始
	http.open("GET",php,false);
	http.send(null);

	// データの返却
	return http.responseText;
}

/**
 * [description]
 * HttpRequestをabortする
 */
var abortXmlHttpRequest = function()
{
	xmlHttpRequest.abort();
}
/**
 * [description]
 * httpをabortする
 */
var abortHttp = function()
{
	http.abort();
}

function opendemaekanwin()
{
	window.open("http://demae-can.com/search/address/name/"+encodeURIComponent(MAP_CENTER_ADDRESS_CODE.slice(0,5))+"?author=zenrin");
	return;
}
function setDemaekanURL()
{
	DOC.getElementById("demaekan_url").href = "javascript:opendemaekanwin();";
}

function setCenterAreaAddress()
{
	DOC.getElementById("center_area_address").innerHTML = "<p class='list-circle'>"+MAP_CENTER_ADDRESS+"</p>";
}
// 指定したIDの高さを変更（基本MAP専用）
function changeHeight(id){
	var obj=DOC.all && DOC.all(id)
	|| DOC.getElementById && DOC.getElementById(id);
	if(obj){
		clientSize=getWindowClientSize();
		obj.style.height=""+((clientSize.height)-170)+"px";
	}
	// 地図自体の大きさ変更
	var wsize = map.getMapWindowSize();
	map.resizeMapWindow(wsize.top, wsize.left, DOC.body.clientWidth-wsize.left, DOC.body.clientHeight-wsize.top-165);
	map.removeMapScaleBar();
	map.addMapScaleBar(new ZdcScaleBar(),5,-20);
}

// マップイベント後、この地域のプロフィールへ
function changeLinkToAreaProfile()
{
	// ドロップダウンメニュー用県コード
	BEFORE_MAP_CENTER_PREFECTURE_CODE = MAP_CENTER_ADDRESS_CODE.substring(0,2);
	// ドロップダウンメニュー用市区町村コード
	BEFORE_MAP_CENTER_MUNICIPALITY_CODE = MAP_CENTER_ADDRESS_CODE.substring(2,5);

	// API呼び出し先設定
	php = 'api/chkProfileArea.php?pid='+BEFORE_MAP_CENTER_PREFECTURE_CODE+'&mid='+BEFORE_MAP_CENTER_MUNICIPALITY_CODE;
	// API呼び出し(結果html取得)
	result_html = useAPIforHtml(php);
	var profile_url = "";
	// 都道府県エリア表示
	if(result_html == "1")
	{
		profile_url = "/profile/prefectureprof/pid/"+BEFORE_MAP_CENTER_PREFECTURE_CODE;
	}
	// 市区町村エリア表示
	else if(result_html == "2")
	{
		profile_url = "/profile/municipalityprof/pid/"+BEFORE_MAP_CENTER_PREFECTURE_CODE+"/mid/"+BEFORE_MAP_CENTER_MUNICIPALITY_CODE;
	}
	// デフォルト表示
	else
	{
		profile_url = "/profile/prefectureprof/pid/"+BEFORE_MAP_CENTER_PREFECTURE_CODE;
	}
}


//地図上のアイコンを削除する
function mapIconDelete() {
	// アイコンOFF制御
	// 業種検索のレイヤーのdisplayをOFFする
	if(POI_SEARCH_LAYER != null){
		POI_SEARCH_LAYER.doc.style.display='none';
	}
	// 一発検索のレイヤーのdisplayをOFFする
	if(IPPATU_SEARCH_LAYER != null){
		IPPATU_SEARCH_LAYER.doc.style.display='none';
	}
	// シーン検索のレイヤーのdisplayをOFFする
	if(SCENE_SEARCH_LAYER != null){
		SCENE_SEARCH_LAYER.doc.style.display='none';
	}
	// お気に入りレイヤーのdisplayをOFFする
	if(FAVORITE_SEARCH_LAYER != null){
		FAVORITE_SEARCH_LAYER.doc.style.display='none';
	}
	// フリーワードレイヤーのdisplayをOFFする
	if(FREEWORD_LAYER != null){
		FREEWORD_LAYER.doc.style.display='none';
	}
	// ジモトラブインフォレイヤーのdisplayをOFFにする
	if(LOCAL_LOVE_INFO_LAYER != null){
		LOCAL_LOVE_INFO_LAYER.doc.style.display='none';
		DOC.getElementById(LOCAL_LOVE_INFO_ID).style.display = 'none';
	}
}

//地図のアイコン制御
function icon_display() {
	// アイコンON
	if(DOC.getElementById('icon').value == ""){
		// アイコンON
		DOC.getElementById('icon').value = "1";
		// 画像ON
		DOC.getElementById('icon_img').src = '/image/map/bg_checked_index.gif';
		// タイマーON
		mapIconDisplayTimer();
	// アイコンOFF
	} else {
		// アイコンOFF
		DOC.getElementById('icon').value = "";
		// 画像OFF
		DOC.getElementById('icon_img').src = '/image/map/bg_nocheck_index.gif';
		// タイマーOFF
		mapIconDeleteTimer('/img/pc/map/bg_checked_index.gif');
	}
}

// おしゃれ天気予報画像表示
function weatherImageDisp() {
	aNodeTenki = DOC.createElement('a');
	aNodeTenki.href= "javascript:weatherChangeSave();";
	imgNodeTenki = DOC.createElement('img');
	imgNodeTenki.setAttribute("src", "/image/map/btn_weather_index.gif");
	imgNodeTenki.setAttribute("width", "89");
	imgNodeTenki.setAttribute("height", "24");
	imgNodeTenki.setAttribute("alt", "おしゃれ天気");
	aNodeTenki.appendChild(imgNodeTenki);
	target = DOC.getElementById('weather-disp');
	if (target.firstChild != null){
		target.removeChild(target.firstChild);
	}
	target.appendChild(aNodeTenki);
}

// お気に入り地図に追加画像表示
function favoriteMapImageDisp(login_flg) {
	aNodeMap = DOC.createElement('a');
	aNodeMap.href= "javascript:favoriteMapRegist(" + login_flg + ");";
	imgNodeMap = DOC.createElement('img');
	imgNodeMap.setAttribute("src", "/image/map/btn_add_favorite_index.gif");
	imgNodeMap.setAttribute("width", "132");
	imgNodeMap.setAttribute("height", "24");
	imgNodeMap.setAttribute("alt", "お気に入り地図に追加");
	aNodeMap.appendChild(imgNodeMap);
	target = DOC.getElementById('add-favorite-disp');
	if (target.firstChild != null){
		target.removeChild(target.firstChild);
	}
	target.appendChild(aNodeMap);
}

// ルート検索画像表示
function routeSearchImageDisp() {
	// ルート検索ボタン表示
	aNodeRoute = DOC.createElement('a');
	aNodeRoute.href= "javascript:routeNaviChangeSave();";
	imgNodeRoute = DOC.createElement('img');
	imgNodeRoute.setAttribute("src", "/image/map/route/route_search.png");
	imgNodeRoute.setAttribute("width", "83");
	imgNodeRoute.setAttribute("height", "24");
	imgNodeRoute.setAttribute("alt", "ルート検索");
	aNodeRoute.appendChild(imgNodeRoute);
	target = DOC.getElementById('route-disp');
	if (target.firstChild != null){
		target.removeChild(target.firstChild);
	}
	target.appendChild(aNodeRoute);
}

//お気に入り地図に追加画像表示
function favoriteMapImageDisp() {
	aNodeMap = DOC.createElement('a');
	aNodeMap.href= "javascript:favoriteMapRegist();";
	imgNodeMap = DOC.createElement('img');
	imgNodeMap.setAttribute("src", "/image/map/btn_add_favorite_index.gif");
	imgNodeMap.setAttribute("width", "132");
	imgNodeMap.setAttribute("height", "24");
	imgNodeMap.setAttribute("alt", "お気に入り地図に追加");
	aNodeMap.appendChild(imgNodeMap);
	target = DOC.getElementById('add-favorite-disp');
	if (target.firstChild != null){
		target.removeChild(target.firstChild);
	}
	target.appendChild(aNodeMap);
}


//Twitter画像表示
function twitterMapImageDisp() {
	aNodeMap = DOC.createElement('a');
	aNodeMap.href= "javascript:sendMapTweet();";
	imgNodeMap = DOC.createElement('img');
	imgNodeMap.setAttribute("src", "/image/map/twitter_map.gif");
	imgNodeMap.setAttribute("width", "132");
	imgNodeMap.setAttribute("height", "24");
	imgNodeMap.setAttribute("alt", "twitter");
	aNodeMap.appendChild(imgNodeMap);
	target = DOC.getElementById('twitter-disp');
	if (target.firstChild != null){
		target.removeChild(target.firstChild);
	}
	target.appendChild(aNodeMap);
}


//Twitterつぶやく（地図上）
function sendMapTweet() {
	url = encodeURIComponent("http://actiz.jp/local/index/lon/" + MAP_CENTER_POINT_LON + "/lat/" + MAP_CENTER_POINT_LAT + " #Actiz");
	PopupWindow("http://twitter.com/home?status=" + url );
}

//Twitterつぶやく（店舗）
function sendShopTweet(url) {
	url = encodeURIComponent("http://actiz.jp/" + url + " #Actiz");
	PopupWindow("http://twitter.com/home?status=" + url );
}

function sleep_busy(wait) {
	var start = (new Date()).getTime();
	while (true) {
		if ((new Date()).getTime() >= start + wait * 1) break;
	}
}
// 地図画面業種・シーン検索第三階層popup表示
function faceboxInnerHtml(id,api,code){
	//--------------------------
	// 情報取得
	//--------------------------
	// API呼び出し先設定
	var php = "/api/"+api+"?code="+code+"&p_code="+BEFORE_MAP_CENTER_PREFECTURE_CODE+"&m_code="+BEFORE_MAP_CENTER_MUNICIPALITY_CODE;
	// API呼び出し(結果html取得)
	result_html = useAPIforHtml(php);
	DOC.getElementById(id).innerHTML = result_html;
}
/**
 * ページャー件数表示(短縮用)
 * @name getPagerDispStr
 */
var getPagerDispStr = function(all,start,end)
{
	return "<b>" + all + "</b>" + "件中　" + "<b>" + start + "</b>" + "件目～" + "<b>" + end + "</b>" + "件目表示<br />";
}
/**
 * CRMポップアップ表示
 */
function PopupCrmWindow(kwd1,kwd2,kwd3) {
	var mWinName = 'myPop';
	var mOption = 'width=1000, height=1000, location=no, menubar=no, toolbar=no, scrollbars=yes, resizable=yes';
	pUrl = CRM_URL + "?kwd1=" + encodeURIComponent(kwd1) + "&kwd2=" + encodeURIComponent(kwd2) ;
	if(kwd3 != 'undefined') {
		pUrl += "&kwd3=" + encodeURIComponent(kwd3);
	}
	window.open(pUrl, mWinName, mOption);
}
/**
 * 検索結果の背景色を変更する
 *
 */
var chgBackGround = function(id)
{
	// 検索結果の背景色を一回初期化
	if($(".mypage-store-normal").size() > 0)
	{
		$(".mypage-store-normal").css("background-color","#f7f7f7");
	}
	// 指定されたものの色を指定色に変更
	if($("#"+id).size() > 0)
	{
		$("#"+id).css("background-color","#ffdde1");
	}
}
/**
 * マイページポップアップ処理
 * @param url　遷移先URL
 */
function changeMypageWindow(url,w,h)
{
	var winOpen ;
    if(!window.opener || window.opener.closed)
    {
		var x = (screen.width - w)/ 2;
		var y = (screen.height - h)/ 2;
    	winOpen = window.open(url, 'mypage_window', 'screenX='+x+',screenY='+y+',left='+x+',top='+y+', width='+w+', height='+h+', scrollbars=yes,resizable=yes');
    	winOpen.focus();
    }
    else
    {
        window.blur();
        window.opener.location.href = url;
        window.opener.focus();
    }
}

