@Override
  public List<Performer> searchPerformerByName(String name) {
    final List<Performer> ret = new ArrayList<Performer>();

    // Constracut an URL for request
    final HashMap<String, String> params = this.createDefaultHashMap();
    params.put("keywords", name);
    final String url = this.conn.prepareURL("performers/search", params);

    // Get a json reply
    try {
      final JSONObject res = this.conn.query(url);
      final JSONObject tmp = res.getJSONObject("performers");

      JSONArray performers = null;

      try {
        // There is more than one results
        performers = tmp.getJSONArray("performer");
      } catch (final JSONException e) {
        // There is only one result
        performers = new JSONArray();
        performers.put(tmp.getJSONObject("performer"));
      }

      for (int i = 0, numOfPerformer = performers.length(); i < numOfPerformer; ++i) {
        final JSONObject performer = performers.getJSONObject(i);
        final HashMap<String, String> hint = new HashMap<String, String>();
        hint.put("engName", performer.getString("name"));
        hint.put("id", performer.getString("id"));
        final Performer p = new Performer(hint);
        ret.add(p);
      }
    } catch (final Exception e) {
      throw new Error(e);
    }
    return ret;
  }