// ArcIMSparam.js
// javascript file with parameters specific to calling page

//*********************************************
//*  Modification parameters                  *
//*********************************************

var highlightedOne="";
var queryZoom=false;
var crimeSQL="";          //* Mapping on the fly variable *//

//***************************************************************************
//*			parameters File for HTML Template		    *
//***************************************************************************

// get machine name
var hostName = document.location.host;
// common portion of url
var esriBlurb = "/servlet/com.esri.esrimap.Esrimap?ServiceName="
// make URL for getting mapservice catalog
var catURL = "http://" + hostName + esriBlurb + "catalog";
// make prefix for URL
var serverURL  = "http://" + hostName + esriBlurb;



//*********************************************************************
//*			parameters set by Designer			                     *
//*********************************************************************
var imsURL = 'http://pslpdgis.cityofpsl.com/servlet/com.esri.esrimap.Esrimap?ServiceName=psltest';
var imsOVURL =  'http://pslpdgis.cityofpsl.com/servlet/com.esri.esrimap.Esrimap?ServiceName=pslov';
var imsQueryURL = '';
var imsGeocodeURL = '';

//initial map extent
var startLeft = 0;
var startRight = 0;
var startTop = 0;
var startBottom = 0;
//maximum map extent
var limitLeft = 824264.822;
var limitRight = 904602.293;
var limitTop = 1108693.701;
var limitBottom = 1043160.780291688;

var usePan=true;
var usePanNorth=false;
var usePanWest=false;
var usePanEast=false;
var usePanSouth=false;
var useZoomIn=true;
var useZoomOut=true;
var useFullExtent=true;
var useZoomActive=false;
var useZoomLast=false;
var useIdentify=true;
var useMeasure=true;
var useSetUnits=false;
var useSelect=true;
var useQuery=false;
var useFind=false;
var useGeocode=false;
var useStoredQuery=false;
var useClearSelect=true;
var usePrint=true;
var useGeoNetwork=false;
var useBuffer=true;
var useExtract=false;
var useDisplayXY=true;  //hannah added: XY

var MapUnits = "Feet";
var ScaleBarUnits = "Feet";



// End of Designer set parameters

//**********************************************************
// BEGIN BOOKMARKS AREA
//**********************************************************

//**********************************************************
//  Required for Bookmarks; add button and create array
//**********************************************************

var useBookmark=true;
var bookmarks = new Array();

//**********************************************************
// Options for Bookmarks; populate array
//
// uncomment and pre-define as many bookmarks as desired
//
//                         name,       left,  right,   top, bottom
//-----------------------------------------------------------------
bookmarks[0] = new Array("COUNCIL ON AGING", 866121.934842772, 868451.254458699,  1067016.944375,  1065660.8336397);
bookmarks[1] = new Array("FLORIDA TURNPIKE EXIT 142", 862522.378535894, 865613.113916527,  1071073.07820069,  1069273.67746539);
bookmarks[2] = new Array("I-95 Exit 126", 845722.326494374, 849817.5508737,  1106979.3260202,  1104595.12004594);
bookmarks[3] = new Array("I-95 Exit 121", 844284.710887188, 848526.220480564,  1084061.15638382,  1081591.78436028);
bookmarks[4] = new Array("I-95 Exit 118", 841374.186194527, 846407.906088652,  1067156.32328557,  1064225.73293625);
bookmarks[5] = new Array("MORNINGSIDE BRANCH LIBRARY", 883544.04375, 884620.33125,  1068206.24036815,  1067579.63463185);
bookmarks[6] = new Array("PORT ST LUCIE BRANCH LIBRARY", 866463.703749999,  867161.669632353,  1085271.175,  1084864.825);
bookmarks[7] = new Array("PORT ST LUCIE CITY HALL", 867720.839171141,  871636.078795775,  1070808.39428967,  1068528.97396026);
bookmarks[8] = new Array("PORT ST LUCIE POLICE DEPARTMENT", 867720.839171141,  871636.078795775,  1070808.39428967,  1068528.97396026);
bookmarks[9] = new Array("PORT ST LUCIE POLICE DEPARTMENT SUBSTATION", 858262.195797856, 860196.55158831,  1060482.51830945,  1059356.35226706);
bookmarks[10] = new Array("PORT ST LUCIE PUBLIC WORKS", 863455.272445105,  864936.470365372,  1071315.28268588,  1070452.94143093);
bookmarks[11] = new Array("PORT ST LUCIE UTILITIES ADMINISTRATION", 868854.754227939,  870818.797757351,  1082478.61062498,  1081335.16062498);
bookmarks[12] = new Array("SLC FIRE STATION #3", 866683.610808823, 867381.576691177,  1085271.175,  1084864.825);
bookmarks[13] = new Array("SLC FIRE STATION #5", 882178.855367647, 882875.082132353,  1068453.73125,  1068048.39375);
bookmarks[14] = new Array("SLC FIRE STATION #10", 860067.8575,  861220.8925,  1065755.45625,  1065084.16875);
bookmarks[15] = new Array("SLC FIRE STATION #12", 883712.936838235, 884888.000661765,  1079035.49375,  1078351.38125);
bookmarks[16] = new Array("SLC FIRE STATION #13", 873076.794411765, 875055.330588235,  1046994.06875,  1045842.18125);
bookmarks[17] = new Array("SLC FIRE STATION #14", 850624.949191176,  851708.709338235,  1085015.44459558,  1084384.48834558);
bookmarks[18] = new Array("SLC HEALTH DEPARTMENT", 856463.267024654, 858595.87443727,  1105772.98659783,  1104531.4000904);
bookmarks[19] = new Array("ST LUCIE MEDICAL CENTER", 88308.117647058, 887037.079411764,  1075683.53088235,  1073803.65588235);
bookmarks[20] = new Array("TRADITION FIELD", 847527.442973176, 850865.437184253,  1089071.74282608,  1087128.39003196);
bookmarks[21] = new Array("US POST OFFICE - PSL", 876782.748088235, 879465.626911765,  1070300.475,  1068738.525);
bookmarks[22] = new Array("US POST OFFICE - SLW", 847096.25625, 849356.49375,  1085675.6958476,  1084359.8041524);
//**********************************************************
// END BOOKMARKS AREA
//**********************************************************

