/* Start: start_map.js
********************************************************************************/

var object;
var blink = 0;
var interval = 0;
var miniInterval = 0;
var oldScale;
var scaleBarVSK = { "scales": [{ "text": "40km", "size": "95" }, { "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 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;
var trafficMessageObjects;

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");


    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") {
            var point = map.getMapCenter();
            map.setArea(point.x, point.y, 250000);
        }
        else {
            _map.setScale(1500000);
        }
    }

    if (pageType == 1)//Start
    {
        switch (region) {
            case "OSG":
                map.setArea(536648, 6472799, 1000000);
                break;
            case "JKP":
                map.setArea(449600, 6401626, 1000000);
                break;
            case "KRB":
                map.setArea(486641, 6283622, 1000000);
                break;
            case "BLK":
                map.setArea(524741, 6232557, 1000000);
                break;
            default:
                break;
        }
        GetTrafficMessageObjects();
        var noInformation = document.getElementById("noinfo")
        var trafficInformation = document.getElementById("trafficsegments");
        if (!trafficInformation) {
            if (noInformation) {
                noInformation.checked = true;
            }
        }
        setInterval("updateMap()", 60000);
        initSearchControl();
        if (region == "VST" || region == "VSK") {
            includeImageMap("tilemaps_" + map.getScale() + ".txt");

        }


        toggleCamera(_map);
        toggleWeather(_map);
        toggleTraffic(_map);
        _map.mapContainer.onclick = mapClickHandler;
        _map.registerOnScaleChangedEventHandler(zoomHandler);
        
    }
    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);
        }

        if (region == "KLM" || region == "VSO") {
            getObjects();
        }
    }
    else if (pageType == 101) //infartsparkering stora kartan //jocke
    {
        _map.mapContainer.onclick = mapClickHandler;

    }
    else if (pageType == 110)//vägskyltar //jocke
    {
        _map.mapContainer.onclick = mapClickHandler;
        getRoadSigns();

        setInterval("getRoadSigns()", 30000);
    }
    else if (pageType == 7)//Degraderad
    {
        _map.mapContainer.onclick = mapClickHandler;

    }   

    if (pageType == 11)//Widgetmap
    {
        //_map.mapContainer.onclick = mapClickHandler;
        _map.registerOnScaleChangedEventHandler(function() { DisplayQuery() });
        _map.registerOnAfterPanEventHandler(function() { DisplayQuery() });
    }

    //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) {

        GetTrafficMessageObjects();
        
