+ /* New table header for each backend */
+ if($prevbackend != $row['backend']) {
+ if($prevbackend < 0) {
+ echo html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td',
+ addSubmit(_("Edit selected"), 'editaddr').
+ addSubmit(_("Delete selected"), 'deladdr'),
+ 'center', '', "colspan=\"$abook_fields\"" )
+ ) .
+ html_tag( 'tr',
+ html_tag( 'td', ' <br />', 'center', '', "colspan=\"$abook_fields\"" )
+ ),
+ 'center' );
+ echo "\n<!-- start of address book table -->\n" .
+ html_tag( 'table', '', 'center', '', 'border="0" cellpadding="1" cellspacing="0" width="90%"' ) .
+ html_tag( 'tr', "\n" .
+ html_tag( 'th', ' ', 'left', '', 'width="1%"' ) . "\n" .
+ html_tag( 'th', _("Nickname") .
+ show_abook_sort_button($abook_sort_order, _("sort by nickname"), 0, 1),
+ 'left', '', 'width="1%"' ) . "\n" .
+ html_tag( 'th', _("Name") .
+ show_abook_sort_button($abook_sort_order, _("sort by name"), 2, 3),
+ 'left', '', 'width="1%"' ) . "\n" .
+ html_tag( 'th', _("E-mail") .
+ show_abook_sort_button($abook_sort_order, _("sort by email"), 4, 5),
+ 'left', '', 'width="1%"' ) . "\n" .
+ html_tag( 'th', _("Info") .
+ show_abook_sort_button($abook_sort_order, _("sort by info"), 6, 7),
+ 'left', '', 'width="1%"' ) .
+ ($abook->add_extra_field ? html_tag( 'th', ' ','left', '', 'width="1%"'): '') .
+ "\n",
+ '', $color[9] ) . "\n";
+ }
+
+ // Separate different backends with <hr />
+ if($prevbackend > 0) {
+ echo html_tag( 'tr',
+ html_tag( 'td', "<hr />", 'center', '' ,"colspan=\"$abook_fields\"" )
+ );
+ }
+
+ // Print backend name
+ echo html_tag( 'tr',
+ html_tag( 'td', "\n" . '<strong>' . $row['source'] . '</strong>' . "\n", 'center', $color[0] ,"colspan=\"$abook_fields\"" )
+ );
+
+ $line = 0;
+ $headerprinted = true;
+ } /* End of header */
+
+ $prevbackend = $row['backend'];
+
+ /* Check if this user is selected */
+ $selected = in_array($row['backend'] . ':' . $row['nickname'], $defselected);
+
+ /* Print one row, with alternating color */
+ if ($line % 2) {
+ $tr_bgcolor = $color[12];
+ } else {
+ $tr_bgcolor = $color[4];
+ }
+ echo html_tag( 'tr', '', '', $tr_bgcolor);
+ if ($abook->backends[$row['backend']]->writeable) {
+ echo html_tag( 'td',
+ '<small>' .
+ addCheckBox('sel[]', $selected, $row['backend'].':'.$row['nickname']).
+ '</small>' ,
+ 'center', '', 'valign="top" width="1%"' );
+ } else {
+ echo html_tag( 'td',
+ ' ' ,
+ 'center', '', 'valign="top" width="1%"' );
+ }
+ echo html_tag( 'td',
+ ' ' . htmlspecialchars($row['nickname']) . ' ',
+ 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
+
+ // different full name display formating for Japanese translation
+ if ($squirrelmail_language == 'ja_JP') {
+ /*
+ * translation uses euc-jp character set internally.
+ * htmlspecialchars() should not break any characters.
+ */
+ echo html_tag( 'td',
+ ' ' . htmlspecialchars($row['lastname']) . ' ' . htmlspecialchars($row['firstname']) . ' ',
+ 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
+ } else {
+ echo html_tag( 'td',
+ ' ' . htmlspecialchars($row['name']) . ' ',
+ 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );