// ArcIMSparam.js
// javascript file with parameters specific to calling page

//***************************************************************************
//*         parameters File for HTML Template           *
//***************************************************************************
// get machine name
var hostName = document.location.host;
var catURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog";
var serverURL  = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=";
var formFilePath = "/Website/bikes2b"

//*********************************************************************
//*         parameters set by Designer                               *
//*********************************************************************

var imsURL = serverURL + 'bikes2b';
var imsOVURL =  serverURL + 'bikes2b';
var imsQueryURL = '';
var imsGeocodeURL = '';

/**********************************************
*  Modification parameters
***********************************************/

var highlightedOne = "";
var queryZoom=false;
var doURLencode = false;
// variables for setting component colors

var mapBackColor = '255,255,255';
var ovBoxColor = '#000000';
var ovBoxSize = 3;
var zoomBoxColor = '#000000';

// variables for using individual components

// var hasOVMap = true;
var hasOVMap = true;
var hasTOC = true;
//var useModeFrame = true;

//initial map extent
var startLeft = 84105.0;
var startRight = 962146.0;
var startTop = 6240580.0;
var startBottom = 5614014.0;
var startBottom = 5690000.0;

//maximum map extent
var limitLeft = 84105.0;
var limitRight = 962146.0;
var limitTop = 6240580.0;
var limitBottom = 5614014.0;
var limitBottom = 5690000.0;

//*****************************
// see LayerInfoArray[] for html entries
                                  var showCustomInfo=false;
//*****************************
var useAdditionalThemes=true;

var MapUnits = "Meters";
var ScaleBarUnits = "Meters";

var MapsizeVar = 0;

// End of Designer set parameters

var useHyperLink=false;
var hasToolBarOnLayer=false;
// file locations for servlet connector form creation
var headerFilePath = formFilePath + "/header.htm";
var footerFilePath = formFilePath + "/footer.htm";