//        if (region === "VSK") {
//            var point = map.getMapCenter();
//            map.setArea(point.x, point.y, 1500000);
//        }
    }


    //pagetype 10 is editmode for trafficmessages, get all messages here
    if (pageType == 10) {
    
        GetAllTrafficMessageObjects();
        _map.mapContainer.onclick = mapClickHandler;
    }
    
    
    oldScale = map.getScale();
    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 == "2") {//Parkeringskarta
//        var parkingId = getParkingId();
//        var parkingArea = $('#DropDownListDistrict option:selected').text();

//        window.open('/popup/MapPrint.aspx?region=' + region + '&scale=' + scale + '&xcoord=' + point.x + '&ycoord=' + point.y + '&layers=' + parkingId + '&district=' + parkingArea + '&mapType=parking', '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();
    
    var compScale = oldScale;
    
    if (oldScale != scale) {
        oldScale = scale;
        displayScale(scale);

        if (pageType == 1) {

            if (region == "VSK" && scale <= 50000 && compScale > 50000) {
                GetTrafficMessageObjects(); 
                map.registerOnAfterPanEventHandler(function() { GenarateTrafficMessageObjects(trafficMessageObjects) });
            }
            else if (region == "VSK" && compScale <= 50000 && scale > 50000) {
                map.onAfterPanEventHandlers = new Array();
                GetTrafficMessageObjects(); 
            }

            if (region == "VST" || region == "VSK") {
                includeImageMap("tilemaps_" + scale + ".txt");
                //toggleTraffic(_map);
            }
        }
    }

}
function displayScale(scale) {
    var indx;
    for (i = 0; i < mapScales.length; i++) {
        if (mapScales[i] == scale) {
            indx = i;
            break;
        }
    }
    var scaleObject;
    if (region == "VSK") {
        scaleObject = scaleBarVSK.scales[indx];
    }
    else {
        //if (region == "VST" || region == "VSO")
        scaleObject = scaleBarVST.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)
		return;
        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();
    toggleWeather();
    //map.refreshObjects(true);
    GetTrafficMessageObjects();
    //toggleAllObjectLayers();
    //    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 prepLageMapWithValues(cNumber) 
{
    var cookieValue = '101,104,120,103,102,106,110,105,160,163,142,164,161,roadinfo,';
    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, "");
    //            }

    //        }
    toggleObjectLayers(id);
}


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;
        }
        else if (cookie.match("noinfo")) {
            document.getElementById("noinfo").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 {
        
        try
        {
        if (mapInfoToShow != "-1") {            
            if (mapInfoToShow.match("roadinfo")) {
                document.getElementById("roadinfo").checked = true;
            }
            else if (mapInfoToShow.match("trafficsegments")) {
                document.getElementById("trafficsegments").checked = true;
            }            
        }
        }
        catch(err)
        {
        }
    
        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><p>" + traveltime[secID].timeStamp + "</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);
        }
        //Editläge
        else if (pageType == 10) {
            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 startD = objectList[i].getAttribute("StartTime");

            var o = { "id": oId, "header": startD.substring(0, 10) + " " + oHeader.substring(0, 35) + "...", "action": redirectToEditMessage, "type": null, "iconId": iconId };
            objectsArray.push(o);
        }
        else if (pageType == 101) //infartsparkering stora kartan
        {
            var oId = objectList[i].getAttribute("objectID");
            var oHeader = "";
            var oType = objectList[i].getAttribute("type");
            var iconId = objectList[i].getAttribute("IconID");
            var objectAction;

            objectAction = getObjectById;
            oType = null;
            oHeader = objectList[i].getAttribute("name");

            var o = { "id": oId, "header": oHeader.substring(0, 15) + "...", "action": objectAction, "type": oType, "iconId": iconId };
            objectsArray.push(o);
        }
        else if (pageType == 110) //Vägskyltar
        {
            var oId = objectList[i].getAttribute("objectID");
            var iconId = objectList[i].getAttribute("IconID");
            var signOn = objectList[i].getAttribute("signOn");
            var oHeader = "";
            var objectAction;

            objectAction = getObjectById;
            oHeader = objectList[i].getAttribute("name");

            var img = '<img width="14" src="/images/map/icons/vmsOff.gif" />';
            if (signOn == "True") {
                img = '<img width="14" src="/images/map/icons/vmsOn.gif" />';
            }

            var o = { "id": oId, "header": img + oHeader.substring(0, 13) + "...", "action": objectAction, "iconId": iconId };
            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 != "VST") {
                //region == "VSK" || region == "VSO"
                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 != "objectlayer_107" && objectList[i].layer.name.substring(0, 12) == "objectlayer_" && !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 == "objectlayer_107" && !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) {
                // Sprites
                var icon = document.createElement("span");
                icon.setAttribute("class", "icon sprite-" + objectsArray[oaCount].iconId);
                oaDiv.appendChild(icon);
                
//                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 redirectToEditMessage(objectId) {
    __doPostBack("mapPostBack", objectId);
}

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 toggleObjectLayers(iconlistId) {
    var list = document.getElementById("iconList");
    if (iconlistId != null) {
        var icons = document.getElementById("hidden_" + iconlistId).value;
        var show = false;
        if (document.getElementById(iconlistId).checked == true) {
            show = true;
            list.value += icons;
        }
        else {
            show = false;
            list.value = list.value.replace(icons, "");
        }

        var iconsArray = icons.split(",");
        for (var i = 0; i < iconsArray.length; i++) {
            if (show) {
                showLayer(null, "objectlayer_" + iconsArray[i]);
            }
            else {
                hideLayer(null, "objectlayer_" + iconsArray[i]);
            }
        }


    }
}

