map=null;
marker=null;
marker02=null;
currentInfoArray=[];
currentInfoArrayForUser=[];
gmarkers=[];
gmarkers02=[];
dentalInfos=[];
dentalInfos01=[];
dentalInfos02=[];
var geocoder;
prefArray=[];
callBackCount=0;
j=0;
k=0;
l=0;
JJ=0;
page=1;
userPage=1;
mapSearchBoxPage=1;
gZoom=0;
dentalPrintNum=50;
dentalPrintNumUser=10;
dentalSearch="";
//
tempMarker=null;
mPnt=null;
//


function mapSearchWrite(){
	code='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="600" height="300" id="mapSearch" align="middle">\n';
	code+='<param name="allowScriptAccess" value="sameDomain" />\n';
	code+='<param name="allowFullScreen" value="false" />\n';
	code+='<param name="movie" value="./fla/mapSearch.swf" />\n';
	code+='<param name="menu" value="false" />\n';
	code+='<param name="quality" value="high" />\n';
	code+='<param name="wmode" value="transparent" />\n';
	code+='<param name="bgcolor" value="#ffffff" />\n';
	code+='<embed src="./fla/mapSearch.swf" menu="false" quality="high" wmode="transparent" bgcolor="#ffffff" width="600" height="300" name="mapSearch" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n';
	code+='</object>';
	document.write(code);
}

function headListSwitch(method){
	if(method){
		var targetBox=document.getElementById("headList");
		targetBox.style.display="none";
	}else{
		var targetBox=document.getElementById("headList");
		targetBox.style.display="block";
	}
}

function ieXLiquidWidthForMap() {
if(document.body.clientWidth < 821){
      return "800px";
   }else{
   	return "auto";
   }
}

function createXMLHttpRequest(cbFunc){
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
	return XMLhttpObject;
}

function addMarker(latLngArray,pagenate,gZoom) {
	page=pagenate;
	var request = GXmlHttp.create();
	if((gZoom<13) && (gZoom>8)){
	//townMode
	dentalPrintNum=100;
request.open("GET", "listXml.php?mapMode=town&dentalPrintNum="+dentalPrintNum+"&page="+page+"&maxLat="+latLngArray[0]+"&maxLng="+latLngArray[1]+"&minLat="+latLngArray[2]+"&minLng="+latLngArray[3]+"",true); 
	request.onreadystatechange=function() { 
		if (request.readyState==4) { 
			var xmlDoc=request.responseXML;
			var areaInfo=xmlDoc.documentElement.getElementsByTagName("areainfo");
			currentInfoArray=checkCurrentInfo(areaInfo);
			var eachNode=xmlDoc.documentElement.getElementsByTagName("dental");
			target=document.getElementById("resultBox");
			targetUlTemp=document.createElement("ol");
			targetUl=document.getElementById("resultList").appendChild(targetUlTemp);
			targetUl.id="result";
			//
			j=0;
			if(eachNode.length>0){
			createListHead(currentInfoArray,gZoom);
				for (var i=0; i < eachNode.length; i++) {
				var mpoint = new GLatLng( 
					 eachNode[i].getAttribute("lat"), 
					 eachNode[i].getAttribute("lng") 
				 );
dentalInfo=["town",eachNode[i].getAttribute("townCode"),eachNode[i].getAttribute("eachTownTotalNum"),eachNode[i].getAttribute("lat"),eachNode[i].getAttribute("lng")];
				marker=createTownMarker(mpoint,i,dentalInfo);
				map.addOverlay(marker);
				createList(dentalInfo[1],j,0);
					if(i > (eachNode.length-1)){
						createList(dentalInfo[1],j,1);
					}
				}
			}else{
			createNoList("該当なし");
			}
		}
	}
	request.send(null);
}
else if(gZoom>12)
{
	//eachMode
	//通常フローに加えて市群でlatLngを判別。
	dentalPrintNum=50;
	request.open("GET", "listXml.php?mapMode=each&dentalPrintNum="+dentalPrintNum+"&page="+page+"&maxLat="+latLngArray[0]+"&maxLng="+latLngArray[1]+"&minLat="+latLngArray[2]+"&minLng="+latLngArray[3]+"",true); 
	request.onreadystatechange=function()
	{ 
		if (request.readyState==4)
		{
			var xmlDoc=request.responseXML;
			var areaInfo=xmlDoc.documentElement.getElementsByTagName("areainfo");
			var checkListNum=areaInfo[0].getAttribute("to");
			currentInfoArray=checkCurrentInfo(areaInfo);
			var eachNode=xmlDoc.documentElement.getElementsByTagName("dental");
			target=document.getElementById("resultBox");
			targetUlTemp=document.createElement("ol");
			targetUl=document.getElementById("resultList").appendChild(targetUlTemp);
			targetUl.id="result";
			//
			j=0;
			k=0;
			l=0;
			JJ=0
			for(var i=0;i<eachNode.length;i++)
			{
				if(eachNode.length>0)
				{
					createListHead(currentInfoArray,gZoom);
					for (var i=0; i < eachNode.length; i++)
					{
						
					var mpoint = new GLatLng( 
						 eachNode[i].getAttribute("lat"), 
						 eachNode[i].getAttribute("lng") 
					 );
					dentalInfo=["each",eachNode[i].getAttribute("dentalname"),eachNode[i].getAttribute("dentalzip"),eachNode[i].getAttribute("dentaladdress"),eachNode[i].getAttribute("id"),eachNode[i].getAttribute("userFlag")];				
					if(eachNode[i].getAttribute("userFlag")==1){
						marker02=createMarker(mpoint,i,dentalInfo,1);
						map.addOverlay(marker02);
						setTimeout(user_up,100);
						l++;
					}
					else
					{
						marker=createMarker(mpoint,i,dentalInfo);
						map.addOverlay(marker);
					}
					//
					if(i>=(checkListNum-1))
					{
						//alert("checkListNum"+(checkListNum-1));
						if(eachNode[i].getAttribute("userFlag")==0)
						{
							createListForEach(dentalInfo[1],i,1);
						}
						else
						{
							createListForEach(dentalInfo[1],i,1);
						}
					}
					else
					{
						createListForEach(dentalInfo[1],i,0);
					}
				}
				var re=document.getElementById("result");
				for(var n=0;n<l;n++)
				{
					re.childNodes[n].className="dmcUserList";
				}
				//
				}
				else
				{
				createNoList("該当なし");
				}
			}
		}
	}
	request.send(null);
}else{
//prefectureMode
	request.open("GET", "listXml.php?mapMode=prefecture&dentalPrintNum="+47+"&maxLat="+latLngArray[0]+"&maxLng="+latLngArray[1]+"&minLat="+latLngArray[2]+"&minLng="+latLngArray[3]+"",true);
	request.onreadystatechange=function()
	{ 
		if (request.readyState==4) { 
			var xmlDoc=request.responseXML;
			var areaInfo=xmlDoc.documentElement.getElementsByTagName("areainfo");
			currentInfoArray=checkCurrentInfo(areaInfo);
			var eachNode=xmlDoc.documentElement.getElementsByTagName("dental");
			target=document.getElementById("resultBox");
			targetUlTemp=document.createElement("ol");
			targetUl=document.getElementById("resultList").appendChild(targetUlTemp);
			targetUl.id="result";
			//
			j=0;
			if(eachNode.length>0){
			createListHead(currentInfoArray,gZoom);
				for (var i=0; i < eachNode.length; i++) {
				var mpoint = new GLatLng( 
					 eachNode[i].getAttribute("lat"), 
					 eachNode[i].getAttribute("lng") 
				 );
dentalInfo=["prefecture",eachNode[i].getAttribute("prefectureCode"),eachNode[i].getAttribute("eachPrefectureNum"),eachNode[i].getAttribute("lat"),eachNode[i].getAttribute("lng")];
				marker=createPrefectureMarker(mpoint,i,dentalInfo);
				map.addOverlay(marker);
				createList(dentalInfo[1],j,0);
					if(i > (eachNode.length-1)){
						createList(dentalInfo[1],j,1);
					}
				}
			}else{
			createNoList("該当なし");
			}
		}
	}
	 request.send(null);
}
}
//
function user_up(){
	var map=document.getElementById("map");
	var root = map.childNodes.item(0);
	var ic = root.childNodes.item(0).childNodes.item(6);
	for(var i = 0; i < l; i++){
		ic.childNodes.item(i).style.zIndex = "1";
	}
}