var useHyperLink=false;
var useHyperLinkAny=true;
var useIdentifyAll=false;
var useBufferShape=false; 
var hasToolBarOnLayer=false;
	// useHyperLink takes priority - both cannot be true
if (useHyperLink) useHyperLinkAny=false;
	// useIdentify takes priority - both cannot be true
if (useIdentify) useIdentifyAll=false;
	// allow debugging
var setDebug=true;


/**************************************
* Basic Map parameters
**************************************/

// variables for setting component colors
var mapBackColor = "";
var ovBoxColor = "#ff0000";
var ovBoxSize = 3;
var zoomBoxColor = "#ff0000";

// variables for using individual components
var hasOVMap = true;
var hasLegend = false;
var hasTOC = false;
var useModeFrame = true;

// variables for map pixel offset from upper left corner of frame
	// horizontal offset
var hspc = 0;
	// vertical offset
var vspc = 0;

//panning factor for arrow buttons
var panFactor = 85/100;
//zoom factors for v.3
var zoomFactor = 3

// margin factor for zooming in on selected lines and polygons - based on feature width and height. . . margin will be selectMargin * width or height
var selectMargin = 25/10;
// margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
var selectPointMargin = 25/1000

// show the scale factor
var showScalePercent=true;
// display coords in status line
var showXYs=true;

// Have ArcXML responses URL encoded? Will not work with multi-byte characters
var doURLencode = false;

// automatically adjust for ArcMapServer, if necessary
	// North Arrow size is smaller from ArcMapServer
var autoAdjustForArcMapServer = true;
// if it is an ArcMap Service, is it using a Personal Database?
	// critical for correct sql expression on queries on date fields
	// Syntax for date fields is different for layers from a Personal Database than for other ArcMap Service data sources
var isPersonalDatabase = false;

//variables for MapDrawing
	// North Arrow
var drawNorthArrow = false;
var NorthArrowType = "4";
var NorthArrowSize = "15";
var NorthArrowCoords = "20 35";
var NorthArrowAngle = "0";
	// Scale Bar
var drawScaleBar = true;
	// MapUnits=DEGREES,FEET,METERS
	// can MapUnits be changed by user?
var setMapUnits=false;
	// ScaleBarUnits=KILOMETERS,METERS,MILES,FEET
var ScaleBarBackground = "false";
var ScaleBarBackColor = "0,0,0";
var ScaleBarFontColor = "255,255,255";
var ScaleBarColor = "192,192,192";
var ScaleBarFont = "Arial";
var ScaleBarStyle = "Regular";
var ScaleBarRound = "1";
var ScaleBarSize = "12";
var ScaleBarWidth = "5";
var ScaleBarPrecision = 2;
var numDecimals = ScaleBarPrecision;
	// Scale Bar 2
var drawScaleBar2 = false;
var ScaleBar2Units = "KILOMETERS";
var ScaleBar2Background = "false";
var ScaleBar2BackColor = "0,0,0";
var ScaleBar2FontColor = "0,0,0";
var ScaleBar2Color = "128,128,128";
var ScaleBar2Font = "";
var ScaleBar2Style = "Regular";
var ScaleBar2Round = "1";
var ScaleBar2Size = "9";
var ScaleBar2Width = "5";
var ScaleBar2Precision = 2;

	// Copyright blurb
var drawCopyright = true;
var CopyrightFont = "";
var CopyrightStyle = "Regular";
var CopyrightSize = "8";
var CopyrightCoords = "3 3";
var CopyrightColor = "0,0,0";
var CopyrightBackground = "True";
var CopyrightBGColor = "255,255,255";
var CopyrightGlow = "False";
var CopyrightGlowColor = "255,255,255";
var CopyrightShadow = "False";
var CopyrightShadowColor = "32,32,32";
var CurrentYear = new Date().getFullYear();
var CopyrightText = "Aerials 12/08 and Property Info 10/08.  Map created with ArcIMS - Copyright (C) 1992-" +  CurrentYear + " ESRI Inc.";
// var CopyrightText = "Map created with ArcIMS - Copyright (C) 1992-" +  CurrentYear + " ESRI Inc.";

	// place bar behind Copyright text and scalebars
