// ArcIMSparam.js
// javascript file with parameters specific to calling page

//***************************************************************************
//*			parameters File for HTML Template		    *
//***************************************************************************
// get machine name
var hostName = document.location.host;
// make URL for getting mapservice catalog
var catURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog";
// make prefix for URL
var serverURL  = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=";
var theIDURL = "";
//*********************************************************************
//*			parameters set by Designer			                     *
//*********************************************************************

var imsURL = 'http://' + hostName + '/servlet/com.esri.esrimap.Esrimap?ServiceName=ecozone';
var imsOVURL = 'http://' + hostName + '/servlet/com.esri.esrimap.Esrimap?ServiceName=ecoindex';

//Development remote

//var imsURL = 'http://drevil.sannet.gov:20015/servlet/com.esri.esrimap.Esrimap?ServiceName=ecozone';
//var imsOVURL = 'http://drevil.sannet.gov:20015/servlet/com.esri.esrimap.Esrimap?ServiceName=ecoindex';

//Staging
//var imsURL = 'http://minime.sannet.gov:20015/servlet/com.esri.esrimap.Esrimap?ServiceName=ecozone';
//var imsOVURL = 'http://minime.sannet.gov:20015/servlet/com.esri.esrimap.Esrimap?ServiceName=ecoindex';

//Production
//var imsURL = "http://interapp1.sannet.gov/servlet/com.esri.esrimap.Esrimap?ServiceName=ecozone";
//var imsOVURL = "http://interapp1.sannet.gov/servlet/com.esri.esrimap.Esrimap?ServiceName=ecoindex";

var imsQueryURL = '';
var imsGeocodeURL = '';

// variables for setting component colors

var mapBackColor = '255,255,240';
var ovBoxColor = '#ff0000';
var ovBoxSize = 3;
var zoomBoxColor = '#ff0000';

// variables for using individual components

var hasOVMap = true;
var hasTOC = false;
var useModeFrame = true;


var startLeft = 6204712.0;
var startRight = 6454231.27042743;
var startTop = 1988345.47025408;
var startBottom = 1770891.375;
//maximum map extent
var limitLeft = 6204712.0;
var limitRight = 6454231.0;
var limitTop = 1988345.75;
var limitBottom = 1770891.375;
var showId = false;


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=true;
var useIdentify=false;
var useMeasure=false;
var useSetUnits=false;
var useSelect=false;
var useQuery=true;
var useFind=false;
var useGeocode=false;
var useStoredQuery=false;
var useClearSelect=false;
var usePrint=true;
var useGeoNetwork=false;
var useBuffer=false;
var useExtract=false;

var MapUnits = "Feet";
var ScaleBarUnits = "Miles";



// End of Designer set parameters


var useHyperLink=false;
var useHyperLinkAny=false;
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 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 = 2

// 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 = 8;
// margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
var selectPointMargin = 0.5;

// 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;

//variables for MapDrawing
	// North Arrow
var drawNorthArrow = true;
var NorthArrowType = "4";
var NorthArrowSize = "9";
var NorthArrowCoords = "15 30";
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 = "TRUE";
var ScaleBarBackColor = "0,0,0";
var ScaleBarFontColor = "255,255,255";
var ScaleBarColor = "192,192,192";
var ScaleBarFont = "Arial";
var ScaleBarStyle = "Bold";
var ScaleBarRound = "1";
var ScaleBarSize = "10";
var ScaleBarWidth = "4";
var ScaleBarPrecision = 2;
var numDecimals = ScaleBarPrecision;
	// Copyright blurb
var drawCopyright = false;
var CopyrightFont = "Arial";
var CopyrightStyle = "Bold";
var CopyrightSize = "9";
var CopyrightCoords = "0 4";
var CopyrightColor = "255,255,255";
var CopyrightBackground = "true";
var CopyrightBGColor = "125,125,125";
var CopyrightGlow = "false";
var CopyrightGlowColor = "255,255,255";
var CopyrightText = "Data Copy Right:City of San Diego/SanGIS";
	// 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) {
		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=99;

// variables for using individual components
var useTextFrame=true;
// use external window for dialogs
var useExternalWindow=false;

