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

Revision 2980, 45.5 KB checked in by amuller, 14 years ago (diff)

Ticket #1059 - Arrumando visualização da quota

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