/* map ***************************************************************************************** */
/* メモリーを解放 */
window.onunload = function(){ GUnload(); }

/* オブジェクトの作成(XML取得用) */
function getXmlHttpObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {	
        try {
            xmlhttp = new XMLHttpRequest();
            xmlhttp.overrideMimeType("text/xml");
        } catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}

// 子ノード取得(XML)
function getChildText(elem,tagName) {
	if(!elem)return "";
	for( var i=0; i<elem.childNodes.length; i++ ) {
		var node = elem.childNodes[i];
		if( node.nodeType == 1 && node.tagName == tagName ) {
			var textnode = node.firstChild;
			if(textnode && textnode.nodeType == 3 ) {
				return textnode.nodeValue;
			} else {
				return "";	
			}
		}		
	}
}

/* ********************************************* */
// その他(置換処理など)
/* ********************************************* */
/* 最大件数設定 */
function setMaxCount(strValue) {
	if( n2s(strValue) != "" ) {
		intDataMax = parseInt(strValue,10);
		if( intDataMax > 100 ) {
			intDataMax = 100;
		}
	} else {
		intDataMax = 100;	
	}
	pmm_init();	// 配列の再設定
}

/* <br />追記 */
function brPlus(strValue) {
	if( strValue == "" ) {
		strValue = "";
	} else {
		strValue += "<br />";
	}
	return strValue;
}

/* null -> "" */
function n2s(strValue) {
	if( strValue == null ) { strValue = "";}
	return strValue;
}

/* 一括置換処理 */
function replaceAll(strBase,strBef,strAft) {
	var strReplase = "";
	
	strReplase = strBase.split(strBef);
	strReplase = strReplase.join(strAft);
	return strReplase;
}

/* パラメータを取得する関数 */
function parseParam() {
	var returnObj = {};
	var strUrl = document.location.search;
	//urlString = decodeURIComponent(urlString);
	if (strUrl==""||strUrl==null) return null;
	var strParam = strUrl.split('?')[1];
	var params = strParam.split('&');
	for(var i=0;i<params.length;i++){
		var kv = params[i].split('=');
		var key = kv[0];
		var value = kv[1];
		returnObj[key] = value;
	}
	return returnObj;
}

/* ********************************************* */
// その他(置換処理など) qlife用 
/* ********************************************* */
/* 診療科目置換処理 */
function replaceSbj(strSbjList) {
	var	strSbjName = "";
	var strSbj = strSbjList.split(":");
		
	for(var i=0; i<strSbj.length; i++) {
		
		if( i != 0 ) {
			strSbjName += ":";
		} else {
			strSbjName = "";
		}
		
		if (strSbj[i] == "01" ) {
			strSbjName += "内科";
		} else if (strSbj[i] == "02" ) {
			strSbjName += "外科";
		} else if (strSbj[i] == "03" ) {
			strSbjName += "循環器科";
		} else if (strSbj[i] == "04" ) {
			strSbjName += "呼吸器科";
		} else if (strSbj[i] == "05" ) {
			strSbjName += "胃腸科";
		} else if (strSbj[i] == "06" ) {
			strSbjName += "整形外科";
		} else if (strSbj[i] == "07" ) {
			strSbjName += "皮膚科";
		} else if (strSbj[i] == "08" ) {
			strSbjName += "泌尿器科";
		} else if (strSbj[i] == "09" ) {
			strSbjName += "肛門科";
		} else if (strSbj[i] == "10" ) {
			strSbjName += "脳神経外科";
		} else if (strSbj[i] == "11" ) {
			strSbjName += "放射線科";
		} else if (strSbj[i] == "12" ) {
			strSbjName += "リハビリテーション科";
		} else if (strSbj[i] == "13" ) {
			strSbjName += "麻酔科";
		} else if (strSbj[i] == "14" ) {
			strSbjName += "消化器科";
		} else if (strSbj[i] == "15" ) {
			strSbjName += "神経科";
		} else if (strSbj[i] == "16" ) {
			strSbjName += "小児科";
		} else if (strSbj[i] == "17" ) {
			strSbjName += "産婦人科";
		} else if (strSbj[i] == "18" ) {
			strSbjName += "眼科";
		} else if (strSbj[i] == "19" ) {
			strSbjName += "耳鼻咽喉科";
		} else if (strSbj[i] == "20" ) {
			strSbjName += "神経内科";
		} else if (strSbj[i] == "21" ) {
			strSbjName += "精神科";
		} else if (strSbj[i] == "22" ) {
			strSbjName += "形成外科";
		} else if (strSbj[i] == "23" ) {
			strSbjName += "心臓血管外科";
		} else if (strSbj[i] == "24" ) {
			strSbjName += "婦人科";
		} else if (strSbj[i] == "25" ) {
			strSbjName += "産科";
		} else if (strSbj[i] == "26" ) {
			strSbjName += "心療内科";
		} else if (strSbj[i] == "27" ) {
			strSbjName += "呼吸器外科";
		} else if (strSbj[i] == "28" ) {
			strSbjName += "リウマチ科";
		} else if (strSbj[i] == "29" ) {
			strSbjName += "アレルギー科";
		} else if (strSbj[i] == "30" ) {
			strSbjName += "皮膚泌尿器科";
		} else if (strSbj[i] == "31" ) {
			strSbjName += "性病科";
		} else if (strSbj[i] == "32" ) {
			strSbjName += "小児外科";
		} else if (strSbj[i] == "33" ) {
			strSbjName += "器官食道科";
		} else if (strSbj[i] == "34" ) {
			strSbjName += "美容外科";
		} else if (strSbj[i] == "35" ) {
			strSbjName += "歯科";
		} else if (strSbj[i] == "36" ) {
			strSbjName += "矯正歯科";
		} else if (strSbj[i] == "37" ) {
			strSbjName += "小児歯科";
		} else if (strSbj[i] == "38" ) {
			strSbjName += "歯科口腔外科";
		} else if (strSbj[i] == "50" ) {
			strSbjName += "動物病院";
		} else {
		}	
	}	
	return strSbjName;
}

/* map_common ********************************************************************************** */
var map;	// GoogleMap
var strSelect = "";	// 選択した条件(学校など)

/* Array */
var marker = null;			// マーカー
var marker_point = null;	// マーカー座標
var marker_message = null;	// 詳細リスト
var arrSearchList = null;	// 検索結果
var arrIcon = null;		// アイコン情報
var arrMarkerIcon = null;	// マーカーアイコン

/* 分割表示用(10件ごと) */
var intNowPoint = 0;	// 現在位置
var intBefPoint = 0;	// 1つ前の位置
var intDisplayMax = 10;	// 1度の表示件数
var intDataMax = 100;	// 取得MAX件数(100件)
var intStart;	// 開始位置
var intEnd;		// 終了位置

