function ShowTableInfo($full_name, $email_address, $reply_to, $signature, $post)
{
    global $color;
    $OtherBG = $color[0];
    if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '') {
        $OtherBG = '';
    }
    if ($full_name == '' && $email_address == '' && $reply_to == '' && $signature == '') {
        $isEmptySection = true;
    } else {
        $isEmptySection = false;
    }
    $return_val = '';
    $return_val .= sti_input(_("Full Name"), 'full_name', $full_name, $post, $OtherBG);
    $return_val .= sti_input(_("E-Mail Address"), 'email_address', $email_address, $post, $OtherBG);
    $return_val .= sti_input(_("Reply To"), 'reply_to', $reply_to, $post, $OtherBG);
    $return_val .= sti_textarea(_("Signature"), 'signature', $signature, $post, $OtherBG);
    $return_val .= concat_hook_function('options_identities_table', array($OtherBG, $isEmptySection, $post));
    $return_val .= html_tag('tr', '', '', $OtherBG);
    $return_val .= html_tag('td', ' ', 'left');
    $return_val .= html_tag('td', '', 'left');
    $return_val .= '<input type="hidden" name="form_for_' . $post . '" value="1" />';
    $return_val .= '<input type="submit" name="update" value="' . _("Save / Update") . '" />';
    if (!$isEmptySection && $post != '') {
        $return_val .= '<input type="submit" name="make_default_' . $post . '" value="' . _("Make Default") . '" />' . '<input type="submit" name="delete_' . $post . '" value="' . _("Delete") . '" />';
    }
    if (!$isEmptySection && $post != '' && $post > 1) {
        $return_val .= '<input type="submit" name="promote_' . $post . '" value="' . _("Move Up") . '" />';
    }
    $return_val .= concat_hook_function('options_identities_buttons', array($isEmptySection, $post));
    $return_val .= '</td></tr>' . html_tag('tr', html_tag('td', '&nbsp;', 'left', '', 'colspan="2"'));
    return $return_val;
}
/**
 * Returns html formated identity form fields
 *
 * Contains options_identities_buttons and options_identities_table hooks.
 * Before 1.4.5/1.5.1 hooks were placed in ShowTableInfo() function.
 * In 1.1.3-1.4.1 they were called in do_hook function with two or
 * three arguments. Since 1.4.1 hooks are called in concat_hook_function.
 * Arguments are moved to array.
 *
 * options_identities_buttons hook uses array with two keys. First array key is
 * boolean variable used to indicate empty identity field. Second array key
 * is integer variable used to indicate identity number
 *
 * options_identities_table hook uses array with three keys. First array key is
 * a string containing background color style CSS (1.4.1-1.4.4/1.5.0 uses only
 * html color code). Second array key is boolean variable used to indicate empty
 * identity field. Third array key is integer variable used to indicate identity
 * number
 * @param string $title Name displayed in header row
 * @param array $identity Identity information
 * @param integer $id identity ID
 * @return string html formatted table rows with form fields for identity management
 * @since 1.5.1 and 1.4.5 (was called ShowTableInfo() in 1.1.3-1.4.4 and 1.5.0)
 */
function ShowIdentityInfo($title, $identity, $id)
{
    global $color;
    if (empty($identity['full_name']) && empty($identity['email_address']) && empty($identity['reply_to']) && empty($identity['signature'])) {
        $bg = '';
        $empty = true;
    } else {
        $bg = ' style="background-color:' . $color[0] . ';"';
        $empty = false;
    }
    $name = 'newidentities[%d][%s]';
    $return_str = '';
    //FIXME: NO HTML IN THE CORE
    $return_str .= '<tr>' . "\n";
    $return_str .= '  <th style="text-align:center;background-color:' . $color[9] . ';" colspan="2">' . $title . '</th> ' . "\n";
    $return_str .= '</tr>' . "\n";
    $return_str .= sti_input(_("Full Name"), sprintf($name, $id, 'full_name'), $identity['full_name'], $bg);
    $return_str .= sti_input(_("E-Mail Address"), sprintf($name, $id, 'email_address'), $identity['email_address'], $bg);
    $return_str .= sti_input(_("Reply To"), sprintf($name, $id, 'reply_to'), $identity['reply_to'], $bg);
    $return_str .= sti_textarea(_("Signature"), sprintf($name, $id, 'signature'), $identity['signature'], $bg);
    $temp = array(&$bg, &$empty, &$id);
    $return_str .= concat_hook_function('options_identities_table', $temp);
    $return_str .= '<tr' . $bg . '> ' . "\n";
    $return_str .= '  <td> &nbsp; </td>' . "\n";
    $return_str .= '  <td>' . "\n";
    $return_str .= '    <input type="submit" name="smaction[save][' . $id . ']" value="' . _("Save / Update") . '" />' . "\n";
    if (!$empty && $id > 0) {
        $return_str .= '    <input type="submit" name="smaction[makedefault][' . $id . ']" value="' . _("Make Default") . '" />' . "\n";
        $return_str .= '    <input type="submit" name="smaction[delete][' . $id . ']" value="' . _("Delete") . '" />' . "\n";
        if ($id > 1) {
            $return_str .= '    <input type="submit" name="smaction[move][' . $id . ']" value="' . _("Move Up") . '" />' . "\n";
        }
    }
    $temp = array(&$empty, &$id);
    $return_str .= concat_hook_function('options_identities_buttons', $temp);
    $return_str .= '  </td>' . "\n";
    $return_str .= '</tr>' . "\n";
    $return_str .= '<tr>' . "\n";
    $return_str .= '  <td colspan="2"> &nbsp; </td>' . "\n";
    $return_str .= '</tr>';
    return $return_str;
}