thomascube
2005-10-21 a95e0e174c48b7c5242b8969aef99838a52c41ee
program/js/app.js
@@ -1,4 +1,4 @@
/*
/*
 +-----------------------------------------------------------------------+
 | RoundCube Webmail Client Script                                       |
 |                                                                       |
@@ -6,7 +6,7 @@
 | Copyright (C) 2005, RoundCube Dev, - Switzerland                      |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | Modified: 2005/10/13 (tbr)                                            |
 | Modified: 2005/10/21 (roundcube)                                      |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
@@ -31,6 +31,7 @@
  // webmail client settings
  this.dblclick_time = 600;
  this.message_time = 5000;
  this.request_timeout = 120000;
  this.mbox_expression = new RegExp('[^0-9a-z\-_]', 'gi');
  this.env.blank_img = 'skins/default/images/blank.gif';
  
@@ -76,8 +77,7 @@
    this.task = this.env.task;
    
    // check browser
    if (!(bw.dom && ((bw.ie && bw.vendver>=5.5 && !bw.opera) || (bw.mz && bw.vendver>=1) || (bw.safari && bw.vendver>=125) ||
                     (bw.opera && bw.vendver>=8) || (bw.konq && bw.vendver>=3.4))))
    if (!bw.dom || !bw.xmlhttp_test())
      {
      location.href = this.env.comm_path+'&_action=error&_code=0x199';
      return;
@@ -204,7 +204,7 @@
    // flag object as complete
    this.loaded = true;
    // show message
    if (this.pending_message)
      this.display_message(this.pending_message[0], this.pending_message[1]);
@@ -732,6 +732,7 @@
    };
  // lock/unlock interface
  this.set_busy = function(a, message)
    {
    if (a && message)
@@ -744,6 +745,14 @@
    
    if (this.gui_objects.editform)
      this.lock_form(this.gui_objects.editform, a);
    // clear pending timer
    if (this.request_timer)
      clearTimeout(this.request_timer);
    // set timer for requests
    if (a && this.request_timeout)
      this.request_timer = setTimeout(this.ref+'.request_timed_out()', this.request_timeout);
    };
@@ -763,6 +772,14 @@
      url = this.env.comm_path;
    return url.replace(/_task=[a-z]+/, '_task='+task);
    };
  // called when a request timed out
  this.request_timed_out = function()
    {
    this.set_busy(false);
    this.display_message('Request timed out!', 'error');
    };
@@ -1006,6 +1023,7 @@
    if (!page && mbox != this.env.mailbox)
      {
      page = 1;
      add_url += '&_refresh=1';
      this.env.current_page = page;
      this.clear_selection();
      }
@@ -1016,14 +1034,14 @@
    // load message list remotely
    if (this.gui_objects.messagelist)
      {
      this.list_mailbox_remote(mbox, page);
      this.list_mailbox_remote(mbox, page, add_url);
      return;
      }
    
    if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
      {
      target = window.frames[this.env.contentframe];
      add_url = '&_framed=1';
      add_url += '&_framed=1';
      }
    // load message list to target frame/window
@@ -1036,7 +1054,7 @@
  // send remote request to load message list
  this.list_mailbox_remote = function(mbox, page)
  this.list_mailbox_remote = function(mbox, page, add_url)
    {
    // clear message list
    var table = this.gui_objects.messagelist;
@@ -1050,7 +1068,7 @@
    // send request to server
    var url = '_mbox='+escape(mbox)+(page ? '&_page='+page : '');
    this.set_busy(true, 'loading');
    this.http_request('list', url);
    this.http_request('list', url+add_url);
    };
@@ -1802,6 +1820,10 @@
       }
     if (row.cells[2].firstChild.tagName=='A')
       row.cells[2].firstChild.onclick = new Function(this.ref+".command('delete-folder','"+name+"')");
    var form;
    if ((form = this.gui_objects.editform) && form.elements['_folder_name'])
      form.elements['_folder_name'].value = '';
     };
@@ -1963,9 +1985,13 @@
    var cont = msg;
    if (type)
      cont = '<div class="'+type+'">'+cont+'</div>';
    this.gui_objects.message._rcube = this;
    this.gui_objects.message.innerHTML = cont;
    this.gui_objects.message.style.display = 'block';
    if (type!='loading')
      this.gui_objects.message.onmousedown = function(){ this._rcube.hide_message(); return true; };
    
    if (!hold)
      this.message_timer = setTimeout(this.ref+'.hide_message()', this.message_time);
@@ -1976,7 +2002,10 @@
  this.hide_message = function()
    {
    if (this.gui_objects.message)
      {
      this.gui_objects.message.style.display = 'none';
      this.gui_objects.message.onmousedown = null;
      }
    };