var url = "/soudan";
var target_elm2;
var target_elm3;
var x;
var y;
// レイヤーに表示するマーカを格納する配列を用意
// ID="result"のdiv要素に表示されている物件データと紐付けるため
marker = new Array(10);

//ロード時にタブを開く。
//mode、large、midの値を使用
function loadInit(target_elm) {
	var mode = target_elm.attr("id");
	
	$.post( url + "/ctrl?evt=MapSearch", {mode : mode, block : "1", arg1 : "", arg2 : "", arg3 : ""}, tab_create1);
	
	function tab_create1(dt) {
		tab_open(target_elm, dt, 2);
		
		var large = $("#large").val();
		
		if (large == '') {
			return;
		}
		
		if ($("#2").find(":contains(\"" + large + "\")").html() != null) {
			target_elm2 = $("#2").find("td:contains(\"" + large + "\")");
			$.post(url + "/ctrl?evt=MapSearch", {mode : mode, block : "2", arg1 : large, arg2 : "", arg3 : ""}, tab_create2);
		}
	}
	
	function tab_create2(dt) {
		tab_open(target_elm2, dt, 3);
		
		if (mode == "area") {
			return;
		}
		var mid = $("#city").val();
		
		if (mid == '') {
			return;
		}
		if ($("#3").find(":contains(\"" + mid + "\")").html() != null) {
			target_elm3 = $("#3").find("td:contains(\"" + mid + "\")");
			$.post(url + "/ctrl?evt=MapSearch", {mode : mode, block : "3", arg1 : mid, arg2 : "", arg3 : ""}, tab_create3);	
		}
	}
	
	function tab_create3(dt) {
		tab_open(target_elm3, dt, 4);
	}
}

//タブを開く。
//open_target	開く対象のタブObject
//dt			開いたタブに挿入するデータ
//block_num		挿入するブロック位置
function tab_open(open_target, dt, block_num) {
	//open_target.nextAll(".insPosition:first").append("<div class=\"block\" id=\"" + block_num + "\">");
	open_target.closest("tr").next().find(".insPosition").append("<div class=\"block\" id=\"" + block_num + "\">");
	
	resp_init(dt, $("#" + block_num));
	
	//閉じるボタンの可視化
	open_target.find(".close").css("display", "inline");
	
	//被選択状態の追加
	open_target.addClass("slct");
	
}

//イベントを追加する。DOM作成ごとにイベントをバインドさせるため隔離。
function ivent(target_elm) {
	//タブのマウスオーバーイベント
	target_elm.find(".tab_class").mouseover(function () {
		$(this).addClass("tabHover");
	});
	
	//タブのマウスアウトイベント
	target_elm.find(".tab_class").mouseout(function () {
		$(this).removeClass("tabHover");
	});
	
	//タブ押下時
	target_elm.find(".tab_class").click(function (){
		tab_click($(this));
	});
	
	//タブの閉じるボタン押下時
	target_elm.find(".close").click(function () {
		//タブを閉じる
		tab_close($(this));
		//タブのセレクト状態解除
		$(this).closest(".tab_class").removeClass("slct");
		//タブのアクションが実行されないため、falseをリターンし閉じるボタン押下処理を終了させる
		
		return false;
	});
}

function resp_init(dt, tgt) {
	var cnt;
	var dts = dt.split("|");
	var i;
	
	var element = "<table cellspacing=1><tr>";
	
	for (i = 0 ; i < dts.length; i++) {
		var str = dts[i].split("_");
		
		if (i != 0 && i % 3 == 0) {
			element += "</tr><tr><td colspan=\"3\" class=\"insPosition\"></td></tr></table><table cellspacing=1><tr>";
		}
		
		if (str.length >= 3) {
			var coodinates = str[1].split(",");
			element += "<td class=\"tab_class\">" + str[0] + "<span class=\"latitude\">" + coodinates[0] + "</span><span class=\"longitude\">" + coodinates[1] + "</span><span class=\"analog\">" + str[2] + "</span><span class=\"close\">▲</span></td>";
		} else if (str.length >= 2) {
			var coodinates = str[1].split(",");
			element += "<td class=\"tab_class\">" + str[0] + "<span class=\"latitude\">" + coodinates[0] + "</span><span class=\"longitude\">" + coodinates[1] + "</span><span class=\"close\">▲</span></td>";
		} else {
			element += "<td class=\"tab_class\">" + str[0] + "<span class=\"close\">▲</span></td>";
		}
		
		cnt = i;
	}
	if (i % 3 != 0) {
		for (var j = 0; j < i % 3; i++) {
			element += "<td class=\"empty_tab_class\">&nbsp;</td>";
		}
	}
	element += "<tr><td colspan=\"3\" class=\"insPosition\"></td></tr>";
	element += "</table>";
	
	tgt.html("");
	tgt.append(element);
	
	// タブの色を変更する
	paintTab();
	
	ivent(tgt);
	
	return cnt;
}