function checkCurrentInfo(obj){
	var reTotalNum=obj[0].getAttribute("totalNum");
	var reFrom=obj[0].getAttribute("from");
	var reTo=obj[0].getAttribute("to");
	return [reTotalNum,reFrom,reTo];
}

function checkCurrentDentalInfo(obj){
	var reTotalNum=obj[0].getAttribute("totalNum");
	var reValue=obj[0].getAttribute("result");
	var reFrom=obj[0].getAttribute("from");
	var reTo=obj[0].getAttribute("to");
	return [reTotalNum,reValue,reFrom,reTo];
}

function checkCurrentTownInfo(obj){
	var reTotalNum=obj[0].getAttribute("blockCode");
	var reTotalNum=obj[0].getAttribute("totalNum");
	var reFrom=obj[0].getAttribute("from");
	var reTo=obj[0].getAttribute("to");
	return [reTotalNum,reTotalNum,reFrom,reTo];
}

function checkTotalNum(obj){
	var areaDentalNum=obj[0].getAttribute("totalNum");
	return areaDentalNum;
}

function createListHead(array,gZoom){
	if(gZoom>8){
	var targetP=document.createElement("p");
	var targetPStrAssist=document.createElement("span");
	var targetPStr=document.createTextNode(array[0]+"件中 "+array[1]+"～"+array[2]+"を表示中");
	targetPStrAssist.appendChild(targetPStr);
	targetP.appendChild(targetPStrAssist);
	targetPBox=document.getElementById("resultHead").appendChild(targetP);
	targetPBox.id="areaNum";
	}
	//
	if(array[0]>dentalPrintNum){
		var pageNate=document.createElement("ul");
setPageNate=document.getElementById("resultSwitch").appendChild(pageNate);
		setPageNate.id="pageSwitch";
		setPageNate.className="clearFix";
		//
		if(array[1]!=1){
		var preList=document.createElement("li");
		var preAnc=document.createElement("a");
		var prePage=(page-0)-1;
		preAnc.href="javascript:rewriteMarker('"+prePage+"','"+gZoom+"')";
		var preListStr=document.createTextNode("前へ");
		preAnc.appendChild(preListStr);
		preList.appendChild(preAnc);
		document.getElementById("pageSwitch").appendChild(preList);
		preList.id="preList";
		}
		//
		if(array[0]!=array[2]){
		var nextList=document.createElement("li");
		var nextAnc=document.createElement("a");
		var nextPage=(page-0)+1;
		nextAnc.href="javascript:rewriteMarker('"+nextPage+"','"+gZoom+"')";
		var nextListStr=document.createTextNode("次へ");
		nextAnc.appendChild(nextListStr);
		nextList.appendChild(nextAnc);
		document.getElementById("pageSwitch").appendChild(nextList);
		nextList.id="nextList";
		}
	}
}