var intGisType;	// 施設情報の種別番号

var blnEvent = true;

var svContainer;
var viewMarker;
var lastMarkerLocation;

/* ホームをマーク */
var blnHomeFlag = false;
var homeMarker;

/* 基本設定 */
function pmm_init()  {
	marker = new Array(intDataMax);
	marker_point = new Array(intDataMax);
	marker_message = new Array(intDataMax);
	arrSearchList = new Array(intDataMax);
}

/* Googleマップ表示 */
var xmlHttpGis = getXmlHttpObject();
function pmm_premapsload(cash_log,cash_lat) {
	getAreaList();	// 都道府県位置情報取得
	pmm_init();
	if (GBrowserIsCompatible()) { 
	
		map = new GMap2(document.getElementById("map")); 
      	var point = new GLatLng(cash_log,cash_lat);		
		
		map.setCenter(point, 16,G_NORMAL_MAP); 
		map.addControl(new GSmallMapControl());
		
		bifurcatio();		
		GEvent.addListener(map, "dragend", function(){bifurcatio();} );	// mapのドラッグ終了
	}
}


/* STREET VIEW START */
function startView(blnStreetView,cash_log,cash_lat) {	

	if( blnStreetView ) {
		if( cash_log == "" || cash_lat == "" ) {
			document.getElementById("btnStreetViewOn").style.display = "block";
			document.getElementById("btnStreetViewOff").style.display = "none";
		} else {
			pmm_premapsload(cash_log,cash_lat);
		}
		
		var streetview = new GStreetviewOverlay();
		map.addOverlay(streetview); 
	
		GEvent.addListener(map,"click",approxStreetView);
				
	} else {
		document.getElementById("btnStreetViewOn").style.display = "none";
		document.getElementById("btnStreetViewOff").style.display = "block";
		
		pmm_premapsload(map.getCenter().y,map.getCenter().x);
		
		if( homeMarker != null ) {
			map.addOverlay(homeMarker);		
		}
	}
}

/* STREET VIEW 表示 */
function approxStreetView(oLay, mPnt) {
	try{		
		var clickPoint	= new GLatLng(mPnt.lat() ,mPnt.lng());
		var client = new GStreetviewClient();
		client.getNearestPanorama(clickPoint, getSVPoint);
	}catch(e){
		//alert("approxStreetView");
	}
}

function approxStreetView2() {
	try{
		var client = new GStreetviewClient();
		client.getNearestPanorama(viewMarker.getLatLng(), getSVPoint);
	} catch(e) { 
		//alert("approxStreetView2");
	}
}

function getSVPoint(data){
	try{
		
		if (data.code != 200){
			if( lastMarkerLocation != null ){ viewMarker.setLatLng(lastMarkerLocation); }
			return;
		}
		
		if (viewMarker != null ) {		
			map.removeOverlay(viewMarker);
		}
		
		var newpoint = data.location.latlng;
		
		var guyIcon = new GIcon();
		guyIcon.image = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man-0.png";
		guyIcon.transparent = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man-pick.png";
		guyIcon.imageMap = [26,13, 30,14, 32,28, 27,28, 28,36, 18,35, 18,27, 16,26, 16,20, 16,14, 19,13, 22,8];
		guyIcon.iconSize = new GSize(49,52);
		guyIcon.iconAnchor = new GPoint(25,35);
		guyIcon.infoWindowAnchor = new GPoint(25,5);
		guyIcon.shadow = null;
		viewMarker = new GMarker(newpoint, {
							 icon :guyIcon,
							 draggable :true
							 });
		
		map.addOverlay(viewMarker);
		lastMarkerLocation = newpoint;
		openPanoramaWindow();
		GEvent.addListener(viewMarker, "dragend", approxStreetView2);
		GEvent.addListener(viewMarker, "click", openPanoramaWindow);
		
		bifurcatio();	
		
	} catch(e) { 
		//alert("getSVPoint");
	}
}

function openPanoramaWindow() {
	try{
	
		svContainer = document.createElement('div');
		svContainer.style.textAlign = 'center';
		svContainer.style.width = '620px';
		svContainer.style.height = '360px';
		svContainer.innerHTML = 'Loading panorama';
	 
		smallNode = document.createElement('div');
		smallNode.style.width = '400px';
		smallNode.style.height = '220px';
		smallNode.id = 'pano';
	
		viewMarker.closeInfoWindow();
		viewMarker.openInfoWindow(smallNode);
		//viewMarker.openInfoWindow(smallNode, {maxContent:svContainer, maxTitle: "近辺情報"});
	 
		GEvent.addListener(viewMarker, "infowindowopen", function() {
			var panorama = new GStreetviewPanorama(smallNode);
			panorama.setLocationAndPOV(viewMarker.getLatLng());
			//panorama.setLocationAndPOV(viewMarker.getLatLng(), null);
			GEvent.addListener(panorama, "initialized", streetViewWindow);
			GEvent.addListener(panorama, "yawchanged", onYawChange); 
	
			var iw = map.getInfoWindow();
			GEvent.addListener(iw, "maximizeend", function() {
				panorama.setContainer(svContainer); 
				window.setTimeout(panorama.checkResize, 10);
			});
		});
	
	} catch(e) { 
		//alert("openPanoramaWindow");
	}
}

function streetViewWindow(newpoint) {
	try{
		var oldCenter = map.getCenter();
		var oldLatLng = viewMarker.getLatLng();
		
		map.setCenter(new GLatLng(oldCenter.lat()-(oldLatLng.lat()-newpoint.latlng.lat()),oldCenter.lng()-(oldLatLng.lng()-newpoint.latlng.lng())));
		
		viewMarker.setLatLng(newpoint.latlng);
		map.getInfoWindow().reset(newpoint.latlng);
		
		lastMarkerLocation = newpoint.latlng;
		
	} catch(e) { 
		//alert("streetViewWindow");
	}	
}

// ストリートビューの向き変更に合わせてマーカーアイコンの向きを変更
function onYawChange(newYaw) {
	try{
		var GUY_NUM_ICONS = 16;
		var GUY_ANGULAR_RES = 360 / GUY_NUM_ICONS;
		if (newYaw < 0) {
			newYaw += 360;
		}
		guyImageNum = Math.round(newYaw / GUY_ANGULAR_RES) % GUY_NUM_ICONS;
		guyImageUrl = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man_arrow-" + guyImageNum + ".png";
		viewMarker.setImage(guyImageUrl);
	}catch(e){
		//alert("onYawChange");
	}
}
/* STREET VIEW END */