// タブがクリックされたときの処理を行う。
function tab_click(target_elm) {
	// 読み込み中の場合は、処理を行わない
	if($("#search_exec").attr("disabled")) {
		return;
	}
	
	//選択しているタブを再度クリックしてもアクションを起こさない。
	if(target_elm.find(".close").css("display") == "inline") {
		return;
	}
	
	$("#1").find(".tab_class").css("background", "#F5F5F8");
	
	var tgt;
	//同一ブロックの他のタブ（開かれていればそれ以下のタブも）を排他
	tgt = target_elm.closest(".block").find(".slct");
	tab_close(tgt.find(".close"));
	tgt.closest(".tab_class").removeClass("slct");
	
	selected = target_elm.closest(".block").find(".selected");
	// 選択されたタブがジャンルでなければ
	if (getParentTabName(target_elm) != "genre") {
		selected.closest(".tab_class").removeClass("selected");
	}
	
	//更新対象ブロック
	var tgt = (eval(target_elm.closest(".block").attr("id")) + 1);
	
	//更新者
	var owner = target_elm;
	//検索モード（エリア、都道府県、ジャンルのいずれか）
	var mode = getParentTabName(owner);
	//自ブロック
	var block = target_elm.closest(".block").attr("id");
	//親ブロック
	var parent = eval(block) - 1;
	//検索対象文字列
	var arg1_param = owner.html().substring(0, owner.html().indexOf("<"));
	//検索補助文字列（親ブロックにて選択されているもの）
	var arg2_param = "";
	//検索補助文字列（id = "2"）
	var arg3_param = "";
	
	//親ブロックが存在している場合は補助文字列にそれを格納
	if(parent > 0) {
		arg2_param = $("#" + parent).find(".slct").html().substring(0, $("#" + parent).find(".slct").html().indexOf("<"));
		
		//IEの場合に挿入される改行を削除
		if(arg2_param.indexOf("\n") > -1) {
			arg2_param = arg2_param.substring(0, arg2_param.length - 2);
		}
		
		//IEの場合に挿入される改行を削除
		if(arg1_param.indexOf("\n") > -1) {
			arg1_param = arg1_param.substring(0, arg1_param.length - 2);	
		}
		
		//先祖ブロックであるid="2"の内容を格納
		if(parent > 1) {
			arg3_param = $("#2").find(".slct").html().substring(0, $("#2").find(".slct").html().indexOf("<"));
			
			//IEの場合に挿入される改行を削除
			if(arg3_param.indexOf("\n") > -1) {
				arg3_param = arg3_param.substring(0, arg3_param.length - 2);
			}
		}
	}
	
	$.ajax({
	url : url+"/ctrl?evt=MapSearch",
	type : "POST",
	data : {
		mode : mode,
		block : block,
		arg1 : arg1_param,
		arg2 : arg2_param,
		arg3 : arg3_param
	}, 
	success : tab_create
	});
	
	// サーバとの通信が成功したときに実行される。
	// 表示するタブを生成する。
	function tab_create(dt) {
		//返却値が無い場合（ = 最下位ノード）
		if(dt.length == 0) {
			//閉じるボタンを削除（表示する必要がない）
			owner.find(".close").remove();
			
			owner.addClass("selected");
			
			//「全部」を押下した場合
			if(owner.html() == "全部") {
				var sibling = owner.closest("div").find(".tab_class");
				sibling.find(".close").remove();
				
				owner.closest("div").find(".tab_class").addClass("selected");
				
				//同列ノードにある全ての小ジャンルを検索キーワードとする
				for(j = 0; j < sibling.length; j++)	{
					// 取得したジャンル名が『全部』だったら追加しない
					if (owner.html() != sibling[j].innerHTML) {
						add_serch_word(sibling[j].innerHTML);
					}
				}
			}
			//「全部」以外の場合
			else {
				// ID="src_cond_prot"のdiv要素に検索対象を格納する
				var selectedTab = owner.closest("div").find(".selected");
				var unselectTab = owner.closest("div").find(".tab_class");
				
				add_serch_word(owner.html());
			}
			paintTab();
		}
		//返却値がある場合
		else {
			//ジャンルかつ小ジャンルの場合
			if(mode == "genre" && block == "3" && dt.indexOf("|") != -1) {
				//最期に「全部」を追加
				dt += "|全部";
			}
			
			
			//挿入位置に新ブロックを作成
			//owner.nextAll(".insPosition:first").append("<div class=\"block\" id=\"" + tgt + "\">");
			owner.closest("tr").next().find(".insPosition").append("<div class=\"block\" id=\"" + tgt + "\">");
			
			//タブを作成
			resp_init(dt, $("#" + tgt));
			//閉じるボタンの可視化
			owner.find(".close").css("display", "inline");
			//被選択状態の追加
			owner.addClass("slct");
		}
	}
}