/**************************************
* 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 = 0.85;
//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 = 0.25;
var selectMargin =.30;
// margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
var selectPointMargin = 0.015

// show the scale factor
var showScalePercent=false;
// display coords in status line
var showXYs=true;

//variables for MapDrawing
    // North Arrow
var drawNorthArrow = false;
var NorthArrowType = "3";
var NorthArrowSize = "15";
var NorthArrowCoords = "390 20";
var NorthArrowAngle = "0";
    // Scale Bar
//var drawScaleBar = false;
var drawScaleBar = true;
    // MapUnits=DEGREES,FEET,METERS
    // can MapUnits be changed by user?
var setMapUnits=true;
    // 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 = "14";
var ScaleBarWidth = "7";
var ScaleBarPrecision = 2;
var keepval;
var checkmeasuretool = false ;
var numDecimals = ScaleBarPrecision;

var ovImageVar;
var ovBorderWidth = 2;
var ovExtentBoxSize = 2;

// setup test for Nav 4.0
var isNav4 = false;
var isNav5up = false;
var isNav = false;
var isIE = false;
if (navigator.appName == "Netscape") {
    isNav =true;
   // if (navigator.appVersion.search("5.0") == -1)
    if (parseFloat(navigator.appVersion)<5)
        isNav4 = true;
    else isNav5up = true;
    }
else 
    isIE = true;
        
/**************************************
* 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;
var ActiveLayerIndex=28;

// variables for using individual components
var useTextFrame=false;                              
// use external window for dialogs
var useExternalWindow=false;

// colors for tables 
var textFrameBackColor="white";
var tableBackColor="white";
var textFrameTextColor="Black";
var textFrameLinkColor="Blue";
var textFrameFormColor="Gray";

// LayerList visible at service load
var showTOC=true;
// 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
// Jason set this to test the display
// var listAllLayers = false;
var listAllLayers = 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="4";


/**************************************
* 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,150";
// color of highlighted feature in decimal RGB format
//var highlightColor="255,0,0";
var highlightColor="255,255,0";
// level of transparency of selected and highlighted color
var transparentLevel = "0.5";
    // zoom to selected feature if only one is returned?
var zoomToSingleSelect = false;

// draw the Scale ie 1:???? see code in aimsxml.js
var drawScaleOneIsTo = false;
// 3846 is pixelsPerInch - 97.6925 * 39.37 = pixelsPerMeter 
var OneIsToFactor = 3846;
var OneIsToString = "";
var ScaleOneIsToCoords = "40 5";
// next 2 dynamically updated in aimsXML.js
var OneIsToLeft = startLeft;
var OneIsToRight = startRight;
var printscale=true ;

// layer groups to be shown as one layer on the legend
// need to edit toc.htm at function updatelayers() if a new imagegroup is added

var imagegroup1 = new Array();
var imagegroup1name = "Colour_Background";
imagegroup1[0] = "Rivers_C"  
imagegroup1[1] = "Lakes_C"  
imagegroup1[2] = "Rways_C"  
imagegroup1[3] = "VCSD_1:_10M_C"  
imagegroup1[4] = "VCSD_1:_2M_C"  
imagegroup1[5] = "VCSD_1:_1M_C"  
imagegroup1[6] = "VCSD_1:_250K_C"  
imagegroup1[7] = "VCSD_1:_100K_C"  
imagegroup1[8] = "VCSD_1:25K_C"  
imagegroup1[9] = "Mel_1:60K_C"  
imagegroup1[10] = "Mel_1:25K_C"  
imagegroup1[11] = "Mel_1:10K_C"  
imagegroup1[12] = "Mel_1:5K_C"  
imagegroup1[13] = "Suburbs_/_Localities_Display_C"  
imagegroup1[14] = "Local_Govt_Areas_Display_C"  
imagegroup1[15] = "Roads_Display_C"  
imagegroup1[16] = "VR_Ed5_Directory_Grids_Search"  
imagegroup1[17] = "Melway29_Grids_Search"  
imagegroup1[18] = "Suburbs_/_Localities_Search"  
imagegroup1[19] = "Local_Govt_Areas_Search"  
imagegroup1[20] = "Roads_Search"  

var imagegroup2 = new Array();
var imagegroup2name = "Grey_Background";
imagegroup2[0] = "Rivers_G"
imagegroup2[1] = "Lakes_G"
imagegroup2[2] = "Rways_G"
imagegroup2[3] = "VCSD_1:_10M_G"
imagegroup2[4] = "VCSD_1:_2M_G"
imagegroup2[5] = "VCSD_1:_1M_G"
imagegroup2[6] = "VCSD_1:_250K_G"
imagegroup2[7] = "VCSD_1:_100K_G"
imagegroup2[8] = "VCSD_1:25K_G"
imagegroup2[9] = "Mel_1:60K_G"
imagegroup2[10] = "Mel_1:25K_G"
imagegroup2[11] = "Mel_1:10K_G"
imagegroup2[12] = "Mel_1:5K_G"
imagegroup2[13] = "Suburbs_/_Localities_Display_G"
imagegroup2[14] = "Local_Govt_Areas_Display_G"
imagegroup2[15] = "Roads_Display_G"
imagegroup2[16] = "VR_Ed5_Directory_Grids_Search"
imagegroup2[17] = "Melway29_Grids_Search"
imagegroup2[18] = "Suburbs_/_Localities_Search"
imagegroup2[19] = "Local_Govt_Areas_Search"
imagegroup2[20] = "Roads_Search"

// images for legend
var legendimages = new Array();
legendimages[00] = "bikes"
legendimages[26] = "legend_rds"
legendimages[33] = "legend_rds_G"

// To use another layer for identifies
// array number is "DATASET ORDER NUMBER"[32] -  value is new dataset order number"25"
// need 2 entries - 2nd one to switch back to correct number

// layers which must have EXACT (not LIKE) matches when searching
var LayerExactMatchesList  = new Array();
LayerExactMatchesList[0]="Melway Grids";
LayerExactMatchesList[1]="VR Ed5 Directory Grids";

// fields to be returned in identify/selection/query request. . . #ALL#=all fields
//var selectFields= "#ALL#";
//ORIGINAL EXAMPLE - JASON - var selectFields= "#ID# #SHAPE#";
// var selectFields= "RD_NAME RD_TYPE RD_NUM";
// 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
var selFieldList = new Array();
// sample set for world - if not #ALL#, id and shape fields required. Separate with a space
 
selFieldList[00]="TYPE  STATUS";
selFieldList[01]="NMTYPLOC1";
selFieldList[02]="DISP_NAME";
selFieldList[03]="DISP_NAME";  
selFieldList[04]="MAPREF"; 
selFieldList[05]="MAPREF";
//selFieldList[06]="RD_NAME  RD_TYPE  CLASSN  FLAG";
selFieldList[07]="SH_NAME  FLAG";
selFieldList[08]="LOC_NAME";
selFieldList[42]="LOC_NAME  ABB_NAME  MELMAPREF  VCSDMAPREF";
selFieldList[43]="NMTYPLOC1";
selFieldList[44]="NMTYPLOC1";
selFieldList[45]="NMTYPLOC1";
selFieldList[46]="NMTYPLOC1";
selFieldList[47]="NMTYPLOC1";
selFieldList[48]="NMTYPLOC1";
selFieldList[49]="NMTYPLOC1";
selFieldList[50]="NMTYPLOC1";
selFieldList[51]="NMTYPLOC1";
selFieldList[52]="NMTYPLOC1";
selFieldList[53]="NMTYPLOC1";
selFieldList[54]="NMTYPLOC1";
selFieldList[55]="NMTYPLOC1";
selFieldList[56]="NMTYPLOC1";
selFieldList[57]="NMTYPLOC1";
selFieldList[58]="NMTYPLOC1";
selFieldList[59]="NMTYPLOC1";
selFieldList[60]="NMTYPLOC1";
selFieldList[61]="NMTYPLOC1";
selFieldList[62]="NMTYPLOC1";
selFieldList[63]="NMTYPLOC1";
selFieldList[64]="NMTYPLOC1";
selFieldList[65]="NMTYPLOC1";
selFieldList[66]="NMTYPLOC1";
selFieldList[67]="NMTYPLOC1";
selFieldList[68]="NMTYPLOC1";
selFieldList[69]="NMTYPLOC1";
selFieldList[104]="#ID#";

// 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[02]="ABB_NAME:LGA Name";
fieldAliasList[03]="LOC_NAME:Locality";
fieldAliasList[04]="MAPREF:Map Reference"; 
fieldAliasList[05]="MAPREF:Map Reference"; 
fieldAliasList[06]="NMTYPLOC1:Road Name and Locality|NMTYPLOC2:Common Name and Locality|CLASSN_DES:Classification";
fieldAliasList[07]="LK_NAME:Lake Name";
fieldAliasList[08]="NAME:River Name";

//*********************************************************************************

// 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=125;

// number of data samples retrieved for query form
var numberDataSamples = 50;

/**************************************
* 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] = "";

// 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 (ovImageVar==null) hasOVMap = false;
    if (parent.TOCFrame==null) hasTOC = false;
    
    
    if (!document.layers)   {
        if (hasLayer("theTop")) document.all.theTop.style.cursor = "crosshair";
        if (hasOVMap) ovImageVar.style.cursor = "hand";
    }
        
    if (hasOVMap) {
        // size of ov map image
        i2Width = ovImageVar.width;
        i2Height = ovImageVar.height;
    }
    if (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";
    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 = mapTool;
        document.onmouseup = chkMouseUp;
    } else {
        usePan=false;
        usePanNorth=false;
        usePanWest=false;
        usePanEast=false;
        usePanSouth=false;
        useZoomIn=false;
        useZoomOut=false
        useZoomActive=false;
    }
    
    if (!aimsQueryPresent) {
        aimsBufferPresent=false;
        useQuery=false;
        useFind=false;
        useBuffer=false;
    }
    if (!aimsSelectPresent) {
        aimsQueryPresent=false;
        aimsBufferPresent=false;
        useSelect=false;
        useQuery=false;
        useFind=false;
        useBuffer=false;
        useClearSelect=false;
    }
    if (!aimsIdentifyPresent) {
        aimsSelectPresent=false;
        aimsQueryPresent=false;
        aimsBufferPresent=false;
        canQuery=false;
        useIdentify=false;
        useSelect=false;
        useQuery=false;
        useFind=false;
        useBuffer=false;
        useHyperLink=true;
    }
    if (!aimsGeocodePresent) {
        useGeocode=false;
        useReverseGeocode=false;
    }
    if (!aimsPrintPresent) {
        usePrint=false;
    }
    
    if ((aimsXMLPresent) && (aimsMapPresent)) {
        if (aimsClickPresent) clickFunction("zoomin");
        if (parent.ToolFrame!=null) parent.ToolFrame.document.location="toolbar.htm";
        startMap();
   } else {
        alert("Unable to load one of the following Javascript Libraries:\naimsCommon.js\naimsXML.js\naimsMap.js");
    }
}
