        var map = null;
        var icon = "<div><img src='/netherlands/webcontrols/virtualearth1/route/img/mslogo_92x15.png' style='width:92px; height: 15px;' class='pins' /></div>";           
        var infobox = "<div style='width:200px; height: 40px;'><table><tr><td style='font-size: 13px;'><b>Microsoft Nederland</b></td></tr><tr><td style='font-size: 11px;'>Evert van de Beekstraat 354</td></tr><tr><td style='font-size: 11px;'>1118 CZ Schiphol</td></tr><tr><td style='font-size: 11px;'>Telefoon: 020-5001500</td></tr></table></div>";
        function AddPushpin()      
        {         
            var shape = new VEShape(VEShapeType.Pushpin, map.GetCenter());
            shape.SetCustomIcon(icon);                  
            map.ClearInfoBoxStyles();         
            shape.SetTitle("");         
            shape.SetDescription(infobox);   
   //         pin.SetCustomIcon("<img src='./icon.PNG' class='pins'>");              
            map.AddShape(shape);        
        }
         
        function setDashboard()
        {
            map.SetDashboardSize(VEDashboardSize.Small);
        }
        
        function showMinimap()
        {
            map.ShowMiniMap(10,340);
        }
        
        function setHybridStyle()
        {
           map.SetMapStyle(VEMapStyle.Hybrid);                    
        }
        
        function setScaleBar(du)
        {
                 map.SetScaleBarDistanceUnit(du);
        }
        
                     
        function onGotRoute(route)
        {           

            document.getElementById("result").innerHTML = "";
            var legs = route.RouteLegs;
            var turns = "";
            var numTurns = 0;
            var leg = null;

            turns += "<table><tr><td></td><td>Actie</td><td>Over</td></tr>"            
            
            for(var i = 0; i < legs.length; i++)
            {               
                leg = legs[i];
                var turn = null;                  
                for(var j = 0; j < leg.Itinerary.Items.length; j ++)
                {                  
                    turn = leg.Itinerary.Items[j];  
                    numTurns++;
                    turns += "<tr><td>";
                    turns += numTurns;
                    turns += "</td><td>";
                    turns += turn.Text;
                    turns += "</td><td>";
                    turns += turn.Distance.toFixed(1) + " km";
                    turns += "</td></tr>";
                }
            }
            turns += "</table>"            
            turns += "Totale afstand: " + route.Distance.toFixed(1) + " km";
            document.getElementById("result").innerHTML = turns;
        }
        

        function GetMap()
        {            
           map = new VEMap("myMap");
           setDashboard();
           map.LoadMap(new VELatLong(52.30367009, 4.75001514), 17 ,'h' ,false);
           AddPushpin();
           setHybridStyle();
           setScaleBar(VEDistanceUnit.Kilometers);
           //setMapSize();
           //showMinimap();
  
        }   
         
        function SubmitForm()
        {
            if(validateForm())
            {
               var options = new VERouteOptions();
		var routeLocation = "";
               options.UseMWS = true; // get localized directions
               options.DistanceUnit = VERouteDistanceUnit.Kilometer;
               //VERouteDistanceUnit.Kilometer
               //options.SetBestMapView;  // verplaatst view zodat de route het beste zichtbaar is, default=true;
              
               options.RouteCallback = onGotRoute;

		//bepaal routeString

		// alle velden zijn ingevuld:
           	if(
		document.getElementById("straatnaam").value != "" && 
                document.getElementById("huisnummer").value != "" && 
                document.getElementById("woonplaats").value != "" && 
                document.getElementById("postcodeA").value != "" && 
                document.getElementById("postcodeB").value != "")
		{
               		routeLocation = document.getElementById("straatnaam").value + " "+ document.getElementById("huisnummer").value;
               		routeLocation += "," + document.getElementById("postcodeA").value + document.getElementById("postcodeB").value;
               		routeLocation += "," + document.getElementById("woonplaats").value;
		}
		// alleen de postcode is ingevuld
	        else if( ( document.getElementById("postcodeA").value != "" && document.getElementById("postcodeB").value != "") && (document.getElementById("straatnaam").value == "" || document.getElementById("huisnummer").value == "" || document.getElementById("woonplaats").value == ""))
		{
               		routeLocation = document.getElementById("postcodeA").value + document.getElementById("postcodeB").value;
		}
		// alleen straatnaam,nr en woonplaats ingevuld
            	else if( 
                	document.getElementById("straatnaam").value != "" && 
                	document.getElementById("huisnummer").value != "" && 
                	document.getElementById("woonplaats").value != "")
		{
               		routeLocation = document.getElementById("straatnaam").value + " "+ document.getElementById("huisnummer").value;
               		routeLocation += "," + document.getElementById("woonplaats").value;
		}
		
		if(routeLocation.length > 0)
		{
               		document.getElementById("result").innerHTML = "Bezig met berekenen van de routebeschrijving....";
               		map.GetDirections([routeLocation, new VELatLong(52.30367665, 4.74984884)], options);           
		}
		else
		{
               		document.getElementById("result").innerHTML = "";
		}
            }
        }
        
        function validateForm()
        {
            var formError = false;
            var result="De volgende velden zijn verplicht:\nPostcode - of - Straatnaam, Huisnummer en Woonplaats.\n";
            
            // alle velden zijn leeg
            if( 
                document.getElementById("straatnaam").value == "" && 
                document.getElementById("huisnummer").value == "" && 
                document.getElementById("woonplaats").value == "" && 
                document.getElementById("postcodeA").value == "" && 
                document.getElementById("postcodeB").value == "")
            {
                formError=true; 
            }

            // een van de postcode velden zijn leeg of een van de adresvelden is leeg
            if( ( document.getElementById("postcodeA").value != "" && document.getElementById("postcodeB").value == "") || 
                ( document.getElementById("postcodeA").value == "" && document.getElementById("postcodeB").value != "") ||
                ( document.getElementById("postcodeA").value == "" && document.getElementById("postcodeB").value == "")
              )
            {
                if( (  document.getElementById("straatnaam").value == "" 
                    || document.getElementById("huisnummer").value == "" 
                    || document.getElementById("woonplaats").value == "" )
                    )
                    formError=true; 
            }


            // als volledige postcode is ingevuld; gebruik alleen deze gegevens, maak adres weer leeg:
            if( ( document.getElementById("postcodeA").value != "" && document.getElementById("postcodeB").value != "") )
            {
                	document.getElementById("straatnaam").value == "" 
			document.getElementById("huisnummer").value == "" 
                    	document.getElementById("woonplaats").value == ""
                    	formError=false; 
            }


            if(formError)
            {
                alert(result);
                return false;
            }
            else
                return true;
        }