var object;
var blink = 0;
var interval = 0;
var miniInterval = 0;
var oldScale;
var scaleBarVSK = {"scales":[{"text":"40km", "size":"95"},{"text":"20km", "size":"102"}, {"text":"9km", "size":"91"}, {"text":"3km", "size":"107"}, {"text":"1000m", "size":"70"}, {"text":"700m", "size":"100"}, {"text":"200m", "size":"102"}]};
//var scaleBarVST = { "scales": [{ "text": "30km", "size": "107" }, { "text": "9km", "size": "91" }, { "text": "3km", "size": "107" }, { "text": "1000m", "size": "70" }, { "text": "700m", "size": "100" }, { "text": "300m", "size": "107" }, { "text": "100m", "size": "70" }, { "text": "100", "size": "70"}] };
var scaleBarVST = { "scales": [{ "text": "30km", "size": "107" }, { "text": "10km", "size": "70" }, { "text": "7km", "size": "100" }, { "text": "3km", "size": "107" }, { "text": "1000m", "size": "70" }, { "text": "700m", "size": "100" }, { "text": "300m", "size": "107" }, { "text": "100m", "size": "70"}] };
var mapScales;
var traveltime;



function oHS(i,e){

 onHoverSegment(e,i);

}

function oLS(i,e){

 onLeaveSegment(i);

}


function userInitFunction(_map)
	{
	    
        hideLayer(_map, "View0/roadconditions");
        hideLayer(_map, "View0/trafficsegmentlines");
        hideLayer(_map, "View0/imagemaps");
        oldScale = map.getScale();
		
		mapScales = _map.getFixedScales();
		mapScales.reverse();
        if (largeMap == true)
		{
		   setLargeMapScale(_map);
		   miniInterval = setInterval("hideMiniMapLayer()", 600);
 
		}
		else if (typeof(scaleSettings)!= "undefined")
		{
		    var newScale = scaleSettings.scale > 0 ? scaleSettings.scale : map.getScale();
		    var newX;
		    var newY;
		    if (scaleSettings.xcoord > 0 && scaleSettings.ycoord > 0)
		    {
		        newX = scaleSettings.xcoord;
		        newY = scaleSettings.ycoord;
		    }
		    else
		    {
		        var point = map.getMapCenter();
		        newX = point.x;
		        newY = point.y;
		    }
		    
		    map.setArea(newX, newY, newScale);
		    
		}
		else
		{
		    if(region == "VST")
		    {
		        _map.setScale(350000);
		    }
		    else
		    {
		        _map.setScale(1500000);
		    }
		}
		
		if (pageType == 1 || pageType == 10)//Start
		{
		    var noInformation = document.getElementById("noinfo")
		    var trafficInformation = document.getElementById("trafficsegments");
		    if (!trafficInformation) {
		        if (noInformation) {
		            noInformation.checked = true;
		        }
		    }
			//http://88.80.163.9/proxy/SpatialAceWMS/RWC/imagemaps/skane
			setInterval( "updateMap()", 60000 );
			initSearchControl();
			if (region != "VSO") {
			    includeImageMap("tilemaps_" + map.getScale() + ".txt");

			}
			toggleTraffic(_map);
            toggleCamera(_map);
            toggleWeather(_map);            
	        if (document.getElementById("iconList").value != "")
	        {
	            _map.registerOnAfterUpdateEventHandler(toggleGeoObject); //toggleGeoObject
	            refreshLayer(_map,"View0/objects");
	            
	        }
	        //toggleGeoObject(_map, null);
            //_map.registerOnAfterUpdateEventHandler(toggleGeoObject);
            //_map.registerOnFullyUpdatedEventHandler(zoomHandler);
			//_map.registerOnClickEventHandler(mapClick);
	        _map.mapContainer.onclick = mapClickHandler;
	        _map.registerOnAfterUpdateEventHandler(zoomHandler); //zoomHandler
			
			//Används om man vill skapa lista av objetk vid mouseOver
			//_map.registerOnMouseOverEventHandler(mouseOverHandler);
			//Se metod
		}
		else
		{
		    _map.registerOnFullyUpdatedEventHandler(zoomHandler);
		}
		
		if (pageType == 2)//Parkering
		{
		    //_map.registerOnClickEventHandler(mapClick);
		    _map.mapContainer.onclick = mapClickHandler;
		    if (region === "VSK")
		    { 
		        var point = map.getMapCenter();
                map.setArea(point.x, point.y, 1500000);
		    }
		}
		else if (pageType == 7)//Degraderad
		{
		    _map.mapContainer.onclick = mapClickHandler;
		    
		}
		
		//PageType 3, map for placing objects. Create default object 
		else if (pageType == 3)
		{
			var xcord = 0;
			var ycord = 0;
			if (document.getElementById(editMapXcoord).value != "")
			{
			    //editMapXcoord 'ctl00_XCoord'
			    //editMapYcoord 'ctl00_YCoord'
			    xcord = document.getElementById(editMapXcoord).value.replace(/,/, ".");
			    ycord = document.getElementById(editMapYcoord).value.replace(/,/, ".");
			}
			_map.registerOnClickEventHandler(mapPosition);
			uLayer = _map.addObjectLayer("userLayer2", "userLayer");
			pinObject = _map.createGeoObject(xcord,ycord,"userObject","userLayer2","point")
			//pinObject.setImage("/images/map/pintool2.gif",11,18,"");
			//pinObject.setSelectedImage("/images/map/pintool2.gif",11,18,"")
			pinObject.setAttribute("test","Ditt objekt");
			uLayer.draw();
		}
		  
		if (pageType == 5)//Trängselskatt
		{ 
		    getObjects();
		}
		
		if (pageType == 6 && cameraObjects != null)//Kamerasida
		{
		    genarateObjects(cameraObjects);
		    //_map.registerOnClickEventHandler(mapClick);
		    _map.mapContainer.onclick = mapClickHandler;
		}
		
		if (pageType == 7 || pageType == 8)
		{
		    refreshLayer(_map,"View0/objects");
		    refreshLayer(_map,"View0/vvisobjects");
		    if (region === "VSK")
		    { 
		        var point = map.getMapCenter();
                map.setArea(point.x, point.y, 1500000);
		    }
		}
		displayScale(map.getScale());
	}

	function test() {
	    alert("");
	}
	function mouseOverHandler(m, g)
	{
	    //Returener objekt på en punkt i ett spec lager
	    var objectList1 = m.getGeoObjectsArray("userLayer");
	    if (objectList1 != null)
	    {
	    for (var i = 0; i < objectList1.length; i++)
	    {
	        if (g.viewX < objectList1[i].viewX + 5  && g.viewX > objectList1[i].viewX - 5)
            {
                if (g.viewY < objectList1[i].viewY + 5  && g.viewY > objectList1[i].viewY - 5)
                {
                    alert(objectList1[i].id);
                }
            }
	    }
	    }
	   //Retunerar alla objekt på en punk
        var objectList2 =  m.getGeoObjectsBySelection(g.viewX+5,g.viewY+5,g.viewX-5,g.viewY-5)
	    for (var i = 0; i < objectList2.length; i++)
	    {
	        alert(objectList2[i].id);
	    }
	}
	
	function printFormatedMap()
	{
	    var views = "";       
	    var scale = map.getScale();
	    var point = map.getMapCenter();
	        
	    if (pageType == 1)
	    {
	        var boxString = getCheckboxString();
	        var boxArray = boxString.split(",");        
	        
	        window.open('/popup/MapPrint.aspx?region='+region+'&scale='+scale+'&xcoord='+point.x+'&ycoord='+point.y+'&layers='+boxArray,'printmapwindow');
	    }
	    else if(pageType == 4)
	    {
	        window.open('/popup/MapPrint.aspx?region='+region+'&scale='+scale+'&xcoord='+point.x+'&ycoord='+point.y+'&layers=bicycle','printmapwindow');   
	    }
	    else
	    {
	        window.print();
	    }
	}
	
	function zoomHandler(_map) {

	    var scale = map.getScale();	    
	    if(oldScale != scale)
	    { 
	        
	        displayScale(scale);
	        oldScale = scale;
	        if(pageType == 1)
	        {
	            if (region != "VSO") {
	                includeImageMap("tilemaps_" + scale + ".txt");
	                toggleTraffic(_map);
	            }
	            if (document.getElementById("iconList").value != "")
	            {
	                
	                refreshLayer(_map,"View0/objects");
	                _map.registerOnAfterUpdateEventHandler(toggleGeoObject);
	            }
	            else if(pageType == 7 || pageType == 8)
	            {
	                refreshLayer(_map,"View0/objects");
	            }
	        }
	        
	        
	    }
	}
	function displayScale(scale)
	{
	    var indx;
	    for (i = 0; i < mapScales.length; i++)
	    {
	        if (mapScales[i] == scale)
	        {
	            indx = i;
	            break;
	        }
	    }
	    var scaleObject;
	    if (region == "VST" || region == "VSO")
	    {
	        scaleObject = scaleBarVST.scales[indx];
	    }
	    else if (region == "VSK")
	    {
	        scaleObject = scaleBarVSK.scales[indx];
	    }
	    var bar = document.getElementById("mapScaleBar");
	    bar.innerHTML = scaleObject.text;
	    bar.style.display = "block"; 
	    bar.style.width = scaleObject.size + "px";
	   
	}
	function hideMiniMapLayer()
	{
	    if(map.miniMap.map.getLayerById("View0/trafficsegmentlines"))
		{
		    
		    map.miniMap.map.getLayerById("View0/trafficsegmentlines").hide("View0/trafficsegmentlines");
		}
		else if (map.miniMap.map.getObjectLayerById("View0/trafficsegmentlines"))
		{
		    map.miniMap.map.getObjectLayerById("View0/trafficsegmentlines").hide("View0/trafficsegmentlines");
		}
		
		if(map.miniMap.map.getLayerById("View0/roadconditions"))
		{
		    
		    map.miniMap.map.getLayerById("View0/roadconditions").hide("View0/roadconditions");
		}
		else if (map.miniMap.map.getObjectLayerById("View0/roadconditions"))
		{
		    map.miniMap.map.getObjectLayerById("View0/roadconditions").hide("View0/roadconditions");
		}      

	}
	