//タブを閉じる動作
function tab_close(tgt) {
	//閉じるボタンを不可視に
	tgt.hide(0, function() {
		tgt.css("display", "none");
	});

	//タブが展開した下位ブロックにスライドアップを追加
	$("#" + (eval(tgt.closest(".block").attr("id")) + 1)).slideUp("1000");
	//下位ブロックを削除
	$("#" + (eval(tgt.closest(".block").attr("id")) + 1)).remove();
	//※スライドアップの動作に待ち時間が無いため削除が動き、動作が発現しない。
}

function sh(id)
{
	$(id).show("slow");
}
	
//現状開いている最上位のタブが何かを検出する
function getParentTabName() {
	getParentTabName("");
}

function getParentTabName(own) {
	var tab = $("#1").find(".slct:first").attr("id");
	
	if(tab != null) {
		return tab;
	}
	
	return $(own).attr("id");
}

// 選択されたタブを格納する("area" or "pref")
var selectMode = "";

//検索条件に追加するmethod
function add_serch_word(word) {
	var tn = getParentTabName();
	
	// 都道府県とエリアのどちらが選択されたかを知りたい(setZoom()で使用)
	// ジャンルでの絞り込み検索を行った場合は、倍率を変更しない
	if (tn != "genre") {
		selectMode = tn;
	}
	
	//最上位タブがジャンルの場合
	if(tn == "genre") {
		//チェックボックスとジャンル名を格納
		var str = "<INPUT type=\"checkbox\" name=\"gnrSel\" checked>" + word;
		//現状指定されている検索条件を配列に格納
		var searchWord = $("body").find(".search_key_word");
		
		//現状の検索条件だけ繰り返し
		for(i = 0; i < searchWord.length ; i++) {
			var selectedWord = searchWord[i].innerHTML.substring(searchWord[i].innerHTML.indexOf(">") + 1, searchWord[i].innerHTML.length);
			
			//追加しようとする検索条件が既存の条件に既に存在していた場合、追加しない
			if(selectedWord == word) {
				return;
			}
		}
		//ジャンルの検索条件に追加
		$(".gnr_cont_side").append("<nobr><label class=\"search_key_word\">" + str + "</label></nobr><wbr>\n");
	}
	//最上位タブがエリア若しくは都道府県の場合
	else {
		//エリアの条件を書き換える
		$("#area_cont").html(word);
		// jspが持つhiddenに値をセットする(「検索ボタン」が押下された場合、必ずhiddenの値を使用するようにする)
		$("#searchLatitude").val($("#area_cont").find(".latitude").html());
		$("#searchLongitude").val($("#area_cont").find(".longitude").html());
		
		//市区町村名称、小エリア名称タブタブが選択された場合、検索を行う	add 20090528 Mori
		search(0,0);
	}
}

function add_search_Word_Init(word) {
	$("#area_cont").html(word);
}

//tgtに指定されたノード以下のチェックボックスを全てチェック状態にする
function select_all(tgt) {
	$("#"+tgt+" :checkbox").attr("checked", true);
}

//tgtに指定されたノード以下のチェックボックスを全て未チェック状態にする
function select_off(tgt) {
	$("#" + tgt + " :checkbox").removeAttr("checked");
}
		
