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

Revision 2642, 49.3 KB checked in by rodsouza, 14 years ago (diff)

Ticket #1009 - Corigindo problemas com o ordenamento referente aos javascripts.

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