<%

    var map : Map = OpenMap();
    
    // get the RoutingProblem object
    var rProblem : RoutingProblem = map.getRouting().createRoutingProblem();

    // set routing stops array
    var stops : GeoLocation[] = new GeoLocation[2];
    
    stops[0] = new GeoLocation (map, "Redlands, CA", 34.0528, -117.1531);
    stops[1] = new GeoLocation (map, "Redlands, CO", 39.0854, -108.6515);

    var rStop : RoutingStop;
    // add routing stops
    for(var i : int = 0; i < stops.Length; i++)
    {
        rStop = new RoutingStop();
        rStop.setStop(new GeoPoint( stops[i].x, stops[i].y));
        rStop.setLabel(stops[i].label);
        rProblem.addStop(rStop);
    }
	
    rProblem.setHighwayPreference( 50);
    rProblem.setWeight(RoutingProblem.rmShortest); // to find quickest use rmQuickest

    rProblem.setOptimize( false); // no optimization
    
    // Trip planning *****************************************************************
    
    // you should set your local time here to see correct results
    // see the Time constructor for details
    rProblem.setTripStart( new Time( "Thu, 02 Jun 2005 08:00:00 GMT -0600"));
    // see TimeSpan
    rProblem.setDayDriveStart( new com.esri.rmims.TimeSpan( 0, 8, 30, 0));
    rProblem.setDayDriveEnd( new com.esri.rmims.TimeSpan( 0, 17, 0, 0));
    rProblem.setDriveBetweenRest( new com.esri.rmims.TimeSpan( 0, 3, 0, 0));
    rProblem.setRestDuration( new com.esri.rmims.TimeSpan( 0, 0, 30, 0));
    rProblem.setDriveFlexibility( new com.esri.rmims.TimeSpan( 0, 0, 30, 0));
    rProblem.enableRestBreaks( true);
    rProblem.enableTripPlanning( true);
    
    //********************************************************************************    

    var routing : Routing = map.getRouting();
    var RouteID : String = routing.findRoute(rProblem, true, -1);

    // show the route
    routing.setRoute( RouteID);
    var r : GeoRectangle = routing.getDrivingDirections( RouteID).getExtent();
    map.setExtent( inflateRect(r, 10)); // increase borders

    // print driving directions
    var DDirs : DrivingDirections = routing.getDrivingDirections( RouteID);
    var DSeg : DirectionsSegment;
	
    Response.Write( "<p>"+DDirs.getStartText()+"<br>\n");
    Response.Write( DDirs.getFinishText()+"<br>\n");
    Response.Write( DDirs.getTotalText()+"<p>\n");

    for( i = 0; i < DDirs.getSegmentCount(); i++)
    {
        DSeg = DDirs.getSegment( i);
        Response.Write( (i+1)+". " + DSeg.getText() + "<br>\n");
        // if there is TimeLengthText
        if(DSeg.getSegmentType() != DirectionsSegmentType.rmArrive &&
           DSeg.getSegmentType() != DirectionsSegmentType.rmDepart)
        {
            Response.Write( DSeg.getTimeLengthText() + "<br>\n");
        }
    }	

%>