/*
 * (c) 2006-2009 David Pritchard
 * All rights reserved.
 */

var defaultZoom = 12;
var defaultLong = -79.397;
var defaultLat = 43.692;
var defaultType = G_NORMAL_MAP;

// Setup map.
var map = new GMap2(document.getElementById("map"));

if( location.search.length > 0 )
{
    var i;
    var args = location.search.slice(1).split('&');
    for( i = 0; i < args.length; ++i )
    {
        var arg, val;
        arg = args[i].split('=');
        if( arg.length != 2 )
            continue;
        val = arg[1];
        arg = arg[0];
        if( arg == 'long' )
        {
            defaultLong = parseFloat(val);
        }
        else if( arg == 'lat' )
        {
            defaultLat = parseFloat(val);
        }
        else if( arg == 'type' )
        {
            var mapTypes = map.getMapTypes();
            for( j = 0; j < mapTypes.length; ++j)
            {
                if( mapTypes[j].getName(true) == val )
                {
                    defaultType = mapTypes[j];
                }
            }
        }
        else if( arg == 'zoom' )
        {
            defaultZoom = parseFloat(val);
        }
    }
}

map.setUIToDefault();
map.addControl(new google.maps.LocalSearch(),
               new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,20)));
map.setCenter(new GLatLng(defaultLat, defaultLong), defaultZoom, defaultType);
map.markermanager = new GMarkerManager(map);

var baseurl = "http://davidpritchard.org/maps/tortransit-2.0/";
var markerIcons = [
    new DTransitMarkerIcon(baseurl, "stop", new GSize(32,32),
             new GPoint(16,16), new GPoint(16,16)),
    new DTransitMarkerIcon(baseurl, "stop-transfer", new GSize(14,14),
             new GPoint(7,7), new GPoint(7,7)),
    new DTransitMarkerIcon(baseurl, "interchange", new GSize(40,40),
             new GPoint(20,20), new GPoint(20,20)),
    new DTransitMarkerIcon(baseurl, "interchange-transfer", new GSize(40,40),
             new GPoint(20,20), new GPoint(20,20)),
    new DTransitMarkerIcon(baseurl, "gostop", new GSize(32,32),
             new GPoint(16,16), new GPoint(16,16))
];

// Setup routes.
var routes = new DTransitRouteSet(map, baseurl,
    ["yonge", "bloor", "scarborough", "sheppard",
    "vivablue", "vivapurple",
    "lakeshorewest", "lakeshoreeast", "milton", "georgetown", "barrie",
    "richmondhill", "stouffville" ],
    markerIcons,
    [["elevator", "Accessible/Elevator"],
     ["washroom", "Washroom"],
     ["cashparking", "Parking (cash)"],
     ["metropassparking", "Parking (Metropass)"],
     ["transfer", "Transfer required for surface routes"]]);
GEvent.addListener(map, "zoomend", function(oldZoomLevel, newZoomLevel)
    { routes.onZoom(oldZoomLevel, newZoomLevel); }
);


// Setup Link to this page.
document.getElementById('linktopage').onclick = function()
{
    var newurl = location.href;
    // Cut off existing query string
    if( newurl.indexOf('?') >= 0 )
        newurl = newurl.slice(0, newurl.indexOf('?'));
    var center = map.getCenter();
    newurl += "?lat=" + center.lat().toFixed(5)
            + "&long=" + center.lng().toFixed(5)
            + "&zoom=" + map.getZoom()
            + "&type=" + map.getCurrentMapType().getName(true);
    location.href = newurl;
    return false;
}