function createUserListHead(array)
{
	if(array[0]>dentalPrintNumUser)
	{
		var userPageSwitch=document.createElement("ul");
		var pbBottom=document.getElementById("pbBottom");
		pbBottom.appendChild(userPageSwitch);
		userPageSwitch.id="userPageSwitch";
		//
		if(array[1]!=1)
		{
			var preList=document.createElement("li");
			var preAnc=document.createElement("a");
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 DEL-START */
//			var prePage=(userPage-0)-1;
//			userPage=prePage;
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 DEL-END */
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-START */
//			preAnc.href="javascript:userChange()";
			preAnc.href="javascript:userChange(-1)";
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-END */
			var preListStr=document.createTextNode("前へ");
			preAnc.appendChild(preListStr);
			preList.appendChild(preAnc);
			userPageSwitch.appendChild(preList);
			preList.id="preList";
		}
		//
		if(array[0]!=array[2])
		{
		var nextList=document.createElement("li");
		var nextAnc=document.createElement("a");
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 DEL-START */
//		var nextPage=(userPage-0)+1;
//		userPage=nextPage;
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 DEL-END */
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-START */
//		nextAnc.href="javascript:userChange()";
		nextAnc.href="javascript:userChange(1)";
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-END */
		var nextListStr=document.createTextNode("次へ");
		nextAnc.appendChild(nextListStr);
		nextList.appendChild(nextAnc);
		document.getElementById("userPageSwitch").appendChild(nextList);
		nextList.id="nextList";
		}
	}
}

/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-START */
//function userChange()
function userChange(num)
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 CHG-START */
{
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 ADD-START */
	userPage = userPage + num;
/* 20110215 S.FUKUYOSHI おすすめの歯医者さんで次前のリストが表示されないバグ修正 ADD-END */
checkPref(checkLatLngForPref());
}

//
function createNoList(str){
	var pageNate=document.createElement("ul");
setPageNate=document.getElementById("resultSwitch").appendChild(pageNate);
	setPageNate.id="pageSwitch";
	setPageNate.className="clearFix";
	var targetLi=document.createElement("li");
	var targetLiText=document.createTextNode(str);
	targetLi.appendChild(targetLiText);
	document.getElementById("pageSwitch").appendChild(targetLi);
}

function createList(str,num,flag){
	var targetAnc=document.createElement("a");
	targetAnc.href="javascript:myclick('"+num+"')";
	var targetLi=document.createElement("li");
	var targetLiText=document.createTextNode(str);
	targetAnc.appendChild(targetLiText);
	targetLi.appendChild(targetAnc);
	if(flag==1){
		targetLi.id="targetLiEnd";
	}
	document.getElementById("result").appendChild(targetLi);
}

function createListForEach(str,num,flag){
	var targetAnc=document.createElement("a");
	targetAnc.href="javascript:myclickForEach('"+num+"')";
	var targetLi=document.createElement("li");
	var targetLiText=document.createTextNode(str);
	targetAnc.appendChild(targetLiText);
	targetLi.appendChild(targetAnc);
	if(flag==1){
		targetLi.id="targetLiEnd";
	}
	/*
	if(userFlag==1){
		targetAnc.className="dmcUserList";
	}else{
		targetAnc.className="dmcUserListNor";
	}*/
	document.getElementById("result").appendChild(targetLi);
}

function myclick(num) {
	document.getElementById("showEachDental").style.display="none";
	num=num-1;
    gmarkers[num].openInfoWindowHtml(dentalInfos[num]);
    document.getElementById("totalFormBox").style.display="none";
}

function myclickForEach(num) {
	num=num;
	document.getElementById("showEachDental").style.display="none";
	document.getElementById("totalFormBox").style.display="none";
    gmarkers[num].openInfoWindowHtml(dentalInfos[num]);
}

function checkEnd(){
	page=1;
	userPage=1;
	deleteMarkerAndList();
	if(gZoom>12)
		checkPref(checkLatLngForPref());
	//
	document.getElementById("totalFormBox").style.display="none";
	addMarker(checkLatLng(),page,gZoom);
}

function rewriteMarker(num,gZoom){
	deleteMarkerAndList();
	addMarker(checkLatLng(),num,gZoom);
}

function deleteMarkerAndList(){
	document.getElementById("resultList").removeChild(document.getElementById("result"));
	if(document.getElementById("resultSwitch").childNodes.length>0){
	document.getElementById("resultSwitch").removeChild(document.getElementById("pageSwitch"));
	}
	if(document.getElementById("resultHead").childNodes.length>0){
	document.getElementById("resultHead").removeChild(document.getElementById("areaNum"));
	}
	map.clearOverlays(marker);
}