var drawBottomBar = false;
var bottomBarColor = "255,255,255";
var bottomBarOutline = "0,0,0";
var bottomBarHeight = "18";

	// Mode on Map
var drawModeOnMap = false;
var modeRefreshMap = false;
var modeMapColor = "255,255,255";
var modeMapGlow = "128,0,255";

var ovImageVar;
var ovBorderWidth = 2;
var ovExtentBoxSize = 2;

// map image background transparent? - requires gif or png8 types
var mapTransparent=false;

// setup test for Nav 4.0
var isIE = false;
var isNav = (navigator.appName.indexOf("Netscape")>=0);
var isNav4 = false;
var isIE4 = false;
var is5up = false;
//alert(navigator.appVersion);
if (isNav) {
	
	if (parseFloat(navigator.appVersion)<5) {
		isNav4=true;
		//alert("Netscape 4.x or older");
	} else {
		is5up = true;
	}
} else {
	isIE4=true;
	isIE=true;
	if ((navigator.appVersion.indexOf("MSIE 5")>0) || (navigator.appVersion.indexOf("MSIE 6")>0)) {
		isIE4 = false;
		is5up = true;
		//alert("IE5");
	}
}	
		
/**************************************
* Extended Map parameters
**************************************/

// variables for ovmap offset
var ovHspc = 0;
var ovVspc = 0;

// color for Main Map zoombox in html hex RGB format
//var zoomBoxColor = "#ff0000";

// index of initial active layer. . . if more than or equal to layer count top layer used
var ActiveLayerIndex=2;

// variables for using individual components
var useTextFrame=true;
// use external window for dialogs
var useExternalWindow=false;
// hannah added for new window layer info from layer list
var useExternalLayerInfo=true;

// colors for tables 
var textFrameBackColor="White";
var tableBackColor="#FFFFFF";
var textFrameTextColor="Black";
var textFrameLinkColor="#404040";
var textFrameFormColor="White";

// LayerList visible at service load
var showTOC=false;
// set layer visibility according to LayerList or by custom programming
var toggleVisible = true;
// set layer visibility of OVMap according to LayerList or by custom programming
	// imsURL must equal imsOVMap - depends on one LayerList
var toggleOVVisible = true;
// will the LayerList show all layers, not just those available at current scale
var listAllLayers = true;

// toggle the check of non-listing of layers in LayerList and Legend
// if true, noListLayer array must have an element defined for each layer
var hideLayersFromList=true;
// layers that will be listed in the LayerList or Legend
	// Note: This does not affect map display
var noListLayer = new Array();
noListLayer[0] = false;  // City Limits
noListLayer[1] = true;   // Address Points
noListLayer[2] = false;  // Parcels
noListLayer[3] = false;	 // Streets
noListLayer[4] = true;   // Main Roads
noListLayer[5] = false;  // Highways and Water
noListLayer[6] = false;  // Police Districts
noListLayer[7] = false;  // Police Zones
noListLayer[8] = false;	 // Sex Offenders
noListLayer[9] = false;  // Parks
noListLayer[10] = false; // Schools
noListLayer[11] = false; // City Sections
noListLayer[12] = false; // Council Districts
noListLayer[13] = true;	 // City Owned Property
noListLayer[14] = false; // Wind Speed Zones
noListLayer[15] = false; // Future Land Use 
noListLayer[16] = false; // Zoning
noListLayer[17] = false; // Drainage

	// Mode on floating layer
var drawFloatingMode = false;
var modeLayerOn = false;
var modeLayerColor = "Black";
var modeLayerShadowColor = "White";
var modeLayerFont = "Arial";
var modeLayerSize = "4";

	// does the overview map a layer on top of map?... 
var ovMapIsLayer=true;

var webParams = "";
if (parent.MapFrame!=null) {
	webParams = parent.document.location.search;
} else {
	webParams = document.location.search;
}

/**************************************
* Interactive Map parameters
**************************************/

// Click points - Measure/Shape Select/Shape Buffer
var clickMarkerColor="255,0,0";
var clickMarkerType="Circle";
var clickMarkerSize="12";


/**************************************
* Identify/Select/Query/Buffer parameters
**************************************/

// search tolerance in pixels around click
var pixelTolerance=5;
// color of selected features in decimal RGB format
var selectColor="255,255,0";
// color of highlighted feature in decimal RGB format
var highlightColor="255,0,0";
// level of transparency of selected and highlighted color
var transparentLevel = "0.2";
	// zoom to selected feature if only one is returned?
var zoomToSingleSelect = true;
	// use only unique values in sample field value lists
var onlyUniqueSamples = true;
	// are string queries case insensitive?
		// false by default to match Java Viewer and ArcExplorer
var queryCaseInsensitive=false;

// fields to be returned in identify/selection/query request. . . #ALL#=all fields
var selectFields= "#ALL#";
//var selectFields= "#ID# #SHAPE#";
// swap out the list of returned fields? 
//If true, a list must be defined in selFieldList[n] for each layer to update selectFields
var swapSelectFields=true;
// array for each layer's returned fields if swapSelectFields=true
//Hannah Added
var shortFieldList=true;