//チェックされている上位のタグごと削除
function checkbox_del() {
	var checkboxes = $("#center-area,:checked").closest(".search_key_word");
	
	for (var i = 0; i < checkboxes.length; i++) {
		var checkbox = checkboxes[i].innerHTML.substring(checkboxes[i].innerHTML.indexOf(">") + 1, checkboxes[i].innerHTML.length);
		var selectedGenre = $("#left-area").find(".selected");
		
		for (var j = 0; j < selectedGenre.length; j++) {
			if (selectedGenre[j].innerHTML == checkbox || selectedGenre[j].innerHTML == "全部") {
				$("#left-area").find(":contains(\"" + selectedGenre[j].innerHTML + "\")").removeClass("selected");
			}
		}
	}
	
	var openTabName = $("#4").find(".tab_class");
	paintTab();
	$("#checkbox-area,:checked").closest(".search_key_word").remove();
}

// タブ作成時(表示時)にタブの色を塗り替える
function paintTab() {
	
	// タブの背景色を指定
	$("#left-area").find("#1").css("background", "#F7F7F7");
	$("#left-area").find("#2").css("background", "#E8E9EE");
	$("#left-area").find("#3").css("background", "#F5F5F8");
	$("#left-area").find("#4").css("background", "#FFFFFF");
	
	// タブ自体の色を指定
	$("#left-area").find("#1").find(".tab_class").css("background", "#F7F7F7");
	$("#left-area").find("#2").find(".tab_class").css("background", "#E8E9EE");
	$("#left-area").find("#3").find(".tab_class").css("background", "#F5F5F8");
	$("#left-area").find("#4").find(".tab_class").css("background", "#FFFFFF");
	
}

//地図検索
function search(lat, lon) {
	
	if($("#search_exec").attr("disabled")) {
		return;
	}
	
	//検索ボタンをdisable
	$("#search_exec").attr("disabled", "true");	
	$("#search_exec").attr("src","/img/mapsearch/but_search-gray.gif");
	
	var mode = "search";
	//ジャンル
	var arg1_param = "";
	// arg2_paramからarg5_paramまでに表示する地図の四隅の緯度経度を格納する
	// 最小経度
	var arg2_param = "";
	// 最小緯度
	var arg3_param = "";
	// 最大経度
	var arg4_param = "";
	// 最大緯度
	var arg5_param = "";
	
	
	//検索ボタン押下時
	if(lat == 0 && lon == 0) {
		var latitude;
		var longitude;
		
		// 初期遷移からジャンルのみを選択して検索ボタンが押下された場合、初期遷移で使用した緯度経度を取得する
		if ($("#searchLatitude").val() == 0 && $("#searchLongitude").val() == 0) {
			latitude = $("#latitude").val();
			longitude = $("#longitude").val();
		} else {
			latitude = $("#searchLatitude").val();
			longitude = $("#searchLongitude").val();
		}
		
		arg2_param = $("#area_cont").html().substring(0, $("#area_cont").html().indexOf("<"));
		
		// マップの中心座標に移動する
		transferMap(latitude, longitude);
		
		
		var aZdcBox = map.getMapBoundBox(new ZdcPoint(longitude, latitude, 2), map.getMapScale());
		
		arg2_param = aZdcBox.miny;
		arg4_param = aZdcBox.maxy;
		arg3_param = aZdcBox.minx;
		arg5_param = aZdcBox.maxx;
	} else {
		// 初期遷移およびマップ移動時。(初期遷移時は、ズームの変更を行わない)
		
		var nowPoint = map.getMapLocation();
		var aZdcBox = map.getMapBoundBox(nowPoint, map.getMapScale());
		
		arg2_param = aZdcBox.miny;
		arg4_param = aZdcBox.maxy;
		arg3_param = aZdcBox.minx;
		arg5_param = aZdcBox.maxx;
	}
	
	if(arg2_param == "") {
		alert("エリアが指定されていません。");
		//検索ボタンのdisableを解除
		$("#search_exec").removeAttr("disabled");
		
		return;
	}
	// 選択しているジャンルを格納
	arg1_param = getGnrString();
	
	// $.post()と同じ意味を持つメソッド。大きな違いとしてエラー時のコールバックなどの複雑な機能を定義できる。
	// ここで使用する分には、それほど大差はない。
	$.ajax({
		type : "POST",
		url : url + "/ctrl?evt=MapSearch",
		dataType : "xml",
		async: true,
		data: {
			mode : mode,
			arg1 : arg1_param,
			arg2 : arg2_param,
			arg3 : arg3_param,
			arg4 : arg4_param,
			arg5 : arg5_param
		},
		success : map_search
	});
	// 上の検索が成功した場合、実行されるメソッド。
	function map_search(dt) {
		// マップ上のマーカーの削除
		deleteMark();
		$("#result").find(".bukken").remove();
		$("観光情報", dt).each(ps);
		function ps(i, n) {
			// 検索結果の出力
			resultWriter(
				$(this).attr("ID番号"),
				$("一般名称", n).text(),
				$("写真", n).attr("ファイル"),
				$("コメントレコード", n).text(),
				$("代表点", n).attr("緯度"),
				$("代表点", n).attr("経度"),
				// 2010/09/21 add
				$("市区町村コード", n).text(),
				i
			);
		}
		//検索ボタンのdisableを解除
		$("#search_exec").removeAttr("disabled");
		$("#search_exec").attr("src","/img/mapsearch/but_search.gif");
		
		result_addEventListener($("#result"));
		var point = map.getMapLocation();
		if (point.my == lat && point.mx == lon) {
			openWindow(lat, lon);
		}
	}
}