/* 分岐処理( + 初期処理) */
function bifurcatio() {	

	if( !blnEvent ) { return; }
	eventControl(1);
	
	markerClear();	
	
	// Iconの設定
	setMarkerIcon();

	var objCredit = document.getElementById("credit");
	var objType = document.getElementsByName("rdoType");
	if( objType[0].checked == true ) {
		strSelect = "病院";
		objCredit.innerHTML = "Powered by <a href=\"http://www.qlife.jp/\" target=\"_blank\">QLife</a>";
		getpmm_data();
	} else if( objType[1].checked == true ) {
		strSelect = "飲食店";
		objCredit.innerHTML = "Powered by <a href=\"http://webservice.recruit.co.jp/\" target=\"_blank\">ホットペッパー Webサービス</a>";
		getHotpepperData();
	} else if( objType[2].checked == true ) {
		strSelect = "サロン";
		objCredit.innerHTML = "Powered by <a href=\"http://webservice.recruit.co.jp/\" target=\"_blank\">ホットペッパーBeauty Webサービス</a>";
		getHotpepperBeautyData();
	} else {	// 以下、国土交通省のデータ
		if( objType[3].checked == true )  {
			strSelect = "役所";
			intGisType = objType[3].value;
		} else if( objType[4].checked == true )  {
			strSelect = "郵便局";
			intGisType = objType[4].value;
		} else if( objType[5].checked == true ) {
			strSelect = "警察";
			intGisType = objType[5].value;
		} else if( objType[6].checked == true ) {
			strSelect = "消防";
			intGisType = objType[6].value;
		} else if( objType[7].checked == true ) {
			strSelect = "学校";	
			intGisType = objType[7].value;	
		} else if( objType[8].checked == true ) {
			strSelect = "幼稚園・保育園";
			intGisType = objType[8].value;	
		} else if( objType[9].checked == true ) {
			strSelect = "文化施設";
			intGisType = objType[9].value;
		}
		
		objCredit.innerHTML = "表示データは「国土数値情報（公共施設）国土交通省」をダウンロードしたものです";
		//getAreaList();
		choiceArea();
	}
}

/* map上のマーカー削除 */
function markerClear() {
	intNowPoint = 0;	// 現在位置
	intBefPoint = 0;	// 1つ前の位置
	intDataMax = 100;	// デフォルト100

	/* ポインタのクリア */
	for(i=0;i<intDataMax;i++){
		 if (marker[i] != null ) {		
			map.removeOverlay(marker[i]);
			delete marker[i];
			delete marker_point[i];
			marker[i]=0;
			marker_point[i]=0;
		 }				
	}
	document.getElementById("searchOutcome").innerHTML = "該当のデータは見つかりませんでした";
}

/* イメージクリック時の処理(ラジオボタン) */
function radioChecked(strID) {	
	if( !blnEvent ) { return; }
	var objType = document.getElementById(strID);
	
	if( !objType.checked ) {
		objType.checked = true;
		bifurcatio();
	}
}

/* イメージクリック時の処理(チェックボックス) */
function checkboxChecked(strID) {
	if( !blnEvent ) { return; }
	var objType = document.getElementById(strID);

	if( !objType.checked ) {
		objType.checked = true;
	} else {
		objType.checked = false;
	}
}

/* オブジェクトの作成(XML取得用) */
var xmlHttp = getXmlHttpObject();

/* 吹出しの情報 */
function maker_withinfo(marker,a){
	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowHtml(a);
	});
}

/* ********************************************* */
// 住所検索
/* ********************************************* */
var geocode = new GClientGeocoder();
var befGMarker;	// 一つ前のマーカー


function areaSearch() {
	address = document.getElementById('txtArea').value;

	geocode.getLatLng(address, function(point) {
		
		if( befGMarker != null ) {
			map.removeOverlay(befGMarker);			
		}
		
		if (point != null) {
			map.setCenter(point);	
			
			if( blnHomeFlag ) {	
				var m = new GMarker(point);
				map.addOverlay(m);			
				m.openInfoWindowHtml(address);
				befGMarker = m;				
			} else {
				blnHomeFlag = true;
				
				var iconHome = new GIcon();
				iconHome.image = "/images/map/markerHome.gif";
				iconHome.iconSize = new GSize(25,25);
				iconHome.iconAnchor = new GPoint(12,12);
				iconHome.shadow = null;
				homeMarker = new GMarker(point,iconHome);
	
				map.addOverlay(homeMarker);
			}
			
			bifurcatio();			
		} else {
			// 見つからなかったときなど
			alert("「" + address + "」は見つかりませんでした");
		}
	});	
	return false;
}

/* ********************************************* */
// マーカー画像設定
/* ********************************************* */
function setMarkerIcon() {
	var objIcon;
	arrIcon = new Array(10);
	arrMarkerIcon = new Array(10);

	/* マーカー */
	arrIcon[0] = "http://www.google.com/mapfiles/markerA.png";
	arrIcon[1] = "http://www.google.com/mapfiles/markerB.png";
	arrIcon[2] = "http://www.google.com/mapfiles/markerC.png";
	arrIcon[3] = "http://www.google.com/mapfiles/markerD.png";
	arrIcon[4] = "http://www.google.com/mapfiles/markerE.png";
	arrIcon[5] = "http://www.google.com/mapfiles/markerF.png";
	arrIcon[6] = "http://www.google.com/mapfiles/markerG.png";
	arrIcon[7] = "http://www.google.com/mapfiles/markerH.png";
	arrIcon[8] = "http://www.google.com/mapfiles/markerI.png";
	arrIcon[9] = "http://www.google.com/mapfiles/markerJ.png";	
	
	for( var i=0; i<10; i++ ) {		
		objIcon = new GIcon();
		objIcon.image = arrIcon[i];
		objIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";	// 影
		objIcon.iconSize = new GSize(20, 34);
		objIcon.shadowSize = new GSize(37, 34);
		objIcon.iconAnchor = new GPoint(10, 20);
		objIcon.infoWindowAnchor = new GPoint(10, 5);		
		arrMarkerIcon[i] = objIcon;
	}
}