// array for each layer's returned fields if swapSelectFields=true
var selFieldList = new Array();
// sample set for world - if not #ALL#, id and shape fields required. Separate with a space
selFieldList[0]="LENGTH #ID# #SHAPE#";  // City Limits
selFieldList[1]="AREA PERIMETER PARCELID MAPCRIME.CASE_NO MAPCRIME.OFFICERID MAPCRIME.DISTRICT MAPCRIME.POLZONE MAPCRIME.POLSECT MAPCRIME.CRIMETYPE MAPCRIME.ADDRESS MAPCRIME.STINTER MAPCRIME.PREMISES MAPCRIME.COMMENTS #ID# #SHAPE#";  // Address Points
selFieldList[2]="AREA PERIMETER PARCELID ZONING LANDUSE CNCLDIST WINDZONE PDIST PZONE PLANNING_A FLDPLAIN OWNER1 OWNER2 OWNER3 ADDRESS1 ADDRESS2 CITY STATE ZIP COUNTRY SALEDATE SALEPRIC ORBKPG LEGAL DOR LANDVAL IMPRVAL ASSDVAL EXEMPT TAXTOT NETTAX ADDRESS CITYLOT CITYBLK CITYSECT SUBDIV SEC TWN RNG #ID# #SHAPE#";  // Parcels
selFieldList[3]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Streets
selFieldList[4]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Main Roads
selFieldList[5]="NAME TYPE #ID# #SHAPE#";  // Highways and Water
selFieldList[6]="AREA PERIMETER PDIST #ID# #SHAPE#";  // Police Distrcits
selFieldList[7]="AREA PERIMETER PZONE #ID# #SHAPE#";  // Police Zones
selFieldList[8]="OFFID LASTNAME FIRSTNAME MIDDLENAME DOB AKA RACE GENDER HEIGHT WEIGHT HAIR EYES APT_NO CITY OFFZONE OFFDIST SMT SMTLOCATIO SMTDESCRIP VEHYEAR VEHMAKE VEHMODEL VEHCOLOR VEHCOLOR2 TAG TAGSTATE VIN SPECIALTY ADDCOM PHOTOPATH #ID# #SHAPE#";  // Sex Offenders
selFieldList[9]="PARK_ID ADDRESS PHONE FAX YEAREST ACRES BASEBALL BASKETBALL TENNIS PLAYGROUND RESTROOM PAVILLIO GRILL WATER TRAIL SOCCER LIGHTS ELECTRIC VOLLEYBALL BOATS FISHING THORGUARD OPENAREA PICNIC RAQUET TRACK #ID# #SHAPE#";  // Parks
selFieldList[10]="AREA PERIMETER SCH_ID SCH_ADDRES SCH_PHONE #ID# #SHAPE#";  // Schools
selFieldList[11]="AREA PERIMETER SECTION #ID# #SHAPE#";  // City Sections
selFieldList[12]="AREA PERIMETER C_DISTRICT C_NAME #ID# #SHAPE#";  // Council Districts
selFieldList[13]="AREA PERIMETER USAGE_ PARCELID ZONING LANDUSE CITYLOT CITYBLK CITYSECT STATUS #ID# #SHAPE#";  // City Owned Property
selFieldList[14]="AREA PERIMETER WIND_ZONE #ID# #SHAPE#";  // Wind Speed Zones
selFieldList[15]="AREA PERIMETER LULEGEND LANDUSE #ID# #SHAPE#";  // Future Land Use
selFieldList[16]="AREA PERIMETER ZONING ZOLEGEND #ID# #SHAPE#";  // Zoning
selFieldList[17]="AREA PERIMETER DRAIN_03_ #ID# #SHAPE#";  // Drainage

//Hannah Added
var selFieldListMod = new Array();
selFieldListMod[0]="LENGTH #ID# #SHAPE#";  // City Limits
selFieldListMod[1]="PARCELID MAPCRIME.CASE_NO MAPCRIME.CRIMETYPE MAPCRIME.ADDRESS #ID# #SHAPE#";  // Address Points
selFieldListMod[2]="PARCELID OWNER1 ADDRESS1 CITY STATE ZIP ADDRESS LEGAL SUBDIV #ID# #SHAPE#";  // Parcels
selFieldListMod[3]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Streets
selFieldListMod[4]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Main Roads
selFieldListMod[5]="NAME TYPE #ID# #SHAPE#";  // Highways and Water
selFieldListMod[6]="AREA PERIMETER PDIST #ID# #SHAPE#";  // Police Districts
selFieldListMod[7]="AREA PERIMETER PZONE #ID# #SHAPE#";  // Police Zones
selFieldListMod[8]="OFFID LASTNAME FIRSTNAME MIDDLENAME DOB AKA RACE GENDER HEIGHT WEIGHT HAIR EYES APT_NO CITY OFFZONE OFFDIST SPECIALTY ADDCOM PHOTOPATH #ID# #SHAPE#";  // Sex Offenders
selFieldListMod[9]="PARK_ID ADDRESS PHONE YEAREST ACRES #ID# #SHAPE#";  // Parks
selFieldListMod[10]="AREA PERIMETER SCH_ID SCH_ADDRES SCH_PHONE #ID# #SHAPE#";  // Schools
selFieldListMod[11]="AREA PERIMETER SECTION #ID# #SHAPE#";  // City Sections
selFieldListMod[12]="AREA PERIMETER C_DISTRICT C_NAME #ID# #SHAPE#";  // Council Districts
selFieldListMod[13]="AREA PERIMETER USAGE_ PARCELID ZONING LANDUSE CITYLOT CITYBLK CITYSECT STATUS #ID# #SHAPE#";  // City Owned Property
selFieldListMod[14]="AREA PERIMETER WIND_ZONE #ID# #SHAPE#";  // Wind Speed Zones
selFieldListMod[15]="AREA PERIMETER LANDUSE #ID# #SHAPE#";  // Future Land Use
selFieldListMod[16]="AREA PERIMETER ZONING #ID# #SHAPE#";  // Zoning
selFieldListMod[17]="AREA PERIMETER DRAIN_03_ #ID# #SHAPE#";  // Drainage

