anchor.diff:      <h2>Thank you, enjoy your meal!</h2><br><br>
       Date: ${date.substring(0, date.length-7)}<br>
       Order number: ${session.id}<br>
  -    Total amount: Yen ${formatNumberBy3(session.getAttribute("cart").amount)}<br><br>
  +    Total amount: \$${formatCcy(session.getAttribute("cart").amount)}<br><br>
       <form method="get" action="./GooSushi">
         <input type="submit" name= "thankYouPage" value="come again!">
       </form>
  
positive.code:   Ref: www.cresc.co.jp/tech/java/Google_Dart/DartLanguageGuide.pdf (in Japanese)
    November 2012, by Cresc Corp.
    January 2013, incorporated API change
    February 2013, incorporated API cange (Date -> DateTime)
    February 2013, incorporated dart:io changes
    March 2013, revised for Github uploading
    June 2013, incorporated dart:io changes (dart:uri and HttpRequest.queryParameters removed)
    July 2003, modified main() to ruggedize
  */
  
  import "dart:io";
  import "dart:utf" as utf;
  
  final HOST = "127.0.0.1";
  final int PORT = 8080;
  final REQUEST_PATH = "/GooSushi";
  final LOG_REQUESTS = false;
  final int MaxInactiveInterval = 60; // set this parameter in seconds.
  final ShoppingCart cartBase = new ShoppingCart();
  final Map menu = cartBase.items;  // today's menu
  
  
  void main() {
    try{
      print('today\'s menu');
      cartBase.sortedItemCodes().forEach((itemCode){
        print('itemCode : ${menu[itemCode].itemCode}, itemName : '
        '${menu[itemCode].itemName}, perItemCost : ${menu[itemCode].perItemCost}');
      });
  
      HttpServer.bind(HOST, PORT).then((HttpServer server) {
        server.sessionTimeout = MaxInactiveInterval; // set session timeout
        server.listen(
          (HttpRequest request) {
            request.response.done.then((d){
              if (LOG_REQUESTS) print("${new DateTime.now()} : "
                  "sent response to the client for request ${request.uri}");
            }).catchError((e) {
              print("new DateTime.now()} : Error occured while sending response: $e");
            });
            if (request.uri.path == REQUEST_PATH) {
              requestReceivedHandler(request);
            }
            else {
              request.response.statusCode = HttpStatus.BAD_REQUEST;
              request.response.close();
            }
          });
        print("new DateTime.now()} : Serving $REQUEST_PATH on http://${HOST}:${PORT}.");
      });
  
    } catch(err, st){
      print("new DateTime.now()} : Server Error : $err \n $st");
    }
  }
  
  
  void requestReceivedHandler(HttpRequest request) {
    final HttpResponse response = request.response;
    String htmlResponse;
    try {
      if (LOG_REQUESTS) print("\n" + createLogMessage(request).toString());
      Session session = new Session(request);
      if (LOG_REQUESTS) print(createSessionLog(request).toString());
      htmlResponse = createHtmlResponse(request).toString();
  //  if (LOG_REQUESTS) print(createSessionLog(request, session).toString());
    } catch (err, st) {
      htmlResponse = createErrorPage(err.toString() + st.toString()).toString();
    }
  
negative.code:       </table><br>
        <input type="submit" name= "menuPage" value="order">
      </form><br>
      Order will be cancelled in ${MAX_INACTIVE_SECS} seconds !
    </body>
  </html>''';
     sb.write(text3);
     return sb;
  }
  
  // Create confirm page HTML text.
  StringBuffer createConfirmPage(HttpRequest request, Session session) {
    // create a shopping cart
    var sb = new StringBuffer("");
    int iTotItems = 0;
  
    ShoppingCart cart = new ShoppingCart();
    cart.ClearItems();
    request.uri.queryParameters.forEach((String sName, String sValue) {
      int iQuantity;
      if (sName.startsWith("pieces_")) {
        iQuantity = int.parse(sValue);
        if (iQuantity != 0) {
          var cartItem = new ShoppingCartItem();
          cartItem.itemCode = int.parse(sName.substring(7));
          cartItem.iQty = iQuantity;
          cartItem.itemName = MENU[cartItem.itemCode].itemName;
          cartItem.perItemCost = MENU[cartItem.itemCode].perItemCost;
          cartItem.subTotal = multCcy(cartItem.perItemCost, iQuantity, 2);
          cart.addItem(cartItem);
          iTotItems++;
        }
      }
    }); // cart completed
    if (iTotItems < 1)  // nothing selected
      return sb;
    session.setAttribute("cart", cart); // and bind it to the session
    var text1 = '''
  <!DOCTYPE html>
  <html>
  