/* ********************************************* */
// 表示件数制御
/* ********************************************* */
function dataControl() {
	/* 範囲の取得 */
	intStart = intNowPoint * intDisplayMax + 1;	// 開始位置
	intEnd   = intNowPoint * intDisplayMax + intDisplayMax;	// 終了位置

	/* 1つ前の範囲の取得 */
	var intStartBef = intBefPoint * intDisplayMax + 1;				// 開始位置
	var intEndBef   = intBefPoint * intDisplayMax + intDisplayMax;	// 終了位置	
		
	var elmList = document.getElementById("searchOutcome");
	elmList.innerHTML = "";	// 検索結果のクリア

	/* 1つ前の情報のクリア */
	for( var i = intStartBef; i <= intEndBef; i++ ) {
		if( i > intDataMax ) {	break; }	// 取得MAX件数を超えたら		
		if (marker[i-1] != null ) { map.removeOverlay(marker[i-1]); }	// マーカーの削除
	}

	var strSearchList = "";
	for( var i = intStart; i <= intEnd; i++ ) {
		if( i > intDataMax ) {	break; }	// 取得MAX件数を超えたら

		// 表示一覧(リスト)の作成
		strSearchList += arrSearchList[i-1];
			
		// Mapへポインタの作成
		map.addOverlay(marker[i-1]);
		maker_withinfo(marker[i-1],marker_message[i-1]);
	}

	var intLastPoint = Math.ceil(intDataMax/intDisplayMax) - 1;
	
	var strPageTop = "";
	var strPageBottom = "";
	
	strPageTop = "付近の<strong>" + strSelect + "</strong>の検索結果<br />";
	
	if( intNowPoint > 0 ) {
		strPageBottom += "<a href=\"#\" onclick=\"pagePlease();\" class=\"pageFlip\">&lt;&lt;前へ</a>｜";
	} else {
		strPageBottom += "&lt;&lt;前へ｜";
	}
	
	if( intNowPoint < 3 ) {
		for( var i=0; i<4; i++ ) {			
			if( i > intLastPoint ) { break; }
			
			if( i == intNowPoint ) {
				strPageBottom += (i+1) + "｜";
			} else {
				strPageBottom += "<a href=\"#\" onclick=\"pageSelect(" + i + ");\">" + (i+1) + "</a>｜";
			}
		}				
	} else if( (intNowPoint+3) > intLastPoint ) {
		for( var i=(intLastPoint-3); i<=intLastPoint; i++ ) {
			if( intNowPoint == i ) {
				strPageBottom += (i+1) + "｜";
			} else {
				strPageBottom += "<a href=\"#\" onclick=\"pageSelect(" + i + ");\">" + (i+1) + "</a>｜";
			}
		}				
	} else {
		for( var i=intNowPoint-2; i<(intNowPoint+2); i++ ) {
			if( intNowPoint == i ) {
				strPageBottom += (i+1) + "｜";
			} else {
				strPageBottom += "<a href=\"#\" onclick=\"pageSelect(" + i + ");\">" + (i+1) + "</a>｜";
			}
		}		
	}
	
	if( intNowPoint < intLastPoint ) {
		strPageBottom += "<a href=\"#\" onclick=\"pageNext();\" class=\"pageFlip\">次へ&gt;&gt;</a>";
		strPageTop += "約<strong>" + intDataMax + "</strong>件中 <strong>" + intStart + "-" + intEnd + "</strong> 件";
	} else {
		strPageBottom += "次へ&gt;&gt;";
		strPageTop += "約<strong>" + intDataMax + "</strong>件中 <strong>" + intStart + "-" + intDataMax + "</strong> 件";
	}
	strPageTop += "<br /><br />"
	
	if( strSearchList == "" ) {
		elmList.innerHTML = "該当のデータは見つかりませんでした";	
	} else {
		strPageBottom = "<div class=\"pageSkip\">" + strPageBottom + "<div>"
		strSearchList = strPageTop + "<ul>" + strSearchList + "</ul>" + strPageBottom;		
		elmList.innerHTML = strSearchList;
	}
	
	eventControl(0);
}

/* 前のX件 */
function pagePlease() {
	intBefPoint = intNowPoint;
	intNowPoint--;
	dataControl();
}

/* 次のX件 */
function pageNext() {
	intBefPoint = intNowPoint;
	intNowPoint++;
	dataControl();
}

function pageSelect(intSelectPoint) {
	intBefPoint = intNowPoint;
	intNowPoint = intSelectPoint;
	dataControl();
}

function eventControl(val) {
	if( val == 1 ) {
		document.getElementById("txtArea").disabled = true;
		document.getElementById("btnSerch").disabled = true;
		
		document.getElementById("hospital").disabled = true;
		document.getElementById("food").disabled = true;
		document.getElementById("salon").disabled = true;
		//document.getElementById("school").disabled = true;		
		
		document.getElementById("prefecture").disabled = true;
		document.getElementById("line").disabled = true;
		document.getElementById("station").disabled = true;
		
		for(var i=1; i<8; i++ ) {
			document.getElementById("facility0" + i).disabled = true;
		}
				
		blnEvent = false;
	} else {
		document.getElementById("txtArea").disabled = false;
		document.getElementById("btnSerch").disabled = false;
		
		document.getElementById("hospital").disabled = false;
		document.getElementById("food").disabled = false;
		document.getElementById("salon").disabled = false;
		//document.getElementById("school").disabled = false;
		
		document.getElementById("prefecture").disabled = false;
		document.getElementById("line").disabled = false;
		document.getElementById("station").disabled = false;
		
		for(var i=1; i<8; i++ ) {
			document.getElementById("facility0" + i).disabled = false;
		}
		
		blnEvent = true;
	}
}


/* map_qlife *********************************************************************************** */
/* ********************************************* */
// Qlife
/* ********************************************* */
/* 2点の座標より情報を取得 */
function getpmm_data() {	
	var mgb = map.getBounds();		// mapの右上と左下の座標を取得 (右上(経度 x,緯度 y),左下(緯度 x,経度 y))
	var gsw = mgb.getSouthWest();	// 左下(緯度 x,経度 y)
	var gne = mgb.getNorthEast();	// 右上(経度 x,緯度 y)	
	var swlat = gsw.lat();	// 緯度 x
	var swlng = gsw.lng();	// 経度 y	
	var nelat = gne.lat();	// 緯度 x
	var nelng = gne.lng();	// 経度 y

	var getUrl = "http://www.qlife.jp/api/get_hospital.php?comid=60849102&akey=0793339bc7345fa41a10b17710639103&stype=coordinates&long1=" + swlng + "&lat1=" + swlat + "&long2=" + nelng + "&lat2=" + nelat + "&limit=100";

	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);	

	xmlHttp.open("GET", getUrl, true);
	xmlHttp.onreadystatechange = handleHttpResponse;
	xmlHttp.send(null);
}

