/*Copyright 2007,Pitney Bowes MapInfo Corporation. All rights reserved.*/dojo.require("dojox.gfx");dojo.require("dojo.back");var MEASURE_RESULT_SIGNIFICANT_DIGITS=4;var TOPMOST_ZINDEX_SAFE_VALUE=200;var POINT_CLICK_JITTER_TOLLERANCE=3;var MAP_COORD_DELIMETER=' ';var COORD_VALUE_DELIMETER=',';var MODIFIER_KEY_ADD='Add';var MODIFIER_KEY_TOGGLE='Toggle';var MODIFIER_KEY_REPLACE='Replace';var ETCH_O_SKETCH_STRING="EtchOSketch";var MouseDown=false;ApplicationState=function(stateData){this.stateData=stateData;this.changeUrl=false;}
dojo.extend(ApplicationState,{back: function(){var v=document.getElementById("ShowLabelFeatureSetArg");v.value=this.stateData.substring(this.stateData.indexOf('@@')+2,this.stateData.length);var statusMessage="Please wait while Exponare performs back operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:true:'';"+this.stateData);},forward: function(){var v=document.getElementById("ShowLabelFeatureSetArg");v.value=this.stateData.substring(this.stateData.indexOf('@@')+2 ,this.stateData.length);var statusMessage="Please wait while Exponare performs forward operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:true:'';"+this.stateData);}});
function goNav(id,browserNavigation){var appState=new ApplicationState(id);if(browserNavigation==false){dojo.back.addToHistory(appState);}}dojo.addOnLoad(function(){var appState=new ApplicationState(document.getElementById("MainMapCentre").value+'@@'+document.getElementById("ShowLabelFeatureSetArg").value+"@@"+document.getElementById("ZoomValue").value);dojo.back.setInitialState(appState);});
function MapInfoWebEnableVML(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");if(document.styleSheets.length<1){var oStyleEl=document.createElement("style");document.body.appendChild(oStyleEl);}document.styleSheets.item(0).addRule("v\\:*","behavior:url(#default#VML)");}
function UpdateState(position,strShowLabelFeature,zoomValue,browserNavigation){goNav(position+'@@'+strShowLabelFeature+'@@'+zoomValue ,browserNavigation);document.getElementById("MainMapCentre").value=position;document.getElementById("ShowLabelFeatureSetArg").value=strShowLabelFeature;document.getElementById("ZoomValue").value=zoomValue;if(strShowLabelFeature!=''){document.body.labelData=strShowLabelFeature;}else{document.body.labelData='';}}
function ExponarePoint(x,y){this.x=parseInt(x);this.y=parseInt(y);}var current_rect=null;var surface=null;var start_pos=null;var current_pline=null;var pLineVPoints=null;var pLineNodeNum=0;var polygonFiller=null;var current_filler=null;var current_color=null;
function rectangle_mouse_down(evt){if(IsLeftClick(evt)==false)return;var map=ById(document.body.mapid);if(map==null)return false;if(!window.Event){if(GetEventSourceItem(evt)!=map)return false;}if(map.killmaptools){clear_rectangle();return false;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.clientWidth)return false;if(coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.clientHeight)return false;if(!window.Event){document.body.startx=coordX;document.body.starty=coordY;MapInfoWebEnableVML();var rectangle=document.createElement("<v:rect/>");rectangle.id=document.body.rectid;rectangle.style.position="absolute";rectangle.style.zIndex=map.parentNode.style.zIndex+TOPMOST_ZINDEX_SAFE_VALUE;var fill=document.createElement("<v:fill opacity=0.10></v:fill>");var stroke=document.createElement("<v:stroke dashstyle='solid'></v:fill>");stroke.color=document.body.rectCol;fill.color=document.body.rectCol;rectangle.appendChild(fill);rectangle.appendChild(stroke);rectangle.style.visibility="visible";document.getElementsByTagName('body')[0].appendChild(rectangle)}else{start_pos={x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop};if(current_rect==null){var col=document.body.rectCol;current_rect=surface.createRect({x: start_pos.x,y: start_pos.y,width: 0,height: 0}).setStroke({color:document.body.rectCol}).setFill(current_color);}else{current_rect.setShape({x: start_pos.x,y: start_pos.y,width: 0,height: 0});}}MouseDown=true;}
function rectangle_mouse_move(evt){if(IsLeftClick(evt)==false){return;}var map=ById(document.body.mapid);if(map==null){return;}if(map.killmaptools){clear_rectangle();return false;}if(!MouseDown)return;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);var coordX=Math.min(Math.max((GetClientX(evt)+document.body.scrollLeft),absoluteOffsetLeft),(absoluteOffsetLeft+map.clientWidth));var coordY=Math.min(Math.max((GetClientY(evt)+document.body.scrollTop),absoluteOffsetTop),(absoluteOffsetTop+map.clientHeight));if(!window.Event){var rectangle=ById(document.body.rectid);if(rectangle==null)return;rectangle.style.top=(Math.min(document.body.starty,coordY));rectangle.style.left=(Math.min(document.body.startx,coordX));rectangle.style.height=Math.abs(document.body.starty-coordY);rectangle.style.width=Math.abs(document.body.startx-coordX);}else{var xx=Math.min(coordX-absoluteOffsetLeft,start_pos.x);var yy=Math.min(coordY-absoluteOffsetTop,start_pos.y);var ww=Math.abs(coordX-absoluteOffsetLeft-start_pos.x);var hh=Math.abs(coordY-absoluteOffsetTop-start_pos.y);if(current_rect!=null)current_rect.setShape({x: xx,y: yy,width: ww,height: hh});}return false;}
function rectangle_mouse_up(evt){MouseDown=false;start_pos=null;if(!window.Event){var rectangle=ById(document.body.rectid);if(rectangle==null)return false;if(IsLeftClick(evt)==false){document.body.removeChild(rectangle);return;}}var map=ById(document.body.mapid);if(map==null)return false;if(map.killmaptools){clear_rectangle();return false;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.clientWidth){if(!window.Event)document.body.removeChild(rectangle);else current_rect=null;return false;}if(coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.clientHeight){if(!window.Event)document.body.removeChild(rectangle);else current_rect=null;return false;}if(!window.Event){var relativeTop=parseInt(rectangle.style.top)-absoluteOffsetTop;var relativeLeft=parseInt(rectangle.style.left)-absoluteOffsetLeft;if(isNaN(relativeTop)){relativeTop=(GetClientY(evt)+document.body.scrollTop)-absoluteOffsetTop;}if(isNaN(relativeLeft)){relativeLeft=(GetClientX(evt)+document.body.scrollLeft)-absoluteOffsetLeft;}var rectangleHeight=parseInt(rectangle.style.height);var rectangleWidth=parseInt(rectangle.style.width);if(isNaN(rectangleHeight))rectangleHeight=0;if(isNaN(rectangleWidth))rectangleWidth=0;document.body.hiddenData.value=relativeTop+COORD_VALUE_DELIMETER+relativeLeft+COORD_VALUE_DELIMETER+rectangleHeight+COORD_VALUE_DELIMETER+rectangleWidth;document.body.removeChild(rectangle);}else{var relativeTop=current_rect.getShape().y;var relativeLeft=current_rect.getShape().x;var rectangleHeight=current_rect.getShape().height;var rectangleWidth=current_rect.getShape().width;document.body.hiddenData.value=relativeTop+COORD_VALUE_DELIMETER+relativeLeft+COORD_VALUE_DELIMETER+rectangleHeight+COORD_VALUE_DELIMETER+rectangleWidth;current_rect=null;DropEtchOSketch();}if(IsModifierShiftKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_ADD;else if(IsModifierCtrlKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_TOGGLE;else document.body.hiddenModifier.value=MODIFIER_KEY_REPLACE;var statusMessage="Please wait while Exponare performs zoom operation...";if(window.Event){CreateEtchOSketch();}switch(document.body.OpId){case 'zi': AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:ZoomIn;"+'@@'+document.body.hiddenData.value);break;case 'zo': AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:ZoomOut;"+'@@'+document.body.hiddenData.value);break;case 'rs': __doPostBack(document.body.postbackid,'');break;default : break;}}
function clear_rectangle(){var rectangle=ById(document.body.rectid);if(rectangle)document.body.removeChild(rectangle);}
function SetRectangleMapProperties(map,rId,hData,hModifier,pbId,marqeeColor){if(map==null)return;document.body.rectid=rId;document.body.rectCol="rgb("+marqeeColor[0]+","+marqeeColor[1]+","+marqeeColor[2]+")";document.body.mapid=map.id;document.body.hiddenData=hData;document.body.hiddenModifier=hModifier;document.body.postbackid=pbId;current_color=marqeeColor;current_color.push(0.1);}
function SetRectangleMouseHandlers(setHandlers){RmEventListener(document.body,'mousedown',rectangle_mouse_down);RmEventListener(document.body,'mousemove',rectangle_mouse_move);RmEventListener(document.body,'mouseup',rectangle_mouse_up);var node=document.getElementById(ETCH_O_SKETCH_STRING);if(node!=null){document.body.removeChild(node);}if(setHandlers){HideGlass();if(window.Event)CreateEtchOSketch();SetupEventListener(document.body,'mousedown',rectangle_mouse_down);SetupEventListener(document.body,'mousemove',rectangle_mouse_move);SetupEventListener(document.body,'mouseup',rectangle_mouse_up);}}
function CreateEtchOSketch(){var node=document.getElementById(ETCH_O_SKETCH_STRING);if(node!=null)return;node=document.createElement("DIV");node.id=ETCH_O_SKETCH_STRING;document.body.appendChild(node);var map=ById(document.body.mapid);var clipperAbsX=GetAbsoluteOffsetLeft(map);var clipperAbsY=GetAbsoluteOffsetTop(map);var width=map.clientWidth;var height=map.clientHeight;node.style.position="absolute";node.style.overflow="hidden";node.style.top=clipperAbsY;node.style.left=clipperAbsX;node.style.width=width;node.style.height=height;node.style.zIndex=1;node.style.visibility="visible";WipeSlate();surface=dojox.gfx.createSurface(node,node.style.width,node.style.height);}
function WipeSlate(){current_rect=null;surface=null;start_pos=null;current_pline=null;pLineVPoints=null;current_filler=null;polygonFiller=null;}
function DropEtchOSketch(){var node=document.getElementById(ETCH_O_SKETCH_STRING);if(node!=null)document.body.removeChild(node);}
function RectangleClickHandler(sender,clientId,serverId,mapId,mapControlDataId,mapModifierDataId,marqueeColor){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);document.body.mapid=mapId;document.body.OpId=sender.pi;SetRectangleMouseHandlers((sender.tooltype==listener.tooltype));if(sender.pi==listener.pi)SetRectangleMapProperties(map,clientId+'Rectangle',ById(mapControlDataId),ById(mapModifierDataId),serverId,marqueeColor);}
function polyline_mouse_click(evt){var map=ById(document.body.mapid);if(map==null)return;if(map.killmaptools){clear_polyline();return;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(!window.Event){var polyline=ById(document.body.polylineid);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){if(polyline){document.body.removeChild(polyline);document.body.displayPoints=new Array();document.body.valuePoints=new Array();}return;}if(!polyline){var polyline=createPolyline(document.body.polylineid,map.parentNode.style.zIndex+TOPMOST_ZINDEX_SAFE_VALUE,document.body.polylineCol);document.body.valuePoints[0]=new ExponarePoint(coordX-absoluteOffsetLeft,coordY-absoluteOffsetTop);document.body.displayPoints[0]=new ExponarePoint(coordX-polyline.lineOffsetLeft,coordY-polyline.lineOffsetTop);polyline.points.value=PointsToString(document.body.displayPoints);}else{var polyline=ById(document.body.polylineid);document.body.valuePoints[document.body.valuePoints.length]=new ExponarePoint(coordX-absoluteOffsetLeft,coordY-absoluteOffsetTop);document.body.displayPoints[document.body.displayPoints.length]=new ExponarePoint(coordX-polyline.lineOffsetLeft,coordY-polyline.lineOffsetTop);polyline.points.value=PointsToString(document.body.displayPoints);}}else{if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return;}if(current_pline==null){pLineVPoints=new Array();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});pLineNodeNum++;current_pline=surface.createPolyline(pLineVPoints).setStroke({color: document.body.polylineCol,width: 1});}else{if(pLineVPoints.length>pLineNodeNum)pLineVPoints.pop();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});pLineNodeNum++;current_pline.setShape(pLineVPoints);}}}
function polyline_mouse_up(evt){if(!window.Event){var polyline=ById(document.body.polylineid);if(!polyline){return;}if(IsLeftClick(evt)==false)clear_polyline();}}
function clear_polyline(){var polyline=ById(document.body.polylineid);if(polyline)document.body.removeChild(polyline);document.body.displayPoints=new Array();document.body.valuePoints=new Array();pLineVPoints=new Array();}
function polyline_mouse_move(evt){var map=ById(document.body.mapid);if(map==null)return;if(map.killmaptools){clear_polyline();return false;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);coordX=Math.max(absoluteOffsetLeft,Math.min((absoluteOffsetLeft+map.offsetWidth),coordX));coordY=Math.max(absoluteOffsetTop,Math.min((absoluteOffsetTop+map.offsetHeight),coordY));if(!window.Event){var polyline=ById(document.body.polylineid);if(polyline==null)return;coordX=coordX-polyline.lineOffsetLeft;coordY=coordY-polyline.lineOffsetTop;polyline.points.value=PointsToString(document.body.displayPoints)+MAP_COORD_DELIMETER+coordX+COORD_VALUE_DELIMETER+coordY;}else{if(current_pline==null)return;if(pLineVPoints.length>pLineNodeNum)pLineVPoints.pop();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});current_pline.setShape(pLineVPoints);}return false;}
function polyline_mouse_dblclick(evt){var map=ById(document.body.mapid);if(map==null)return false;if(map.killmaptools){clear_polyline();return false;}if(IsModifierShiftKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_ADD;else if(IsModifierCtrlKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_TOGGLE;else document.body.hiddenModifier.value=MODIFIER_KEY_REPLACE;if(!window.Event){var polyline=ById(document.body.polylineid);if(polyline==null)return false;document.body.hiddenData.value=PointsToString(document.body.valuePoints);document.body.removeChild(polyline);document.body.displayPoints=new Array();document.body.valuePoints=new Array();}else{if(pLineVPoints.length>=pLineNodeNum)pLineVPoints.pop();document.body.hiddenData.value=PointsToString(pLineVPoints);pLineVPoints=null;current_pline=null;pLineNodeNum=0;}__doPostBack(document.body.postbackid,'');}
function createPolyline(pId,zI,mCol){MapInfoWebEnableVML();var polyline=document.createElement("<v:polyline/>");polyline.id=pId;polyline.style.position="absolute";polyline.style.zIndex=zI;var stroke=document.createElement("<v:stroke dashstyle='solid'></v:fill>");var fill=document.createElement("<v:fill opacity=0.00></v:fill>");stroke.color=mCol;polyline.appendChild(fill);polyline.appendChild(stroke);polyline.style.visibility="visible";document.body.appendChild(polyline);polyline.lineOffsetLeft=polyline.offsetLeft;polyline.lineOffsetTop=polyline.offsetTop;return polyline;}
function SetPolylineMapProperties(map,pId,hData,hModifier,pbId,mCol){if(map==null)return;document.body.polylineid=pId;document.body.polylineCol=mCol;document.body.mapid=map.id;document.body.hiddenData=hData;document.body.hiddenModifier=hModifier;document.body.postbackid=pbId;document.body.displayPoints=new Array();document.body.valuePoints=new Array();}
function SetPolylineMouseHandlers(setHandlers){RmEventListener(document.body,'click',polyline_mouse_click);RmEventListener(document.body,'mouseup',polyline_mouse_up);RmEventListener(document.body,'mousemove',polyline_mouse_move);RmEventListener(document.body,'dblclick',polyline_mouse_dblclick);if(setHandlers){HideGlass();if(window.Event){CreateEtchOSketch();}SetupEventListener(document.body,'click',polyline_mouse_click);SetupEventListener(document.body,'mouseup',polyline_mouse_up);SetupEventListener(document.body,'mousemove',polyline_mouse_move);SetupEventListener(document.body,'dblclick',polyline_mouse_dblclick);}else{clear_polyline();}}
function PolylineClickHandler(sender,clientId,serverId,mapId,mapControlDataId,mapModifierDataId,marqueeColour){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);document.body.mapid=map.id;SetPolylineMouseHandlers((sender.tooltype==listener.tooltype));if(sender.pi==listener.pi)SetPolylineMapProperties(map,clientId+'Polyline',ById(mapControlDataId),ById(mapModifierDataId),serverId,marqueeColour);}
function polygon_mouse_click(evt){var map=ById(document.body.mapid);if(map==null)return;if(map.killmaptools){clear_polygon();return;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(!window.Event){var polygon=ById(document.body.polygonid);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){if(polygon){document.body.removeChild(polygon);document.body.displayPoints=new Array();document.body.valuePoints=new Array();}return;}if(!polygon){var polygon=createPolygon(document.body.polygonid,map.parentNode.style.zIndex+TOPMOST_ZINDEX_SAFE_VALUE,document.body.polygonCol);document.body.valuePoints[0]=new ExponarePoint(coordX-absoluteOffsetLeft,coordY-absoluteOffsetTop);document.body.displayPoints[0]=new ExponarePoint(coordX-polygon.lineOffsetLeft,coordY-polygon.lineOffsetTop);polygon.points.value=PointsToString(document.body.displayPoints);}else{var polygon=ById(document.body.polygonid);document.body.valuePoints[document.body.valuePoints.length]=new ExponarePoint(coordX-absoluteOffsetLeft,coordY-absoluteOffsetTop);document.body.displayPoints[document.body.displayPoints.length]=new ExponarePoint(coordX-polygon.lineOffsetLeft,coordY-polygon.lineOffsetTop);polygon.points.value=PointsToString(document.body.displayPoints);}}else{if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return;}if(current_pline==null){pLineVPoints=new Array();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});polygonFiller=new Array();polygonFiller.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});pLineNodeNum++;current_pline=surface.createPolyline(pLineVPoints,true).setStroke({color: document.body.polygonCol,width: 1}).setFill(current_color);current_filler=surface.createPolyline(polygonFiller,true).setStroke({color: document.body.polygonCol,width: 1});}else{if(pLineVPoints.length>pLineNodeNum)pLineVPoints.pop();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});pLineNodeNum++;current_pline.setShape(pLineVPoints,true);}}}
function polygon_mouse_up(evt){var polygon=ById(document.body.polygonid);if(!polygon)return;if(IsLeftClick(evt)==false)clear_polygon();}
function clear_polygon(){var polygon=ById(document.body.polygonid);if(polygon)document.body.removeChild(polygon);document.body.displayPoints=new Array();document.body.valuePoints=new Array();pLineVPoints=new Array();}
function polygon_mouse_move(evt){var map=ById(document.body.mapid);if(map==null)return;if(map.killmaptools){clear_polygon();return false;}var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);coordX=Math.max(absoluteOffsetLeft,Math.min((absoluteOffsetLeft+map.offsetWidth),coordX));coordY=Math.max(absoluteOffsetTop,Math.min((absoluteOffsetTop+map.offsetHeight),coordY));if(!window.Event){var polygon=ById(document.body.polygonid);if(polygon==null)return;coordX=coordX-polygon.lineOffsetLeft;coordY=coordY-polygon.lineOffsetTop;polygon.points.value=PointsToString(document.body.displayPoints)+MAP_COORD_DELIMETER+coordX+COORD_VALUE_DELIMETER+coordY+MAP_COORD_DELIMETER+document.body.displayPoints[0].x+COORD_VALUE_DELIMETER+document.body.displayPoints[0].y;}else{if(current_pline==null)return;if(pLineVPoints.length>pLineNodeNum)pLineVPoints.pop();pLineVPoints.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});current_pline.setShape(pLineVPoints,true);if(polygonFiller.length>1)polygonFiller.pop();polygonFiller.push({x: coordX-absoluteOffsetLeft,y: coordY-absoluteOffsetTop});current_filler.setShape(polygonFiller,true);}return false;}
function polygon_mouse_dblclick(evt){var map=ById(document.body.mapid);if(map==null)return false;if(map.killmaptools){clear_polygon();return false;}if(IsModifierShiftKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_ADD;else if(IsModifierCtrlKey(evt))document.body.hiddenModifier.value=MODIFIER_KEY_TOGGLE;else document.body.hiddenModifier.value=MODIFIER_KEY_REPLACE;if(!window.Event){var polygon=ById(document.body.polygonid);if(polygon==null)return false;document.body.hiddenData.value=PointsToString(document.body.valuePoints)+MAP_COORD_DELIMETER+document.body.valuePoints[0].x+COORD_VALUE_DELIMETER+document.body.valuePoints[0].y;document.body.removeChild(polygon);document.body.displayPoints=new Array();document.body.valuePoints=new Array();}else{if(pLineVPoints.length>=pLineNodeNum)pLineVPoints.pop();document.body.hiddenData.value=PointsToString(pLineVPoints)+MAP_COORD_DELIMETER+pLineVPoints[0].x+COORD_VALUE_DELIMETER+pLineVPoints[0].y;;pLineVPoints=null;current_pline=null;polygonFiller=null;current_filler=null;}__doPostBack(document.body.postbackid,'');}
function createPolygon(pId,zI,mCol){MapInfoWebEnableVML();var polygon=document.createElement("<v:polyline/>");polygon.id=pId;polygon.style.position="absolute";polygon.style.zIndex=zI;var fill=document.createElement("<v:fill opacity=0.10></v:fill>");var stroke=document.createElement("<v:stroke dashstyle='solid'></v:fill>");stroke.color=mCol;fill.color=mCol;polygon.appendChild(fill);polygon.appendChild(stroke);polygon.style.visibility="visible";document.body.appendChild(polygon);polygon.lineOffsetLeft=polygon.offsetLeft;polygon.lineOffsetTop=polygon.offsetTop;return polygon;}
function SetPolygonMapProperties(map,pId,hData,hModifier,pbId,mR,mG,mB){if(map==null)return;document.body.polylineid=pId;document.body.polygonCol="rgb("+mR+","+mG+","+mB+")";document.body.mapid=map.id;document.body.hiddenData=hData;document.body.hiddenModifier=hModifier;document.body.postbackid=pbId;current_color=new Array(mR,mG,mB);current_color.push(0.1);document.body.displayPoints=new Array();document.body.valuePoints=new Array();}
function SetPolygonMouseHandlers(setHandlers,map){RmEventListener(document.body,'click',polygon_mouse_click);RmEventListener(document.body,'mouseup',polygon_mouse_up);RmEventListener(document.body,'mousemove',polygon_mouse_move);RmEventListener(document.body,'dblclick',polygon_mouse_dblclick);if(setHandlers){HideGlass();if(window.Event){CreateEtchOSketch();}SetupEventListener(document.body,'click',polygon_mouse_click);SetupEventListener(document.body,'mouseup',polygon_mouse_up);SetupEventListener(document.body,'mousemove',polygon_mouse_move);SetupEventListener(document.body,'dblclick',polygon_mouse_dblclick);}else{clear_polygon();}}
function PointsToString(points){var pointString="";for(i=0;i<points.length;i++){if(i>0){pointString+=MAP_COORD_DELIMETER;}pointString+=points[i].x+COORD_VALUE_DELIMETER+points[i].y;}return pointString;}
function PolygonClickHandler(sender,clientId,serverId,mapId,mapControlDataId,mapModifierDataId,mR,mG,mB){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);document.body.mapid=map.id;SetPolygonMouseHandlers((sender.tooltype==listener.tooltype));if(sender.pi==listener.pi)SetPolygonMapProperties(map,clientId+'Polygon',ById(mapControlDataId),ById(mapModifierDataId),serverId,mR,mG,mB);}
function point_mouse_click(evt){var map=ById(document.body.mapid);if(map==null)return false;if(map.killmaptools)return false;map.hiddenData.value=GetOffsetX(evt)+COORD_VALUE_DELIMETER+GetOffsetY(evt);if(IsModifierShiftKey(evt))map.hiddenModifier.value=MODIFIER_KEY_ADD;else if(IsModifierCtrlKey(evt))map.hiddenModifier.value=MODIFIER_KEY_TOGGLE;else map.hiddenModifier.value=MODIFIER_KEY_REPLACE;__doPostBack(map.postbackid,'');}
function showLabel_mouse_click(evt){if(IsCorrectDragSource(evt)==false){return true;}var map=ById(document.body.mapid);if((map==null)||(theGlass==null)){return false;}document.body.hiddenData.value=GetOffsetX(evt)+COORD_VALUE_DELIMETER+GetOffsetY(evt);var statusMessage="Please wait while Exponare performs label operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:Label;"+"@@"+document.body.hiddenData.value);}
function SetPointMapProperties(map,hData,hModifier,pbId){if(map==null)return;document.body.mapid=map.id;map.hiddenData=hData;map.hiddenModifier=hModifier;map.postbackid=pbId;}
function SetPointMouseHandlers(setHandlers,map){RmEventListener(map,'click',point_mouse_click);if(setHandlers){HideGlass();SetupEventListener(map,'click',point_mouse_click);}}
function PointClickHandler(sender,clientId,serverId,mapId,mapControlDataId,mapModifierDataId){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);SetPointMouseHandlers((sender.tooltype==listener.tooltype),map);if(sender.pi==listener.pi)SetPointMapProperties(map,ById(mapControlDataId),ById(mapModifierDataId),serverId);}
function MapLabelHandler(sender,clientId,serverId,mapId,mapControlDataId){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);RmEventListener(document.body,'click',this.showLabel_mouse_click);if(sender.tooltype==listener.tooltype){if(window.Event){document.body.mapid=map.id;ShowGlass();}SetupEventListener(document.body,'click',this.showLabel_mouse_click);}if(sender.pi==listener.pi && map!=null){document.body.mapid=map.id;document.body.hiddenData=ById(mapControlDataId);document.body.postbackid=serverId;}}
function distance_tool_mouse_click(evt){var map=ById(document.body.mapid);if(map==null)return;var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return;}if(document.body.datool){var distance=GetDistance(map,GetClientX(evt),GetClientY(evt));map.totaldistance=map.totaldistance+distance;}else{map.totaldistance=0;}document.body.datool=true;map.lastmousex=GetClientX(evt);map.lastmousey=GetClientY(evt);}
function distance_tool_mouse_move(evt){var statusBar=ById(document.body.statusbarid);if(statusBar==null)return;var map=ById(document.body.mapid);if(map==null)return;var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return false;}if(document.body.datool){var distance=GetDistance(map,GetClientX(evt),GetClientY(evt));if(map.distanceTimerId!=null)window.clearTimeout(map.distanceTimerId);map.distanceTimerId=window.setTimeout("DisplayDistanceMessage("+distance+","+map.totaldistance+")",10);}}
function SetDistanceToolMapProperties(statusBarId,mapId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit){document.body.statusbarid=statusBarId;document.body.mapid=mapId;document.body.mapleft=mapLeftCoord;document.body.mapright=mapRightCoord;document.body.maptop=mapTopCoord;document.body.mapbottom=mapBottomCoord;document.body.mapunit=mapUnit;document.body.datool=false;}
function SetDistanceToolMouseHandlers(setHandlers,showDynamicUpdate){RmEventListener(document.body,'click',distance_tool_mouse_click);RmEventListener(document.body,'mousemove',distance_tool_mouse_move);if(setHandlers){SetupEventListener(document.body,'click',distance_tool_mouse_click);if(showDynamicUpdate){SetupEventListener(document.body,'mousemove',distance_tool_mouse_move);}}}
function DistanceToolClickHandler(sender,clientId,mapId,statusBarId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit,showDynamicUpdate){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);SetDistanceToolMouseHandlers((sender.pi==listener.pi),showDynamicUpdate);if(sender.pi==listener.pi)SetDistanceToolMapProperties(statusBarId,mapId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit);}
function area_tool_mouse_click(evt){var map=ById(document.body.mapid);if(map==null)return;var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return;}if(document.body.datool){var distance=GetDistance(map,GetClientX(evt),GetClientY(evt));map.totaldistance=map.totaldistance+distance;}else{map.totaldistance=0;}document.body.datool=true;map.lastmousex=GetClientX(evt);map.lastmousey=GetClientY(evt);}
function area_tool_mouse_move(evt){var statusBar=ById(document.body.statusbarid);if(statusBar==null)return;var map=ById(document.body.mapid);if(map==null)return;var coordX=GetClientX(evt)+document.body.scrollLeft;var coordY=GetClientY(evt)+document.body.scrollTop;var absoluteOffsetTop=GetAbsoluteOffsetTop(map);var absoluteOffsetLeft=GetAbsoluteOffsetLeft(map);if(coordX<absoluteOffsetLeft || coordX>absoluteOffsetLeft+map.offsetWidth || coordY<absoluteOffsetTop || coordY>absoluteOffsetTop+map.offsetHeight){return false;}if(document.body.datool){var distance=GetDistance(map,GetClientX(evt),GetClientY(evt));if(map.distanceTimerId!=null)window.clearTimeout(map.distanceTimerId);map.distanceTimerId=window.setTimeout("DisplayDistanceMessage("+distance+","+map.totaldistance+")",10);}}
function SetAreaToolMapProperties(statusBarId,mapId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit){document.body.statusbarid=statusBarId;document.body.mapid=mapId;document.body.mapleft=mapLeftCoord;document.body.mapright=mapRightCoord;document.body.maptop=mapTopCoord;document.body.mapbottom=mapBottomCoord;document.body.mapunit=mapUnit;document.body.datool=false;}
function SetAreaToolMouseHandlers(setHandlers,showDynamicUpdate){RmEventListener(document.body,'click',area_tool_mouse_click);RmEventListener(document.body,'mousemove',area_tool_mouse_move);if(setHandlers){SetupEventListener(document.body,'click',area_tool_mouse_click);if(showDynamicUpdate){SetupEventListener(document.body,'mousemove',area_tool_mouse_move);}}}
function AreaToolClickHandler(sender,clientId,mapId,statusBarId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit,showDynamicUpdate){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);SetAreaToolMouseHandlers((sender.pi==listener.pi),showDynamicUpdate);if(sender.pi==listener.pi)SetAreaToolMapProperties(statusBarId,mapId,mapLeftCoord,mapRightCoord,mapTopCoord,mapBottomCoord,mapUnit);}
function GetDistance(map,currentmousex,currentmousey){var screenDiffX=Math.abs(map.lastmousex-currentmousex);var screenDiffY=Math.abs(map.lastmousey-currentmousey);var mapWidth=document.body.mapright-document.body.mapleft;var mapHeight=document.body.maptop-document.body.mapbottom;var mapXDiff=(mapWidth/map.width)*screenDiffX;var mapYDiff=(mapHeight/map.height)*screenDiffY;var result=Math.sqrt((mapXDiff*mapXDiff)+(mapYDiff*mapYDiff));return FormatToSignificantDigits(result,MEASURE_RESULT_SIGNIFICANT_DIGITS);}
function FormatToSignificantDigits(unformattedNumber,significantDigits){if(unformattedNumber==0 || isNaN(unformattedNumber))return unformattedNumber;var divider=Math.floor(Log10(unformattedNumber)-(significantDigits-1));divider=Math.pow(10,divider);var returnVal=exponare_round(unformattedNumber/divider)*divider;return returnVal;}
function Log10(number){return Math.log(number)/Math.LN10;}
function exponare_round(number){return Math.floor(number+0.5);}
function DisplayDistanceMessage(currentdistance,totaldistance){var statusBar=ById(document.body.statusbarid);if(statusBar==null)return;var fullDistance=totaldistance+currentdistance;var segmentDistance=currentdistance;var distanceDisplayParams=new Array(4);distanceDisplayParams[0]=fullDistance.toLocaleString();distanceDisplayParams[1]=document.body.mapunit;distanceDisplayParams[2]=segmentDistance.toLocaleString();distanceDisplayParams[3]=document.body.mapunit;var convertKmToMeter=1000;var convertMileToYard=1760;var convertYardToFeet=3;var rangeKmTometre=1;var rangeMileToYard=1;var rangeYardToFeet=50;if(fullDistance<rangeKmTometre && document.body.mapunit=="km"){distanceDisplayParams[0]=fullDistance*convertKmToMeter;distanceDisplayParams[1]="m";}if(currentdistance<rangeKmTometre && document.body.mapunit=="km"){distanceDisplayParams[2]=segmentDistance*convertKmToMeter;distanceDisplayParams[3]="m";}if(fullDistance<rangeMileToYard && document.body.mapunit=="mi"){distanceDisplayParams[0]=fullDistance*convertMileToYard;distanceDisplayParams[1]="yd";if(distanceDisplayParams[0]<rangeYardToFeet){distanceDisplayParams[0]=distanceDisplayParams[0]*convertYardToFeet;distanceDisplayParams[1]="ft"}}if(currentdistance<rangeMileToYard && document.body.mapunit=="mi"){distanceDisplayParams[2]=segmentDistance*convertMileToYard;distanceDisplayParams[3]="yd";if(distanceDisplayParams[2]<rangeYardToFeet){distanceDisplayParams[2]=distanceDisplayParams[2]*convertYardToFeet;distanceDisplayParams[3]="ft"}}if(fullDistance<rangeYardToFeet && document.body.mapunit=="yd"){distanceDisplayParams[0]=fullDistance*convertYardToFeet;distanceDisplayParams[1]="ft";}if(currentdistance<rangeYardToFeet && document.body.mapunit=="yd"){distanceDisplayParams[2]=segmentDistance*convertYardToFeet;distanceDisplayParams[3]="ft";}statusBar.innerHTML=ExponareStringFormat(mmhjsDistanceDisplayString,distanceDisplayParams);}var toolActive=false;var blockTool=false;document.body.labelData='new';
function InitMap(map){map.style.position='absolute';var clipper=map.parentNode;document.body.clipperID=clipper.id;clipper.style.width=map.width+PixToInt(clipper.style.borderLeftWidth)+PixToInt(clipper.style.borderRightWidth);clipper.style.height=map.height+PixToInt(clipper.style.borderTopWidth)+PixToInt(clipper.style.borderBottomWidth);}
function InitDragTool(sender,clientId,serverId,mapId,mapControlDataId){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;var listener=ById(clientId);var map=ById(mapId);toolActive=false;RmEventListener(document.body,'mousedown',this.DragToolMouseDown);RmEventListener(document.body,'mousemove',this.DragToolMouseMove);RmEventListener(document.body,'mouseup',this.DragToolMouseUp);if(sender.tooltype==listener.tooltype){if(window.Event){document.body.mapid=map.id;ShowGlass();}DropEtchOSketch();SetupEventListener(document.body,'mousedown',this.DragToolMouseDown);SetupEventListener(document.body,'mousemove',this.DragToolMouseMove);SetupEventListener(document.body,'mouseup',this.DragToolMouseUp);}if(sender.pi==listener.pi && map!=null){document.body.mapid=map.id;document.body.hiddenData=ById(mapControlDataId);document.body.postbackid=serverId;}}
function DragToolMouseDown(evt){if(blockTool)return;if(IsLeftClick(evt)==false)return;var map=ById(document.body.mapid);if((map==null)||(theGlass==null)){return false;}if(IsCorrectDragSource(evt)==false){return false;}document.body.startX=GetClientX(evt);document.body.startY=GetClientY(evt);document.body.lastX=GetClientX(evt);document.body.lastY=GetClientY(evt);toolActive=true;}
function IsCorrectDragSource(evt){var src=GetEventSourceItem(evt);var ie=window.Event ? false : true;var item;if(ie){return(src==ById(document.body.mapid));}else{return(src==theGlass);}}
function DragToolMouseMove(evt){if(!toolActive){return;}if(IsLeftClick(evt)==false)return;var map=ById(document.body.mapid);var clipper=ById(document.body.clipperID);if(map==null || clipper==null){return;}var mouseX=GetClientX(evt);var mouseY=GetClientY(evt);var dx=mouseX-document.body.lastX;var dy=mouseY-document.body.lastY;document.body.lastX=mouseX;document.body.lastY=mouseY;map.style.left=GetAbsoluteOffsetLeft(map)+dx;map.style.top=GetAbsoluteOffsetTop(map)+dy;var mapAbsX=GetAbsoluteOffsetLeft(map);var mapAbsY=GetAbsoluteOffsetTop(map);var clipperAbsX=GetAbsoluteOffsetLeft(clipper);var clipperAbsY=GetAbsoluteOffsetTop(clipper);var hBorderWidth=PixToInt(clipper.style.borderLeftWidth)+PixToInt(clipper.style.borderRightWidth);var vBorderWidth=PixToInt(clipper.style.borderTopWidth)+PixToInt(clipper.style.borderBottomWidth);var left=(clipperAbsX+hBorderWidth)-mapAbsX;var top=(clipperAbsY+vBorderWidth)-mapAbsY;var right=map.clientWidth+left;var bottom=map.clientHeight+top;var clipRegion="rect("+top+" "+right+" "+bottom+" "+left+")";map.style.clip=clipRegion;return false;}
function DragToolMouseUp(evt){if(!toolActive)return;toolActive=false;if(IsLeftClick(evt)==false)return;var map=ById(document.body.mapid);if(map==null)return false;var x1=document.body.startX-GetAbsoluteOffsetLeft(map);var y1=document.body.startY-GetAbsoluteOffsetTop(map);var x2=GetClientX(evt)-GetAbsoluteOffsetLeft(map);var y2=GetClientY(evt)-GetAbsoluteOffsetTop(map);document.body.hiddenData.value=x1+COORD_VALUE_DELIMETER+y1+COORD_VALUE_DELIMETER+x2+COORD_VALUE_DELIMETER+y2;var statusMessage="Please wait while Exponare performs pan operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:Pan;"+document.body.hiddenData.value+"@@");}
function HideGlass(){theGlass.style.top=0;theGlass.style.left=0;theGlass.style.width=0;theGlass.style.height=0;theGlass.style.visibility="hidden";}
function ShowGlass(){var clipper=ById(document.body.clipperID);var clipperAbsX=GetAbsoluteOffsetLeft(clipper);var clipperAbsY=GetAbsoluteOffsetTop(clipper);var width=clipper.clientWidth;var height=clipper.clientHeight;theGlass.style.top=clipperAbsY;theGlass.style.left=clipperAbsX;theGlass.style.width=width+1;theGlass.style.height=height+1;theGlass.style.visibility="visible";}content='<img name="pixel" width=1 height=1>';createLayer("theGlass",0,0,0,0,true,content);dojo.back.init();
function createLayer(name,inleft,intop,width,height,visible,content){document.writeln('<div id="'+name+'" style="position:absolute;overflow:hidden;left:'+inleft+'px;top:'+intop+'px;width:'+width+'px;height:'+height+'px;'+';z-index:1;visibility:'+(visible ? 'visible;' : 'hidden;')+'">');document.writeln(content);document.writeln('</div>');}
function ZoomToSelectionsButtonClick(sender,param){var statusMessage="Please wait while Exponare performs zoom to selections operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:ZTS;");}
function ZoomToActiveSelectionsButtonClick(sender,param){var statusMessage="Please wait while Exponare performs zoom to selections operation...";AJAX_CallBack(_sfMapControl1,document.body.clipperID,statusMessage,"nav:false:ZTAS;");}
function ClearLabelButtonClick(sender,clientID,pbID){if(sender.myItem!=null)sender=sender.myItem;if(!sender.en)return;__doPostBack(pbID,'');}//HS 3.5 Added for Zoom to Active Selections callback operations-Ends