function showEachDental(num){
	document.getElementById("totalFormBox").style.display="block";
	document.getElementById("showEachDental").style.display="block";
	document.getElementById("txtSearchBox").style.display="none";
	document.getElementById("mapSearchBox").style.display="none";
	//
	httpObj = createXMLHttpRequest(displayLastDentalData);
	if (httpObj){
	httpObj.open("GET","endResultXml.php?detailId="+num,true); 
	httpObj.send(null);
		}
}

function closeEachDental(num){
	document.getElementById("totalFormBox").style.display="none";
	document.getElementById("showEachDental").style.display="none";
	document.getElementById("txtSearchBox").style.display="none";
	document.getElementById("mapSearchBox").style.display="none";
}

function createMarker(mpoint,index,dentalInfo,userFlag) {
	dental=new GIcon();
	if(userFlag==true){
		dental.image="./img/brush.png";
		dental.iconSize=new GSize(31,41);
		dental.iconAnchor=new GPoint(11,39);
		dental.infoWindowAnchor=new GPoint(15,22);
	}else{
		dental.image="./img/dental.png";
		dental.iconSize=new GSize(30,40);
		dental.iconAnchor=new GPoint(12,38);
		dental.infoWindowAnchor=new GPoint(15,22);
	}
    var marker=new GMarker(mpoint,dental);
	GEvent.addListener(marker, 'click', function() {
	document.getElementById("showEachDental").style.display="none";
	marker.openInfoWindowHtml("<strong>"+dentalInfo[1]+"</strong><br />〒"+dentalInfo[2]+"<br />"+dentalInfo[3]+"<p id=\"eachdentalAnc\"><a href=\"javascript:showEachDental("+dentalInfo[4]+")\">"+dentalInfo[1]+"</a>の詳細を見る</p>");
  });
  	gmarkers[j]=marker;
	dentalInfos[j]="<strong>"+dentalInfo[1]+"</strong><br />〒"+dentalInfo[2]+"<br />"+dentalInfo[3]+"<p id=\"eachdentalAnc\"><a href=\"javascript:showEachDental("+dentalInfo[4]+")\">"+dentalInfo[1]+"</a>の詳細を見る</p>";
	j++;
    return marker;
}

function createTownMarker(mpoint, index,dentalInfo) { 
	dental=new GIcon();
	dental.image="./img/town.png";
	dental.iconSize=new GSize(33,42);
	dental.iconAnchor=new GPoint(13,37);
	dental.infoWindowAnchor=new GPoint(10,22);
    var marker=new GMarker(mpoint,dental);
	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml("<strong>"+dentalInfo[1]+"</strong><br />歯科総数"+dentalInfo[2]+"件<br /><a href=\"javascript:moveMap("+dentalInfo[3]+","+dentalInfo[4]+",13)\"><strong>"+dentalInfo[1]+"</strong>周辺の地図に移動する</a>");
  });
  	gmarkers[j]=marker;
	dentalInfos[j]="<strong>"+dentalInfo[1]+"</strong><br />歯科総数"+dentalInfo[2]+"件<br /><a href=\"javascript:moveMap("+dentalInfo[3]+","+dentalInfo[4]+",13)\"><strong>"+dentalInfo[1]+"</strong>周辺の地図に移動する</a>";
	j++;
    return marker;
} 

function createPrefectureMarker(mpoint, index,dentalInfo) { 
	dental=new GIcon();
	dental.image="./img/prefecture.png";
	dental.iconSize=new GSize(34,43);
	dental.iconAnchor=new GPoint(6,35);
	dental.infoWindowAnchor=new GPoint(10,22);
    var marker=new GMarker(mpoint,dental);
	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml("<strong>"+dentalInfo[1]+"</strong><br />歯科総数"+dentalInfo[2]+"件<br /><a href=\"javascript:moveMap("+dentalInfo[3]+","+dentalInfo[4]+",13)\"><strong>"+dentalInfo[1]+"</strong>周辺の地図に移動する</a>");
  });
  	gmarkers[j]=marker;
	dentalInfos[j]="<strong>"+dentalInfo[1]+"</strong><br />歯科総数 "+dentalInfo[2]+"件<br /><a href=\"javascript:moveMap("+dentalInfo[3]+","+dentalInfo[4]+",13)\"><strong>"+dentalInfo[1]+"</strong>周辺の地図に移動する</a>";
	
	j++;
    return marker;
} 

