﻿/* Author: JBaltikauskas */
/* Modified by: M.Pacha-Sucharzewski */

var GeolabMap = {
    GetMap : function()
    {
        DialogBox.Show(false, 5000);
        map = new VEMap("geoMap");
        map.onLoadMap = function()
        {
            Vehicle = new Geolab.Vehicle();
            Vehicle.setIcon(Settings.VehicleIcon);
            Vehicle.setPath(Settings.VehicleWebServicePath);
            Vehicle.setTitle(Settings.VehiclePinTitles);
            Vehicle.setGeoCoding(Settings.GeoCoding);
            Vehicle.setInterval(Settings.DataRefreshRate); 
            Vehicle.valueLabelID = 'WebUserControl_ToolBarList_ajax__slider_hLabel';
            window.setTimeout('Vehicle.InitSlider()', 5000); 
            

            
            var el = $get('MSVE_navAction_header');
            if(el){
                el.innerHTML = '<b style="font-size:7pt;">GeoGraphics Lab, Bridgewater, MA</b>';
            }
            el = null;
            mapNav = new Geolab.MapNav();
            el = $ID(Screen.DivIDContainer);
            el.style.visibility = "visible";
            el = null;
            window.setTimeout('map.AttachEvent("onkeydown", mapNav.KeyboardHandler)', 5000);
        };
        map.LoadMap(new VELatLong(Settings.Lat, Settings.Lon), Settings.MapZoom, Settings.MapStyle , false);
        map.SetCenter(new VELatLong(Settings.Lat, Settings.Lon));
        MapNav = new Geolab.MapNav('MapNav');
        window.setTimeout("MapNav.SetNavControl()", 4000);
        if(typeof(Dashboard.Init) == 'function') Dashboard.Init();
        Dashboard.InitializeTooltip();
    }
};


window.onload = function() {
    VEMap.SetMapSize();
    GeolabMap.GetMap();

    //Add GeoRSS files here:
    //CCRTA
    barnstable = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Barnstable.xml", barnstable);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = barnstable.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = barnstable.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_orange.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    barnstable.Hide();

    sealine = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Sealine.xml", sealine);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = sealine.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = sealine.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_blue.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    sealine.Hide();

    sandwich = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Sandwich.xml", sandwich);
    map.ImportShapeLayerData(veLayerSpec, function() {
    var count = sandwich.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = sandwich.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_green.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    sandwich.Hide();

    bourne = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Bourne.xml", bourne);
    map.ImportShapeLayerData(veLayerSpec, function() {
    var count = bourne.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = bourne.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_red.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    bourne.Hide();

    h2o = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/H2O.xml", h2o);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = h2o.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = h2o.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_green.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    h2o.Hide();

    flex = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Flex.xml", flex);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = flex.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = flex.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_brown.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    flex.Hide();

    //flex_offroute = new VEShapeLayer();
    //var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/FlexOffRoute.xml", flex_offroute);
    //map.ImportShapeLayerData(veLayerSpec);
    //flex_offroute.Hide();

    flex_offroute = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/FlexOffRoute.xml", flex_offroute);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var shape = flex_offroute.GetShapeByIndex(0);
        var pin;
        pin = "<img src='/images/area.png'/>";
        shape.SetCustomIcon(pin);
        shape.SetLineColor(new VEColor(160, 82, 45, 0.7));
        shape.SetFillColor(new VEColor(160, 82, 45, 0.4));
        shape.SetLineWidth(2);
    }, true);
    flex_offroute.Hide();
    
    hyannis = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Hyannis.xml", hyannis);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = hyannis.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = hyannis.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_red.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    hyannis.Hide();

    ptownntruro = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/PTownNTruro.xml", ptownntruro);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = ptownntruro.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = ptownntruro.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_darkgreen.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    ptownntruro.Hide();

    ptownbeaches = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/PTownBeaches.xml", ptownbeaches);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = ptownbeaches.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = ptownbeaches.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_lightgreen.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    ptownbeaches.Hide();

    whoosh = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Whoosh.xml", whoosh);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = whoosh.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = whoosh.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_lightblue.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    whoosh.Hide();
    //CCRTA End

    //BSU
    route1 = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/BSU_Route1.xml", route1);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = route1.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = route1.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_red.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    route1.Hide();

    route2 = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/BSU_Route2.xml", route2);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = route2.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = route2.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_blue.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    route2.Hide();

    route28 = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/BSU_Route28.xml", route28);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = route28.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = route28.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_green.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    route28.Hide();

    route28_flagstop = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/BSU_Route28_Flag_Stop.xml", route28_flagstop);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var shape = route28_flagstop.GetShapeByIndex(0);
        var pin;
        pin = "<img src='/images/area.png'/>";
        shape.SetCustomIcon(pin);
        shape.SetLineColor(new VEColor(0, 128, 0, 0.5));
        shape.SetFillColor(new VEColor(0, 128, 0, 0.3));
        shape.SetLineWidth(2);
    }, true);
    route28_flagstop.Hide();
    //BSU End

    //TESTING ONLY
    test = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/GeoRSS/Test.xml", test);
    map.ImportShapeLayerData(veLayerSpec, function() {
        var count = test.GetShapeCount();
        var stop, number, pin;
        for (var i = 0; i < count; ++i) {
            stop = test.GetShapeByIndex(i);
            number = i + 1;
            pin = "<img src='/images/PushPins/bus_stops/pin_red.png'/>";
            stop.SetCustomIcon(pin);
        }
    }, true);
    test.Hide();
    //END OF TESTING
}
window.onresize = function()
{
    VEMap.SetMapSize();
    if(MapNav) MapNav.onResize();
}
window.onunload = function()
{
    if(map) map.Dispose();
} 
