// field:	Field name in the db
// caption:	Shown field name (-> user)
// base:	Elements from core code (other type may be: "plugin")
// sort: 	Element can be used to be sorted by
// search:	Element can be used to search in
$aFields = array();
$aFields["name"] = array("field" => "name", "caption" => i18n("Name", $plugin_name), "type" => "base,sort,search");
$aFields["created"] = array("field" => "created", "caption" => i18n("Created", $plugin_name), "type" => "base,sort");
$aFields["status"] = array("field" => "status", "caption" => i18n("Status", $plugin_name), "type" => "base,sort");
// Not needed, as no sort/search, but keep as memo: $aFields["cronjob"]	= array("field" => "use_cronjob", "caption" => i18n("Use cronjob", $plugin_name), "type" => "base");
##################################
# Check external input
##################################
// Items per page (value stored per area in user property)
if (!isset($_REQUEST["elemperpage"]) || !is_numeric($_REQUEST["elemperpage"]) || $_REQUEST["elemperpage"] < 0) {
    $_REQUEST["elemperpage"] = $oUser->getProperty("itemsperpage", $area);
}
if (!is_numeric($_REQUEST["elemperpage"])) {
    // This is the case, if the user property has never been set (first time user)
    $_REQUEST["elemperpage"] = 25;
}
if ($_REQUEST["elemperpage"] > 0) {
    // -- All -- will not be stored, as it may be impossible to change this back to something more useful
    $oUser->setProperty("itemsperpage", $area, $_REQUEST["elemperpage"]);
}
unset($oUser);
$_REQUEST["page"] = (int) $_REQUEST["page"];
if ($_REQUEST["page"] <= 0 || $_REQUEST["elemperpage"] == 0) {
    $_REQUEST["page"] = 1;
}
// Sort order
##################################
# Store settings/Get basic data
##################################
if (isset($_REQUEST['action_html']) && $_REQUEST['action_html'] == 'save_newsletter_properties' && $perm->have_perm_area_action($area, "news_html_settings")) {
    // Storing settings
    if (isset($_REQUEST["ckbHTMLNewsletter"])) {
        $oClientLang->setProperty("newsletter", "html_newsletter", "true");
    } else {
        $oClientLang->setProperty("newsletter", "html_newsletter", "false");
    }
    $oClientLang->setProperty("newsletter", "html_template_idcat", (int) $_REQUEST["selHTMLTemplateCat"]);
    $oClientLang->setProperty("newsletter", "html_newsletter_idcat", (int) $_REQUEST["selHTMLNewsletterCat"]);
    $oUser->setProperty("newsletter", "test_idnewsgrp_lang" . $lang, (int) $_REQUEST["selTestDestination"]);
} else {
    // No settings to be stored, get current settings (language sepcific, as lang is client specific, lang is sufficient)
    $_REQUEST["selTestDestination"] = (int) $oUser->getProperty("newsletter", "test_idnewsgrp_lang" . $lang);
}
// Default value: Current user mail
$sSendTestTarget = $oUser->get("realname") . " (" . $oUser->get("email") . ")";
##################################
# Check external input
##################################
// Items per page (value stored per area in user property)
if (!isset($_REQUEST["elemperpage"]) || !is_numeric($_REQUEST["elemperpage"]) || $_REQUEST["elemperpage"] < 0) {
    $_REQUEST["elemperpage"] = $oUser->getProperty("itemsperpage", $area);
}
if (!is_numeric($_REQUEST["elemperpage"])) {
    // This is the case, if the user property has never been set (first time user)
    $_REQUEST["elemperpage"] = 25;
}
if ($_REQUEST["elemperpage"] > 0) {
                    echo "yo: " . $iRcpID;
                    $oRGroupMembers->remove($_REQUEST["idrecipientgroup"], $iRcpID);
                }
            }
        }
        $sRefreshLeftTopScript = '<script type="text/javascript">top.content.left.left_top.refreshGroupOption(\'' . $_REQUEST["idrecipientgroup"] . '\', \'remove\');
									top.content.left.left_top.refreshGroupOption(\'' . $_REQUEST["idrecipientgroup"] . '\', \'add\', \'' . $sGroupName . '\');</script>';
        $oPage->addScript('refreshlefttop', $sRefreshLeftTopScript);
    }
    if (count($aMessages) > 0) {
        $sNotis = $notification->returnNotification("warning", implode("<br>", $aMessages)) . "<br>";
    }
    // Set default values
    $oUser = new cApiUser($auth->auth["uid"]);
    if (!isset($_REQUEST["member_elemperpage"]) || !is_numeric($_REQUEST["member_elemperpage"]) || $_REQUEST["member_elemperpage"] < 0) {
        $_REQUEST["member_elemperpage"] = $oUser->getProperty("itemsperpage", $area . "_edit_member");
    }
    if (!is_numeric($_REQUEST["member_elemperpage"])) {
        $_REQUEST["member_elemperpage"] = 25;
    }
    if ($_REQUEST["member_elemperpage"] > 0) {
        // -- All -- will not be stored, as it may be impossible to change this back to something more useful
        $oUser->setProperty("itemsperpage", $area . "_edit_member", $_REQUEST["member_elemperpage"]);
    }
    if (!isset($_REQUEST["outsider_elemperpage"]) || !is_numeric($_REQUEST["outsider_elemperpage"]) || $_REQUEST["outsider_elemperpage"] < 0) {
        $_REQUEST["outsider_elemperpage"] = $oUser->getProperty("itemsperpage", $area . "_edit_outsider");
    }
    if (!is_numeric($_REQUEST["outsider_elemperpage"])) {
        $_REQUEST["outsider_elemperpage"] = 25;
    }
    if ($_REQUEST["outsider_elemperpage"] > 0) {
    $oSelHTMLNewsletterIDCat->setDisabled("disabled");
    $oCkbHTMLNewsletter->setDisabled("disabled");
}
// Destination for sending test newsletter
$oSelTestDestination = new cHTMLSelectElement("selTestDestination");
$oSelTestDestination->setStyle("width: 220px;");
$oOption = new cHTMLOptionElement(i18n("My mail address", $plugin_name), 0);
$oSelTestDestination->addOptionElement(0, $oOption);
$oRcpGroups = new RecipientGroupCollection();
$oRcpGroups->setWhere("idclient", (int) $client);
$oRcpGroups->setWhere("idlang", (int) $lang);
$oRcpGroups->setOrder("groupname");
$oRcpGroups->query();
$bTestTargetFound = false;
// Get client and language specific test destination. As lang is client specific, lang is sufficient
$iTestDestination = (int) $oUser->getProperty("newsletter", "test_idnewsgrp_lang" . $lang);
while ($oRcpGroup = $oRcpGroups->next()) {
    $iID = $oRcpGroup->get($oRcpGroup->primaryKey);
    if ($iTestDestination == $iID) {
        $bTestTargetFound = true;
    }
    $oOption = new cHTMLOptionElement($oRcpGroup->get("groupname"), $iID);
    $oSelTestDestination->addOptionElement($iID, $oOption);
}
unset($oRcpGroups);
if (!$bTestTargetFound) {
    // Currently specified test target doesn't exist anymore, get back to "my mail"
    $iTestDestination = 0;
}
if (!$perm->have_perm_area_action($area, "news_send_test")) {
    // No right to send somewhere else than to yourself
 if ($action == "news_job_detail_delete" && is_numeric($_REQUEST["idnewslog"]) && $perm->have_perm_area_action($area, "news_job_detail_delete")) {
     $oLogs->delete($_REQUEST["idnewslog"]);
 }
 // Initialize
 $iNextPage = Contenido_Security::toInteger($_GET['nextpage']);
 if ($iNextPage <= 0) {
     $iNextPage = 1;
 }
 if ($_REQUEST["sortmode"] !== "DESC") {
     $_REQUEST["sortmode"] = "ASC";
 }
 $sDateFormat = getEffectiveSetting("backend", "timeformat", "d.m.Y H:i");
 // Set default values
 $oUser = new cApiUser($auth->auth["uid"]);
 if (!isset($_REQUEST["elemperpage"]) || !is_numeric($_REQUEST["elemperpage"]) || $_REQUEST["elemperpage"] < 0) {
     $_REQUEST["elemperpage"] = $oUser->getProperty("itemsperpage", $area . "_job_details");
 }
 if (!is_numeric($_REQUEST["elemperpage"])) {
     $_REQUEST["elemperpage"] = 50;
 }
 if ($_REQUEST["elemperpage"] > 0) {
     // - All - will not be saved
     $oUser->setProperty("itemsperpage", $area . "_job_details", $_REQUEST["elemperpage"]);
 }
 $oFrmOptions = new UI_Table_Form("frmOptions");
 $oFrmOptions->setVar("contenido", $sess->id);
 $oFrmOptions->setVar("area", $area);
 $oFrmOptions->setVar("action", $action);
 $oFrmOptions->setVar("frame", $frame);
 $oFrmOptions->setVar("sortmode", $_REQUEST["sortmode"]);
 $oFrmOptions->setVar("sortby", $_REQUEST["sortby"]);