var charSet = "ISO-8859-1";

var hostName = document.location.host;
//hostName = 'wmsi003549';

// make URL for getting mapservice catalog
var catURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=catalog";
//catURL = 'proxy?url='+catURL;
// make prefix for URL
var serverURL  = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=";
//serverURL = 'proxy?url='+serverURL;

var imsURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=espoo";
//imsURL = 'proxy?url='+imsURL;
//imsURL = 'debug?url='+imsURL;

var imsOVURL = imsURL;
if(NaytaOverView == true) {
	imsOVURL = "http://" + hostName + "/servlet/com.esri.esrimap.Esrimap?ServiceName=espoo";
  //imsOVURL = 'proxy?url='+imsOVURL;
}
var imsQueryURL = '';
var imsGeocodeURL = '';

var newUser = true;

// variables for setting component colors

var mapBackColor = '255,255,255';
var ovBoxColor = '#ff0000';
var ovBoxSize = 2;
var zoomBoxColor = '#ff0000';

// variables for using individual components
if(NaytaOverView == true)
  var hasOVMap = true;
else
  var hasOVMap = false;

var hasTOC = true;
var useModeFrame = true;

var usePan=true;
var usePanNorth=true;
var usePanWest=true;
var usePanEast=true;
var usePanSouth=true;
var useZoomIn=true;
var useZoomOut=true;
var useFullExtent=true;
var useZoomActive=true;
var useZoomLast=true;
var useIdentify=true;
var useMeasure=true;
var useSetUnits=true;
var useSelect=false;
var useQuery=false;
var useFind=false;
var useGeocode=true;
var useStoredQuery=false;
var useClearSelect=true;
var usePrint=true;
var usePositionLink=true;
var useBuffer=false;
var useExtract=false;
var useClear=true;
var useSelectArea=true;
var useBufferShape=true;
var useBufferServices=true;
var MapUnits = "Meters";
var ScaleBarUnits = "Meters";
var useFeedBack=true;
var useApproachMap=false;


var useHyperLink=false;
//var useBufferShape=false; // not implemented
var hasToolBarOnLayer=false;

// Muuttujat kartan piirtämiseen ja ulkoasuun//

// North Arrow
var drawNorthArrow = false;
var NorthArrowType = "4";
var NorthArrowSize = "15";
var NorthArrowCoords = "20 30";
var NorthArrowAngle = "0";

// Scale Bar
var drawScaleBar = true;
MapUnits="METERS";
	// can MapUnits be changed by user?
var setMapUnits=true;
ScaleBarUnits="METERS";
//var ScaleBarBackground = "False";
var ScaleBarBackColor = "0,0,0";
var ScaleBarFontColor = "234,250,255";
var ScaleBarColor = "234,250,255";
var ScaleBarFont = "arial";
var ScaleBarStyle = "bold";
//var ScaleBarRound = "0";
var ScaleBarSize = "14";
var ScaleBarWidth = "8";
var ScaleBarPrecision = 2;
var numDecimals = ScaleBarPrecision;

	// Mode on Map
var drawModeOnMap = false;
var modeRefreshMap = false;
var modeMapColor = "255,255,255";
var modeMapGlow = "128,0,255";

var ovImageVar;
var ovBorderWidth = 1;
var ovExtentBoxSize = 1;

// panning factor for arrow buttons
var panFactor = 0.40;
//zoom factors for v.3
var zoomFactor = 2

// Mittakaava johon kartta zoomataan jos mennään liian lähelle
var zoomLimitHor =500; //50m
var zoomLimitVer = 400; //50m
// Jos Horisontaali ja Vertikaali koordinaattien erot zoomattaessa alle näiden niin käytetään yllä olevia arvoja
var zoomInLimitHor = 400;
var zoomInLimitVer = 300;

// 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.025;
// margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
var selectPointMargin = 0.025

// Aloitus_query.jsp sivulla käynnistettäessä
var selectMarginQuery = 0.25;
// Aloitus_query.jsp sivulla käynnistettäessä
var selectPointMarginQuery = 0.25



var startSelectMargin = selectMargin;
var startSelectPointMargin = selectPointMargin;

// show the scale factor
var showScalePercent=false;
// display coords in status line
var showXYs=true;