//search_key_wordのジャンルをバーティカルバーで繋げた文字列を返す
function getGnrString() {

// 20090609　チェックが入っているジャンルのみ条件とするよう変更
//	var key_words = $("#gnr_cont").find(".search_key_word");
//	var ret_val = "";
//	for(k = 0; k < key_words.length; k++) {
//		if(k != 0) {
//			ret_val += "|";
//		}
//		var str = key_words[k].innerHTML
//		ret_val += str.substring(str.indexOf(">") + 1, str.length);
//	}
//	return ret_val;

	var key_words = $("#gnr_cont").find(".search_key_word");
	var ret_val = "";
	
	for(k = 0; k < key_words.length; k++) {
		var chk = key_words[k].getElementsByTagName("input").item(0).checked;
		if(chk){
			if(ret_val != "") {
				ret_val += "|";
			}
			var str = key_words[k].innerHTML
			ret_val += str.substring(str.indexOf(">") + 1, str.length);
		}
	}
	//alert(ret_val);
	return ret_val;
}

//検索Hit数繰り返し呼ばれる検索結果ライタ。MAPイベント、検索結果出力方法を記述
function resultWriter(id, name, photo, exam, lat, lon, cityCode, i) {
	//mapに吹き出し、座標、アイコンを出力する
	addMarkerMap(id, name, exam, lat, lon, photo, i);
	
	//一覧に情報を出力する
	$("#result").append("<div class=\"bukken\">");
	var bukken = $("#result").find(".bukken:last");
	bukken.append("<div class=\"b-tit\"><h1 class=\"bukkenName\">" + trimer(8, name) + "</h1></div>");
	bukken.append("<div class=\"img-set\">");
	
	if(photo == null) {
		bukken.find(".img-set:last").append("<img height=\"50\" width=\"80\" alt=\"画像イメージ\" src=\"../../img/mapsearch/bukken_img01.jpg\"/>");
	} else {
		bukken.find(".img-set:last").append("<img height=\"50\" width=\"80\" alt=\"画像イメージ\" src=http://www.nihon-kankou.or.jp/photo/" + photo + ">");
	}
	
	bukken.find(".img-set:last").append("<div class=\"syousai\"><img height=\"18\" border=\"0\" width=\"48\" alt=\"詳細\" src=\"../../img/mapsearch/but_shousai.gif\"/><div class=\"id\">" + id + "</div><div class=\"lat\">" + lat + "</div><div class=\"lon\">" + lon + "</div><div class=\"cnt\">" + i +"</div>");
	bukken.append("<p class=\"exam\">" + trimer(25, exam) + "</p>");
	// 市町村コードから適切なアナログを読み込む
	bukken.append("<img src=\"/photo/analog/pref_map/" + cityCode.substring(0, 2) + "/" + cityCode + ".gif?id=" + id + "\" width=\"0\" height=\"0\" border=\"0\"/>");
	bukken.append("</div><br clear=left>");
}