//Hannah Added
var selFieldListBuffer = new Array();
selFieldListBuffer[0]="#ID# #SHAPE#";  // City Limits
selFieldListBuffer[1]="PARCELID MAPCRIME.CASE_NO MAPCRIME.CRIMETYPE MAPCRIME.ADDRESS #ID# #SHAPE#";  // Address Points
selFieldListBuffer[2]="PARCELID OWNER1 ADDRESS LEGAL SUBDIV #ID# #SHAPE#";  // Parcels
selFieldListBuffer[3]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Streets
selFieldListBuffer[4]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Main Roads
selFieldListBuffer[5]="NAME TYPE #ID# #SHAPE#";  // Highways and Water
selFieldListBuffer[6]="PDIST #ID# #SHAPE#";  // Police Districts
selFieldListBuffer[7]="PZONE #ID# #SHAPE#";  // Police Zones
selFieldListBuffer[8]="OFFID LASTNAME FIRSTNAME MIDDLENAME RACE GENDER SPECIALTY ADDCOM PHOTOPATH #ID# #SHAPE#";  // Sex Offenders
selFieldListBuffer[9]="PARK_ID ADDRESS PHONE YEAREST ACRES #ID# #SHAPE#";  // Parks
selFieldListBuffer[10]="SCH_ID SCH_ADDRES SCH_PHONE #ID# #SHAPE#";  // Schools
selFieldListBuffer[11]="SECTION #ID# #SHAPE#";  // City Sections
selFieldListBuffer[12]="C_DISTRICT C_NAME #ID# #SHAPE#";  // Council Districts
selFieldListBuffer[13]="USAGE_ PARCELID ZONING LANDUSE CITYLOT CITYBLK CITYSECT STATUS #ID# #SHAPE#";  // City Owned Property
selFieldListBuffer[14]="WIND_ZONE #ID# #SHAPE#";  // Wind Speed Zones
selFieldListBuffer[15]="LANDUSE #ID# #SHAPE#";  // Future Land Use
selFieldListBuffer[16]="ZONING #ID# #SHAPE#";  // Zoning
selFieldListBuffer[17]="DRAIN_03_ #ID# #SHAPE#";  // Drainage

//Hannah Added for Mailing Labels
var selFieldListBufferShort = new Array();
selFieldListBufferShort[0]="#ID# #SHAPE#";  // City Limits
selFieldListBufferShort[1]="PARCELID MAPCRIME.CASE_NO MAPCRIME.CRIMETYPE MAPCRIME.ADDRESS #ID# #SHAPE#";  // Address Points
selFieldListBufferShort[2]="OWNER1 OWNER2 ADDRESS1 ADDRESS2 CITY STATE ZIP COUNTRY";  // Parcels
selFieldListBufferShort[3]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Streets
selFieldListBufferShort[4]="ST_TEXT PZONE PDIST MILES FEET SUBDIV #ID# #SHAPE#";  // Main Roads
selFieldListBufferShort[5]="NAME TYPE #ID# #SHAPE#";  // Highways and Water
selFieldListBufferShort[6]="PDIST #ID# #SHAPE#";  // Police Districts
selFieldListBufferShort[7]="PZONE #ID# #SHAPE#";  // Police Zones
selFieldListBufferShort[8]="OFFID LASTNAME FIRSTNAME MIDDLENAME APT_NO CITY ADDCOM PHOTOPATH #ID# #SHAPE#";  // Sex Offenders
selFieldListBufferShort[9]="PARK_ID ADDRESS PHONE YEAREST ACRES #ID# #SHAPE#";  // Parks
selFieldListBufferShort[10]="SCH_ID SCH_ADDRES SCH_PHONE #ID# #SHAPE#";  // Schools
selFieldListBufferShort[11]="SECTION #ID# #SHAPE#";  // City Sections
selFieldListBufferShort[12]="C_DISTRICT C_NAME #ID# #SHAPE#";  // Council Districts
selFieldListBufferShort[13]="USAGE_ PARCELID ZONING LANDUSE CITYLOT CITYBLK CITYSECT STATUS #ID# #SHAPE#";  // City Owned Property
selFieldListBufferShort[14]="WIND_ZONE #ID# #SHAPE#";  // Wind Speed Zones
selFieldListBufferShort[15]="LANDUSE #ID# #SHAPE#";  // Future Land Use
selFieldListBufferShort[16]="ZONING #ID# #SHAPE#";  // Zoning
selFieldListBufferShort[17]="DRAIN_03_ #ID# #SHAPE#";  // Drainage

