   s += "</head>";
   s += "<body>";
 
-  s += "<form method=\"get\" action=\"submit\"><input type=\"text\" name=\"text\"/><input type=\"submit\"/></form>";
+  s += "<form method=\"get\" action=\"submit\">";
+  s += "<input type=\"text\" name=\"text\"/>";
+  s += "<select name=\"color\">";
+  s += "<option value=\"white\">White</option>";
+  s += "<option value=\"red\">Red</option>";
+  s += "<option value=\"green\">Green</option>";
+  s += "<option value=\"blue\">Blue</option>";
+  s += "</select>";
+  s += "<input type=\"submit\"/>";
+  s += "</form>";
   
   s += "</body></html>\n";
 

  client.flush();

  if (req.indexOf("/submit") != -1) {
    int p1 = req.indexOf("?text=");
    int p2 = req.lastIndexOf(" ");
    if (p1 > -1 && p2 > -1) {
      p1 += 6;
      if (p1 < p2) {
          String newText = req.substring(p1, p2);
          urlDecode(newText);
          text = newText;
      }
    }
  }
  client.flush();

  // Prepare the response. Start with the common header:
  String style =
    "body { font-size: 200%; }"
    "div { width: auto; padding: 1em 0; }"
    "a { display: block; }"
    "button { width: 100%; height: 10%; margin: 1em 0; font-size: 100%; font-weight: bold; }";

  String s = "HTTP/1.1 200 OK\r\n";
  s += "Content-Type: text/html\r\n\r\n";

  client.print(s);
}

String parseUri(String request) {
  int p1 = request.indexOf(" ");
  int p2 = request.lastIndexOf(" ");
  return p2 > p1 ? request.substring(p1 + 1, p2) : "";
}

String parseQueryParam(String uri, String name) {
  // handle only single value
  int p1 = -1;
  int p2 = -1;
  p1 = uri.indexOf("?" + name + "=");
  p1 = p1 > -1 ? p1 : uri.indexOf("&" + name + "=");
  if (p1 > -1) {
    p1 += name.length() + 2;
    p2 =uri.indexOf("&", p1);
    String value = p2 > -1 ? uri.substring(p1, p2) : uri.substring(p1);
    urlDecode(value);
    return value;
  }
  return "";
}

// TODO add support for accented characters, such as %1F
void urlDecode(String &param) {
  param.replace("+"," ");
  param.replace("%21","!");