function load(lat,lon,zoom){
	gZoom=zoom;
	if(GBrowserIsCompatible()) {
		map=new GMap2(document.getElementById("map"));
		GEvent.addListener(map, 'zoomend',
        function(oldZoomLevel, newZoomLevel) {
        gZoom=newZoomLevel;
    });
		map.setCenter(new GLatLng(lat, lon), gZoom);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.enableDoubleClickZoom();
		if(gZoom>12)
			checkPref(checkLatLngForPref());
		//
		GEvent.addListener(map,"dragend", checkEnd);
  		addMarker(checkLatLng(),page,gZoom);
  		//
  		GEvent.addListener(map,'zoomend',
	function(oldZoomLevel, newZoomLevel) {
		deleteMarkerAndList();
		page=1;
		userPage=1;
		addMarker(checkLatLng(),page,gZoom);
		if(gZoom>12)
			checkPref(checkLatLngForPref());
	});
  }
}
//
function moveUserMap(web,lat,lng)
{
	page=1;
	userPage=1;
	//
	window.open(web,"dentaUser");
}
//
function readUser(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200))
	{
		var xmlDoc=httpObj.responseXML;
		areaInfo=xmlDoc.documentElement.getElementsByTagName("areainfo");
		currentInfoArrayForUser=checkCurrentInfo(areaInfo);
		if(currentInfoArrayForUser[0]>0)
		{
			if(document.getElementById("userTargetBox")!=null)
			{
				userTargetBox=document.getElementById("userTargetBox");
				h5=userTargetBox.getElementsByTagName("h5")[0];
				userTargetBox.removeChild(h5);
				userTargetUL=document.getElementById("userTargetUL");
				userTargetBox.removeChild(userTargetUL);
				userTarget=document.getElementById("pbBottom");
				userTarget.removeChild(userTargetBox);
				//
				if(document.getElementById("userPageSwitch")!=null)
				{
					var userPageSwitch=document.getElementById("userPageSwitch")
					var pbBottom=document.getElementById("pbBottom");
					pbBottom.removeChild(userPageSwitch);
				}
			}
			//
			var eachNode=xmlDoc.documentElement.getElementsByTagName("dental");
			userTarget=document.getElementById("pbBottom");
			userTargetBox=document.createElement("div");
			userTargetBox.id="userTargetBox";
			userTargetBoxTitle=document.createElement("h5");
			userTargetBox.appendChild(userTargetBoxTitle);
			userTarget.appendChild(userTargetBox);
			userTargetUL=document.createElement("UL");
			userTargetUL.id="userTargetUL";
			userTargetBox.appendChild(userTargetUL);
			//
			for(i=0;i<eachNode.length;i++)
			{
				list=document.createElement("li");
				anc=document.createElement("a");
				var web=eachNode[i].getAttribute("web");
				var lat=eachNode[i].getAttribute("lat");
				var lng=eachNode[i].getAttribute("lng");
				/*
				anc.href=eachNode[i].getAttribute("web");
				anc.innerHTML=eachNode[i].getAttribute("dentalname");
				anc.target="_blank";
				anc.title=eachNode[i].getAttribute("dentalname");
				*/
anc.href='javascript:moveUserMap(\''+web+'\',\''+lat+'\',\''+lng+'\')';
				anc.innerHTML=eachNode[i].getAttribute("dentalname");
				anc.title=eachNode[i].getAttribute("dentalname");
				list.appendChild(anc);
				//
				if(eachNode[i].getAttribute("newFlg")==0)
				{
					img=document.createElement("img");
					img.src="http://www.dentamap.jp/img/dentalNew.gif";
					list.appendChild(img);
				}
				userTargetUL.appendChild(list);
			}
			createUserListHead(currentInfoArrayForUser);
		}
		else
		{
			if(document.getElementById("userTargetBox")!=null)
			{
				userTargetBox=document.getElementById("userTargetBox");
				h5=userTargetBox.getElementsByTagName("h5")[0];
				userTargetBox.removeChild(h5);
				userTargetUL=document.getElementById("userTargetUL");
				userTargetBox.removeChild(userTargetUL);
				userTarget=document.getElementById("pbBottom");
				userTarget.removeChild(userTargetBox);
				//
				if(document.getElementById("userPageSwitch")!=null)
				{
					userPageSwitch=document.getElementById("userPageSwitch")
					document.getElementById("pbBottom").removeChild(userPageSwitch);
				}
			}
		}
	}
}
//
function checkPref(array)
{
	callBackCount=0;
	for(i=0;i<4;i++)
	{
		geocoder = new GClientGeocoder();
		geocoder.getLocations(array[i], dispResult);
	}
}
//
function dispResult(addresses)
{
	if (addresses.Status.code == G_GEO_SUCCESS)
	{
		if(addresses.Placemark[0].AddressDetails.Country.AdministrativeArea)
		{
			if(addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName)
			{
				place=addresses.Placemark[0].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
				prefArray.push(encodeURI(place));
			}
		}
	}
	callBackCount++;
	if(callBackCount==4)
	{
		dentalPrintNumUser=10;
		//通信開始
		httpObj = createXMLHttpRequest(readUser);
		if (httpObj)
		{
			httpObj.open("GET","userXml.php?&dentalPrintNumUser="+dentalPrintNumUser+"&page="+userPage+"&arr="+prefArray+"",true); 
			httpObj.send(null);
		}
		//
		callBackCount=0;
		prefArray=[];
	}
}
//
function checkLatLng(){
		var bounds=map.getBounds();
		var ne=bounds.getNorthEast();
		var sw=bounds.getSouthWest();
		var nw=new GLatLng( ne.lat(), sw.lng() );
		var se=new GLatLng( sw.lat(), ne.lng() );
		var maxLat=ne.lat();
		var maxLng=Math.abs(ne.lng());
		var minLat=Math.abs(se.lat());
		var minLng=Math.abs(sw.lng());
	return [maxLat,maxLng,minLat,minLng];
}

function checkLatLngForPref()
{
	var bounds=map.getBounds();
	//
	var ne=bounds.getNorthEast();
	var sw=bounds.getSouthWest();
	//
	var rightTop=new GLatLng(ne.lat(),ne.lng());
	var rightBottom=new GLatLng(ne.lat(),sw.lng());
	var leftTop=new GLatLng(sw.lat(),ne.lng());
	var leftBottom=new GLatLng(sw.lat(),sw.lng());
	//
	return [leftTop,rightTop,rightBottom,leftBottom];
}