function toggleAllObjectLayers() {
    var list = null;
    if (document.getElementById("iconList")) {
        list = document.getElementById("iconList").value;
        list += "107";
    } 
    var layers = map.getObjectLayers();
    if (layers != null && list != null) {
        for (var i = 0; i < layers.length; i++) {
            var str = layers[i].name;
            if (str.indexOf("objectlayer") > -1) {
                if (list.indexOf(str.substring(12, 15)) > -1) {
                    showLayer(null, layers[i].name);
                }
                else {
                    hideLayer(null, layers[i].name);
                }
            }
        }
    }
}

function toggleWeather(_map) {
    if (document.getElementById("vvisobjects").checked == false) {
        hideLayer(_map, "vvisobjects");

    }
    else {
        if (!map.getObjectLayerById("vvisobjects")) {
            GetVvisObjects();
        }
        showLayer(_map, "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) {
    
    toogleMapLayers(_map);
}

function toogleMapLayers(_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");
        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", "/TrafikenServices/TraveltimeService.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", "/TrafikenServices/ParkingService.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";
    }
    else if (pageType == 101) {
        method = "getEntranceParkingByID";
    }
    else if (pageType == 110) {
        method = "getRoadsignById";
    }
    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 == 101) {                       
                        generateEntranceParkingInfoBox(xhr.responseText);
                    }
                    else if (pageType == 2) {
                        genarateParkingInfoBox(xhr.responseText);
                        //disposeXMLHttpObject(xhr);
                    }
                    else if (pageType == 110) {
                        openedId = id;
                        isOpen = 1;
                        generateRoadsignBox(xhr.responseText);
                    }
                }
            }
            else {
            }
        }
	}

    var unique = new String(Math.random()).substring(2, 11);
    xhr.open("GET", "/Plugin/MapAjaxData.aspx?method=" + method + "&objectID=" + id + "&unique=" + unique, true); //+ id 
	xhr.send(null);
	doDataCollect = false;
}

function getObjects() {

    if (pageType == 5) {
        var method = "getAllTollboth";
        var doDataCollect = true;
    }
    else if (region != "VST") {
        //region == "VSK" || region == "VSO"
        var method = "getParking";
        var district = null;
        var type = "rest";
        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); //+region
        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 generateRoadsignBox(response) {

    closeRoadSignBox();

    if (response != null && response != "empty" && response != "") {

        var json = eval('(' + response + ')');

        //Return if sign is off
        if (json.signOn == "False" || response == "empty") {
            return false;
        }

        //Skapa unik variabel att hänga på bildanropet så inte inaktuell data cachas
        var unique = new String(Math.random()).substring(2, 11);

        var $uiRoadsignInfoBox = $("#uiRoadsignInfoBox");
        var $uiCloseButton = $("#uiCloseButton");
        var $uiSignIcon = $("#uiSignIcon");
        var $uiMessageSign = $("#uiMessageSign");

        //Stora rödsvarta ikonen i skylten
        $uiSignIcon.attr("src", "/images/map/signIcons/" + json.roadSignIconID + ".gif" + "?unique=" + unique);

        //Visa skyltnamn överst
        $uiRoadsignInfoBox.empty().append('<div class="roadSignName">' + json.publicName + '</div><div style="clear: both;"></div>');
        

        //Skapa skyltbilden med text via vpf        
        // vpfurl format http://www.vpf.trafiken.dev/vpf.asp?id=
        $uiMessageSign.attr("src", vpfUrl + json.objectID + "&unique=" + unique);
        $uiMessageSign.removeClass();
        $uiMessageSign.addClass("signBg");
        $uiRoadsignInfoBox.append($uiMessageSign);

        if (json.roadSignIconID == '' || json.hasRoadSign == "False") {
            $uiSignIcon.css("display", "none");
        }
        else {
            $uiSignIcon.css("display", "block");
        }

        if (json.roadSignPosition == "left") {
            $uiRoadsignInfoBox.removeClass();
            $uiRoadsignInfoBox.css("display", "block");
            $uiRoadsignInfoBox.addClass("smallRoadsignBox");

            //Positionera rödsvarta ikonen på vpf-bilden
            $uiSignIcon.removeClass();
            $uiSignIcon.addClass("roadSignIconLeft");
            $uiRoadsignInfoBox.append($uiSignIcon);
        }
        else {
            $uiRoadsignInfoBox.removeClass();
            $uiRoadsignInfoBox.css("display", "block");
            $uiRoadsignInfoBox.addClass("bigRoadsignBox");

            //Positionera rödsvarta ikonen på vpf-bilden
            $uiSignIcon.removeClass();
            $uiSignIcon.addClass("roadSignIconTop");
            $uiRoadsignInfoBox.append($uiSignIcon);
        }

        //Lägg till stängknappen
        $uiCloseButton.removeClass();
        $uiCloseButton.addClass("closebutton");
        $uiRoadsignInfoBox.append($uiCloseButton);
    }
}

function closeRoadSignBox() {
    var $uiRoadsignInfoBox = $("#uiRoadsignInfoBox");
    $uiRoadsignInfoBox.css("display", "none");
} 

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";

        }

        // Sprites
        var icon = document.createElement("span");
        icon.setAttribute("class", "icon sprite-" + iconId);
        infoBoxImage.appendChild(icon);
        