// use the field alias in the data display? 
//If true, a list must be defined in fieldAliasList[n] for each layer defining aliases for those fields needing them
var useFieldAlias=true;
// array for aliases for each layer's returned fields if useFieldAlias=true
var fieldAliasList  = new Array();
// sample set for world - fieldname:alias pairs separated by a bar (|)... if no aliases, use empty string ("")
fieldAliasList[0]="LENGTH:Length|#ID#:Id|#SHAPE#:Shape";  // City Limits
fieldAliasList[1]="AREA:Area|PERIMETER:Perimeter|PARCELID:Parcel#|MAPCRIME.CASE_NO:Case#|MAPCRIME.OFFICERID:Officer#|MAPCRIME.DISTRICT:District|MAPCRIME.POLZONE:Zone|MAPCRIME.POLSECT:Sector|MAPCRIME.CRIMETYPE:Crime Type|MAPCRIME.ADDRESS:Location|MAPCRIME.STINTER:Intersection|MAPCRIME.PREMISES:Premises|MAPCRIME.COMMENTS:Comments|#ID#:Id|#SHAPE#:Shape";  // Address Points
fieldAliasList[2]="AREA:Area|PERIMETER:Perimeter|PARCELID:Parcel#|ZONING:Zoning|LANDUSE:Land Use|CNCLDIST:Council District|WINDZONE: Wind Zone|PDIST:Police District|PZONE:Police Zone|PLANNING_A:Planning Area|FLDPLAIN:Flood Plain|OWNER1:Primary Owner|OWNER2:Secondary Owner|OWNER3:Tertiary Owner|ADDRESS1:Primary Address|ADDRESS2:Secondary Address|CITY:City|STATE:State|ZIP:Zip|COUNTRY:Country|SALEDATE:Sale Date|SALEPRIC:Sale Price|ORBKPG:OR Book/Page|LEGAL:Legal Description|DOR:DOR|LANDVAL:Land Value|IMPRVAL:Improved Value|ASSDVAL:Assessed Value|EXEMPT:Exemption|TAXTOT:Taxable Value|NETTAX:Net Taxable|ADDRESS:Situs Address|CITYLOT:Lot|CITYBLK:Block|CITYSECT:Section|SUBDIV:Subdivision|SEC:Section|TWN:Township|RNG:Range|#ID#:Id|#SHAPE#:Shape";  // Parcels
fieldAliasList[3]="ST_TEXT:Street Name|PZONE:Police Zone|PDIST:Police District|MILES:Miles|FEET:Feet|SUBDIV:Subdivision|#ID#:Id|#SHAPE#:Shape";  // Streets
fieldAliasList[4]="ST_TEXT:Street Name|PZONE:Police Zone|PDIST:Police District|MILES:Miles|FEET:Feet|SUBDIV:Subdivision|#ID#:Id|#SHAPE#:Shape";  // Main Roads
fieldAliasList[5]="NAME:Name|TYPE:Type|#ID#:Id|#SHAPE#:Shape";  // Highways and Water
fieldAliasList[6]="AREA:Area|PERIMETER:Perimeter|PDIST:Police District|#ID#:Id|#SHAPE#:Shape";  // Police Districts
fieldAliasList[7]="AREA:Area|PERIMETER:Perimeter|PZONE:Police Zone|#ID#:Id|#SHAPE#:Shape";  // Police Zones
fieldAliasList[8]="OFFID:Offender Id#|LASTNAME:Last Name|FIRSTNAME:First Name|MIDDLENAME:Middle|DOB:DOB|AKA:AKA|RACE:Race|GENDER:Gender|HEIGHT:Height|WEIGHT:Weight|HAIR:Hair|EYES:Eyes|APT_NO:Apt#|CITY:City|OFFZONE:Police Zone|OFFDIST:Police District|SMT:Scars/Marks/Tattoos|SMTLOCATIO:SMT Location|SMTDESCRIP:SMT Description|VEHYEAR:Vehicle Year|VEHMAKE:Vehicle Make|VEHMODEL:Vehicle Model|VEHCOLOR:Primary Color|VEHCOLOR2:Secondary Color|TAG:Tag#|TAGSTATE:Tag State|VIN:Vin#|SPECIALTY:Offense Type|ADDCOM:Address|PHOTOPATH:Photo|#ID#:Id|#SHAPE#:Shape";  // Sex Offenders
fieldAliasList[9]="PARK_ID:Park|ADDRESS:Address|PHONE:Phone|FAX:Fax|YEAREST:Year Established|ACRES:Acres|BASEBALL:Baseball Fields|BASKETBALL:Basketball Courts|TENNIS:Tennis Courts|PLAYGROUND:Playground/Play Area|RESTROOM:Restroom(s)|PAVILLION:Pavillion(s)|GRILL:Grill(s)|WATER:Water|TRAIL:Trail(s)|SOCCER:Soccer Fields|LIGHTS:Lights|ELECTRIC:Electric|VOLLEYBALL:Volleyball|BOATS:Boat Ramps/Launches|FISHING:Fishing|THORGUARD:Lightning Protection|OPENAREA:Open Area|PICNIC:Picnic Table(s)|RAQUET:Raquetball Courts|TRACK:Walking/Running Track|#ID#:Id|#SHAPE#:Shape";  // Parks
fieldAliasList[10]="AREA:Area|PERIMETER:Perimeter|SCH_ID:School|SCH_ADDRES:Address|SCH_PHONE:Phone|#ID#:Id|#SHAPE#:Shape";  // Schools
fieldAliasList[11]="AREA:Area|PERIMETER:Perimeter|SECTION:City Section|#ID#:Id|#SHAPE#:Shape";  // City Sections
fieldAliasList[12]="AREA:Area|PERIMETER:Perimeter|C_DISTRICT:Council District|C_NAME:Council Person|#ID#:Id|#SHAPE#:Shape";  // Council Districts
fieldAliasList[13]="AREA:Area|PERIMETER:Perimeter|USAGE_:Usage|PARCELID:Parcel Id|ZONING:Zoning|LANDUSE:Landuse|CITYLOT:Lot|CITYBLK:Block|CITYSECT:Section|STATUS:Status|#ID#:Id|#SHAPE#:Shape";  // City Owned Property
fieldAliasList[14]="AREA:Area|PERIMETER:Perimeter|WIND_ZONE:Wind Zone|#ID#:Id|#SHAPE#:Shape";  // Wind Speed Zones
fieldAliasList[15]="AREA:Area|PERIMETER:Perimeter|LULEGEND:Land Use Description|LANDUSE:Land Use Code|#ID#:Id|#SHAPE#:Shape";  // Future Land Use
fieldAliasList[16]="AREA:Area|PERIMETER:Perimeter|ZONING:Zoning Code|ZOLEGEND:Zoning Description|#ID#:Id|#SHAPE#:Shape";  // Zoning
fieldAliasList[17]="AREA:Area|PERIMETER:Perimeter|DRAIN_03_:Id|#ID#:Id|#SHAPE#:Shape";  // Drainage

