source: trunk/expressoMail1_2/js/jscode/draw_api_folders.js @ 2714

Revision 2714, 50.0 KB checked in by amuller, 14 years ago (diff)

Ticket #1064 - Implementando parcialmente o ticket

Line 
1
2
3var lastPage = 1;
4var numPages = 5;
5var last_folder = 'INBOX';
6
7function draw_quota(data){
8    build_quota(data);
9}
10
11function update_quota(folder_id){
12    cExecute ("expressoMail1_2.imap_functions.get_quota&folder_id="+folder_id,build_quota);
13}
14
15function draw_search(headers_msgs){
16    Element("border_id_0").innerHTML = "  " + get_lang('Search Result') + "  ";
17
18    var tbody = Element('tbody_box');
19    for (var i=0; i<(headers_msgs.length); i++){
20        var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder);
21        if (tr)
22            tbody.appendChild(tr);
23    }
24}
25
26function draw_search_header_box(){
27    var table_message_header_box = Element("table_message_header_box");
28    table_message_header_box.parentNode.removeChild(table_message_header_box);
29
30    var content_id_0 = Element("content_id_0");
31    var table_element = document.createElement("TABLE");
32    var tbody_element = document.createElement("TBODY");
33    table_element.setAttribute("id", "table_message_header_box");
34    table_element.className = "table_message_header_box";
35    tr_element = document.createElement("TR");
36    tr_element.className = "message_header";
37    td_element1 = document.createElement("TD");
38    td_element1.setAttribute("width", "1%");
39    chk_box_element = document.createElement("INPUT");
40    chk_box_element.id  = "chk_box_select_all_messages";
41    chk_box_element.setAttribute("type", "checkbox");
42    chk_box_element.className = "checkbox";
43    chk_box_element.onclick = function(){
44        select_all_messages(this.checked);
45    };
46    chk_box_element.onmouseover = function () {
47        this.title=get_lang('Select all messages.')
48        };
49    chk_box_element.onkeydown = function (e){
50        if (is_ie)
51        {
52            if ((window.event.keyCode) == 46)
53            {
54                //delete_all_selected_msgs_imap();
55                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
56            }
57        }
58        else
59        {
60            if ((e.keyCode) == 46)
61            {
62                //delete_all_selected_msgs_imap();
63                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
64            }
65        }
66    };
67
68    td_element1.appendChild(chk_box_element);
69    td_element2 = document.createElement("TD");
70    td_element2.setAttribute("width", "3%");
71    td_element3 = document.createElement("TD");
72    td_element3.setAttribute("width", "30%");
73    td_element3.id = "message_header_SORTFROM";
74    td_element3.align = "left";
75    td_element3.innerHTML = get_lang("From");
76    td_element4 = document.createElement("TD");
77    td_element4.setAttribute("width", "49%");
78    td_element4.id = "message_header_SORTSUBJECT";
79    td_element4.align = "left";
80    td_element4.innerHTML = get_lang("Subject");
81    td_element5 = document.createElement("TD");
82    td_element5.setAttribute("width", "10%");
83    td_element5.id = "message_header_SORTARRIVAL";
84    td_element5.align = "center";
85    td_element5.innerHTML = "<B>"+get_lang("Date")+"</B>";
86    td_element5.innerHTML += '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/arrow_descendant.gif">';
87    td_element6 = document.createElement("TD");
88    td_element6.setAttribute("width", "10%");
89    td_element6.id = "message_header_SORTSIZE";
90    td_element6.align = "right";
91    td_element6.innerHTML = get_lang("Size");
92    tr_element.appendChild(td_element1);
93    tr_element.appendChild(td_element2);
94    tr_element.appendChild(td_element3);
95    tr_element.appendChild(td_element4);
96    tr_element.appendChild(td_element5);
97    tr_element.appendChild(td_element6);
98
99    tbody_element.appendChild(tr_element);
100    table_element.appendChild(tbody_element);
101    content_id_0.appendChild(table_element);
102}
103
104function draw_search_division(msg){
105    var tbody = Element('tbody_box');
106    var tr = document.createElement("TR");
107    var td = document.createElement("TD");
108    td.colSpan = '7';
109    td.width = '100%';
110
111    var action_info_table = document.createElement("TABLE");
112    var action_info_tbody = document.createElement("TBODY");
113
114    action_info_table.className = "action_info_table";
115    action_info_table.width = "100%";
116
117    var action_info_tr = document.createElement("TR");
118
119    var action_info_th1 = document.createElement("TH");
120    action_info_th1.width = "40%";
121    action_info_th1.innerHTML = "&nbsp;";
122
123    var action_info_th2 = document.createElement("TH");
124
125    action_info_th2.innerHTML = msg;
126    action_info_th2.className = "action_info_th";
127    action_info_th2.setAttribute("noWrap", "true");
128
129    var action_info_th3 = document.createElement("TH");
130    action_info_th3.width = "40%";
131    action_info_th3.innerHTML = "&nbsp;";
132
133    action_info_tr.appendChild(action_info_th1);
134    action_info_tr.appendChild(action_info_th2);
135    action_info_tr.appendChild(action_info_th3);
136    action_info_tbody.appendChild(action_info_tr);
137    action_info_table.appendChild(action_info_tbody);
138
139    td.appendChild(action_info_table);
140    tr.appendChild(td);
141    tbody.appendChild(tr);
142}
143
144function draw_search_box(){
145    var content_id_0 = Element("content_id_0");
146    var table = document.createElement("TABLE");
147    table.id = "table_box";
148    table.width = 'auto';
149    var tbody = document.createElement("TBODY");
150    tbody.id = "tbody_box";
151
152    table.className = "table_box";
153    table.setAttribute("frame", "below");
154    table.setAttribute("rules", "none");
155    table.setAttribute("cellpadding", "0");
156    table.onkeydown = function (e){
157        if (is_ie)
158        {
159            if ((window.event.keyCode) == 46)
160            {
161                //delete_all_selected_msgs_imap();
162                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
163            }
164        }
165        else
166        {
167            if ((e.keyCode) == 46)
168            {
169                //delete_all_selected_msgs_imap();
170                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
171            }
172        }
173    };
174    if (is_ie)
175        table.style.cursor = "hand";
176
177    table.appendChild(tbody);
178    content_id_0.appendChild(table);
179}
180
181function build_quota(data){
182    id = "content_quota";
183    q_limit = data['quota_limit'];
184    var div     = document.getElementById(id);
185    if(!q_limit){
186        div.innerHTML = '<span><font size="2" style="color:red"><strong>'+get_lang("Without Quota")+'</strong></font></span>';
187    }
188    else{
189        if(div)
190        {
191            div.innerHTML = '';
192            value = data['quota_percent'];
193            q_used = data['quota_used'];
194            table = document.getElementById("table_quota");
195            if(table)
196                table.parentNode.removeChild(table);
197            table = document.createElement("TABLE");
198            tbody = document.createElement("TBODY");
199            table.appendChild(tbody);
200            table.id = "table_quota";
201            table.width="102";
202            table.border="0";
203            table.cellSpacing = 0;
204            table.cellPadding = 0;
205
206            //tr1 = document.createElement("TR");
207            td11 = document.createElement("TD");
208            td11.align="center";
209            td11.setAttribute("noWrap","true");
210            td11.innerHTML += '&nbsp;<span class="boxHeaderText">' + value+"% ("+q_used+"M/"+q_limit+"M)</span>";
211            //tr1.appendChild(td11);
212
213            tr2 = document.createElement("TR");
214            td21 = document.createElement("TD");
215            td21.setAttribute("noWrap","true");
216            td21.height="15";
217            td22 = document.createElement("TD");
218            td21.setAttribute("background", URL_SERVER + 'phpgwapi/templates/' + template + '/images/dsunused.gif');
219            table221 = document.createElement("TABLE");
220            tbody221 = document.createElement("TBODY");
221            table221.appendChild(tbody221);
222            table221.style.width=value+"%";
223            td21.width="102";
224            table221.border="0";
225            table221.cellSpacing = 0;
226            table221.cellPadding = 0;
227            tr221 = document.createElement("TR");
228            td221 = document.createElement("TD");
229            td221.height="15";
230            if(value > 90) {
231                if(value >= 100)
232                    write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages."));
233                else
234                    write_msg(get_lang("Warning: Your Mailbox is almost full!"));
235                td221.setAttribute("background","templates/"+template+"/images/dsalert.gif");
236            }
237            else if(value > 80)
238                td221.setAttribute("background", URL_SERVER + 'expressoMail1_2/templates/' + template + '/images/dswarn.gif');
239            else
240                td221.className = 'dsused';
241
242            tr221.appendChild(td221);
243            tbody221.appendChild(tr221);
244            td21.appendChild(table221);
245            tr2.appendChild(td21);
246            tr2.appendChild(td11);
247
248            //tr2.appendChild(td1);
249
250            tbody.appendChild(tr2); //Desenho
251            //tbody.appendChild(tr1); //Letras
252            div.appendChild(table);
253        }
254    }
255}
256
257function draw_paging(num_msgs){
258    num_msgs = parseInt(num_msgs);
259    total_pages = 1;
260
261    if(last_folder != current_folder){
262        lastPage = 1;
263        current_page = 1;
264        last_folder = current_folder;
265    }
266
267    if(num_msgs > parseInt(preferences.max_email_per_page)) {
268        total_pages = parseInt(num_msgs/preferences.max_email_per_page);
269        if((num_msgs/preferences.max_email_per_page) > total_pages)
270            total_pages++;
271    }
272
273    if(total_pages == 1) {
274        if(span_paging = document.getElementById("span_paging")) {
275            span_paging.parentNode.removeChild(span_paging);
276        }
277        return;
278    }
279
280    span_paging = document.getElementById("span_paging");
281    if(!span_paging){
282        span_paging = document.createElement("DIV");
283        span_paging.id = "span_paging";
284        span_paging.className = "boxHeaderText";
285        span_paging.align="right";
286        var div_menu_c3 = document.getElementById("div_menu_c3");
287        if ( div_menu_c3 )
288            div_menu_c3.appendChild(span_paging);
289    }
290    span_paging.style.width="100%";
291    span_paging.innerHTML="";
292    msg_range_begin = 1;
293    msg_range_end = preferences.max_email_per_page;
294    if(current_page != 1) {
295        lnk_page = document.createElement("A");
296        lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});");
297    }
298    else {
299        lnk_page = document.createElement("SPAN");
300    }
301    span_paging.appendChild(lnk_page);
302
303    lnk_page.innerHTML = "&lt;&lt;";
304    lnk_page.title = get_lang("First");
305    span_paging.innerHTML += "&nbsp;";
306
307    if(current_page == lastPage + numPages)
308        lastPage = current_page - 1;
309    else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages)
310        lastPage = current_page - (numPages - 1);
311    else if(current_page == 1)
312        lastPage = 1;
313
314    if(lastPage < 1)
315        lastPage = 1;
316    else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1))))
317        lastPage = total_pages -(numPages - 1);
318
319    var hasMarked = false;
320
321    for(i = lastPage; i <= total_pages; i++) {
322
323        if(current_page == i || (i == total_pages && !hasMarked)) {
324            lnk_page = document.createElement("SPAN");
325            span_paging.appendChild(lnk_page);
326            lnk_page.innerHTML = "&nbsp;<b>"+i+"</b>&nbsp;";
327            hasMarked = true;
328            continue;
329        }
330        else{
331            lnk_page = document.createElement("A");
332            span_paging.appendChild(lnk_page);
333            msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
334            msg_range_end = (i*preferences.max_email_per_page);
335            lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});");
336        }
337
338        lnk_page.innerHTML = "&nbsp;...&nbsp;";
339
340        if(i == (lastPage + numPages))
341            break;
342        else if(lastPage == 1 || i != lastPage)
343            lnk_page.innerHTML = "&nbsp;"+i+"&nbsp;";
344
345        span_paging.innerHTML += "&nbsp;";
346    }
347
348    if(current_page != total_pages) {
349        lnk_page = document.createElement("A");
350        msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1));
351        msg_range_end = (total_pages*preferences.max_email_per_page);
352        lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box(data, get_current_folder());});");
353    }
354    else {
355        lnk_page = document.createElement("SPAN");
356    }
357    span_paging.innerHTML += "&nbsp;";
358    span_paging.appendChild(lnk_page);
359
360    lnk_page.title = get_lang("Last");
361    lnk_page.innerHTML = "&gt;&gt;";
362}
363
364
365function draw_tree_local_folders() {
366    /**
367         * Pastas locais
368         */
369    if(preferences.use_local_messages==1 || expresso_offline) {
370        var local_folders = expresso_local_messages.list_local_folders();
371        var has_changes = false;
372        for (var i in local_folders) { //Coloca as pastas locais.
373            if(!isNaN(i)){
374                var new_caption = local_folders[i][0];
375                if(local_folders[i][0].indexOf("/")!="-1") {
376                    final_pos = local_folders[i][0].lastIndexOf("/");
377                    new_caption = local_folders[i][0].substr(final_pos+1);
378                }
379
380                var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen');
381
382                if ((folder_unseen) && (local_folders[i][1] > 0))
383                {
384                    folder_unseen.innerHTML = local_folders[i][1];
385                    has_changes = true;
386                }
387                else if (local_folders[i][1] > 0)
388                {
389                    tree_folders.getNodeById("local_"+local_folders[i][0]).alter({
390                        caption:lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="dftree_local_'+local_folders[i][0]+'_unseen" style=color:red>'+local_folders[i][1]+'</span><font style=color:red>)</font>'
391                        });
392                    tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
393                    has_changes = true;
394                }
395                else if (local_folders[i][1] <= 0)
396                {
397                    tree_folders.getNodeById("local_"+local_folders[i][0]).alter({
398                        caption:lang_folder(new_caption)
399                        });
400                    tree_folders.getNodeById("local_"+local_folders[i][0])._refresh();
401                    has_changes = true;
402                }
403
404                if("local_"+local_folders[i][0] == get_current_folder()){
405                    var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML);
406                    if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){
407                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m);
408                    }
409                    Element('new_m').innerHTML = local_folders[i][1] ? '<font color="RED">'+local_folders[i][1]+'</font>' : 0;
410                    draw_paging(Element('tot_m').innerHTML);
411                    has_changes = true;
412                }
413            }
414        }
415        if(has_changes)
416            tree_folders.getNodeById("local_root").open();
417
418    }
419}
420
421function draw_tree_folders(folders){
422    // Check if the tree folders alredy exist.
423    translatedFolders = new Map();
424    if (Element('dftree_tree_folders')){
425        if (!expresso_offline) {
426            var update_tree_folders = function(data){
427                build_quota(data);
428                var unseen_in_mailbox = 0;
429                var unseen_in_shared_folders = 0;
430                for (var i=0; i<data.length; i++){
431                    if ( data[i].folder_unseen > 0 )
432                    {
433                        unseen_in_mailbox = parseInt( unseen_in_mailbox + data[ i ].folder_unseen );
434                        if ( data[i].folder_id.indexOf( 'INBOX' ) !== 0 )
435                            unseen_in_shared_folders = parseInt( unseen_in_shared_folders + data[ i ].folder_unseen );
436                    }
437
438                    var folder_unseen = Element('dftree_'+data[i].folder_id+'_unseen');
439
440                    if ((folder_unseen) && (data[i].folder_unseen > 0))
441                    {
442                        folder_unseen.innerHTML = data[i].folder_unseen;
443                    }
444                    else if (data[i].folder_unseen > 0)
445                    {
446                        tree_folders.getNodeById(data[i].folder_id).alter({
447                            caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>'
448                            });
449                        tree_folders.getNodeById(data[i].folder_id)._refresh();
450                    }
451                    else if (data[i].folder_unseen <= 0)
452                    {
453                        tree_folders.getNodeById(data[i].folder_id).alter({
454                            caption:lang_folder(data[i].folder_name)
455                            });
456                        tree_folders.getNodeById(data[i].folder_id)._refresh();
457                    }
458
459                    if(data[i].folder_id == current_folder){
460                        var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML);
461                        //                                      if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){
462                        //                                              Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m);
463                        //                                      }
464                        Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0;
465                        draw_paging(Element('tot_m').innerHTML);
466                    }
467                }
468
469                var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' );
470                //if ( unseen_in_mailbox )
471                //      display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")});
472                //else
473                display_unseen_in_mailbox.alter({
474                    caption:get_lang("My Folders")
475                    });
476                display_unseen_in_mailbox._refresh();
477
478                var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' );
479                if ( display_unseen_in_shared_folders )
480                {
481                    if ( unseen_in_shared_folders )
482                        display_unseen_in_shared_folders.alter({
483                            caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")
484                            });
485                    else
486                        display_unseen_in_shared_folders.alter({
487                            caption:get_lang("Shared folders")
488                            });
489                    display_unseen_in_shared_folders._refresh();
490                }
491            };
492            expresso.connector.cacheNextRequest(1);
493            cExecute ("expressoMail1_2.imap_functions.get_folders_list&folder=INBOX", update_tree_folders);
494        }
495
496        return;
497    }
498    else{
499        if (!expresso_offline) {
500            tree_folders = new dFTree({
501                name: 'tree_folders'
502            });
503
504            var n_root = new dNode({
505                id:'root',
506                caption: get_lang("My Folders")
507                });
508            tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything.
509
510            var unseen_in_mailbox = 0;
511            var unseen_in_shared_folders = 0;
512            for (var i=0; i<folders.length; i++){
513                if (folders[i].folder_unseen > 0)
514                {
515                    unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen );
516                    if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 )
517                        unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen );
518
519                    var nn = new dNode({
520                        id:folders[i].folder_id,
521                        caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>',
522                        onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')",
523                        plusSign:folders[i].folder_hasChildren
524                        });
525
526                    if( folders[i].folder_name.toLowerCase() == 'inbox' )
527                        Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>';
528                }
529                else
530                    var nn = new dNode({
531                        id:folders[i].folder_id,
532                        caption:lang_folder(folders[i].folder_name),
533                        onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')",
534                        plusSign:folders[i].folder_hasChildren
535                        });
536
537                if (folders[i].folder_parent == '')
538                    folders[i].folder_parent = 'root';
539                else if (folders[i].folder_parent == 'user'){
540
541                    if (!tree_folders.getNodeById('user')){
542                        tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop();
543                        if (tmpFolderId != folders[i].folder_name)
544                        {
545                            translatedFolders.add(tmpFolderId, folders[i].folder_name);
546                        }
547                        var n_root_shared_folders = new dNode({
548                            id:'user',
549                            caption:get_lang("Shared folders"),
550                            plusSign:true
551                        });
552                        tree_folders.add(n_root_shared_folders,'root');
553                    }
554                }
555                tree_folders.add(nn,folders[i].folder_parent);
556            }
557        }
558        //tree_local_folders = new dFTree({name: 'tree_local_folders'});
559        /**
560                 * Pastas locais
561                 */
562        if (preferences.use_local_messages==1 || expresso_offline) {
563            if (!window.google || !google.gears) {
564                if (!expresso_local_messages.installGears())
565                    preferences.use_local_messages=0;
566            }
567            else{
568                if (!window.google || !google.gears) {
569                    temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?"));
570                    if (temp) {
571                        location.href = "http://gears.google.com/?action=install&message="+
572                        "Para utilizar o recurso de mensagens locais, instale o google gears&return=" +
573                        document.location.href;
574                    }
575                    else {
576                        preferences.use_local_messages=0;
577                    }
578                }
579                else{
580                    if (expresso_offline)
581                        tree_folders = new dFTree({
582                            name: 'tree_folders'
583                        });
584                    var root_local = new dNode({
585                        id: "local_root",
586                        caption: get_lang('local folders')
587                    });
588                    tree_folders.add(root_local, "root"); //coloca root local
589                    var local_folders = expresso_local_messages.list_local_folders();
590                    for (var i in local_folders) { //Coloca as pastas locais.
591                        if(!isNaN(i)){
592                            var node_root = "local_root";
593                            var new_caption = local_folders[i][0];
594                            if (local_folders[i][0].indexOf("/") != "-1") {
595                                final_pos = local_folders[i][0].lastIndexOf("/");
596                                node_root = "local_" + local_folders[i][0].substr(0, final_pos);
597                                new_caption = local_folders[i][0].substr(final_pos + 1);
598                            }
599                            if (local_folders[i][1] > 0)
600                                var nodeLocal = new dNode({
601                                    id: "local_" + local_folders[i][0],
602                                    caption: lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>',
603                                    onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')",
604                                    plusSign: local_folders[i][2]
605                                });
606                            else
607                                var nodeLocal = new dNode({
608                                    id: "local_" + local_folders[i][0],
609                                    caption: lang_folder(new_caption),
610                                    onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')",
611                                    plusSign: local_folders[i][2]
612                            });
613                            tree_folders.add(nodeLocal, node_root);
614                        }
615                    }
616                }
617            }
618        }
619
620        tree_folders.draw(Element('content_folders'));
621        if (!expresso_offline) {
622            n_root.changeState();
623            folder_select = (current_folder ? current_folder:"INBOX");
624            if (typeof(tree_folders.getNodeById(folder_select)) == 'undefined')
625                return false;
626            tree_folders.getNodeById(folder_select)._select();
627        }
628        else {
629            root_local.changeState();
630            tree_folders.getNodeById('local_Inbox')._select();
631        }
632
633        var trash_span=document.getElementById('lINBOX/'+trashfolder+'tree_folders');
634        var draft_span=document.getElementById('lINBOX/'+draftsfolder+'tree_folders');
635        var sent_span=document.getElementById('lINBOX/'+sentfolder+'tree_folders');
636        var spam_span=document.getElementById('lINBOX/'+spamfolder+'tree_folders');
637
638        if (trash_span)
639            trash_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_trash.png)";
640
641        if (draft_span)
642            draft_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_draft.png)";
643
644        if (sent_span)
645            sent_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_sent.png)";
646
647        if (spam_span)
648            spam_span.style.backgroundImage="url(" + URL_SERVER + "phpgwapi/templates/"+template+"/images/foldertree_spam.png)";
649
650
651        draw_paging(Element('tot_m').innerHTML);
652        if(document.getElementById("nINBOX/"+trashfolder+"tree_folders"))
653        {
654            var trash = document.createElement("SPAN");
655            trash.id = 'empty_trash';
656            trash.className = 'clean_folder';
657            trash.style.cursor = 'pointer';
658            trash.onclick = function () {
659                empty_trash_imap();
660            };
661            trash.innerHTML = "["+get_lang("Clean")+"]";
662            trash.title=get_lang("Empty trash");
663            trash.onmouseover = function() {
664                trash.style.color="red";
665            };
666            trash.onmouseout= function() {
667                trash.style.color="#666666";
668            };
669            document.getElementById("nINBOX/"+trashfolder+"tree_folders").appendChild(trash);
670        }
671        if(document.getElementById("nINBOX/"+spamfolder+"tree_folders"))
672        {
673            var spam = document.createElement("SPAN");
674            spam.id = 'empty_spam';
675            spam.className = 'clean_folder';
676            spam.style.cursor = 'pointer';
677            spam.style.padding = '0 0 0 6px';
678            spam.onclick = function () {
679                empty_spam_imap();
680            };
681            spam.innerHTML = "["+get_lang("Clean")+"]";
682            spam.title=get_lang("Empty Spam Folder");
683            spam.onmouseover = function() {
684                spam.style.color="red";
685            };
686            spam.onmouseout= function() {
687                spam.style.color="#666666";
688            };
689            document.getElementById("nINBOX/"+spamfolder+"tree_folders").appendChild(spam);
690        }
691
692        // Draw right menu folders.
693        /*
694   var treeroot = document.getElementById('chroottree_folders');
695   for (var linkBox = treeroot.firstChild; linkBox != null; linkBox = linkBox.nextSibling)
696   _dragArea.makeMenuBox(linkBox);
697   */
698
699        if(!expresso_offline)
700            var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' );
701        else
702            var display_unseen_in_mailbox = tree_folders.getNodeById( 'local_root' );
703        //if ( unseen_in_mailbox )
704        //      display_unseen_in_mailbox.alter({caption:'<font style=color:red>[</font><span id="dftree_root_unseen" style="color:red">' + unseen_in_mailbox +'</span><font style=color:red>]</font> ' + get_lang("My Folders")});
705        //else
706        display_unseen_in_mailbox.alter({
707            caption:get_lang("My Folders")
708            });
709        display_unseen_in_mailbox._refresh();
710
711        var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' );
712        if ( display_unseen_in_shared_folders )
713        {
714            if ( unseen_in_shared_folders )
715                display_unseen_in_shared_folders.alter({
716                    caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")
717                    });
718            else
719                display_unseen_in_shared_folders.alter({
720                    caption:get_lang("Shared folders")
721                    });
722            display_unseen_in_shared_folders._refresh();
723        }
724    }
725
726    if (!expresso_offline) {
727        var folder_create = "";
728        var nm1 = "";
729        if(tree_folders._folderPr.length > 0){
730            var nm_folder = "";
731            for(var i=0; i < tree_folders._folderPr.length; i++){
732                nm_folder = tree_folders._folderPr[i].split(cyrus_delimiter);
733                if(nm_folder[0] == "INBOX"){
734                    if(nm1 == ""){
735                        nm1 = nm_folder[1];
736                        folder_create = "INBOX" + cyrus_delimiter + nm_folder[1] + ";";
737                    }else{
738                        if( nm1 != nm_folder[1]){
739                            folder_create += "INBOX" + cyrus_delimiter + nm_folder[1] + ";";
740                            nm1 = nm_folder[1];
741                        }
742                    }
743                }
744            }
745        }
746        if(folder_create != ""){
747            if(confirm(get_lang("There are folders with invalid format. Do you want to fix them?"))){
748                var handler_correct_folders = function(data){
749                    //Timeout to release HTTPRequest , loadScript and update tree folders.
750                    if(data)
751                        setTimeout("expresso.connector.loadScript('jscode/TreeShow');ttreeBox.update_folder();",500);
752                };
753                cExecute("expressoMail1_2.imap_functions.create_extra_mailbox",handler_correct_folders,"nw_folders="+folder_create);
754            }
755        }
756    }
757}
758
759
760function update_menu(data){
761    /*
762         * @AUTHOR Rodrigo Souza dos Santos
763         * @DATE 2008/09/15
764         * @BRIEF When occurs a error in imap server show the message that is in file "error.html".
765         */
766    if ( data && data.imap_error )
767    {
768        if(preferences.use_local_messages==1 && expresso_local_messages.is_offline_installed){
769            conf = confirm(get_lang("The expresso imap server is currently down, expresso noticed you have offline mail module installed, would you like to use it?"));
770            if(conf) {
771                window.onresize = function() {
772                    var target = document.getElementById('divAppbox');
773                    target.style.height= document.body.clientHeight - 83;
774                };
775                var target = document.getElementById('divAppbox');
776                document.getElementById("divAppboxHeader").innerHTML="";
777                target.style.height= document.body.clientHeight - 83;
778                expresso_local_messages.set_as_logged(account_id,0,true);
779                target.innerHTML = "<iframe src='offline.php?inside=1' width='100%' height='100%' frameBorder='0'></iframe>";
780                return false;
781            }
782        }
783        expresso.connector.newRequest('error.html', URL_SERVER + 'expressoMail1_2/templates/'+template+'/error.html', 'GET',
784            function(data)
785            {
786                var target = document.getElementById('divAppbox');
787                if ( target )
788                    target.innerHTML = data;
789            }
790            );
791        return false;
792    }
793
794    draw_tree_folders(data);
795    if(data) {
796        build_quota(data);
797        var f_unseen = Element('dftree_'+current_folder+'_unseen');
798        if(f_unseen && f_unseen.innerHTML)
799            Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>';
800        else
801        {
802            if( parseInt(Element('new_m').innerHTML) == 0 )
803                Element('new_m').innerHTML = 0;
804        }
805        folders = data;
806    }
807}
808
809var handler_draw_box = function(data){
810    draw_box( expresso.connector.unserialize( data ), 'INBOX', true);
811//alternate_border(0);
812};
813
814// Action on change folders.
815function change_folder(folder, folder_name){
816    if (openTab.imapBox[0] != folder)
817    {
818        current_folder = folder;
819        var handler_draw_box = function(data)
820        {
821            alternate_border(0);
822            Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>';
823            draw_box(data, folder, true);
824            draw_paging(data.num_msgs);
825            Element("tot_m").innerHTML = data.num_msgs;
826            update_menu();
827            return true;
828        };
829        proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
830    //          cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
831    }
832    else
833        alternate_border(0);
834}
835
836function open_folder(folder, folder_name){
837    if (current_folder!= folder) {
838        current_folder = folder;
839        var handler_draw_box = function(data){
840            numBox++;
841            create_border(folder_name,numBox.toString());
842            draw_box(data, current_folder, false);
843            alternate_border(numBox);
844            return true;
845        };
846        cExecute ("expressoMail1_2.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box);
847    }
848    else
849        alternate_border(numBox);
850    return true;
851}
852
853function sort_box(search, sort){
854    var message_header = Element("message_header_"+search);
855    var handler_draw_box = function(data){
856        draw_box(data, current_folder,true);
857        draw_paging(Element('tot_m').innerHTML);
858        //Mostrar as msgs nao lidas de acordo com o filtro de relevancia
859        var msgs_unseen = 0;
860        for(i in data){
861            if(data[i].Unseen == 'U')
862                msgs_unseen++;
863        }
864        Element("new_m").innerHTML = '<font style="color:'+(msgs_unseen == 0 ? '': 'red')+'">' + msgs_unseen + '</font>';
865    };
866
867    if(sort_box_type == sort && search_box_type == search){
868        sort_box_reverse = sort_box_reverse ? 0 : 1;
869    }
870    else if(sort_box_type != sort){
871        if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') )
872            sort_box_reverse = 0;
873        else
874            sort_box_reverse = 1;
875    }
876
877    // Global variable.
878    sort_box_type = sort;
879    search_box_type = search;
880
881    proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box);
882    current_page = 1;
883//Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros
884//update_menu();
885}
886
887function make_tr_message(headers_msgs, msg_folder)
888{
889    if ( InfoContact == null )
890        InfoContact = new emInfoContact();
891
892    var tr_element = document.createElement('tr');
893    tr_element.style.height = preferences.line_height;
894    tr_element.id = headers_msgs.msg_number;
895
896    tr_element.msg_sample = "";
897    //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "")
898    if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1")
899    {
900        tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,120) + "..."; //trecho do body que sera exibido com o assunto;
901    }
902
903    tr_element.tip = "";
904    if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1")
905    {
906        tr_element.tip = headers_msgs.msg_sample.body.substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip;
907    }
908
909    if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){
910        if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag)))
911            add_className(tr_element, 'flagged_msg');
912        add_className(tr_element, 'tr_msg_unread');
913    }
914    else{
915        if ((headers_msgs.Flagged == 'F') || (headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 && parseInt(preferences.use_important_flag)))
916            add_className(tr_element,'flagged_msg');
917    }
918
919    if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N'))
920        add_className(tr_element, 'tr_msg_unread');
921
922    if (headers_msgs.Flagged == 'F')
923        add_className(tr_element,'flagged_msg');
924
925    td_element1 = document.createElement("TD");
926    td_element1.className = "td_msg";
927    td_element1.setAttribute("width", "1%");
928    chk_box_element = document.createElement("INPUT");
929    chk_box_element.setAttribute("type", "checkbox");
930    chk_box_element.className = "checkbox";
931    chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number);
932    chk_box_element.onclick = function(e){
933        if (is_ie)
934            changeBgColor(window.event,headers_msgs.msg_number);
935        else
936            changeBgColor(e,headers_msgs.msg_number);
937    };
938    td_element1.appendChild(chk_box_element);
939
940    td_element2 = document.createElement("TD");
941    td_element2.className = "td_msg";
942    td_element2.setAttribute("width", "2%");
943    if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0)
944        td_element2.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(headers_msgs.attachment.names) + '">';
945
946    td_element21 = document.createElement("TD");
947    td_element21.className = "td_msg";
948    td_element21.setAttribute("width", "1%");
949    td_element21.id = "td_message_answered_"+headers_msgs.msg_number;
950
951    if (headers_msgs.attachment && headers_msgs.attachment.number_attachments > 0) {
952        attach_name = headers_msgs.attachment.names.split(", ");
953        for(var item in attach_name)
954        {
955            if (url_decode(attach_name[item]) != 'smime.p7s' && url_decode(attach_name[item]) != 'smime.p7m'){
956                td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/clip.gif" title="' + url_decode(attach_name[item]) + '">';
957                break;
958            }
959        }
960    }
961
962    if ((headers_msgs.Forwarded == 'F')  || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){
963        td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/forwarded.gif" title="'+get_lang('Forwarded')+'">';
964        headers_msgs.Draft = '';
965        headers_msgs.Answered = '';
966        headers_msgs.Forwarded = 'F';
967    }
968    else if (headers_msgs.Draft == 'X')
969        td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/draft.gif" title="'+get_lang('Draft')+'">';
970    else if (headers_msgs.Answered == 'A')
971        td_element21.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/answered.gif" title="'+get_lang('Answered')+'">';
972    else
973        td_element21.innerHTML = "&nbsp;&nbsp;&nbsp;";
974
975    td_element22 = document.createElement("TD");
976    td_element22.className = "td_msg";
977    td_element22.setAttribute("width", "1%");
978    td_element22.id = "td_message_signed_"+headers_msgs.msg_number;
979
980    //td_element23 = document.createElement("TD");
981    //td_element23.setAttribute("width", "1%");
982    //td_element23.id = "td_message_signed_"+headers_msgs.msg_number;
983    switch(headers_msgs.ContentType)
984    {
985        case "signature":
986        {
987            td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_msg.gif" title="' + get_lang('Signed message') + '">';
988            break;
989        }
990        case "cipher":
991        {
992            td_element22.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/lock.gif" title="' + get_lang('Crypted message') + '">';
993            break;
994        }
995        default:
996        {
997            break;
998        }
999    };
1000
1001    td_element23 = document.createElement("TD");
1002    td_element23.className = "td_msg";
1003    td_element23.setAttribute("width", "1%");
1004    td_element23.id = "td_message_important_"+headers_msgs.msg_number;
1005
1006    if (headers_msgs.Flagged == 'F' || (headers_msgs.Importance.toLowerCase().indexOf("high") != -1 && parseInt(preferences.use_important_flag)))
1007    {
1008        td_element23.innerHTML = '<img src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/important.gif" title="'+get_lang('Important')+'">';
1009    }
1010    else
1011        td_element23.innerHTML = "&nbsp;&nbsp;&nbsp;";
1012
1013    td_element24 = document.createElement("TD");
1014    td_element24.className = "td_msg";
1015    td_element24.setAttribute("width", "1%");
1016    td_element24.id = "td_message_sent_"+headers_msgs.msg_number;
1017    td_element24.innerHTML = "&nbsp;&nbsp;&nbsp;";
1018    // preload images
1019    var _img_sent = new Image();
1020    _img_sent.src       = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif';
1021    var _img_unseen = new Image();
1022    _img_unseen.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/unseen.gif';
1023
1024    var td_element25 = document.createElement("TD");
1025    td_element25.className = "td_msg";
1026    td_element25.setAttribute("width", "1%");
1027    td_element25.id = "td_message_unseen_"+headers_msgs.msg_number;
1028    if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N'))
1029        td_element25.innerHTML = "<img src ='"+_img_unseen.src+"' title='"+get_lang('Unseen')+"'>";
1030    else
1031        td_element25.innerHTML = "<img src ='"+URL_SERVER +"expressoMail1_2/templates/"+template+"/images/seen.gif' title='"+get_lang('Seen')+"'>";
1032   
1033    td_element3 = document.createElement("TD");
1034    td_element3.className = "td_msg";
1035    td_element3.id = "td_who_"+ headers_msgs.msg_number;
1036    td_element3.setAttribute("width", "20%");
1037    var _onclick = function(){
1038        InfoContact.hide();proxy_mensagens.get_msg(headers_msgs, msg_folder,true, show_msg);
1039    };
1040    td_element3.onclick = _onclick;
1041    td_element3.innerHTML = '&nbsp;';
1042
1043    if (typeof(headers_msgs.from) == 'undefined')
1044        return false;
1045    if(headers_msgs.from.email.toLowerCase() == Element("user_email").value)
1046    {
1047        td_element3.onmouseover = function () {
1048            this.title=headers_msgs.to.email;
1049        };
1050        if (headers_msgs.Draft == 'X')
1051            td_element3.innerHTML += "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
1052        else{
1053            if(headers_msgs.to.email != null && headers_msgs.to.email.toLowerCase() != Element("user_email").value)
1054                td_element24.innerHTML = '<img valign="center" src ="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/sent.gif" title="'+get_lang('Sent')+'">';
1055
1056            if ((headers_msgs.to)&&(headers_msgs.to.name != null))
1057                td_element3.innerHTML += headers_msgs.to.name;
1058            else if (headers_msgs.to){
1059                td_element3.innerHTML += headers_msgs.to.email;
1060            }
1061        }
1062    }
1063    else{
1064        if (headers_msgs.Draft == 'X'){
1065            td_element3.innerHTML = "<span style=\"color:red\">("+get_lang("Draft")+") </span>";
1066        }
1067        else{
1068            var spanSender = document.createElement("SPAN");
1069            spanSender.onmouseover = function (event) {
1070                this.style.textDecoration = "underline";try {
1071                    InfoContact.begin(this,headers_msgs.from.email)
1072                    } catch(e){};
1073            };
1074            spanSender.onmouseout = function (){
1075                try {
1076                    this.style.textDecoration = "none"; clearTimeout(InfoContact.timeout);
1077                } catch(e){}
1078                };
1079            spanSender.innerHTML =  headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email;
1080            if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){
1081                spanSender.innerHTML = spanSender.innerHTML.substring(0,25) + "...";
1082            }
1083            else if (spanSender.innerHTML.length > 40 ){
1084                spanSender.innerHTML = spanSender.innerHTML.substring(0,40) + "...";
1085            }
1086            td_element3.appendChild(spanSender);
1087        }
1088    }
1089    td_element4 = document.createElement("TD");
1090    td_element4.className = "td_msg";
1091    td_element4.setAttribute("width", "50%");
1092    td_element4.onclick = _onclick;
1093    //          td_element4.setAttribute("style","white-space:nowrap;");
1094    td_element4.innerHTML = !is_ie ? "<a nowrap id='a_message_"+tr_element.id+"'>&nbsp;" : "&nbsp;";
1095
1096    if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50))
1097    {
1098        //                      if( (headers_msgs.subject.length+tr_element.msg_sample.length)>
1099        td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "..." + "<span style=\"color:#b3b3b3;\">  " + tr_element.msg_sample +"</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem;
1100    }
1101    else
1102    {
1103        td_element4.innerHTML += headers_msgs.subject + "<span style=\"color:#b3b3b3;\">  " + tr_element.msg_sample + "</span>";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem;
1104    }
1105
1106    td_element4.title=tr_element.tip;
1107    if(!is_ie){
1108        td_element4.innerHTML += "</a>";
1109    }
1110
1111
1112    td_element5 = document.createElement("TD");
1113    td_element5.className = "td_msg";
1114    td_element5.setAttribute("width", "14%");
1115    td_element5.onclick = _onclick;
1116    td_element5.setAttribute("align", "center");
1117    td_element5.innerHTML = headers_msgs.udate;
1118
1119    td_element6 = document.createElement("TD");
1120    td_element6.className = "td_msg";
1121    td_element6.setAttribute("width", "14%");
1122    td_element6.onclick = _onclick;
1123    td_element6.setAttribute("noWrap","true");
1124    td_element6.setAttribute("align", "center");
1125
1126    td_element6.innerHTML = borkb(headers_msgs.Size);
1127
1128    tr_element.appendChild(td_element1);
1129    tr_element.appendChild(td_element2);
1130    tr_element.appendChild(td_element21);
1131    tr_element.appendChild(td_element22);
1132    tr_element.appendChild(td_element23);
1133    tr_element.appendChild(td_element24);
1134    tr_element.appendChild(td_element25);
1135    tr_element.appendChild(td_element3);
1136    tr_element.appendChild(td_element4);
1137    tr_element.appendChild(td_element5);
1138    tr_element.appendChild(td_element6);
1139    return tr_element;
1140}
1141
1142folderHeaders = [];
1143// Draw the inbox and another folders
1144function draw_box(headers_msgs, msg_folder, alternate){
1145    if ( _dragArea == null )
1146        _dragArea = new DragArea( );
1147
1148    if (alternate)
1149        kill_current_box();
1150
1151    if(is_ie)
1152        document.getElementById("border_table").width = "99.5%";
1153
1154    openTab.content_id[numBox] = document.getElementById("content_id_"+numBox);
1155    openTab.imapBox[numBox] = msg_folder;
1156    openTab.type[numBox] = 0;
1157    folderHeaders[msg_folder] = headers_msgs;
1158
1159    table_message_header_box = document.getElementById("table_message_header_box_"+numBox);
1160    if (table_message_header_box == null){
1161        var table_element = document.createElement("TABLE");
1162        var tbody_element = document.createElement("TBODY");
1163        table_element.setAttribute("id", "table_message_header_box_"+numBox);
1164        table_element.className = "table_message_header_box";
1165
1166        tr_element = document.createElement("TR");
1167        tr_element.className = "message_header";
1168        td_element1 = document.createElement("TD");
1169        td_element1.setAttribute("width", "1%");
1170        chk_box_element = document.createElement("INPUT");
1171        chk_box_element.id  = "chk_box_select_all_messages";
1172        chk_box_element.setAttribute("type", "checkbox");
1173        chk_box_element.className = "checkbox";
1174        chk_box_element.onclick = function(){
1175            select_all_messages(this.checked);
1176        };
1177        chk_box_element.onmouseover = function () {
1178            this.title=get_lang('Select all messages.');
1179        };
1180        chk_box_element.onkeydown = function (e){
1181            if (is_ie)
1182            {
1183                if ((window.event.keyCode) == 46)
1184                    proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1185            }
1186            else
1187            {
1188                if ((e.keyCode) == 46)
1189                    proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1190            }
1191        };
1192
1193        td_element1.appendChild(chk_box_element);
1194
1195        td_element2 = document.createElement("TD");
1196        td_element2.setAttribute("width", "7%");
1197        td_element3 = document.createElement("TD");
1198        td_element3.setAttribute("width", "29%");
1199        td_element3.onclick = function () {
1200            sort_box(search_box_type,'SORTFROM');
1201        };
1202        td_element3.id = "message_header_SORTFROM_"+numBox;
1203        td_element3.align = "left";
1204        td_element3.innerHTML = get_lang("Who");
1205
1206        td_element4 = document.createElement("TD");
1207        td_element4.setAttribute("width", "38%");
1208        td_element4.onclick = function () {
1209            sort_box(search_box_type,'SORTSUBJECT');
1210        };
1211        td_element4.id = "message_header_SORTSUBJECT_"+numBox;
1212        td_element4.align = "left";
1213        td_element4.innerHTML = get_lang("Subject");
1214
1215        td_element5 = document.createElement("TD");
1216        td_element5.setAttribute("width", "14%");
1217        td_element5.onclick = function () {
1218            sort_box(search_box_type,'SORTARRIVAL');
1219        };
1220        td_element5.id = "message_header_SORTARRIVAL_"+numBox;
1221        td_element5.align = "center";
1222        td_element5.innerHTML = get_lang("Date");
1223        td_element6 = document.createElement("TD");
1224        td_element6.setAttribute("width", "14%");
1225        td_element6.onclick = function () {
1226            sort_box(search_box_type,'SORTSIZE');
1227        };
1228        td_element6.id = "message_header_SORTSIZE_"+numBox;
1229        td_element6.align = "left";
1230        td_element6.innerHTML = get_lang("Size");
1231
1232        tr_element.appendChild(td_element1);
1233        tr_element.appendChild(td_element2);
1234        var td_element21 = document.createElement("TD");
1235        td_element21.innerHTML = "&nbsp;&nbsp;&nbsp;";
1236        var td_element22 = document.createElement("TD");
1237        td_element22.innerHTML = "&nbsp;&nbsp;&nbsp;";
1238        var td_element23 = document.createElement("TD");
1239        td_element23.innerHTML = "&nbsp;&nbsp;";
1240        tr_element.appendChild(td_element21);
1241        tr_element.appendChild(td_element22);
1242        tr_element.appendChild(td_element23);
1243        tr_element.appendChild(td_element3);
1244        tr_element.appendChild(td_element4);
1245        tr_element.appendChild(td_element5);
1246        tr_element.appendChild(td_element6);
1247        tbody_element.appendChild(tr_element);
1248        table_element.appendChild(tbody_element);
1249        openTab.content_id[numBox].appendChild(table_element);
1250    }
1251    draw_header_box();
1252    var table_element = document.createElement("TABLE");
1253    var tbody_element = document.createElement("TBODY");
1254    table_element.id = "table_box";
1255    table_element.className = "table_box";
1256    table_element.borderColorDark = "#bbbbbb";
1257    table_element.frame = "void";
1258    table_element.rules = "rows";
1259    table_element.cellPadding = "0";
1260    table_element.cellSpacing = "0";
1261
1262    table_element.onkeydown = function (e){
1263        if (is_ie)
1264        {
1265            if ((window.event.keyCode) == 46)
1266            {
1267                //delete_all_selected_msgs_imap();
1268                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1269            }
1270        }
1271        else
1272        {
1273            if ((e.keyCode) == 46)
1274            {
1275                //delete_all_selected_msgs_imap();
1276                proxy_mensagens.delete_msgs(get_current_folder(),'selected','null');
1277            }
1278        }
1279    };
1280    if (is_ie)
1281        table_element.style.cursor = "hand";
1282
1283    tbody_element.setAttribute("id", "tbody_box");
1284    table_element.appendChild(tbody_element);
1285
1286    var _divScroll = document.getElementById("divScrollMain_"+numBox);
1287
1288    var bar = document.getElementById("toolbar");
1289    var offset = 0;
1290
1291    if(!_divScroll){
1292        _divScroll = document.createElement("DIV");
1293        _divScroll.id = "divScrollMain_"+numBox;
1294    }
1295
1296    _divScroll.style.overflowY = "auto";
1297    _divScroll.style.overflowX = "hidden";
1298    _divScroll.style.width      ="100%";
1299
1300    if (is_mozilla){
1301        _divScroll.style.overflow = "-moz-scrollbars-vertical";
1302        _divScroll.style.width  ="99.3%";
1303    }
1304    // Inicio: Redimensiona DIV SCROLL
1305    var bar = Element("toolbar");
1306    var offset = 0;
1307    if(bar.style.visibility != 'hidden')
1308        offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight);
1309    var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight;
1310    var defaultHeight = screenHeight - offset;
1311    _divScroll.style.height     = defaultHeight - 110;
1312    Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150);
1313    // Fim: Redimensiona DIV SCROLL
1314    _divScroll.appendChild(table_element);
1315    openTab.content_id[numBox].appendChild(_divScroll);
1316
1317    var f_unseen = 0;
1318
1319    if (headers_msgs.num_msgs == 0){
1320        var tr_info = document.createElement("TR");
1321        var td_info = document.createElement("TD");
1322        td_info.setAttribute("colspan", "10");
1323        td_info.setAttribute("background", "#FFF");
1324        tr_info.setAttribute("id", "msg_info");
1325        td_info.align = "center";
1326        td_info.style.padding = "25px";
1327        td_info.style.fontWeight = "bold";
1328        td_info.style.fontSize = "11pt";
1329        td_info.innerHTML = get_lang("This mail box is empty");
1330        tr_info.appendChild(td_info);
1331        tbody_element.appendChild(tr_info);
1332    }
1333
1334
1335    for (var i=0; i < headers_msgs.length; i++){
1336        if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N'))
1337            f_unseen++;
1338        tr_element = make_tr_message(headers_msgs[i], msg_folder);
1339        if (tr_element){
1340            tbody_element.appendChild(tr_element);
1341            add_className(tr_element, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read');
1342        }
1343        _dragArea.makeDragged(tr_element, headers_msgs[i].msg_number, headers_msgs[i].subject, true);
1344    }
1345
1346    if ((preferences.use_shortcuts == '1') && (headers_msgs[0]))
1347        select_msg(headers_msgs[0].msg_number, 'null', true);
1348
1349    var tdFolders  =  Element("folderscol");
1350    tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : "";
1351    if ( !currentTab )
1352        alternate_border(numBox);
1353    draw_footer_box(headers_msgs.num_msgs);
1354    Element('main_table').style.display = '';
1355    if(debug) {
1356        var _eTime = new Date();
1357        _eTime = _eTime.getTime();
1358        alert("Carregou em "+(_eTime - _bTime)+" ms");
1359    }
1360    var msg_folder = Element('msg_folder').value;
1361    var msg_number = Element('msg_number').value;
1362    if(!msg_folder && msg_number) {
1363        new_message('new','null');
1364    }
1365    else if(msg_folder && msg_number){
1366        proxy_mensagens.get_msg(headers_msgs, url_encode(msg_folder),true, show_msg);
1367        Element('msg_folder').value = '';
1368        Element('msg_number').value = '';
1369    }
1370
1371    if(!is_ie) {
1372        var scripts = new Array("jscode/ccQuickAdd",
1373            "jscode/color_palette",
1374            "jscode/filter",
1375            "jscode/filters",
1376            "jscode/html2xhtml",
1377            "jscode/preferences",
1378            "jscode/QuickCatalogSearch",
1379            "jscode/QuickSearchUser",
1380            "jscode/rich_text_editor",
1381            "jscode/sharemailbox",
1382            "jscode/search",
1383            "jscode/TreeS",
1384            "jscode/TreeShow");
1385
1386        expresso.connector.loadAllScripts(scripts);
1387    }
1388    // Loading Quota View Folder Component (if exists...)
1389    if(Element("table_quota"))
1390        expresso.connector.loadScript("jscode/InfoQuota");
1391};
1392
1393
1394
Note: See TracBrowser for help on using the repository browser.