/* 取得情報の出力(Qlife) */
function handleHttpResponse() {
//<![CDATA[
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			try{			
				/* 表示箇所 */
				//var elmList = document.getElementById("searchOutcome");
				var hnodes = xmlDoc.documentElement.getElementsByTagName('response');
				var getCount = xmlDoc.documentElement.getElementsByTagName('count');

				setMaxCount(getCount[0].getAttribute("value"));
				
				var objHIDXml 	= xmlDoc.documentElement.getElementsByTagName('id');	// 医院ID
				var objNameXml	= xmlDoc.documentElement.getElementsByTagName('name');	// 医院名
				var objSbjXml	= xmlDoc.documentElement.getElementsByTagName('sbj');	// 診療科目
				var objPrefXml	= xmlDoc.documentElement.getElementsByTagName('pref');	// 都道府県コード
				var objAddrXml	= xmlDoc.documentElement.getElementsByTagName('addr');	// 住所
				var objTelXml	= xmlDoc.documentElement.getElementsByTagName('tel');	// 電話番号
				var objLatXml	= xmlDoc.documentElement.getElementsByTagName('lat');	// 緯度
				var objLngXml	= xmlDoc.documentElement.getElementsByTagName('long');	// 経度				
				var objItemNumXml = xmlDoc.documentElement.getElementsByTagName('itemnum');	// 口コミ数

				for( var i = 0; i < intDataMax; i++ ) {	// 取得件数 ループ
					var intIndex;
					if( i == 0 ) {
						intIndex = 0;
					} else {
						intIndex = i%intDisplayMax;
					}		
				
					/* 医院の基本情報取得 */
					var strHID 	= objHIDXml[i].firstChild.nodeValue;	// 医院ID
					var strName	= objNameXml[i].firstChild.nodeValue; 	// 医院名
					var strSbj	= objSbjXml[i].firstChild.nodeValue; 	// 診療科目
					var strPref	= objPrefXml[i].firstChild.nodeValue; 	// 都道府県コード
					var strAddr	= objAddrXml[i].firstChild.nodeValue; 	// 住所
					var strTel	= objTelXml[i].firstChild.nodeValue; 	// 電話番号
					var strLat	= objLatXml[i].firstChild.nodeValue; 	// 緯度
					var strLng	= objLngXml[i].firstChild.nodeValue; 	// 経度
					var strItemNum = objItemNumXml[i].firstChild.nodeValue;	// 口コミ数
				
					// 口コミページへのリンク 
					var strGrapevineUrl = "/map/grapevine.html?hid=" + strHID;
					
					var strGrapevine = "<a href=\"" + strGrapevineUrl + "\" target=\"_blank\" onClick=\"marker[" + i + "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a>";
				
					marker_point[i] = new GLatLng(strLat,strLng);

					arrSearchList[i] = "<li class=\"type" + (parseInt(intIndex,10)+1) + "\">" 
						+ "<a href=\"" + strGrapevineUrl + "\" target=\"_blank\" onClick=\"marker[" + i + "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a><br />"
						+ brPlus(replaceSbj(strSbj))
						+ brPlus(strAddr)
						+ brPlus(strTel)
						+ "口コミ数 " + strItemNum + " 件" 
						+ "</li>";	

					// 吹出しの内容
					marker_message[i] = "<div class=\"infoWindow\">"
						+ "<a href=\"" + strGrapevineUrl + "\" target=\"_blank\"><strong>" + strName + "</strong></a>&nbsp;<br />"
						+ brPlus(strAddr) 
						+ brPlus(strTel)
						+ "<div align=\"right\">口コミ数 " + strItemNum + " 件</div>" 
						+ "</div><br />";
											
					var marker_tmp = new GMarker(marker_point[i],arrMarkerIcon[intIndex]);
					marker[i] = marker_tmp;

				}
				dataControl();
			} catch(e) {
				eventControl(0);
				//alert("error:" + e.description);
			}
		}
	}
//]]>
}


/* ********************************************* */
// Qlife 駅検索
/* ********************************************* */
var xmlHttpNPMM = getXmlHttpObject();
/* 都道府県選択 */
function changedPrefLoadLine(){
	var pref = document.getElementById('prefecture').value;
	if (!pref || pref < 0 || 47 < pref) return;
	if (xmlHttpNPMM.readyState != 0) xmlHttpNPMM.abort();
	
	var getUrl = "http://www.qlife.jp/api/get_rail.php?comid=60848923&akey=2f7a930a02a5fa025a80b14b9b18bc7f&pref=" + pref;
	
	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttpNPMM.open('GET', getUrl, true);	
	xmlHttpNPMM.onreadystatechange = handleHttpResponseNPMM_Pref;
	xmlHttpNPMM.send(null);
}
function handleHttpResponseNPMM_Pref() {
//<![CDATA[
	if (xmlHttpNPMM.readyState == 4 && xmlHttpNPMM.responseXML) {
		var xmlDoc = xmlHttpNPMM.responseXML;
		if (xmlDoc.documentElement) {
			
			var objRainXml = xmlDoc.getElementsByTagName('rail');			
			if(objRainXml.item(0)){
				var objLine = document.getElementById('line');		

				for(var i=objLine.options.length; i>0; i --) {
					objLine.options[i] = null;
				}
				
				var objCdXml 	= xmlDoc.documentElement.getElementsByTagName('code');
				var objNameXml 	= xmlDoc.documentElement.getElementsByTagName('name');
				
				var code = "";
				var name = "";
				for(i=0; i < objRainXml.length; i ++){
					elmnt = objRainXml.item(i);
					code = objCdXml[i].firstChild.nodeValue;
					name = objNameXml[i].firstChild.nodeValue;
					objLine.options[i+1] = new Option(name,code);
				}
			}
		}
	}
//]]>
}

/* ********************************************* */
// Qlife 路線選択
/* ********************************************* */
function changedLineLoadStation(){
	var rail = document.getElementById('line').value;
	if (xmlHttpNPMM.readyState != 0) xmlHttpNPMM.abort();
	
	var getUrl = "http://www.qlife.jp/api/get_stationlist.php?comid=60848923&akey=2f7a930a02a5fa025a80b14b9b18bc7f&rail=" + rail;	
	
	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttpNPMM.open('GET', getUrl, true);	
	xmlHttpNPMM.onreadystatechange = handleHttpResponseNPMM_Rail;
	xmlHttpNPMM.send(null);
}
function handleHttpResponseNPMM_Rail() {
//<![CDATA[
	if (xmlHttpNPMM.readyState == 4 && xmlHttpNPMM.responseXML) {
		var xmlDoc = xmlHttpNPMM.responseXML;
		if (xmlDoc.documentElement) {
			var objStationXml = xmlDoc.getElementsByTagName('station');
				var objStation = document.getElementById('station');
			if(objStationXml.item(0)){
				for(var i=objStation.options.length; i>0; i --){
					objStation.options[i] = null;
				}				
			
				var objCdXml 	= xmlDoc.documentElement.getElementsByTagName('code');
				var objNameXml 	= xmlDoc.documentElement.getElementsByTagName('name');
				
				var code = "";
				var name = "";
				for(i=0; i<objStationXml.length; i ++){
					elmnt = objStationXml.item(i);
					code = objCdXml[i].firstChild.nodeValue;
					name = objNameXml[i].firstChild.nodeValue;
					objStation.options[i+1] = new Option(name,code);
				}
			}
		}
	}
//]]>
}

