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

Revision 2676, 50.7 KB checked in by rafaelraymundo, 14 years ago (diff)

Ticket #490 - Reestabelecido o funcionamento do arquivamento local

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