// Hide the ID field display? The ID Field must be included in field list, but we don't have to show it.
var hideIDFieldData = true;
// Hide the shape field display? The Shape Field must be included in field list, but we don't have to show it.
var hideShapeFieldData = true;

// parameters for setting up hyperlinks in data display
var hyperLinkLayers = new Array(); // layers to have hyperlink
var hyperLinkFields = new Array();	// field in those layers to be used for hyperlink
var hyperLinkPrefix = new Array();  // prefix (if any) to place before field value to make hyperlink url
var hyperLinkSuffix = new Array();  // suffix (if any) to place after field value to make hyperlink url

hyperLinkLayers[0] = "Sexual Offenders and Predators";
hyperLinkFields[0] = "PHOTOPATH";
hyperLinkPrefix[0] = "";
hyperLinkSuffix[0] = "";

// will the returned data be displayed in text frame?
var showSelectedData=true;
// will the returned features be drawn?
var showSelectedFeatures=true;
// maximum number of features returned from query
var maxFeaturesReturned=50;
// for ID All - List all visible layers in response - default is false
	// if false only visible layers with idenitified features written to table
	// if true the names of all visible layers will be diplayed even if no features returned
var listAllLayersInIDAll = false;


// number of data samples retrieved for query form
var numberDataSamples = 50;



/**************************************
* Legend parameters - aimsLegend.js
**************************************/

// legend map size
var legWidth=170;
var legHeight=300;
var legFont="Arial";
var legTitle="Legend";
// Added variables for Group Layers.
// List the layers to group together, each group name being
//  an item in the groupName array. List the layers in the groupLayers 
//  array, each group's layer in a comma-delimited list.
var groupVisible = true;
var groupName = new Array();
var groupLayers = new Array();
groupName[0] = "Building";
groupLayers[0] = "Wind Speed Zones (mph)";
groupName[1] = "City Boundaries";
groupLayers[1] = "City Limits,City Sections,Zip Codes";
groupName[2] = "Points of Interest";
groupLayers[2] = "Schools,Parks";
groupName[3] = "Police Boundaries";
groupLayers[3] = "Police Districts,Police Zones";
groupName[4] = "Planning & Zoning";
groupLayers[4] = "Future Land Use,Zoning,City Owned Property";
groupName[5] = "Political Boundaries";
groupLayers[5] = "Council Districts";
groupName[6] = "Public Works";
groupLayers[6] = "Drainage";
groupName[7] = "Roads and Water";
groupLayers[7] = "Streets,Main Roads,Highways and Water,Crimepts";

/**************************************
* Options parameters - aimsOptions.js
**************************************/

// allowing user to set options
var allowOptions=false;

/**************************************
* ClassRender parameters - aimsClassRender.js
**************************************/

