﻿var gStartCenterX,gStartCenterY,gStartScale,gStartRect
var gMinX,gMinY,gMaxX,gMaxY
var scflg=0;
var iconNameOnOFF = 1;
var URLbase=getURL();
var dispENval=0;
var mapURLval=1;
var x =-1;
var kk=-1;
var browser=''
var plugin=false

function openWin(filename,wname,w,h,onoff)
{
	if (onoff=="off")
	{
		var val="toolbar=no,location=no,status=no,menubar=no";
	}
	else
	{
		var val="toolbar=yes,location=yes,status=yes,menubar=yes";
	}
	var newwin=window.open(filename,wname,val+',scrollbars=yes,resizable=yes,width='+w+',height='+h);
	newwin.focus();
}

function showMapFrame() {
	map.tcl("gui update");
}
var scrollStateVar=0;
function scrollMout(){
	if (scflg==1){
		scrollMode(0);
		top.map.stopScroll();
	}
}
function scrollMode(n) {
	scrollStateVar=n;
}
function scroll(n,direction) {
	if(!n) return;
	if(scrollStateVar) {
		map.startScroll(direction);
		scflg=1;
	}
}
function m_out(){	
	scrollMode(0);
	map.stopScroll();
	map.stopZooming();
}
function m_up(){
	scrollMode(0);
	map.stopScroll();
	map.stopZooming();
}
function zoomSet(val){		
	map.setMapScale(val);
	map.openMap();
}
function zoomingSet(str){		
	map.startZooming(str);
}
function msgInMap(gName,str){
	map.draw_remove(gName);
	map.draw_group(gName);
	map.draw_xyunit('deg');
	map.draw_level('all');
	map.draw_color(255,255,255);
	map.draw_width(20);
	lineArray=new Array(map.getLeft(),map.getCy(),map.getRight(),map.getCy());
	map.draw_line(lineArray);
	map.draw_color(0,0,255);
	map.draw_text('MS Gothic','極太',16,'CC',str,map.getCx(),map.getCy());
	map.openMap();
}
function msgOut(gName){
	map.draw_remove(gName);
}
function iconName(flg){
	iconNameOnOFF = flg;
	if (iconNameOnOFF==0){
		map.displayLayer("*.注記",0);
	}else{
		var temp;
		var xx=map.getLayers();
		var i;
		for (i = 0; i < xx.length; i++) {
			if ((n = xx[i].indexOf("icon")) != -1) {
				if (map.displayStyle(xx[i])!=0){	
					temp = xx[i].lastIndexOf(".");
					temp = xx[i].substring(0,n);
					map.displayLayer(temp+"注記",iconNameOnOFF);
				}
			}
		}
	}
}
function getLayersToLayerNo(){
	var retiNo ="";
	var retpNo ="";
	var ret ="";
	var i,temp,n,np;
	var xx=map.getLayers();	
	for (i = 0; i < xx.length; i++) {
		if ((n = xx[i].indexOf("icon")) != -1) {
			if (map.displayStyle(xx[i])!=0){	
				if ((np = xx[i].indexOf("point=")) != -1) {
					temp = xx[i].substring(np+6);	
					temp = temp.substring(0,temp.indexOf("."));	
					if (retpNo==""){retpNo=temp}
					else{retpNo=retpNo+","+temp}
				}else{
					temp = xx[i].substring(0,n-1);	
					temp = temp.substring((temp.lastIndexOf("."))+1);	
					if (retiNo==""){retiNo=temp}
					else{retiNo=retiNo+","+temp}
				}
			}
		}
	}
	if (retiNo!=""){ret="&i="+retiNo}
	if (retpNo!=""){ret=ret+"&po="+retpNo}
	if ((kk != -1)&&(kk !="")){ret=ret+"&kk="+kk;}
	return ret;
}
function MotoMapLayerOnoff(layerName,onoff){	
	map.displayLayer(layerName,onoff,0)
}
function initPosition() {
	if (gStartRect==-1){
		top.map.setMapCenter(gStartCenterX,gStartCenterY,gStartScale); 
		top.map.openMap();
		top.map.setMapCenter(gStartCenterX,gStartCenterY,gStartScale); 
	}else{
		top.map.setMapRect(gStartCenterX,gStartCenterY,gStartScale,gStartRect)
		top.map.openMap()
	}
}
function setPosition(str) {	
	if(str=="") {
		return;
	}
	setMapCenterStr(str);
	map.openMap();
}
function getPositionValue(str,getMe){	
	var n,x,y,scl,ret;
	n = str.indexOf("=");	str = str.substring(n+1); 
	n = str.indexOf(",");	x = str.substring(0,n);
	if (getMe=="x") {
		ret = x;
	} else {
		str = str.substring(n+1);
		n = str.indexOf(",");	y = str.substring(0,n);
		if (getMe=="y"){
			ret = y;
		} else{ 
			scl = str.substring(n+1);
			ret = scl;
		}
	}
	return ret;
}
function setMapCenterStr(str) {
	var x,y,scl;
	x = getPositionValue(str,"x");
	y = getPositionValue(str,"y");
	scl = getPositionValue(str,"scl");
	map.setMapCenter(x,y,scl); 
}
function MegetMapScale(){
	var ret=getPositionValue(map.getPositionMailXY(),"scl");
	return Number(ret);
}
function setMouseMode(str){	
	//delENMsg();
	if (str=="print"){
			map.printMap();
	}else {
		map.setMouseMode(str);
	}
	swapBtImage(str);	
}
function LinkURL(obj,name){	
	var tergetURL;
	tergetURL = map.objFieldVal(obj,name);
	if (tergetURL == ""){
		alert("リンクはありません。");
	}else{
		map.disablePopup();
		map.enablePopup();
		tergetURL=tergetURL.replace(/＝/g, "="); 
		var myTerget="mapLinkWin";
		var temp=URLbase;
		if ((tergetURL.indexOf(temp)>0)||(tergetURL.charAt(0)=="/")) {
			var myTerget="_top";
		}
		var w = window.open(tergetURL, myTerget);
			if (w==null){
				alert("ポップアップウインドウの表示を許可していない場合は、\n許可した状態でご覧ください。");
			}
	}
}
function idou(){
	var ed = parseInt(document.zahyo.e_do.value);	
	var ef = parseInt(document.zahyo.e_fun.value);
	var eb = (document.zahyo.e_byo.value);
	var set_x= ed + ef/60 + eb/3600;
	var nd = parseInt(document.zahyo.n_do.value);
	var nf = parseInt(document.zahyo.n_fun.value);
	var nb = (document.zahyo.n_byo.value);
	var set_y= nd + nf/60 + nb/3600;
	var set_s=document.zahyo.S.value;
	map.setMapCenter(set_x,set_y,set_s);
	map.openMap();
}
function chkscale(setScl) {
	map.openMap();
	var str = map.getPositionMailXY();
	var scl = getPositionValue(str,"scl");
	if (scl<setScl) {
		map.setMapScale(setScl); 
		map.openMap();
	}
}
var newWin,objList,errHtmlMsg;
function ichiran(){
	var maxCount=100;	
	errHtmlMsg=0
	objList=map.queryWindow();
	var i,temp;
	var tempObjList=new Array();
	for(i=0;i<objList.length;i++){
		temp=map.objLayer(objList[i])
		if ((map.displayStyle(temp)==1)&&(temp.indexOf("icon")>0)){
			tempObjList.push(objList[i]);
		}
	}
	objList=tempObjList
	var flg=true;
	if (objList.length > maxCount){
		var msg="表示されている施設は "+objList.length+"件あります。\n";
		msg=msg+"件数が多いと一覧を表示するまでに時間がかかります。\n";
		msg=msg+"よろしいですか？";
		if (!(window.confirm(msg))){flg=false;}
	}
	if (flg){
		newWin=window.open('sub/shisetulist.html','win','scrollbars=yes,resizable=yes,menubar=yes,width=600,height=480');
		newWin.focus();
	}
}
function layoutHTML(myList){
	var temp = myList.split(",");
	var i;
	var cnt=0;
	newWin.document.write ('<tr>');
	for(i=0;i<temp.length;i++){
		newWin.document.write ('<td><font size="-1">');
		if ((temp[i]=="")||(temp[i]==" ")){cnt=cnt+1;temp[i]="　";}
		newWin.document.write (temp[i]);
		newWin.document.write ('</font></td>');
	}
	newWin.document.write ('</tr>');
	if (cnt>=3){errHtmlMsg=1}
}
function putHtmlMsg(){
	if (errHtmlMsg>=1){
	newWin.document.write ('<font size="-1">※うまく表示されない場合は、範囲・縮小率を変えてみる、あるいは、アイコン名称を「非表示」にしてみてください。</font>');
	}
}
var mapLayerArray=new Array(12);
for (i = 0; i < mapLayerArray.length; i++) {
	mapLayerArray[i]=1;
}
function mapLayerLevelSub(valArray,ArrayNo,onoff){	
	var i,lname;
	for (i = 0; i < valArray[ArrayNo].length; i++) {
		lname=valArray[ArrayNo][i]+"*";
		map.displayStyle(lname,onoff,0);
	}
}
function mapLayerSimple(flg){	
	var offLayerArray=new Array(3,4,5,9,11);
	var temp,onoff,i;
	var tempArray=new Array(mapLayerArray.length);
	for (i = 0; i < tempArray.length; i++) {
		tempArray[i]=1;	
	}
	if(flg==1){	
		for (i = 0; i < offLayerArray.length; i++) {
			tempArray[offLayerArray[i]]=0;
		}
	}
	for (i = 0; i < mapLayerArray.length; i++) {
		if (mapLayerArray[i]!=tempArray[i]){
			setMapLayer(i,tempArray[i]);
		}
	}
}
function setMapLayerAll(flg){
	var valArray=new Array();
	valArray[1] = new Array(
	"褐版",
	"公共施設",
	"注記版",
	"墨版",
	"藍版"
	);
	mapLayerLevelSub(valArray,1,flg);
	setmapLayerFlgAll(flg);
}
function setmapLayerFlgAll(flg){
	for (i = 0; i < mapLayerArray.length; i++) {
		mapLayerArray[i]=flg;
	}
}
function setMapLayer(No,flg){	
	mapLayerArray[No]=flg;
	var valArray=new Array();
	var val;
	switch (No) {
	case 1:	
		valArray[1] = new Array(
		"藍版.地形.水部の地形.海岸線",
		"藍版.地形.水部の地形.水涯線",
		"藍版.地形.水部の地形.干がた",
		"藍版.地形.陸部の地形.湿地",
		"墨版.その他の構造物.防波堤等",
		"墨版.境界等"
		);
		break;
	case 2:	
		valArray[1] = new Array(
		"藍版.地形.基準点",
		"藍版.描画用",
		"藍版.地形.水部の地形.おう地",
		"藍版.地形.水部の地形.河川",
		"藍版.地形.水部の地形.水涯線",
		"藍版.地形.水部の地形.水部がけ",
		"藍版.地形.水部の地形.等深線",
		"墨版.地形.水部の地形",
		"墨版.その他の構造物.ダム",
		"墨版.その他の構造物.水門",
		"墨版.その他の構造物.せき",
		"墨版.その他の構造物.水制",
		"墨版.交通施設.水上航路",
		"注記版.水部の地形"
		);
		break;
	case 3:	
		valArray[1] = new Array(
		"褐版.交通施設",
		"褐版.地形",
		"褐版.描画用",
		"藍版.地形.陸部の地形.万年雪",
		"藍版.地形.水部の地形.等深線",
		"墨版.地形.陸部の地形",
		"墨版.地形.基準点",
		"注記版.基準点",
		"注記版.陸部の地形"
		);
		break;
	case 4:	
		valArray[1] = new Array(
		"墨版.建物等",
		"墨版.土地の利用景.特定地区.特定地区界",
		"墨版.土地の利用景.特定地区.樹木に囲まれた居住地"
		);
		break;
	case 5:	
		valArray[1] = new Array(
		"藍版.土地の利用景",
		"墨版.土地の利用景.植生"
		);
		break;
	case 6:	
		valArray[1] = new Array(
		"墨版.交通施設.道路",
		"褐版.交通施設.道路",
		"墨版.描画用.線的アーク.道路系",
		"墨版.その他の構造物.へい",
		"墨版.その他の構造物.坑口",
		"墨版.その他の構造物.擁壁"
		);
		break;
	case 7:	
		valArray[1] = new Array(
		"墨版.交通施設.鉄道",
		"墨版.描画用.線的アーク.鉄道系",
		"褐版.交通施設.鉄道"
		);
		break;
	case 8:	
		valArray[1] = new Array(
		"墨版.その他の構造物.坑口",
		"墨版.土地の利用景.特定地区.採石地",
		"墨版.土地の利用景.場地",
		"注記版"
		);
		break;
	case 9:	
		valArray[1] = new Array(
		"墨版.その他の構造物.送電線",
		"墨版.その他の構造物.輸送管",
		"墨版.描画用.ポイント",
		"墨版.描画用.線的アーク.種別無し",
		"墨版.描画用.面的アーク",
		"藍版.地形.水部の地形.河川.１条地下水",
		"藍版.地形.水部の地形.河川.２条地下水"
		);
		break;
	case 10:	
		valArray[1] = new Array(
		"公共施設"
		);
		break;
	case 11:	
		valArray[1] = new Array(
		"xml.基盤地図情報.建築物の外周線",
		"xml.国土地理院.数値地図2500.陸域"
		);
		break;
	}
	mapLayerLevelSub(valArray,1,flg);
}

