﻿var map = null;
var mapDiv;

function loadMap() {

	pageLoaded = true;
	map = new VEMap('myMap');
	map.LoadMap(new VELatLong(45.653931, -122.592876), 14);
	map.AddPushpin(new VEPushpin(1, new VELatLong(45.654064, -122.593512),
		null,
		'Accent Business Services',
		'7710 NE Greenwood Ave, Suite 170<br>Vancouver, WA 98662'));
}

function getRoute()
{
	var address = document.getElementById("address");
	if(address.value == "")
	    return;
	    
	var options = new VERouteOptions();
	options.RouteCallback = onGotRoute;
	map.GetDirections([address.value, '7710 NE Greenwood Ave, Vancouver, WA 98662'], options);
}

function onGotRoute(route)
{
	var address = document.getElementById("address").value;
    var routeinfo = '<table><tr><td><span style="font-weight:bold; font-size:9pt;">From ' + address + ' to Accent Business Services</span></td></tr>';
    
    routeinfo += '<tr><td><strong>Total Distance:</strong> ';
    routeinfo += route.Distance.toFixed(1) + ' mi';
    routeinfo += '  <strong>Estimated Drive Time:</strong> ';
    routeinfo += GetTime(route.Time) + '</td></tr></table>';
    var steps = '<ol style="text-align:left;">';
    
    var len = route.RouteLegs[0].Itinerary.Items.length;
    
    for (var i = 0; i < len; i++)
    {
        var leg = route.RouteLegs[0].Itinerary.Items[i];
        steps += '<li><p style="margin-top: 0; margin-bottom: 0">';
        steps += leg.Text;
        
        if ((leg.Distance != null) && (leg.Distance != 0))
        {
            steps += ' -- (';
            steps += leg.Distance.toFixed(2) + ') mi';
        }   
    }
    
    steps += '</ol>';
    routeinfo += steps;
    ShowRoute(routeinfo);
}

// time is an integer representing seconds
// returns a formatted string
function GetTime(time)
{
    if(time == null)
    {
       return("");
    }

    if (time > 60)
    {                                 // if time == 100
        var seconds = time % 60;       // seconds == 40
        var minutes = time - seconds;  // minutes == 60
        minutes     = minutes / 60;    // minutes == 1


        if (minutes > 60)
        {                                     // if minutes == 100
            var minLeft = minutes % 60;        // minLeft    == 40
            var hours   = minutes - minLeft;   // hours      == 60
            hours       = hours / 60;          // hours      == 1

            return(hours + " hour(s), " + minLeft + " minute(s), " + seconds + " second(s)");
        }
        else
        {
            return(minutes + " minutes, " + seconds + " seconds");
        }
    }
    else
    {
       return(time + " seconds");
    }
}

function ShowRoute(route)
{
    var routeSpan = document.getElementById('routeSpan');
    routeSpan.innerHTML = route;
}