$dimp_block_list = array();
// Show a folder summary of the mailbox. All polled folders are displayed.
-require_once DIMP_BASE . '/lib/Block/foldersummary.php';
+require_once IMP_BASE . '/lib/Block/foldersummary.php';
$dimp_block_list[_("Folder Summary")] = array(
'ob' => new Horde_Block_dimp_foldersummary(array())
);
// Alternate DIMP block - shows details of 'msgs_shown' number of the most
// recent unseen messages.
-//require_once DIMP_BASE . '/lib/Block/newmail.php';
+//require_once IMP_BASE . '/lib/Block/newmail.php';
//$dimp_block_list[_("Newest Unseen Messages")] = array(
// 'ob' => new Horde_Block_dimp_newmail(array('msgs_shown' => 3))
//);
function _cacheID($folder)
{
- $imp_mailbox = &IMP_Mailbox::singleton($folder);
- return $imp_mailbox->getCacheId();
+// $imp_mailbox = &IMP_Mailbox::singleton($folder);
+// return $imp_mailbox->getCacheId();
+ return false;
}
function _changed($folder, $compare, $indices = array(), $nothread = false)
array('dragdrop.js', 'imp', true),
array('dhtmlHistory.js', 'horde', true),
array('redbox.js', 'horde', true),
- array('mailbox-dimp.js', 'imp'),
+ array('mailbox-dimp.js', 'imp', false),
array('DimpSlider.js', 'imp', true),
array('unblockImages.js', 'imp', true)
);
*/
protected function _includeDIMPJSVars()
{
- global $browser, $conf, $dimp_conf, $dimp_prefs, $prefs, $registry;
+ global $browser, $conf, $prefs, $registry;
$compose_mode = (strstr($_SERVER['PHP_SELF'], 'compose-dimp.php') || strstr($_SERVER['PHP_SELF'], 'message-dimp.php'));
$horde_webroot = $registry->get('webroot', 'horde');
'name' => $registry->get('name', 'dimp'),
- 'preview_pref' => (bool)$dimp_prefs->getValue('show_preview'),
+ 'preview_pref' => (bool)$prefs->getValue('show_preview'),
'is_ie6' => ($browser->isBrowser('msie') && ($browser->getMajor() < 7)),
- 'buffer_pages' => intval($dimp_conf['viewport']['buffer_pages']),
- 'limit_factor' => intval($dimp_conf['viewport']['limit_factor']),
- 'viewport_wait' => intval($dimp_conf['viewport']['viewport_wait']),
- 'login_view' => $dimp_prefs->getValue('login_view'),
- 'background_inbox' => !empty($dimp_conf['viewport']['background_inbox']),
+ 'buffer_pages' => intval($conf['viewport']['buffer_pages']),
+ 'limit_factor' => intval($conf['viewport']['limit_factor']),
+ 'viewport_wait' => intval($conf['viewport']['viewport_wait']),
+ 'login_view' => $prefs->getValue('login_view'),
+ 'background_inbox' => !empty($conf['viewport']['background_inbox']),
// Turn debugging on?
- 'debug' => !empty($dimp_conf['js']['debug']),
+ 'debug' => !empty($conf['js']['debug']),
);
/* Gettext strings used in core javascript files. */
'close_draft' => $prefs->getValue('close_draft'),
'compose_cursor' => ($compose_cursor ? $compose_cursor : 'top'),
- 'abook_url' => Horde::url($imp_webroot . '/contacts.php'),
+ 'abook_url' => Horde::applicationUrl('contacts.php'),
'specialchars_url' => Horde::url($horde_webroot . '/services/keyboard.php'),
);
function notify()
{
$GLOBALS['notification']->notify(array('listeners' => 'status'));
- $msgs = $GLOBALS['dimp_listener']->getStack(true);
+ $msgs = $GLOBALS['imp_notify']->getStack(true);
if (!count($msgs)) {
return '';
}
$response->response = $data;
if ($notify) {
$GLOBALS['notification']->notify(array('listeners' => 'status'));
- $stack = $GLOBALS['dimp_listener']->getStack();
+ $stack = $GLOBALS['imp_notify']->getStack();
if (!empty($stack)) {
- $response->msgs = $GLOBALS['dimp_listener']->getStack();
+ $response->msgs = $GLOBALS['imp_notify']->getStack();
if (!(bool)$auto) {
$response->msgs_noauto = true;
}
*/
function menuList()
{
- if (isset($GLOBALS['dimp_conf']['menu']['apps'])) {
- $apps = $GLOBALS['dimp_conf']['menu']['apps'];
+ if (isset($GLOBALS['conf']['menu']['apps'])) {
+ $apps = $GLOBALS['conf']['menu']['apps'];
if (is_array($apps) && count($apps)) {
return $apps;
}
*
* @var array
*/
- protected $_imglist = array(
+ static protected $_imglist = array(
'0' => 'blank.png',
'1' => 'line.png',
'2' => 'join.png',
public function getThreadImageTree($indices, $sortdir)
{
$tree = array();
- $imgs = $this->getImageUrls(false);
+ $imgs = self::getImageUrls(false);
foreach ($this->getThreadTreeOb($indices, $sortdir) as $k => $v) {
$tree[$k] = '';
for ($i = 0, $length = strlen($v); $i < $length; ++$i) {
* @return array An array with the image code as a key and the image url
* as the value.
*/
- public function getImageUrls($ids = true)
+ static public function getImageUrls($ids = true)
{
$graphicsdir = $GLOBALS['registry']->getImageDir('horde');
$args = array();
- foreach ($this->_imglist as $key => $val) {
+ foreach (self::$_imglist as $key => $val) {
if ($ids) {
$args['id'] = 'thread_img_' . $key;
}
static public $printMode = false;
/* displayFolder() cache. */
- static protected $_displaycache = array();
+ static private $_displaycache = array();
/* hideDeletedMsgs() cache. */
- static protected $_delhide = null;
+ static private $_delhide = null;
/* getAuthKey() cache. */
- static protected $_authkey = null;
+ static private $_authkey = null;
/* _filesystemGC() cache. */
- static protected $_dirlist = array();
+ static private $_dirlist = array();
/**
* Makes sure the user has been authenticated to view the page.
if (Util::getFormData('popup')) {
Util::closeWindowJS();
} else {
- $url = Util::addParameter(Auth::addLogoutParameters(IMP::logoutUrl()), 'url', Horde::selfUrl(true));
+ $url = Util::addParameter(Auth::addLogoutParameters(self::logoutUrl()), 'url', Horde::selfUrl(true));
header('Location: ' . $url);
}
exit;
{
return ($GLOBALS['imp_search']->isSearchMbox($mbox))
? $GLOBALS['imp_search']->getLabel($mbox)
- : IMP::displayFolder($mbox);
+ : self::displayFolder($mbox);
}
/**
if (!empty($options['new_folder']) &&
(!empty($GLOBALS['conf']['hooks']['permsdenied']) ||
- (IMP::hasPermission('create_folders') &&
- IMP::hasPermission('max_folders')))) {
+ (self::hasPermission('create_folders') &&
+ self::hasPermission('max_folders')))) {
$text .= '<option value="" disabled="disabled">- - - - - - - - -</option>' . "\n";
$text .= '<option value="*new*">' . _("New Folder") . "</option>\n";
$text .= '<option value="" disabled="disabled">- - - - - - - - -</option>' . "\n";
if (isset($args['to']) && (strpos($args['to'], 'mailto:') === 0)) {
$mailto = @parse_url($args['to']);
if (is_array($mailto)) {
- $args['to'] = $mailto['path'];
+ $args['to'] = isset($mailto['path']) ? $mailto['path'] : '';
if (!empty($mailto['query'])) {
parse_str($mailto['query'], $vals);
foreach ($fields as $val) {
if ($prefs->getValue('compose_popup')) {
return true;
} else {
- $options += IMP::getComposeArgs();
+ $options += self::getComposeArgs();
$url = Util::addParameter(Horde::applicationUrl('compose.php', true),
$options, null, false);
header('Location: ' . $url);
*/
static public function composeLink($args = array(), $extra = array())
{
- $args = IMP::composeLinkArgs($args, $extra);
+ $args = self::composeLinkArgs($args, $extra);
$is_mimp = ($_SESSION['imp']['view'] == 'mimp');
if (!$is_mimp &&
if (isset($args['to'])) {
$args['to'] = addcslashes($args['to'], '\\"');
}
- return "javascript:" . IMP::popupIMPString('compose.php', $args);
+ return "javascript:" . self::popupIMPString('compose.php', $args);
} else {
return Util::addParameter(Horde::applicationUrl($is_mimp ? 'compose-mimp.php' : 'compose.php'), $args);
}
$menu_search_url = Horde::applicationUrl('search.php');
$menu_mailbox_url = Horde::applicationUrl('mailbox.php');
- $spam_folder = IMP::folderPref($prefs->getValue('spam_folder'), true);
+ $spam_folder = self::folderPref($prefs->getValue('spam_folder'), true);
$menu = new Menu(HORDE_MENU_MASK_ALL & ~HORDE_MENU_MASK_LOGIN);
- $menu->add(IMP::generateIMPUrl($menu_mailbox_url, 'INBOX'), _("_Inbox"), 'folders/inbox.png');
+ $menu->add(self::generateIMPUrl($menu_mailbox_url, 'INBOX'), _("_Inbox"), 'folders/inbox.png');
if (($_SESSION['imp']['protocol'] != 'pop') &&
$prefs->getValue('use_trash') &&
if ($prefs->getValue('use_vtrash')) {
$mailbox = $GLOBALS['imp_search']->createSearchID($prefs->getValue('vtrash_id'));
} else {
- $trash_folder = IMP::folderPref($prefs->getValue('trash_folder'), true);
+ $trash_folder = self::folderPref($prefs->getValue('trash_folder'), true);
if (($trash_folder !== null)) {
$mailbox = $trash_folder;
}
}
if (!empty($mailbox) && !$imp_imap->isReadOnly($mailbox)) {
- $menu_trash_url = Util::addParameter(IMP::generateIMPUrl($menu_mailbox_url, $mailbox), array('actionID' => 'empty_mailbox', 'mailbox_token' => IMP::getRequestToken('imp.mailbox')));
+ $menu_trash_url = Util::addParameter(self::generateIMPUrl($menu_mailbox_url, $mailbox), array('actionID' => 'empty_mailbox', 'mailbox_token' => self::getRequestToken('imp.mailbox')));
$menu->add($menu_trash_url, _("Empty _Trash"), 'empty_trash.png', null, null, "return window.confirm('" . addslashes(_("Are you sure you wish to empty your trash folder?")) . "');", '__noselection');
}
}
if (($_SESSION['imp']['protocol'] != 'pop') &&
!empty($spam_folder) &&
$prefs->getValue('empty_spam_menu')) {
- $menu_spam_url = Util::addParameter(IMP::generateIMPUrl($menu_mailbox_url, $spam_folder), array('actionID' => 'empty_mailbox', 'mailbox_token' => IMP::getRequestToken('imp.mailbox')));
+ $menu_spam_url = Util::addParameter(self::generateIMPUrl($menu_mailbox_url, $spam_folder), array('actionID' => 'empty_mailbox', 'mailbox_token' => self::getRequestToken('imp.mailbox')));
$menu->add($menu_spam_url, _("Empty _Spam"), 'empty_spam.png', null, null, "return window.confirm('" . addslashes(_("Are you sure you wish to empty your spam folder?")) . "');", '__noselection');
}
if (empty($GLOBALS['conf']['hooks']['disable_compose']) ||
!Horde::callHook('_imp_hook_disable_compose', array(false), 'imp')) {
- $menu->add(IMP::composeLink(array('mailbox' => $GLOBALS['imp_mbox']['mailbox'])), _("_New Message"), 'compose.png');
+ $menu->add(self::composeLink(array('mailbox' => $GLOBALS['imp_mbox']['mailbox'])), _("_New Message"), 'compose.png');
}
if ($conf['user']['allow_folders']) {
/* If IMP doesn't provide Horde authentication then we need to use
* IMP's logout screen since logging out should *not* end a Horde
* session. */
- $logout_url = IMP::getLogoutUrl();
+ $logout_url = self::getLogoutUrl();
$id = $menu->add($logout_url, _("_Log out"), 'logout.png', $registry->getImageDir('horde'), $logout_target);
$menu->setPosition($id, HORDE_MENU_POS_LAST);
$GLOBALS['conf']['user']['allow_folders'], true);
if ($t->get('use_folders')) {
$t->set('accesskey', $GLOBALS['prefs']->getValue('widget_accesskey') ? Horde::getAccessKey(_("Open Fo_lder")) : '', true);
- $t->set('flist', IMP::flistSelect(array('selected' => $GLOBALS['imp_mbox']['mailbox'], 'inc_vfolder' => true)));
+ $t->set('flist', self::flistSelect(array('selected' => $GLOBALS['imp_mbox']['mailbox'], 'inc_vfolder' => true)));
$menu_view = $GLOBALS['prefs']->getValue('menu_view');
$link = Horde::link('#', '', '', '', 'folderSubmit(true); return false;');
$t->set('flink', sprintf('<ul><li class="rightFloat">%s%s<br />%s</a></li></ul>', $link, ($menu_view != 'text') ? Horde::img('folders/folder_open.png', _("Open Folder"), ($menu_view == 'icon') ? array('title' => _("Open Folder")) : array()) : '', ($menu_view != 'icon') ? Horde::highlightAccessKey(_("Open Fo_lder"), $t->get('accesskey')) : ''));
}
- $t->set('menu_string', IMP::getMenu('string'));
+ $t->set('menu_string', self::getMenu('string'));
echo $t->fetch(IMP_TEMPLATES . '/menu.html');
}
*/
static public function quota()
{
- $quotadata = IMP::quotaData(true);
+ $quotadata = self::quotaData(true);
if (!empty($quotadata)) {
$t = new IMP_Template();
$t->set('class', $quotadata['class']);
$folders = array();
foreach ($var as $mb => $nm) {
$folders[] = array(
- 'url' => Util::addParameter(IMP::generateIMPUrl('mailbox.php', $mb), 'no_newmail_popup', 1),
- 'name' => htmlspecialchars(IMP::displayFolder($mb)),
+ 'url' => Util::addParameter(self::generateIMPUrl('mailbox.php', $mb), 'no_newmail_popup', 1),
+ 'name' => htmlspecialchars(self::displayFolder($mb)),
'new' => (int)$nm,
);
}
if ($_SESSION['imp']['protocol'] != 'pop' &&
$GLOBALS['prefs']->getValue('use_vinbox') &&
($vinbox_id = $GLOBALS['prefs']->getValue('vinbox_id'))) {
- $t->set('vinbox', Horde::link(Util::addParameter(IMP::generateIMPUrl('mailbox.php', $GLOBALS['imp_search']->createSearchID($vinbox_id)), 'no_newmail_popup', 1)));
+ $t->set('vinbox', Horde::link(Util::addParameter(self::generateIMPUrl('mailbox.php', $GLOBALS['imp_search']->createSearchID($vinbox_id)), 'no_newmail_popup', 1)));
}
} else {
$t->set('msg', ($var == 1) ? _("You have 1 new message.") : sprintf(_("You have %s new messages."), $var));
if (!is_array(current($indices))) {
/* Build the list of indices/mailboxes if input is format #1. */
foreach ($indices as $msgIndex) {
- if (strpos($msgIndex, IMP::IDX_SEP) === false) {
+ if (strpos($msgIndex, self::IDX_SEP) === false) {
return false;
} else {
- list($val, $key) = explode(IMP::IDX_SEP, $msgIndex);
+ list($val, $key) = explode(self::IDX_SEP, $msgIndex);
$msgList[$key][] = $val;
}
}
/* We are dealing with format #2. */
foreach ($indices as $key => $val) {
if ($GLOBALS['imp_search']->isSearchMbox($key)) {
- $msgList += IMP::parseIndicesList($val);
+ $msgList += self::parseIndicesList($val);
} else {
/* Make sure we don't have any duplicate keys. */
$msgList[$key] = is_array($val) ? array_keys(array_flip($val)) : array($val);
static public function generateIMPUrl($page, $mailbox, $index = null,
$tmailbox = null, $encode = true)
{
- return Util::addParameter(Horde::applicationUrl($page), IMP::getIMPMboxParameters($mailbox, $index, $tmailbox), null, $encode);
+ return Util::addParameter(Horde::applicationUrl($page), self::getIMPMboxParameters($mailbox, $index, $tmailbox), null, $encode);
}
/**
if ($GLOBALS['prefs']->getValue('use_vtrash')) {
$delhide = !$GLOBALS['imp_search']->isVTrashFolder();
} else {
- $sortpref = IMP::getSort();
+ $sortpref = self::getSort();
$delhide = ($GLOBALS['prefs']->getValue('delhide') &&
!$GLOBALS['prefs']->getValue('use_trash') &&
($GLOBALS['imp_search']->isSearchMbox() ||
}
$search_mbox = $GLOBALS['imp_search']->isSearchMbox($mbox);
- $prefmbox = $search_mbox ? $mbox : IMP::folderPref($mbox, false);
+ $prefmbox = $search_mbox ? $mbox : self::folderPref($mbox, false);
$sortpref = @unserialize($GLOBALS['prefs']->getValue('sortpref'));
$entry = (isset($sortpref[$prefmbox])) ? $sortpref[$prefmbox] : array();
);
/* Can't do threaded searches in search mailboxes. */
- if (!IMP::threadSortAvailable($mbox)) {
+ if (!self::threadSortAvailable($mbox)) {
if ($ob['by'] == Horde_Imap_Client::SORT_THREAD) {
$ob['by'] = Horde_Imap_Client::SORT_DATE;
}
if (!$ob['limit'] &&
(($ob['by'] == Horde_Imap_Client::SORT_TO) ||
($ob['by'] == Horde_Imap_Client::SORT_FROM))) {
- if (IMP::isSpecialFolder($mbox)) {
+ if (self::isSpecialFolder($mbox)) {
/* If the preference is to sort by From Address, when we are
in the Drafts or Sent folders, sort by To Address. */
if ($ob['by'] == Horde_Imap_Client::SORT_FROM) {
$mbox = $GLOBALS['imp_mbox']['mailbox'];
}
- $prefmbox = ($GLOBALS['imp_search']->isSearchMbox()) ? $mbox : IMP::folderPref($mbox, false);
+ $prefmbox = ($GLOBALS['imp_search']->isSearchMbox()) ? $mbox : self::folderPref($mbox, false);
if ($delete) {
unset($sortpref[$prefmbox]);
// If headers have already been sent, we need to output a
// <script> tag directly.
if (ob_get_length() || headers_sent()) {
- IMP::outputInlineScript();
+ self::outputInlineScript();
}
}
static public function outputInlineScript()
{
if (!empty($GLOBALS['__imp_inline_script'])) {
- echo IMP::wrapInlineScript($GLOBALS['__imp_inline_script']);
+ echo self::wrapInlineScript($GLOBALS['__imp_inline_script']);
}
$GLOBALS['__imp_inline_script'] = array();
require_once 'Horde/Identity.php';
$identity = &Identity::singleton(array('imp', 'imp'));
- return (($mbox == IMP::folderPref($GLOBALS['prefs']->getValue('drafts_folder'), true)) || (in_array($mbox, $identity->getAllSentmailFolders())));
+ return (($mbox == self::folderPref($GLOBALS['prefs']->getValue('drafts_folder'), true)) || (in_array($mbox, $identity->getAllSentmailFolders())));
}
/**
case 'horde_cache':
$exists = $cache->exists($sig, empty($conf['server']['cachejsparams']['lifetime']) ? 0 : $conf['server']['cachejsparams']['lifetime']);
- $js_url = IMP::getCacheURL('js', $sig);
+ $js_url = self::getCacheURL('js', $sig);
break;
}
global $conf, $prefs, $registry;
$theme = $prefs->getValue('theme');
- $themesfs = $registry->get('themesfs', $app);
- $themesuri = $registry->get('themesuri', $app);
- $css = Horde::getStylesheets($app, $theme);
+ $themesfs = $registry->get('themesfs');
+ $themesuri = $registry->get('themesuri');
+ if ($app == 'imp') {
+ $css = Horde::getStylesheets('imp', $theme);
+ } else {
+ $css = self::_getDIMPStylesheets($theme);
+ }
$css_out = array();
// Add print specific stylesheets.
if ($app == 'dimp') {
$tmp['m'] = 'print';
$css_out[] = $tmp;
- $css_out[] = array('u' => $themesuri . '/print.css',
- 'f' => $themesfs . '/print.css',
+ $css_out[] = array('u' => $themesuri . '/print-dimp.css',
+ 'f' => $themesfs . '/print-dimp.css',
'm' => 'print');
} else {
$css_out[] = $tmp;
case 'horde_cache':
$exists = $cache->exists($sig, empty($GLOBALS['conf']['server']['cachecssparams']['lifetime']) ? 0 : $GLOBALS['conf']['server']['cachecssparams']['lifetime']);
- $css_url = IMP::getCacheURL('css', $sig);
+ $css_url = self::getCacheURL('css', $sig);
break;
}
}
/**
+ * TODO - Temporary DIMP fix.
+ */
+ private function _getDIMPStylesheets($theme = '')
+ {
+ if ($theme === '' && isset($GLOBALS['prefs'])) {
+ $theme = $GLOBALS['prefs']->getValue('theme');
+ }
+
+ $css = array();
+ $rtl = isset($GLOBALS['nls']['rtl'][$GLOBALS['language']]);
+
+ /* Collect browser specific stylesheets if needed. */
+ $browser_css = array();
+ if ($GLOBALS['browser']->isBrowser('msie')) {
+ $ie_major = $GLOBALS['browser']->getMajor();
+ if ($ie_major == 7) {
+ $browser_css[] = 'ie7.css';
+ $browser_css[] = 'ie7-dimp.css';
+ } elseif ($ie_major < 7) {
+ $browser_css[] = 'ie6_or_less.css';
+ $browser_css[] = 'ie6_or_less-dimp.css';
+ if ($GLOBALS['browser']->getPlatform() == 'mac') {
+ $browser_css[] = 'ie5mac.css';
+ }
+ }
+ }
+ if ($GLOBALS['browser']->isBrowser('opera')) {
+ $browser_css[] = 'opera.css';
+ }
+ if ($GLOBALS['browser']->isBrowser('mozilla') &&
+ $GLOBALS['browser']->getMajor() >= 5 &&
+ preg_match('/rv:(.*)\)/', $GLOBALS['browser']->getAgentString(), $revision) &&
+ $revision[1] <= 1.4) {
+ $browser_css[] = 'moz14.css';
+ }
+ if (strpos(strtolower($GLOBALS['browser']->getAgentString()), 'safari') !== false) {
+ $browser_css[] = 'safari.css';
+ }
+
+ foreach (array('horde', 'imp') as $app) {
+ $themes_fs = $GLOBALS['registry']->get('themesfs', $app);
+ $themes_uri = Horde::url($GLOBALS['registry']->get('themesuri', $app), false, -1);
+ $css[] = array('u' => $themes_uri . '/screen.css', 'f' => $themes_fs . '/screen.css');
+ $css[] = array('u' => $themes_uri . '/screen-dimp.css', 'f' => $themes_fs . '/screen-dimp.css');
+ if (!empty($theme) &&
+ file_exists($themes_fs . '/' . $theme . '/screen-dimp.css')) {
+ $css[] = array('u' => $themes_uri . '/' . $theme . '/screen.css', 'f' => $themes_fs . '/' . $theme . '/screen.css');
+ $css[] = array('u' => $themes_uri . '/' . $theme . '/screen-dimp.css', 'f' => $themes_fs . '/' . $theme . '/screen-dimp.css');
+ }
+
+ if ($rtl) {
+ $css[] = array('u' => $themes_uri . '/rtl.css', 'f' => $themes_fs . '/rtl.css');
+ if (!empty($theme) &&
+ file_exists($themes_fs . '/' . $theme . '/rtl.css')) {
+ $css[] = array('u' => $themes_uri . '/' . $theme . '/rtl.css', 'f' => $themes_fs . '/' . $theme . '/rtl.css');
+ }
+ }
+ foreach ($browser_css as $browser) {
+ if (file_exists($themes_fs . '/' . $browser)) {
+ $css[] = array('u' => $themes_uri . '/' . $browser, 'f' => $themes_fs . '/' . $browser);
+ }
+ if (!empty($theme) &&
+ file_exists($themes_fs . '/' . $theme . '/' . $browser)) {
+ $css[] = array('u' => $themes_uri . '/' . $theme . '/' . $browser, 'f' => $themes_fs . '/' . $theme . '/' . $browser);
+ }
+ }
+ }
+
+ return $css;
+ }
+
+ /**
* Do garbage collection in the statically served file directory.
*
* @param string $type Either 'css' or 'js'.
*/
- static protected function _filesystemGC($type)
+ static private function _filesystemGC($type)
{
$dir_list = &self::$_dirlist;
*/
static public function getAuthKey()
{
- $key = &IMP::$_authkey;
+ $key = &self::$_authkey;
if (is_null($key)) {
$key = Secret::getKey(Auth::getProvider() == 'imp' ? 'auth' : 'imp');
return $url;
}
+ /* Redirect DIMP to index page. */
+ if ($_SESSION['imp']['view'] == 'dimp') {
+ return Horde::applicationUrl('index-dimp.php', true);
+ }
+
$init_url = ($_SESSION['imp']['protocol'] == 'pop')
? 'INBOX'
: $GLOBALS['prefs']->getValue('initial_page');
}
$attachment = '';
- if (!empty($GLOBALS['dimp_conf']['hooks']['msglist_format'])) {
+ if (!empty($GLOBALS['conf']['hooks']['msglist_format'])) {
$ob_f = Horde::callHook('_dimp_hook_msglist_format', array($ob['mailbox'], $ob['uid']), 'dimp');
if (is_a($ob_f, 'PEAR_Error')) {
Horde::logMessage($ob_f, __FILE__, __LINE__, PEAR_LOG_ERR);
* Global variables defined:
* $imp_imap - An IMP_IMAP object
* $imp_mbox - Current mailbox information
+ * $imp_notify - A Notification_Listener_Mobile object
* $imp_search - An IMP_Search object
- * $mimp_notify - (MIMP view only) A Notification_Listener_Mobile object
* $mimp_render - (MIMP view only) A Horde_Mobile object
*
* Copyright 1999-2008 The Horde Project (http://www.horde.org/)
? $_SESSION['imp']['view']
: 'imp';
-$authentication = Util::nonInputVar('authentication');
-if ($authentication === null) {
- $authentication = 0;
-}
+$authentication = Util::nonInputVar('authentication', 0);
if ($authentication !== 'none') {
// If we've gotten to this point and have valid login credentials
// but don't actually have an IMP session, then we need to go
if (($viewmode == 'mimp') ||
(Util::nonInputVar('login_page') && $GLOBALS['browser']->isMobile())) {
require_once 'Horde/Notification/Listener/mobile.php';
- $GLOBALS['mimp_notify'] = &$notification->attach('status', null, 'Notification_Listener_mobile');
+ $GLOBALS['imp_notify'] = &$notification->attach('status', null, 'Notification_Listener_mobile');
} elseif ($viewmode == 'dimp') {
require_once IMP_BASE . '/lib/Notification/Listener/status-dimp.php';
- $GLOBALS['dimp_notify'] = &$notification->attach('status', null, 'Notification_Listener_status_dimp');
+ $GLOBALS['imp_notify'] = &$notification->attach('status', null, 'Notification_Listener_status_dimp');
} else {
require_once IMP_BASE . '/lib/Notification/Listener/status.php';
require_once 'Horde/Notification/Listener/audio.php';
- $notification->attach('status', null, 'Notification_Listener_status_imp');
+ $GLOBALS['imp_notify'] = &$notification->attach('status', null, 'Notification_Listener_status_imp');
$notification->attach('audio');
}
$GLOBALS['imp_mbox'] = IMP::getCurrentMailboxInfo();
// Initialize IMP_Search object.
-$GLOBALS['imp_search'] = ((isset($_SESSION['imp']) && strpos($GLOBALS['imp_mbox']['mailbox'], IMP::SEARCH_MBOX) === 0)
- ? new IMP_Search(array('id' => $GLOBALS['imp_mbox']['mailbox'])
+$GLOBALS['imp_search'] = (isset($_SESSION['imp']) && strpos($GLOBALS['imp_mbox']['mailbox'], IMP::SEARCH_MBOX) === 0)
+ ? new IMP_Search(array('id' => $GLOBALS['imp_mbox']['mailbox']))
: new IMP_Search();
if ((IMP::loginTasksFlag() === 2) &&
$debug = Util::nonInputVar('mimp_debug');
$GLOBALS['mimp_render'] = new Horde_Mobile(null, $debug);
$GLOBALS['mimp_render']->set('debug', !empty($debug));
+} elseif ($viewmode == 'dimp') {
+ // Need to explicitly load DIMP.php
+ require_once IMP_BASE . '/lib/DIMP.php';
}
$attachment = Horde::img('attachment.png', '', array('class' => 'attachmentImage'));
// Thread images
-$thread_imgs = IMP_Thread::getImageUrls();
+$thread_imgs = IMP_IMAP_Thread::getImageUrls();
// Attachment images
$imp_ui = new IMP_UI_Mailbox();
</div>
<div class="context" id="ctx_otheractions" style="display:none">
- <a id="previewtoggle"><?php echo $preview; echo ($dimp_prefs->getValue('show_preview') ? _("Hide Preview") : _("Show Preview")); ?></a>
+ <a id="previewtoggle"><?php echo $preview; echo ($prefs->getValue('show_preview') ? _("Hide Preview") : _("Show Preview")); ?></a>
<div class="sep"></div>
<a id="oa_seen"><?php echo $mailseen . _("Mark as Read") ?></a>
<a id="oa_unseen"><?php echo $mailunseen . _("Mark as New") ?></a>
--- /dev/null
+/**
+ * mailbox-dimp.js - Template used to format the rows in the message list
+ * display.
+ *
+ * See the documentation of prototypejs - Template for the template format:
+ * http://www.prototypejs.org/api/template
+ *
+ * Copyright 2005-2008 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+DimpBase.message_list_template =
+'<div id="#{domid}" title="#{subject}" class="#{bg_string}">' +
+ '<div class="msgStatus">' +
+ '<div class="msCheck"></div>' +
+ '<div class="msState"></div>' +
+ '<div class="msCompose"></div>' +
+ '<div class="msPri"></div>' +
+ '</div>' +
+ '<div class="msgFrom">#{from}</div>' +
+ '<div class="msgSubject">#{subject}</div>' +
+ '<div class="msgDate">#{date}</div>' +
+ '<div class="msgSize">#{size}</div>' +
+ '<div class="clear"> </div>' +
+'</div>';
+++ /dev/null
-/**
- * mailbox.js - Template used to format the rows in the message list display.
- *
- * See the documentation of prototypejs - Template for the template format:
- * http://www.prototypejs.org/api/template
- *
- * Copyright 2005-2008 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (GPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
- */
-
-DimpBase.message_list_template =
-'<div id="#{domid}" title="#{subject}" class="#{bg_string}">' +
- '<div class="msgStatus">' +
- '<div class="msCheck"></div>' +
- '<div class="msState"></div>' +
- '<div class="msCompose"></div>' +
- '<div class="msPri"></div>' +
- '</div>' +
- '<div class="msgFrom">#{from}</div>' +
- '<div class="msgSubject">#{subject}</div>' +
- '<div class="msgDate">#{date}</div>' +
- '<div class="msgSize">#{size}</div>' +
- '<div class="clear"> </div>' +
-'</div>';
+++ /dev/null
-/**
- * CSS corrections for IE 6 and below.
- */
-
-#pageContainer {
- height: auto;
-}
-
-#sidebarPanel, #normalfolders {
- width: 150px;
-}
-#normalfolders {
- /* IE 6 does not support max-height. To auto-size folder list display, set
- * height to 0px. */
- height: 0px;
- overflow: auto;
-}
-
-#sidebarPanel li {
- width: 100%;
-}
-.context {
- width: 180px;
-}
-
-div.msgSubject {
- width: 49%;
-}
-
-div.msgmiddle {
- margin-bottom: -4px;
-}
-
-.splitBar {
- background-attachment: fixed;
- font-size: 0px;
-}
-
-form#compose {
- margin-top: -13px;
-}
-#to, #cc, #bcc {
- overflow: auto;
-}
-#messageParent {
- width: auto !important;
-}
-#messageParent textarea#message {
- width: 97% !important;
-}
-
-#alerts {
- width: 500px;
-}
-#alerts div.ie6alertsfix {
- padding: 0;
- border: 0;
- background: url("graphics/clear.gif") repeat;
-}
-
-.block-monthgrid table {
- border-width: 2px;
-}
-
-#msglistHeader {
- height: 15px;
-}
-#mlistHeaderClear {
- display: none;
-}
-
-/* Fixes li & ol list numbering issues in HTML messages. */
-#html-message ul li, #html-message ol li {
- margin-left: 2em;
-}
+++ /dev/null
-/**
- * CSS corrections for IE 7.
- */
-
-#pageContainer {
- height: 1px;
-}
-
-#sidebarPanel li {
- overflow: hidden;
- max-width: 133px;
- text-overflow: ellipsis;
-}
-#sidebarPanel .folderlist {
- overflow-y: auto;
-}
-
-#msgSplitPane {
- margin-top: -4px;
- width: 99.7%;
-}
-
-div.msgSize {
- width: auto;
- overflow: hidden;
-}
-
-form#compose {
- margin-top: -13px;
-}
-#to, #cc, #bcc {
- overflow: auto;
-}
-
-.msgBody {
- width: expression(document.body.clientWidth-220);
-}
-
-#alerts {
- width: expression(document.body.clientWidth/2);
-}
-
-.block-monthgrid table {
- border-width: 2px;
-}
-
-#sidebarPanel li.custom img, #sidebarPanel li.servicelink img {
- padding-top: 1px;
-}
-
-#sidebarPanel li.folder a:hover, #sidebarPanel li.custom a:hover, #sidebarPanel li.servicelink a:hover {
- font-weight: bold;
- text-decoration: underline;
-}
-
-.dimpOptions div a:hover {
- text-decoration: underline;
-}
-
-/* Fixes li & ol list numbering issues in HTML messages. */
-#html-message ul li , #html-message ol li {
- margin-left: 2em;
-}
+++ /dev/null
-/**
- * DIMP print CSS.
- */
-
-body {
- background: #fff;
-}
-
-a, a:visited {
- color: #000;
-}
-
-#pageContainer {
- margin-left: 20px;
- margin-right: 20px;
-}
-
-#dimpmain {
- position: relative;
- left: 0 !important;
- margin-left: 0;
- top: 0;
-}
-
-#previewPane {
- height: auto !important;
-}
-
-#msgHeaders, .dispaddrlist {
- display: block !important;
-}
-
-.msgfullread .msgBody {
- border-top: 1px solid silver;
-}
-
-.label {
- min-width: 60px;
- text-align: right;
- font-weight: bold;
-}
-
-#msgHeadersColl, .context, .address img, .noprint, .mimeStatusMessage, .largeaddrlist, #alertslog {
- display: none !important;
-}
-a.address {
- left: 0;
- padding: 0;
- text-decoration: none;
-}
+++ /dev/null
-/**
- * DIMP core CSS.
- */
-
-/* Positioning */
-#pageContainer {
- clear: both;
-}
-
-/* Popdown styles. */
-a.popdown {
- cursor: pointer;
- background: url("graphics/popdown.png") no-repeat center center;
- padding: 5px !important;
-}
-a.popdown:hover {
- padding: 4px !important;
- border-left: 1px solid #fff;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
-}
-
-/* ini header. */
-#quota {
- float: right;
- font-weight: normal;
-}
-#quota .used {
- float: left;
- width: 100px;
- background: maroon url('graphics/quotaback.jpg') repeat-y;
- text-align: right;
- border: 1px #000 solid;
- margin-right: 2px;
-}
-#quota .used img {
- display: inline;
- float: none;
- padding: 0;
- border-left: 1px #000 solid;
- height: 14px;
-}
-div#quota {
- padding-bottom: 3px;
-}
-
-#mailboxHeader {
- clear: right;
-}
-
-#logo {
- display: none;
-}
-/* end header */
-
-#sidebarPanel {
- position: absolute;
- cursor: default;
- top: 0;
- left: 0;
- padding: 7px 0 0 7px;
- width: 150px;
- bottom: 0;
- z-index: 1;
- white-space: normal;
- -moz-border-radius-bottomright: 0;
- -webkit-border-bottom-right-radius: 0;
- border-bottom: 0px;
-}
-#dimpmain {
- position: absolute;
- margin-left: 13px;
- left: 150px;
- top: 4px;
- bottom: 0;
- right: 4px;
-}
-#dimpmain_portal h1.header a {
- cursor: pointer;
-}
-
-/* Autocomplete styles. */
-.autocomplete {
- background: #f4f4f4;
- border: 1px solid #d4d4d4;
- position: absolute;
- padding: 2px;
-}
-.autocomplete ul {
- margin: 1px;
- padding: 1px;
- list-style-type: none;
-}
-.autocomplete ul li {
- background: transparent;
- padding: 3px 4px 4px;
- cursor: pointer;
- color: #000;
-}
-.autocomplete ul .selected {
- background: gray;
- color: #fff;
-}
-
-/* SpellChecker styles. */
-.Checking {
- color: red;
-}
-.incorrect {
- text-decoration: underline;
- cursor: pointer;
- color: red;
-}
-.corrected {
- text-decoration: underline;
- cursor: pointer;
- color: #090;
-}
-
-/* SplitPane styles. */
-#msgSplitPane {
- background-color: #fff;
- border-left: 1px silver solid;
- border-right: 1px silver solid;
- border-bottom: 1px silver solid;
-}
-.splitBar {
- background: #e9e9e9 url("graphics/dragHandle.png") no-repeat scroll center top;
- border: 1px solid;
- border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
- cursor: n-resize;
- height: 5px;
- clear: left;
- z-index: 10;
-}
-
-/* Message List */
-div.loading img, #folderLoading, #msgLoading {
- z-index: 1000;
- background: #fff;
- border: 1px #e0e0e0 solid;
- padding: 2px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-/* Columns */
-div.msgStatus, div.msgFrom, div.msgSubject, div.msgDate, div.msgSize {
- float: left;
- overflow: hidden;
-}
-div.msgStatus {
- width: 6%;
-}
-div.msgStatus .msCheck, div.msgStatus .msState, div.msgStatus .msCompose, div.msgStatus .msPri {
- width: 16px;
- float: left;
-}
-div.msgFrom {
- width: 20%;
-}
-div.msgSubject {
- width: 50%;
-}
-div.msgDate {
- width: 15%;
-}
-div.msgSize {
- width: 9%;
-}
-
-/* Message List Header and Column Header */
-#msglistHeader {
- font-weight: bold;
- overflow: hidden;
- border: 1px solid silver;
- background: transparent url("graphics/backhead_orderby.png") repeat-x;
- height: 16px;
-}
-#msglistHeader a {
- cursor: pointer;
- display: block;
-}
-#msglistHeader div {
- padding-top: 1px;
- height: 15px;
-}
-#msglistHeader div.sortup {
- padding-left: 0;
- background-position: 2px;
-}
-#msglistHeader div.sortup a {
- padding-left: 14px;
-}
-#msglistHeader div.sortdown {
- padding-left: 0;
- background-position: 2px;
-}
-#msglistHeader div.sortdown a {
- padding-left: 14px;
-}
-#msglistHeader a small {
- padding-left: 2px;
- font-weight: normal;
-}
-
-/* Message ViewPort */
-.msglist {
- width: 100%;
- overflow: hidden;
- border-bottom: 1px silver solid;
- float: left;
-}
-.msglist em {
- font-weight: bold;
-}
-.msglistNoPreview {
- border-bottom: 0;
-}
-
-/* Rows */
-.msglist div.msgRow, .msglist div div {
- cursor: pointer;
- font-size: 95%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- height: 16px;
- border-bottom: 2px #fff solid;
-}
-/* Flags */
-.msglist div.unseen {
- font-weight: bold;
-}
-.msglist div.important, .msglist div.flagged {
- background: #fcc;
-}
-.msglist div.unimportant {
- font-weight: normal;
-}
-.msglist div.answered {
- background: #cfc;
-}
-.msglist div.deletedmsg {
- background: #999;
-}
-.msglist div.deletedmsg div.msgFrom, .msglist div.deletedmsg div.msgSubject, .msglist div.deletedmsg div.msgDate, .msglist div.deletedmsg div.msgSize {
- text-decoration: line-through;
-}
-.msglist div.selectedRow {
- background: #ffc;
-}
-/* Checkbox images */
-.msglist .msCheck {
- background: transparent url("graphics/checkbox_off.png") center center no-repeat;
-}
-.msglist .msCheck:hover {
- background: transparent url("graphics/checkbox_over.png") center center no-repeat;
-}
-.msglist div.selectedRow .msCheck {
- background: transparent url("graphics/checkbox_on.png") center center no-repeat;
-}
-
-/* Status images and flags selectors: status column */
-.msglist div.unseen .msState {
- background: transparent url("graphics/mail_unseen.png") center center no-repeat;
-}
-.msglist div.flagged .msState {
- background: transparent url("graphics/mail_flagged.png") center center no-repeat;
-}
-.msglist div.deletedmsg .msState {
- background: transparent url("graphics/mail_deleted.png") center center no-repeat;
-}
-/* Status images and flags selectors: priority column */
-.msglist div.unimportant .msPri {
- background: transparent url("graphics/mail_priority_low.png") center center no-repeat;
-}
-.msglist div.important .msPri {
- background: transparent url("graphics/mail_priority_high.png") center center no-repeat;
-}
-/* Status images and flags selectors: compose status column */
-.msglist div.answered .msCompose {
- background: transparent url("graphics/mail_answered.png") center center no-repeat;
-}
-.msglist div.draft .msCompose {
- background: transparent url("graphics/mail_draft.png") center center no-repeat;
-}
-/* Thread images. */
-div.msgSubject img {
- margin-top: -4px;
-}
-/* Size images. */
-div.msgSize img {
- margin-right: 2px;
-}
-
-/* Scroller */
-.sbdiv {
- position: relative;
- right: 0;
- width: 14px;
- overflow: auto;
- background-image: url("graphics/scroller_back.png");
- background-repeat: repeat-y;
-}
-.sbcursor {
- width: 13px;
- border-left: 1px solid silver;
- background-image: url("graphics/scroller.png");
- background-repeat: repeat-y;
-}
-.sbup {
- width: 13px;
- height: 16px;
- border-left: 1px solid silver;
- background: transparent url("graphics/sbcursor_top.png") center center no-repeat;
-}
-.sbdown {
- width: 13px;
- height: 17px;
- border-left: 1px solid silver;
- background: transparent url("graphics/sbcursor_bottom.png") center center no-repeat;
-}
-
-/* IFRAMEs */
-.iframe {
- position: absolute;
- left: 0;
- top: 0;
- bottom: 0;
- right: 0;
- border: none;
- width: 100%;
- height: 100%;
-}
-
-/* Sidebar */
-#sidebarPanel span {
- white-space: normal;
-}
-#sidebarPanel a {
- cursor: pointer;
- padding: 0;
-}
-#sidebarPanel a:hover {
- background: transparent;
-}
-#sidebarPanel p {
- margin: 0 0 5px;
-}
-#sidebarPanel p a {
- text-decoration: none;
- font-weight: bold;
-}
-#sidebarPanel p a img {
- padding-right: 3px;
-}
-#sidebarPanel .sepfull {
- font-size: 1px !important;
- line-height: 1px !important;
- height: 1px !important;
- margin: 5px 0;
- overflow: hidden;
- width: 150px;
- background: silver;
-}
-#sidebarPanel .count, #sidebarPanel a:hover .count {
- color: silver;
-}
-#sidebarPanel li {
- list-style: none;
- width: 100%;
- height: 17px;
- line-height: 17px;
- margin: 1px 0 0;
- white-space: nowrap;
-}
-#sidebarPanel li.folder, #sidebarPanel li.custom, #sidebarPanel li.servicelink {
- float: none;
- width: 100%;
- text-decoration: none;
- padding: 0;
-}
-#sidebarPanel li.custom, #sidebarPanel li.servicelink {
- display: block;
-}
-#sidebarPanel li a {
- padding-top: 1px;
- width: 130px;
- text-decoration: none;
-}
-#sidebarPanel li.custom a, #sidebarPanel li.servicelink a {
- padding-top: 0;
-}
-#sidebarPanel li.servicelink a {
- font-weight: bold;
-}
-#sidebarPanel li.custom {
- background: transparent none;
-}
-#sidebarPanel li.custom img, #sidebarPanel li.servicelink img {
- float: left;
- padding: 1px 4px 0 0;
-}
-#sidebarPanel li.folder a {
- display: inline;
-}
-#sidebarPanel .base {
- display: inline;
- float: left;
- width: 20px;
- height: 100%;
- background: transparent url("graphics/folder.png") center left no-repeat;
-}
-#sidebarPanel .col {
- display: inline;
- float: left;
- width: 20px;
- height: 100%;
- background: transparent url("graphics/folder_minus.png") center left no-repeat;
-}
-#sidebarPanel .exp {
- display: inline;
- float: left;
- width: 20px;
- height: 100%;
- background: transparent url("graphics/folder_plus.png") center left no-repeat;
-}
-#sidebarPanel .create {
- display: inline;
- float: left;
- width: 20px;
- height: 100%;
- background: transparent url("graphics/folder_create.png") center left no-repeat;
-}
-#sidebarPanel .drafts, #sidebarPanel .inbox, #sidebarPanel .sent, #sidebarPanel .spam, #sidebarPanel .trash {
- display: inline;
- float: left;
- width: 20px;
- height: 100%;
- padding: 0;
- background-color: transparent;
- background-position: center left;
- background-repeat: no-repeat;
-}
-#sidebarPanel .drafts {
- background-image: url("graphics/folder_drafts.png");
-}
-#sidebarPanel .inbox {
- background-image: url("graphics/folder_inbox.png");
-}
-#sidebarPanel .sent {
- background-image: url("graphics/folder_sent.png");
-}
-#sidebarPanel .spam {
- background-image: url("graphics/folder_spam.png");
-}
-#sidebarPanel .trash {
- background-image: url("graphics/folder_trash.png");
-}
-#sidebarPanel #normalfolders {
- overflow-x: hidden;
-}
-#sidebarPanel #myfolders {
- display: none;
-}
-#foldersSidebar {
- overflow: hidden;
-}
-#sidebarPanel .folderlist li a {
- width: auto;
- overflow: hidden;
- display: block;
- float: none;
-}
-#sidebarPanel li div {
- cursor: pointer;
-}
-#sidebarPanel li.subfolders {
- height: auto;
- margin: 0;
-}
-#sidebarPanel li.subfolders ul {
- padding-left: 10px;
-}
-#sidebarPanel li.subfolders li a {
- width: auto;
-}
-#sidebarPanel li.on {
- background: #ffc;
-}
-#sidebarPanel .over a, #sidebarPanel li.folder:hover, #sidebarPanel li.custom:hover, #sidebarPanel li.servicelink:hover {
- font-weight: bold;
- text-decoration: underline;
-}
-#sidebarPanel li a.drop {
- border: 1px solid orange;
- padding: 1px 1px 1px 19px;
-}
-
-/* Options */
-.dimpOptions {
- float: right;
- padding-right: 5px;
-}
-.dimpOptions div {
- clear: left;
- cursor: pointer;
- line-height: 17px;
-}
-.dimpOptions div a, .dimpOptions div a:visited {
- text-decoration: none;
- color: #000;
-}
-.dimpOptions div:hover {
- text-decoration: underline;
-}
-.dimpOptions div img {
- float: left;
- padding: 1px 4px 0 0;
-}
-
-/* Actions */
-.dimpActions {
- background: #efefef;
- padding: 4px 4px 4px 2px;
- border: 1px silver solid;
- border-bottom: 0px;
- background: transparent url("graphics/backhead_s2.png") repeat-x;
-}
-.dimpActions span {
- cursor: pointer;
-}
-.dimpActions a, .dimpActions a:visited, .dimpActions label {
- color: #000;
- font-size: 90%;
- font-weight: bold;
- white-space: nowrap;
- padding: 2px 4px 4px 4px;
-}
-.dimpActions a img {
- vertical-align: middle;
- padding-right: 2px;
-}
-.dimpActions a:hover {
- text-decoration: none;
- border-left: 1px solid #fff;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- padding: 1px 3px 3px 3px;
- cursor: pointer;
-}
-.dimpActions form {
- float: right;
- padding: 0;
-}
-.dimpActions .disabled a, .dimpActions .disabled a:visited, .dimpActions .disabled a:active, .dimpActions .disabled a:hover {
- cursor: default;
- text-decoration: none;
- color: silver;
-}
-.dimpActions .disabled a:hover {
- border: 0;
- padding-left: 4px;
- padding-right: 4px;
-}
-.dimpActions .disabled img {
- filter: alpha(opacity=25);
- -moz-opacity: .25;
- opacity: .25;
-}
-.dimpActions .popdown {
- border: 0;
- padding: 2px;
-}
-.dimpActions .popdown:hover {
- border-left: 1px solid #fff;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- padding: 1px;
-}
-.dimpActions .disabled .popdown:hover {
- border: 0;
- cursor: default;
- padding-left: 2px;
- padding-right: 2px;
-}
-#button_compose, #button_checkmail {
- display: none;
-}
-
-div.dimpActionsCompose {
- margin-top: 0;
-}
-.dimpActionsCompose a.popdown {
- margin-right: 4px;
-}
-
-#previewPane {
- overflow: auto;
- height: 250px;
- border: none;
- border-top: 1px silver solid;
- background: #fff;
-}
-
-.msgHeaders {
- background: transparent url("graphics/backhead_r.png") repeat-x;
- border-bottom: 1px #b9b9b3 solid;
- padding: 2px 0;
- font-size: 90%;
- overflow: hidden;
-}
-.msgfullread .msgHeaders {
- border: 1px #b9b9b3 solid;
-}
-
-.msgHeaders .dimpOptions {
- float: right;
- padding: 0 10px 10px;
- margin-top: 3px;
-}
-
-.msgHeaders table {
- margin: 0;
-}
-.msgHeaders table thead tr {
- vertical-align: top;
-}
-.msgHeaders table thead td {
- padding: 0 3px 3px 0;
-}
-.msgHeaders table thead td img {
- vertical-align: middle;
-}
-.msgHeaders table thead td.label {
- font-weight: bold;
- white-space: nowrap;
- text-align: right;
- padding-left: 3px;
-}
-.msgHeaders table thead td.subject {
- font-weight: bold;
-}
-#msgAtc td {
- padding-bottom: 0;
-}
-#partlist td {
- padding-bottom: 3px;
-}
-
-#msgHeadersContent {
- overflow: hidden;
-}
-
-/* ini msg small header */
-#toggleHeaders {
- float: left;
-}
-#toggleHeaders a img {
- padding: 3px 0 0 2px;
-}
-#msgHeadersColl {
- height: 17px;
- padding: 0;
- margin: 0 6px;
- white-space: nowrap;
-}
-#msgHeadersColl span.date {
- float: right;
- text-align: right;
-}
-#msg_newwin img {
- float: right;
- padding-left: 4px;
- vertical-align: middle;
-}
-#msgHeadersColl span.subject {
- float: left;
- font-weight: bold;
- overflow: hidden;
- padding-left: 4px;
- max-width: 40%;
-}
-#msgHeadersColl span.fromcontainer {
- padding-left: 5px;
-}
-#msgHeadersColl span.from {
- max-width: 50%;
- overflow: hidden;
-}
-#msgHeadersColl span.from a:hover {
- border: none;
- background: none;
- padding: 2px;
- text-decoration: underline;
- -moz-border-radius: 0;
- -webkit-border-radius: 0;
-}
-#msgHeadersColl span.from a:hover img {
- display: none;
-}
-/* end msg small header */
-
-.msgBody {
- background: #fff url("graphics/backhead_shadow.png") top repeat-x;
- padding: 7px 5px 5px;
-}
-.msgBody table td {
- padding: 0;
-}
-.msgfullread .msgBody {
- border-left: 1px silver solid;
- border-right: 1px silver solid;
- border-bottom: 1px silver solid;
- min-height: 420px;
-}
-
-/* mime status messages */
-.mimeStatusMessage, .mimeStatusWarning, .mimePartInfo {
- color: #000;
- margin: 2px;
-}
-.mimeStatusMessage {
- background: #ffc;
- border: 1px #fffba4 solid;
-}
-.mimePartInfo {
- background: #efefef;
- border: 1px #c0c0c0 solid;
-}
-.mimeStatusWarning {
- background: #e81222;
- border: 1px maroon solid;
- color: #fff;
-}
-table.mimeStatusMessage td, table.mimeStatusWarning td, table.mimePartInfo td {
- padding: 0;
-}
-table.mimeStatusMessage td table td, table.mimeStatusWarning td table td, table.mimePartInfo td table td {
- padding: 0 2px 0 0;
- white-space: nowrap;
-}
-
-/* Message Composition. */
-.msgwrite {
- cursor: default;
- background: #e2e2e2 url("graphics/backhead_r.png") repeat-x;
- border: 1px #b9b9b3 solid;
- padding: 2px 0;
-}
-.msgwrite .dimpOptions {
- float: right;
- padding: 10px;
- font-size: 90%;
- line-height: 90%;
-}
-.msgwrite .dimpOptions label {
- display: block;
- cursor: pointer;
-}
-.msgwrite thead tr {
- vertical-align: top;
-}
-.msgwrite thead td {
- padding: 3px 5px 1px 0;
- font-size: 90%;
-}
-.msgwrite thead td.label {
- height: 15px;
- white-space: nowrap;
- text-align: right;
- width: 65px;
- padding-top: 4px;
- padding-left: 2px;
-}
-.msgwrite thead td.subject {
- font-weight: bold;
-}
-.msgwrite .atcrow {
- line-height: 130%;
-}
-
-#messageParent {
- background: #fff url("graphics/backhead_shadow.png") top repeat-x;
- border-left: 1px silver solid;
- border-right: 1px silver solid;
- border-bottom: 1px silver solid;
- padding: 1%;
- margin: 0;
-}
-#messageParent .htmlarea {
- width: 98% !important;
- border: none;
-}
-#message {
- border: none;
- margin: 0;
- padding: 0;
- width: 100%;
-}
-
-#previewInfo {
- background: transparent url(graphics/ico_message_off.png) no-repeat scroll 10px 15px;
- line-height: 18px;
- text-align: left;
- padding: 15px 80px 10px 35px;
- color: #a0a0a0;
-}
-
-div.spellcheck {
- white-space: pre;
- white-space: -moz-pre-wrap;
- white-space: -hp-pre-wrap;
- white-space: -o-pre-wrap;
- white-space: -pre-wrap;
- white-space: pre-wrap;
- white-space: pre-line;
- word-wrap: break-word;
-}
-
-.htmledit {
- display: none;
- padding: 4px;
-}
-
-#subject {
- width: 40em;
-}
-
-#composeloading, #rteloading {
- position: absolute;
- z-index: 100;
- background-color: #000;
- filter: alpha(opacity=50);
- -moz-opacity: .5;
- opacity: .5;
-}
-#rteloadingtxt {
- position: absolute;
- background-color: #fff;
- z-index: 101;
-}
-#composeloading {
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
-}
-
-/* attachment file list */
-#attach_list {
- padding-top: 5px;
-}
-#attach_list input {
- background: none;
- border: none;
- font-weight: bold;
- text-decoration: underline;
-}
-#attach_list div {
- background: transparent url("graphics/attachment.png") left 2px no-repeat;
- height: 20px;
- padding-left: 20px;
-}
-
-/* Context Menus */
-.context {
- min-width: 180px;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 10000;
- border: 1px #d4d4d4 solid;
- padding: 1px;
- background: #f4f4f4;
- color: #000;
- font-size: 90%;
-}
-.context a, .context a:visited {
- white-space: nowrap;
- display: block;
- padding: 4px 4px 3px 2px;
- text-decoration: none;
- color: #000;
-}
-.context a:hover {
- background: gray;
- color: #fff;
-}
-.context a img {
- vertical-align: middle;
- padding-right: 4px;
-}
-.context div.sep {
- font-size: 1px;
- line-height: 1px;
- height: 1px;
- border-bottom: 1px #d4d4d4 solid;
-}
-
-/* Email Addresses. */
-a.address {
- left: -2px;
- position: static;
- padding: 2px;
- text-decoration: underline;
- white-space: nowrap;
-}
-a.address img {
- display: none;
- vertical-align: top;
-}
-a.address:hover {
- text-decoration: none;
- padding: 2px 1px;
- border: 1px silver solid;
- background: #fff;
-}
-a.address:hover img {
- display: inline;
- padding-left: 4px;
-}
-
-#alerts {
- cursor: pointer;
- position: absolute;
- top: 20%;
- left: 25%;
- right: 25%;
- width: 50%;
- /* Must always be the highest z-index on the page to ensure we can always
- click the alert box to close. */
- z-index: 10001;
- margin: 0 0 10px;
- font-weight: bold;
- color: #fff;
-}
-#alerts div {
- padding: 6px 20px 6px 25px;
- border: 1px #316600 solid;
- background-color: #5db110;
- background-position: 6px 6px;
- background-repeat: no-repeat;
-}
-#alerts div.horde-error {
- background: #e81222 url("graphics/error.png") 99% 50% no-repeat;
- border-color: maroon;
-}
-#alerts div.horde-message {
- background-image: url("graphics/message.png");
-}
-#alerts div.horde-success {
- background-image: url("graphics/success.png");
-}
-#alerts div.horde-warning, #alerts div.dimp-sticky, #alerts div.dimp-sticky {
- background-color: #ebe20c;
- background-image: url("graphics/warning.png");
- border-color: #807b00;
- color: #000;
-}
-#alerts div.imp-reply {
- background-image: url("graphics/mail_answered.png");
-}
-#alerts div.imp-forward, #alerts div.imp-redirect {
- background-image: url("graphics/mail_forwarded.png");
-}
-
-#alertslog {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- max-height: 200px;
- z-index: 10000;
-}
-#alertslog ul {
- background: #999;
- overflow: auto;
- filter: alpha(opacity=80);
- -moz-opacity: .8;
- opacity: .8;
-}
-#alertslog ul li {
- color: #333;
- font-size: 12px;
- list-style-type: none;
- overflow: hidden;
- padding: 10px 20px;
- border-bottom: 1px dotted;
-}
-#alertslog ul li:last-child {
- border: 0;
-}
-#alertslog ul li p {
- margin-bottom: 0;
-}
-#alertslog p.label {
- float: left;
- font-weight: bold;
-}
-#alertslog p.indent {
- margin: 0 100px 0 75px;
-}
-#alertslog span.alertdate {
- font-size: 90%;
- font-style: italic;
- padding-left: 10px;
-}
-
-.tooltip, .nicetitle {
- z-index: 1001;
-}
-
-/* Drag and drop styles. */
-.drag, .dragdrop {
- position: absolute;
- background: #eee;
- border: 1px solid #ccc;
- font: 12px Geneva,Arial,Helvetica,sans-serif;
- padding: 2px;
- overflow: hidden;
- z-index: 999;
-}
-.dragdrop {
- color: red;
-}
-
-/* Message Search Filter bar */
-#qoptions {
- background: gray;
- color: #fff;
- font-size: 90%;
- padding: 5px 5px 5px 10px;
-}
-#qoptions a, #qoptions a:visited {
- text-decoration: none;
- font-weight: bold;
- color: #fff;
- margin: 0 5px;
- padding: 2px 5px;
-}
-#qoptions a.qselected, #qoptions a.qselected:visited, #qoptions a:hover {
- background: #fafafa;
- color: #000;
- font-weight: bold;
- border-top: 1px silver solid;
- border-left: 1px silver solid;
- border-bottom: 1px #e0e0e0 solid;
- border-right: 1px #e0e0e0 solid;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- padding: 1px 4px;
-}
-#qoptions .qclose a, #qoptions .qclose a:visited {
- float: right;
- margin-top: -2px;
- width: 10px;
- background: #efefef;
- color: #000;
- font-weight: bold;
- border-top: 1px silver solid;
- border-left: 1px silver solid;
- border-bottom: 1px #e0e0e0 solid;
- border-right: 1px #e0e0e0 solid;
- text-align: center;
- vertical-align: middle;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- padding: 0px 2px 2px 4px;
- text-decoration: none;
-}
-#qoptions .qclose a:hover {
- background: #fff;
-}
-#qoptions .qlabel {
- font-weight: bold;
-}
-
-.msgFilterDefault {
- color: #a0a0a0;
-}
-
-.searchMatch {
- font-weight: bold;
- text-decoration: underline;
-}
-
-/* Redbox styles. */
-#RB_overlay {
- position: absolute;
- z-index: 100;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- min-height: 100%;
- background-color: #000;
- filter: alpha(opacity=60);
- -moz-opacity: .6;
- opacity: .6;
-}
-#RB_window {
- z-index: 102;
- display: block;
- text-align: left;
- overflow: hidden;
- margin: 20px auto 0 auto;
- position: absolute;
-}
-
-#RB_folder {
- width: 20em;
- padding: 6px;
- border: 1px solid #ccc;
-}
-#RB_folder input {
- margin: .2em;
-}
-
-/* Popup message styling. */
-.headercloseimg {
- float: right;
- padding-right: 2px;
- cursor: pointer;
-}
-.headertitle {
- border-bottom: none;
-}
-
-/* Based on the Mozilla default definitions */
-#html-message td {
- padding: 0;
-}
-#html-message ul {
- display: block;
- list-style-type: disc;
- margin: 1em 0;
- -moz-padding-start: 40px;
-}
-#html-message ol {
- display: block;
- list-style-type: decimal;
- margin: 1em 0;
- -moz-padding-start: 40px;
-}
-#html-message p {
- display: block;
- margin: 1em 0;
-}
-#html-message blockquote {
- margin: 1em 40px;
-}
-#html-message blockquote[type="cite"] {
- margin-left: 0;
- margin-right: 0;
- padding-left: 1em;
-}
-
-/* Keyboard key style */
-.kbd {
- background: #eee;
- color: #000;
- white-space: nowrap;
- padding: 1px 2px;
- border: 1px solid #888;
- font-size: 90%;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
-}
-
-.largeaddrlist {
- cursor: pointer;
- background: #aaa;
- margin-right: 5px;
-}
-.largeaddrlist:hover {
- text-decoration: underline;
-}
--- /dev/null
+/**
+ * CSS corrections for IE 6 and below.
+ */
+
+#pageContainer {
+ height: auto;
+}
+
+#sidebarPanel, #normalfolders {
+ width: 150px;
+}
+#normalfolders {
+ /* IE 6 does not support max-height. To auto-size folder list display, set
+ * height to 0px. */
+ height: 0px;
+ overflow: auto;
+}
+
+#sidebarPanel li {
+ width: 100%;
+}
+.context {
+ width: 180px;
+}
+
+div.msgSubject {
+ width: 49%;
+}
+
+div.msgmiddle {
+ margin-bottom: -4px;
+}
+
+.splitBar {
+ background-attachment: fixed;
+ font-size: 0px;
+}
+
+form#compose {
+ margin-top: -13px;
+}
+#to, #cc, #bcc {
+ overflow: auto;
+}
+#messageParent {
+ width: auto !important;
+}
+#messageParent textarea#message {
+ width: 97% !important;
+}
+
+#alerts {
+ width: 500px;
+}
+#alerts div.ie6alertsfix {
+ padding: 0;
+ border: 0;
+ background: url("graphics/clear.gif") repeat;
+}
+
+.block-monthgrid table {
+ border-width: 2px;
+}
+
+#msglistHeader {
+ height: 15px;
+}
+#mlistHeaderClear {
+ display: none;
+}
+
+/* Fixes li & ol list numbering issues in HTML messages. */
+#html-message ul li, #html-message ol li {
+ margin-left: 2em;
+}
--- /dev/null
+/**
+ * CSS corrections for IE 7.
+ */
+
+#pageContainer {
+ height: 1px;
+}
+
+#sidebarPanel li {
+ overflow: hidden;
+ max-width: 133px;
+ text-overflow: ellipsis;
+}
+#sidebarPanel .folderlist {
+ overflow-y: auto;
+}
+
+#msgSplitPane {
+ margin-top: -4px;
+ width: 99.7%;
+}
+
+div.msgSize {
+ width: auto;
+ overflow: hidden;
+}
+
+form#compose {
+ margin-top: -13px;
+}
+#to, #cc, #bcc {
+ overflow: auto;
+}
+
+.msgBody {
+ width: expression(document.body.clientWidth-220);
+}
+
+#alerts {
+ width: expression(document.body.clientWidth/2);
+}
+
+.block-monthgrid table {
+ border-width: 2px;
+}
+
+#sidebarPanel li.custom img, #sidebarPanel li.servicelink img {
+ padding-top: 1px;
+}
+
+#sidebarPanel li.folder a:hover, #sidebarPanel li.custom a:hover, #sidebarPanel li.servicelink a:hover {
+ font-weight: bold;
+ text-decoration: underline;
+}
+
+.dimpOptions div a:hover {
+ text-decoration: underline;
+}
+
+/* Fixes li & ol list numbering issues in HTML messages. */
+#html-message ul li , #html-message ol li {
+ margin-left: 2em;
+}
--- /dev/null
+/**
+ * DIMP print CSS.
+ */
+
+body {
+ background: #fff;
+}
+
+a, a:visited {
+ color: #000;
+}
+
+#pageContainer {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
+#dimpmain {
+ position: relative;
+ left: 0 !important;
+ margin-left: 0;
+ top: 0;
+}
+
+#previewPane {
+ height: auto !important;
+}
+
+#msgHeaders, .dispaddrlist {
+ display: block !important;
+}
+
+.msgfullread .msgBody {
+ border-top: 1px solid silver;
+}
+
+.label {
+ min-width: 60px;
+ text-align: right;
+ font-weight: bold;
+}
+
+#msgHeadersColl, .context, .address img, .noprint, .mimeStatusMessage, .largeaddrlist, #alertslog {
+ display: none !important;
+}
+a.address {
+ left: 0;
+ padding: 0;
+ text-decoration: none;
+}
--- /dev/null
+/**
+ * DIMP core CSS.
+ */
+
+/* Positioning */
+#pageContainer {
+ clear: both;
+}
+
+/* Popdown styles. */
+a.popdown {
+ cursor: pointer;
+ background: url("graphics/popdown.png") no-repeat center center;
+ padding: 5px !important;
+}
+a.popdown:hover {
+ padding: 4px !important;
+ border-left: 1px solid #fff;
+ border-top: 1px solid #fff;
+ border-right: 1px solid #000;
+ border-bottom: 1px solid #000;
+}
+
+/* ini header. */
+#quota {
+ float: right;
+ font-weight: normal;
+}
+#quota .used {
+ float: left;
+ width: 100px;
+ background: maroon url('graphics/quotaback.jpg') repeat-y;
+ text-align: right;
+ border: 1px #000 solid;
+ margin-right: 2px;
+}
+#quota .used img {
+ display: inline;
+ float: none;
+ padding: 0;
+ border-left: 1px #000 solid;
+ height: 14px;
+}
+div#quota {
+ padding-bottom: 3px;
+}
+
+#mailboxHeader {
+ clear: right;
+}
+
+#logo {
+ display: none;
+}
+/* end header */
+
+#sidebarPanel {
+ position: absolute;
+ cursor: default;
+ top: 0;
+ left: 0;
+ padding: 7px 0 0 7px;
+ width: 150px;
+ bottom: 0;
+ z-index: 1;
+ white-space: normal;
+ -moz-border-radius-bottomright: 0;
+ -webkit-border-bottom-right-radius: 0;
+ border-bottom: 0px;
+}
+#dimpmain {
+ position: absolute;
+ margin-left: 13px;
+ left: 150px;
+ top: 4px;
+ bottom: 0;
+ right: 4px;
+}
+#dimpmain_portal h1.header a {
+ cursor: pointer;
+}
+
+/* Autocomplete styles. */
+.autocomplete {
+ background: #f4f4f4;
+ border: 1px solid #d4d4d4;
+ position: absolute;
+ padding: 2px;
+}
+.autocomplete ul {
+ margin: 1px;
+ padding: 1px;
+ list-style-type: none;
+}
+.autocomplete ul li {
+ background: transparent;
+ padding: 3px 4px 4px;
+ cursor: pointer;
+ color: #000;
+}
+.autocomplete ul .selected {
+ background: gray;
+ color: #fff;
+}
+
+/* SpellChecker styles. */
+.Checking {
+ color: red;
+}
+.incorrect {
+ text-decoration: underline;
+ cursor: pointer;
+ color: red;
+}
+.corrected {
+ text-decoration: underline;
+ cursor: pointer;
+ color: #090;
+}
+
+/* SplitPane styles. */
+#msgSplitPane {
+ background-color: #fff;
+ border-left: 1px silver solid;
+ border-right: 1px silver solid;
+ border-bottom: 1px silver solid;
+}
+.splitBar {
+ background: #e9e9e9 url("graphics/dragHandle.png") no-repeat scroll center top;
+ border: 1px solid;
+ border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;
+ cursor: n-resize;
+ height: 5px;
+ clear: left;
+ z-index: 10;
+}
+
+/* Message List */
+div.loading img, #folderLoading, #msgLoading {
+ z-index: 1000;
+ background: #fff;
+ border: 1px #e0e0e0 solid;
+ padding: 2px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+}
+
+/* Columns */
+div.msgStatus, div.msgFrom, div.msgSubject, div.msgDate, div.msgSize {
+ float: left;
+ overflow: hidden;
+}
+div.msgStatus {
+ width: 6%;
+}
+div.msgStatus .msCheck, div.msgStatus .msState, div.msgStatus .msCompose, div.msgStatus .msPri {
+ width: 16px;
+ float: left;
+}
+div.msgFrom {
+ width: 20%;
+}
+div.msgSubject {
+ width: 50%;
+}
+div.msgDate {
+ width: 15%;
+}
+div.msgSize {
+ width: 9%;
+}
+
+/* Message List Header and Column Header */
+#msglistHeader {
+ font-weight: bold;
+ overflow: hidden;
+ border: 1px solid silver;
+ background: transparent url("graphics/backhead_orderby.png") repeat-x;
+ height: 16px;
+}
+#msglistHeader a {
+ cursor: pointer;
+ display: block;
+}
+#msglistHeader div {
+ padding-top: 1px;
+ height: 15px;
+}
+#msglistHeader div.sortup {
+ padding-left: 0;
+ background-position: 2px;
+}
+#msglistHeader div.sortup a {
+ padding-left: 14px;
+}
+#msglistHeader div.sortdown {
+ padding-left: 0;
+ background-position: 2px;
+}
+#msglistHeader div.sortdown a {
+ padding-left: 14px;
+}
+#msglistHeader a small {
+ padding-left: 2px;
+ font-weight: normal;
+}
+
+/* Message ViewPort */
+.msglist {
+ width: 100%;
+ overflow: hidden;
+ border-bottom: 1px silver solid;
+ float: left;
+}
+.msglist em {
+ font-weight: bold;
+}
+.msglistNoPreview {
+ border-bottom: 0;
+}
+
+/* Rows */
+.msglist div.msgRow, .msglist div div {
+ cursor: pointer;
+ font-size: 95%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 16px;
+ border-bottom: 2px #fff solid;
+}
+/* Flags */
+.msglist div.unseen {
+ font-weight: bold;
+}
+.msglist div.important, .msglist div.flagged {
+ background: #fcc;
+}
+.msglist div.unimportant {
+ font-weight: normal;
+}
+.msglist div.answered {
+ background: #cfc;
+}
+.msglist div.deletedmsg {
+ background: #999;
+}
+.msglist div.deletedmsg div.msgFrom, .msglist div.deletedmsg div.msgSubject, .msglist div.deletedmsg div.msgDate, .msglist div.deletedmsg div.msgSize {
+ text-decoration: line-through;
+}
+.msglist div.selectedRow {
+ background: #ffc;
+}
+/* Checkbox images */
+.msglist .msCheck {
+ background: transparent url("graphics/checkbox_off.png") center center no-repeat;
+}
+.msglist .msCheck:hover {
+ background: transparent url("graphics/checkbox_over.png") center center no-repeat;
+}
+.msglist div.selectedRow .msCheck {
+ background: transparent url("graphics/checkbox_on.png") center center no-repeat;
+}
+
+/* Status images and flags selectors: status column */
+.msglist div.unseen .msState {
+ background: transparent url("graphics/mail_unseen.png") center center no-repeat;
+}
+.msglist div.flagged .msState {
+ background: transparent url("graphics/mail_flagged.png") center center no-repeat;
+}
+.msglist div.deletedmsg .msState {
+ background: transparent url("graphics/mail_deleted.png") center center no-repeat;
+}
+/* Status images and flags selectors: priority column */
+.msglist div.unimportant .msPri {
+ background: transparent url("graphics/mail_priority_low.png") center center no-repeat;
+}
+.msglist div.important .msPri {
+ background: transparent url("graphics/mail_priority_high.png") center center no-repeat;
+}
+/* Status images and flags selectors: compose status column */
+.msglist div.answered .msCompose {
+ background: transparent url("graphics/mail_answered.png") center center no-repeat;
+}
+.msglist div.draft .msCompose {
+ background: transparent url("graphics/mail_draft.png") center center no-repeat;
+}
+/* Thread images. */
+div.msgSubject img {
+ margin-top: -4px;
+}
+/* Size images. */
+div.msgSize img {
+ margin-right: 2px;
+}
+
+/* Scroller */
+.sbdiv {
+ position: relative;
+ right: 0;
+ width: 14px;
+ overflow: auto;
+ background-image: url("graphics/scroller_back.png");
+ background-repeat: repeat-y;
+}
+.sbcursor {
+ width: 13px;
+ border-left: 1px solid silver;
+ background-image: url("graphics/scroller.png");
+ background-repeat: repeat-y;
+}
+.sbup {
+ width: 13px;
+ height: 16px;
+ border-left: 1px solid silver;
+ background: transparent url("graphics/sbcursor_top.png") center center no-repeat;
+}
+.sbdown {
+ width: 13px;
+ height: 17px;
+ border-left: 1px solid silver;
+ background: transparent url("graphics/sbcursor_bottom.png") center center no-repeat;
+}
+
+/* IFRAMEs */
+.iframe {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ border: none;
+ width: 100%;
+ height: 100%;
+}
+
+/* Sidebar */
+#sidebarPanel span {
+ white-space: normal;
+}
+#sidebarPanel a {
+ cursor: pointer;
+ padding: 0;
+}
+#sidebarPanel a:hover {
+ background: transparent;
+}
+#sidebarPanel p {
+ margin: 0 0 5px;
+}
+#sidebarPanel p a {
+ text-decoration: none;
+ font-weight: bold;
+}
+#sidebarPanel p a img {
+ padding-right: 3px;
+}
+#sidebarPanel .sepfull {
+ font-size: 1px !important;
+ line-height: 1px !important;
+ height: 1px !important;
+ margin: 5px 0;
+ overflow: hidden;
+ width: 150px;
+ background: silver;
+}
+#sidebarPanel .count, #sidebarPanel a:hover .count {
+ color: silver;
+}
+#sidebarPanel li {
+ list-style: none;
+ width: 100%;
+ height: 17px;
+ line-height: 17px;
+ margin: 1px 0 0;
+ white-space: nowrap;
+}
+#sidebarPanel li.folder, #sidebarPanel li.custom, #sidebarPanel li.servicelink {
+ float: none;
+ width: 100%;
+ text-decoration: none;
+ padding: 0;
+}
+#sidebarPanel li.custom, #sidebarPanel li.servicelink {
+ display: block;
+}
+#sidebarPanel li a {
+ padding-top: 1px;
+ width: 130px;
+ text-decoration: none;
+}
+#sidebarPanel li.custom a, #sidebarPanel li.servicelink a {
+ padding-top: 0;
+}
+#sidebarPanel li.servicelink a {
+ font-weight: bold;
+}
+#sidebarPanel li.custom {
+ background: transparent none;
+}
+#sidebarPanel li.custom img, #sidebarPanel li.servicelink img {
+ float: left;
+ padding: 1px 4px 0 0;
+}
+#sidebarPanel li.folder a {
+ display: inline;
+}
+#sidebarPanel .base {
+ display: inline;
+ float: left;
+ width: 20px;
+ height: 100%;
+ background: transparent url("graphics/folder.png") center left no-repeat;
+}
+#sidebarPanel .col {
+ display: inline;
+ float: left;
+ width: 20px;
+ height: 100%;
+ background: transparent url("graphics/folder_minus.png") center left no-repeat;
+}
+#sidebarPanel .exp {
+ display: inline;
+ float: left;
+ width: 20px;
+ height: 100%;
+ background: transparent url("graphics/folder_plus.png") center left no-repeat;
+}
+#sidebarPanel .create {
+ display: inline;
+ float: left;
+ width: 20px;
+ height: 100%;
+ background: transparent url("graphics/folder_create.png") center left no-repeat;
+}
+#sidebarPanel .drafts, #sidebarPanel .inbox, #sidebarPanel .sent, #sidebarPanel .spam, #sidebarPanel .trash {
+ display: inline;
+ float: left;
+ width: 20px;
+ height: 100%;
+ padding: 0;
+ background-color: transparent;
+ background-position: center left;
+ background-repeat: no-repeat;
+}
+#sidebarPanel .drafts {
+ background-image: url("graphics/folder_drafts.png");
+}
+#sidebarPanel .inbox {
+ background-image: url("graphics/folder_inbox.png");
+}
+#sidebarPanel .sent {
+ background-image: url("graphics/folder_sent.png");
+}
+#sidebarPanel .spam {
+ background-image: url("graphics/folder_spam.png");
+}
+#sidebarPanel .trash {
+ background-image: url("graphics/folder_trash.png");
+}
+#sidebarPanel #normalfolders {
+ overflow-x: hidden;
+}
+#sidebarPanel #myfolders {
+ display: none;
+}
+#foldersSidebar {
+ overflow: hidden;
+}
+#sidebarPanel .folderlist li a {
+ width: auto;
+ overflow: hidden;
+ display: block;
+ float: none;
+}
+#sidebarPanel li div {
+ cursor: pointer;
+}
+#sidebarPanel li.subfolders {
+ height: auto;
+ margin: 0;
+}
+#sidebarPanel li.subfolders ul {
+ padding-left: 10px;
+}
+#sidebarPanel li.subfolders li a {
+ width: auto;
+}
+#sidebarPanel li.on {
+ background: #ffc;
+}
+#sidebarPanel .over a, #sidebarPanel li.folder:hover, #sidebarPanel li.custom:hover, #sidebarPanel li.servicelink:hover {
+ font-weight: bold;
+ text-decoration: underline;
+}
+#sidebarPanel li a.drop {
+ border: 1px solid orange;
+ padding: 1px 1px 1px 19px;
+}
+
+/* Options */
+.dimpOptions {
+ float: right;
+ padding-right: 5px;
+}
+.dimpOptions div {
+ clear: left;
+ cursor: pointer;
+ line-height: 17px;
+}
+.dimpOptions div a, .dimpOptions div a:visited {
+ text-decoration: none;
+ color: #000;
+}
+.dimpOptions div:hover {
+ text-decoration: underline;
+}
+.dimpOptions div img {
+ float: left;
+ padding: 1px 4px 0 0;
+}
+
+/* Actions */
+.dimpActions {
+ background: #efefef;
+ padding: 4px 4px 4px 2px;
+ border: 1px silver solid;
+ border-bottom: 0px;
+ background: transparent url("graphics/backhead_s2.png") repeat-x;
+}
+.dimpActions span {
+ cursor: pointer;
+}
+.dimpActions a, .dimpActions a:visited, .dimpActions label {
+ color: #000;
+ font-size: 90%;
+ font-weight: bold;
+ white-space: nowrap;
+ padding: 2px 4px 4px 4px;
+}
+.dimpActions a img {
+ vertical-align: middle;
+ padding-right: 2px;
+}
+.dimpActions a:hover {
+ text-decoration: none;
+ border-left: 1px solid #fff;
+ border-top: 1px solid #fff;
+ border-right: 1px solid #000;
+ border-bottom: 1px solid #000;
+ padding: 1px 3px 3px 3px;
+ cursor: pointer;
+}
+.dimpActions form {
+ float: right;
+ padding: 0;
+}
+.dimpActions .disabled a, .dimpActions .disabled a:visited, .dimpActions .disabled a:active, .dimpActions .disabled a:hover {
+ cursor: default;
+ text-decoration: none;
+ color: silver;
+}
+.dimpActions .disabled a:hover {
+ border: 0;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+.dimpActions .disabled img {
+ filter: alpha(opacity=25);
+ -moz-opacity: .25;
+ opacity: .25;
+}
+.dimpActions .popdown {
+ border: 0;
+ padding: 2px;
+}
+.dimpActions .popdown:hover {
+ border-left: 1px solid #fff;
+ border-top: 1px solid #fff;
+ border-right: 1px solid #000;
+ border-bottom: 1px solid #000;
+ padding: 1px;
+}
+.dimpActions .disabled .popdown:hover {
+ border: 0;
+ cursor: default;
+ padding-left: 2px;
+ padding-right: 2px;
+}
+#button_compose, #button_checkmail {
+ display: none;
+}
+
+div.dimpActionsCompose {
+ margin-top: 0;
+}
+.dimpActionsCompose a.popdown {
+ margin-right: 4px;
+}
+
+#previewPane {
+ overflow: auto;
+ height: 250px;
+ border: none;
+ border-top: 1px silver solid;
+ background: #fff;
+}
+
+.msgHeaders {
+ background: transparent url("graphics/backhead_r.png") repeat-x;
+ border-bottom: 1px #b9b9b3 solid;
+ padding: 2px 0;
+ font-size: 90%;
+ overflow: hidden;
+}
+.msgfullread .msgHeaders {
+ border: 1px #b9b9b3 solid;
+}
+
+.msgHeaders .dimpOptions {
+ float: right;
+ padding: 0 10px 10px;
+ margin-top: 3px;
+}
+
+.msgHeaders table {
+ margin: 0;
+}
+.msgHeaders table thead tr {
+ vertical-align: top;
+}
+.msgHeaders table thead td {
+ padding: 0 3px 3px 0;
+}
+.msgHeaders table thead td img {
+ vertical-align: middle;
+}
+.msgHeaders table thead td.label {
+ font-weight: bold;
+ white-space: nowrap;
+ text-align: right;
+ padding-left: 3px;
+}
+.msgHeaders table thead td.subject {
+ font-weight: bold;
+}
+#msgAtc td {
+ padding-bottom: 0;
+}
+#partlist td {
+ padding-bottom: 3px;
+}
+
+#msgHeadersContent {
+ overflow: hidden;
+}
+
+/* ini msg small header */
+#toggleHeaders {
+ float: left;
+}
+#toggleHeaders a img {
+ padding: 3px 0 0 2px;
+}
+#msgHeadersColl {
+ height: 17px;
+ padding: 0;
+ margin: 0 6px;
+ white-space: nowrap;
+}
+#msgHeadersColl span.date {
+ float: right;
+ text-align: right;
+}
+#msg_newwin img {
+ float: right;
+ padding-left: 4px;
+ vertical-align: middle;
+}
+#msgHeadersColl span.subject {
+ float: left;
+ font-weight: bold;
+ overflow: hidden;
+ padding-left: 4px;
+ max-width: 40%;
+}
+#msgHeadersColl span.fromcontainer {
+ padding-left: 5px;
+}
+#msgHeadersColl span.from {
+ max-width: 50%;
+ overflow: hidden;
+}
+#msgHeadersColl span.from a:hover {
+ border: none;
+ background: none;
+ padding: 2px;
+ text-decoration: underline;
+ -moz-border-radius: 0;
+ -webkit-border-radius: 0;
+}
+#msgHeadersColl span.from a:hover img {
+ display: none;
+}
+/* end msg small header */
+
+.msgBody {
+ background: #fff url("graphics/backhead_shadow.png") top repeat-x;
+ padding: 7px 5px 5px;
+}
+.msgBody table td {
+ padding: 0;
+}
+.msgfullread .msgBody {
+ border-left: 1px silver solid;
+ border-right: 1px silver solid;
+ border-bottom: 1px silver solid;
+ min-height: 420px;
+}
+
+/* mime status messages */
+.mimeStatusMessage, .mimeStatusWarning, .mimePartInfo {
+ color: #000;
+ margin: 2px;
+}
+.mimeStatusMessage {
+ background: #ffc;
+ border: 1px #fffba4 solid;
+}
+.mimePartInfo {
+ background: #efefef;
+ border: 1px #c0c0c0 solid;
+}
+.mimeStatusWarning {
+ background: #e81222;
+ border: 1px maroon solid;
+ color: #fff;
+}
+table.mimeStatusMessage td, table.mimeStatusWarning td, table.mimePartInfo td {
+ padding: 0;
+}
+table.mimeStatusMessage td table td, table.mimeStatusWarning td table td, table.mimePartInfo td table td {
+ padding: 0 2px 0 0;
+ white-space: nowrap;
+}
+
+/* Message Composition. */
+.msgwrite {
+ cursor: default;
+ background: #e2e2e2 url("graphics/backhead_r.png") repeat-x;
+ border: 1px #b9b9b3 solid;
+ padding: 2px 0;
+}
+.msgwrite .dimpOptions {
+ float: right;
+ padding: 10px;
+ font-size: 90%;
+ line-height: 90%;
+}
+.msgwrite .dimpOptions label {
+ display: block;
+ cursor: pointer;
+}
+.msgwrite thead tr {
+ vertical-align: top;
+}
+.msgwrite thead td {
+ padding: 3px 5px 1px 0;
+ font-size: 90%;
+}
+.msgwrite thead td.label {
+ height: 15px;
+ white-space: nowrap;
+ text-align: right;
+ width: 65px;
+ padding-top: 4px;
+ padding-left: 2px;
+}
+.msgwrite thead td.subject {
+ font-weight: bold;
+}
+.msgwrite .atcrow {
+ line-height: 130%;
+}
+
+#messageParent {
+ background: #fff url("graphics/backhead_shadow.png") top repeat-x;
+ border-left: 1px silver solid;
+ border-right: 1px silver solid;
+ border-bottom: 1px silver solid;
+ padding: 1%;
+ margin: 0;
+}
+#messageParent .htmlarea {
+ width: 98% !important;
+ border: none;
+}
+#message {
+ border: none;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+#previewInfo {
+ background: transparent url(graphics/ico_message_off.png) no-repeat scroll 10px 15px;
+ line-height: 18px;
+ text-align: left;
+ padding: 15px 80px 10px 35px;
+ color: #a0a0a0;
+}
+
+div.spellcheck {
+ white-space: pre;
+ white-space: -moz-pre-wrap;
+ white-space: -hp-pre-wrap;
+ white-space: -o-pre-wrap;
+ white-space: -pre-wrap;
+ white-space: pre-wrap;
+ white-space: pre-line;
+ word-wrap: break-word;
+}
+
+.htmledit {
+ display: none;
+ padding: 4px;
+}
+
+#subject {
+ width: 40em;
+}
+
+#composeloading, #rteloading {
+ position: absolute;
+ z-index: 100;
+ background-color: #000;
+ filter: alpha(opacity=50);
+ -moz-opacity: .5;
+ opacity: .5;
+}
+#rteloadingtxt {
+ position: absolute;
+ background-color: #fff;
+ z-index: 101;
+}
+#composeloading {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+}
+
+/* attachment file list */
+#attach_list {
+ padding-top: 5px;
+}
+#attach_list input {
+ background: none;
+ border: none;
+ font-weight: bold;
+ text-decoration: underline;
+}
+#attach_list div {
+ background: transparent url("graphics/attachment.png") left 2px no-repeat;
+ height: 20px;
+ padding-left: 20px;
+}
+
+/* Context Menus */
+.context {
+ min-width: 180px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 10000;
+ border: 1px #d4d4d4 solid;
+ padding: 1px;
+ background: #f4f4f4;
+ color: #000;
+ font-size: 90%;
+}
+.context a, .context a:visited {
+ white-space: nowrap;
+ display: block;
+ padding: 4px 4px 3px 2px;
+ text-decoration: none;
+ color: #000;
+}
+.context a:hover {
+ background: gray;
+ color: #fff;
+}
+.context a img {
+ vertical-align: middle;
+ padding-right: 4px;
+}
+.context div.sep {
+ font-size: 1px;
+ line-height: 1px;
+ height: 1px;
+ border-bottom: 1px #d4d4d4 solid;
+}
+
+/* Email Addresses. */
+a.address {
+ left: -2px;
+ position: static;
+ padding: 2px;
+ text-decoration: underline;
+ white-space: nowrap;
+}
+a.address img {
+ display: none;
+ vertical-align: top;
+}
+a.address:hover {
+ text-decoration: none;
+ padding: 2px 1px;
+ border: 1px silver solid;
+ background: #fff;
+}
+a.address:hover img {
+ display: inline;
+ padding-left: 4px;
+}
+
+#alerts {
+ cursor: pointer;
+ position: absolute;
+ top: 20%;
+ left: 25%;
+ right: 25%;
+ width: 50%;
+ /* Must always be the highest z-index on the page to ensure we can always
+ click the alert box to close. */
+ z-index: 10001;
+ margin: 0 0 10px;
+ font-weight: bold;
+ color: #fff;
+}
+#alerts div {
+ padding: 6px 20px 6px 25px;
+ border: 1px #316600 solid;
+ background-color: #5db110;
+ background-position: 6px 6px;
+ background-repeat: no-repeat;
+}
+#alerts div.horde-error {
+ background: #e81222 url("graphics/error.png") 99% 50% no-repeat;
+ border-color: maroon;
+}
+#alerts div.horde-message {
+ background-image: url("graphics/message.png");
+}
+#alerts div.horde-success {
+ background-image: url("graphics/success.png");
+}
+#alerts div.horde-warning, #alerts div.dimp-sticky, #alerts div.dimp-sticky {
+ background-color: #ebe20c;
+ background-image: url("graphics/warning.png");
+ border-color: #807b00;
+ color: #000;
+}
+#alerts div.imp-reply {
+ background-image: url("graphics/mail_answered.png");
+}
+#alerts div.imp-forward, #alerts div.imp-redirect {
+ background-image: url("graphics/mail_forwarded.png");
+}
+
+#alertslog {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ max-height: 200px;
+ z-index: 10000;
+}
+#alertslog ul {
+ background: #999;
+ overflow: auto;
+ filter: alpha(opacity=80);
+ -moz-opacity: .8;
+ opacity: .8;
+}
+#alertslog ul li {
+ color: #333;
+ font-size: 12px;
+ list-style-type: none;
+ overflow: hidden;
+ padding: 10px 20px;
+ border-bottom: 1px dotted;
+}
+#alertslog ul li:last-child {
+ border: 0;
+}
+#alertslog ul li p {
+ margin-bottom: 0;
+}
+#alertslog p.label {
+ float: left;
+ font-weight: bold;
+}
+#alertslog p.indent {
+ margin: 0 100px 0 75px;
+}
+#alertslog span.alertdate {
+ font-size: 90%;
+ font-style: italic;
+ padding-left: 10px;
+}
+
+.tooltip, .nicetitle {
+ z-index: 1001;
+}
+
+/* Drag and drop styles. */
+.drag, .dragdrop {
+ position: absolute;
+ background: #eee;
+ border: 1px solid #ccc;
+ font: 12px Geneva,Arial,Helvetica,sans-serif;
+ padding: 2px;
+ overflow: hidden;
+ z-index: 999;
+}
+.dragdrop {
+ color: red;
+}
+
+/* Message Search Filter bar */
+#qoptions {
+ background: gray;
+ color: #fff;
+ font-size: 90%;
+ padding: 5px 5px 5px 10px;
+}
+#qoptions a, #qoptions a:visited {
+ text-decoration: none;
+ font-weight: bold;
+ color: #fff;
+ margin: 0 5px;
+ padding: 2px 5px;
+}
+#qoptions a.qselected, #qoptions a.qselected:visited, #qoptions a:hover {
+ background: #fafafa;
+ color: #000;
+ font-weight: bold;
+ border-top: 1px silver solid;
+ border-left: 1px silver solid;
+ border-bottom: 1px #e0e0e0 solid;
+ border-right: 1px #e0e0e0 solid;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ padding: 1px 4px;
+}
+#qoptions .qclose a, #qoptions .qclose a:visited {
+ float: right;
+ margin-top: -2px;
+ width: 10px;
+ background: #efefef;
+ color: #000;
+ font-weight: bold;
+ border-top: 1px silver solid;
+ border-left: 1px silver solid;
+ border-bottom: 1px #e0e0e0 solid;
+ border-right: 1px #e0e0e0 solid;
+ text-align: center;
+ vertical-align: middle;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ padding: 0px 2px 2px 4px;
+ text-decoration: none;
+}
+#qoptions .qclose a:hover {
+ background: #fff;
+}
+#qoptions .qlabel {
+ font-weight: bold;
+}
+
+.msgFilterDefault {
+ color: #a0a0a0;
+}
+
+.searchMatch {
+ font-weight: bold;
+ text-decoration: underline;
+}
+
+/* Redbox styles. */
+#RB_overlay {
+ position: absolute;
+ z-index: 100;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ min-height: 100%;
+ background-color: #000;
+ filter: alpha(opacity=60);
+ -moz-opacity: .6;
+ opacity: .6;
+}
+#RB_window {
+ z-index: 102;
+ display: block;
+ text-align: left;
+ overflow: hidden;
+ margin: 20px auto 0 auto;
+ position: absolute;
+}
+
+#RB_folder {
+ width: 20em;
+ padding: 6px;
+ border: 1px solid #ccc;
+}
+#RB_folder input {
+ margin: .2em;
+}
+
+/* Popup message styling. */
+.headercloseimg {
+ float: right;
+ padding-right: 2px;
+ cursor: pointer;
+}
+.headertitle {
+ border-bottom: none;
+}
+
+/* Based on the Mozilla default definitions */
+#html-message td {
+ padding: 0;
+}
+#html-message ul {
+ display: block;
+ list-style-type: disc;
+ margin: 1em 0;
+ -moz-padding-start: 40px;
+}
+#html-message ol {
+ display: block;
+ list-style-type: decimal;
+ margin: 1em 0;
+ -moz-padding-start: 40px;
+}
+#html-message p {
+ display: block;
+ margin: 1em 0;
+}
+#html-message blockquote {
+ margin: 1em 40px;
+}
+#html-message blockquote[type="cite"] {
+ margin-left: 0;
+ margin-right: 0;
+ padding-left: 1em;
+}
+
+/* Keyboard key style */
+.kbd {
+ background: #eee;
+ color: #000;
+ white-space: nowrap;
+ padding: 1px 2px;
+ border: 1px solid #888;
+ font-size: 90%;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+}
+
+.largeaddrlist {
+ cursor: pointer;
+ background: #aaa;
+ margin-right: 5px;
+}
+.largeaddrlist:hover {
+ text-decoration: underline;
+}