function browserKind(){
	var ret="";
	if (navigator.appName=="Microsoft Internet Explorer"){ret="ie"}
	return ret;
}
function pluginCheck(){
	var result = false;
	if (browserKind()=="ie"){
		result=true;
		return result;
	}
	var str = "application/x-webtis";
	if (navigator.mimeTypes && navigator.mimeTypes[str] && navigator.mimeTypes[str].enabledPlugin ) result = true;
	if(result==false){
	}else{
	}
	return result;
}
function getURL(){
	var temp;
	var ret=document.location.pathname;	
	if ((n = ret.lastIndexOf(".")) != -1) {
		if ((document.location.protocol).indexOf("http") !=-1){
			temp='/';
		}else{
			temp='\\';
		}
		ret = ret.substring(0,ret.lastIndexOf(temp)+1);
	}
	ret=document.location.protocol+'//'+document.location.hostname+ret;
	return ret
}
var bhsize=0;
function resizeWin() { 
	var myH=document.body.clientHeight;
	if (bhsize!=myH){
		theheight=mapheight();
		document.getElementById('map').style.height=theheight;
		bhsize=myH;
		top.map.openMap();
	}
}
function mapheight(){
	var myH=document.body.clientHeight;
	var theheight=myH-mapHsubs;
	var themin=265;
	if (theheight<themin){theheight=themin}
	return theheight;
}
function swapBtImage(str){	
	switch (str) {
	case "pan":
		swapImage('MOVE','img/btn_map01_on.gif');
		break;
	case "zoom":
		swapImage('ZOOM','img/btn_map02_on.gif');
		break;
	}
}
function swapImage(imageurl,chengURL){
	oldImageurl = document.formbt.pushbutton.value;
	if (imageurl!=oldImageurl){
		urlMain=document.images[imageurl].src;
		document.images[imageurl].src = chengURL;
		if (oldImageurl){
			returnURL = document.formbt.pushbuttonImage.value;
			document.images[oldImageurl].src = returnURL;
		}
		document.formbt.pushbutton.value = imageurl;
		document.formbt.pushbuttonImage.value = urlMain;
	}
}

