Changeset 2676


Ignore:
Timestamp:
04/30/10 15:40:28 (14 years ago)
Author:
rafaelraymundo
Message:

Ticket #490 - Reestabelecido o funcionamento do arquivamento local

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r2597 r2676  
    461461                        imap_close($this->mbox); 
    462462                        $this->mbox=false; 
    463                         array_push($return,serialize($msg_info)); 
     463                        array_push($return,$msg_info); 
    464464 
    465465                        if($msg_info['Unseen'] == "U" || $msg_info['Recent'] == "N"){ 
  • trunk/expressoMail1_2/js/jscode/TreeS.js

    r2517 r2676  
    178178                        var local_folders = expresso_local_messages.list_local_folders(); 
    179179                        for (var i in local_folders) { //Coloca as pastas locais. 
    180                          
    181                                 var node_parent = "local_root"; 
    182                                 var new_caption = local_folders[i][0]; 
    183                                 if(local_folders[i][0].indexOf("/")!="-1") { 
    184                                         final_pos = local_folders[i][0].lastIndexOf("/"); 
    185                                         node_parent = "local_"+local_folders[i][0].substr(0,final_pos); 
    186                                         new_caption = local_folders[i][0].substr(final_pos+1); 
     180                                if(!isNaN(i)){ 
     181                                    var node_parent = "local_root"; 
     182                                    var new_caption = local_folders[i][0]; 
     183                                    if(local_folders[i][0].indexOf("/")!="-1") { 
     184                                            final_pos = local_folders[i][0].lastIndexOf("/"); 
     185                                            node_parent = "local_"+local_folders[i][0].substr(0,final_pos); 
     186                                            new_caption = local_folders[i][0].substr(final_pos+1); 
     187                                    } 
     188 
     189                                    if (local_folders[i][1] > 0) 
     190                                            var nodeLocal = new dNode({ 
     191                                                    id: "local_" + local_folders[i][0], 
     192                                                    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>', 
     193                                                    plusSign: local_folders[i][2] 
     194                                            }); 
     195                                    else 
     196                                            var nodeLocal = new dNode({ 
     197                                                    id: "local_" + local_folders[i][0], 
     198                                                    caption: lang_folder(new_caption), 
     199                                                    plusSign: local_folders[i][2] 
     200                                            }); 
     201                                    folders_tree.add(nodeLocal, node_parent); 
    187202                                } 
    188                                  
    189                                 if (local_folders[i][1] > 0)  
    190                                         var nodeLocal = new dNode({ 
    191                                                 id: "local_" + local_folders[i][0], 
    192                                                 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>', 
    193                                                 plusSign: local_folders[i][2] 
    194                                         }); 
    195                                 else  
    196                                         var nodeLocal = new dNode({ 
    197                                                 id: "local_" + local_folders[i][0], 
    198                                                 caption: lang_folder(new_caption), 
    199                                                 plusSign: local_folders[i][2] 
    200                                         }); 
    201                                 folders_tree.add(nodeLocal, node_parent); 
    202203                        } 
    203204                } 
  • trunk/expressoMail1_2/js/jscode/draw_api_folders.js

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

    r2642 r2676  
    373373            for (i in anexos) 
    374374            { 
     375                if(!isNaN(i)){ 
    375376                nomeArquivo = anexos[i]['name'].substring(0,anexos[i]['name'].length - 4); 
    376377                if(nomeArquivo.match('jpg')||anexos[i]['name'].match('gif')||anexos[i]['name'].match('png')) 
     
    389390                        } 
    390391                    } 
     392                } 
    391393            } 
    392394 
  • trunk/expressoMail1_2/js/jscode/mail_sync.js

    r2579 r2676  
    154154                 
    155155                var start_sync_mails = function(data) { 
     156                        data =  expresso.connector.unserialize( data ); 
    156157                        expresso_mail_sync.messages=data; 
    157158                        if(expresso_mail_sync.is_auto) 
     
    166167                if (folder_to_sync[3]) { 
    167168                        document.getElementById('main_title').innerHTML = get_lang("Starting to archive messages"); 
    168                         cExecute("expressoMail1_2.imap_functions.get_info_msgs&folder=" + folder_to_sync[0] + "&msgs_number=" + folder_to_sync[2], start_sync_mails); 
     169                        _connector.cache(); 
     170                        _connector.go( { 
     171                                "access" : "expressoMail1_2.imap_functions.get_info_msgs&folder=" + folder_to_sync[0] + "&msgs_number=" + folder_to_sync[2], 
     172                                "cache" : true, 
     173                                "handler" : start_sync_mails 
     174                        } ); 
     175 
     176                        //cExecute("expressoMail1_2.imap_functions.get_info_msgs&folder=" + folder_to_sync[0] + "&msgs_number=" + folder_to_sync[2], start_sync_mails); 
    169177                        this.is_auto = false; 
    170178                } 
     
    172180                        document.getElementById('main_title').innerHTML = get_lang("Starting to sync folder")+" "+lang_folder(folder_to_sync[1]); 
    173181                        var params = "folder="+folder_to_sync[0]+"&mails="+folder_to_sync[2]; 
    174                         cExecute("expressoMail1_2.imap_functions.msgs_to_archive", start_sync_mails,params); 
     182                        _connector.cache(); 
     183                        _connector.go( { 
     184                                "access" : "expressoMail1_2.imap_functions.msgs_to_archive"+params, 
     185                                "cache" : true, 
     186                                "handler" : start_sync_mails 
     187                        } ); 
     188 
     189                        //cExecute("expressoMail1_2.imap_functions.msgs_to_archive", start_sync_mails,params); 
    175190                        this.is_auto = true; 
    176191                } 
     
    192207                new_value = parseInt(new_value) + 1; 
    193208                document.getElementById('main_title').innerHTML = document.getElementById('main_title').innerHTML.replace(value_to_change,new_value+" /"); 
    194                 msg_to_sync = expresso.connector.unserialize(msg_to_sync); 
     209                //msg_to_sync = expresso.connector.unserialize(msg_to_sync); 
    195210                 
    196211                var source_msg = new Array(); 
     
    387402                                expresso_mail_sync.remove_archived_mails(); 
    388403                        } 
    389                          
    390                         cExecute ("expressoMail1_2.imap_functions.delete_msgs&folder="+folder_to_remove_msgs+"&msgs_number="+msgs, handler_delete_msgs); 
     404 
     405                        _connector.cache(); 
     406                        _connector.go( { 
     407                                "access" : "expressoMail1_2.imap_functions.delete_msgs&folder="+folder_to_remove_msgs+"&msgs_number="+msgs, 
     408                                "cache" : true, 
     409                                "handler" : handler_delete_msgs 
     410                        } ); 
     411                         
     412                        //cExecute ("expressoMail1_2.imap_functions.delete_msgs&folder="+folder_to_remove_msgs+"&msgs_number="+msgs, handler_delete_msgs); 
    391413                        this.dbGears.execute("delete from msgs_to_remove where folder=? and uid_usuario=?",[folder_to_remove_msgs,account_id]); 
    392414                        this.dbGears.close(); 
  • trunk/expressoMail1_2/js/jscode/messages_controller.js

    r2642 r2676  
    2323                if(this.is_local_folder(msg_folder)) { 
    2424                        if(set_flag) 
    25                                 expresso_local_messages.set_messages_flag(msg_number,"seen"); 
     25//                              expresso_local_messages.set_messages_flag(msg_number,"seen"); 
    2626                        var data = expresso_local_messages.get_local_mail(msg_number);   
    2727 
  • trunk/phpgwapi/js/expressoAjax/expressoAjax.js

    r2630 r2676  
    174174                                        break; 
    175175 
    176                                 default: 
    177                                         showMessage(Element('cc_msg_err_serialize_data_unknown').value); 
    178                                         return null; 
     176//                              default: 
     177//                                      //showMessage(Element('cc_msg_err_serialize_data_unknown').value); 
     178//                                      //return null; 
     179                                         
    179180                        }; 
    180181 
Note: See TracChangeset for help on using the changeset viewer.