// colors for tables 
var textFrameBackColor="Silver";
var tableBackColor="White";
var textFrameTextColor="Black";
var textFrameLinkColor="Blue";
var textFrameFormColor="Gray";

// 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 = false;
// will the LayerList show all layers, not just those available at current scale
var listAllLayers = false;

// 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=false;
// layers that will be listed in the LayerList or Legend
	// Note: This does not affect map display
var noListLayer = new Array();
// noListLayer[0] = false;
// noListLayer[1] = false;
// noListLayer[2] = false;
// noListLayer[3] = true;	// this one will not be listed
// noListLayer[4] = false;

	// 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="6";


/**************************************
* Identify/Select/Query/Buffer parameters
**************************************/

// search tolerance in pixels around click
var pixelTolerance=2;
// 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.5";
	// zoom to selected feature if only one is returned?
var zoomToSingleSelect = true;

// 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=false;
// 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]="SANGIS.ADDRAPN.APN SANGIS.ADDRAPN.ADDRNMBR SANGIS.ADDRAPN.ADDRNAME SANGIS.ADDRAPN.ADDRSFX SANGIS.ADDRAPN.ADDRJUR SANGIS.ADDRAPN.ADDRZIP";
selFieldList[1]="";
selFieldList[2]="";
selFieldList[3]="";
selFieldList[4]="";
//selFieldList[4]="SANGIS.PARCEL.APN SANGIS.PARCEL.ADDRNO SANGIS.PARCEL.ROADPDIR SANGIS.PARCEL.ROADNAME SANGIS.PARCEL5ROADSFX SANGIS.PARCEL.JURIS SANGIS.PARCEL.ZIP";
selFieldList[5]="SANGIS.BUS_TARGETED_EMPLOYMENT_AREA.TEA"; //TEA
selFieldList[6]="SANGIS.BUS_ENTERPRISE_ZONES.NAME"; //Enterprise Zone
selFieldList[7]="SANGIS.DIST_REDEVELOPMENT.DISTRICT"; //redevelopment area
// mehmetselFieldList[7]="DISTRICT"; //redevelopment area
selFieldList[8]="SANGIS.BUS_IMPROVEMENT_DISTRICTS.NAME";  //BID
selFieldList[9]="SANGIS.BUS_RENEWAL_COMMUNITY.NAME";  //renewal community
selFieldList[10]="SANGIS.BUS_RECYCLING_MARKET_DEV_ZONES.NAME"; //recycle market zone
selFieldList[11]="SANGIS.BUS_FOREIGN_TRADE_ZONES.FZONE"; //Foreign trade zone
selFieldList[12]="SANGIS.BUS_PRPRTY_BASED_IMPRVMNT_DIST.NAME"; //PBID
//selFieldList[13]="SANGIS.BUS_SD_REVLOAN.CNT_DISSOL";
//selFieldList[14]="SANGIS.BUS_METRO_REVLOAN.NAME";
selFieldList[13]="#ID# #SHAPE# DISSOLVE";
selFieldList[14]="#ID# #SHAPE# NAME";
selFieldList[15]="SANGIS.DIST_COUNCIL.DISTRICT";
selFieldList[16]="SANGIS.CMTY_PLAN_SD.CPNAME";
selFieldList[17]="SANGIS.LANDUSE_SG.LUCATEGORY";
//var legendVisible=false;
// 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]="SANGIS.ADDRAPN.APN:APN|SANGIS.ADDRAPN.ADDRNMBR:Address|SANGIS.ADDRAPN.ADDRNAME:|SANGIS.ADDRAPN.ADDRSFX:|SANGIS.ADDRAPN.ADDRJUR:|SANGIS.ADDRAPN.ADDRZIP:";
fieldAliasList[1]="";
fieldAliasList[2]="";
fieldAliasList[3]="";
fieldAliasList[4]="";
//fieldAliasList[4]="SANGIS.PARCEL.APN:APN|SANGIS.PARCEL.ADDRNO:Address|SANGIS.PARCEL.ROADPDIR:|SANGIS.PARCEL.ROADNAME:|SANGIS.PARCEL.ROADSFX:|SANGIS.PARCEL.JURIS:|SANGIS.PARCEL.ZIP: ";
fieldAliasList[5]="SANGIS.BUS_TARGETED_EMPLOYMENT_AREA.TEA: Targeted Employment Area(State)";
fieldAliasList[6]="SANGIS.BUS_ENTERPRISE_ZONES.NAME:Enterprise Zone(State)";
fieldAliasList[7]="SANGIS.DIST_REDEVELOPMENT.DISTRICT:Redevelopment Areas(State)";
// mehmet fieldAliasList[7]="DISTRICT:Redevelopment Areas(State)";
fieldAliasList[8]="SANGIS.BUS_IMPROVEMENT_DISTRICTS.NAME:Business Improvement Districts";
fieldAliasList[9]="SANGIS.BUS_RENEWAL_COMMUNITY.NAME:Renewal Communities(Federal)";
fieldAliasList[10]="SANGIS.BUS_RECYCLING_MARKET_DEV_ZONES.NAME:Recycling Market Development Zone(State)";
fieldAliasList[11]="SANGIS.BUS_FOREIGN_TRADE_ZONES.FZONE:Foreign Trade Zone(Federal)";
fieldAliasList[12]="SANGIS.BUS_PRPRTY_BASED_IMPRVMNT_DIST.NAME:Property Based Improvment District(State)";
//CBP 12/9/04 TEMP SHAPEFILE REPLACEMENT
//fieldAliasList[13]="SANGIS.BUS_SD_REVLOAN.CNT_DISSOL:San Diego Regional Revolving Loan Fund(Federal)";
//fieldAliasList[14]="SANGIS.BUS_METRO_REVLOAN.NAME:Metro Revolving Loan Fund(Federal)";
fieldAliasList[13]="DISSOLVE:San Diego Regional Revolving Loan Fund(Federal)";
fieldAliasList[14]="NAME:Metro Revolving Loan Fund(Federal)";
fieldAliasList[15]="SANGIS.DIST_COUNCIL.DISTRICT:Council District";
fieldAliasList[16]="SANGIS.CMTY_PLAN_SD.CPNAME:Community Planning Area";
fieldAliasList[17]="SANGIS.LANDUSE_SG.LUCATEGORY:Existing Landuse";

