// Default sort by field, possible values see above
$_REQUEST["searchin"] = "--all--";
// Free memory
unset($oUser);
unset($oClient);
##################################
# Get data
##################################
$oRcpGroups = new RecipientGroupCollection();
$oRcpGroups->setWhere("idclient", $client);
$oRcpGroups->setWhere("idlang", $lang);
if ($_REQUEST["filter"] != "") {
    if ($_REQUEST["searchin"] == "--all--" || $_REQUEST["searchin"] == "") {
        foreach ($aFields as $sKey => $aData) {
            if (strpos($aData["type"], "search") !== false) {
                $oRcpGroups->setWhereGroup("filter", $aData["field"], $_REQUEST["filter"], "LIKE");
            }
        }
        $oRcpGroups->setInnerGroupCondition("filter", "OR");
    } else {
        $oRcpGroups->setWhere($_REQUEST["searchin"], $_REQUEST["filter"], "LIKE");
    }
}
if ($_REQUEST["elemperpage"] > 0) {
    // Getting item count without limit (for page function) - better idea anyone (performance)?
    $oRcpGroups->query();
    $iItemCount = $oRcpGroups->count();
    if ($_REQUEST["elemperpage"] * $_REQUEST["page"] >= $iItemCount + $_REQUEST["elemperpage"] && $_REQUEST["page"] != 1) {
        $_REQUEST["page"]--;
    }
    $oRcpGroups->setLimit($_REQUEST["elemperpage"] * ($_REQUEST["page"] - 1), $_REQUEST["elemperpage"]);