﻿var InfoMapHelper={MapMarkField:null,MapMarkTextField:null,MapMarkTextUI:null,AreaSelect:null,MapMarks:null,ImportMapData:function(mms,mmfield,mmtextfield,aselect)
{with(this)
{MapMarks=mms?mms:{};MapMarkField=mmfield;MapMarkTextField=mmtextfield;AreaSelect=aselect;MapMarkValue=_parseMapMarkValue(mmfield.value,mmtextfield.value);}},MapContainer:null,MapBody:null,Map:null,MapMark:null,MapMarkValue:null,CurrentMapMarkValue:null,DefaultMapMark:[12133672,3747756,8],Open:function(e,alignleft)
{with(InfoMapHelper)
{var t=$E_T(e);if(!MapContainer)
{MapContainer=$C("div",{id:"IMap"});with(MapContainer.style)
{position="absolute";width="500px";border="gray 1px solid";backgroundColor="#fafafa";display="none";}
MapBody=$C("div",{id:"IMapBody"});with(MapBody.style)
{width="500px";height="300px";borderBottom="gray 1px solid";}
var MapFields=$C("div");with(MapFields)
{style.padding="2px 5px";innerHTML="标注文字 : ";MapMarkTextUI=$C("input",{type:"text",className:"inp",maxLength:50,size:20});appendChild(MapMarkTextUI);var b=$C("input",{type:"button",className:"btn",value:"标注"});b.onclick=InfoMapHelper.Mark;appendChild(b);b=$C("input",{type:"button",className:"btn",value:"删除标注"});b.onclick=InfoMapHelper.RemoveMark;appendChild(b);}
with(MapContainer)
{appendChild(MapBody);if(AreaSelect)
appendChild(MapFields);}
document.body.appendChild(MapContainer);LMGR.Reg(document,LMGR.CLICK,Close,null,[MapContainer,t]);Map=new LTMaps(MapBody);Map.addControl(new LTStandMapControl());Map.handleKeyboard();Map.handleMouseScroll();LTEvent.addListener(Map,"click",OnMark);ShowMark();}
Locate();$XY(MapContainer,t,alignleft?(t.offsetWidth-500):0,t.offsetHeight);MapContainer.style.display="";}},Close:function(e)
{with(InfoMapHelper)
if(MapContainer)
MapContainer.style.display="none";},Locate:function()
{with(InfoMapHelper)
{var selectedArea=AreaSelect?AreaSelect.value:null;var m=MapMarkValue?MapMarkValue:(selectedArea?_getMapMarkValue(MapMarks[selectedArea]):null);if(!m)
m=_getMapMarkValue(DefaultMapMark);if(m!=CurrentMapMarkValue)
{Map.centerAndZoom(m.Point,m.Zoom);CurrentMapMarkValue=m;}}},ShowMark:function()
{with(InfoMapHelper)
{if(MapMarkValue)
{if(MapMark)
Map.removeOverLay(MapMark,true);MapMark=new LTMarker(MapMarkValue.Point);Map.addOverLay(MapMark);if(MapMarkValue.Text)
{LTEvent.addListener(MapMark,"mouseover",function(){InfoMapHelper.MapMark.openInfoWinHtml(InfoMapHelper.MapMarkValue.Text);});LTEvent.addListener(MapMark,"mouseout",function(){InfoMapHelper.MapMark.closeInfoWin();});}}}},IsMarking:false,Mark:function()
{with(InfoMapHelper)
{IsMarking=true;}},RemoveMark:function()
{with(InfoMapHelper)
{alert("Not Implemeneted");}},OnMark:function(p)
{with(InfoMapHelper)
{if(IsMarking)
{var point=Map.getClickLatLng(p);MapMarkValue=DefaultMapMarkValue=_getMapMarkValue([point.getLongitude(),point.getLatitude(),Map.getCurrentZoom(),MapMarkTextUI.value]);MapMarkField.value=point.getLongitude()+","+point.getLatitude()+"|"+Map.getCurrentZoom();MapMarkTextField.value=MapMarkTextUI.value;ShowMark();IsMarking=false;}}},_getMapMarkValue:function(values)
{if(!values)
return InfoMapHelper._getMapMarkValue([0,0,0,""]);return{Point:new LTPoint(values[0],values[1]),Zoom:values[2],Text:values[3]?values[3]:null};},_parseMapMarkValue:function(m,mtext)
{if(!m)
return null;var p1=m.indexOf(","),p2=m.indexOf("|");if(p1<0||p2<0)
return null;var lng=parseInt(m.substr(0,p1)),lat=parseInt(m.substr(p1+1,p2)),zoom=parseInt(m.substr(p2+1));if(isNaN(lng)||isNaN(lat)||isNaN(zoom))
return null;return InfoMapHelper._getMapMarkValue([lng,lat,zoom,mtext]);}}