//        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);

        var brD = document.createElement("br");
        infoBoxHead.appendChild(brD);

        var start = document.createElement('span');
        start.innerHTML = "G&auml;ller fr&aring;n " + geoObject.getAttribute("StartDate");
        infoBoxHead.appendChild(start);

        var brP = document.createElement("br");
        infoBoxHead.appendChild(brP);

        var provider = document.createElement('span');
        provider.innerHTML = "K&auml;lla: " + geoObject.getAttribute("Provider");
        infoBoxHead.appendChild(provider);

        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 != "") {
                // Sprites
                var icon = document.createElement("span");
                icon.setAttribute("class", "icon sprite-" + json.iconID);
                infoBoxImage.appendChild(icon);
        
//                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 version = document.createElement("span");
            version.innerHTML = "Meddelandet uppdaterat " + json.versiontime + "<br />";
            infoBoxHead.appendChild(version);
            

            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 != "") {
                // Sprites
                var icon = document.createElement("span");
                icon.setAttribute("class", "icon sprite-" + json.iconID);
                infoBoxImage.appendChild(icon);
                
//                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 airMoist = document.createElement('span');
            airMoist.innerHTML = "Luftfuktighet: " + json.moisture;
            infoBoxHead.appendChild(airMoist);

            var br8 = document.createElement("br");
            infoBoxHead.appendChild(br8);
            
            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 != "") {
                // Sprites
                var icon = document.createElement("span");
                icon.setAttribute("class", "icon sprite-" + json.iconID);
                infoBoxImage.appendChild(icon);
                
//                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?v=" + new String(Math.random()).substring(2, 11));
            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);
            geoObject.icon.image = "/images/map/icons/" + json.geoObjects[i].iconID + ".gif";
        }
        else if (pageType == 101) { //Infartsparkering (jocke)
            geoObject.setAttribute("IconID", json.geoObjects[i].iconID);
            geoObject.setAttribute("name", json.geoObjects[i].name);

            geoObject.icon.image = "/images/map/icons/" + json.geoObjects[i].iconID + ".gif";

        }
        else if (pageType == 110)//Vägskyltar (jocke)
        {           
            geoObject.setAttribute("name", json.geoObjects[i].publicName);
            geoObject.setAttribute("signOn", json.geoObjects[i].signOn);

            if (json.geoObjects[i].signOn == "True") {
                geoObject.icon.image = "/images/map/icons/vmsOn.gif";
            }
            else {
                geoObject.icon.image = "/images/map/icons/vmsOff.gif";
            }
        }
        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);

    }

    //Update open sign if type is roadSign
    if (pageType == 110) {
        if (isOpen == 1 && openedId != '0') {
            getObjectById(openedId);
        }
    }

    uLayer.draw();

    if (_x != null && pageType != 1 && pageType != 110 && 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);
    }
}


function GetAllTrafficMessageObjects() {
    GetTMObjects(true);    
}