var isNav5up = false;
var isNav = false;
var isIE = false;
if(navigator.appName == "Netscape") {
	isNav =true;
	isNav5up = true;
}
else
	isIE = true;


// Basic Map parameters
// variables for map pixel offset from upper left corner of frame
// horizontal offset

var hspc = 2; //26;
var vspc = 1; //16;

// 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

var ActiveLayerIndex=1;

var useTextFrame=true;
// use external window for dialogs
var useExternalWindow=false;

// 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;

	// 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;
}

//Legend parameters - aimsLegend.js

// legend map size
var legWidth=170;
var legHeight=300;
var legFont="Arial";
var legTitle=" ";

//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] = "";

// Välilehdet
var loadBetweens=0;
var visibleHiddenNum = 0;

// Välilehtien näkyvyys.
var visibleBetween1="hidden";
var visibleBetween2="hidden";
var visibleBetween3="hidden";
var visibleBetween4="hidden";
var visibleBetween5="hidden";
var visibleBetween6="hidden";
var visibleBetween7="hidden";
var visibleBetween8="hidden";
var visibleBetween9="hidden";
var visibleBetween10="hidden";
var visibleBetween11="hidden";
var visibleBetween12="hidden";
var visibleBetweenInstruction="hidden";
var visibleBetweenFirst="hidden";
var visibleBetweenLast="hidden";

// Popup-ikkunan määritykset 0=oletus ja 1=infoa karttakohteesta.
var whatPopup=0;

// Vaikutuskanavan Appletin kuvan osoite.
var kommentointiURL = "";

var featureCount=0;

var getBufferedData = false;
var windowstatus_ts = "";

//***************************************
// mSki muuttujia
var global_kunta = 0;
var strSKIColor = "";
var lineBackColor=false;
var mSkiValues = new Array();
var refmap=false;
var bMuuVaara = 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=true;
	if ((!useMeasure) && (!drawScaleBar)) useSetUnits=false;
	if (ovImageVar==null) {
		hasOVMap = false;
	}
	if (parent.TOCFrame==null) hasTOC = true;
	if (parent.ModeFrame==null) useModeFrame = false;

	if (!document.layers) {
      	if(hasLayer("theTop"))
            	document.getElementById("theMap").style.cursor = "crosshair";
		if (hasOVMap)
             	ovImageVar.style.cursor = "hand";
	}

	if (hasOVMap) {
		// size of ov map image
		i2Width = ovImageVar.width;
		i2Height = ovImageVar.height;
		// 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);
	if (aimsNavigationPresent) {
		document.onmousemove = getMouse;
		//document.onmousedown = chkMouseDown;
		document.onmousedown = mapTool;
		if(/*!isNav5up*/ true) 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=true;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
	}
	if (!aimsSelectPresent) {
		aimsQueryPresent=false;
		aimsBufferPresent=true;
 		useSelect=false;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
		useClearSelect=false;
	}
	if (!aimsIdentifyPresent) {
		aimsSelectPresent=false;
		aimsQueryPresent=false;
		aimsBufferPresent=true;
		canQuery=false;
		//useIdentify=false;
 		useSelect=false;
		useQuery=false;
		useFind=false;
		useBuffer=false;
		useStoredQuery=false;
		useHyperLink=false;
	}
	if (!aimsGeocodePresent) {
		useGeocode=false;
		useReverseGeocode=false;
	}
	if (!aimsPrintPresent) {
		usePrint=true;
	}
	if (!aimsOptionsPresent) {
		allowOptions=false;
	}

    	if((aimsXMLPresent) && (aimsMapPresent)) {
        //alert("enableStartMap: "+enableStartMap);
      	// GIS2B, querys the ArcIMS only if MapFrame content is not generated by JSP
	      if(true /*enableStartMap*/) { //alert("x1");
			if(queryjsp == true){
                  	if(browser != "Netscape")
                        	parent.MapFrame.clickFunction("identify");
                	}
                  startMap();
		}
		else {
      //alert("x2");
			parent.TopFrame.document.location = "topframe.jsp";
			parent.ToolFrame.document.location = "toolframe.html";
			loadTopFrame();

			if(NimistoHaku == true)
                 		HaeNimisto();
		}

	} else {
		alert("Unable to load one of the following Javascript Libraries:\naimsCommon.js\naimsXML.js\naimsMap.js");
	}
}