// parameters for custom class rendering... overrides default renderer
var ClassRenderLayer = new Array();  // layers to have custom renderers
var ClassRenderString = new Array(); // initial custom renderer XML string for the layers
ClassRenderLayer[0] = "Cities";
ClassRenderString[0] = "";
/*
ClassRenderString[0] ='<VALUEMAPRENDERER lookupfield="population">\n<RANGE LOWER="0" UPPER="1000000">\n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="4" />\n</RANGE>';
ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="1000000" UPPER="2500000">\n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="6" />\n</RANGE>';
ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="2500000" UPPER="5000000">\n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="9" />\n</RANGE>';
ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="5000000" UPPER="10000000">\n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="12" />\n</RANGE>';
ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="10000000" UPPER="30000000">\n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="16" />\n</RANGE>\n</VALUEMAPRENDERER>';
*/

// Hannah added
var numStatDecimals = 4;

/**************************************
* Geocode parameters - aimsGeocode.js
**************************************/

// maximum geocode candidates returned - default = 20
var maxGeocodeCandidates=20;
// minimal acceptable geocode score for candidate
var minGeocodeScore=50;
var geocodePointColor = "255,0,0";
var geocodePointSize = "15";
var geocodeLabelSize = "12";
var geocodePointType = "star";
var currentGeocodePointIndex = 0;

// custom functions needed for Reverse Geocoding - RouteServer extension required
var useReverseGeocode = false;
var useRoute=false;

// the starting point. . . it all starts here on loading
function checkParams() {
	appDir = getPath(document.location.pathname);
	// global for overview map. . . change if not on same frame as Map
	ovImageVar = document.ovImage;
	debugOn = 0;
	if (parent.TextFrame==null) {
		useTextFrame = false;
		useExternalWindow=true;
	}
	if (!hasLayer("measureBox")) useMeasure=false;
	if ((!useMeasure) && (!drawScaleBar)) useSetUnits=false;
	if (ovImageVar==null) hasOVMap = false;
	// if (parent.TOCFrame==null) hasTOC = false;
	if (parent.ModeFrame==null) useModeFrame = false;
	
	
	if (isIE)	{
		if (hasLayer("theTop")) document.all.theTop.style.cursor = "crosshair";
		if (hasOVMap) ovImageVar.style.cursor = "hand";
	}
		
	if (hasOVMap) {
		// size of ov map image
		i2Width = parseInt(ovImageVar.width);
		i2Height = parseInt(ovImageVar.height);
		forceNewOVMap = false;
		// position of ov map
		//ovMapLeft = iWidth - (i2Width + 6);
		//ovMapTop = 2;
	}
	if (webParams!="") {
		//alert(webParams);
		getCommandLineParams(webParams);
	}
	// if starting extents zero'd then flag to get start from mapservice
	if ((startLeft!=0) && (startRight!=0)) getStartingExtent=false;
	// if limit extents zero'd then flag to get max from mapservice
	if ((limitLeft!=0) && (limitRight!=0)) {
		getLimitExtent=false;
		enforceFullExtent=true;
	}
	if (ovBoxColor=="") ovBoxColor = "255,0,0";
	//ovBoxColor = convertHexToDec(ovBoxColor);
	checkCoords();
	if (aimsNavigationPresent) {
		// Set up event capture for mouse movement
		if (isNav4) {
			document.captureEvents(Event.MOUSEMOVE);
			document.captureEvents(Event.MOUSEDOWN);
			document.captureEvents(Event.MOUSEUP);
			//document.captureEvents(Event.MOUSEOUT);
		}
		document.onmousemove = getMouse;
		//document.onmousedown = chkMouseDown;
		document.onmousedown = mapTool;
		document.onmouseup = chkMouseUp;
		//document.onmouseout = chkMouseOut;
	} else {
		usePan=false;
		usePanNorth=false;
		usePanWest=false;
		usePanEast=false;
		usePanSouth=false;
		useMeasure=false;
		useZoomIn=false;
		useZoomOut=false
		//useFullExtent=false;
		useZoomActive=false;
		//useZoomLast=false;	
	}
	
	if (!aimsBufferPresent) {
		useBuffer=false;
	}
	if (!aimsQueryPresent) {
		aimsBufferPresent=false;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
	}
	if (!aimsSelectPresent) {
		aimsQueryPresent=false;
		aimsBufferPresent=false;
 		useSelect=false;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
		useClearSelect=false;
	}
	if (!aimsIdentifyPresent) {
		aimsSelectPresent=false;
		aimsQueryPresent=false;
		aimsBufferPresent=false;
		canQuery=false;
		useIdentify=false;
 		useSelect=false;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
		useHyperLink=false;
		useHyperLinkAny=false;
		useIdentifyAll=false;
	}
	if (!aimsGeocodePresent) {
		useGeocode=false;
		useReverseGeocode=false;
	}
	if (!aimsPrintPresent) {
		usePrint=false;
	}
	if (!aimsOptionsPresent) {
		allowOptions=false;
	}
	if ((aimsXMLPresent) && (aimsMapPresent)) {
		if (aimsClickPresent) clickFunction("zoomin");
		if (parent.ToolFrame!=null) parent.ToolFrame.document.location="toolbar.htm";
		startMap();
	} else {
		alert(msgList[0]);
	}
}


