Thomas Bruederli
2012-07-04 77fad166e30e5fd225495c6c78f525d0ce27c7b3
skins/larry/ui.js
@@ -7,8 +7,6 @@
 * License. It is allowed to copy, distribute, transmit and to adapt the work
 * by keeping credits to the original autors in the README file.
 * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
 *
 * $Id$
 */
@@ -110,7 +108,7 @@
        $('#mailthreadmode').addClass(rcmail.env.threading ? 'selected' : '').click(function(e){ switch_view_mode('thread'); return false });
        mailviewsplit = new rcube_splitter({ id:'mailviewsplitter', p1:'#mailview-top', p2:'#mailview-bottom',
          orientation:'h', relative:true, start:310, min:150, size:0, offset:-22 });
          orientation:'h', relative:true, start:310, min:150, size:6, offset:-18 });
        if (previewframe)
          mailviewsplit.init();
@@ -172,23 +170,32 @@
        return;
      }
      var title = $('option', this).first().text();
      var select = $(this),
        height = Math.max(select.height(), 24) - 2,
        width = select.width() - 22,
        title = $('option', this).first().text();
      if ($('option:selected', this).val() != '')
        title = $('option:selected', this).text();
      var select = $(this)
        .change(function(){
      var overlay = $('<a class="menuselector"><span class="handle">' + title + '</span></a>')
        .css('position', 'absolute')
        .offset(select.position())
        .insertAfter(select);
      overlay.children().width(width).height(height).css('line-height', (height - 1) + 'px');
      select.change(function() {
          var val = $('option:selected', this).text();
          $(this).next().children().html(val);
        });
      $('<a class="menuselector dropdownselector"><span class="handle">' + title + '</span></a>')
        .css('position', 'absolute')
        .offset(select.position())
        .insertAfter(select)
        .children().width(select.outerWidth() - 40);
      var parent = select.parent();
      if (parent.css('position') != 'absolute')
        parent.css('position', 'relative');
      select.parent().css('position', 'relative');
      // re-set original select width to fix click action and options width in some browsers
      select.width(overlay.width());
    });
    $(document.body)
@@ -209,12 +216,8 @@
    })
    .contents().mouseup(body_mouseup);
    $(window).resize(function(e) {
      // check target due to bugs in jquery
      // http://bugs.jqueryui.com/ticket/7514
      // http://bugs.jquery.com/ticket/9841
      if (e.target == window) resize();
    });
    // don't use $(window).resize() due to some unwanted side-effects
    window.onresize = resize;
  }
  /**
@@ -224,6 +227,8 @@
  function body_mouseup(e)
  {
    var config, obj, target = e.target;
    if (target.className == 'inner')
        target = e.target.parentNode;
    for (var id in popups) {
      obj = popups[id];
      config = popupconfig[id];
@@ -264,6 +269,7 @@
      }
      var pos = $(p.object).offset();
      pos.top -= (rcmail.env.task == 'login' ? 20 : 160);
      me.messagedialog.dialog('close');
      me.messagedialog.html(p.message)
        .dialog({
@@ -274,7 +280,7 @@
          close: function() {
            me.messagedialog.dialog('destroy').hide();
          },
          position: ['center', pos.top - 160],
          position: ['center', pos.top],
          hide: { effect:'drop', direction:'down' },
          width: 420,
          minHeight: 90
@@ -308,7 +314,7 @@
  function resize_leftcol(splitter)
  {
    if (splitter)
    if (0&&splitter)
      $('#quicksearchbar input').css('width', (splitter.pos - 70) + 'px');
  }
@@ -326,13 +332,9 @@
    h = body.parent().height() - 16;
    body.width(w).height(h);
    if (window.tinyMCE && tinyMCE.get('composebody')) {
      $('#composebody_tbl').width((w+8)+'px').height('').css('margin-top', '1px');
      $('#composebody_ifr').width((w+8)+'px').height((h-40)+'px');
    }
    else {
      $('#googie_edit_layer').height(h+'px');
    }
    $('#composebody_tbl').width((w+8)+'px').height('').css('margin-top', '1px');
    $('#composebody_ifr').width((w+8)+'px').height((h-40)+'px');
    $('#googie_edit_layer').height(h+'px');
    var abooks = $('#directorylist');
    $('#compose-contacts .scroller').css('top', abooks.position().top + abooks.outerHeight());
@@ -341,7 +343,13 @@
  function update_quota(p)
  {
    var y = p.total ? Math.ceil(p.percent / 100 * 20) * 24 : 0;
    var step = 24, step_count = 20,
      y = p.total ? Math.ceil(p.percent / 100 * step_count) * step : 0;
    // never show full-circle if quota is close to 100% but below.
    if (p.total && y == step * step_count && p.percent < 100)
      y -= step;
    $('#quotadisplay').css('background-position', '0 -'+y+'px');
  }
@@ -442,7 +450,7 @@
    button.removeClass().addClass(visible ? 'enabled' : 'closed');
    if (visible) {
      $('#mailview-top').css({ bottom:'auto' });
      $('#mailview-top').removeClass('fullheight').css({ bottom:'auto' });
      $('#mailview-bottom').css({ height:'auto' });
      rcmail.env.contentframe = 'messagecontframe';
@@ -461,7 +469,7 @@
      rcmail.env.contentframe = null;
      rcmail.show_contentframe(false);
      $('#mailview-top').css({ height:'auto', bottom:'28px' });
      $('#mailview-top').addClass('fullheight').css({ height:'auto', bottom:'28px' });
      $('#mailview-bottom').css({ top:'auto', height:'26px' });
      if (mailviewsplit.handle)
@@ -550,7 +558,7 @@
      for (i in rcmail.env.spell_langs) {
        li = $('<li>');
        link = $('<a href="#">').text(rcmail.env.spell_langs[i])
        link = $('<a href="#"></a>').text(rcmail.env.spell_langs[i])
          .addClass('active').data('lang', i)
          .click(function() {
            rcmail.spellcheck_lang_set($(this).data('lang'));