﻿TrafficSpeedDisplay = function() {
    var vemap = null;
    var speedLayerID = "Traffic Speed Layer";
    var speedLayerURL = "speedtiles/%4.ashx";
    //comma seperated list of region codes to load in the display
    var regions = "";
    var thiz = {
        init: function(map, regionsToLoad) {
            if (!map) throw "Virtual Earth map was not defined. Could not create traffic speed layer.";
            vemap = map;
            thiz.reloadSpeedTileLayer(regionsToLoad);
        },
        isInitialized: function() {
            if (vemap) {
                return true;
            }
            return false;
        },
        addSpeedTileLayer: function() {
            //If there are no regions then dont load the layer
            if (regions == null || regions === "") {
                //do nothing           
            } else {
                var url = speedLayerURL + "?rnd=" + new Date().getTime() + "&regions=" + regions;
                var tileSourceSpec = new VETileSourceSpecification(speedLayerID, url);
                var bounds = [vemap.GetMapView()];
                tileSourceSpec.Bounds = bounds;
                tileSourceSpec.NumServers = 1;
                vemap.AddTileLayer(tileSourceSpec, true);
            }
        },
        reloadSpeedTileLayer: function(regionsToLoad) {
            regions = regionsToLoad || "";
            thiz.removeSpeedTileLayer();
            thiz.addSpeedTileLayer();
        },
        removeSpeedTileLayer: function() {
            //Virtual Earth throws exception if layer
            //does not exists so just ignore exception
            try {
                vemap.DeleteTileLayer(speedLayerID);
            } catch (e) { }
        }
    }
    return thiz;
} ();