//検索結果にイベントを挿入する。
function result_addEventListener(target_elm) {
	//詳細画面表示
	target_elm.find(".syousai").click(function() {
		openBukkenDetail($(this).find(".id:first").text());
		//location.href= "/soudan/ctrl?evt=ShowBukkenDetail&SEARCH=SEARCH_MAP&ID=" + $(this).find(".id:first").text();
		return false;
	});
	
	//物件一覧の物件背景色
	target_elm.find(".bukken").mouseover(function () {
		$(this).addClass("bukkenHover");
	});
	target_elm.find(".bukken").mouseout(function () {
		$(this).removeClass("bukkenHover");
	});

	//物件一覧の物件をクリックした場合
	target_elm.find(".bukken").click(function () {
		ArticleCentering($(this).find(".lat").html(), $(this).find(".lon").html(), $(this).find(".cnt").html());
	});
}


//表示領域が確定している場合に、trm_len以降の文字列を切り取り、代わりに「...」を挿入する
function trimer(trm_len, str) {
	var dot = "...";
	
	if(str.length > trm_len) {
		return str.substring(0, trm_len) + dot;
	}
	
	return str;
}

// マップ描画に必要なフィールド
// JSPで生成したマップオブジェクトを受け取る
var map;
// 各メソッドで使用する
var userlay;

// マップの初期化メソッド
function setMap(mapObj) {
	// マップオブジェクトを受け取る
	map = mapObj;
	/* ユーザレイヤを作成する */
    userlay = new ZdcUserLayer();
    userlay.setLayerScale(10,18);
    // 縮尺レベル変更時にレイヤを自動削除する
    //userlay.setLayerType('auto');
    windowEvent();
}

/* マップに物件のマーカを追加
   
*/
function addMarkerMap(id, name, exam, lat, lon, photo, i) {
    /* アイコンを生成する */
    var icon = new ZdcIcon();
    icon.image = '/zmapad/zmapimg/mapicon02.gif';
    icon.size = new ZdcSize(20,34);
    icon.offset = new ZdcPixel(-10, -32);
	icon.msgoffset = new ZdcPixel(0,-31);
    /* マーカで緯度経度とアイコンを紐付ける */
    var mark = new ZdcMarker(new ZdcPoint(lon , lat, 2), icon);
	
    /* ユーザレイヤにマーカを追加する */
    userlay.addMarker(mark);
	
    /* 地図にユーザレイヤを追加する */
    map.addUserLayer(userlay);
	
	/* アイコンをクリックしたときに発生するイベントをキャッチ */
	ZdcEvent.addListener(mark, "mousedownmarker", function() {
		if(map.msgopenstatus()) {
			map.closeMsgWindow();
		}
		// クリックした座標を取得
		var nowPoint = map.getMapLocation();
		x = nowPoint.mx;
		y = nowPoint.my;
		// このthisはmarkerを指します
		this.openMsgWindow(this.point , this.title , this.node, true, 2, true);
	});
	
	// ウィンドウに表示するデータを作成する
    setBukkenData(mark, id, name, exam, lat, lon);
	marker[i] = mark;
	userlay.addMarker(mark);
}

/* 詳細画面別窓表示 add 20090528 Mori 物件詳細画面を別窓で開くよう変更 */
function openBukkenDetail(id){
	var link_bukken="/soudan/ctrl?evt=ShowBukkenDetail&SEARCH=SEARCH_MAP&ID=" + id;
	window.open(link_bukken,'_blank','width=970,menubar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes');
}

/* 物件データをマーカにセット */
function setBukkenData(marker, id, name, exam, lat, lon) {
	var title = document.createTextNode(name);
	var node = document.createElement('div');

	var link = document.createElement('a');
	var bukken_link="javascript:openBukkenDetail('" + id + "');";
	link.setAttribute('href', bukken_link);
	link.appendChild(document.createTextNode('詳細'));
	
	node.appendChild(document.createTextNode(name));
	node.appendChild(document.createElement('br'));
	node.appendChild(document.createElement('br'));
	node.appendChild(document.createTextNode(trimer(40, exam)));
	node.appendChild(document.createElement('br'));
	node.appendChild(link);
	
	marker.point = new ZdcPoint(lon, lat, 2);
	marker.title = title;
	marker.node  = node;
}

