/*	Networkcar confidential and proprietary. 
*	Copyright 2009 Networkcar, Inc. All rights reserved.
*	Author: Chaz Watson
*/
function Stage(F){var C=this;this.map=F;this.maxLat=0;this.axLon=0;this.minLat=0;this.minLon=0;this.lastRedrawLatLon="-";this.lastRedrawZoom=-1;this.vehicles=new Array();this.sensorTracks=new Array();this.sensor1TracksEnabled=true;this.sensor2TracksEnabled=true;this.getVehicles=function(){return this.vehicles};this.getSensorTracks=function(){return this.sensorTracks};this.landmarks=new Array();this.landmarkPositions=new Array();this.landmarksOnStage=new Array();this.landmarksEnabled=false;this.groupAbove=7;this.groupVehicles=true;this.groupSensorTracks=true;this.groupLandmarks=true;this.setGrouping=function(J,I,H,G){if(J!=undefined){this.groupVehicles=J}if(G!=undefined){this.groupSensorTracks=G}if(I!=undefined){this.groupLandmarks=I}if(H!=undefined){this.groupAbove=H}};this.getLandmarks=function(){return this.landmarks};this.labelsEnabled=false;this.imgBlank="/Images/1.gif";var B=function(){};this.createPopupMenu=function(M,G,L,K){this.removePopupMenu();if(K.length>0&&(_user_accttype=="F"||_user_accttype=="T")){var H=document.createElement("div");H.id="mapPopupMenu";H.style.left=G+"px";H.style.top=L+"px";H.style.minWidth="100px";H.style.backgroundColor="#ffffff";H.style.opacity=90;H.style.filter="alpha(opacity = 90)";H.style.opacity=0.9;H.style.borderWidth="1px";H.style.fontFamily="arial, sans-serif";H.style.fontColor="black";H.style.fontSize="12px";H.style.fontWeight="normal";H.style.borderStyle="solid";H.style.borderColor="gray";H.style.display="block";H.style.position="absolute";H.style.cursor="pointer";for(var J=0;J<K.length;J++){var I=document.createElement("div");I.style.opacity=90;I.style.filter="alpha(opacity = 90)";I.style.opacity=0.9;I.style.padding="4px";if(K[J].url){I.onmouseover=function(O){if(!O){var O=window.event}var N=(window.event)?O.srcElement:O.target;N.style.backgroundColor="#aaaaaa"};I.onmouseout=function(O){if(!O){var O=window.event}var N=(window.event)?O.srcElement:O.target;N.style.backgroundColor="#ffffff"};I.onclick=function(O){if(!O){var O=window.event}var N=(window.event)?O.srcElement:O.target;location.href=N.url};I.url=K[J].url;if(K[J].fnctn){I.onmousedown=K[J].fnctn}I.ondblclick=popEventBubble;I.style.cursor="pointer"}I.innerHTML=K[J].label;if(J<(K.length-1)){I.style.borderBottom="1px solid gray"}H.appendChild(I)}H.style.zIndex=1000000;_divMap.appendChild(H)}};this.removePopupMenu=function(G){var H=null;H=document.getElementById("decarta:bubble");if(H){H.style.display="none"}while(document.getElementById("mapPopupMenu")){_divMap.removeChild(document.getElementById("mapPopupMenu"));this.popupMenu=null}};CONST_MAPTYPE_DEFAULT="0";CONST_MAPTYPE_EDITOR="1";CONST_MAPTYPE_ARCH="3";var E=CONST_MAPTYPE_DEFAULT;Stage.prototype.setMapType=function(G){if(G==""){G=CONST_MAPTYPE_DEFAULT}this.mapType=G};Stage.prototype.eventRightClick=function(K){if(E==CONST_MAPTYPE_DEFAULT){var G=_temp_MousePosX-Utilities.getAbsoluteLeft(_divMap);var J=_temp_MousePosY-Utilities.getAbsoluteTop(_divMap);var I=new Array();var H=0;if(_showFullRightClickMenu&&_hasLndmrkGeofencePriv){I[H++]=new MenuItem("Create Landmark","/networkcar/ted/flltnewlndmrk?lat="+K.getLat()+"&lon="+K.getLon());I[H++]=new MenuItem("Create Circular Geofence","/networkcar/ted/flltnewcirculargeofence?lat="+K.getLat()+"&lon="+K.getLon());I[H++]=new MenuItem("Create Polygonal Geofence","/networkcar/ted/flltnewpolygonalgeofence?lat="+K.getLat()+"&lon="+K.getLon()+"&z="+_zoom.getZoomLevel())}_stage.createPopupMenu(_map,G,J,I)}};this.getMap=function(){return this.map};this.getVehicle=function(I){if(isNaN(I)){var H=false;var G=0;while(!H){if(this.vehicles[G++].id==I){H=true}}return this.vehicles[G-1]}else{return this.vehicles[I]}};this.getSensorTrack=function(I){if(isNaN(I)){var H=false;var G=0;while(!H){if(this.sensorTracks[G++].id==I){H=true}}return this.sensorTracks[G-1]}else{return this.sensorTracks[I]}};this.getLandmark=function(I){if(isNaN(I)){var H=false;var G=0;while(!H){if(this.landmarks[G++].id==I){H=true}}return this.landmarks[G-1]}else{return this.landmarks[I]}};this.showActor=function(G){};this.hideActor=function(G){};this.showActorLabel=function(G){};this.hideActorLabel=function(G){};this.showLabels=function(G){this.labelsEnabled=true;this.redraw(true)};this.hideLabels=function(G){this.labelsEnabled=false;this.redraw(true)};this.showLandmarks=function(){if(this.landmarksEnabled==false){this.landmarksEnabled=true;for(i=0;i<this.landmarks.length;i++){this.landmarks[i].onStage=true}this.redraw(true)}};this.hideLandmarks=function(){if(this.landmarksEnabled==true){for(i=0;i<this.landmarks.length;i++){this.landmarks[i].onStage=false}this.landmarksEnabled=false;this.redraw(true)}};this.showSensorTracks=function(G){if(G==1){if(this.sensor1TracksEnabled==false){this.sensor1TracksEnabled=true;for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==G){this.sensorTracks[i].includeMe=true}}this.redraw(true)}}else{if(G==2){if(this.sensor2TracksEnabled==false){this.sensor2TracksEnabled=true;for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==G){this.sensorTracks[i].includeMe=true}}this.redraw(true)}}}};this.hideSensorTracks=function(G){if(G==1){if(this.sensor1TracksEnabled==true){for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==G){this.sensorTracks[i].includeMe=false}}this.sensor1TracksEnabled=false;this.redraw(true)}}else{if(G==2){if(this.sensor2TracksEnabled==true){for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==G){this.sensorTracks[i].includeMe=false}}this.sensor2TracksEnabled=false;this.redraw(true)}}}};Stage.prototype.removePinsByPartialId=function(I){var H=this.map.getPins();for(var G=0;G<H.length;G++){if(H[G].getId().indexOf(I)==0){this.map.removePin(H[G],G)}}};this.actorsDiffer=function(G,H){if(G.lat!=H.lat||G.lon!=H.lon||G.msg!=H.msg||G.img!=H.img||G.label!=H.label){return true}else{return false}};this.consumeVehicle=function(G){if(!this.vehicles[G.num]){this.vehicles[G.num]=G}else{var H=this.vehicles[G.num];if(this.actorsDiffer(H,G)){this.vehicles[G.num]=G}}};this.consumeSensorTrack=function(G){if(!this.sensorTracks[G.num]){this.sensorTracks[G.num]=G}else{var H=this.sensorTracks[G.num];if(this.actorsDiffer(H,G)){this.sensorTracks[G.num]=G}}};this.consumeLandmark=function(G){if(!this.landmarks[G.num]){this.landmarks[G.num]=G}else{var H=this.landmarks[G.num];if(this.actorsDiffer(H,G)){this.hideActor(H);this.landmarks[G.num]=G}}};function A(H){var G=H.getMaxPosition();var I=H.getMinPosition();this.minLat=I.lat;this.maxLat=G.lat;this.minLon=I.lon;this.maxLon=G.lon}function D(G){if(G.lat>this.minLat&&G.lat<this.maxLat&&G.lon>this.minLon&&G.lon<this.maxLon){return true}else{return false}}this.hideVehicle=function(G){};this.showVehicle=function(G){};this.redrawVehicle=function(G){};this.hideSensorTrack=function(G){};this.showSensorTrack=function(G){};this.redrawSensorTrack=function(G){};this.redrawLandmark=function(G){};this.showAllVehicles=function(){for(i=0;i<this.vehicles.length;i++){this.vehicles[i].includeMe=true}};this.hideAllVehicles=function(){for(i=0;i<this.vehicles.length;i++){this.vehicles[i].includeMe=false}};this.showAllSensorTracks=function(){for(i=0;i<this.sensorTracks.length;i++){this.sensorTracks[i].includeMe=true}};this.hideAllSensorTracks=function(){for(i=0;i<this.sensorTracks.length;i++){this.sensorTracks[i].includeMe=false}};this.removeAllPins=function(){this.map.removeAllPins();for(i=0;i<this.vehicles.length;i++){this.vehicles[i].onStage=false}for(i=0;i<this.sensorTracks.length;i++){this.sensorTracks[i].onStage=false}for(i=0;i<this.landmarks.length;i++){this.landmarks[i].onStage=false}};this.redraw=function(I){A(this.map.getBoundingBox());if(I||this.lastRedrawZoom!=this.map.getZoomController().getZoomLevel()||this.lastRedrawLatLon!=this.map.getBoundingBox().getCenterPosition().getLatLon()){var J=false;var G=false;var H=true;if(this.lastRedrawZoom>this.map.getZoomController().getZoomLevel()){G=true}else{if(this.lastRedrawZoom==this.map.getZoomController().getZoomLevel()){H=false}else{J=true}}this.lastRedrawZoom=this.map.getZoomController().getZoomLevel();this.lastRedrawLatLon=this.map.getBoundingBox().getCenterPosition().getLatLon();if(this.map.getZoomController().getZoomLevel()>this.groupAbove){this.removeAllPins()}else{this.removeAllPins()}if(typeof (window._pgfe_loaded)!="undefined"){if(_pgfe_loaded==true){redrawVertexPins()}}this.drawManeuvers();this.drawLandmarks();this.drawVehicles();this.drawSensorTracks();this.drawGeofences();this.drawStickyPOI()}};this.drawStickyPOI=function(){if(_stickyPOI){var H=new Position(_stickyPOI.lat,_stickyPOI.lon);var G=new Icon(_stickyPOI.img,10,10,20,20);_stickyPOIPin=new Pin(H,_stickyPOI.msg,"mouseover",G);_stickyPOILabel=_stage.createPinLabel("LSPOI",H,-6,_stickyPOI.label);_stickyPOILabel.setId("LSPOI");_stage.map.addPin(_stickyPOIPin);_stage.map.addPin(_stickyPOILabel)}};this.drawManeuvers=function(){if(_routeObj){var N=new Icon("/decarta/img/start.gif",20,10,40,19);var M=new Icon("/decarta/img/end.gif",20,10,40,19);_start=new Pin(_routeStartPosition,"Start: <b>"+_strFFA1+"</b>","mouseover",N);_end=new Pin(_routeEndPosition,"End: <b>"+_strFFA2+"</b>","mouseover",M);_stage.map.addPin(_start);_stage.map.addPin(_end);for(var O=0;O<_routeObj.RouteInstructions.length;O++){var J=_routeObj.RouteInstructions[O];var I=(O+1)+":&nbsp;<b>"+J.Instruction+"</b><br><br>Distance: "+J.distance+" "+_routeUOM+"<br>Duration: "+J.duration;var H="/decarta/img/marker_yellow.png";var K=new Position(J.position);var L=new Icon(H,10,34,20,34);var G=new Pin(K,I,"mouseover",L);_stage.map.addPin(G,true)}}};this.drawGeofences=function(){if(_fenceShowCenter!=null&&_fenceCenter!=null){var H=new Icon("/decarta/img/greenDot.png",12,12,24,24);var G=new Pin(_fenceCenter,"","",H);G.setId("geofencePin");_stage.map.addPin(G,true)}};this.drawVehicles=function(){if(this.groupVehicles==true&&this.map.getZoomController().getZoomLevel()>this.groupAbove){this.drawGroupedVehicles()}else{this.drawUngroupedVehicles()}};this.drawSensorTracks=function(){if(this.groupSensorTracks==true&&this.map.getZoomController().getZoomLevel()>this.groupAbove){this.drawGroupedSensorTracks()}else{this.drawUngroupedSensorTracks()}};this.drawLandmarks=function(){if(this.groupLandmarks==true&&this.map.getZoomController().getZoomLevel()>this.groupAbove){this.drawGroupedLandmarks()}else{this.drawUngroupedLandmarks()}};this.drawUngroupedVehicles=function(){for(i=0;i<this.vehicles.length;i++){if(D(this.vehicles[i])){if(this.vehicles[i].onStage==false){if(this.vehicles[i].includeMe==true){var H=this.vehicles[i].createPin();this.map.addPin(H);if(this.labelsEnabled){var G=this.vehicles[i].createPinLabel();this.map.addPin(G)}this.vehicles[i].onStage=true}}}else{if(this.vehicles[i].onStage){this.map.removePinById(this.vehicles[i].id);this.vehicles[i].onStage=false}}}};this.drawUngroupedSensorTracks=function(){for(i=0;i<this.sensorTracks.length;i++){if(D(this.sensorTracks[i])){if(this.sensorTracks[i].onStage==false){if(this.sensorTracks[i].includeMe==true){var H=this.sensorTracks[i].createPin();this.map.addPin(H);if(this.labelsEnabled){var G=this.sensorTracks[i].createPinLabel();this.map.addPin(G)}this.sensorTracks[i].onStage=true}}else{this.map.removePinById(this.sensorTracks[i].id)}}else{if(this.sensorTracks[i].onStage){this.map.removePinById(this.sensorTracks[i].id);this.sensorTracks[i].onStage=false}}}};this.drawUngroupedLandmarks=function(){if(this.landmarksEnabled==true){for(i=0;i<this.landmarks.length;i++){if(D(this.landmarks[i])){if(this.landmarks[i].onStage==false){var H=this.landmarks[i].createPin();this.map.addPin(H);if(this.labelsEnabled){var G=this.landmarks[i].createPinLabel();this.map.addPin(G)}this.landmarks[i].onStage=true}}else{if(this.landmarks[i].onStage){this.map.removePinById(this.landmarks[i].id);this.landmarks[i].onStage=false}}}}};this.drawGroupedVehicles=function(){var K=[];for(i=0;i<this.vehicles.length;i++){if(D(this.vehicles[i])){K.push(this.vehicles[i])}}var P=Utilities.grouper(K,this.map.getZoomController(),50);for(i=0;i<P.length;i++){if(P[i].length>1){var G=P[i].pop();var N=null;var L=-4;if(P[i].length>99){N=new Icon("/js/map/img/grayLg.png",18,54,35,58)}else{if(P[i].length>24){N=new Icon("/js/map/img/grayMid.png",14,42,27,45)}else{N=new Icon("/js/map/img/graySm.png",11,34,22,36)}}var O=P[i].length+" vehicles";var J="<b>Zoom to vehicle ("+P[i].length+" total):</b><br><div onmousedown='popEventBubble(event)' style='width:180px; height:126px; overflow: auto;' onclick='javascript:return false;' onmousedown='javascript:return false;' onmouseup='javascript:return false;'>";while(P[i].length>0){var R=P[i].pop();J+="<a href='javascript:return;' onclick='javascript:_stage.zoomToPin(\""+R.id+"\");'>"+R.label+"</a><br>"}J+="</div>";var Q=new Pin(G,J,"click",N);Q.setId("CLM"+i);this.map.addPin(Q);if(this.labelsEnabled){var M=this.createPinLabel(Q.getId(),G,L,O);this.map.addPin(M)}}else{var I=P[i].pop();var S=I.createPin();this.map.addPin(S);if(this.labelsEnabled){var H=I.createPinLabel();this.map.addPin(H)}I.onStage=true}}};this.drawGroupedSensorTracks=function(){var Q=[];for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==1){if(D(this.sensorTracks[i])){Q.push(this.sensorTracks[i])}}}var S=Utilities.grouper(Q,this.map.getZoomController(),50);Q=[];for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].sensorNum==2){if(D(this.sensorTracks[i])){Q.push(this.sensorTracks[i])}}}var K=Utilities.grouper(Q,this.map.getZoomController(),50);for(i=0;i<S.length;i++){if(S[i].length>1){var G=S[i].pop();var O=null;var J=-4;if(S[i].length>99){O=new Icon("/js/map/img/grayLg.png",18,54,35,58)}else{if(S[i].length>24){O=new Icon("/js/map/img/grayMid.png",14,42,27,45)}else{O=new Icon("/js/map/img/graySm.png",11,34,22,36)}}var P=S[i].length+" sensor readings";var I="<b>Zoom to vehicle ("+S[i].length+" total):</b><br><div style='width:180px; height:126px; overflow: auto;' onclick='javascript:return false;' onmousedown='javascript:return false;' onmouseup='javascript:return false;'>";while(S[i].length>0){var M=S[i].pop();I+="<a href='javascript:return;' onclick='javascript:_stage.zoomToPin(\""+M.id+"\");'>"+M.label+"</a><br>"}I+="</div>";var R=new Pin(G,I,"click",O);R.setId("CLM"+i);this.map.addPin(R);if(this.labelsEnabled){var N=this.createPinLabel(R.getId(),G,J,P);this.map.addPin(N)}}else{var L=S[i].pop();var T=L.createPin();this.map.addPin(T);if(this.labelsEnabled){var H=L.createPinLabel();this.map.addPin(H)}L.onStage=true}}for(i=0;i<K.length;i++){if(K[i].length>1){G=K[i].pop();O=null;J=-4;if(K[i].length>99){O=new Icon("/js/map/img/grayLg.png",18,54,35,58)}else{if(K[i].length>24){O=new Icon("/js/map/img/grayMid.png",14,42,27,45)}else{O=new Icon("/js/map/img/graySm.png",11,34,22,36)}}P=K[i].length+" sensor readings";I="<b>Zoom to vehicle ("+K[i].length+" total):</b><br><div style='width:180px; height:126px; overflow: auto;' onclick='javascript:return false;' onmousedown='javascript:return false;' onmouseup='javascript:return false;'>";while(K[i].length>0){M=K[i].pop();I+="<a href='javascript:return;' onclick='javascript:_stage.zoomToPin(\""+M.id+"\");'>"+M.label+"</a><br>"}I+="</div>";R=new Pin(G,I,"click",O);R.setId("CLM"+i);this.map.addPin(R);if(this.labelsEnabled){N=this.createPinLabel(R.getId(),G,J,P);this.map.addPin(N)}}else{L=K[i].pop();T=L.createPin();this.map.addPin(T);if(this.labelsEnabled){H=L.createPinLabel();this.map.addPin(H)}L.onStage=true}}};this.drawGroupedLandmarks=function(){var K=[];if(this.landmarksEnabled){for(i=0;i<this.landmarks.length;i++){if(D(this.landmarks[i])){K.push(this.landmarks[i])}}}var G=Utilities.grouper(K,this.map.getZoomController(),50);for(i=0;i<G.length;i++){if(G[i].length>1){var H=G[i].pop();var P=null;var L=-4;if(G[i].length>99){P=new Icon("/js/map/img/blueLg.png",18,54,35,58)}else{if(G[i].length>24){P=new Icon("/js/map/img/blueMid.png",14,42,27,45)}else{P=new Icon("/js/map/img/blueSm.png",11,34,22,36)}}var Q=G[i].length+" landmarks";var J="<b>Zoom to landmark ("+G[i].length+" total):</b><br><div onmousedown='popEventBubble(event)' style='width:180px; height:126px; overflow: auto;'>";while(G[i].length>0){var N=G[i].pop();J+="<a href='javascript:return;' onclick='javascript:_stage.zoomToPin(\""+N.id+"\")'>"+N.label+"</a><br>"}J+="</div>";var R=new Pin(H,J,"click",P);R.setId("CLM"+i);this.map.addPin(R);if(this.labelsEnabled){var M=this.createPinLabel(R.getId(),H,L,Q);this.map.addPin(M)}}else{var O=G[i].pop();var S=O.createPin();this.map.addPin(S);if(this.labelsEnabled){var I=O.createPinLabel();this.map.addPin(I)}O.onStage=true}}};Stage.prototype.zoomToPin=function(G){var H=null;if(G.indexOf("V")==0){for(i=0;i<this.vehicles.length;i++){if(this.vehicles[i].id==G){H=this.vehicles[i];break}}}else{if(G.indexOf("S")==0){for(i=0;i<this.sensorTracks.length;i++){if(this.sensorTracks[i].id==G){H=this.sensorTracks[i];break}}}else{if(G.indexOf("LM")==0){for(i=0;i<this.landmarks.length;i++){if(this.landmarks[i].id==G){H=this.landmarks[i];break}}}}}if(H!=null){this.map.getZoomController().zoomToNewLevel(7);var I=new Position(H.lat,H.lon);this.map.centerOnPosition(I,function(J){_stage.map.centerOnPosition(J,function(K){_stage.redraw()})})}};this.mapAddPin=function(H,G){};this.drawRouteByAddys=function(I,G,M){var L=new UOM("MI");var J=new RoutePreference("Fastest",L);var H=new Array(I,G);var K=new RouteQuery();K.query(H,J,function(O){var N=new DDSLine();N.setPositions(O.RouteGeometry);N.setWidth("6");N.setOpacity("60");N.setColor("(0.0.88)");_stage.map.removeAllOverlays();_stage.map.addOverlay(N);if(M){M(O)}})};this.getRouteByCoords=function(G,K){var J=new UOM("MI");var H=new RoutePreference("Fastest",J);var I=new RouteQuery();if(K!=null){B=K}I.query(G,H,function(L){if(B!=null){B(L)}})};this.drawRoute=function(H){var G=new DDSLine();G.setPositions(H.RouteGeometry);G.setWidth("6");G.setOpacity("60");G.setColor("(0.0.88)");_stage.map.addOverlay(G)};this.drawRouteByCoords=function(G,H,L){var K=new UOM("MI");var I=new RoutePreference("Fastest",K);var J=new RouteQuery();_stage.removePopupMenu();if(H){_stage.map.removeAllOverlays()}if(L!=null){this._callback_route=L}J.query(G,I,function(N){removeStatusMessage();if(N==null){addStatusMessage("Unable to display the connecting route line.")}var M=new DDSLine();M.setPositions(N.RouteGeometry);M.setWidth("6");M.setOpacity("60");M.setColor("(0.0.88)");_stage.map.addOverlay(M);if(this._callback_route!=null){this._callback_route(N)}})};Stage.prototype.createPinLabel=function(M,L,K,H){var J=new TextOverlay("<div style='background-color:transparent;position: absolute; width: 200px; height: 0px; align: center;' onload='this.captureEvents(null);'><table align=center style='background-color: FFFFFF; filter: alpha(opacity=80); opacity: .80; border-width: 1px; border-style: solid; border-color: gray; border-collapse: collapse;' id='vehicleLabel'><tr><td style='padding: 0 4 0 5;'><b>"+H+"</b></td</tr></table></div>",0,0);var I=new Icon(this.imgBlank,99,K,200,25,J);var G=new Pin(L,"","",I);G.setId("L"+M);return G};this.findPin=function(I){var H=_stage.map.getPins();for(var G=0;G<H.length;G++){if(H[G].getId()==I){return H[G]}}return null}}function MenuItem(B,A,C){this.type="popupMenu";this.label=B;this.url=A;this.fnctn=C}MenuItem.prototype.fnctn=function(){};PinGroup=function(){};PinGroup.eventRightClick=function(B){var A=_temp_MousePosX-Utilities.getAbsoluteLeft(_divMap);var D=_temp_MousePosY-Utilities.getAbsoluteTop(_divMap);var C=new Array();C[0]=new MenuItem(B.getMessage());_stage.createPopupMenu(B,A,D,C)};Pin.prototype.setNCObject=function(A){this._ncObject=A};Pin.prototype.getNCObject=function(){return this._ncObject};Utilities.grouper=function(Q,B,F){if(!Q||!B||F<=0){throw new Exception("Utilities.grouper: Invalid input posArray: "+Q+" zoom: "+B+" radius: "+F)}var G=B.getGXConvertedZoomLevel();var O=Utilities.radsPerPixelAtZoom(256,G);var H=Q.length;var C,R,J,A,M,N,P;var I=[];var D=0;var L,K;var E=[];for(L=0;L<H;L++){for(K=0;K<D;K++){if(I[K].contains(Q[L])){E[K].push(Q[L]);break}}if(K==D){R=Utilities.lat2pix(Q[L].lat,O)+F;J=Utilities.lon2pix(Q[L].lon,O)+F;A=Utilities.lat2pix(Q[L].lat,O)-F;M=Utilities.lon2pix(Q[L].lon,O)-F;N=Utilities.pix2lat(R,O)+" "+Utilities.pix2lon(J,O);P=Utilities.pix2lat(A,O)+" "+Utilities.pix2lon(M,O);C=new BoundingBox(new Position(P),new Position(N));I[D]=C;E[D]=[];E[D].push(Q[L]);D++}}for(L=0;L<D;L++){if(E[L].length>1){E[L].push(I[L].getCenterPosition())}}return E};Utilities.p=function(A){if(document.getElementById("___decarta_console")){document.getElementById("___decarta_console").innerHTML+="<br/>"+A}else{var B=document.createElement("div");B.style.position="absolute";B.style.top="10px";B.style.left="600px";B.style.fontSize="8pt";B.style.border="1px inset #cccccc";B.style.backgroundColor="#eeeeee";B.id="___decarta_console";document.body.appendChild(B);B.innerHTML+="<br/>"+A}};Utilities.c=function(){if(document.getElementById("___decarta_console")){document.getElementById("___decarta_console").innerHTML=""}};Utilities.htmlizeXMLDom=function(C){var B=new RegExp("\\>","g");var A=new RegExp("\\<","g");var D=(Sarissa.serialize(C));D=D.replace(B,"&gt;");D=D.replace(A,"&lt;");return"<PRE>"+D+"</PRE>"};