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

Revision 2747, 48.9 KB checked in by amuller, 14 years ago (diff)

Ticket #1059 - Corrigindo problemas de requisições que trazem valores desatualizados

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