// 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 + "/geoservlet/com.esri.esrimap.Esrimap?ServiceName=catalog";
//var catURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog";
// make prefix for URL
var serverURL  = "http://" + hostName + "/geoservlet/com.esri.esrimap.Esrimap?ServiceName=";
//var serverURL  = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=";


//*********************************************************************
//*                     parameters set by Designer                                           *
//*********************************************************************
var imsQueryURL = '';
var imsGeocodeURL = '';

// variables for setting component colors

var mapBackColor = '255,255,255';
var ovBoxColor = '#ff0000';
var ovBoxSize = 3;
var zoomBoxColor = '#ff0000';

// variables for using individual components

var hasOVMap = true;
var hasTOC = true;
var useModeFrame = true;

//initial map extent
var startLeft = 264489.93;
var startRight = 312442.384;
var startTop = 5072161.736;
var startBottom = 5031642.687;
//maximum map extent
var limitLeft = 254664.00;
var limitRight = 320577.000;
var limitTop = 5060073.000;
var limitBottom = 5030021.000;

var usePan=true;
var usePanNorth=true;
var usePanWest=true;
var usePanEast=true;
var usePanSouth=true;
var useZoomIn=true;
var useZoomOut=true;
var useZoomSpecial=true;
var useFullExtent=true;
var useZoomActive=true;
var useZoomLast=true;
var useIdentify=true;
var useMeasure=true;
var useSetUnits=true;
var useSelect=true;
var useQuery=true;
var useFind=true;
var useGeocode=true;
var useStoredQuery=false;
var useClearSelect=true;
var usePrint=true;
var useGeoNetwork=false;
var useBuffer=true;
var useExtract=false;

var ChaineLayerID="";
var ThemePresent=false;
var ChargementTermine=false;
var NomTheme="";
var ReviensDuneFlatTable=false;

//variable qui contient l'adresse cherchée dans le geocoding (pour fin de validation)
var AdresseCherchee ="";
var AdresseTrouvée ="";

var MapUnits = "Meters";
var ScaleBarUnits = "Meters";

// 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 = 25/100;
// margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
var selectPointMargin = 25/1000;
//var selectPointMargin = 1;

// 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 = "15";
var NorthArrowCoords = "20 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 = "14";
var ScaleBarWidth = "7";
var ScaleBarPrecision = 2;
var numDecimals = ScaleBarPrecision;
        // Copyright blurb
var drawCopyright = true;
var CopyrightFont = "Arial";
var CopyrightStyle = "Bold";
var CopyrightSize = "8";
var CopyrightCoords = "4 4";
var CopyrightColor = "0,0,0";
var CopyrightBackground = "False";
var CopyrightBGColor = "255,255,255";
var CopyrightGlow = "True";
var CopyrightGlowColor = "255,255,255";
var CopyrightText = " ";
        // 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;
if (isNav) {
        
        if (parseFloat(navigator.appVersion)<5) {
                isNav4=true;
        } 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;
        }
}       
                
/**************************************
* Extended Map parameters
**************************************/

// variables for ovmap offset
var ovHspc = 0;
var ovVspc = 0;

// color for Main Map zoombox in html hex RGB format

// index of initial active layer. . . if more than or equal to layer count top layer used
var ActiveLayerIndex=53;

// variables for using individual components
var useTextFrame=true;
// use external window for dialogs
var useExternalWindow=false;

// colors for tables 
var textFrameBackColor="#1A599C";
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
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();

        // 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=6;
// color of selected features in decimal RGB format
var selectColor="251,242,5";
// color of highlighted feature in decimal RGB format
var highlightColor="251,242,5";
// level of transparency of selected and highlighted color
var transparentLevel = "0.3";
        // zoom to selected feature if only one is returned?
var zoomToSingleSelect = false;

// fields to be returned in identify/selection/query request. . . #ALL#=all fields
var selectFields= "#ALL#";
// 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();

// 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;

//Variable pour faire apparaître le frame de polygone
var usePolygone=false;

// Hide the ID field display? The ID Field must be included in field list, but we don't have to show it.
var hideIDFieldData = false;
// Hide the shape field display? The Shape Field must be included in field list, but we don't have to show it.
var hideShapeFieldData = false;


// 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] = "Image";
hyperLinkLayers[1] = "Comptage session 2";
hyperLinkFields[0] = "HOT";
hyperLinkFields[1] = "GEO.COMPTAGE_SESSION.LIEN_FICHIER_EXCEL";
hyperLinkPrefix[0] = "/gisdata/world/images/";
hyperLinkPrefix[1] = "";
hyperLinkSuffix[0] = ".jpg";
hyperLinkSuffix[1] = "";

// 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=25;
// 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";

/**************************************
* 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] = "";

/**************************************
* Geocode parameters - aimsGeocode.js
**************************************/

// maximum geocode candidates returned - default = 20
var maxGeocodeCandidates=30;
// minimal acceptable geocode score for candidate
var minGeocodeScore=20;
var geocodePointColor = "255,0,0";
var geocodePointSize = "30";
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.TOC2Frame.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
        }
        if (webParams!="") {
        	//alert("webParams:   " + webParams);
        	webParams = webParams.replace(/QUALITE_EAU/gi, "Layers=011110111111000001001000000010101010101001100001011101010100110");
                               
                
                //Pour lien maximo !
		//http://portail1/website/geomatique/viewer.htm?ActiveLayer=Egout_lien&Query=No_lien=1200&QueryZoom=Yes
		//Si on trouve EGN dans le lien on met la couche active Egout_Noeud
		//Si on trouve EGL dans le lien on met la couche active Egout_Lien
		//webParams=webParams.toUpperCase(); //A mettre en commentaire pour tester un autre service
		
		//Remplacement des QUERY=EGN et QUERY=EGL par des Query=No_noeud= ou  Query=No_lien= seulement
		webParams = webParams.replace(/QUERY=EGN/gi, "Service=Lien_Maximo_ie&Query=No_noeud=" + "'EGN");
        	webParams = webParams.replace(/QUERY=EGL/gi, "Service=Lien_Maximo_ie&Query=No_lien=" + "'EGL");
		
		var pos = webParams.indexOf("EGN"); 
		if (pos!=-1) {
			webParams = webParams + "'";
			ActiveLayerIndex=18;
			webParams=webParams+"&QueryZoom=Yes";
			tempUrl="Maximo";
		}
		var pos = webParams.indexOf("EGL");
		if (pos!=-1) {
			webParams = webParams + "'";
			ActiveLayerIndex=38;
			webParams=webParams+"&QueryZoom=Yes";
			tempUrl="Maximo";
		} 
		pos = webParams.indexOf("=ADR");
		//alert("Ds webparams");
		if (pos!=-1) {
			ActiveLayerIndex=86;
			webParams=webParams+"&QueryZoom=Yes";
			tempUrl="Maximo";
		} 
		webParams = webParams.replace(/QUERY=ADR/gi, "Service=Lien_Maximo&Query=Id_civ=");
		//Query=EGL251&Layers=000000000111111111111101111111111111101111010100000011000001111111100000000
        		
                	//Fonction dans aimsMap
                //alert("webParams:   " + 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";
        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.onmousemove = getMouse;
                document.onmousedown = mapTool;
                document.onmouseup = chkMouseUp;
        } else {
                usePan=false;
                usePanNorth=false;
                usePanWest=false;
                usePanEast=false;
                usePanSouth=false;
                useMeasure=false;
                useZoomIn=false;
                useZoomSpecial=false;
                useZoomOut=false
                useZoomActive=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]);
        }
}

