aimsMapPresent=true;
var debugOn=0;
var setDebug=true;
var useLimitExtent=false;
var getStartingExtent=true;
var getLimitExtent=true;
var enforceFullExtent=false;
var eLeft=startLeft;
var eRight=startRight;
var eTop=startTop;
var eBottom=startBottom;
var fullLeft=eLeft;
var fullRight=eRight;
var fullTop=eTop;
var fullBottom=eBottom;
var iWidth=630;
var iHeight=512;
var i2Width=150;
var i2Height=120;
var imageLimitLeft=limitLeft;
var imageLimitTop=limitTop;
var imageLimitRight=limitRight;
var imageLimitBottom=limitBottom;
var appDir="";
var xDistance=Math.abs(eRight-eLeft);
var yDistance=Math.abs(eTop-eBottom);
var panX=xDistance*panFactor;
var panY=yDistance*panFactor;
var pixelX=xDistance/iWidth;
var pixelY=yDistance/iHeight;
var mapX=eLeft;
var mapY=eTop;
var lastLeft=eLeft;
var lastRight=eRight;
var lastTop=eTop;
var lastBottom=eBottom;
var fullOVLeft=eLeft;
var fullOVRight=eRight;
var fullOVTop=eTop;
var fullOVBottom=eBottom;
var theCursor="crosshair";
var canLoad=false;
var fullWidth=Math.abs(fullRight-fullLeft);
var fullHeight=Math.abs(fullTop-fullBottom);
var fullOVWidth=Math.abs(fullOVRight-fullOVLeft);
var fullOVHeight=Math.abs(fullOVTop-fullOVBottom);
var mapScaleFactor=xDistance/iWidth;
var geocodeX=0;
var geocodeY=0;
var showGeocode=false;
var geocodeLabel="";
var queryZoom=false;
var sQuote="'";
var dQuote='"';
var toolMode=1;
var legendVisible=false;
if((hasTOC)&&(!showTOC))legendVisible=true;
MapUnits=MapUnits.toUpperCase();
ScaleBarUnits=ScaleBarUnits.toUpperCase();
if(drawScaleBar2){
switch(ScaleBarUnits){
case "MILES":
ScaleBar2Units="KILOMETERS";
break;
case "KILOMETERS":
ScaleBar2Units="MILES";
break;
case "FEET":
ScaleBar2Units="METERS";
break;
case "METERS":
ScaleBar2Units="FEET";
break;
}
}
function saveLastExtent(){
lastLeft=eLeft;
lastRight=eRight;
lastTop=eTop;
lastBottom=eBottom;
}
function fullExtent(){
if(aimsDHTMLPresent)moveLayer("theMap",hspc,vspc);
window.scrollTo(0,0);
saveLastExtent();
eLeft=fullLeft;
eRight=fullRight;
eTop=fullTop;
eBottom=fullBottom;
sendMapXML();
}
function startExtent(){
if(aimsDHTMLPresent)moveLayer("theMap",hspc,vspc);
window.scrollTo(0,0);
saveLastExtent();
eLeft=startLeft;
eRight=startRight;
eTop=startTop;
eBottom=startBottom;
sendMapXML();
}
function zoomBack(){
if(aimsDHTMLPresent)moveLayer("theMap",hspc,vspc);
var left1=eLeft;
var right1=eRight;
var top1=eTop;
var bottom1=eBottom;
eLeft=lastLeft;
eRight=lastRight;
eTop=lastTop;
eBottom=lastBottom;
lastLeft=left1;
lastRight=right1;
lastTop=top1;
lastBottom=bottom1;
sendMapXML();
}
function zoomToPoint(xIn,yIn,drawIt,theLabel){
var mWMargin=0;
var mHMargin=0;
mWMargin=Math.abs(limitRight-limitLeft)*selectPointMargin;
mHMargin=Math.abs(limitTop-limitBottom)*selectPointMargin;
var xNum=parseFloat(xIn);
var yNum=parseFloat(yIn);
saveLastExtent();
eLeft=xNum-mWMargin;
eRight=xNum+mWMargin;
eTop=yNum+mHMargin;
eBottom=yNum-mHMargin;
if(drawIt){
showGeocode=true;
geocodeX=xNum;
geocodeY=yNum;
geocodeLabel=theLabel;
}
sendMapXML();
}
function zoomToEnvelope(minXin,minYin,maxXin,maxYin){
saveLastExtent();
eLeft=minXin;
eBottom=minYin;
eRight=maxXin;
eTop=maxYin;
checkFullExtent();
sendMapXML()
}
function zoomScale(inScale){
var halfWidth=fullWidth/2;
var halfHeight=fullHeight/2
var midX=eRight-(xDistance/2);
var midY=eTop-(yDistance/2);
var newWidth=halfWidth*inScale;
var newHeight=halfHeight*inScale;
saveLastExtent();
eLeft=midX-newWidth;
eRight=midX+newWidth;
eTop=midY+newHeight;
eBottom=midY-newHeight;
sendMapXML();
}
function getCommandLineParams(cmdString){
setLayerVisible.length=0;
var cmdString2=cmdString.toUpperCase();
var startpos=0;
var endpos=0;
var pos=cmdString2.indexOf("HOST=");
if(pos!=-1){
startpos=pos+5;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
hostName=cmdString.substring(startpos,endpos);
serverURL="http://"+hostName+"/servlet/com.esri.esrimap.Esrimap?ServiceName=";
}
pos=cmdString2.indexOf("SERVICE=");if(pos!=-1){
startpos=pos+8;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
imsURL=serverURL+cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("OVMAP=");if(pos!=-1){
startpos=pos+6;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
imsOVURL=serverURL+cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("BOX=");
if(pos!=-1){
startpos=pos+4;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
var boxString=cmdString.substring(startpos,endpos);
var xyBox=boxString.split(":");
if(xyBox.length==4){
startLeft=parseFloat(xyBox[0]);
startBottom=parseFloat(xyBox[1]);
startRight=parseFloat(xyBox[2]);
startTop=parseFloat(xyBox[3]);
eLeft=startLeft;
eBottom=startBottom;
eRight=startRight;
eTop=startTop;
}
}
pos=cmdString2.indexOf("MAXRECT=");
if(pos!=-1){
startpos=pos+8;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
var boxString=cmdString.substring(startpos,endpos);
var xyBox=boxString.split(":");
if(xyBox.length==4){
limitLeft=xyBox[0];
limitBottom=xyBox[1];
limitRight=xyBox[2];
limitTop=xyBox[3];
}
}
if(aimsLayersPresent){
pos=cmdString2.indexOf("LAYERS=");
if(pos!=-1){
startpos=pos+7;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
var layers=cmdString.substring(startpos,endpos);
var numLayers=layers.length;
icount=0;
while(icount<=numLayers-1){
onoff=layers.substring(icount,icount+1);
if(onoff=='0'){
setLayerVisible[icount]=false;
}
else if(onoff=='1'){
setLayerVisible[icount]=true;
}
icount=icount+1;
}
layers="";
}
pos=cmdString2.indexOf("ACTIVELAYER=");
if(pos!=-1){
startpos=pos+12;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
var actlyr=cmdString.substring(startpos,endpos);
ActiveLayerIndex=parseInt(actlyr);
selectType=LayerType[ActiveLayerIndex];
actlyr="";
}
if(aimsQueryPresent){
pos=cmdString2.indexOf("QUERY=");
if(pos!=-1){
startpos=pos+6;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
var escQuery=cmdString.substring(startpos,endpos);
escQuery=replacePlus(escQuery);
escQuery=unescape(escQuery);
highlightedOne=makeXMLsafe(escQuery);
escQuery="";
}
if(highlightedOne!=""){
pos=cmdString2.indexOf("QUERYZOOM=YES");
if(pos!=-1)queryZoom=true;
}
}
}
pos=cmdString2.indexOf("STARTLEFT=");
if(pos!=-1){
startpos=pos+10;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
startLeft=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("STARTTOP=");
if(pos!=-1){
startpos=pos+9;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
startTop=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("STARTRIGHT=");
if(pos!=-1){
startpos=pos+11;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
startRight=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("STARTBOTTOM=");
if(pos!=-1){
startpos=pos+12;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
startBottom=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("LIMITLEFT=");
if(pos!=-1){
startpos=pos+10;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
limitLeft=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("LIMITTOP=");
if(pos!=-1){
startpos=pos+9;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
limitTop=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("LIMITRIGHT=");
if(pos!=-1){
startpos=pos+11;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
limitRight=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("LIMITBOTTOM=");
if(pos!=-1){
startpos=pos+12;
endpos=cmdString.indexOf("&",startpos);
if(endpos==-1)endpos=cmdString.length;
limitBottom=cmdString.substring(startpos,endpos);
}
pos=cmdString2.indexOf("EXTENT=AUTO");
if(pos!=-1){
startLeft=0;
startRight=0;
startTop=0;
startBottom=0;
limitLeft=0;
limitRight=0;
limitTop=0;
limitBottom=0;
getStartingExtent=true;
getLimitExtent=true;
}
pos=cmdString2.indexOf("DEBUG=YES");
if(pos==-1)pos=cmdString2.indexOf("DEBUG=TRUE");
if(pos!=-1){
debugOn=3;
}
if(imsURL!=""){
imsQueryURL=imsURL+"&CustomService=Query";
imsGeocodeURL=imsURL+"&CustomService=Geocode";
}
if((startLeft!=0)&&(startRight!=0))getStartingExtent=false;
if((limitLeft!=0)&&(limitRight!=0)){
getLimitExtent=false;
enforceFullExtent=true;
}
}
function getPath(theFullPath){
var theSlash=theFullPath.lastIndexOf("/");
var theDir=theFullPath.substring(0,theSlash);
if(theDir==null)theDir="";
theDir=theDir+"/";
return theDir;
}
function hasLayer(name){
var result=false;
if(isNav4){
if(document.layers[name]!=null)result=true;
}else if(isIE){
if(eval('document.all.'+name)!=null)result=true;
}else if(isNav){
var theElements=document.getElementsByTagName("DIV");
var theObj;
var j=-1;
for(i=0;i<theElements.length;i++){
if(theElements[i].id==name)result=true;
}
}
return result;
}
function showRetrieveData(){
if(hasLayer("LoadData")){
showLayer("LoadData");
}
}
function hideRetrieveData(){
if(hasLayer("LoadData")){
hideLayer("LoadData");
}
}
function showRetrieveMap(){
if(hasLayer("LoadMap")){
showLayer("LoadMap");
}
}
function hideRetrieveMap(){
if(hasLayer("LoadMap")){
hideLayer("LoadMap");
}
}
function getScaleBarDistance(){
var mUnits=MapUnits;
var mDistance=eRight-eLeft;
var sbDistance=0
if(MapUnits=="DEGREES"){
var midY=eBottom+(eTop-eBottom)/2;
var tempL=eLeft;
var tempR=eRight;
if(tempL<-180)tempL=(-1799999/10000);
if(tempR>180)tempL=(1799999/10000);
var Lon1=tempL*Math.PI/180;
var Lon2=tempR*Math.PI/180;
var Lat1=midY*Math.PI/180;
var Lat2=midY*Math.PI/180;
var LonDist=Math.abs(Lon2-Lon1);
var LatDist=Math.abs(Lat1-Lat2);
var A=Math.pow(Math.sin(LatDist/2),2)+Math.cos(Lat1)*Math.cos(Lat2)*Math.pow(Math.sin(LonDist/2),2);
var C=2*Math.asin(Math.min(1,Math.sqrt(A)));
var D=(3963-13*Math.sin((Lat1+Lat2)/2))*C
mDistance=D*5280;
mUnits="FEET";
}
if(mUnits!=ScaleBarUnits){
theDist=mDistance
mDistance=convertUnits(theDist,mUnits,ScaleBarUnits);
}
sbDistance=mDistance/5;
var num1=0;
var num2=sbDistance;
if(sbDistance>10000000){
num1=parseInt(sbDistance/5000000);
num2=num1*5000000;
}else if(sbDistance>1000000){
num1=parseInt(sbDistance/500000);
num2=num1*500000;
}else if(sbDistance>100000){
num1=parseInt(sbDistance/50000);
num2=num1*50000;
}else if(sbDistance>10000){
num1=parseInt(sbDistance/5000);
num2=num1*5000;
}else if(sbDistance>1000){
num1=parseInt(sbDistance/500);
num2=num1*500;
}else if(sbDistance>100){
num1=parseInt(sbDistance/50);
num2=num1*50;
}else if(sbDistance>10){
num1=parseInt(sbDistance/5);
num2=num1*5;
}else if(sbDistance>1){
num1=parseInt(sbDistance/(25/100));
num2=num1*(25/100);
}else if(sbDistance>0.1){
num1=parseInt(sbDistance/(25/1000));
num2=num1*(25/1000);
}
sbDistance=num2;
if(sbDistance>2){
ScaleBarPrecision="0";
}else if(sbDistance>1){
ScaleBarPrecision="1";
}else if(sbDistance>1/10){
ScaleBarPrecision="2";
}else if(sbDistance>1/100){
ScaleBarPrecision="3";
}else{
ScaleBarPrecision="4";
}
return sbDistance;
}
function calcDistance(mX,mY){
if(clickCount>0){
var mUnits=MapUnits;
var mDistance=0;
var p=clickCount-1;
var Lon1=clickPointX[p]*Math.PI/180;
var Lon2=mX*Math.PI/180;
var Lat1=clickPointY[p]*Math.PI/180;
var Lat2=mY*Math.PI/180;
var LonDist=Lon1-Lon2;
var LatDist=Lat1-Lat2;
if(MapUnits=="DEGREES"){
var A=Math.pow(Math.sin(LatDist/2),2)+Math.cos(Lat1)*Math.cos(Lat2)*Math.pow(Math.sin(LonDist/2),2);
var C=2*Math.asin(Math.min(1,Math.sqrt(A)));
var D=(3963-13*Math.sin((Lat1+Lat2)/2))*C
mDistance=D*5280;
mUnits="FEET";
}else{
var xD=Math.abs(mX-clickPointX[p]);
var yD=Math.abs(mY-clickPointY[p]);
mDistance=Math.sqrt(Math.pow(xD,2)+Math.pow(yD,2));
}
var theDist=convertUnits(mDistance,mUnits,ScaleBarUnits);
var u=Math.pow(10,numDecimals);
currentMeasure=parseInt(theDist*u+(5/10))/u;
updateMeasureBox();
}
}
function convertUnits(theDist1,mUnits,sUnits){
var theDist=parseFloat(theDist1);
var mDistance=theDist;
if(mUnits=="FEET"){
if(sUnits=="MILES"){
mDistance=theDist/5280;
}else if(sUnits=="METERS"){
mDistance=theDist*(3048/10000);
}else if(sUnits=="KILOMETERS"){
mDistance=theDist*(3048/10000000);
}
}else{
if(sUnits=="MILES"){
mDistance=theDist*(6213711922/10000000000000);
}else if(sUnits=="FEET"){
mDistance=theDist*(3280839895/1000000000);
}else if(sUnits=="KILOMETERS"){
mDistance=theDist/1000;
}
}
var u=Math.pow(10,numDecimals);
if(!isNav)mDistance=parseInt(mDistance*u+(5/10))/u
return mDistance;
}
function setExtent(newLeft,newTop,newRight,newBottom){
eLeft=newLeft;
eTop=newTop;
eRight=newRight;
eBottom=newBottom;
}
function setFullExtent(maxLeft,maxTop,maxRight,maxBottom){
fullLeft=maxLeft;
fullTop=maxTop;
fullRight=maxRight;
fullBottom=maxBottom;
fullWidth=Math.abs(fullRight-fullLeft);
fullHeight=Math.abs(fullTop-fullBottom);
}
function beforeMapRefresh(){
}
function afterMapRefresh(){
}
function zoomButton(zoomType){
saveLastExtent();
if(zoomType==1){
eLeft=eLeft+(xHalf/2);
eRight=eRight-(xHalf/2);
eTop=eTop-(yHalf/2);
eBottom=eBottom+(yHalf/2);
}
else{
eLeft=eLeft-xHalf;
eRight=eRight+xHalf;
eTop=eTop+yHalf;
eBottom=eBottom-yHalf;
}
checkFullExtent();
sendMapXML();
}
function panButton(panType){
saveLastExtent();
xDistance=Math.abs(eRight-eLeft);
yDistance=Math.abs(eTop-eBottom);
panX=xDistance*panFactor;
panY=yDistance*panFactor;
switch(panType){
case 1:
eLeft=eLeft-panX;
eRight=eLeft+xDistance;
break
case 2:
eTop=eTop+panY;
eBottom=eTop-yDistance;
break
case 3:
eRight=eRight+panX;
eLeft=eRight-xDistance;
break
case 4:
eBottom=eBottom-panY;
eTop=eBottom+yDistance;
break
case 5:
eTop=eTop-panY;
eLeft=eLeft-panX;
eBottom=eTop-yDistance;
eRight=eLeft+xDistance;
break
case 6:
eTop=eTop+panY;
eLeft=eLeft-panX;
eBottom=eTop-yDistance;
eRight=eLeft+xDistance;
break
case 7:
eTop=eTop+panY;
eLeft=eLeft+panX;
eBottom=eTop-yDistance;
eRight=eLeft+xDistance;
break
case 8:
eTop=eTop-panY;
eLeft=eLeft+panX;
eBottom=eTop-yDistance;
eRight=eLeft+xDistance;
}
checkFullExtent();
sendMapXML();
}
function checkFullExtent(){
if(enforceFullExtent){
var xDistance1=eRight-eLeft;
var yDistance1=eTop-eBottom;
if(xDistance1>fullWidth)xDistance1=fullWidth;
if(yDistance1>fullHeight)yDistance1=fullHeight;
if((eLeft<limitLeft)&&(eTop>limitTop)){
eLeft=limitLeft;
eRight=limitRight;
}else{
if(eLeft<limitLeft){
eLeft=limitLeft;
eRight=eLeft+xDistance1;
}else if(eRight>limitRight){
eRight=limitRight;
eLeft=eRight-xDistance1;
}
}
if((eLeft<limitLeft)&&(eTop>limitTop)){
eTop=limitTop;
eBottom=limitBottom;
}else{
if(eTop>limitTop){
eTop=limitTop;
eBottom=eTop-yDistance1;
}else if(eBottom<limitBottom){
eBottom=limitBottom;
eTop=eBottom+yDistance1;
}
}
}
}