/* ********************************************* */
// Qlife 駅選択
/* ********************************************* */
function changedStationLoadMap(){
	var station = document.getElementById('station').value;
	if (xmlHttpNPMM.readyState != 0) xmlHttpNPMM.abort();
	
	var getUrl = "http://www.qlife.jp/api/get_station.php?comid=60848923&akey=2f7a930a02a5fa025a80b14b9b18bc7f&station=" + station;	

	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttpNPMM.open('GET', getUrl, true);	
	xmlHttpNPMM.onreadystatechange = handleHttpResponseNPMM_Station;
	xmlHttpNPMM.send(null);
}
function handleHttpResponseNPMM_Station() {
//<![CDATA[
	if (xmlHttpNPMM.readyState == 4 && xmlHttpNPMM.responseXML) {
		var xmlDoc = xmlHttpNPMM.responseXML;
		if (xmlDoc.documentElement) {
			
			var objStationXml = xmlDoc.getElementsByTagName('station');			
			var objLatXml 	= xmlDoc.documentElement.getElementsByTagName('lat');
			var objLongXml 	= xmlDoc.documentElement.getElementsByTagName('long');			
			
			if(objStationXml.item(0)){
				elmnt = objStationXml.item(0);
				lat = objLatXml[0].firstChild.nodeValue;
				lon = objLongXml[0].firstChild.nodeValue;
				lat = lat.replace(/\r|\n/g,"");
				lon = lon.replace(/\r|\n/g,"");
				if((lat>1)&&(lon>1)){
					map.setCenter(new GLatLng(lat,lon),16);
					bifurcatio();
				}
			}
		}
	}
//]]>
}

/* map_recruit ********************************************************************************* */
/* ********************************************* */
// ホットペッパー.jp
/* ********************************************* */
function getHotpepperData() {
	var mgc = map.getCenter();
	var clng = mgc.x;
	var clat = mgc.y;
	
	var getUrl ="http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=db9139955685ec26&lat=" + clat + "&lng=" + clng + "&range=3&order=3&count=100&type=lite&format=xml";

	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttp.open("GET", getUrl, true);
	xmlHttp.onreadystatechange = handleHttpHotpepper;
	xmlHttp.send(null);
}

/* 取得情報の出力(Hotpepper) */
function handleHttpHotpepper() {
//<![CDATA[
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {		
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			try{			
				//var area = map.getBounds();				
				var elmList = document.getElementById("searchOutcome");
				var getCount = xmlDoc.documentElement.getElementsByTagName('results_returned');

				setMaxCount(getCount[0].firstChild.nodeValue);

				var objShopNode = xmlDoc.getElementsByTagName("shop");	// 店
				var objGenre = xmlDoc.getElementsByTagName("genre");	// ジャンル
				var objFood = xmlDoc.getElementsByTagName("food");		// 食
					
				for( var i = 0; i < intDataMax; i++ ) {	// 取得件数 ループ
				
					/* お店の基本情報取得 */
					var strName	= getChildText(objShopNode[i],"name"); 		// 店名
					var strAdd	= getChildText(objShopNode[i],"address");	// 住所
					var strLat	= getChildText(objShopNode[i],"lat"); 		// 緯度
					var strLng	= getChildText(objShopNode[i],"lng"); 		// 経度
					
					var strGenreType = getChildText(objGenre[i],"name");	// ジャンル
					var strFoodType = getChildText(objFood[i],"name");		// 料理
					
					var objGLL = new GLatLng(strLat,strLng);
					//if (area.contains(objGLL)) {
						marker_point[i] = objGLL;
											
						var intIndex;							
						if( i == 0 ) {
							intIndex = 0;
						} else {
							intIndex = i%intDisplayMax;
						}
						
						arrSearchList[i] = "<li class=\"type" + (parseInt(intIndex,10)+1) + "\"><a href=\"#\" onclick=\"marker[" + i + "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a><br />"
							+ strAdd;
							
						// 吹出しの内容
						marker_message[i] = "<div class=\"infoWindow\">" + brPlus(strName) + strAdd + "</div>";
												
						var marker_tmp = new GMarker(marker_point[i],arrMarkerIcon[intIndex]);
						marker[i] = marker_tmp;
						
					//}					
				}	
				dataControl();			

			} catch(e) {
				eventControl(0);
				//alert("error" + e.description);
			}		
		}
	}
//]]>
}


/* ********************************************* */
// ホットペッパーBeauty
/* ********************************************* */
function getHotpepperBeautyData() {
	var mgc = map.getCenter();
	var clng = mgc.x;
	var clat = mgc.y;
	
	var getUrl ="http://webservice.recruit.co.jp/beauty/salon/v1/?key=db9139955685ec26&lat=" + clat + "&lng=" + clng + "&range=3&order=0&count=100&format=xml";

	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttp.open("GET", getUrl, true);
	xmlHttp.onreadystatechange = handleHotpepperBeauty;
	xmlHttp.send(null);
}

/* 取得情報の出力(Hotpepper Beauty) */
function handleHotpepperBeauty() {
//<![CDATA[
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			try{
				//var area = map.getBounds();
				
				var elmList = document.getElementById("searchOutcome");
				var getCount = xmlDoc.documentElement.getElementsByTagName('results_returned');
							
				setMaxCount(getCount[0].firstChild.nodeValue);
				
				var objSalonNode = xmlDoc.getElementsByTagName("salon");	// 店
					
				for( var i = 0; i < intDataMax; i++ ) {	// 取得件数 ループ
				
					/* お店の基本情報取得 */
					var strName	= getChildText(objSalonNode[i],"name"); 	// 店名
					var strAdd	= getChildText(objSalonNode[i],"address");	// 住所
					var strLat	= getChildText(objSalonNode[i],"lat"); 		// 緯度
					var strLng	= getChildText(objSalonNode[i],"lng"); 		// 経度
										
					var objGLL = new GLatLng(strLat,strLng);
						marker_point[i] = objGLL;
								
						var intIndex;							
						if( i == 0 ) {
							intIndex = 0;
						} else {
							intIndex = i%intDisplayMax;
						}			
						
						arrSearchList[i] = "<li class=\"type" + (parseInt(intIndex,10)+1) + "\"><a href=\"#\" onclick=\"marker[" + i + "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a><br />"
								+ strAdd;
						
						// 吹出しの内容
						marker_message[i] = "<div class=\"infoWindow\">" + brPlus(strName) + strAdd + "</div>";
						
						var marker_tmp = new GMarker(marker_point[i],arrMarkerIcon[intIndex]);
						marker[i] = marker_tmp;

					//}
				}
				dataControl();
				
			} catch(e) {
				eventControl(0);
				//alert("error" + e.description);
			}		
		}
	}
//]]>
}