// 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

hyperLinkLayers[0] = "Redevelopment Area(State)";
hyperLinkFields[0] = "http://www.sandiego.gov/redevelopment-agency/";

hyperLinkLayers[1] = "Recycling Zone(State)";
hyperLinkFields[1] = "http://www.sandiego.gov/environmental-services/recycling/market.shtml";

hyperLinkLayers[2] = "Foreign Trade Zone(Federal)";
hyperLinkFields[2] = "http://www.sandiego.gov/economic-development/business-assistance/incentive/foreign.shtml";

hyperLinkLayers[3] = "Property Based Improvement District(State)";
hyperLinkFields[3] = "http://www.dtsd.org/";

hyperLinkLayers[4] = "Enterprise Zone(State)";
hyperLinkFields[4] = "http://www.sandiego.gov/economic-development/business-assistance/incentive/enterprise.shtml";

hyperLinkLayers[5] = "Business Improvement Districts";
hyperLinkFields[5] = "http://www.sandiego.gov/economic-development/business-assistance/small-business/bids.shtml";

hyperLinkLayers[6] = "San Diego Regional Revolving Loan Fund(Federal)";
hyperLinkFields[6] = "http://www.sandiego.gov/economic-development/business-assistance/finance/sdrrlf.shtml";

hyperLinkLayers[7] = "Metro Revolving Loan Fund(Federal)";
hyperLinkFields[7] = "http://www.sandiego.gov/economic-development/business-assistance/finance/";

// 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=10;
// 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=180;
var legHeight=160;
var legFont="Arial";
var legTitle="Legend";

/**************************************
* Options parameters - aimsOptions.js
**************************************/

// allowing user to set options
var allowOptions=false;


// 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] = "";


/**************************************
* 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";
// custom functions needed for Reverse Geocoding
var useReverseGeocode = 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;
		
	}
	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]);
	}
}