function moveMap(lat,lng,zoom)
{
	deleteMarkerAndList();
	load(lat,lng,zoom);
	mapListSwitch(close);
}

function singleLoad(lat,lng){
	map=new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat, lng), 16);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.enableDoubleClickZoom();
	var mpoint = new GLatLng(lat,lng);
	dental=new GIcon();
	dental.image="./img/dental.png";
	dental.iconSize=new GSize(30,40);
	dental.iconAnchor=new GPoint(12,38);
    var marker=new GMarker(mpoint,dental);
	map.addOverlay(marker);
	}

function singleLoadAdmin(lat,lng){
	map=new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat, lng), 16);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GOverviewMapControl());
	map.enableDoubleClickZoom();
	var mpoint = new GLatLng(lat,lng);
	dental=new GIcon();
	dental.image="../img/dental.png";
	dental.iconSize=new GSize(30,40);
	dental.iconAnchor=new GPoint(12,38);
    var marker=new GMarker(mpoint,dental);
	map.addOverlay(marker);
	}

function singleLoadRegFin(lat,lng){
	map=new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat, lng), 16);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	//map.addControl(new GOverviewMapControl());
	map.enableDoubleClickZoom();
	var mpoint = new GLatLng(lat,lng);
	dental=new GIcon();
	dental.image="../img/dental.png";
	dental.iconSize=new GSize(30,40);
	dental.iconAnchor=new GPoint(12,38);
    var marker=new GMarker(mpoint,dental);
	map.addOverlay(marker);
	}

function singleLoadReg(lat,lng){
	map=new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(lat, lng), 16);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	//map.addControl(new GOverviewMapControl());
	map.enableDoubleClickZoom();
	var mpoint = new GLatLng(lat,lng);
	dental=new GIcon();
	dental.image="../img/dental.png";
	dental.iconSize=new GSize(30,40);
	dental.iconAnchor=new GPoint(12,38);
    var marker=new GMarker(mpoint,dental);
	map.addOverlay(marker);
	//

	GEvent.addListener(map,"click",function(oLay, mPnt) {
		if(tempMarker){
			map.removeOverlay(tempMarker);
		}
		if(mPnt){
		map.panTo(mPnt);
		//var tempZoom=map.getZoom();
		//map.setCenter(new GLatLng(mPnt.y, mPnt.x), tempZoom);
		reWriteLatLng(mPnt.y,mPnt.x);
		dentalAlpha=new GIcon();
		dentalAlpha.image="../img/dentalAlpha.png";
		dentalAlpha.iconSize=new GSize(30,40);
		dentalAlpha.iconAnchor=new GPoint(12,38);
	    tempMarker=new GMarker(mPnt,dentalAlpha);
	    map.addOverlay(tempMarker);
		}
		});
	}

function reWriteLatLng(lat,lng)
{
	var tempLat=myround(lat,6);
	var tempLng=myround(lng,6);
	//
	document.getElementById("dateMLat").value=tempLat;
	document.getElementById("dateMLng").value=tempLng;
}

function myround(val, n)
{
	var s = Math.pow(10, n);
	val = val * s;
	val = Math.round(val);
	val = val / s;
	return val;
}

function getUserDisplay()
{
	if(document.all || window.opera){
		var userDisplay=document.body.scrollHeight;
	}else{
		var userDisplay=document.height;
	}
	var targetBoxWidth=document.getElementById("map").clientWidth;
	document.getElementById("map").style.height=(userDisplay-240)+"px";
	document.getElementById("totalFormBox").style.left=((targetBoxWidth/2)-240+160)+"px";
	document.getElementById("totalFormBox").style.top=150+"px";
	//document.getElementById("resultList").style.height=((userDisplay-240-230))+"px";
	document.getElementById("resultList").style.height="150px";
	/*
	limited : 180px
	*/
}

function mapListSwitch(method)
{
	if(method)
	{
		document.getElementById("totalFormBox").style.display="none";
		document.getElementById("txtSearchBox").style.display="none";
		document.getElementById("mapSearchBox").style.display="none";
		document.getElementById("showEachDental").style.display="none";
	}
	else
	{
		if(document.getElementById("totalFormBox").style.display="none")
		{
			document.getElementById("totalFormBox").style.display="block";
			document.getElementById("mapSearchBox").style.display="block";
			document.getElementById("txtSearchBox").style.display="none";
			document.getElementById("showEachDental").style.display="none";
		}
		else
		{
			document.getElementById("txtSearchBox").style.display="none";
			document.getElementById("showEachDental").style.display="none";
			document.getElementById("mapSearchBox").style.display="block";
		}
		mapSearchBoxReWrite();
	}
}

function txtListSwitch(method)
{
	if(method)
	{
		document.getElementById("totalFormBox").style.display="none";
		document.getElementById("txtSearchBox").style.display="none";
		document.getElementById("mapSearchBox").style.display="none";
		document.getElementById("showEachDental").style.display="none";
	}
	else
	{
		if(document.getElementById("totalFormBox").style.display="none")
		{
			document.getElementById("totalFormBox").style.display="block";		document.getElementById("txtSearchBox").style.display="block";
			document.getElementById("mapSearchBox").style.display="none";
			document.getElementById("showEachDental").style.display="none";
		}
		else
		{
			document.getElementById("txtSearchBox").style.display="block";
			document.getElementById("mapSearchBox").style.display="none";
			document.getElementById("showEachDental").style.display="none";
		}
		var dentalSearch=document.txtListForm.dentalSearch.value;
		dentalSearch=encodeURI(dentalSearch);
		txtSearchBoxReWrite(dentalSearch,1);
	}
}

