var map = null;
		
		// Initial Map View
		var Chiltern = new VELatLong(51.573620, -0.530260);
		
		var pinPoint = null;
        var pinPixel = null;
		             
		function GetMap() {            
			map = new VEMap('myMap');            
			map.LoadMap(Chiltern, 13 ,VEMapStyle.Road ,false);
			
			AddPin();
		}
		
		function AddPin()
        {
            // Add a new pushpin to the center of the map.
            pinPoint = map.GetCenter();
            pinPixel = map.LatLongToPixel(pinPoint);
            map.AddPushpin(pinPoint);
        }
        
        function getDirections()
        {
        	var start = document.getElementById("origin").value;
        	var locations = new Array(start, "SL9 7BB");
        	var myOptions = new VERouteOptions();
        	myOptions.DrawRoute = true;
        	myOptions.ShowDisambiguation = true;
        	myOptions.SetBestMapView = true; // Don't change map view
        	myOptions.RouteCallback = myRouteHandler;
        	map.GetDirections(locations, myOptions);
        }
        
        function myRouteHandler(route)
        {
        	var turns = "<h3>Turn-by-Turn Directions</h3>";

            turns += "<p><b>Distance:</b> " + route.Distance.toFixed(1) + " miles";

            turns += "<br/><b>Time:</b> " + GetTime(route.Time) + "</p>";

            // Unroll route and populate DIV
               var legs          = route.RouteLegs;
               var leg           = null;
               var turnNum       = 0;  // The turn #

               // Get intermediate legs
               for(var i = 0; i < legs.length; i++)
               {
                 // Get this leg so we don't have to derefernce multiple times
                 leg = legs[i];  // Leg is a VERouteLeg object

                 var legNum = i + 1;
                 
                 // Unroll each intermediate leg
                 var turn        = null;  // The itinerary leg
                 var legDistance = null;  // The distance for this leg
                 
                 for(var j = 0; j < leg.Itinerary.Items.length; j ++)
                 {
                    turnNum++;
                    
                    turn = leg.Itinerary.Items[j];  // turn is a VERouteItineraryItem object

                    turns += "<b>" + turnNum + "</b>\t" + turn.Text;

                    legDistance    = turn.Distance;

                    // So we don't show 0.0 for the arrival
                    if(legDistance > 0)
                    {
                       // Round distances to 1/10ths
                       turns += " (" + legDistance.toFixed(1) + " miles";

                       // Append time if found
                       if(turn.Time != null)
                       {
                          turns += "; " + GetTime(turn.Time);
                       }

                       turns += ")<br/>";
                    }
                 }

                 turns += "<br/>";
               

               // Populate DIV with directions
               SetDirections(turns);
            }
		}
		
		function SetDirections(s)
         {
            var d = document.getElementById("directions");
            d.innerHTML = s;
         }

         // 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 ClearAll()
         {
            map.DeleteRoute();
            document.getElementById("origin").value = "";
            SetDirections("");
            map.LoadMap(Chiltern, 13, VEMapStyle.Road, false);
            AddPin();
         }