Index: /trunk/roundcubemail/program/js/app.js
===================================================================
--- /trunk/roundcubemail/program/js/app.js	(revision 5716)
+++ /trunk/roundcubemail/program/js/app.js	(revision 5717)
@@ -5424,4 +5424,6 @@
     }
 
+    this.triggerEvent('message', { message:msg, type:type, timeout:timeout, object:obj });
+
     if (timeout > 0)
       window.setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout);
Index: /trunk/roundcubemail/skins/larry/styles.css
===================================================================
--- /trunk/roundcubemail/skins/larry/styles.css	(revision 5716)
+++ /trunk/roundcubemail/skins/larry/styles.css	(revision 5717)
@@ -436,4 +436,47 @@
 }
 
+.ui-dialog.error .ui-dialog-title,
+.ui-dialog.warning .ui-dialog-title,
+.ui-dialog.confirmation .ui-dialog-title {
+	padding-left: 25px;
+	background: url(images/messages.png) 0 5px no-repeat;
+	text-shadow: 0 1px 1px #fff;
+}
+
+.ui-dialog.warning .ui-dialog-title {
+	color: #960;
+	background-position: 0 -90px;
+}
+
+.ui-dialog.error .ui-dialog-title {
+	color: #cf2734;
+	background-position: 0 -60px;
+}
+
+.ui-dialog.confirmation .ui-dialog-title {
+	color: #093;
+	background-position: 0 -30px;
+}
+
+.ui-dialog.popupmessage .ui-dialog-titlebar {
+	padding: 8px 1em 4px 1em;
+	background: #e3e3e3;
+	background: -moz-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3e3e3), color-stop(100%,#cfcfcf));
+	background: -o-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: -ms-linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+	background: linear-gradient(top, #e3e3e3 0%, #cfcfcf 100%);
+}
+
+.ui-dialog.popupmessage .ui-widget-content {
+	font-size: 12px;
+	background: #eee;
+	background: -moz-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eee), color-stop(100%,#dcdcdc));
+	background: -o-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: -ms-linear-gradient(top, #eee 0%, #dcdcdc 100%);
+	background: linear-gradient(top, #eee 0%, #dcdcdc 100%);
+}
+
 
 /*** basic page layout ***/
Index: /trunk/roundcubemail/skins/larry/ui.js
===================================================================
--- /trunk/roundcubemail/skins/larry/ui.js	(revision 5716)
+++ /trunk/roundcubemail/skins/larry/ui.js	(revision 5717)
@@ -59,4 +59,6 @@
   function init()
   {
+    rcmail.addEventListener('message', message_displayed);
+    
     if (rcmail.env.task == 'mail') {
       rcmail.addEventListener('menu-open', show_listoptions);
@@ -199,4 +201,37 @@
 
   /**
+   * Triggered when a new user message is displayed
+   */
+  function message_displayed(p)
+  {
+    // show a popup dialog on errors
+    if (p.type == 'error') {
+      if (!me.messagedialog) {
+        me.messagedialog = $('<div>').addClass('popupdialog');
+      }
+
+      var pos = $(p.object).offset();
+      me.messagedialog.dialog('close');
+      me.messagedialog.html(p.message)
+        .dialog({
+          resizable: false,
+          closeOnEscape: true,
+          dialogClass: 'popupmessage ' + p.type,
+          title: null,
+          close: function() {
+            me.messagedialog.dialog('destroy').hide();
+          },
+          position: ['center', pos.top - 160],
+          hide: { effect:'drop', direction:'down' },
+          width: 420,
+          minHeight: 90
+        }).show();
+        
+      window.setTimeout(function(){ me.messagedialog.dialog('close'); }, p.timeout / 2);
+    }
+  }
+
+
+  /**
    * Adjust UI objects of the mail view screen
    */
@@ -215,4 +250,5 @@
   function render_mailboxlist(splitter)
   {
+    // TODO: implement smart shortening of long folder names
   }
 