function GetTrafficMessageObjects() {
    GetTMObjects(false);
}

function GetTMObjects(getAll) {

    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) {
                    trafficMessageObjects = xhr.responseText; //alert(xhr.responseText);
                    GenarateTrafficMessageObjects(xhr.responseText);
                    
                    //Hack for Safari, move center x -0,0000001 to display map
                    if (navigator.appVersion.indexOf("Safari") != -1) {                        
                        var p = map.getMapCenter();
                        map.setArea(p.x - 0.0000001, p.y, map.getScale());                                                
                    }
                }
                else {
                }
            }
        }

        var d = new Date();
        var dd = d.getTime();
        var skanetrafik = false;
        
        if (map.getScale() <= 50000) {
            skanetrafik = true;
        }

        /*if (region == "VSK") {
            skanetrafik = true;
        }*/
       
        
        var currentRegion = region;
        if (region == "KLM" || region == "VSO" || region == "OSG" || region == "JKP" || region == "KRB" || region == "BLK") {
            currentRegion = "";
        }

        
        if (getAll) {
            xhr.open("GET", "/TrafikenServices/TrafficService.ashx?resp=json&region=" + currentRegion + "&method=allmaptraffic&skanetrafik=" + skanetrafik + "&date=" + dd, true); //+ id
        }
        else {
            xhr.open("GET", "/TrafikenServices/TrafficService.ashx?resp=json&region=" + currentRegion + "&method=maptraffic&skanetrafik=" + skanetrafik + "&date=" + dd, true); //+ id
        }
        
        xhr.send(null);
        doDataCollect = false;
    }
}

function GenarateTrafficMessageObjects(trafficJson) {
    var straffic = false;
    if (region == "VSK" && map.getScale() <= 50000) {
        //Flagga för att visa mindre urval i skåne, då de har fler meddelanden än andra områden. Annars hänger sig kartan.
        straffic = true;
    }
    var json = eval('(' + trafficJson + ')');
    var overlayLayers = map.getObjectLayers();
    var layerLength = overlayLayers.length;
    var geoRect = map.getGeoRect();
    
    for (var n = layerLength - 1; n >= 0; n--) {
        
        if (overlayLayers[n].name.substring(0, 12) == "objectlayer_") {
            try {
                hideLayer(null, overlayLayers[n].name);
                overlayLayers[n].unload();
                destroyNode(overlayLayers[n].container);
                overlayLayers.splice(n, 1);
                //this.view.overlayArray.splice(i, 1);
                //var removed = map.removeObjectLayer(overlayLayers[n].name);                
            }
            catch (err) {}
        }
    }
    for (var i = 0; i < json.objectLayers.length; i++) {
        
        var uLayer = map.addObjectLayer(json.objectLayers[i].layerName, json.objectLayers[i].layerName);
        var layer = json.objectLayers[i];

       
        
        for (var ii = 0; ii < layer.objects.length; ii++) {

            

            var message = layer.objects[ii];
            if (straffic) {
                if (message.xcoord < geoRect.xMax && message.xcoord > geoRect.xMin && message.ycoord < geoRect.yMax && message.ycoord > geoRect.yMin) {
                    var _x = message.xcoord; //.replace(/,/, ".");
                    var _y = message.ycoord; //.replace(/,/, ".");
                    var geoObject = map.createGeoObject(_x, _y, message.id, layer.layerName, "point");
                    geoObject.setAttribute("Id", layer.objects[ii].id);
                    //geoObject.setAttribute("IconID", message.type);
                    geoObject.setAttribute("Teaser", message.teaser);
                    geoObject.setAttribute("StartTime", message.startDate);
                    
                    //Väglagsinformation
                    if (message.type == "107") {
                        geoObject.setAttribute("Name", message.title);
                        geoObject.setAttribute("ConditionInfo", message.text);
                        geoObject.setAttribute("Provider", message.provider);
                        geoObject.setAttribute("StartDate", message.startDate + " " + message.startTime);
                    }                

                    //Override setAttribute since it doesnt set the right iconId //jocke
                    geoObject.icon.image = "/images/map/icons/" + message.type + ".gif";
                    
                    geoObject.activate();
                }
            }
                else {
                var _x = message.xcoord; //.replace(/,/, ".");
                var _y = message.ycoord; //.replace(/,/, ".");
                var geoObject = map.createGeoObject(_x, _y, message.id, layer.layerName, "point");
                geoObject.setAttribute("Id", layer.objects[ii].id);
                //geoObject.setAttribute("IconID", message.type);
                geoObject.setAttribute("Teaser", message.teaser);
                geoObject.setAttribute("StartTime", message.startDate);

                //Väglagsinformation
                if (message.type == "107") {
                    geoObject.setAttribute("Name", message.title);
                    geoObject.setAttribute("ConditionInfo", message.text);
                    geoObject.setAttribute("Provider", message.provider);
                    geoObject.setAttribute("StartDate", message.startDate + " " + message.startTime);
                }


                //Override setAttribute since it doesnt set the right iconId //jocke           
                geoObject.icon.image = "/images/map/icons/" + message.type + ".gif";
               
                
                geoObject.activate();
            }
        }
    }

    if (navigator.appVersion.indexOf("Safari") != -1) {

        initToggle(101);
        initToggle(101);
        initToggle(104);
        initToggle(104);
        initToggle(120);
        initToggle(120);
        initToggle(103);
        initToggle(103);
        initToggle(102);
        initToggle(102);
        initToggle(106);
        initToggle(106);
        initToggle(110);
        initToggle(110);
        initToggle(105);
        initToggle(105);

        initToggle(160);
        initToggle(160);
        initToggle(163);
        initToggle(163);
        initToggle(142);
        initToggle(142);
        initToggle(164);
        initToggle(164);
        initToggle(161);
        initToggle(161);

        toggleTraffic();

    }
    else {
        toggleAllObjectLayers();
    }
}