function txtSearchBoxReWrite(dentalSearch,page){
	httpObj = createXMLHttpRequest(displayTxtData);
	if (httpObj){
httpObj.open("GET","txtSearchXml.php?dentalSearch="+dentalSearch+"&page="+page+"&numLimit=50",true); 
	httpObj.send(null);
	}
}

function mapSearchBoxReWrite(str,page){
	if(str==null){
	fName='./lib/mapSearchBoxDefault.txt';
	httpObj = createXMLHttpRequest(displayData);
		if (httpObj){
		httpObj.open("GET",fName,true);
		httpObj.send(null);
		}
	//reWriteEachTown
	}else{
		prefCode=str;
		httpObj = createXMLHttpRequest(displayEachTownData);
		if (httpObj){
			mapSearchBoxPage=1;
			page=1;
			userPage=1;
httpObj.open("GET","mapSearchXml.php?prefCode="+prefCode+"&page="+mapSearchBoxPage+"&numLimit=50",true); 
		httpObj.send(null);
		}
	}
}

function displayData(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		document.getElementById("mapSearchBoxContent").innerHTML = httpObj.responseText;
	}
}

function displayLastDentalData(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		var resultInfoRoot=httpObj.responseXML;
		var resultinfo=resultInfoRoot.documentElement.getElementsByTagName("info");
		document.getElementById("showEachHeadTxt").innerHTML = resultinfo[0].getAttribute("dentalName");
		//
		var showEachDentalContentChange="";
		showEachDentalContentChange='<div id="showEachDentalInner">';
	showEachDentalContentChange+='<dl class="clearFix"><dt id="showEachDentalInnerZip">住所</dt><dd><p>'+resultinfo[0].getAttribute("dentalZip")+'<br />'+resultinfo[0].getAttribute("dentalAddress")+'</p></dd>';
	if((resultinfo[0].getAttribute("plusWeb"))&&(resultinfo[0].getAttribute("web")))
	{
		showEachDentalContentChange+='<dt id="showEachDentalInnerURL">URL<dt><dd><a href='+resultinfo[0].getAttribute("plusWeb")+'>'+resultinfo[0].getAttribute("plusWeb")+'</a><br /><a href='+resultinfo[0].getAttribute("web")+'>'+resultinfo[0].getAttribute("web")+'</a></dd>';
	}
	else if((!resultinfo[0].getAttribute("plusWeb"))&&(!resultinfo[0].getAttribute("web")))
	{
		//
	}
	else
	{
		showEachDentalContentChange+='<dt id="showEachDentalInnerURL">URL<dt><dd>';
		
		if(resultinfo[0].getAttribute("plusWeb"))
		{
			showEachDentalContentChange+='<a href='+resultinfo[0].getAttribute("plusWeb")+'>'+resultinfo[0].getAttribute("plusWeb")+'</a>';
		}
		
		if(resultinfo[0].getAttribute("web"))
		{
			showEachDentalContentChange+='<a href='+resultinfo[0].getAttribute("web")+'>'+resultinfo[0].getAttribute("web")+'</a>';
		}
	}
	
		showEachDentalContentChange+='<dt id="showEachDentalInnerTel">電話番号<dt><dd><ul><li>'+resultinfo[0].getAttribute("tel01")+'</li>';
		if(resultinfo[0].getAttribute("tel02")){
		showEachDentalContentChange+='<li>'+resultinfo[0].getAttribute("tel02")+'</li>';
		}
		if(resultinfo[0].getAttribute("tel03")){
		showEachDentalContentChange+='<li>'+resultinfo[0].getAttribute("tel03")+'</li>';
		}
		if(resultinfo[0].getAttribute("tel04")){
		showEachDentalContentChange+='<li>'+resultinfo[0].getAttribute("tel04")+'</li>';
		}
		showEachDentalContentChange+='</ul></dd></dl>';
		showEachDentalContentChange+='</div>';
		document.getElementById("showEachDentalContent").innerHTML = showEachDentalContentChange;
	}
}