/* ********************************************* */
// リクルート進学ネット
/* ********************************************* */
function getShingakuData() {
	var mgc = map.getCenter();
	var clng = mgc.x;
	var clat = mgc.y;
	
	var getUrl ="http://webservice.recruit.co.jp/shingaku/school/v1/?key=db9139955685ec26&lat=" + clat + "&lng=" + clng + "&range=3&order=1&count=100&format=xml";

	getUrl = "/php/getXml.php?param=" + encodeURIComponent(getUrl);

	xmlHttp.open("GET", getUrl, true);
	xmlHttp.onreadystatechange = handleShingakuBeauty;
	xmlHttp.send(null);
}

/* 取得情報の出力(Shingaku) */
function handleShingakuBeauty() {
//<![CDATA[
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			try{
				//var area = map.getBounds();
				
				var elmList = document.getElementById("searchOutcome");
				var getCount = xmlDoc.documentElement.getElementsByTagName('results_returned');
							
				setMaxCount(getCount[0].firstChild.nodeValue);
				
				var objSchoolNode = xmlDoc.getElementsByTagName("school");	// 学校
				
				/* 中心座標 */
				var mgc = map.getCenter();
				var clng = mgc.x;
				var clat = mgc.y;
				
				for( var i = 0; i < intDataMax; i++ ) {	// 取得件数 ループ
				
					/* 学校の基本情報取得 */
					var strName	= getChildText(objSchoolNode[i],"name"); 		// 学校名

					var strBefLat = "";
					var strBefLng = "";
					for(var j=0; j < objSchoolNode[i].childNodes.length; j++ ) {
						var node = objSchoolNode[i].childNodes[j];

						if( node.nodeType == 1 && node.tagName == "campus" ) {					
							var strCampus = getChildText(node,"name");	// キャンパス名					
							var strAdd	= getChildText(node,"address");		// 住所
							var strLat	= getChildText(node,"latitude"); 	// 緯度
							var strLng	= getChildText(node,"longitude");	// 経度

							var objGLL = new GLatLng(strLat,strLng);
							//if ( area.contains(objGLL) ) {
							
							
							if( comparingControl(clat,clng,strBefLat,strBefLng,strLat,strLng) ) {
								marker_point[i] = objGLL;

								var intIndex;							
								if( i == 0 ) {
									intIndex = 0;
								} else {
									intIndex = i%intDisplayMax;
								}
								
								arrSearchList[i] = "<li class=\"type" + (parseInt(intIndex,10)+1) + "\"><a href=\"#\" onclick=\"marker[" + i + "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a><br />"
										 + brPlus(strCampus) 
										 + strAdd; 
										 								
								// 吹出しの内容
								marker_message[i] = "<div class=\"infoWindow\">" + brPlus(strName) + brPlus(strCampus) + strAdd+ "</div>";
														
								var marker_tmp = new GMarker(marker_point[i],arrMarkerIcon[intIndex]);
								marker[i] = marker_tmp;
								
							
								strBefLat = strLat;
								strBefLng = strLng;
							}
							//}	
						}					
					}					
				}
				dataControl();
			} catch(e) {
				eventControl(0);
				//alert("error" + e.description);
			}		
		}
	}
//]]>
}


function comparingControl(strBaseLat,strBaseLng,strBasisLat,strBasisLng,strCheckLat,strCheckLng) {
	var blnTarget;	// 結果(近いのは[true：今回 / false：前回]) 
	
	if( strBasisLat == "" || strBasisLng == "" ) {
		blnTarget = true;
	}
	
	var intBaseLat  = minus2plus(strBaseLat);
	var intBaseLng  = minus2plus(strBaseLng);
	var intBasisLat = minus2plus(strBasisLat);
	var intBasisLng = minus2plus(strBasisLng);
	var intCheckLat = minus2plus(strCheckLat);
	var intCheckLng = minus2plus(strCheckLng);

	var intDeltaBasisLat = minus2plus(intBaseLat - intBasisLat);	// 前回の差分緯度
	var intDeltaBasisLng = minus2plus(intBaseLng - intBasisLng);	// 前回の差分経度
	var intDeltaCheckLat = minus2plus(intBaseLat - intCheckLat);	// 今回の差分緯度
	var intDeltaCheckLng = minus2plus(intBaseLng - intCheckLng);	// 今回の差分経度
	
	var intDeltaLat = intDeltaBasisLat - intDeltaCheckLat;	// 差分緯度
	var intDeltaLng = intDeltaBasisLng - intDeltaCheckLng;	// 差分経度
	var intDelta; // 差分	
		
	if( intDeltaLat > 0 && intDeltaLng > 0 ) {	// 今回の方が近い
		blnTarget = true;
	} else if( intDeltaLat < 0 && intDeltaLng < 0 ) {	// 前回の方が近い
		blnTarget = false;
	} else if( intDeltaLat > 0 ) {
		intDelta = minus2plus(intDeltaLat) - minus2plus(intDeltaLng);			
		if( intDelta > 0 ) {
			blnTarget = true;
		} else {
			blnTarget = false;
		}		
	} else if( intDeltaLat < 0 )  {
		intDelta = minus2plus(intDeltaLng) - minus2plus(intDeltaLat);			
		if( intDelta > 0 ) {
			blnTarget = true;
		} else {
			blnTarget = false;
		}		
	} else {	// 例外(前回のまま)
		blnTarget = false;
	}
	return blnTarget;
}

function minus2plus(intValue) {
	if( intValue < 0 ) {
		intValue = intValue * (-1);	
	}
	return intValue;
}

/* map_gis ************************************************************************************* */
var strArea = null;
//var xmlHttpGis = getXmlHttpObject();
function getAreaList() {
	//if( xmlHttpGis.readyState == 0 ) {
		var getUrl = "/xml/area_list.xml";
		
		xmlHttpGis.open("GET", getUrl, true);		
		xmlHttpGis.onreadystatechange = handleHttpArea;
		xmlHttpGis.send(null);
	//}
		
	//choiceArea();	
}

function handleHttpArea() {
//<![CDATA[
	if (xmlHttpGis.readyState == 4 && xmlHttpGis.status == 200) {
		var xmlDoc = xmlHttpGis.responseXML;
		if (xmlDoc.documentElement) {
			var objPrefecturalNode = xmlDoc.getElementsByTagName("prefectural");	// 都道府県 
			
			strArea = new Array(47);
			for( var i=0; i < objPrefecturalNode.length; i++ ) {				
				strArea[i] = new Array(5);
				strArea[i][0] = objPrefecturalNode[i].getAttribute("detail");		
				strArea[i][1] = objPrefecturalNode[i].getAttribute("x_low");
				strArea[i][2] = objPrefecturalNode[i].getAttribute("x_high");
				strArea[i][3] = objPrefecturalNode[i].getAttribute("y_low");
				strArea[i][4] = objPrefecturalNode[i].getAttribute("y_high");
			}
			//eventControl(0);			
		}		
	}
//]]>
}

