
﻿
function attatchMaps(view,ws_list,refresh,zorderBase,isASP)
{if(ws_list==null||ws_list.length==0)
return;if(!zorderBase)zorderBase=0;var resultMaps=new Array();for(var i=ws_list.length-1;i>=0;i--)
{var ws_info=ws_list[i];if(ws_info==undefined)continue;var istranspng=(ws_info.istranspng==1)?'true':'false';var minscale=(ws_info.minscale!=undefined&&!isASP)?ws_info.minscale:0;var maxscale=(ws_info.maxscale!=undefined&&!isASP)?ws_info.maxscale:0;var map;if(ws_info.has_tile==1&&ws_info.tile_url.length>0){var precache=(ws_info.precache==1)?'true':'false';var scrolling=(ws_info.scrolling)?'true':'false';var extension=(ws_info.extension!=undefined)?ws_info.extension:'png';map=new GETileMap(ws_info.tile_url,ws_info.ws_id,ws_info.name,'{ "precache" : '+precache+', "scrolling" : '+scrolling+', "extension" : "'+extension+'", "minscale" : '+minscale+', "maxscale" : '+maxscale+', "istranspng" : '+istranspng+' }');}else{map=new GEDynamicMap(ws_info.dynamic_url,ws_info.ws_id,ws_info.name,'{ "istranspng" : '+istranspng+' }');}
view.attachMap(map);resultMaps.push(map);}
if(refresh)view.refresh();return resultMaps;}
function setSize()
{var viewElm=document.getElementById('view');var gosa1=0;var gosa2=2;if(GEBrowser.isIE())
{gosa1=2;gosa2=4;}
var headerSize=GEFunctions.parsePx(document.getElementById('header').style.height);var footerSize=GEFunctions.parsePx(document.getElementById('footer').style.height);var clientHeight=(GEBrowser.isIE())?document.documentElement.clientHeight:window.innerHeight;var viewRow=document.getElementById('mapRow');var cntlWidth=GEFunctions.parsePx(document.getElementById('listCntl').style.width);var listWidth=GEFunctions.parsePx(document.getElementById('listRow').style.width);viewElm.style.height=GEFunctions.createPx(clientHeight-(headerSize+footerSize)-gosa1);clientWidth=(GEBrowser.isIE())?document.documentElement.clientWidth:window.innerWidth;if(document.getElementById("listRow").style.display=="none")
{if(document.getElementById('btnImgOff').style.display=="none"&&document.getElementById('btnImgOn').style.display=="none")
{viewRow.style.width=GEFunctions.createPx(clientWidth-2);}
else
{viewRow.style.width=GEFunctions.createPx(clientWidth-(cntlWidth)-gosa1);}}
else
{viewRow.style.width=GEFunctions.createPx(clientWidth-(cntlWidth+listWidth)-gosa1);}
var listHeadHeight=GEFunctions.parsePx(document.getElementById('list_header').style.height);var layerList=document.getElementById('layerList');layerList.style.height=GEFunctions.createPx(clientHeight-(headerSize+footerSize+listHeadHeight)-gosa2);_view.onresize();}
function initLayerList()
{var other="";if(_isASP)
{other="&other="+escape(_userId);}
var param="mode=get&area="+_areacode+other+"&t="+GEFunctions.getRandomString();var http=new GEXmlHttp("./rest/UserLayer.aspx","GET",param);http.beginExecute(function(result){var layerList=document.getElementById('layerList');if(!result||result.response=="error"||result.layers.length==0)
{document.getElementById('btnImgOff').style.display="none";document.getElementById('listRow').style.display="none";document.getElementById('listCntl').style.display="none";setSize();}
else
{document.getElementById("listRow").style.display='';document.getElementById("btnImgOff").style.display='';document.getElementById("btnImgOn").style.display="none";setSize();_LayerData=result.layers;makeLayerList(-1);document.getElementById('listCntl').style.display='';GEEvent.addListener(document.getElementById("listup"),"click",function()
{if(_ListItemSelected==null)return;document.getElementById("listup").disabled=true;var v=_ListItemSelected.split("_");var sid=v[1];replaceList(0,sid);makeLayerList(sid);refreshLayer();document.getElementById("listup").disabled=false;});GEEvent.addListener(document.getElementById("listdown"),"click",function()
{if(_ListItemSelected==null)return;document.getElementById("listdown").disabled=true;var v=_ListItemSelected.split("_");var sid=v[1];replaceList(1,sid);makeLayerList(sid);refreshLayer();document.getElementById("listdown").disabled=false;});GEEvent.addListener(document.getElementById("btnImgOff"),"click",function()
{document.getElementById("listRow").style.display="none";document.getElementById("btnImgOff").style.display="none";document.getElementById("btnImgOn").style.display='';setSize();});GEEvent.addListener(document.getElementById("btnImgOn"),"click",function()
{document.getElementById("listRow").style.display='';document.getElementById("btnImgOn").style.display="none";document.getElementById("btnImgOff").style.display='';setSize();});}});}
function makeLayerList(pSID)
{var layerContener=document.getElementById('layerList');var childs=layerContener.childNodes;for(var i=0;i<childs.length;i++)
{if(childs[i].tagName=="DIV"&&childs[i].id=="layerListItems")
{layerContener.removeChild(childs[i]);}}
var layerList=document.createElement('div');layerList.id="layerListItems";layerList.style.width=GEFunctions.createPx(194);layerContener.appendChild(layerList);for(var i=0;i<_LayerData.length;i++)
{if(_LayerData[i]==undefined||!_LayerData[i])continue;var sid=_LayerData[i].sid;var listItem=document.createElement('div');listItem.id="listItem_"+sid;listItem.style.width=GEFunctions.createPx(194);listItem.style.cursor=GECursor.Default;listItem.style.padding=GEFunctions.createPx(3);if(sid==pSID)
{listItem.style.backgroundColor="#EEEEEE";}
var layerCheck=document.createElement('input');layerCheck.type="checkbox";layerCheck.id="layer_"+sid;layerCheck.value=_LayerData[i].sid;if(IsCheckedOpenLayer(sid))
{layerCheck.defaultChecked=true;}
else
{layerCheck.defaultChecked=false;}
GEEvent.addListener(layerCheck,"click",function(evt)
{var elm=(evt.srcElement==null)?evt.target:evt.srcElement;dispayLayer(elm.value,elm.checked);geomInfoOperation();});listItem.appendChild(layerCheck);var labelText=_LayerData[i].layername;listItem.appendChild(document.createTextNode(" "));listItem.appendChild(document.createTextNode(labelText));var maker=document.createElement('div');maker.innerHTML=_LayerData[i].username+"&nbsp&nbsp";maker.style.height=GEFunctions.createPx(5);maker.style.fontSize="8pt";maker.align="right";listItem.appendChild(maker);layerList.appendChild(listItem);var border=document.createElement("hr")
border.style.width=GEFunctions.createPx(194);border.size=GEFunctions.createPx(1);border.style.color="#A0A0A0";layerList.appendChild(border);GEEvent.addListener(listItem,"mouseover",function(evt)
{var elm=(evt.srcElement==null)?evt.target:evt.srcElement;if(_ListItemSelected!=null&&_ListItemSelected==elm.id)return;if(elm.id.indexOf("listItem")<0)return;elm.style.backgroundColor="#EEEEEE";});GEEvent.addListener(listItem,"mouseout",function(evt)
{var elm=(evt.srcElement==null)?evt.target:evt.srcElement;if(_ListItemSelected!=null&&_ListItemSelected==elm.id)return;if(elm.id.indexOf("listItem")<0)return;elm.style.backgroundColor="#FFFFFF";});　
GEEvent.addListener(listItem,"click",function(evt)
{var elm=(evt.srcElement==null)?evt.target:evt.srcElement;if(elm.id.indexOf("listItem")<0)return;if(_ListItemSelected!=null&&_ListItemSelected==elm.id)
{_ListItemSelected=null;elm.style.backgroundColor="#FFFFFF";}
else
{if(_ListItemSelected!=null)
{document.getElementById(_ListItemSelected).style.backgroundColor="#FFFFFF";}
elm.style.backgroundColor="#EEEEEE";_ListItemSelected=elm.id;}});}}
function replaceList(updn,sid)
{var selIdx=-1;for(var i=0;i<_LayerData.length;i++)
{if(_LayerData[i]==undefined||!_LayerData[i])continue;if(_LayerData[i].sid==sid)
{selIdx=i;break;}}
if(selIdx==-1)return(false);var result=false;if(updn==0)
{if(selIdx!=0)
{var val=_LayerData[selIdx];_LayerData[selIdx]=_LayerData[selIdx-1];_LayerData[selIdx-1]=val;result=true;}}
else
{if(selIdx<_LayerData.length-1&&_LayerData[selIdx+1]!=undefined&&_LayerData[selIdx+1]!=null)
{var val=_LayerData[selIdx];_LayerData[selIdx]=_LayerData[selIdx+1];_LayerData[selIdx+1]=val;result=true;}}
return result;}
function dispayLayer(sid,flg)
{var idx=-1;for(var i=0;i<_openLayerSidList.length;i++)
{if(_openLayerSidList[i]==sid)
{idx=i;break;}}
if(idx!=-1)
{if(flg)
{_openMemoryLayerTable[idx].show();_openLayerStatus[idx]=1;}
else
{_openMemoryLayerTable[idx].hide();_openLayerStatus[idx]=0;}}
else
{var memorylayer=_view.createMemoryLayer(sid);_openMemoryLayerTable.push(memorylayer);_openLayerSidList.push(sid);_openLayerStatus.push(1);memorylayer.hide();var zindex=getZindex(sid);memorylayer.setIndex(zindex);setGeometry(memorylayer,sid);memorylayer.show();}}
function refreshLayer()
{for(var i=0;i<_LayerData.length;i++)
{if(_LayerData[i]==undefined||!_LayerData[i])continue;var sid=_LayerData[i].sid;for(var j=0;j<_openLayerSidList.length;j++)
{if(sid==_openLayerSidList[j])
{_openMemoryLayerTable[j].setIndex(_LayerData.length-i);break;}}}}
function setGeometry(memorylayer,sid)
{var expression=new GEFeatureExpression();expression.attribute="(OPENLAYER_ID = "+sid+")";_setGeometry(expression,_targetLayer_icon,memorylayer);_setGeometry(expression,_targetLayer_line,memorylayer);_setGeometry(expression,_targetLayer_polygon,memorylayer);_setGeometry(expression,_targetLayer_ellipse,memorylayer);}
function _setGeometry(expression,targetlayer,memorylayer)
{var features=targetlayer.queryFeature(expression);if(features!=null&&features.length>0)
{for(var j=0;j<features.length;j++){if(features[j].geometry==null)continue;var items=features[j].attribute.items;var geomid=getGeometryId();memorylayer.add(features[j].geometry,features[j].geometry.feature.property,geomid);if(items[0].length!=0)
{appendText(memorylayer,replaceInputText(items[0]),features[j].geometry,geomid,features[j].geometry.feature.property,items[5],true);}}}}
function getZindex(sid)
{var zindex=0;for(var i=0;i<_LayerData.length;i++)
{if(_LayerData[i]==undefined||!_LayerData[i])continue;if(_LayerData[i].sid==sid)
{zindex=i;break;}}
zindex=_LayerData.length-zindex;return zindex;}
function getAttachDocumentName(filename)
{var result="公開ファイル";var param="name="+escape(filename)+"&t="+GEFunctions.getRandomString();var http=new GEXmlHttp("./rest/OtherService.aspx","GET",param);var json=http.execute();if(json&&json.response!="error"&&json.filename.length!=0)
{result=json.filename;}
return result;}
function showDialog(title,bodyElement)
{var dialog=document.getElementById("dialog");dialog.innerHTML='';var dialog_title=document.createElement('div');dialog_title.innerHTML=title;dialog_title.style.color='#ffffff';dialog_title.style.backgroundColor='#143e74';dialog_title.style.padding='3px';var dialog_body=document.createElement('div');dialog_body.style.backgroundColor='#ffffff';dialog_body.appendChild(bodyElement);dialog_body.style.padding='10px';dialog.appendChild(dialog_title);dialog.appendChild(dialog_body);dialog.style.borderStyle="solid";dialog.style.borderColor="#000000";dialog.style.borderWidth="1px 1px 1px 1px";dialog.style.visibility='visible';var btnClose=document.getElementById("cls");btnClose.style.visibility='visible';var btnDialogClose=document.getElementById("btnDialogClose");GEEvent.addListener(btnDialogClose,"click",function()
{closeDialog();reset_toolbar();geomInfoOperation();});}
function closeDialog()
{var dialog=document.getElementById("dialog");dialog.style.visibility='hidden';dialog.innerHTML='';var btnClose=document.getElementById("cls");btnClose.style.visibility='hidden';}
function isCloseDialog()
{if(document.getElementById("dialog").style.visibility=='hidden'||document.getElementById("dialog").innerHTML=='')
{return true;}
return false;}
function getVisibleMaps(view)
{if(!view)return"";var mapList=view.getMaps();if(mapList==null||mapList.length==0)return"";var resultArray=new Array();for(var i=0;i<mapList.length;i++){if(mapList[i].getVisible())
resultArray.push(mapList[i].getId());}
mapList=null;return resultArray.join(',');}
function appendText(memoryLayer,textStr,geom,id,property,col,render)
{var bound=geom.getBoundary();var text=new GEGPoint(bound.getCenter());text.textString=replaceDisplayText(textStr);var textProperty=new GETextProperty();if(col==null||col.length==0)
{textProperty.fontColor=new GEColor(255,0,0);}
else
{textProperty.fontColor=GEColor.fromHexString(col,255);}
textProperty.fontSize=12;textProperty.backColor=new GEColor(255,255,220);if(geom.getGeometryType()==GEGeometryType.GPoint){textProperty.offset=new GESizeD(0,(property.iconSize.height/2)+6);}
memoryLayer.add(text,textProperty,TXTMK+"_"+id,render);}
function btnZoomArea_OnClick()
{var btnZoomArea=document.getElementById("btnZoomArea")
if(btnZoomArea.style.zIndex!=0)
{closeDialog();reset_toolbar();geomInfoOperation();}
else
{reset_toolbar();btnZoomArea.src="./img/toolbar_zoomarea_sel.gif";btnZoomArea.style.zIndex=1;var op=new GERectZoom();op.end=function()
{closeDialog();reset_toolbar();geomInfoOperation();}
_view.beginOperation(op);}}
function btnCreateLink_OnClick()
{var btnCreateLink=document.getElementById("btnCreateLink")
if(btnCreateLink.style.zIndex!=0)
{closeDialog();reset_toolbar();geomInfoOperation();}
else
{reset_toolbar();btnCreateLink.src="./img/toolbar_link_sel.gif";btnCreateLink.style.zIndex=1;var modeFrame=document.createElement("div");modeFrame.id="urlFrame";modeFrame.style.textAlign="left";var urlText=document.createElement('input');urlText.type="text";urlText.id="url";urlText.size=60;modeFrame.innerHTML='このURLを開くと現在地を表示します。<br />';modeFrame.appendChild(urlText);showDialog("現在のURL",modeFrame);setCurrentUrl();urlText.focus();urlText.select();}}
function cboWorkspace_OnChange()
{var searchKeyword=document.getElementById("searchKeyword");searchKeyword.focus();var control=document.getElementById("cboWorkspace");var mapId=control.options[control.selectedIndex].value;_view.clearMaps();var mapConfig=null;for(var i=0;i<_areaConfig.maps.length;i++){if(_areaConfig.maps[i].map_id==mapId){mapConfig=_areaConfig.maps[i];break;}}
if(mapConfig==null)return;attatchMaps(_view,mapConfig.ws,true,0,_isASP);_view.clearControls();_view.addControl(new GEScalebar());_view.addControl(new GELevelSlider('{ "offsetY" : 50 }'));_view.addControl(new GEIndexView(_index_view));_index_view.centerAt(_view.getCenter());if(mapConfig.copyright){var str=mapConfig.copyright;var eidx=str.lastIndexOf(".");if((eidx+1)<str.length)
{str=str.substring(0,eidx+1)+"\n"+str.substring(eidx+1);}
_view.addControl(new GECopyright(str));}}
function btnAddressInfo_OnClick()
{var btnAddressInfo=document.getElementById("btnAddressInfo")
if(btnAddressInfo.style.zIndex!=0)
{closeDialog();reset_toolbar();geomInfoOperation();}
else
{reset_toolbar();btnAddressInfo.src="./img/toolbar_addressinfo_sel.gif";btnAddressInfo.style.zIndex=1;_event_view_click=GEEvent.addListener(_view._container,"click",function(event){if(btnAddressInfo.style.zIndex==0)return;if(!event)event=window.event;var p=_view.getWorldPoint(event);_service.getAddressInfo(p,function(result)
{var modeFrame=document.createElement("div");modeFrame.id="mapInfoFrame";modeFrame.style.textAlign="left";modeFrame.style.width=GEFunctions.createPx(180);var divResult=document.createElement('div');divResult.id="divResult";var infoStr="";if(result==null||result.addr==undefined||result.addr.length==0){infoStr+="不明"}else{infoStr+=result.addr;}
infoStr+="<br />";if(result==null||result.meshcode==undefined||result.meshcode.length==0){infoStr+="メッシュ: 不明"}else{infoStr+="メッシュ: "+result.meshcode;}
infoStr+="<br />";divResult.innerHTML=infoStr;modeFrame.appendChild(divResult);showDialog("クリック地点の住所",modeFrame);},function()
{alert("[エラー] 住所情報を取得出来ません。");});});}}
function btnMeasure_OnClick()
{var btnMeasure=document.getElementById("btnMeasure");if(btnMeasure.style.zIndex!=0)
{closeDialog();reset_toolbar();geomInfoOperation();}
else
{reset_toolbar();btnMeasure.src="./img/toolbar_measure_sel.gif";btnMeasure.style.zIndex=1;var modeFrame=document.createElement("div");modeFrame.id="measureFrame";modeFrame.style.textAlign="center";var btnModeLength=document.createElement('input');btnModeLength.type="button";btnModeLength.id="btnModeLength";btnModeLength.name="measureMode"
btnModeLength.value="距離を計測";GEEvent.addListener(btnModeLength,"click",function(event){reset_operation();var property=new GELinearProperty();property.lineColor=new GEColor(255,0,0);property.lineWidth=3;_length_op=new GETrackLineString(property);_length_op.drawVertex=false;_length_op.end=function(geom)
{var memoryLayer=_view.getMemoryLayer();memoryLayer.setIndex(10000);memoryLayer.add(geom,_length_op.property);var bound=geom.getBoundary();var result=new GEGPoint(bound.getCenter());result.textString="距離 ： "+GEMathSupport.round(geom.getLength(),1)+"ｍ";var resultProperty=new GETextProperty();resultProperty.fontColor=new GEColor(0,0,255);resultProperty.fontSize=14;resultProperty.offset=new GESizeD(0,0);resultProperty.backColor=new GEColor(255,255,220);resultProperty.fontName="ＭＳ ゴシック";memoryLayer.add(result,resultProperty);}
_view.beginOperation(_length_op);});modeFrame.appendChild(btnModeLength);modeFrame.appendChild(document.createElement("br"));var btnModeArea=document.createElement('input');btnModeArea.type="button";btnModeArea.id="btnModeArea";btnModeArea.name="measureMode"
btnModeArea.value='面積を計測';GEEvent.addListener(btnModeArea,"click",function(event){reset_operation();var property=new GEPolygonProperty();property.lineColor=new GEColor(255,0,0);property.lineWidth=3;property.fillColor=new GEColor(255,0,0,30);_area_op=new GETrackPolygon(property);_area_op.drawVertex=false;_area_op.end=function(geom)
{var memoryLayer=_view.getMemoryLayer();memoryLayer.setIndex(10000);memoryLayer.add(geom,_area_op.property);var bound=geom.getBoundary();var result=new GEGPoint(bound.getCenter());result.textString="面積 ： "+GEMathSupport.round(geom.getArea(),1)+"㎡";var resultProperty=new GETextProperty();resultProperty.fontColor=new GEColor(0,0,255);resultProperty.fontSize=14;resultProperty.offset=new GESizeD(0,0);resultProperty.backColor=new GEColor(255,255,220);resultProperty.fontName="ＭＳ ゴシック";memoryLayer.add(result,resultProperty);}
_view.beginOperation(_area_op);});modeFrame.appendChild(btnModeArea);modeFrame.appendChild(document.createElement("br"));var btnModeClear=document.createElement('input');btnModeClear.type="button";btnModeClear.id="btnModeClear";btnModeClear.name="measureMode"
btnModeClear.value='結果をクリア';GEEvent.addListener(btnModeClear,"click",function(event){var memoryLayer=_view.getMemoryLayer();memoryLayer.clear();});modeFrame.appendChild(btnModeClear);showDialog("計測モード",modeFrame);}}
function btnSearch_OnClick()
{var key=document.getElementById('searchKeyword');_searchResultList.close();if(key.value=='')return;_service.searchByKeyword(key.value,20,function(result)
{try
{showSearchResult(result);}
catch(e)
{alert('検索条件に合致する項目は見つかりませんでした。');}},function()
{alert("[エラー] 検索を実行出来ません。");});}
function SearchResultList(elm,inputElm)
{var _elm=elm;var _self=this;var _list=new Array();var _fontHeight=15;var _maximumHeight=120;this.inputElm=inputElm;this._event_keyup=null;GEEvent.addListener(elm,"blur",function(){if(_self.isopened())_self.close();});this.getcount=function()
{return _list.length;}
this.isopened=function()
{return _elm.style.visibility.toLowerCase()=='visible';}
this.close=function()
{if(!_self.isopened())return;_elm.style.visibility='hidden';_elm.style.display='none';_elm.innerHTML='';_list=new Array();GEEvent.removeListener(this.inputElm,"keyup",this._event_keyup);}
this.adjustHeight=function()
{var totalHeight=_list.length*_fontHeight;if(totalHeight>_maximumHeight)
totalHeight=_maximumHeight;_elm.style.height=totalHeight;}
this.open=function()
{if(this.isopened())return;_elm.style.visibility='visible';_elm.style.display='';this.adjustHeight();this.inputElm.focus();this._event_keyup=GEEvent.addListener(this.inputElm,"keyup",function(event){event=event||window.event;if(event.keyCode==13)
{var index=_self.getActiveIndex();if(index<0)return;var item=_self.getItem(index);item.submit();}
else if(event.keyCode==38)
{var index=_self.getActiveIndex();if(index-1<0)return;_self.setActiveIndex(index-1);}
else if(event.keyCode==40)
{var index=_self.getActiveIndex();if(index>=_self.getcount()-1)return;_self.setActiveIndex(index+1);}
else
{_self.close();}});}
this.getActiveIndex=function()
{if(_list.length==0)
return-1;for(i=0;i<_list.length;i++){if(_list[i].isactive()){return i;}}
return-1;}
this.add=function(item)
{item.parent=_self;_elm.appendChild(item.elm);_list.push(item);this.adjustHeight();}
this.getItem=function(index)
{if(index<0||index<_list.length-1)
return null;return _list[index];}
this.setActiveIndex=function(index)
{if(index<0||index<_list.length-1)
return;for(i=0;i<_list.length;i++){if(i==index)
_list[i].activate();else
_list[i].deactivate();}}
this.deactiveAll=function()
{for(i=0;i<_list.length;i++){_list[i].deactivate();}}}
function showSearchResult(result)
{var index=0;if(result.results!=undefined&&result.results.length>0)
{for(var i=0;i<result.results.length;i++)
{if(result.results[i]==undefined)continue;var div=document.createElement('div');var item=null;var geo=result.results[i].geo;var p1,p2;if(geo=='point')
{p1=new GEPointD(result.results[i].x,result.results[i].y);p2=p1;}
else if(geo=='rect')
{p1=new GEPointD(result.results[i].xlow,result.results[i].ylow);p2=new GEPointD(result.results[i].xhigh,result.results[i].yhigh);}
item=new SearchResultItem(div,result.results[i].name,result.results[i].type,geo,p1,p2,index);_searchResultList.add(item);index++;}}
if(result.results!=undefined&&result.results.length>0)
{_searchResultList.open();}
else
{alert('検索条件に合致する項目は見つかりませんでした。');}}
function SearchResultItem(elm,name,type,geo,p1,p2,index)
{var _self=this;var _activecolor='#CCFF66';this.elm=elm;this.name=name;this.geo=geo;this.type=type;this.p1=p1;this.p2=p2;this.index=index;this.parent=null;this._isactive=false;this.elm.innerHTML=name+'<br />';elm.onclick=function(){_self.submit();}
elm.onmouseover=function(){_self.activate();}
elm.onmouseout=function(){_self.deactivate();}
this.isactive=function()
{return this._isactive;}
this.activate=function()
{if(this.parent!=null)
this.parent.deactiveAll();this.elm.style.backgroundColor=_activecolor;this._isactive=true;}
this.deactivate=function()
{this.elm.style.backgroundColor='white';this._isactive=false;}
this.submit=function()
{if(_self.geo=='point')
{_view.centerAt(p1);}
else if(_self.geo=='rect')
{_view.rangeAt(new GERectangleD(p1,p2));}
_self.parent.close();}}
function geomInfoOperation()
{closeDialog();reset_toolbar();_getFeatureF();}
var _hiliteLayer;function _getFeatureF()
{_infoF_op=new FreestaSelectGeometry();_infoF_op.singleSelection=true;var marray=new Array();for(var i=0;i<_openLayerSidList.length;i++)
{if(_openLayerSidList[i]!=-1&&_openLayerStatus[i]!=0)
{marray.push(_openMemoryLayerTable[i]);}}
if(_isASP)
{for(var i=0;i<_layerSidList.length;i++)
{if(_layerSidList[i]!=-1&&_layerStatus[i]!=0)
{marray.push(_memoryLayerTable[i]);}}}
_infoF_op.memoryLayer=marray;_infoF_op.selected=function(geom,mem)
{if(geom==null||geom.feature==null)return;if(geom.feature.attribute!=null){var items=geom.feature.attribute.items;showAttributeInfoFDialog(items);}}
_infoF_op.end=function(geom,mem)
{_getFeatureF();}
_view.beginOperation(_infoF_op);}
function showAttributeInfoFDialog(Items)
{var modeFrame=document.createElement("div");modeFrame.id="attributeFrame";modeFrame.style.width=GEFunctions.createPx(230);if(Items[0]!=""||Items[1]!=""||Items[2]!="")
{var nameDiv=document.createElement("div");nameDiv.innerHTML=replaceInputText(Items[0]);nameDiv.style.color="#4040A0";nameDiv.style.fontWeight="bold";nameDiv.style.fontSize=GEFunctions.createPx(14);nameDiv.style.letterSpacing=GEFunctions.createPx(3);modeFrame.appendChild(nameDiv);if(Items[0]!="")
{var b1=document.createElement("hr")
b1.style.width=GEFunctions.createPx(230);modeFrame.appendChild(b1);}
var remDiv=document.createElement("div");remDiv.innerHTML=replaceTag(Items[1]);remDiv.style.letterSpacing=GEFunctions.createPx(1);remDiv.style.lineHeight=GEFunctions.createPx(16);modeFrame.appendChild(remDiv);var doc=Items[2];if(doc!="")
{var b2=document.createElement("hr")
b2.style.width=GEFunctions.createPx(230);modeFrame.appendChild(b2);var lnkDiv=document.createElement("div");var lnktag=document.createElement("a");lnktag.innerHTML=getAttachDocumentName(Items[2]);lnktag.href="./"+document.getElementById("docurl").value+escape(Items[2]);lnktag.target="_blank";lnkDiv.appendChild(lnktag);modeFrame.appendChild(lnkDiv);var b4=document.createElement("hr")
b4.style.width=GEFunctions.createPx(230);modeFrame.appendChild(b4);}}
else
{var labelDiv=document.createElement("div");labelDiv.innerHTML="情報はありません。";modeFrame.appendChild(labelDiv);}
showDialog("情報",modeFrame);}
function replaceTag(strval)
{if(strval.length==0||strval=="")return"";strval=replaceAll(strval,"\r\n","<br />");strval=replaceAll(strval,"\r","<br />");strval=replaceAll(strval,"\n","<br />");strval=replaceAll(strval,"&lt;","<");strval=replaceAll(strval,"&gt;",">");strval=replaceAll(strval,"&yen;","\\");strval=replaceAll(strval,"&quot;","\"");strval=replaceAll(strval,"&comm;",",");return strval;}
function replaceSaveText(strval)
{if(strval.length==0||strval=="")return"";strval=replaceAll(strval,"<","&lt;");strval=replaceAll(strval,">","&gt;");strval=replaceAll(strval,"\\","&yen;");strval=replaceAll(strval,"\"","&quot;");strval=replaceAll(strval,",","&comm;");return strval;}
function replaceInputText(strval)
{if(strval.length==0||strval=="")return"";strval=replaceAll(strval,"&lt;","<");strval=replaceAll(strval,"&gt;",">");strval=replaceAll(strval,"&yen;","\\");strval=replaceAll(strval,"&quot;","\"");strval=replaceAll(strval,"&comm;",",");return strval;}
function replaceDisplayText(strval)
{if(strval.length==0||strval=="")return"";strval=replaceAll(strval,"\\","&yen;");strval=replaceAll(strval,"\"","&quot;");return strval;}
function replaceAll(text,target,rept){while(true){var tmp=text;text=tmp.replace(target,rept);if(text==tmp){break;}}
return text;}
function setSBDLayer()
{TARGET_LAYER_SID_ICON=Number(document.getElementById("sid_icon").value);TARGET_LAYER_SID_LINE=Number(document.getElementById("sid_line").value);TARGET_LAYER_SID_POLYGON=Number(document.getElementById("sid_polygon").value);TARGET_LAYER_SID_ELLIPSE=Number(document.getElementById("sid_ellipse").value);var sercive_url=document.getElementById("service_url").value;_targetLayer_icon=null;_targetLayer_line=null;_targetLayer_polygon=null;_targetLayer_ellipse=null;var map=new GEDynamicMap(sercive_url,"_default",'');var layers=map.getLayers();if(layers!=null&&layers.length>0)
{for(var i=0;i<layers.length;i++)
{switch(layers[i].layerId)
{case TARGET_LAYER_SID_ICON:_targetLayer_icon=layers[i];break;case TARGET_LAYER_SID_LINE:_targetLayer_line=layers[i];break;case TARGET_LAYER_SID_POLYGON:_targetLayer_polygon=layers[i];break;case TARGET_LAYER_SID_ELLIPSE:_targetLayer_ellipse=layers[i];break;}}}
if(_targetLayer_icon==null||_targetLayer_line==null||_targetLayer_polygon==null||_targetLayer_ellipse==null)
{alert("通信エラーのため作成済みの図形の表示及び新規図形の作成はできません。");return false;}
return true;}
function getGeometryId()
{_geomCount++;return _geomCount;}
function getMemoryLayerById(layerid)
{for(var i=0;i<_layerSidList.length;i++)
{if(_layerSidList[i]==layerid)
{return _memoryLayerTable[i];}}
return null;}
function getMemoryLayerIndex(sid)
{var idx=-1;for(var i=0;i<_layerSidList.length;i++)
{if(_layerSidList[i]==sid)
{idx=i;break;}}
return idx;}
function setMemoryLayerVisible(flg)
{var sid=document.getElementById('layer_sid').value;var idx=getMemoryLayerIndex(sid);if(idx!=-1)
{setMemoryLayerVisibleByIdx(idx,flg);}}
function setMemoryLayerVisibleByIdx(idx,flg)
{if(flg)
{_layerStatus[idx]=1;_memoryLayerTable[idx].show();}
else
{_layerStatus[idx]=0;_memoryLayerTable[idx].hide();}}
function isMemoryLayerVisible(sid)
{var idx=getMemoryLayerIndex(sid);return _layerStatus[idx]==1?true:false;}
function IsCheckedLayer(sid)
{var result=false;for(var i=0;i<_layerSidList.length;i++)
{if(_layerSidList[i]==sid)
{if(_layerStatus[i]==1)
{result=true;}
break;}}
return result;}
function IsCheckedOpenLayer(sid)
{var result=false;for(var i=0;i<_openLayerSidList.length;i++)
{if(_openLayerSidList[i]==sid)
{if(_openLayerStatus[i]==1)
{result=true;}
break;}}
return result;}
function FreestaSelectGeometry(){this.memoryLayer=new Array();this.tolerance=10;this.toleranceUnit=GESizeUnit.Pixel;this.singleSelection=false;this._view=null;this._container=null;this._active=false;this.rubberBand=null;}
FreestaSelectGeometry.prototype.start=function(view,viewContainer){if(GEValueCheck.isNull(view))
GEError.argument("view");if(GEValueCheck.isNull(viewContainer))
GEError.argument("viewContainer");this._active=true;this._view=view;this._container=view.getContainer();this.rubberBand=new GERubberBand(this._view,viewContainer,999999);var self=this;var op_terminate=false;var hiliteRender=new GEHiliteRender(this._view);hiliteRender.color=new GEColor(255,0,0,200);var geoms=null;var props=null;var memoryLayers=null;var activeGeom=null;var activeProp=null;var activeMemoryLayer=null;var current=0;var mouseOnGeom=true;var dragVertex=-1;var dragSegment=-1;var dragStartP=null;var clickP=null;var backLocalP=null;var currentP=null;var isDragging=false;this._view.changeCursor(GECursor.Grab);this._rangechanged=GEEvent.addListener(this._view,"onrangechanged",function(){if(op_terminate)return false;self.rubberBand.clear();if(activeGeom!=null){hiliteRender.render(self.rubberBand,activeGeom,activeProp);}});this._contextmenu=GEEvent.addListener(this._container,'contextmenu',function(mouseEvent){return false;});var e_mousemove=false;this._mousemove=GEEvent.addListener(this._container,'mousemove',function(mouseEvent){if(op_terminate)return false;if(e_mousemove)return false;e_mousemove=true;isDragging=self._view.isDragging();e_mousemove=false;return false;});var e_click=false;this._click=GEEvent.addListener(this._container,'click',function(mouseEvent){if(op_terminate)return false;if(e_click)return false;e_click=true;if(isDragging)
{e_click=false;return false;}
if(!GEValueCheck.isNull(activeGeom)){op_terminate=true;self.selected(activeGeom,activeMemoryLayer);self.terminate(true,activeGeom);e_click=false;return false;}
geoms=new Array();props=new Array();memoryLayers=new Array();current=0;activeGeom=null;activeProp=null;activeMemoryLayer=null;var lp=self._view.getLocalPoint(mouseEvent);var wp=self._view.getWorldPoint(mouseEvent);var tolerance=5;if(GEValueCheck.isNumber(self.tolerance)){if(self.toleranceUnit==GESizeUnit.World){var wsize=self._view.toLocalSize(new GESizeD(self.tolerance,self.tolerance));tolerance=wsize.width;}}
var worldTolerance=self._view.toWorldSize(new GESizeD(tolerance,tolerance));var mLayer;var mLayerArray=self.memoryLayer;for(var midx=0;midx<mLayerArray.length;midx++)
{mLayer=mLayerArray[midx];var m_geoms=mLayer.searchHit(lp,tolerance);if(!GEValueCheck.isNull(m_geoms)&&m_geoms.length>0)
{for(var i=0;i<m_geoms.length;i++)
{geoms.push(m_geoms[i]);props.push(mLayer.getProperty(m_geoms[i]));memoryLayers.push(mLayer);}}}
current=self._trySelection(geoms,current,memoryLayers);if(current>=0)
{activeGeom=geoms[current];activeProp=props[current];activeMemoryLayer=memoryLayers[current];self.rubberBand.clear();hiliteRender.render(self.rubberBand,activeGeom,activeProp);if(self.singleSelection){op_terminate=true;self.selected(activeGeom,activeMemoryLayer);self.terminate(true,activeGeom);e_click=false;return;}}
else if(self.singleSelection)
{self.rubberBand.clear();current=0;geoms=null;props=null;activeGeom=null;activeProp=null;activeMemoryLayer=null;}
e_click=false;return false;});var e_mousedown=false;this._mousedown=GEEvent.addListener(this._container,'mousedown',function(mouseEvent){if(op_terminate)return false;if(!GEEvent.hasMouseEvent(mouseEvent))return false;if(e_mousedown)return false;e_mousedown=true;if(GEEvent.isRightButton(mouseEvent)){if(GEValueCheck.isNull(geoms)||geoms.length==0){op_terminate=true;self.terminate(true,null);e_mousedown=false;return false;}
current++;current=self._trySelection(geoms,current,memoryLayers);if(current>=0)
{activeGeom=geoms[current];activeProp=props[current];activeMemoryLayer=memoryLayers[current];self.rubberBand.clear();hiliteRender.render(self.rubberBand,activeGeom,activeProp);}
else
{self.rubberBand.clear();current=0;geoms=null;props=null;activeGeom=null;activeProp=null;activeMemoryLayer=null;}}
e_mousedown=false;return false;});var e_keydown=false;this._keydown=GEEvent.addListener(document,'keydown',function(event){if(op_terminate)return false;if(e_keydown)return false;e_keydown=true;keyCode=event.keyCode;if(keyCode==83)
{if(GEValueCheck.isNull(geoms)||geoms.length==0){op_terminate=true;self.terminate(true,null);e_keydown=false;return false;}
current++;current=self._trySelection(geoms,current,memoryLayers);if(current>=0)
{activeGeom=geoms[current];activeProp=props[current];activeMemoryLayer=memoryLayers[current];self.rubberBand.clear();hiliteRender.render(self.rubberBand,activeGeom,activeProp);}
else
{self.rubberBand.clear();current=0;geoms=null;props=null;activeGeom=null;activeProp=null;activeMemoryLayer=null;}}
e_keydown=false;return false;});}
FreestaSelectGeometry.prototype._trySelection=function(geoms,stIdx,memoryLayers){var idx=stIdx>=0?stIdx:0;if(!GEValueCheck.isNull(geoms)&&geoms.length>0&&idx<geoms.length){for(var i=idx;i<geoms.length;i++){if(this.validate(geoms[i],memoryLayers[i])){return i;}}}
return-1;}
FreestaSelectGeometry.prototype._changeCursor=function(mouseEvent){var mLayer;var mLayerArray=this.memoryLayer;var tolerance=10;for(var midx=0;midx<mLayerArray.length;midx++)
{var lp=this._view.getLocalPoint(mouseEvent);mLayer=mLayerArray[midx];var m_geoms=mLayer.searchHit(lp,tolerance);if(!GEValueCheck.isNull(m_geoms)&&m_geoms.length>0)
{for(var i=0;i<m_geoms.length;i++)
{if(m_geoms[i].getGeometryType()==GEGeometryType.GPoint&&!GEValueCheck.isNull(m_geoms[i].textString)&&m_geoms[i].textString!="")
{this._view.changeCursor(GECursor.Grab);}
else
{this._view.changeCursor(GECursor.Pointer);return;}}}
else
{this._view.changeCursor(GECursor.Grab);}}}
FreestaSelectGeometry.prototype.validate=function(geom,memoryLayer){return true;}
FreestaSelectGeometry.prototype.selected=function(geom,memorylayer){}
FreestaSelectGeometry.prototype.end=function(geom){}
FreestaSelectGeometry.prototype.kill=function(){if(!this._active)return;this.terminate(true,null);}
FreestaSelectGeometry.prototype.terminate=function(dispatch,geom){if(!this._active)return;this.rubberBand.dispose();if(!GEValueCheck.isNull(this._rangechanged))
GEEvent.removeListener(this._view,"onrangechanged",this._rangechanged);if(!GEValueCheck.isNull(this._contextmenu))
GEEvent.removeListener(this._container,"contextmenu",this._contextmenu);if(!GEValueCheck.isNull(this._mousemove))
GEEvent.removeListener(this._container,"mousemove",this._mousemove);if(!GEValueCheck.isNull(this._click))
GEEvent.removeListener(this._container,"click",this._click);if(!GEValueCheck.isNull(this._mousedown))
GEEvent.removeListener(this._container,"mousedown",this._mousedown);if(!GEValueCheck.isNull(this._keydown))
GEEvent.removeListener(document,"keydown",this._keydown);this._view.changeCursor(GECursor.Grab);this._active=false;if(dispatch)this.end(geom);}