function displayTxtData(){
	//
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		var resultInfoRoot=httpObj.responseXML;
		var resultinfo=resultInfoRoot.documentElement.getElementsByTagName("resultinfo");
		var resultinfoTotalNum=resultinfo[0].getAttribute("totalNum");
		var resultinfoPage=resultinfo[0].getAttribute("currentPage");
		var resultValue=resultinfo[0].getAttribute("result");
		var dentalEachInfo=resultInfoRoot.documentElement.getElementsByTagName("dental");
		var eachTownBox="";
		eachTownBox+='<p><span>'+decodeURI(resultValue)+'</span>での検索結果</p>';
		if(resultinfoTotalNum>0){
		eachTownBox+='<div id="txtSearchBoxInner">';
		currentInfoArray=checkCurrentDentalInfo(resultinfo);
		eachTownBox+='<span>'+currentInfoArray[0]+'件中 '+currentInfoArray[2]+'～'+currentInfoArray[3]+'を表示中</span>\n';
			eachTownBox+='<ul id="blockPageLay" class="clearFix">';
		if(currentInfoArray[2]!=1){
			eachTownBox+='<li id="bpPre"><a href="javascript:txtSearchBoxReWrite(\''+encodeURI(resultValue)+'\','+(resultinfoPage-0-1)+')">前へ</a></li>';
			}
if(currentInfoArray[0]!=currentInfoArray[3]){
			eachTownBox+='<li><a href="javascript:txtSearchBoxReWrite(\''+encodeURI(resultValue)+'\','+(resultinfoPage-0+1)+')">次へ</a></li>';
}
		eachTownBox+='</ul>';
		//
		eachTownBox+='<div class="clr"></div><ul id="keyListLay">';
		for(dentalEachInfoRoop=0;dentalEachInfoRoop<dentalEachInfo.length;dentalEachInfoRoop++){
		if(dentalEachInfoRoop%2==0){
	eachTownBox+='<li><dl class="keyLay"><dt><a href="javascript:showEachDental(\''+dentalEachInfo[dentalEachInfoRoop].getAttribute("id")+'\')">'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentalname")+'</a></dt><dd>'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentalzip")+'<br />'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentaladdress")+'</dd></dl></li>';
	}else{
eachTownBox+='<li><dl class="keyLayOdd"><dt><a href="javascript:showEachDental(\''+dentalEachInfo[dentalEachInfoRoop].getAttribute("id")+'\')">'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentalname")+'</a></dt><dd>'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentalzip")+'<br />'+dentalEachInfo[dentalEachInfoRoop].getAttribute("dentaladdress")+'</dd></dl></li>';
	}
		}
		//
		eachTownBox+='</ul>';
		eachTownBox+='<ul id="blockPageLay" class="clearFix">';
		if(currentInfoArray[2]!=1){
			eachTownBox+='<li id="bpPre"><a href="javascript:txtSearchBoxReWrite(\''+encodeURI(resultValue)+'\','+(resultinfoPage-0-1)+')">前へ</a></li>';
			}
if(currentInfoArray[0]!=currentInfoArray[3]){
			eachTownBox+='<li><a href="javascript:txtSearchBoxReWrite(\''+encodeURI(resultValue)+'\','+(resultinfoPage-0+1)+')">次へ</a></li>';
}
		eachTownBox+='</ul>';
		}else{
		eachTownBox+='<div id="listNotFound">お探しのキーワードに該当する歯科医院が見つかりませんでした。</div>';
		}
		eachTownBox+='</div>';
		
		
		document.getElementById("txtSearchBoxContent").innerHTML = eachTownBox;
	}else{
	}
}
//
function displayEachTownData(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		var eachTownRoot=httpObj.responseXML;
		var towninfo=eachTownRoot.documentElement.getElementsByTagName("towninfo");
		var eachTownTotalNum=towninfo[0].getAttribute("totalNum");
		var eachTownInfoName=towninfo[0].getAttribute("blockName");
		var eachTownInfoCode=towninfo[0].getAttribute("blockCode");
		var eachTownInfoPage=towninfo[0].getAttribute("currentPage");
		//
		var eachTownInfo=eachTownRoot.documentElement.getElementsByTagName("town");
		//crateEachTownBox
		var eachTownBox='<p><a href="javascript:mapListSwitch()">全国一覧に戻る</a></p>';
		eachTownBox+='<dl>\n<dt><strong><a href="javascript:moveMap('+towninfo[0].getAttribute("parentLat")+','+towninfo[0].getAttribute("parentLng")+',13)">'+eachTownInfoName+'</a></strong><em>のエリア一覧</em></dt>\n<dd>\n';
		if(eachTownTotalNum>50){
			currentInfoArray=checkCurrentTownInfo(towninfo);
			eachTownBox+='<span>'+currentInfoArray[1]+'件中 '+currentInfoArray[2]+'～'+currentInfoArray[3]+'を表示中</span>\n';
			eachTownBox+='<ul id="blockPageLay" class="clearFix">';
			if((eachTownTotalNum>50)&&(currentInfoArray[2]!=1)){
				eachTownBox+='<li id="bpPre"><a href="javascript:mapSearchBoxReWrite('+eachTownInfoCode+','+(eachTownInfoPage-0-1)+')">前へ</a></li>';
			}
if((eachTownTotalNum>50)&&(currentInfoArray[1]!=currentInfoArray[3])){
			eachTownBox+='<li><a href="javascript:mapSearchBoxReWrite('+eachTownInfoCode+','+(eachTownInfoPage-0+1)+')">次へ</a></li>';
			}
		eachTownBox+='</ul>';
		}
		eachTownBox+='<div class="clr"></div><ul id="eachTownBoxList">\n';
		for(etbRoop=0;etbRoop<eachTownInfo.length;etbRoop++){
			eachTownBox+='<li><a href="javascript:moveMap('+eachTownInfo[etbRoop].getAttribute("lat")+','+eachTownInfo[etbRoop].getAttribute("lng")+',13)">'+eachTownInfo[etbRoop].getAttribute("townName")+'</a></li>\n';
		}
		eachTownBox+='</ul>\n';
			document.getElementById("mapSearchBoxContent").innerHTML = eachTownBox;
	}
}