//指定した座標を地図の中心に移動させる。（再検索しない）
function ArticleCentering(lat, lon, i) {
	transferCenter(lat, lon);
	mark = marker[i];
	
	// マップに表示されているマーカが表示されない縮尺だったらデフォルト
	if (map.getMapScale() <= 9) {
		// マップに縮尺をセットする
		map.setMapScale(15);
	}
	
	// ウィンドウが開いていたら閉じる
	if(map.msgopenstatus()) {
    	map.closeMsgWindow();
    }
    
	mark.openMsgWindow(mark.point , mark.title , mark.node, true, 2, true);
}

// 再検索せずに指定した座標を中心位置としマップを移動させる
function transferCenter(lat, lon) {
	map.scrollToCenter(new ZdcPoint(lon, lat, 2));
}


// マップにレイヤーを追加する
// マップにイベントを追加する(イベントは、jQueryを使用)
function windowEvent() {
	// マウスアップ時のイベント
	$("#zdcemapad").mouseup(function(e) {
		// マウスダウン時とマウスアップ時の座標が異なれば検索を行う
		var nowPoint = map.getMapLocation();
		if ((nowPoint.mx != x || nowPoint.my != y) && !map.msgopenstatus()) {
			//$("#mouse").html("mouseup");
			
			// ある程度の縮尺で検索実行
			if (map.getMapScale() >= 10) {
				search(nowPoint.my, nowPoint.mx);
			}
		}
	});
	
	// マウスダウン時のイベント
	$("#zdcemapad").mousedown(function(e) {
		// マウスダウン時の座標を取得
		//$("#mouse").html("mousedown");
		
		if(map.msgopenstatus()) {
			map.closeMsgWindow();
		}
	});
	
	map.addUserLayer(userlay);
}

// 全マーカ削除。アイコンも削除
function deleteMark(){
    // マーカの削除
    for (k = 0; k < marker.length; k++) {
    	userlay.removeMarker(marker[k]);
    }
    
    // マーカ削除時にウィンドウが開いていたら閉じる
    if(map.msgopenstatus) {
    	map.closeMsgWindow();
    }
    
    // アイコンの削除
    userlay.clearMarker();
}

// マップの中心位置を移動する
function transferMap(latitude, longitude) {
	// マップを指定された中心位置まで移動する
	map.scrollToCenter(new ZdcPoint(longitude, latitude, 2));
	
	// マップの倍率を指定する
	setZoom();
	
	// モードをクリアする
	selectMode = "";
}

// 初期遷移時の縮尺を指定する
function initZoom(selectmode, zoom) {
	
	// ベタのHTMLから遷移した場合、selectmodeには、必ずどちらかの文字列が格納されている
	if (selectmode == "pref" || selectmode == "area") {
		// 持っているzoomを使用
		return zoom;
	} else {
		// zoomを持っていないのでデフォルト値(15)を使用
		return 15;
	}
}

// マップの縮尺を指定する
// ジャンルの絞込み検索を行った場合、縮尺の変更は行わない
function setZoom() {
	var zoom = 15;
	
	if (selectMode == "area") {
		// エリアを選択した場合は、縮尺の変更あり
		zoom = 6;
	} else if (selectMode == "pref") {
		// エリア以外(都道府県)が選択された場合、縮尺の変更あり
		zoom = 15;
	} else if (selectMode == "") {
		// ジャンルのみが選択された場合、縮尺の変更なし
		zoom = map.getMapScale();
	}
	
	// マップに縮尺をセットする
	map.setMapScale(zoom);
}

// マップの縮尺を取得する
// ジャンルの絞込み検索を行った場合、縮尺の変更は行わない
function getZoom() {
	var zoom = 15;
	
	if (selectMode == "area") {
		// エリアを選択した場合は、縮尺の変更あり
		zoom = 6;
	} else if (selectMode == "pref") {
		// エリア以外(都道府県)が選択された場合、縮尺の変更あり
		zoom = 15;
	}
	
	return zoom;
}

// 観光地検索の物件から遷移した場合、マーカのウィンドウを開く
function openWindow(lat, lon) {
	for (var i = 0; i < marker.length; i++) {
		var mark = marker[i];
		var point = mark.getPoint();
		
		if (lat == point.my && lon == point.mx) {
			mark.openMsgWindow(mark.point , mark.title , mark.node, true, 2, true);
		}
	}
}