//	function onMouseOver(map, geo)
//	{
//	    alert(geo);
//	}
	function setpageType(_pageType)
	{
		pageType = _pageType;
	}
	function updateMap()
	{
		toggleTraffic();
		map.refreshObjects(true);
        if (document.getElementById("iconList").value != "")
   	    {
	         map.registerOnAfterUpdateEventHandler(toggleGeoObject);
	        refreshLayer(map,"View0/objects");
	       
	     }
		
	}
	
	function prepLageMap(cNumber)
	{
	   var cookieValue = getCheckboxString();
	    var temp = cookieNumber;
	    cookieNumber = cNumber;
	    setCookie(cookieValue);
	    cookieNumber = temp;
	   setCookieWithName("scale", map.getScale());
	   var p = map.getMapCenter();
	   setCookieWithName("mapcenter_x", p.x);
	   setCookieWithName("mapcenter_y", p.y);
	}
	
	function setLargeMapScale(_map)
	{
	    var cookie = getCookie("scale=");
	    var cx = getCookie("mapcenter_x=");
	    var cy = getCookie("mapcenter_y=");
		if (cookie && cookie < 1500000)
		{
		    //map.setScale(cookie);
		    map.setArea(cx, cy, cookie);
		}
		else if (region === "VSK")
		{ 
		    var point = map.getMapCenter();
            map.setArea(point.x, point.y, 700000);
		}
	}
	
	function initToggle(id)
	{  
	    
	    if (id != null)
	    {
	        var list = document.getElementById("iconList");
	        if (document.getElementById(id).checked == true)
	        {   
	            list.value += document.getElementById("hidden_" +id).value + ","; 
	        }
	        else
	        {
	            var str = list.value;
	            var replace = document.getElementById("hidden_" +id).value + ",";
	            list.value = str.replace(replace, "");
	        }
	        
	    }
       toggleGeoObject(map, null);
//	   for (layer in  map.view.overlayArray)
//	   {
//			
//			toggleGeoObject(map, map.view.overlayArray[layer]);
//	   }
	}
	

	function activateSearch()
	{
		var cookieValue = getCheckboxString();
		setCookie(cookieValue);
	}
	
	function initSearchControl()
	{	
	    var number = cookieNumber;    
	    if (largeMap == true)
	    {
	        number = 99;
	    }
	    
		var cookie = getCookie("toggle"+number+"=");
		var iconList;
			if (document.getElementById("iconList"))
			{
			    iconList = document.getElementById("iconList");
			    
			}
		var checkboxes = document.getElementsByName("filtercheckbox");
		if (cookie)
		{	
			if(cookie.match("roadinfo"))
			{
			    document.getElementById("roadinfo").checked = true;
			}
			else if (cookie.match("trafficsegments"))
			{
			    document.getElementById("trafficsegments").checked = true;
			}
			var cookieValueArray = cookie.split(",");
			var roadinfo = false;
			for (var i = 0; i < checkboxes.length; i++)
			{
				if (document.getElementById(checkboxes[i].id))
				{
					var chBox = document.getElementById(checkboxes[i].id);
					if (cookieValueArray.length < 1)
					{
					    chBox.checked = false;
					}
					for (var c = 0; c < cookieValueArray.length; c++)
					{
					    
					    if (chBox.id == cookieValueArray[c])
						{
							    chBox.checked = true;
							    if (document.getElementById("hidden_" + chBox.id))
							    {
							        var value = document.getElementById("hidden_" + chBox.id).value;
							        if (value != "")
							        {
							            iconList.value += value + ",";
							        }
							    }
						
							break;
						}
						else
						{
							chBox.checked = false;
						}

					}
				}
				
			}
		}
		else
			{
			   for (var i = 0; i < checkboxes.length; i++)
			   {
			        var chBox = document.getElementById(checkboxes[i].id);
			        if (chBox.checked == true)
			        {
			            if (document.getElementById("hidden_" + chBox.id))
							{
							    var value = document.getElementById("hidden_" + chBox.id).value;
							    if (value != "")
							    {
							        iconList.value += value + ",";
							    }
							}
			        }
			   } 
			}
		
	}
	
	function setMainTool(_tool)
	{
	    if (_tool == "zoomglass")
	    {
	        map.setDefaultTool("zoom");
	        
	    }
	    else
	    {
	        map.setDefaultTool("pan");
	    }
	}
	
	function setTool(_tool)
	{
		if (_tool == "point")
		{	
			map.setDefaultTool("pan");
			tool = true;
			//map.setDefaultTool("select");
			document.getElementById('place').style.backgroundColor = "white";
			document.getElementById('pan').style.backgroundColor = "silver";

		}
		else
		{
			map.setDefaultTool("pan");
			tool = false;
			//map.setDefaultTool("pan");
			document.getElementById('place').style.backgroundColor = "silver";
			document.getElementById('pan').style.backgroundColor = "white";
		}
	}
	
	function mapPosition(_map, _point)
	{
		if (tool == true)
		{
			var px = _point.x.toString().replace(/\./,",");
			var py = _point.y.toString().replace(/\./,",");
			document.getElementById(editMapXcoord).value = px; //'ctl00_XCoord'
			document.getElementById(editMapYcoord).value = py; //'ctl00_YCoord'
			pinObject.setPosition(_point.x, _point.y);
			//pinObject.setImage("/images/map/pintool2.gif",11,18,"");
			//pinObject.setSelectedImage("/images/map/pintool2.gif",11,18,"")
			uLayer.draw();
		}
	}
	function onLeaveSegment(id)
	{
	    if(map.currentTool && map.currentTool.cursor)
	    {
	        map.setCursor(map.currentTool.cursor);
	    }
	    else
	    {
	        map.setCursor("crosshair");
	    }
	    //document.getElementById("mainlayer6").style.cursor = hoverCursor;
	    if(document.getElementById("traveltime"))
	    {
	        document.getElementById("traveltime").style.display = "none";
	    }
	}
    function onHoverSegment(e, id) 
    { 
        //map.mapContainer.style.cursor
        //hoverCursor = document.getElementById("mainlayer6").style.cursor;
        //alert(hoverCursor);
        map.setCursor("pointer");
        //document.getElementById("mainlayer6").style.cursor = "pointer";
        var ua = navigator.userAgent.toLowerCase();
        if ( ua.indexOf( "msie" ) != -1 ) 
        { 
            var e = window.event;
        }
	    var evt = new Evt(e);
	    var b = document.getElementsByTagName("body")[0];
	    var pixelPos = getPixelPositionFromEvent(evt, b);
	    
	    var traveltimeDiv;
        if (document.getElementById("traveltime"))
        {
            traveltimeDiv = document.getElementById("traveltime");
        }
        else
        {
            traveltimeDiv = document.createElement("div");
            traveltimeDiv.id = "traveltime";
            //traveltimeDiv.setAttribute('class','rwcWhiteInfoBox');
            document.getElementsByTagName("body")[0].appendChild(traveltimeDiv);
        }
        var secID = "_" + id;
        if (traveltime[secID])
        {
            traveltimeDiv.innerHTML = "<p>"+traveltime[secID].name + "</p><p>" + traveltime[secID].info +" "+traveltime[secID].speed+"</p>";
//            if (region == "VST")
//            {
//                traveltimeDiv.innerHTML = "<p>"+traveltime[secID].name + "</p><p>" + traveltime[secID].info +" "+traveltime[secID].speed+"</p>";
//            }
//            else
//            {
//                traveltimeDiv.innerHTML = traveltime[secID].info + " "+traveltime[secID].time + " "+traveltime[secID].speed;
//            }
            traveltimeDiv.style.top = (pixelPos.y + 5) + "px";
            traveltimeDiv.style.left = (pixelPos.x + 5) + "px";
            traveltimeDiv.style.zIndex = 121;
            traveltimeDiv.style.display = "block";
        }
        
    }
    
	function mapClickHandler(e)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
		
	    if (!e) var e = window.event;
	    var evt = new Evt(e);
	    var b = document.getElementsByTagName("body")[0];
        var pixelPos = getPixelPositionFromEvent(evt, map.mapContainer);//map.mapContainer
        var objectList = map.getGeoObjectsBySelection(pixelPos.x+8,pixelPos.y+8,pixelPos.x-8,pixelPos.y-8);
        pixelPos = getPixelPositionFromEvent(evt, b);
        var objectsArray = new Array(); 
        for (var i = 0; i < objectList.length;  ++i)
        {
            if (pageType === 6) //kameraobjekt på kamerasida
            {
                var oId = objectList[i].getAttribute("cameraLink");
				var oHeader = objectList[i].getAttribute("name");
				var iconId = objectList[i].getAttribute("IconID");
                var o = {"id":oId,"header":oHeader.substring(0,15) + "...","action":openCameraPage, "type": null, "iconId": 180};
				objectsArray.push(o);
            }
            else if (pageType == 1 && objectList[i].layer.name == "userLayer" && !objectList[i].isHidden)
            {
                var oId = objectList[i];
				var oHeader = objectList[i].getAttribute("name");
				var iconId = objectList[i].getAttribute("IconID");
                var o = {"id":oId,"header":oHeader.substring(0,15) + "...","action":openCameraInfo, "type": null, "iconId": 180};
				objectsArray.push(o);
            }
            else if (objectList[i].layer.name == "userLayer" && pageType == 2)//rastplatser,samåkning eller parkeringar
            {
                var oId = objectList[i].getAttribute("objectID");
                var oHeader = "";
                var oType = objectList[i].getAttribute("type");
                var iconId = objectList[i].getAttribute("IconID"); 
                var objectAction;
                if (region == "VSK")
                {
                    oHeader = objectList[i].getAttribute("name");
                    objectAction = getParkingByIdVSK;
                }
                else
                {
                    objectAction = getParkingById;
                    oType = null;
                    oHeader = objectList[i].getAttribute("address");
                }
                
                
                var o = {"id":oId,"header":oHeader.substring(0,15)+ "...","action":objectAction, "type": oType, "iconId": iconId};
                objectsArray.push(o);
            }
            else if (objectList[i].layer.name == "vvisobjects" && !objectList[i].isHidden)//Vägväderstolpar
            {
                var oId = objectList[i].getAttribute("objectID") ? objectList[i].getAttribute("objectID") : objectList[i].getAttribute("Id");
				var oHeader = objectList[i].getAttribute("Name") ? objectList[i].getAttribute("Name") : "V&auml;gv&auml;der";//name
				var iconId = objectList[i].getAttribute("IconID");
                var o = {"id":oId,"header":oHeader.substring(0,15)+ "...","action":getVVISObjectByID, "type": null, "iconId": iconId};
				objectsArray.push(o);
            }
            else if (objectList[i].layer.name == "objects" && !objectList[i].isHidden)//objectlayer
            {
                var oId = objectList[i].getAttribute("MsgID") ? objectList[i].getAttribute("MsgID") : objectList[i].getAttribute("Id");//Id
			    var oHeader = objectList[i].getAttribute("Teaser") ? objectList[i].getAttribute("Teaser") : objectList[i].getAttribute("teaser");//teaser
				var iconId = objectList[i].getAttribute("IconID");
                var o = {"id":oId,"header":oHeader.substring(0,15)+ "...","action":getObjectById, "type": null, "iconId": iconId};
				objectsArray.push(o); 
            }
            else if (objectList[i].layer.name == "roadconditionobjects" && !objectList[i].layer.isHidden)
            {
                var oId = objectList[i]//.getAttribute("objectID") ? objectList[i].getAttribute("objectID") : objectList[i].getAttribute("Id");//Id
			    var oHeader = objectList[i].getAttribute("Name") ? objectList[i].getAttribute("Name") : objectList[i].getAttribute("name");//teaser
				var iconId = objectList[i].getAttribute("IconID") ? objectList[i].getAttribute("IconID") : "107" ;
                var o = {"id":oId,"header":oHeader.substring(0,15)+ "...","action":generateRoadinfoBox, "type": null, "iconId": iconId};
				objectsArray.push(o);
            }
        }
        
        if (objectsArray.length > 1)
        {
            createObjectListBox(objectsArray.reverse(), pixelPos);
        }
        else if (objectsArray.length > 0)
        {
            if (objectsArray[0].type != null)
            {
                objectsArray[0].action(objectsArray[0].id, objectsArray[0].type);
            }
            else
            {
                objectsArray[0].action(objectsArray[0].id);
            }
        }
        evt.consume();
	}
	
	function createObjectListBox(objectsArray, position)
	{
	    
        var oaDiv;
        if (document.getElementById("objectListDiv"))
        {
            oaDiv = document.getElementById("objectListDiv");
        }
        else
        {
            oaDiv = document.createElement("div");
            oaDiv.id = "objectListDiv";
            document.getElementsByTagName("body")[0].appendChild(oaDiv);
        }
        oaDiv.innerHTML = "";
        for (var oaCount = 0; oaCount < objectsArray.length; ++oaCount)
        {
               (function(oaCount)
               {
                    var link = document.createElement("a");
                    link.onclick = function() {
                        if (objectsArray[oaCount].type)
                        {
                            objectsArray[oaCount].action(objectsArray[oaCount].id, objectsArray[oaCount].type);
                        }
                        else
                        {
                            objectsArray[oaCount].action(objectsArray[oaCount].id);
                        }
                        return false;
                    }
                    link.href = '#';
                    link.innerHTML = objectsArray[oaCount].header;
                    if (objectsArray[oaCount].iconId)
                    {
                        var img = document.createElement("img");
                        img.setAttribute("src","/images/map/icons/" + objectsArray[oaCount].iconId + ".gif");
                        oaDiv.appendChild(img);
                    }
                    oaDiv.appendChild(link);
                    var br = document.createElement("br");
                    oaDiv.appendChild(br);
               })(oaCount);    
        }
        oaDiv.style.top = (position.y + 10) + "px";
        oaDiv.style.left = (position.x + 10) + "px";
        oaDiv.style.zIndex = 121;
        oaDiv.style.display = "block";
	}
	
	function openCameraPage(url)
	{
	    window.location.href = url;
	    //uLayer.geoObjectArray[i].attributes[6].value;
	}
	
	function openCameraInfo(geoObject)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
       
       if (document.getElementById("mapInfoBox"))
	        {
	            var box = document.getElementById("mapInfoBox");
	            var infoBoxHead = document.getElementById("mapInfoBoxHead");
	            var infoBoxImage = document.getElementById("mapInfoBoxImage");
	            //var infoBoxComment = document.getElementById("mapInfoBoxComment");
	            infoBoxHead.innerHTML = "";
	            infoBoxImage.innerHTML = "";
	           
//                var icon = document.createElement('img');             
//                icon.setAttribute("src","/images/map/icons/" + iconId + ".gif");
//                icon.setAttribute("width","16");
//                icon.setAttribute("height","16");
//	            infoBoxImage.appendChild(icon);
	               
                var head = document.createElement("span");
	            head.style.fontWeight = "bold";
	            head.innerHTML = geoObject.getAttribute("name");
	            infoBoxHead.appendChild(head);
                
                var br = document.createElement("br"); 
                infoBoxHead.appendChild(br);
                 
                var pic = document.createElement('img');             
                pic.setAttribute("src", geoObject.getAttribute("cameraImage")); 
	            infoBoxHead.appendChild(pic);
	            
	            box.style.display = "block";
	          }
	}
	
	function toggleMenu(input, bgid)
	{
			var list = document.getElementById(input);
			var head = document.getElementById(bgid);	
			if (list.style.display=="block")
			{
				list.style.display="none";
				head.style.backgroundPosition ="143px -22px"
				//image.src = "../../images/map/chbox_close.gif";
			}
			else if (list.style.display=="none")
			{
				list.style.display="block";
				head.style.backgroundPosition ="143px -2px"
				//image.src = "../../images/map/chbox.gif";
			}
			else if (largeMap)
			{
			    list.style.display="none";
				head.style.backgroundPosition ="143px -22px"
			}
			else
			{
			    list.style.display="block";
				head.style.backgroundPosition ="143px -2px"
			}
	}
	
	
	
	function toggleGeoObject(_map, inLayer) {

			var _layer;
			var iconList = document.getElementById("iconList");
			//alert(iconList.value);
			if (inLayer != null)
			{
			    _layer = inLayer;
			}
			else
			{
			    _layer = _map.getObjectLayerById("View0/objects");
			}
			if(!_layer.geoObjectArray && iconList.value != "")
			{
			    _layer.refresh(true);
			    _map.registerOnAfterUpdateEventHandler(toggleGeoObject);
			    return;
			}
			if (pageType == 3)
			{
				_layer.hide();
			}
			else if (_layer.name === "userLayer" || _layer.name === "vvisobjects" || _layer.name === "roadconditionobjects" || _layer.name == "roadconditions" || _layer.name == "trafficsegmentlines")
			{

			}
			else if (_layer.geoObjectArray)
			{	       
				if (iconList != null)
				{
				    var list = iconList.value.split(","); 
				    for (var j=0;j<_layer.geoObjectArray.length;j++)
				    {
					    var geoObject = _layer.geoObjectArray[j];
					    for (var i = 0; i < list.length; i++)
					    {
					        if (geoObject.attributes[1].value == list[i])
					        {					            
					            geoObject.show();
					            break;
					        }
					        else
					        {
					            geoObject.hide();
					        }
					    }
					}
				}
				else
				{
				    for (var j=0;j<_layer.geoObjectArray.length;j++)
				    {
					    var geoObject = _layer.geoObjectArray[j];
    					
    					
					    if (document.getElementById(geoObject.attributes[1].value))
					    {
						    var box = document.getElementById(geoObject.attributes[1].value); 
						    if (box.checked == true)
						    {
							    geoObject.show();
						    }
						    else if(box.checked == false)
						    {	
							    geoObject.hide();
    							
						    }
					    }				
				    }
				}
				
				_map.onAfterUpdateEventHandlers = new Array();
				_map.registerOnAfterUpdateEventHandler(zoomHandler);
				
			}
			
	}
	
	function toggleWeather(_map)
	{
			if (document.getElementById("vvisobjects").checked == false)
			{	
				hideLayer(_map, "View0/vvisobjects");
				
			}
			else
			{
				refreshLayer(_map, "View0/vvisobjects");
				showLayer(_map, "View0/vvisobjects");	
			}
		
	}
		
	function toggleCamera(_map)
	{
	    var dMap;
		if (_map != null)
		{
			dMap = _map;
		}
		else
		{
			dMap = map; 
		}
	    if (document.getElementById("camera").checked == true)
		{
	        if (dMap.getObjectLayerById("userLayer"))
	        {
	            var layer = dMap.getObjectLayerById("userLayer");
	            layer.show();
	        }
	        else
	        {
	            getCameraObjects();
	        }
	    }
	    else if (dMap.getObjectLayerById("userLayer"))
	    {
	        var layer = dMap.getObjectLayerById("userLayer");
	        layer.hide();
	    }
	}
	
	function toggleTraffic(_map)
	{
		if (pageType != 1)
		{
		    hideLayer(_map, "View0/roadconditions");
		    hideLayer(_map, "View0/trafficsegmentlines");
		    hideLayer(_map, "View0/imagemaps");
		}
		var roadCond = document.getElementById("roadinfo");
		var noInfo = document.getElementById("noinfo");
		var traffic = document.getElementById("trafficsegments");
		if (noInfo && noInfo.checked == true) {
		    hideLayer(_map, "View0/roadconditions");
		    hideLayer(_map, "View0/trafficsegmentlines");
		    hideLayer(_map, "View0/imagemaps");
		    //hideLayer(_map, "View0/roadconditionobjects");
		}
		else if (traffic && traffic.checked == true)
		{
		    hideLayer(_map, "View0/roadconditions");
		    //hideLayer(_map, "View0/roadconditionobjects");		    
		    refreshLayer(_map, "View0/trafficsegmentlines");
		    showLayer(_map, "View0/trafficsegmentlines");
		    showLayer(_map, "View0/imagemaps");
		    getTraveltime();
		}
		else
		{
		    hideLayer(_map, "View0/trafficsegmentlines");
		    hideLayer(_map, "View0/imagemaps");
		    showLayer(_map, "View0/roadconditions");
		    
		    //showLayer(_map, "View0/roadconditionobjects");
		    //document.getElementById("iconList").value += "-1,";//107
		}
		
	}
	
	function refreshLayer(_map, layer)
	{
	    var dMap;
		if (_map)
		{
		    dMap = _map;
		}
		else
		{
		    dMap = map;
		}
				
		if (dMap.getObjectLayerById(layer))
		{
		    dMap.getObjectLayerById(layer).refresh(true);
		}
		else if(dMap.getLayerById(layer))
		{
		    dMap.getLayerById(layer).refresh(true);
		}
		
	}
	function showLayer(_map, layer)
	{
	    var dMap;
		if (_map)
		{
		    dMap = _map;
		}
		else
		{
		    dMap = map;
		}
	    
		if(dMap.getLayerById(layer))
		{
		    dMap.getLayerById(layer).show(layer);
		}
		else if (dMap.getObjectLayerById(layer))
		{
		    dMap.getObjectLayerById(layer).show(layer);
		}
		
	}
	
	function hideLayer(_map, layer)
	{
	    var dMap;
		if (_map)
		{
		    dMap = _map;
		}
		else
		{
		    dMap = map;
		}

		if (dMap.getLayerById(layer)) {
		    dMap.getLayerById(layer).hide(layer);
		}
		else if (dMap.getObjectLayerById(layer))
		{
		    dMap.getObjectLayerById(layer).hide(layer);
		}
		
	}
	
		
	function getCheckboxString()
	{	
		var scheckBoxString ="";
		var checkboxes = document.getElementsByName("filtercheckbox");
		
		for (var i = 0; i < checkboxes.length; i++)
		{  
			if (document.getElementById(checkboxes[i].id))
			{
				if (checkboxes[i].checked == true)
				{
					scheckBoxString += checkboxes[i].id +",";
				}
			}
		}
		if (document.getElementsByName("filterradio"))
		{
		    var radio = document.getElementsByName("filterradio");
		    for (var i = 0; i < radio.length; i++)
		    {
		        if (radio[i].checked == true)
		        {
		            scheckBoxString += radio[i].id +",";
		        }
		    }
		}
		return scheckBoxString;
	}
			
	function setCookie(v) 
	{
		var value;
		if (v != null && v != "")
		{
		    value = v;
		}
		else
		{
		    v = "safe";
		}
		var date = new Date();
		date.setTime(date.getTime()+(150*24*60*60*1000));
		var exDate = date.toGMTString();
		document.cookie = "toggle"+cookieNumber+"="+value+";expires="+exDate+";path=/;";
	}
	
	function setCookieWithName(name,value) 
	{
		var date = new Date();
		date.setTime(date.getTime()+(150*24*60*60*1000));
		var exDate = date.toGMTString();
		document.cookie = name+"="+value+",;expires="+exDate+";path=/;";
	}
		
	function getCookie(c_name)
	{	
		var nameEQ = c_name;
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) 
		{
			
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length -1);
		}
		return null;
	}
		
			
	function sammapSetTool(input)
	{
		if (input == 1)
		{
			map.setTool(map.panTool);
		}
		else if (input == 2)
		{
			map.setTool(map.zoomTool);
		}
	}
	
	function sammapZoom(input)
	{
		if (input == 1)
		{
			map.zoomOut();
		}
		else if (input == 2)
		{
			map.zoomIn();
		}
		//highlightScale();
	}
			
	function sammapSetScale(scaleStep)
	{	
		
		map.setScale(scaleStep);
		//highlightScale();
		
	}
			
	function highlightScale(_map)
	{	
		var scale;
		if (_map != null)
		{
			scale = _map.getScale();
		}
		else
		{
			scale = map.getScale();
		}

		if (scale == "7000")
		{
		    scale = 10000;
		    
		}
		else if (scale == "2200000")
		{   
		
		    scale = 1000000;
		    
		}
		var idArray = [10000, 25000, 50000, 100000, 350000, 1000000];
				
		for (var i = 0; i < idArray.length; i++)
		{
			if (idArray[i] == scale)
			{
			    
				var img = document.getElementById(scale);
				var str = img.src;
				if (str.substring(str.length -10, str.length) != "active.gif")
				{
					img.src = str.substring(0, str.length - 4) + "_active.gif";
				}
				//a.style.cssText = "background-color:#555555;color:white;";
				//a.style.cssText = "color:white;";
				//a.setAttribute("style","background-color:orange;");
						
			}
			else
			{
				var img = document.getElementById(idArray[i]);
				var str = img.src
				if (str.substring(str.length -10, str.length) == "active.gif")
				{
					img.src = str.substring(0, str.length - 11) + ".gif";
				}
				//var a = document.getElementById(idArray[id]);
				//a.style.cssText = "background-color:transparent;";
				//a.style.cssText = "color:black;";
				//a.setAttribute("style","background-color:gray;");
			}
		}
	}
	
	function getTraveltime()
	{
	    
	    var doDataCollect = true;
	    if (doDataCollect)
		{ 
			var xhr;
			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
				        //alert(xhr.responseText);
				        var json = eval('('+xhr.responseText+')');
				        
				        if (json)
				        {
				            traveltime = new Array();
				            for (var i = 0; i < json.traveltime.length; i++)
				            {
				                var id = "_" + json.traveltime[i].sectionId;
				                traveltime[id] = json.traveltime[i];
				                
				            }
				            
				        }
				        //disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			}
            var r;
            if(region == "VSK")
            {
                r = "skane";
            }
            else
            {
                r = "sthlm";
            }
            var d = new Date();
            var dd = d.getDate();
			xhr.open("GET", "/Plugin/MapTraveltimeData.ashx?method=getTraveltime&region=" +region + "&date=" +d.getTime(),  true);//+ id 
			xhr.send(null);
			doDataCollect = false;
		}
	}
	
	function includeImageMap(file)
	{
	    var doDataCollect = true;
	    if (doDataCollect)
		{ 
			var xhr;
			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
				       
				        var div;
				        if (document.getElementById("imgMap"))
				        {
				            div = document.getElementById("imgMap");
				        }
				        else
				        {
				            div =document.createElement("div");
				            div.id = "imgMap";
				        }
				        
				        div.innerHTML = xhr.responseText;
				        document.getElementsByTagName("body")[0].appendChild(div);

				            //disposeXMLHttpObject(xhr);
				        
				        
					}
					else
					{ 
					}
				}
			}
            var r;
            if(region == "VSK")
            {
                r = "skane";
            }
            else
            {
                r = "sthlm";
            }
            //http://88.80.163.8/proxy/SpatialAceWMS/RWC/imagemaps/sthlm/tilemaps_350000.txt
			xhr.open("GET","/WMS/imagemaps/"+r+"/"+file,  true);//+ id 
			xhr.send(null);
			doDataCollect = false;
		}
	}
	
	function getParkingByIdVSK(id, type)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
	    var doDataCollect = true;
	    var method = "getParkingByIdVSK";
	    var type = type;
	    var objectId = id;
	    if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
						 genarateParkingInfoBoxVSK(xhr.responseText);
						//disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			}

			xhr.open("GET", "/Plugin/MapAjaxdata.aspx?method="+method+"&objectID=" + objectId + "&type=" + type,  true);//+ id 
			xhr.send(null);
			doDataCollect = false;
			}
	    
	}
	
	function getVVISObjectByID(id)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
	    var doDataCollect = true;
	    var method = "GetVVISByID";
	    if (doDataCollect)
		{ 
			var xhr;
			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
				        genarateVVISInfoBox(xhr.responseText);
				        //disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			}

			xhr.open("GET", "/Plugin/MapAjaxdata.aspx?method="+method+"&objectID=" + id,  true);//+ id 
			xhr.send(null);
			doDataCollect = false; 
		}
	}
	
	
	function getParkingById(id)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
	    var doDataCollect = true;
	    if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      	 
					    genarateParkingInfoBox(xhr.responseText);
					    //disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			}
        }
		xhr.open("GET", "/Plugin/MapParkingData.ashx?method=getParkingByID&objectID=" + id,  true);//+ id 
		xhr.send(null);
		doDataCollect = false;
	}
	
	function getObjectById(id)
	{
	    if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
	    var doDataCollect = true;
	    var method;
	    if (pageType == 1 || pageType == 7)
	    {
	        
	        method = "getObject";
	    }
	    else if (pageType == 2)
	    {
	        method = "getParkingByID";
	    }   
	    if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
						 if (pageType == 1 || pageType == 7)
						 {
						    genarateInfoBox(xhr.responseText);
						 }
						 else if (pageType == 2)
						 {
						    genarateParkingInfoBox(xhr.responseText);
						    //disposeXMLHttpObject(xhr);
						 }
					}
					else
					{ 
					}
				}
			}

			xhr.open("GET", "/Plugin/MapAjaxData.aspx?method="+method+"&objectID=" + id,  true);//+ id 
			xhr.send(null);
			doDataCollect = false; 
		}
	}
	
	function getObjects()
	{
		
		if (pageType == 5)
		{
		    var method = "getAllTollboth";
		    var doDataCollect = true;
		}
		else if(region == "VSK")
		{
		    var method = "getParking";
		    var district = null;
		    var type;
		    var doDataCollect = true;
		    var radioList = document.getElementsByName("filterradio");
		    for (i = 0; i < radioList.length; i++)
		    {
			    
			    if (document.getElementById(radioList[i].id))
			    {
				    
				    if (radioList[i].checked == true)
				    {
					    type = radioList[i].value;
				    }
			    }
		    }
		}
		else
		{
		    var district;
		    var type;
		    var _region = region;
    		var method = "getParking";
    		
		    var doDataCollect = true;
    		
		    var dropDownDistrict = document.getElementById(districtListId);
		    district = dropDownDistrict.options[dropDownDistrict.selectedIndex].value;
    		
		    var radioList = document.getElementsByName("filterradio");
		    for (i = 0; i < radioList.length; i++)
		    {
			    if (document.getElementById(radioList[i].id))
			    {
				    if (radioList[i].checked == true)
				    {
					    type = radioList[i].value;
				    }
			    }
		    }
		}
		
		if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
						 genarateObjects(xhr.responseText);
						//disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			} 
			xhr.open("GET", "/Plugin/MapAjaxdata.aspx?method="+method+"&district=" + district + "&type=" + type + "&region=" + region,  true); 
			xhr.send(null);
			doDataCollect = false;
			
		}
	   
	}
	
	function getCameraObjects()
	{
	    var method = "getAllPublishedCameras";
		var doDataCollect = true;
		
		if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
						 genarateObjects(xhr.responseText);
						//disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			} 
            
			xhr.open("GET", "/Plugin/MapAjaxdata.aspx?method="+method+"&pageLink=" + pageLink + "&cameraPageTypeID=" + cameraPageTypeID,  true); 
			xhr.send(null);
			doDataCollect = false;
			
		}
	   
	}
	
	function getRestAreaCameraObjects(cameraGroup)
	{
	    var method = "getCameraByCameraGroup";
		var doDataCollect = true;
		
		if (doDataCollect)
		{ 
			var xhr;

			try 
			{ 
				xhr = new XMLHttpRequest();  
			}                 
			catch(e) 
			{    
			  xhr = new ActiveXObject(Microsoft.XMLHTTP);
			 
			} 
	 
			xhr.onreadystatechange  = function()
			{ 
				if(xhr.readyState  == 4)
				{
					if(xhr.status  == 200) 
					{      
						 addRestAreaCamera(xhr.responseText);
						//disposeXMLHttpObject(xhr);
					}
					else
					{ 
					}
				}
			} 
			xhr.open("GET", "/Plugin/MapAjaxData.aspx?method="+method+"&cameraGroup=" + cameraGroup,  true); 
			xhr.send(null);
			doDataCollect = false;
			
		}
	   
	}
    function emptyEvent(e)
    {
       
        e.consume();
    }
    function genarateParkingInfoBoxVSK(response)
    {
        if (response != null && response != "empty" && response != "")
	    {
	         var json = eval('('+response+')');
	         if (document.getElementById("mapInfoBoxVSK"))
	         {
	            var box = document.getElementById("mapInfoBoxVSK");
	            
	            var headerDiv =  document.getElementById("mapInfoBoxHeadVSK");
	            headerDiv.innerHTML = "";
	            headerDiv.style.display = "none";
	            var imageDiv = document.getElementById("mapInfoBoxImageVSK");
	            imageDiv.innerHTML = "";
	            imageDiv.style.display = "none";
	            var imageLinkDiv = document.getElementById("mapInfoBoxVSKImageLink");
	            imageLinkDiv.innerHTML = "";
	            imageLinkDiv.style.display = "none";
	            var infoDiv = document.getElementById("mapInfoBoxInfoVSK");
	            infoDiv.innerHTML = "";
	            if (json.type == "rest")
	            {
	                var header = document.createElement("h4");
	                header.innerHTML = json.name;
	                headerDiv.appendChild(header);
	                
	                
	                var label1 = document.createElement("h4");
	                label1.innerHTML = "Position:";
	                infoDiv.appendChild(label1);
	                var span1 = document.createElement("span");
	                span1.innerHTML = json.locationText;
	                infoDiv.appendChild(span1);
	                
	                var label2 = document.createElement("h4");
	                label2.innerHTML = "Avst&aring;nd fr&aring;n ort:";
	                infoDiv.appendChild(label2);
	                var span2 = document.createElement("span");
	                span2.innerHTML = json.distance;
	                infoDiv.appendChild(span2);
	                
	                var label3 = document.createElement("h4");
	                label3.innerHTML = "Turistinformation:";
	                infoDiv.appendChild(label3);
	                var span3 = document.createElement("span");
	                span3.innerHTML = json.turistInformation;
	                infoDiv.appendChild(span3);
	                
	                 var label4 = document.createElement("h4");
	                label4.innerHTML = "M&ouml;bler:";
	                infoDiv.appendChild(label4);
	                var span4 = document.createElement("span");
	                span4.innerHTML = json.furniture;
	                infoDiv.appendChild(span4);
	                
	                 var label5 = document.createElement("h4");
	                label5.innerHTML = "WC:";
	                infoDiv.appendChild(label5);
	                var span5 = document.createElement("span");
	                span5.innerHTML = json.wc;
	                infoDiv.appendChild(span5);
	                
	                var label6 = document.createElement("h4");
	                label6.innerHTML = "HandikapWC:";
	                infoDiv.appendChild(label6);
	                var span6 = document.createElement("span");
	                span6.innerHTML = json.wcHandicap;
	                infoDiv.appendChild(span6);
	                
	                var label7 = document.createElement("h4");
	                label7.innerHTML = "Allm&auml;nt:";
	                infoDiv.appendChild(label7);
	                var span7 = document.createElement("span");
	                span7.innerHTML = json.info;
	                infoDiv.appendChild(span7);
	                
	                headerDiv.style.display = "block";
	                infoDiv.style.display = "block";
	                box.style.display = "block";
	                
	                
	                getRestAreaCameraObjects(json.objectID);
	            }
	            else 
	            {
	                
	                var label = document.createElement("h4");
	                label.innerHTML = "Beskrivning";
	                infoDiv.appendChild(label);
	                var span = document.createElement("span");
	                span.innerHTML = json.description;
	                infoDiv.appendChild(span);
	                infoDiv.style.display = "block";
	                box.style.display = "block";
	                
	            }
	            
	         }
	    }
    }
    
    function addRestAreaCamera(response)
    {
        
        if (response != null && response != "")
	    {
	        var json = eval('('+response+')');
	        
	        if (json.geoObjects.length > 0)
	        {
	           
	        if (document.getElementById("mapInfoBoxImageVSK"))
	        {
	            var imageDiv = document.getElementById("mapInfoBoxImageVSK");
	            var imageLinkDiv = document.getElementById("mapInfoBoxVSKImageLink");
	            
	            var image = document.createElement("img");             
                image.setAttribute("src","/CameraImages/" + json.geoObjects[0].baseName + "_thumb.jpg");
                image.setAttribute("width","180");
                image.setAttribute("height","135");
	            
	            
	            var iLink = document.createElement("a");
	            iLink.setAttribute("href","/CameraImages/" + json.geoObjects[0].baseName + ".jpg");
	            iLink.setAttribute("target", "_blank");
	            
	            iLink.appendChild(image);
	            imageDiv.appendChild(iLink);
	            
	            for (i = 0; i < json.geoObjects.length; i++)
			    {
			        var imageLink = document.createElement("a");
			        imageLink.setAttribute("href","javaScript:shangeRestAreaImage('" + json.geoObjects[i].baseName + "');");
			        var c =  i +1;
			        imageLink.innerHTML = "bild" + c;
			        imageLinkDiv.appendChild(imageLink);
			        
			    }
			    imageDiv.style.display = "block";
			    imageLinkDiv.style.display = "block";
	            
            }
            }
	    }
    }
    
    function shangeRestAreaImage(id)
    {
        if (document.getElementById("mapInfoBoxImageVSK"))
	    {
	        var imageDiv = document.getElementById("mapInfoBoxImageVSK");
	        imageDiv.innerHTML = "";
	        var image = document.createElement("img");             
                image.setAttribute("src","/CameraImages/" + id + "_thumb.jpg");
                image.setAttribute("width","180");
                image.setAttribute("height","135");
	        var imgLink = document.createElement("a");
	            imgLink.setAttribute("href","/CameraImages/" + id + ".jpg");
	            imgLink.setAttribute("target", "_blank");
	            
	            imgLink.appendChild(image);
	            imageDiv.appendChild(imgLink);
	    }
    }
    
    function generateRoadinfoBox(geoObject)
    {
        if(document.getElementById("objectListDiv"))
	    {
	       document.getElementById("objectListDiv").style.display = "none"; 
	    }
       
       if (document.getElementById("mapInfoBox"))
	        {
	            var box = document.getElementById("mapInfoBox");
	            var infoBoxHead = document.getElementById("mapInfoBoxHead");
	            var infoBoxImage = document.getElementById("mapInfoBoxImage");
	            //var infoBoxComment = document.getElementById("mapInfoBoxComment");
	            infoBoxHead.innerHTML = "";
	            infoBoxImage.innerHTML = "";
	            var iconId;
	            if (geoObject.getAttribute("IconId") != null && geoObject.getAttribute("IconId") !="")
	            {
	                iconId = geoObject.getAttribute("IconId");
                }
                else
                {
                    iconId = "107";
                    
                }
                var icon = document.createElement('img');             
                icon.setAttribute("src","/images/map/icons/" + iconId + ".gif");
                icon.setAttribute("width","16");
                icon.setAttribute("height","16");
	            infoBoxImage.appendChild(icon);
	               
                var head = document.createElement("span");
	            head.style.fontWeight = "bold";
	            head.innerHTML = geoObject.getAttribute("Name");
	            infoBoxHead.appendChild(head);
                
                var br = document.createElement("br"); 
                infoBoxHead.appendChild(br);
                   
	            var message = document.createElement('span');
	            message.innerHTML = geoObject.getAttribute("ConditionInfo");
	            infoBoxHead.appendChild(message);
	            
	            box.style.display = "block";
	          }
    }
    
	function genarateInfoBox(jObject)
	{
	    if (jObject != null && jObject != "empty" && jObject != "")
	    {
	        //var str = jObject.replace(/@a@/, "å").replace(/@A@/, "Å").replace(/@ao@/, "ä").replace(/@AO@/, "Ä").replace(/@o@/, "ö").replace(/@O@/, "Ö");
	        
	        var json = eval('('+jObject+')');
	        if (document.getElementById("mapInfoBox"))
	        {
	            var box = document.getElementById("mapInfoBox");
	            var infoBoxHead = document.getElementById("mapInfoBoxHead");
	            var infoBoxImage = document.getElementById("mapInfoBoxImage");
	            var infoBoxComment = document.getElementById("mapInfoBoxComment");
	            infoBoxHead.innerHTML = "";
	            infoBoxImage.innerHTML = "";
//	            infoBoxComment.innerHTML = "";
	            
	            if (json.iconID != null && json.iconID !="")
	            {
	               var icon = document.createElement('img');             
                   icon.setAttribute("src","/images/map/icons/" + json.iconID + ".gif");
                   icon.setAttribute("width","16");
                   icon.setAttribute("height","16");
	               infoBoxImage.appendChild(icon);
                }
	           
	            var head = document.createElement("span");
	            head.style.fontWeight = "bold";
	            head.innerHTML = json.header;
	            infoBoxHead.appendChild(head);
                
                var br = document.createElement("br"); 
                infoBoxHead.appendChild(br);
                   
	            var message = document.createElement('span');
	            message.innerHTML = json.message;
	            infoBoxHead.appendChild(message);
	            
	            if (json.comment != null && json.comment != "")
	            {
	                var comment = document.createElement('div');
	                comment.setAttribute("id", "mooremessageMap");
	                comment.innerHTML = json.comment;
	                infoBoxHead.appendChild(comment);
	            }
	            
	            var br2 = document.createElement("br");
                infoBoxHead.appendChild(br2);
//                var br3 = document.createElement("br");
//                infoBoxHead.appendChild(br3);
                
                var startTime = document.createElement('span');
	            var time = json.startTime;
	            startTime.innerHTML = "G&auml;ller fr&aring;n " + time;
	            infoBoxHead.appendChild(startTime);
                
                var br4 = document.createElement("br");
                infoBoxHead.appendChild(br4);
                
                var endTime = document.createElement("span");
                var timeE = json.endTime;
                endTime.innerHTML = timeE;
                infoBoxHead.appendChild(endTime)
                
                var br5 = document.createElement("br");
                infoBoxHead.appendChild(br5);
                
                var provider = document.createElement("span");
                provider.innerHTML = "K&auml;lla: " + json.provider;
                infoBoxHead.appendChild(provider);
	            
//	            var comment = document.createElement('span');
//	            comment.innerHTML = json.comment;
//	            infoBoxComment.appendChild(comment);
	            
	            box.style.display = "block";
	        }
	    }
	}
	
	function genarateVVISInfoBox(jObject)
	{
	    if (jObject != null && jObject != "empty" && jObject != "")
	    {
	        //var str = jObject.replace(/@a@/, "å").replace(/@A@/, "Å").replace(/@ao@/, "ä").replace(/@AO@/, "Ä").replace(/@o@/, "ö").replace(/@O@/, "Ö");
	        
	        var json = eval('('+jObject+')');
	        if (document.getElementById("mapInfoBox"))
	        {
	            var box = document.getElementById("mapInfoBox");
	            var infoBoxHead = document.getElementById("mapInfoBoxHead");
	            var infoBoxImage = document.getElementById("mapInfoBoxImage");
	            var infoBoxComment = document.getElementById("mapInfoBoxComment");
	            infoBoxHead.innerHTML = "";
	            infoBoxImage.innerHTML = "";
//	            infoBoxComment.innerHTML = "";
	            
	            if (json.iconID != null && json.iconID !="")
	            {
	               var icon = document.createElement('img');             
                   icon.setAttribute("src","/images/map/icons/" + json.iconID + ".gif");
                   icon.setAttribute("width","16");
                   icon.setAttribute("height","16");
	               infoBoxImage.appendChild(icon);
                }
	           
	            var head = document.createElement("span");
	            head.style.fontWeight = "bold";
	            head.innerHTML = json.name;
	            infoBoxHead.appendChild(head);
                
                var br = document.createElement("br"); 
                infoBoxHead.appendChild(br);
                   
	            var roadTemp = document.createElement('span');
	            roadTemp.innerHTML = "V&auml;gtemperatur: "+json.roadTemp;
	            infoBoxHead.appendChild(roadTemp);
	            
	            var br2 = document.createElement("br");
                infoBoxHead.appendChild(br2);
                
                var airTemp = document.createElement('span');
	            airTemp.innerHTML = "Lufttemperatur: "+json.airTemp;
	            infoBoxHead.appendChild(airTemp);
	            
                var br3 = document.createElement("br");
                infoBoxHead.appendChild(br3);
                
                var wind = document.createElement('span');
	            wind.innerHTML = "Vindstyrka/riktning: "+json.windForce+ "&nbsp;" + json.windDirection;
	            infoBoxHead.appendChild(wind);
                
                var br4 = document.createElement("br");
                infoBoxHead.appendChild(br4);
                
                var type = document.createElement('span');
	            type.innerHTML = "Nederb&ouml;rd: "+json.type;
	            infoBoxHead.appendChild(type);
                
                var br5 = document.createElement("br");
                infoBoxHead.appendChild(br5);
                
                var amount = document.createElement('span');
	            amount.innerHTML = "Nederb&ouml;rdsm&auml;ngd: "+json.amount;
	            infoBoxHead.appendChild(amount);
                
                var br6 = document.createElement("br");
                infoBoxHead.appendChild(br6);
                var br7 = document.createElement("br");
                infoBoxHead.appendChild(br7);
                
                var time = document.createElement('span');
	            var t = json.measureTime;
	            time.innerHTML = t.substring(0, t.length - 3);
	            infoBoxHead.appendChild(time);
                
	            box.style.display = "block";
	        }
	    }
	}
	
	function genarateParkingInfoBox(jObject)
	{
	    
	    if (jObject != null && jObject != "empty")
	    {
	        
	        var json = eval('('+jObject+')');
	        
	        if (document.getElementById("mapInfoBox"))
	        {
	           
	            var box = document.getElementById("mapInfoBox");
	            var infoBoxType = document.getElementById("mapInfoBoxType");
	            var infoBoxImage = document.getElementById("mapInfoBoxImage");
	            var infoBoxDistrict = document.getElementById("mapInfoBoxDistrict");
	            var infoBoxAdress = document.getElementById("mapInfoBoxAdress");
	            var infoBoxTimeLimit = document.getElementById("mapInfoBoxTimeLimit");
	            var infoBoxParkingBan = document.getElementById("mapInfoBoxParkingLimit");
	            var infoBoxLength = document.getElementById("mapInfoBoxLength");
	            
	            
	            infoBoxType.innerHTML = "";
	            infoBoxImage.innerHTML = "";
	            infoBoxDistrict.innerHTML = "";
	            infoBoxAdress.innerHTML = "";
	            infoBoxTimeLimit.innerHTML = "";
	            infoBoxParkingBan.innerHTML = "";
	            infoBoxLength.innerHTML = "";
	            
	            if (json.iconID != null && json.iconID !="")
	            {
	               var icon = document.createElement('img');             
                   icon.setAttribute("src","/images/map/icons/" + json.iconID + ".gif");
                   icon.setAttribute("width","16");
                   icon.setAttribute("height","16");
	               infoBoxImage.appendChild(icon);
                }
	           
	            var type = document.createElement("span");
	            type.style.fontWeight = "bold";
	            type.innerHTML = json.ptype;
	            infoBoxType.appendChild(type);
	            
	            var district = document.createElement('span');
	            district.innerHTML = json.district;
	            infoBoxDistrict.appendChild(district);
	            
	            var adress = document.createElement('span');
	            adress.innerHTML = json.adress;
	            infoBoxAdress.appendChild(adress);
	            
	            var timeLimit = document.createElement('span');
	            timeLimit.innerHTML = json.timelimit;
	            infoBoxTimeLimit.appendChild(timeLimit);
	            
	            var parkingBan = document.createElement('span');
	            parkingBan.innerHTML = json.parkingban;
	            infoBoxParkingBan.appendChild(parkingBan);
	            
	            var vehicleLength = document.createElement('span');
	            vehicleLength.innerHTML = json.vehiclelength;
	            infoBoxLength.appendChild(vehicleLength);

	            box.style.display = "block";
	        }
	    }
	}
	
	function closeInfoBox(id)
	{
	    if (id != null && id != "")
	    {
	        document.getElementById(id).style.display = "none";
	    }
	    else
	    {
	        document.getElementById("mapInfoBox").style.display = "none";
	    }
	}
	
	function genarateObjects(response)
	{
	        
	        
	        //var str = response.replace(/@a@/, "å").replace(/@A@/, "Å").replace(/@ao@/, "ä").replace(/@AO@/, "Ä").replace(/@o@/, "ö").replace(/@O@/, "Ö");
	        var json;
	        if (pageType == 6)
	        {
	            json = response;
	           
	        }
	        else
	        {
	            json = eval('('+response+')');
	        }
	        
	        var _x;
	        var _y;
	        var uLayer;
	        if (map.getObjectLayerById("userLayer"))
	        {
	            
	            uLayer = map.getObjectLayerById("userLayer");
			    //l.hide();
			    //map.removeObjectLayer("userLayer");
			    var length = -1; 
			    if (uLayer.geoObjectArray)
			        length = uLayer.geoObjectArray.length;
			    
			    for (var i = length; i >= 0; i--)
			    {
			        if (uLayer.geoObjectArray[i] != null)
			        {
			            map.removeGeoObject(uLayer.geoObjectArray[i].attributes[1].value,"userLayer");
			        }
			    }
			    //map.refreshObjects();
			    uLayer.draw();
			}
			else
			{
			    uLayer = map.addObjectLayer("userLayer","userLayer");
			}
			var geoArray = new Array();

			for (i = 0; i < json.geoObjects.length; i++)
			{
                 _x = json.geoObjects[i].x.replace(/,/, ".");
                 _y = json.geoObjects[i].y.replace(/,/, ".");
				var geoObject = map.createGeoObject(parseInt(_x), parseInt(_y), json.geoObjects[i].objectID,"userLayer","point");
				geoObject.setAttribute("objectID", json.geoObjects[i].objectID);
				if (pageType == 6 || pageType == 1)
				{
				    geoObject.setAttribute("name", json.geoObjects[i].name);
				    geoObject.setAttribute("description", json.geoObjects[i].description);
				    geoObject.setAttribute("location", json.geoObjects[i].location);
				    geoObject.setAttribute("cameraImage", "/CameraImages/" + json.geoObjects[i].baseName + "_thumb.jpg");
				    geoObject.setAttribute("cameraLink", json.geoObjects[i].pageLink);
				}
				else if (pageType == 5)
				{
				    geoObject.setAttribute("IconID",json.geoObjects[i].iconID );
				    geoObject.setAttribute("name", json.geoObjects[i].name);
				}
				else
				{
				   
				    geoObject.setAttribute("IconID",json.geoObjects[i].iconID );
				    geoObject.setAttribute("address", json.geoObjects[i].address);
				    geoObject.setAttribute("vehiclelength", json.geoObjects[i].vehiclelength);
				    geoObject.setAttribute("name", json.geoObjects[i].name);
				    geoObject.setAttribute("type", json.geoObjects[i].type);
				    geoObject.setAttribute("description", json.geoObjects[i].description);
				}
				geoObject.activate();
				geoArray.push(geoObject);
			   
			}
			
			uLayer.draw();
			
			if (_x != null && pageType != 1 && region !== "VSK")
			{
			    map.zoomToObjects(geoArray,5)
			    //highlightScale();
			  
			}
			else if ( pageType == 6)
			{
			    map.zoomToObjects(geoArray,5)
			}
			
	}
	
	function highLightObject(objectID)
	{
	    if (interval != null)
	    {
	        clearInterval(interval);
	        object = map.getGeoObject(objectID,"View0/objects");
	        if (object != null)
	        {
	            interval = window.setInterval('showHideItem()', 0.3 * 1000);
	        }
	    }
	}
	
	function showHideItem()
	{
	    if (blink % 2 == 0)
	    {
	        object.hide();
	    }
	    else 
	    {
	        object.show();
	    }
	    blink += 1;
	    if (blink > 20)
	    {
	        object.show();
	        blink = 0;
	        clearInterval(interval);
	    }
	}
	
