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

Revision 2630, 49.2 KB checked in by rodsouza, 14 years ago (diff)

Ticket #1009 - Mitigando problema com escopo do dominio.

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