function GetVvisObjects() {

    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);
                    GenarateVvisObjects(xhr.responseText);
                }
                else {
                }
            }
        }
        var d = new Date();
        var dd = d.getTime();
        var skanetrafik = false;
        if (region == "VSK") {
            xhr.open("GET", "/TrafikenServices/TrafficService.ashx?resp=json&region=" + region + "&method=vvis&xcoord=475513&ycoord=6267249&date=" + dd, true);
        }
        else {
            xhr.open("GET", "/TrafikenServices/TrafficService.ashx?resp=json&region=" + region + "&method=vvis&date=" + dd, true);
        }
        xhr.send(null);
        doDataCollect = false;
    }
}

function GenarateVvisObjects(vvisJson) {

    var json = eval('(' + vvisJson + ')');
    var overlayLayers = map.getObjectLayers();
    for (var i = 0; i < overlayLayers.length; i++) {
        if (overlayLayers[i].name == "vvisobjects") {
            try {
                hideLayer(null, overlayLayers[i].name);
                overlayLayers[i].unload();
                destroyNode(overlayLayers[i].container);
                overlayLayers.splice(i, 1);
                break;
            }
            catch (err) { }
        }
    }

    var uLayer = map.addObjectLayer("vvisobjects", "vvisobjectlayer");
    for (var ii = 0; ii < json.length; ii++) {
        var message = json[ii];
        var _x = message.xcoord; //.replace(/,/, ".");
        var _y = message.ycoord; //.replace(/,/, ".");
        var geoObject = map.createGeoObject(_x, _y, message.id, "vvisobjects", "point");
        geoObject.setAttribute("Id", message.id);
        geoObject.setAttribute("IconID", message.iconID);
        geoObject.setAttribute("Name", message.name);
        geoObject.setAttribute("TypeOfPercipitation", message.typeOfPrecepitation);
        geoObject.setAttribute("AirTemp", message.airTemperature);
        geoObject.setAttribute("RoadTemp", message.roadTemperature);
        geoObject.setAttribute("WindForce", message.windForce);
        geoObject.setAttribute("WindDirection", message.windDirection);
        geoObject.setAttribute("Moisture", message.moisture);

        geoObject.activate();
    }
}
/* End: start_map.js
********************************************************************************/