var intTargetIndex;	// 対象エリア
function choiceArea() {
	intTargetIndex = 0;
	var mgb = map.getBounds();		// mapの右上と左下の座標を取得 (右上(経度 x,緯度 y),左下(緯度 x,経度 y))
	var gsw = mgb.getSouthWest();	// 左下(緯度 x,経度 y)
	var gne = mgb.getNorthEast();	// 右上(経度 x,緯度 y)	
	var swlat = gsw.lat();	// 緯度 x
	var swlng = gsw.lng();	// 経度 y	
	var nelat = gne.lat();	// 緯度 x
	var nelng = gne.lng();	// 経度 y
		
	var strTarget = "";
	var strTargetList = "";
		
	for( var i=0; i<strArea.length; i++ ) {	
		var lat_low   = strArea[i][1];
		var lat_high  = strArea[i][2];
		var lng_low   = strArea[i][3];
		var lng_high  = strArea[i][4];

		strTarget = "";
		if((lat_low < nelat && nelat < lat_high) && (lng_low < swlng && swlng < lng_high)) {	// left top 
			strTarget = strArea[i][0];
		} else if((lat_low < swlat && swlat < lat_high) && (lng_low < swlng && swlng < lng_high)) { // right top
			strTarget = strArea[i][0];	 
		} else if((lat_low < nelat && nelat < lat_high) && (lng_low < nelng && nelng < lng_high)) { // left bottom
			strTarget = strArea[i][0];	
		} else if((lat_low < swlat && swlat < lat_high) && (lng_low < nelng && nelng < lng_high)) { // right bottom
			strTarget = strArea[i][0];
		}

		if( strTarget != "" ) {
			if( strTargetList != "" ) {
				strTargetList += ",";
			}
			strTargetList += strTarget;
			strTarget = "";
		}
	}

	if( strTargetList != "" ) {
		getAreaDetail(strTargetList.split(","),0);
	} else {		
		eventControl(0);	
	}
}

/* 公共施設内で分割チェック() */
function typeSelect(strType) {	
	// 分割されていない
	if( strType == 0 ) {
		return true;
	}
	
	// 分割されている
	var arrType = strType.split(",");
	for( var i=0; i<arrType.length; i++ ) {
		if( intGisType == arrType[i] ) {
			return true;
		}
	}
	return false;	
}

var arrGis = new Array(100);
function getAreaDetail(strTargetList,intGlobalCount) {
	// 対象が終わる or 100件に達したときに再起処理を終了
	if( strTargetList.length <= intTargetIndex || intGlobalCount >= 100 ) {	
		if( intGlobalCount > 0 ) {
			targetGis(intGlobalCount);	// map表示 
		}
		eventControl(0);
		return;	
	}

	var mgb = map.getBounds();	// mapの右上と左下の座標を取得 (右上(経度 x,緯度 y),左下(緯度 x,経度 y))
	var gsw = mgb.getSouthWest();	// 左下(緯度 x,経度 y)
	var gne = mgb.getNorthEast();	// 右上(経度 x,緯度 y)	
	var swlat = gsw.lat();	// 緯度 x
	var swlng = gsw.lng();	// 経度 y	
	var nelat = gne.lat();	// 緯度 x
	var nelng = gne.lng();	// 経度 y
	
	var strAreaUrl = strTargetList[intTargetIndex];
	
	var getUrl = "/xml/" + strAreaUrl;
	
	xmlHttpGis.open("GET", getUrl, true);
	xmlHttpGis.onreadystatechange = handleHttpAreaDetail;
	xmlHttpGis.send(null);
	
	function handleHttpAreaDetail() {
		if (xmlHttpGis.readyState == 4 && xmlHttpGis.status == 200) {
			var xmlDoc = xmlHttpGis.responseXML;
			if (xmlDoc.documentElement) {				
				var objFacilityNode = xmlDoc.getElementsByTagName("facility");				
				var objPointXNode = xmlDoc.getElementsByTagName("x_point");
				var objPointYNode = xmlDoc.getElementsByTagName("y_point");
				var objNameNode = xmlDoc.getElementsByTagName("name");
				var objAddNode = xmlDoc.getElementsByTagName("add");
				
				var strType	= "";
				var strPointX = "";
				var strPointY = "";
				var strName	= "";
				var strAdd	= "";
				
				var intNextType = intGisType + 1;
				
				for(var i=0; i < objFacilityNode.length; i++ ) {					
					strType = objFacilityNode[i].getAttribute("type");	// タイプ
					if( strType == intGisType ) {	// 全て選択などは、ここで調整(公共施設のみ)
						strPointX =  objPointXNode[i].firstChild.nodeValue;	// 緯度 										
						if( swlat < strPointX && strPointX < nelat ) {	
							strPointY =  objPointYNode[i].firstChild.nodeValue;	// 経度 
							if( swlng < strPointY && strPointY < nelng ) {								
								arrGis[intGlobalCount] = strType + "," + strPointX + "," + strPointY + "," + objNameNode[i].firstChild.nodeValue + "," + objAddNode[i].firstChild.nodeValue;
								intGlobalCount++;							
								
								if( intGlobalCount >= 100 ) {
									break;
								} else if( (i+1) < objFacilityNode.length ) {
									if( objFacilityNode[i+1].getAttribute("type") >= intNextType ) {
										break;	
									}
								}	
							}						
						}
					}					
				}				
			}
			intTargetIndex++;
			getAreaDetail(strTargetList,intGlobalCount);
		}		
	}
}

function targetGis(intGlobalCount) {
	setMaxCount(intGlobalCount);	// max値設定 
	for( var i=0; i<intGlobalCount; i++ ) {
		var addGisDetail = 	arrGis[i].split(",");
		var strType = addGisDetail[0];
		var strX = addGisDetail[1];
		var strY = addGisDetail[2];
		var strName = addGisDetail[3];
		var strAdd = addGisDetail[4];
		
		var intIndex;
		if( i == 0 ) {
			intIndex = 0;
		} else {
			intIndex = i%intDisplayMax;
		}
														
		marker_point[i] = new GLatLng(strX,strY);
							
		arrSearchList[i] = "<li class=\"type" + (parseInt(intIndex,10)+1) + "\"><a href=\"#\" onclick=\"marker[" + i　+ "].openInfoWindowHtml(marker_message[" + i + "]);\"><strong>" + strName + "</strong></a><br />" + strAdd;
							
		// 吹出しの内容
		marker_message[i] = "<div class=\"infoWindow\">" + brPlus(strName) + brPlus(strAdd) + "</div>";
						
		var marker_tmp = new GMarker(marker_point[i],arrMarkerIcon[intIndex]);
		marker[i] = marker_tmp;
	}
	dataControl();
}