Ignore:
Timestamp:
11/03/11 13:24:28 (12 years ago)
Author:
wmerlotto
Message:

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus, do modulo ExpressoMail?.

Location:
trunk/expressoMail1_2/js
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/DropDownContacts.js

    r4304 r5134  
    7979        var REG_EXP = /^[^\#|^\$|^\%|^\!|^\?|^\"|^\']+$/; 
    8080        var match_cont = ""; 
    81         for (var i=0; i<match_contacts.length; i++) 
     81        var limit_index; 
     82         
     83        match_contacts.length > 30? limit_index = 30 : limit_index = match_contacts.length;  
     84         
     85        for (var i=0; i<limit_index; i++) 
    8286        { 
    8387                match_contacts[i] = unescape(match_contacts[i]);  
     
    9599        } 
    96100 
    97          
    98         if (document.getElementById('tipDiv')){  
    99                 document.getElementById('tipDiv').focus();  
    100         }  
    101  
     101    //Removido pois retirava o focus no ie      a cada letra digitada 
     102        //if (document.getElementById('tipDiv')){  
     103        //      document.getElementById('tipDiv').focus();  
     104        //}  
    102105 
    103106        // treat especials keys 
  • trunk/expressoMail1_2/js/QuickCatalogSearch.js

    r5075 r5134  
    77        } 
    88         
     9        /* showlist */   
    910        emQuickCatalogSearch.prototype.showList = function(data, begin, end, ID, field) 
    1011        { 
     
    1617 
    1718                        keypress_read(data); 
    18             init_results(data); 
    1919            configure_slider(data); 
     20                create_list(data, true); 
    2021            details_results(data); 
    2122                         
    22                     connector.loadScript("ccQuickAdd"); 
    23  
    24             if(preferences.use_shortcuts == '0'){ 
    25                 connector.loadScript("shortcut"); 
    26             } 
    27                  
    2823                id = '1'; 
    2924                _this = this; 
     
    4641         
    4742         
    48     function keypress_read(data)  
    49         { 
    50                 $("#dialog-modal").keypress(function (e)  
    51                 { 
    52                         var keyCode = e.keyCode || e.which, 
    53                         arrow = {left: 37, up: 38, right: 39, down: 40, enter: 13, esc: 27 }; 
     43    /* Leitura das teclas de atalho */     
     44    function keypress_read(data) {       
     45                $("#dialog-modal").keydown(function (e) { 
     46                        var keyCode = e.keyCode; 
     47                        arrow = {left: 37, up: 38, right: 39, down: 40, enter: 13, esc: 27}; 
    5448                        var slider = $( "#slider"  ); 
    5549                        switch (keyCode)  
    5650                        { 
    5751                                case arrow.enter: 
    58                                         add_contact_field(document.getElementsByClassName("ui-selected")[0].getElementsByClassName("name_contact")[0].innerHTML); 
     52                                        if(!search_focus){ 
     53                                                i = $(".ui-selected:last").attr("value") + 1; 
     54                                                add_contact_field($("#contact_" + i).html()); 
     55                                                document.getElementById("busca").value = ""; 
     56                                                $("#dialog-modal").unbind('keydown'); 
    5957                                        $("#dialog-modal").dialog("close"); 
     58                                        } 
    6059                                        break; 
    61                                  
    6260                                case arrow.left: 
    63                                         slider.slider( "value", $( "#slider" ).slider( "value" ) - 1); 
    64                                         create_list(data_);                                      
     61                                        slider.slider("value", $( "#slider" ).slider( "value" ) - 1); 
     62                                        create_list(data_, false);               
    6563                                        break; 
    66                                  
    6764                                case arrow.right: 
    68                                         if( (($( "#slider" ).slider( "value" ))) == Math.ceil(data_.length/7) ) 
    69                                         { 
    70                                                 alert("Não há mais páginas"); 
     65                                        if((($( "#slider" ).slider( "value" ))) == Math.ceil(data_.length/6)) 
    7166                                                break; 
    72                                         } 
    7367                                        slider.slider( "value", $( "#slider" ).slider( "value" ) + 1);                                   
    74                                         create_list(data_);                                              
     68                                        create_list(data_, false);                                                       
    7569                                        break; 
    76                                  
    7770                                case arrow.up: 
    78                                         id_contact = document.getElementsByClassName("ui-selected")[0].value; 
    79                                         if(id_contact == (($( "#slider" ).slider( "value" ) -1)*7)) 
     71                                        show_detail(data_, "up"); 
     72                                        break; 
     73                                case arrow.down: 
     74                                        show_detail(data_, "down"); 
    8075                                                break; 
    81                                         var line_contact = $('li.ui-selected'); 
    82                                         $('li.ui-selected').prev().removeClass("ui-selectee").addClass("ui-selected"); //css('background-color', '#72A9D3'); 
    83                                         line_contact.removeClass("ui-selected").addClass("ui-selectee"); 
    84                                         var details = $("#detalhes_contato").empty();                                  
    85                                                 $( ".ui-selected", this ).each(function() { 
    86                             if(data_['type_catalog'] == 'G') 
    87                             {                                          
    88                                 var extra_fields = (data_['extra_ldap_fields']).split("#");    
    89                                 /* Default fields */ 
    90                                 details.append("<strong>" + utf8_decoder(data_[this.value].cn[0])); 
    91                                 details.append("<br />" + data_[this.value].mail[0]); 
    92                                 details.append("<br /><br /><strong>Matrícula<br />"); 
    93                                 details.append(data_[this.value].employeenumber[0] + "<br />"); 
    94                                 details.append("<br /><strong> Telefone <br />"); 
    95                                 details.append(data_[this.value].telephonenumber[0] + "<br />"); 
    96                                 details.append(data_[this.value].telephonenumber[0]); 
    97                                 for (var i=0; i<extra_fields.length-1; i++) 
    98                                 { 
    99                                     var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    100                                     var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    101                                     if(data_[this.value][valor] != undefined) 
    102                                     {     
    103                                         details.append("<br /><br /><strong>" + campo); 
    104                                         details.append("<br />" + data_[this.value][valor][0]); 
    105                                     } 
    10676                                } 
     77                });      
    10778                                                        } 
    108                             else 
    109                             { 
    110                                     if(data_['type_catalog'] == 'P') 
    111                                     { 
    112                                         /* Default fields */ 
    113                                         details.append("<strong>" + utf8_decoder(data_[this.value].cn)); 
    114                                         details.append("<br />" + data_[this.value].mail); 
    115                                         if(data_[this.value].telephonenumber != "") 
    116                                         { 
    117                                             details.append("<br /><br /><br /><strong> Telefone <br />"); 
    118                                             details.append(data_[this.value].telephonenumber + "<br />");   
     79         
     80         
     81        /* Mostra os detalhes do contato selecionado */ 
     82        function show_detail(data_, direction) { 
     83                id_contact = $(".ui-selected:last").attr("value"); 
     84                if(direction == "down") { 
     85                        if((id_contact == (((((parseInt($( "#slider" ).slider( "value" )) - 1)*6))+6)-1)) || id_contact == data_.length - 1 || data_.length == 1) 
     86                                return;  
     87                        var line_contact = $('li.ui-selected'); 
     88                        $('li.ui-selected').next().addClass("ui-selected");  
     89                        id_contact++; 
    11990                                        } 
     91                else { 
     92                        if(id_contact == (($( "#slider" ).slider( "value" ) -1)*6))  
     93                                return; 
     94                        var line_contact = $('li.ui-selected'); 
     95                        $('li.ui-selected').prev().addClass("ui-selected");  
     96                        id_contact--; 
    12097                                    }  
    121                                     else 
    122                                     { 
     98                line_contact.removeClass("ui-selected").addClass("ui-selectee"); 
     99                var details = $("#detalhes_contato").empty();                                  
     100                switch(data_['type_catalog']) { 
     101                        case 'G': 
    123102                                        var extra_fields = (data_['extra_ldap_fields']).split("#");    
    124                                         /* Default fields */ 
    125                                         details.append("<strong>" + utf8_decoder(data_[this.value].cn)); 
    126                                         details.append("<br />" + data_[this.value].mail); 
    127                                         if(data_[this.value].telephonenumber != "") 
    128                                         { 
    129                                             details.append("<br /><br /><br /><strong> Telefone <br />"); 
    130                                             details.append(data_[this.value].telephonenumber + "<br />");   
     103                                if(preferences.default_fields_quick_search != 0) { 
     104                                        details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn[0]) + "</label>" + '<span class="value">' + data_[id_contact].mail[0] + '</span></p>'); 
     105                                        details.append('<p><label class="attribute">Telefone </label>' + '<span class="value">' + data_[id_contact].telephonenumber[0] + '</span></p>');            
    131106                                        } 
    132                                         if(data_[this.value].mail[0].length > 1)  
    133                                         { 
    134                                             for (var i=0; i<extra_fields.length-1; i++) 
     107                                for (var i=0; i<=extra_fields.length-1; i++) 
    135108                                            { 
    136109                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    137110                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    138                                                 if(data_[this.value][valor] != undefined) 
    139                                                 {     
    140                                                     details.append("<br /><br /><strong>" + campo); 
    141                                                     details.append("<br />" + data_[this.value][valor][0]); 
     111                                        if(data_[id_contact][valor.toLowerCase()] != undefined) { 
     112                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     113                                                for(j=0; j<data_[id_contact][valor.toLowerCase()].length; j++) { 
     114                                                        details.append(tmp_campo + '<span class="value">' + data_[id_contact][valor.toLowerCase()][j] + "</span></p>"); 
     115                                                        tmp_campo = ""; 
     116                                            } 
     117                                        } 
     118                                    } 
     119                                        break; 
     120                        case 'P': 
     121                                details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn) + '</label>' + '<span class="value">' + data_[id_contact].mail + '</span></p>'); 
     122                if(data_[id_contact].telephonenumber != null) 
     123                    details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data_[id_contact].telephonenumber + '</span></p>'); 
     124                                                break;   
     125                        default: 
     126                                var extra_fields = (data_['extra_ldap_fields']).split("#");    
     127                if(preferences.default_fields_quick_search != 0 || data_[id_contact].type_contact == "P") { 
     128                                        details.append('<p><label class="attribute">' + utf8_decoder(data_[id_contact].cn) + '</label>' + '<span class="value">' + data_[id_contact].mail + '</span></p>'); 
     129                                        if(data_[id_contact].telephonenumber != null) 
     130                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data_[id_contact].telephonenumber + '</span></p>'); 
     131                                                        } 
     132                                if(data_[id_contact].mail[0].length > 1) { 
     133                                        for (var i=0; i<=extra_fields.length-1; i++) { 
     134                                                var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
     135                                                var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
     136                                                if(data_[id_contact][valor.toLowerCase()] != undefined) { 
     137                                                        var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     138                                                        for(j=0; j<data_[id_contact][valor.toLowerCase()].length; j++) { 
     139                                                                details.append(tmp_campo + '<span class="value">' + data_[id_contact][valor.toLowerCase()][j] + "</span></p>"); 
     140                                                                tmp_campo = ""; 
    142141                                                } 
    143142                                            } 
    144143                                        } 
    145144                                    } 
    146                             } 
    147                                                 }); 
    148                                         break; 
    149                                  
    150                                 case arrow.down: 
    151                                         id_contact = document.getElementsByClassName("ui-selected")[0].value; 
    152                                         if((id_contact == (((((parseInt($( "#slider" ).slider( "value" )) - 1)*7))+7)-1)) || id_contact == data_.length - 2 || data_.length == 1) 
    153                                                 break;   
    154                                         var line_contact = $('li.ui-selected'); 
    155                                         $('li.ui-selected').next().removeClass("ui-selectee").addClass("ui-selected");  
    156                                         line_contact.removeClass("ui-selected").addClass("ui-selectee"); 
    157                                         var details = $("#detalhes_contato").empty();                                  
    158                         $( ".ui-selected", this ).each(function() { 
    159                             if(data_['type_catalog'] == 'G') 
    160                             {                                          
    161                                 var extra_fields = (data_['extra_ldap_fields']).split("#");    
    162                                 /* Default fields */ 
    163                                 details.append("<strong>" + utf8_decoder(data_[this.value].cn[0])); 
    164                                 details.append("<br />" + data_[this.value].mail[0]); 
    165                                 details.append("<br /><br /><strong>Matrícula<br />"); 
    166                                 details.append(data_[this.value].employeenumber[0] + "<br />"); 
    167                                 details.append("<br /><strong> Telefone <br />"); 
    168                                 details.append(data_[this.value].telephonenumber[0] + "<br />"); 
    169                                 details.append(data_[this.value].telephonenumber[0]); 
    170                                 for (var i=0; i<extra_fields.length-1; i++) 
    171                                 { 
    172                                     var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    173                                     var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    174                                     if(data_[this.value][valor] != undefined) 
    175                                     {     
    176                                         details.append("<br /><br /><strong>" + campo); 
    177                                         details.append("<br />" + data_[this.value][valor][0]); 
    178                                     } 
    179                                 } 
    180                                                         } 
    181                             else 
    182                             { 
    183                                     if(data_['type_catalog'] == 'P') 
    184                                     { 
    185                                         /* Default fields */ 
    186                                         details.append("<strong>" + utf8_decoder(data_[this.value].cn)); 
    187                                         details.append("<br />" + data_[this.value].mail); 
    188                                         if(data_[this.value].telephonenumber != "") 
    189                                         { 
    190                                             details.append("<br /><br /><br /><strong> Telefone <br />"); 
    191                                             details.append(data_[this.value].telephonenumber + "<br />");   
    192                                         } 
    193                                     }  
    194                                     else 
    195                                     { 
    196                                         var extra_fields = (data_['extra_ldap_fields']).split("#");    
    197                                         /* Default fields */ 
    198                                         details.append("<strong>" + utf8_decoder(data_[this.value].cn)); 
    199                                         details.append("<br />" + data_[this.value].mail); 
    200                                         if(data_[this.value].telephonenumber != "") 
    201                                         { 
    202                                             details.append("<br /><br /><br /><strong> Telefone <br />"); 
    203                                             details.append(data_[this.value].telephonenumber + "<br />");   
    204                                         } 
    205                                         if(data_[this.value].mail[0].length > 1)  
    206                                         { 
    207                                             for (var i=0; i<extra_fields.length-1; i++) 
    208                                             { 
    209                                                 var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    210                                                 var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    211                                                 if(data_[this.value][valor] != undefined) 
    212                                                 {     
    213                                                     details.append("<br /><br /><strong>" + campo); 
    214                                                     details.append("<br />" + data_[this.value][valor][0]); 
    215                                                 } 
    216                                             } 
    217                                         } 
    218                                     } 
    219                             } 
    220                                                 }); 
    221145                                        break; 
    222146                        } 
    223                 });      
    224147        } 
    225148                         
     
    229152                * Método que cria a lista de contatos 
    230153                */ 
    231                 function create_list(data) 
    232                 { 
     154        function create_list(data, begin, uiValue) { 
     155                var sliderValue = 1; 
     156                if(typeof($( "#slider" ).slider( "value" )) != "object") 
     157                        sliderValue = $( "#slider" ).slider( "value" ); 
     158                if(uiValue) 
     159                        sliderValue = uiValue; 
    233160                                        $("#detalhes_contato").empty(); 
    234                                         var paginas = Math.ceil(data.length/7) - 1;  
     161                var paginas = Math.ceil(data.length/6);  
    235162                                        $("#title_usuarios").html( get_lang("Results") ); 
    236                                         var string_results = $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";  
    237163                        var selectable = $("#selectable"); 
    238164                                                selectable.empty(); 
    239165                        var Ul = document.createElement("ul"); 
     166                for (i=((sliderValue -1)*6)+1; i<(((sliderValue -1)*6)+1)+6; i++) { 
    240167                        var Op = document.createElement("li"); 
    241                                                 for (i=(($( "#slider" ).slider( "value" ) -1)*7)+1; i<((($( "#slider" ).slider( "value" ) -1)*7)+1)+7; i++)  
    242                         { 
    243                                                         if(i >= data.length) 
     168                        if(i > data.length) 
    244169                                                                break; 
    245170                                                        if (data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) 
    246171                                data[i-1].mail = "No mail";  
    247                             if(i == ((($( "#slider" ).slider( "value" ) -1)*7)+1)){ 
     172                                 
     173                        if(i == (((sliderValue -1)*6)+1)) { 
    248174                                                                Op.setAttribute("class", "ui-selected"); 
     175                                Op.setAttribute("className", "ui-selected"); 
    249176                                                        } 
    250177                                                        else {   
    251178                                                                Op.setAttribute("class", "ui-selectee"); 
     179                                Op.setAttribute("className", "ui-selectee"); 
    252180                                                        } 
    253181                                                        var contact_name = utf8_decoder(data[i-1].cn); 
    254                                                         if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                      
     182                        if(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) != -1 && data.search_for.indexOf(" ") == -1 && data.search_for.indexOf("@") == -1)                                                                  
    255183                                                                contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); 
    256                                                         Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i-1].mail) + '</em></div></div>'; 
     184                        Op.innerHTML = '<span class="menu-control"><button onClick="add_contact_field(document.getElementById(\'contact_' + i + '\').innerHTML)">+</button><button onClick="remove_contact_field(document.getElementById(\'contact_' + i + '\').innerHTML)">x</button></span><div id="contact_' + i + '" onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i-1].mail) + '</em></div></div>'; 
    257185                            $(Op).val(i - 1); 
    258                             Ul.appendChild(Op); 
    259                             selectable.append(Ul.innerHTML); 
     186            selectable.append(Op); 
    260187                        } 
    261                         $( "#amount" ).val( string_results ); 
    262                                                 $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")");    
    263                                                 document.getElementById("amount").focus();       
     188                selectable.append(Ul); 
     189                var first_contact; 
     190                begin ? first_contact = 0 : first_contact = ((sliderValue* 6) -6);                       
     191                if(first_contact == 0) { 
     192                        $(document).ready(function(){ 
     193                                $('#combobox option').each(function(){ 
     194                                        if($(this).val() == preferences.catalog_search){ 
     195                                                $(this).attr('selected',true); 
     196                                        } 
     197                                }); 
     198                        }); 
     199                } 
     200                var details = $("#detalhes_contato").empty();                                  
     201                switch (data['type_catalog']) { 
     202                        case 'G': 
     203                                var extra_fields = (data['extra_ldap_fields']).split("#");    
     204                                if(preferences.default_fields_quick_search != 0) {                               
     205                                        details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn[0]) + "</label>" + '<span class="value">' + data[first_contact].mail[0] + "</span></p>"); 
     206                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber[0] + '</span></p>'); 
     207                                } 
     208                                for (var i=0; i<=extra_fields.length-1; i++) { 
     209                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
     210                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
     211                                        if(data[0][valor.toLowerCase()] != undefined) 
     212                                        { 
     213                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     214                                                for(j=0; j<data[first_contact][valor.toLowerCase()].length; j++) { 
     215                                                        details.append(tmp_campo + '<span class="value">' + data[first_contact][valor.toLowerCase()][j] + "</span></p>"); 
     216                                                        tmp_campo = ""; 
     217                                                } 
     218                                        } 
     219                                }                        
     220                                break; 
     221                        case 'P': 
     222                                details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn) + '</label>' + '<span class="value">' + data[first_contact].mail + '</span></p>'); 
     223                if(data[first_contact].telephonenumber != null) 
     224                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber  + '</span></p>'); 
     225                                break; 
     226                        default: 
     227                                var extra_fields = (data['extra_ldap_fields']).split("#");    
     228                                if(preferences.default_fields_quick_search != 0 || data[first_contact].type_contact == "P") { 
     229                                        details.append('<p><label class="attribute">' + utf8_decoder(data[first_contact].cn) + "</label>" + '<span class="value">' + data[first_contact].mail + "</span></p>"); 
     230                                        if(data[first_contact].telephonenumber != null) 
     231                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[first_contact].telephonenumber + "</span></p>"); 
     232                                } 
     233                                if(data[first_contact].mail != "No mail") { 
     234                                        if(data[first_contact].mail[0].length > 1) { 
     235                                                for (var i=0; i<=extra_fields.length-1; i++) { 
     236                                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
     237                                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
     238                                                        if(data[first_contact][valor.toLowerCase()] != undefined) { 
     239                                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     240                                                                for(j=0; j<data[first_contact][valor.toLowerCase()].length; j++) { 
     241                                                                        details.append(tmp_campo + '<span class="value">' + data[first_contact][valor.toLowerCase()][j] + "</span></p>"); 
     242                                                                        tmp_campo = ""; 
     243                                                                }        
     244                                                        }        
     245                                                } 
     246                                        } 
     247                                } 
     248                                break; 
     249                } 
     250                var string_results = sliderValue + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";                  
     251                $( "#amount-text" ).val( string_results ); 
     252                $("button").button(); 
     253                if(!is_ie) 
     254                        document.getElementById("amount-text").focus();  
     255                $("#selectable li:first button:first").focus(); 
     256                removeFocus(); 
    264257                }        
    265258                 
    266259                 
    267                  
    268                  
    269                  
    270                  
    271                 function details_results(data)  
    272         { 
     260        /* Método que configura os detalhes do resultado da busca */ 
     261        function details_results(data) { 
    273262                                $(function() { 
    274263                    $( "#selectable" ).selectable({ 
     
    276265                                                                var details = $("#detalhes_contato").empty();                                  
    277266                                $( ".ui-selected", this ).each(function() { 
    278                                     if(data['type_catalog'] == 'G') 
    279                                     {                                          
     267                        switch(data['type_catalog']) { 
     268                                                        case 'G': 
    280269                                        var extra_fields = (data['extra_ldap_fields']).split("#");    
    281                                         /* Default fields */ 
    282                                         details.append("<strong>" + utf8_decoder(data[this.value].cn[0])); 
    283                                         details.append("<br />" + data[this.value].mail[0]); 
    284                                         details.append("<br /><br /><strong>Matrícula<br />"); 
    285                                         details.append(data[this.value].employeenumber[0] + "<br />"); 
    286                                         details.append("<br /><strong> Telefone <br />"); 
    287                                         details.append(data[this.value].telephonenumber[0] + "<br />"); 
    288                                         details.append(data[this.value].telephonenumber[0]); 
    289                                         for (var i=0; i<extra_fields.length-1; i++) 
    290                                         { 
     270                                                                if(preferences.default_fields_quick_search != 0) {       
     271                                                                        details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn[0]) + "</label>" + '<span class="value">' + data[this.value].mail[0] + "</span></p>"); 
     272                                                                        details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber[0] + "</span></p>"); 
     273                                                                } 
     274                                                                for (var i=0; i<=extra_fields.length-1; i++) { 
    291275                                            var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    292276                                            var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    293                                             if(data[this.value][valor] != undefined) 
    294                                             {     
    295                                                 details.append("<br /><br /><strong>" + campo); 
    296                                                 details.append("<br />" + data[this.value][valor][0]); 
     277                                                                        if(data[this.value][valor.toLowerCase()] != undefined) { 
     278                                                                                var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     279                                                                                for(j=0; j<data[this.value][valor.toLowerCase()].length; j++) { 
     280                                                                                        details.append(tmp_campo + '<span class="value">' + data[this.value][valor.toLowerCase()][j] + "</span></p>"); 
     281                                                                                        tmp_campo = ""; 
    297282                                            } 
    298283                                        } 
    299284                                    } 
    300                                     else 
    301                                     { 
    302                                         if(data['type_catalog'] == 'P') 
    303                                         { 
    304                                             /* Default fields */ 
    305                                             details.append("<strong>" + utf8_decoder(data[this.value].cn)); 
    306                                             details.append("<br />" + data[this.value].mail); 
    307                                             if(data[this.value].telephonenumber != "") 
    308                                             { 
    309                                                 details.append("<br /><br /><br /><strong> Telefone <br />"); 
    310                                                 details.append(data[this.value].telephonenumber + "<br />");   
    311                                             } 
    312                                         }  
    313                                         else 
    314                                         { 
     285                                                                break; 
     286                                                        case 'P': 
     287                                                                details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn) + "</label>" + '<span class="value">' + data[this.value].mail + "</span></p>"); 
     288                                if(data[this.value].telephonenumber != null) 
     289                                    details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber + "</span></p>"); 
     290                                                                break; 
     291                                                        default: 
    315292                                                var extra_fields = (data['extra_ldap_fields']).split("#");    
    316                                                 /* Default fields */ 
    317                                                 details.append("<strong>" + utf8_decoder(data[this.value].cn)); 
    318                                                 details.append("<br />" + data[this.value].mail); 
    319                                                 if(data[this.value].telephonenumber != "") 
    320                                                 { 
    321                                                     details.append("<br /><br /><br /><strong> Telefone <br />"); 
    322                                                     details.append(data[this.value].telephonenumber + "<br />");   
     293                                if(preferences.default_fields_quick_search != 0 || data[this.value].type_contact == "P") { 
     294                                                                        details.append('<p><label class="attribute">' + utf8_decoder(data[this.value].cn) + "</label>" + '<span class="value">' + data[this.value].mail + "</span></p>"); 
     295                                                                        if(data[this.value].telephonenumber != null) 
     296                                                                                details.append('<p><label class="attribute">Telefone</label>' + '<span class="value">' + data[this.value].telephonenumber + "</span></p>"); 
    323297                                                } 
    324                                                 if(data[this.value].mail[0].length > 1)  
    325                                                 { 
    326                                                     for (var i=0; i<extra_fields.length-1; i++) 
    327                                                     { 
     298                                                                if(data[this.value].mail[0].length > 1) { 
     299                                                                        for (var i=0; i<=extra_fields.length-1; i++) { 
    328300                                                        var campo = extra_fields[i].substr(extra_fields[i].indexOf("|")+1);     
    329301                                                        var valor = extra_fields[i].substr(0, (extra_fields[i].indexOf("|")));                                           
    330                                                         if(data[this.value][valor] != undefined) 
    331                                                         {     
    332                                                             details.append("<br /><br /><strong>" + campo); 
    333                                                             details.append("<br />" + data[this.value][valor][0]); 
     302                                                                                if(data[this.value][valor.toLowerCase()] != undefined) { 
     303                                                                                        var tmp_campo = '<p><label class="attribute">' + campo + "</label>" ; 
     304                                                                                        for(j=0; j<data[this.value][valor.toLowerCase()].length; j++) { 
     305                                                                                                details.append(tmp_campo + '<span class="value">' + data[this.value][valor.toLowerCase()][j] + "</span></p>"); 
     306                                                                                                tmp_campo = ""; 
    334307                                                        } 
    335308                                                    } 
    336309                                                } 
    337310                                        } 
     311                                                                break; 
    338312                                    } 
    339313                                                                }); 
     
    345319         
    346320        /*  
    347          * Método que inicializa a tela de contatos  
    348          */ 
    349         function init_results(data) 
    350         {                        
    351                         var Op = null; 
    352                         var Ul = null; 
    353                         var selectable = $("#selectable"); 
    354             selectable.empty(); 
    355             Ul = document.createElement("ul"); 
    356             Op = document.createElement("li"); 
    357                         var limit = data.length < 7 ? data.length : 7; 
    358                         for (i=1; i<=limit; i++)  
    359             { 
    360                                 Op.setAttribute("class", "ui-selectee"); 
    361                                 if(i == 1) 
    362                                         Op.setAttribute("class", "ui-selected"); 
    363                                 var contact_name = utf8_decoder(data[i-1].cn); 
    364                                 if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) 
    365                                 { 
    366                                         data[i-1].mail = "No mail";  
    367                                 } 
    368                                  
    369                                 if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                      
    370                                         contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); 
    371                                 Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div class="id_contact_field" id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i-1].mail) + '</em></div></div>'; 
    372                 $(Op).val(i - 1); 
    373                 Ul.appendChild(Op); 
    374                 selectable.append(Ul.innerHTML); 
    375             } 
    376                         $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos."); 
    377         } 
    378          
    379          
    380         /*  
    381321         * Método que configura o slider e os resultados  
    382322         */ 
    383         function configure_slider(data)  
    384         {        
    385                         $("#detalhes_contato").empty(); 
    386             var paginas = Math.ceil(data.length/7);  
     323    function configure_slider(data) {    
     324        var paginas = (Math.ceil(data.length/6));  
    387325            $("#title_usuarios").html( get_lang("Results") ); 
    388326            $(function() { 
     
    392330                                        max: paginas, 
    393331                                        step: 1, 
    394                         slide: function( event, ui )  
    395                         { 
     332                                slide: function( event, ui ) { 
     333                                        create_list(data, false, ui.value);  
    396334                                                                var string_results = ui.value + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")";  
    397                                 var selectable = $("#selectable"); 
    398                                 selectable.empty(); 
    399                                 var Ul = document.createElement("ul"); 
    400                                 var Op = document.createElement("li"); 
    401                                                                 for (i=((ui.value-1)*7)+1; i<(((ui.value-1)*7)+1)+7; i++)  
    402                                 { 
    403                                     if(data['type_catalog'] != 'G' && (data[i-1].mail == null || data[i-1].mail == "")) 
    404                                                                         { 
    405                                                                                 data[i-1].mail = "No mail";  
    406                                                                         }        
    407                                                                         var contact_name = utf8_decoder(data[i].cn); 
    408                                                                         if(contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) != -1)                                                                      
    409                                                                                 contact_name = contact_name.substring(0, contact_name.toLowerCase().indexOf(data.search_for.toLowerCase())) + "<u>" + contact_name.substr(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()), data.search_for.length) + "</u>" + contact_name.substring(contact_name.toLowerCase().indexOf(data.search_for.toLowerCase()) + data.search_for.length); 
    410                                                                          
    411                                     Op.setAttribute("class", "ui-selectee"); 
    412                                                                         Op.innerHTML = '<span style="float:right; left:335px; position: absolute; z-index: 100; background-color: #EEE; padding:0"><button onClick="add_contact_field(contact_' + i + '.innerHTML)">+</button><button onClick="remove_contact_field(contact_' + i + '.innerHTML)">x</button></span><div class="id_contact_field" id=contact_' + i + ' onDblClick="add_contact_field(this.innerHTML)"><div class="name_contact"><strong>' + contact_name + '</strong><em>' + utf8_decoder(data[i].mail) + '</em></div></div>'; 
    413                                     $(Op).val(i); 
    414                                     Ul.appendChild(Op); 
    415                                     selectable.append(Ul.innerHTML); 
    416                                 } 
    417                                 $( "#amount" ).val( string_results ); 
    418                                                                 $(this).unbind('keypress'); 
    419                                                                 document.getElementById("amount").focus(); 
     335                                        $( "#amount-text" ).val( string_results ); 
    420336                                                } 
    421337                    }); 
    422                     $( "#amount" ).val( $( "#slider" ).slider( "value" ) + " " + get_lang("of") + " " + paginas + " (" + data.length + " " + get_lang("Results") + ")");          
     338                        $("#selectable li:first button:first").focus(); 
    423339                }); 
    424340        } 
    425341         
     342        var search_focus = false; 
    426343 
    427                  
    428         function checkEnter(e)  
    429                 { 
     344        function setFocus() {search_focus = true;return;} 
     345                 
     346        function removeFocus() {search_focus = false;return;} 
     347                 
     348    function checkEnter(e) { 
    430349                        var kC = window.event ? event.keyCode : 
    431350            e && e.keyCode ? e.keyCode : 
    432351            e && e.which ? e.which : null; 
    433             if (kC) {  
    434                                 //$("#dialog-modal").unbind('keypress'); 
     352        if (kC)  
    435353                                return kC == 13; 
    436                         } 
    437             else{  
     354        else 
    438355                                return false; 
    439356                        } 
    440                 } 
     357         
    441358         
    442359        /*  
    443360         * Faz a busca direto da tela modal   
    444361         */ 
    445         function buscaContato(param) 
    446         { 
    447                         $("#busca").empty(); 
    448                         if(param.length == 0) 
    449             { 
    450                 alert(get_lang("Please enter a parameter to search.")); 
    451                 return false; 
     362    function buscaContato(param) { 
     363                $("#busca, #detalhes_contato, #selectable").empty(); 
     364                if(param.length == 0) { 
     365            alert(get_lang("Please enter a parameter to search")); 
     366            return; 
    452367            } 
    453             if(param.length < preferences.search_characters_number) 
    454             { 
     368                if(param.length < preferences.search_characters_number) { 
    455369                alert(get_lang("parameter must be at least") + " " +  preferences.search_characters_number + " " + get_lang("characters")); 
    456370                return false; 
    457371            } 
    458372            var catalog = $("#combobox").val(); 
    459             var handler_emQuickSearch = function(data)  
    460             { 
     373        var handler_emQuickSearch = function(data) { 
    461374                data_ = data; 
    462                                 if(data_.length > 0) 
    463                 {         
    464                     init_results(data_); 
     375                        if(data_.length > 0) {         
    465376                    configure_slider(data_);     
     377                create_list(data_, true); 
    466378                    details_results(data_); 
    467379                } 
    468                 else 
    469                 { 
     380            else { 
    470381                    $("#detalhes_contato, #selectable").empty(); 
    471382                    configure_slider(data);  
     
    476387                 
    477388         
    478                 quantidade_contatos = 0; 
    479389        /*  
    480390         * Método que adiciona o contato selecionado no campo do email (To, CC, CCo)  
    481391         */ 
    482         function add_contact_field(contact) 
    483         { 
    484                         quantidade_contatos++; 
    485             $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos."); 
     392    function add_contact_field(contact) { 
    486393                        var emailList      = document.getElementById(field_ + "_" + id_).value;  
    487             var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' '); 
     394                var contact_parsed = contact.replace(/<[\/]*u>/gi, ''); 
     395                contact_parsed     = contact_parsed.replace(/<u[^>]*>/gi, ''); 
     396                contact_parsed     = contact_parsed.replace(/<\/?[^>]+>/gi, ' '); 
    488397            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|"); 
    489398            var tokens_contact = contact_parsed.split("|"); 
    490  
    491399            if (tokens_contact[1].indexOf("(") > 0) 
    492400                tokens_contact[1] = tokens_contact[1].substr(0, (tokens_contact[1].indexOf("("))-2); 
     
    494402                        var final_contact; 
    495403                        if(tokens_contact[2] == undefined) 
    496                                 final_contact = "\"" + tokens_contact[0] + " " + "\" <" + tokens_contact[1] + ">, "; 
     404                        final_contact = "\"" + tokens_contact[0] + "" + "\" <" + tokens_contact[1] + ">, "; 
    497405                        else 
    498406                        {                        
    499407                                if(tokens_contact[3] == undefined)                
    500                                         final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">, "; 
     408                                final_contact =  "\"" + tokens_contact[0] + "" +  tokens_contact[1] + "\" <" + tokens_contact[2] + ">, "; 
    501409                                else 
    502                                         final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + " " +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">, "; 
     410                                final_contact =  "\"" + tokens_contact[0] + "" +  tokens_contact[1] + "" +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">, "; 
    503411            } 
    504             if (emailList[0] != '"') 
     412        if (emailList[0] != '"' && emailList.indexOf(",") < 0) 
    505413                emailList = emailList.substr(end_); 
     414            if(emailList.lastIndexOf(",") > 0) 
     415                        emailList = emailList.substr(0, emailList.lastIndexOf(",") + 1); 
    506416             
    507             if(emailList.lastIndexOf(",") > 0) 
    508                 emailList = emailList.substr(0, emailList.lastIndexOf(",") + 2); 
    509              
     417                final_contact = final_contact.replace(/\/n/, ""); 
    510418            new_emailList = emailList + final_contact;     
    511419            document.getElementById(field_ + "_" + id_).value = new_emailList; 
     420                 
     421                if (is_ie) {  
     422                        var range= document.getElementById(field_ + "_" + id_).createTextRange();  
     423                        range.collapse(false);  
     424                        range.select();  
     425                } else {  
    512426                        document.getElementById(field_ + "_" + id_).focus();    
     427                }  
     428                 
     429                 
     430                 
    513431                        $(this).unbind('keypress'); 
    514432                        $(this).dialog("close"); 
     
    518436         * Método que remove o contato selecionado no campo do email (To, CC, CCo)  
    519437         */ 
    520                 function remove_contact_field(contact) 
    521                 { 
     438        function remove_contact_field(contact) { 
    522439                        var contact_parsed = contact.replace(/<\/?[^>]+>/gi, ' '); 
    523440            contact_parsed     = contact_parsed.replace(/^\s+|\s+$/gi, "").replace(/\s{2,}/gi, "|"); 
    524                         var tokens_contact = contact_parsed.split("|"); 
    525441                         
     442                var tokens_contact = contact_parsed.split("|");  
    526443                        if (tokens_contact[2].indexOf("(") > 0) 
    527444                tokens_contact[2] = tokens_contact[2].substr(0, (tokens_contact[2].indexOf("("))-2); 
     
    532449                                final_contact =  "\"" + tokens_contact[0] + " " +  tokens_contact[1] + " " +  tokens_contact[2] + "\" <" + tokens_contact[3] + ">"; 
    533450                         
    534                         if(quantidade_contatos ==0) 
    535                         { 
    536                                 alert("Nenhum contato adicionado!"); 
    537                                 return false; 
    538                         } 
    539                          
    540                         var encontrou = false; 
    541                         var emailList = document.getElementById(field_ + "_" + id_).value;  
     451                var exist = false; 
     452                var emailList = $("#" + field_ + "_" + id_).val(); 
    542453                        var emails_adicionados = emailList.split(","); 
    543                         var quantidade_excluidos = 0; 
    544                         for(i=0; i<emails_adicionados.length -1; i++) 
    545                         { 
    546                                 if(emails_adicionados[i].trim() == final_contact) 
    547                                 { 
     454                for(i=0; i<emails_adicionados.length -1; i++) { 
     455                        emails_adicionados[i].replace(/^\s+|\s+$/g, '');  
     456                        if(emails_adicionados[i] == final_contact) { 
    548457                                        emails_adicionados[i] = "%"; 
    549                                         quantidade_excluidos++; 
    550                                         encontrou = true; 
     458                                exist = true; 
    551459                                } 
    552460                        } 
    553                         if (encontrou == false)  
    554                         { 
    555                                 alert("Não pode excluir um contato que ainda não adicionou."); 
     461                if (exist == false)  
    556462                                return false; 
    557                         } 
    558                          
    559                         quantidade_contatos -= quantidade_excluidos; 
    560             $("#adds").html("Foram adicionados " + quantidade_contatos + " contatos."); 
    561                          
    562463                        var novos_contatos = emails_adicionados.join(",");   
    563464            novos_contatos = novos_contatos.replace(/%,/g, ""); 
    564                         document.getElementById(field_ + "_" + id_).value = novos_contatos; 
     465                $("#" + field_ + "_" + id_).val(novos_contatos); 
    565466                } 
    566467         
    567468               
    568         function utf8_decoder ( str_data )  
    569         { 
     469        /* Decoder utf8 */       
     470    function utf8_decoder ( str_data ) { 
    570471            var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0; 
    571              
    572472            str_data += ''; 
    573              
    574             while ( i < str_data.length )  
    575             { 
     473        while ( i < str_data.length ) { 
    576474                c1 = str_data.charCodeAt(i); 
    577                 if (c1 < 128)  
    578                 { 
     475            if (c1 < 128) { 
    579476                    tmp_arr[ac++] = String.fromCharCode(c1); 
    580477                    i++; 
    581                 } else if ((c1 > 191) && (c1 < 224))  
    582                        { 
     478            } else if ((c1 > 191) && (c1 < 224)) { 
    583479                            c2 = str_data.charCodeAt(i+1); 
    584480                            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63)); 
     
    596492         
    597493               
    598     function show_help() 
    599         { 
     494        /* Mostra tela de help */        
     495    function show_help() { 
    600496                $(function() { 
    601497                        $( "#dialog-modal_help" ).dialog({ 
    602498                                                resizable: false, 
    603                                                 height: 230, 
    604499                                                width: 540, 
    605500                                                modal: true, 
    606                                                 closeOnEscape: true, 
    607  
     501                                                closeOnEscape: true 
    608502                        }); 
    609503                }); 
     
    611505                   
    612506               
    613         emQuickCatalogSearch.prototype.showWindow = function (div) 
    614         { 
    615                                 $(this).bind('keypress'); 
     507        emQuickCatalogSearch.prototype.showWindow = function (div) { 
     508                $(this).bind('keydown'); 
    616509                                $(function() { 
    617510                    $( "#dialog:ui-dialog" ).dialog( "destroy" );                     
    618511                    $( "#dialog-modal" ).dialog({ 
    619512                                                resizable: false, 
    620                                                 height: 530, 
    621                                                 width: 940, 
     513//                      height: "auto", 
     514                        width: 780, 
    622515                                                modal: true, 
     516                        position: 'bottom', 
    623517                                                closeOnEscape: true, 
    624518                                                close: function (event, ui) { 
    625519                                                        event.stopPropagation(); 
    626                                                         $(this).unbind('keypress'); 
     520                                $(this).unbind('keydown'); 
     521                                if (is_ie) {  
     522                                        var range= document.getElementById(field_ + "_" + id_).createTextRange();  
     523                                        range.collapse(false);  
     524                                        range.select();  
     525                                } else {  
     526                                        document.getElementById(field_ + "_" + id_).focus();     
     527                                }  
     528                        }, 
     529                        open: function () { 
     530                                $("#selectable li:first button:first").focus();     
    627531                                                }, 
    628532                                                focus: function (event, ui) { 
    629                                                         $(this).bind('keypress'); 
     533                                //$(this).unbind('keydown'); 
    630534                                                }, 
    631535                                                beforeClose: function (event, ui) { 
    632                                                         $(this).bind('keypress'); 
     536                                $(this).unbind('keydown'); 
    633537                                                }, 
    634                                                 buttons:{ 
    635                                                         'Fechar' : function(){ 
     538                        buttons:[ 
     539                                                { 
     540                                                        text: "Fechar", 
     541                                                        click: function(){ 
    636542                                                                $("#detalhes_contato, #selectable, #busca").empty(); 
    637543                                                                $(this).dialog("close"); 
     544                                                                                                if (is_ie) {  
     545                                                                                                        var range= document.getElementById(field_ + "_" + id_).createTextRange();  
     546                                                                                                        range.collapse(false);  
     547                                                                                                        range.select();  
     548                                                                                                } else {  
     549                                                                                                                document.getElementById(field_ + "_" + id_).focus();     
    638550                                                        }  
     551                                                                                         }, 
     552                                                        style: "margin-top: -2.1em"  
    639553                                                } 
     554                                        ] 
    640555                                        }); 
    641556                }); 
     557                $(".ui-dialog .ui-dialog-titlebar") 
     558                .append('<a href="#" class="ui-dialog-titlebar-minimize ui-corner-all" role="button"><span class="ui-icon ui-icon-minusthick">minimize</span></a>') 
     559                .find('.ui-dialog-titlebar-minimize').click(function() { 
     560                        $(".ui-dialog-buttonpane, .ui-dialog-content").toggle(); 
     561                        $(".ui-icon-minusthick, .ui-icon-newwin").toggleClass('ui-icon-minusthick').toggleClass('ui-icon-newwin'); 
     562                }); 
    642563         
    643                  
    644                  
    645         if(! div) { 
    646                         alert(get_lang('The list has no participant.')); 
    647                         return; 
    648                 } 
    649                                                          
    650                 if(! this.arrayWin[div.id]) { 
    651                         div.style.width = "700px"; 
    652                         div.style.height = "230px"; 
    653                         var title = get_lang('The results were found in the Global Catalog')+':'; 
    654                         var wHeight = div.offsetHeight + "px"; 
    655                         var wWidth =  div.offsetWidth   + "px"; 
    656                         div.style.width = div.offsetWidth - 5; 
    657  
    658                         win = new dJSWin({                       
    659                                 id: 'QuickCatalogSearch_'+div.id, 
    660                                 content_id: div.id, 
    661                                 width: wWidth, 
    662                                 height: wHeight, 
    663                                 title_color: '#3978d6', 
    664                                 bg_color: '#eee', 
    665                                 title: title,                                            
    666                                 title_text_color: 'white', 
    667                                 button_x_img: '../phpgwapi/images/winclose.gif', 
    668                                 border: true, 
    669                                 onclose: 'QuickCatalogSearch.restoreShortcuts("'+ div.id +'")'}); 
    670  
    671                         this.arrayWin[div.id] = win; 
    672                         win.draw(); 
    673                 } 
    674                 else { 
    675                         win = this.arrayWin[div.id]; 
    676                 } 
    677                 //document.getElementById("window_QuickCatalogSearch").style.visibility = "visible"; 
    678                 //win.open(); 
    679                 //document.getElementById('select_QuickCatalogSearch').focus(); 
    680  
    681                 if(is_ie && (preferences.use_shortcuts == '1')){ 
    682                     shortcut.remove('down'); 
    683                     shortcut.remove('up'); 
    684                     shortcut.remove('return'); 
    685                 } 
    686         } 
    687          
    688         emQuickCatalogSearch.prototype.transfer_result = function (field, ID, begin, end){ 
    689                 cm = document.getElementById('select_QuickCatalogSearch'); 
    690                 option_selected = cm.options[cm.selectedIndex].value + ", "; 
    691                 emailList = document.getElementById(field + "_" + ID).value; 
    692                  
    693                 new_emailList = emailList.substring(0, begin) + option_selected + emailList.substring((parseInt(end) + 2), emailList.length); 
    694                 document.getElementById(field + "_" + ID).value = new_emailList; 
    695                 document.getElementById(field + "_" + ID).focus(); 
    696                 this.arrayWin['window_QuickCatalogSearch_A'].close(); 
    697                 document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden"; 
    698         } 
    699  
    700         emQuickCatalogSearch.prototype.close_QuickSearch_window = function (field, ID){ 
    701                 //document.getElementById('QuickCatalogSearch_window_QuickCatalogSearch').style.display = "none"; 
    702                 document.getElementById(field + "_" + ID).focus(); 
    703                 this.arrayWin['window_QuickCatalogSearch_A'].close(); 
    704                 document.getElementById("window_QuickCatalogSearch").style.visibility = "hidden"; 
    705                 if(typeof shortcut.all_shortcuts['down'] == 'undefined'){ 
    706                     if(is_ie  && (preferences.use_shortcuts == '1')) 
    707                     { 
    708                         shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false}); 
    709                         shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false}); 
    710                         shortcut.add("return",function(){ 
    711                             if ( Element('border_id_0').className==='menu-sel' ) 
    712                             { 
    713                                     all_messages = Element('tbody_box').childNodes; 
    714                                     for (var i=0; i < all_messages.length; i++) 
    715                                     { 
    716                                             if ( exist_className(all_messages[i], 'selected_shortcut_msg') ) 
    717                                             { 
    718                                                     Element("td_who_" + all_messages[i].id).onclick(); 
    719                                                     return; 
    720                                             } 
    721                                     } 
    722                             } 
    723                         },{'disable_in_input':true}); 
    724                     } 
    725                 } 
    726         } 
    727  
    728         emQuickCatalogSearch.prototype.restoreShortcuts = function(id) { 
    729  
    730             var search_win = document.getElementById(id); 
    731             if(typeof shortcut.all_shortcuts['down'] == 'undefined'){ 
    732                 if (search_win.style.visibility == 'visible') 
    733                 { 
    734                     shortcut.add("down",function(){select_msg('null', 'down');},{'disable_in_input':false}); 
    735                     shortcut.add("up",function(){select_msg('null', 'up');},{'disable_in_input':false}); 
    736                     shortcut.add("return",function(){ 
    737                         if ( Element('border_id_0').className==='menu-sel' ) 
    738                         { 
    739                                 all_messages = Element('tbody_box').childNodes; 
    740                                 for (var i=0; i < all_messages.length; i++) 
    741                                 { 
    742                                         if ( exist_className(all_messages[i], 'selected_shortcut_msg') ) 
    743                                         { 
    744                                                 Element("td_who_" + all_messages[i].id).onclick(); 
    745                                                 return; 
    746                                         } 
    747                                 } 
    748                         } 
    749                     },{'disable_in_input':true}); 
    750                 } 
    751             } 
    752             search_win.style.visibility = 'hidden'; 
    753  
    754         } 
    755  
    756         emQuickCatalogSearch.prototype.close_window = function(id) { 
    757                 this.arrayWin[id].close(); 
    758                 var group_values = Element('list_values'); 
    759                 var user_values = Element('user_values'); 
    760         } 
    761         emQuickCatalogSearch.prototype.showCatalogList = function (border_id){ 
    762                 var el = Element('catalog_list'); 
    763  
    764                 if(el) { 
    765                         Element('border_id').value = border_id; 
    766                         win = this.arrayWin[el.id]; 
    767                         win.open(); 
    768                         return;          
    769                 } 
    770                 var border_input   = document.createElement("INPUT"); 
    771                 border_input.type  = 'hidden'; 
    772                 border_input.id    = 'border_id'; 
    773                 border_input.value = border_id; 
    774                 document.body.appendChild(border_input); 
    775                 el = document.createElement("DIV");              
    776                 el.id = 'catalog_list'; 
    777                 document.body.appendChild(el);                   
    778                 el.style.visibility = "hidden"; 
    779                 el.style.position = "absolute"; 
    780                 el.style.width = "700px"; 
    781                 el.style.height = is_ie ? "360px" : "375px";             
    782                 el.style.left = "0px"; 
    783                 el.style.top = "0px";                    
    784                 el.innerHTML = "<table border='0' cellpading='0' cellspacing='0' width='100%'>"+ 
    785                                            "<tr><td id='td1' style='cursor:pointer' align='center' onclick='QuickCatalogSearch.select_div(\"tab1\")'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab1\");'>"+get_lang('Global Catalog')+"</a></td>"+ 
    786                                            "<td id='td2' style='background:#cecece;cursor:pointer' onclick='QuickCatalogSearch.select_div(\"tab2\")' align='center'><a href='#' class='catalog' onclick='QuickCatalogSearch.select_div(\"tab2\");'>"+get_lang('Personal Catalog')+"</a></td></tr>"+ 
    787                                            '</table>'+ 
    788                                            '<div id="tab1" align="center"><br>'+ 
    789                                            '<table border="0" cellpading="0" cellspacing="0">'+ 
    790                                            '<tr><td>'+get_lang("Select an organization and click on button <b>Search</b>")+'&nbsp;:</td></tr>'+ 
    791                                         '<tr><td><select style="display:none;width:150px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+ 
    792                                         '<select id="select_organization" style="width:150px" name="select_organization"></select>&nbsp;'+    
    793                                         '<input type="text" id="search_for" name="search_for" value="" size="30" maxlength="30"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input style="display:visible" type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+ 
    794                                            '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" id="type_l" type="radio" name="type" value="l"/>'+get_lang('Public Lists')+'&nbsp;&nbsp;<input type="radio" id="type_u" name="type" value="u" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" checked/>'+get_lang('Users')+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ 
    795                                            '<span style="visibility:hidden;background:#cc4444" id=msg_search>&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">'+get_lang('Search in Catalog')+'...</font>&nbsp;</span></td></tr>'+ 
    796                                            '<tr><td>'+ 
    797                                            '<span id="list_span"><select multiple style="display:none;width:580px" size="14" id="list_values"></select></span>'+ 
    798                                            '<span id="user_span"><select multiple style="width:580px" size="14" id="user_values"></select></span>'+ 
    799                                            '</td></tr>'+ 
    800                                            '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to\')">&nbsp;'+ 
    801                                            '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc\')">&nbsp;'+( allow_hidden_copy ?   
    802                            '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco\')">' : '' )+ 
    803                                            '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+ 
    804                                            '</table>'+ 
    805                                            '</div>'+ 
    806                                            '<div style="display:none" id="tab2" align="center">'+ 
    807                                            '<br><br><br>'+ 
    808                                            '<table border="0" cellpading="0" cellspacing="0">'+ 
    809                                            '<tr><td>'+get_lang("Select the type of contact that you want to view")+'&nbsp;:</td></tr>'+ 
    810                                            '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" type="radio" name="type" value="p"/>' + get_lang('People') + '&nbsp;&nbsp;<input type="radio" name="type" value="g" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)"/>' + get_lang('Groups') + ' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ 
    811                                            '<tr><td>'+ 
    812                                            '<span id="personal_span"><select multiple style="width:580px" size="14" id="list_personal"></select></span>'+ 
    813                                            '<span id="groups_span"><select multiple style="display:none;width:580px" size="14" id="list_groups"></select></span>'+ 
    814                                            '</td></tr>'+ 
    815                                            '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to1\')">&nbsp;'+ 
    816                                            '<input type="button" class="button" value="'+get_lang('CC')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cc1\')">&nbsp;'+ ( allow_hidden_copy ?  
    817                            '<input type="button" class="button" value="'+get_lang('CCo')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'cco1\')">' : '' )+ 
    818                                            '</center></td></tr><tr><td nowrap><center><input type="button" value="'+get_lang('Close')+'" onClick="javascript:QuickCatalogSearch.close_window(\'catalog_list\')"></center></td></tr>'+ 
    819                                            '</table>'+ 
    820                                            '</div>'; 
    821  
    822                 var title = get_lang('Search in the Global Catalog'); 
    823                 var wHeight = el.offsetHeight - (is_ie ? 10 : 0) + "px"; 
    824                 var wWidth =  el.offsetWidth   + "px"; 
    825                 el.style.width = el.offsetWidth; 
    826                  
    827                 Element('search_for').onkeypress = function (e) { 
    828                         if ((is_ie && (window.event.keyCode == 13)) || (!is_ie && e.keyCode == 13)) { 
    829                                 QuickCatalogSearch.searchCatalogList(true); 
    830                         } 
    831                 }; 
    832  
    833                 win = new dJSWin({                       
    834                         id: 'win_'+el.id, 
    835                         content_id: el.id, 
    836                         width: wWidth, 
    837                         height: wHeight, 
    838                         title_color: '#3978d6', 
    839                         bg_color: '#eee', 
    840                         title: title,                                            
    841                         title_text_color: 'white', 
    842                         button_x_img: '../phpgwapi/images/winclose.gif', 
    843                         border: true}); 
    844                          
    845                 this.arrayWin[el.id] = win;              
    846                 win.draw(); 
    847                 win.open(); 
    848  
    849                 var handler_catalogs = function(data){ 
    850                         var user_catalog = get_lang("Global Catalog"); 
    851                         if(data.length > 1) { 
    852                                 Element('select_catalog').style.display = ''; 
    853                                 for(i = 0; i < data.length; i++) {               
    854                                         Element('select_catalog').options[i] = new Option(data[i],i); 
    855                                         if(user_catalog.toUpperCase() == data[i].toUpperCase()) 
    856                                                 Element('select_catalog').options[i].selected = true; 
    857                                 } 
    858                         } 
    859                 } 
    860                 cExecute ("$this.ldap_functions.get_catalogs", handler_catalogs);                
    861                  
    862                 this.update_organizations(); 
    863                 var handler_cc_contacts= function(data){ 
    864                         if(data && data.length > 0){ 
    865                                 var aux = data.split(","); 
    866                                 for(var i=0; i< aux.length; i++){ 
    867                                         QuickCatalogSearch.cc_contacts[QuickCatalogSearch.cc_contacts.length] = aux[i];                          
    868                                 } 
    869                         } 
    870                 } 
    871                 cExecute("$this.db_functions.get_cc_contacts",handler_cc_contacts); 
    872  
    873                 var handler_cc_groups = function(data){ 
    874                         if(data && data.length > 0){ 
    875                                 var aux = data.split(","); 
    876                                 for(var i=0; i < data.length; i++){ 
    877                                         QuickCatalogSearch.cc_groups[QuickCatalogSearch.cc_groups.length] = aux[i];                                                              
    878                                 }        
    879                         } 
    880                 } 
    881                 cExecute("$this.db_functions.get_cc_groups",handler_cc_groups); 
    882          
    883         } 
    884          
    885         emQuickCatalogSearch.prototype.select_div = function(element){ 
    886                 if(element == 'tab1'){ 
    887                    Element('tab1').style.display = ''; 
    888                    Element('tab2').style.display = 'none'; 
    889                    Element('td1').style.background = '#eee';     
    890                    Element('td2').style.background = '#cecece'; 
    891                 } 
    892                 if(element == 'tab2'){ 
    893                    Element('tab1').style.display = 'none'; 
    894                    Element('tab2').style.display = ''; 
    895                    Element('td1').style.background = '#cecece'; 
    896                    Element('td2').style.background = '#eee';                
    897  
    898                 } 
    899         } 
    900          
    901         emQuickCatalogSearch.prototype.load_catalog = function(){ 
    902          
    903                 var _this = this; 
    904                 var content = new Array; 
    905                 var select = Element('list_personal').style.display == 'none'? Element('list_groups'): Element('list_personal'); 
    906                  
    907                 if(Element('list_personal').style.display == 'none'){ 
    908                         content = _this.cc_groups; 
    909                 }else{ 
    910                         content = _this.cc_contacts; 
    911                 } 
    912                 if(select.options.length > 0){ 
    913                         for(var i=0; i < select.options.length; i++){ 
    914                                 select.options[i] = null; 
    915                                 i--; 
    916                         } 
    917                 } 
    918                 for(var i=0; i < content.length; i++){ 
    919                         if(content[i] != undefined){ 
    920                                 var aux = content[i].split(";"); 
    921                                 var opt = new Option(aux[0] + ' (' + aux[1] + ')','"' + aux[0] + '" ' + '<' + aux[1] + '>',false,false); 
    922                                 select[select.length] = opt; 
    923                         } 
    924                 } 
    925                 content.splice(0,(content.lenght)); 
    926         } 
    927  
    928         emQuickCatalogSearch.prototype.update_organizations = function(){ 
    929                 while(Element('select_organization').options.length > 0) { 
    930                         Element('select_organization').remove(0); 
    931                 } 
    932                 var handler_org = function(data){ 
    933                         Element('select_organization').options[0] = new Option(get_lang('all'),'all'); 
    934                         if (data != null){ 
    935                                 var user_organization = Element('user_organization').value; 
    936                                 for(x = 0; x < data.length; x++) { 
    937                                         Element('select_organization').options[x+1] = new Option(data[x].toUpperCase(),data[x]); 
    938                                         if(user_organization.toUpperCase() == data[x].toUpperCase()) 
    939                                                 Element('select_organization').options[x+1].selected = true; 
    940                                 } 
    941                         } 
    942                 }                
    943                 cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org);                
    944         } 
    945  
    946         emQuickCatalogSearch.prototype.changeOptions = function(type){   
    947  
    948                 switch(type){ 
    949                         case 'u': 
    950                                 Element('list_values').style.display = 'none'; 
    951                                 Element('user_values').style.display = ''; 
    952                                 break; 
    953                          
    954                         case 'l':                
    955                                 Element('user_values').style.display = 'none'; 
    956                                 Element('list_values').style.display = '';               
    957                                 break; 
    958  
    959                         case 'p': 
    960                                 Element('list_personal').style.display = ''; 
    961                                 Element('list_groups').style.display = 'none' 
    962                                 QuickCatalogSearch.load_catalog();                               
    963                                 break; 
    964                          
    965                         case 'g': 
    966                                 Element('list_personal').style.display = 'none'; 
    967                                 Element('list_groups').style.display = '' 
    968                                 QuickCatalogSearch.load_catalog(); 
    969                                 break; 
    970                 } 
    971  
    972         } 
    973  
    974         emQuickCatalogSearch.prototype.addContacts = function(field) { 
    975                  
    976                 var border_id   = Element('border_id').value; 
    977                 var select              = Element('user_values').style.display == 'none' ? Element('list_values') : Element('user_values'); 
    978                 if(field == "to1" || field == "cc1" || field == "cco1"){ 
    979                         field = field.substr(0,field.length - 1); 
    980                         var select = Element('list_personal').style.display == 'none' ? Element('list_groups') : Element('list_personal'); 
    981                 } 
    982                 var fieldOpener = Element(field+"_"+border_id); 
    983                 var not_selected = true; 
    984                  
    985                 for (i = 0 ; i < select.length ; i++) { 
    986                         if (select.options[i].selected && select.options[i].value != '-1') { 
    987                                 if(fieldOpener.value.length > 0 && (fieldOpener.value.lastIndexOf(',') != (fieldOpener.value.length - 1))){ 
    988                                         fieldOpener.value += ","; 
    989                                 } 
    990                                 fieldOpener.value += select.options[i].value + ","; 
    991                                 not_selected = false; 
    992                                 select.options[i].selected = false; 
    993                         } 
    994                 } 
    995                  
    996                 if(not_selected) 
    997                         return false; 
    998                          
    999                 if(field != 'to'){ 
    1000                         a_link = Element("a_"+field+"_link_"+border_id); 
    1001                         if(a_link) 
    1002                                 a_link.onclick(); 
    1003                 } 
    1004         } 
    1005          
    1006         emQuickCatalogSearch.prototype.searchCatalogList = function (itemSearch){ 
    1007  
    1008                 if(itemSearch && Element('search_for').value.length < preferences.search_characters_number){ 
    1009                         alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number)); 
    1010                         Element('search_for').focus(); 
    1011                         return false; 
    1012                 } 
    1013                 var organization = Element('select_organization').value;                 
    1014                 var search               = itemSearch ? Element('search_for').value : ''; 
    1015                 var catalog              = Element('select_catalog').value; 
    1016  
    1017                 var handler_searchResults = function(data){ 
    1018                         Element('msg_search').style.visibility = 'hidden'; 
    1019                         if(data.error){ 
    1020                                 alert(get_lang('More than %1 results. Please, try to refine your search.',data.maxResult)); 
    1021                                 return false; 
    1022                         }else if(data.users.length == 0 && data.groups.length == 0){ 
    1023                                 alert(get_lang('None result was found.')); 
    1024                         } 
    1025  
    1026                          
    1027                         var group = Element('list_span'); 
    1028                         var user  = Element('user_span');        
    1029                         if(is_ie){ 
    1030                                 group.innerHTML = ''; 
    1031                                 user.innerHTML = ''; 
    1032                         } 
    1033                         else { 
    1034                                 group = Element('list_values'); 
    1035                                 user  = Element('user_values');  
    1036                                 for(var i = 0;i < group.options.length; i++)                             
    1037                                         group.options[i--] = null; 
    1038                                 for(var i = 0;i < user.options.length; i++)                              
    1039                                         user.options[i--] = null; 
    1040                         } 
    1041  
    1042                         var arr         = new Array(data.maxResult); 
    1043  
    1044                         for(i = 0; data.groups && i < data.groups.length; i++) { 
    1045                                 // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento. 
    1046                                 if(is_ie) 
    1047                                         arr[i] = '<option value="'+'&quot;'+data.groups[i].name+'&quot; &lt;'+data.groups[i].email+'&gt;">'+data.groups[i].name+' ('+data.groups[i].email+')'+'</option>'; 
    1048                                 else 
    1049                                         group.options[i] = new Option(data.groups[i].name+' ('+data.groups[i].email+')','"'+data.groups[i].name+'" <'+data.groups[i].email+'>'); 
    1050                         } 
    1051          
    1052                          
    1053                         if(is_ie) 
    1054                                 group.innerHTML = '<select multiple style="display:none;width:580px" size="14" id="list_values">'+ arr.join() +'</select>'; 
    1055  
    1056                         arr = new Array(data.maxResult); 
    1057                          
    1058                         for(i = 0; data.users && i < data.users.length; i++) { 
    1059                         /*******************************************************************************************/ 
    1060                         /* O resultado pratico do bloco de codigo a seguir eh a exibicao dos valores em tela, 
    1061                         ja que vai verificar se o departamento e o email estao vazios ou nulos e a partir dai o 
    1062                         resultado apresentado em tela sera exibido de maneira mais apresentavel; 
    1063                         */ 
    1064                                 //verifica se departamento eh null ou nao; 
    1065                                 var department = data.users[i].department ? " - " + data.users[i].department : ""; 
    1066                                 //verifica se email eh null ou nao; 
    1067                                 var email = data.users[i].email ? data.users[i].email : ""; 
    1068  
    1069                                 // Maneiras diferentes de se montar uma tag OPTION, pois no IE o objeto Option é muito lento. 
    1070                                 if(is_ie) 
    1071                                         arr[i] = '<option value="'+'&quot;'+data.users[i].name+'&quot; &lt;'+email+'&gt;">'+data.users[i].name+' ('+email+')'+department+'</option>'; 
    1072                                 else { 
    1073                                         user.options[i] = new Option(data.users[i].name+' ('+email+')'+department,'"'+data.users[i].name+'" <'+email+'>'); // incluido data.users[i].department para exibir setor na opcao "Pesquisar" do email; 
    1074                                 } 
    1075                         } 
    1076          
    1077                         if(is_ie) 
    1078                                 user.innerHTML = '<select multiple style="width:580px" size="14" id="user_values">'+ arr.join() +'</select>'; 
    1079  
    1080                         // Display entries found. 
    1081                         var type = (data.groups.length > 0 && data.users.length == 0) ? 'l' : 'u'; 
    1082                         Element("type_"+type).checked = true; 
    1083                         QuickCatalogSearch.changeOptions(type); 
    1084                 } 
    1085  
    1086                 Element('msg_search').style.visibility = 'visible'; 
    1087                 cExecute ("$this.ldap_functions.catalogsearch&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults); 
     564                $("#dialog-modal button, input.button").button();                                
    1088565        } 
    1089566 
    1090567         
    1091 /* Build the Object */ 
     568        /* Build the Object */ 
    1092569        //QuickCatalogSearch; 
    1093570        QuickCatalogSearch = new emQuickCatalogSearch(); 
  • trunk/expressoMail1_2/js/TreeS.js

    r4772 r5134  
    1818                tree.style.position   = "absolute"; 
    1919                tree.style.left           = "0px"; 
     20                tree.style.width          = "0px"; 
    2021                tree.style.top            = "0px"; 
    21                 tree.style.width          = "0px"; 
    2222                tree.style.height         = "0px"; 
    2323                tree.id                           = "window_tree"; 
     
    3232                div_buttons.style.left = "440px"; 
    3333                div_buttons.style.top = "20px"           
    34                 div_buttons.style.width = "130px"; 
     34                div_buttons.style.width = "10px"; 
    3535                div_buttons.style.height = "214px"; 
    3636                div_buttons.innerHTML = "<table border='0' cellpading='0' cellspacing='0'>"+ 
    3737                                                            "<tr>"+ 
    38                                                             "<td><input type='button' value='"+get_lang('New folder')+"' onclick='proxy_mensagens.proxy_create_folder()'></td>"+ 
     38                                                            "<td><input type='button' value='"+get_lang('New folder')+"' onclick='proxy_mensagens.proxy_create_folder()' "+ (is_ie ? "style=\"width:85px\"": "") +"></td>"+ 
    3939                                                            "</tr>"+ 
    4040                                                            "<tr>"+ 
     
    4242                                                            "</tr>"+ 
    4343                                                            "<tr>"+ 
    44                                                             "<td><input type='button' value='"+get_lang('Rename folder')+"' onclick='proxy_mensagens.proxy_rename_folder()'></td>"+ 
     44                                                            "<td><input type='button' value='"+get_lang('Rename folder')+"' onclick='proxy_mensagens.proxy_rename_folder()' "+ (is_ie ? "style=\"width:108px\"": "") +"></td>"+ 
    4545                                                            "</tr>"+ 
    4646                                                            "<tr>"+ 
    4747                                                            //Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Chama o proxy_mensagens para que uma pasta local também possa ser exportada 
    48                                                             "<td><input type='button' value='"+get_lang('Export messages')+"' onclick='proxy_mensagens.proxy_export_all_msg()'></td>"+ 
     48                                                            "<td><input type='button' value='"+get_lang('Export messages')+"' onclick='proxy_mensagens.proxy_export_all_msg()' "+ (is_ie ? "style=\"width:130px\"": "") +"></td>"+ 
    4949                                                            "</tr>"+ 
    5050                                                            "<tr><td><br><br><br><br><br></td></tr>"+ 
     
    176176                                if(data[i].folder_parent != 'root') { 
    177177                                        var node_parent = folders_tree.getNodeById(data[i].folder_parent); 
     178                                        if(typeof node_parent != 'undefined'){ 
    178179                                        node_parent.plusSign = true; 
    179180                                        folders_tree.alter(node_parent); 
    180                                 } 
    181                                  
     181                                 
     182                                        } 
     183                                } 
    182184                                folders_tree.add(nn,data[i].folder_parent); 
     185                                 
    183186                        } 
    184187                } 
  • trunk/expressoMail1_2/js/abas.js

    r5083 r5134  
    22BordersArray[0] = new setBorderAttributes(0); 
    33var countBorders = 0;  
     4var partMsgs = new Array();  
     5 
    46 
    57function setBorderAttributes(ID) 
     
    4244 
    4345        var footer_menu = Element("footer_menu");        
    44         if (footer_menu) { 
     46        var aba = Element('border_id_'+ID); 
     47        if (footer_menu != null) { 
    4548                footer_menu.style.display = (openTab.type[ID] != 4 ? '' : 'none'); 
    46         } 
     49                if((aba.id.indexOf("_r") < 0) && (aba.id.indexOf("_0") < 0) && (aba.id.indexOf("id_search_") < 0)){ 
     50                        spanD.style.display = 'none'; 
     51                        footer_menu.style.display = 'none';                      
     52                } 
     53        } 
     54 
    4755 
    4856        var len = BordersArray.length; 
     
    7785        } 
    7886 
     87        numBox = getNumBoxFromTabId(ID); 
    7988        if (typeof(ID)=='number') { 
    8089                 numBox = ID; 
     
    114123            var str_continue = ''; 
    115124            var bolContinue = true; 
     125                        str_continue = '\n' + get_lang('You must manually close one of your tabs before opening a new one'); 
    116126            if (preferences.auto_close_first_tab == 1){ 
    117                 str_continue = '\n' + get_lang('You must manualy close one of your tabs before opening a new one'); 
    118127                var children = Element('border_tr').childNodes; 
    119128                var bolDelete = true; 
     
    127136                            bolDelete = false; 
    128137                        } 
    129                         if (bolDelete){ 
     138                        if (bolDelete || bolContinue){ 
     139                                                        str_fechar = '\n' + get_lang('Reached maximum tab limit. Want to close this tab'); 
     140                                                        var confirmacao = confirm(str_fechar); 
     141                            if(confirmacao){ 
    130142                            bolContinue = false; 
    131143                            delete_border(num_child, 'false'); 
    132144                            break; 
     145                                                        }else{ 
     146                                                                return 'maximo'; 
    133147                        } 
    134148                    } 
    135149                } 
    136150            } 
    137             if (bolContinue){ 
     151            }else{                       
    138152                alert(get_lang('Reached maximum tab limit') + str_continue ); 
    139                 return 0; 
     153                return 'maximo'; 
    140154            } 
    141155        } 
     
    250264        } 
    251265        var caption = ""; 
    252         Element("font_"+border.id).style.width = (border_width - 25)+'px'; 
     266        Element("font_"+border.id).style.width = (border_width - 30)+'px'; 
    253267        Element("font_"+border.id).innerHTML = title; 
    254268        return(title); 
     
    257271function draftTests(ID, msg_sent){ 
    258272    var cancel = new LertButton(get_lang('cancel'), function() { 
    259         Element("border_id_"+ID).onclick = function () {alternate_border(ID);}; 
     273        Element("border_id_"+ID).onclick = function () { alternate_border(ID);};  
     274        cRichTextEditor.prototype.focus(ID); 
     275             
    260276    }); 
     277         
    261278    var yes = new LertButton(get_lang('Save'), function() { 
    262         save_msg(ID); 
     279        save_msg(ID, 'undefined', true); 
    263280        openTab.toPreserve[ID] = false; 
    264281        close_delete(ID, msg_sent); 
    265282        delete(openTab.type[ID]); 
    266                 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder('Drafts'))); 
     283                //write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder('Drafts'))); 
     284                 
    267285    }); 
    268286    var discard = new LertButton(get_lang('Discard'), function() { 
     
    306324function delete_border(ID, msg_sent) 
    307325{ 
     326     
    308327        var bolExecuteClose = true; 
    309         var borderElem = Element("border_id_" + ID) 
     328        var borderElem = Element("border_id_" + ID); 
    310329        if (borderElem){ 
    311330            borderElem.onclick = null; // It's avoid a FF3 bug 
     
    368387        resizeWindow(); 
    369388        RichTextEditor.destroy( 'body_'+ID ); 
     389         
     390        //Caso for uma mensagem anexada tem que deletar ela da lixeira apos fechar a aba 
     391            var isPartMsg = false; 
     392            var id2 = ID.replace('_r',''); 
     393            for(var ii = 0; ii < partMsgs.length; ii++) 
     394               if(partMsgs[ii] == id2){            
     395                  isPartMsg = true; 
     396                  partMsgs[ii] = null; 
     397               }      
     398 
     399            if(isPartMsg === true){ 
     400                var handler_delete_msg = function(){}; 
     401                cExecute ("$this.imap_functions.delete_msgs&folder=INBOX"+cyrus_delimiter+trashfolder+"&msgs_number="+id2,handler_delete_msg); 
     402            } 
     403        /////////////////////////////////////////////////////////////////////////////////// 
     404         
    370405        return true; 
     406} 
     407 
     408function getTabPrefix() { // define o prefixo para os checkboxes das mensagens 
     409        if (typeof(currentTab)!='number') 
     410                return currentTab+"_"; 
     411        else 
     412                return ""; 
    371413} 
    372414 
     
    388430        } 
    389431} 
    390  
    391 function getTabSufix() { 
    392         if (typeof(currentTab)=='number') 
    393                 return ''; 
    394         else 
    395                 return '_s' + numBox.toString(); 
    396 } 
  • trunk/expressoMail1_2/js/common_functions.js

    r5075 r5134  
    1818 
    1919window.onresize = resizeWindow; 
     20 
     21var message = "Não Informado"; 
    2022 
    2123function config_events(pObj, pEvent, pHandler) 
     
    144146        remove_className(tr_message, 'selected_msg'); 
    145147        add_className(tr_message, 'tr_msg_unread'); 
    146         if( document.getElementById("td_message_unseen_"+msg_number) != null ) 
    147148        Element("td_message_unseen_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/unseen.gif' title='"+get_lang('Unseen')+"'>"; 
    148149} 
     
    152153        remove_className(msg, 'selected_msg'); 
    153154        add_className(msg, 'flagged_msg'); 
    154         if( document.getElementById("td_message_important_"+msg_number) != null ) 
    155155        Element("td_message_important_"+msg_number).innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>"; 
    156156} 
     
    160160        remove_className(msg, 'selected_msg'); 
    161161        remove_className(msg, 'flagged_msg'); 
    162         if( document.getElementById("td_message_important_"+msg_number) != null ) 
    163162        Element("td_message_important_"+msg_number).innerHTML = "&nbsp;&nbsp;&nbsp;"; 
    164163} 
     
    185184        else 
    186185                return false; 
     186} 
     187 
     188//Remove as linhas da tabela sem deletar o corrent_box 
     189function remove_rows(el){ 
     190        while (el.rows.length > 0)  { 
     191                el.deleteRow(0); 
     192        }  
     193        Element("tot_m").innerHTML = 0  
     194        Element("new_m").innerHTML = 0  
    187195} 
    188196 
     
    234242        } 
    235243        if(new_file_name) { 
    236                 var extension = new_file_name.substring(new_file_name.length-4, new_file_name.length); 
    237                 if (extension == ".eml") // if the extension is .eml 
     244                var extension = /\.[^.]*$/.exec(new_file_name); 
     245                if (extension == ".eml") 
    238246                        params = "&newFilename="+new_file_name; //name_of_message.eml 
    239247                else // when more than one message 
     
    256264function addForwardedFile(id_border,file_name,link,divFiles){ 
    257265        if(!divFiles) 
    258                 divFiles = document.getElementById("divFiles_"+id_border); 
     266                var divFiles = document.getElementById("divFiles_"+id_border); 
    259267 
    260268        if (! divFiles) 
     
    267275                var countDivFiles = 1; 
    268276 
    269         divFile = document.createElement('DIV'); 
    270  
    271  
     277        var divFile = document.createElement('DIV'); 
     278 
     279        var inputFile = document.createElement("INPUT"); 
    272280        if (!expresso_offline) { 
    273281                if (!is_ie) { 
    274                         var inputFile = document.createElement("INPUT"); 
    275  
    276282                        var tmp_id_border = document.createAttribute('id_border'); 
    277283                        tmp_id_border.value = id_border; 
     
    286292                } 
    287293                else { 
    288                         var inputFile = document.createElement("link"); 
     294                        inputFile = document.createElement("link"); 
    289295 
    290296                        var tmp_id_border = document.createAttribute('id_border'); 
     
    300306        } 
    301307        else { 
    302                 var inputFile = document.createElement("input"); 
    303308                inputFile.type = 'hidden'; 
    304309                inputFile.name = 'offline_forward_' + countDivFiles; 
     
    315320        checkbox.id = "checkbox_"+id_border+"_"+countDivFiles; 
    316321        checkbox.name = "local_attachments[]"; 
     322        checkbox.setAttribute("checked", "checked"); 
    317323 
    318324        checkbox.value = s_tmp; 
     
    329335        divFiles.appendChild(divFile); 
    330336 
    331         checkbox.checked = true; //Incrível, mas no Internet Explorer o checked só funciona efetivamente se o elemente já estiver renderizado... por isso só aqui eu seleciono ele... 
    332337        return inputFile; 
    333338} 
     
    476481        to = to.replace("<","&lt;"); 
    477482        to = to.replace(">","&gt;"); 
    478         block_quoted_body ="<br><br>"; 
    479         block_quoted_body += get_lang('At %1, %2 hours, %3 wrote:', date_day, date_hour, to); 
     483        block_quoted_body ='<div>'; 
     484        block_quoted_body += get_lang('At %1, %2 hours, %3 wrote:', date_day, date_hour, to) + '<br type="_moz"></div>'; 
    480485        block_quoted_body += "<blockquote style=\"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;\">"; 
    481486        block_quoted_body += body; 
     
    489494        to = to.replace(/</g,"&lt;"); 
    490495        to = to.replace(/>/g,"&gt;"); 
    491         var forward_body = '<BR><BR>---------- ' + get_lang('Forwarded message') + ' ----------<BR>'; 
    492         forward_body += get_lang('From') + ': ' + from + '<BR>'; 
    493         forward_body += get_lang('Date') + ': ' + date + '<BR>'; 
    494         forward_body += get_lang('Subject') + ': ' + subject + '<BR>'; 
    495         forward_body += get_lang('To') + ': ' + to+ '<BR>'; 
     496        var forward_body = '<div>---------- ' + get_lang('Forwarded message') + ' ----------<br type="_moz"></div><div>'; 
     497        forward_body += get_lang('From') + ': ' + from + '<br type="_moz"></div><div>'; 
     498        forward_body += get_lang('Date') + ': ' + date + '<br type="_moz"></div><div>'; 
     499        forward_body += get_lang('Subject') + ': ' + subject + '<br type="_moz"></div><div>'; 
     500        forward_body += get_lang('To') + ': ' + to+ '<br type="_moz"></div><div>'; 
    496501        if(cc != undefined){ 
    497502                cc = cc.replace(/</g,"&lt;"); 
    498503                cc = cc.replace(/>/g,"&gt;"); 
    499                 forward_body += get_lang('CC') + ': ' + cc+ '<BR><BR>'; 
     504                forward_body += get_lang('CC') + ': ' + cc+ '<br type="_moz"></div><<div><br type="_moz"></div><div><br type="_moz"></div>'; 
    500505        } 
    501506        forward_body += body; 
     
    603608 
    604609        if (search_for.length < preferences.search_characters_number){ 
    605             //alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number)); 
    606             alert(get_lang('Your search argument must be longer than %1 characters. Use quotes to refine your search', preferences.search_characters_number)); 
     610            alert(get_lang('Your search argument must be longer than %1 characters.', preferences.search_characters_number)); 
    607611            return false; 
    608612        } 
     
    698702 
    699703function url_encode(str){ 
     704        if(str === null) return false; 
    700705    var hex_chars = "0123456789ABCDEF"; 
    701706    var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
     
    730735        return strDecode; 
    731736} 
    732  
     737//Método que remove os hexadecimais criados no enconde 
     738//e retorna string corretamente 
    733739function url_decode_s(str) { 
    734         var n, strCode, strDecode = ""; 
    735         for (n = 0; n < str.length; n++) { 
    736             if (str.charAt(n) == "%") { 
    737                 strCode = str.charAt(n + 1) + str.charAt(n + 2); 
    738                 strDecode += String.fromCharCode(parseInt(strCode, 16)); 
    739                 n += 2; 
    740             } else { 
    741                 strDecode += str.charAt(n); 
    742             } 
    743         } 
    744         return strDecode; 
     740            var result = ""; 
     741 
     742     for (var i = 0; i < str.length; i++) { 
     743          if (str.charAt(i) == "+") result += " "; 
     744          else result += str.charAt(i); 
     745        } 
     746          return unescape(result); 
     747      
    745748} 
    746749 
     
    963966} 
    964967 
     968//Verifica se ainda existem mensagens marcadas, se não desmarca 
     969//o selecionar todas. 
     970function remove_chk_box_select_all_messages(){ 
     971        var main = Element("tbody_box"); 
     972        var main_list = main.childNodes; 
     973        var len_main_list = main_list.length; 
     974        for (i=0; i<len_main_list; i++) 
     975        { 
     976                if (Element("check_box_message_"+main_list[i].id).checked){ 
     977                                return; 
     978                } 
     979        } 
     980         document.getElementById("chk_box_select_all_messages").checked = false; 
     981} 
     982 
    965983function select_all_messages(select) 
    966984{ 
     
    974992                { 
    975993                        Element("check_box_message_"+main_list[i].id).checked = true; 
    976                         add_className(Element(main_list[i].id), 'selected_msg'); // one by one to add only if does not exist yet 
    977                         add_className(Element(main_list[i].id), 'selected_shortcut_msg'); // one by one to add only if does not exist yet 
     994                        remove_className(Element(main_list[i].id), 'selected_msg'); 
     995                        add_className(Element(main_list[i].id), 'selected_msg selected_shortcut_msg'); 
    978996                } 
    979997        } 
     
    9831001                { 
    9841002                        Element("check_box_message_"+main_list[i].id).checked = false; 
    985                         remove_className(Element(main_list[i].id), 'selected_msg'); // one by one to remove 
    986                         remove_className(Element(main_list[i].id), 'selected_shortcut_msg'); // one by one to remove 
     1003                        remove_className(Element(main_list[i].id), 'selected_msg selected_shortcut_msg'); 
    9871004                } 
    9881005        } 
     
    10061023        else 
    10071024                return (size/gbyte).toFixed(1) + ' GB'; 
     1025} 
     1026 
     1027//valida se a primeira data é menor que a segunda data 
     1028function validate_date_order(dateStart, dateEnd){ 
     1029        if ( parseInt( dateEnd.split( "/" )[2].toString() + dateEnd.split( "/" )[1].toString() + dateEnd.split( "/" )[0].toString() ) >= parseInt( dateStart.split( "/" )[2].toString() + dateStart.split( "/" )[1].toString() + dateStart.split( "/" )[0].toString() ) ){ 
     1030                return true; 
     1031        }else{ 
     1032                return false; 
     1033        } 
    10081034} 
    10091035 
  • trunk/expressoMail1_2/js/connector.js

    r4760 r5134  
    428428        } 
    429429        // Cancel Request Connector 
    430         cConnector.prototype.cancelRequest = function (){ 
    431  
    432                 if (!this.requests[this.tid]){ 
     430        cConnector.prototype.cancelRequest = function (id){ 
     431 
     432                id = id || this.tid; 
     433 
     434                if (!this.requests[id]){ 
    433435                        return false; 
    434436                } 
    435437                //this.oxmlhttp.onreadystatechange = null; 
    436                 this.requests[this.tid].abort(); 
    437                 delete this.requests[this.tid]; 
    438                 this.requests[this.tid] = null; 
     438                this.requests[id].abort(); 
     439                delete this.requests[id]; 
     440                this.requests[id] = null; 
    439441                 
    440442                this.hideProgressBar(); 
  • trunk/expressoMail1_2/js/doiMenuData.js

    r3388 r5134  
    1818                if(preferences.use_local_messages==1) { 
    1919                        if(expresso_local_messages.is_offline_installed()) { 
    20                                 itens.push("force_check_queue()|" + get_lang("Send from queue") + "|queue.jpg"); 
     20                                itens.push("force_check_queue()|" + get_lang("Send from queue") + "|queue.png"); 
    2121                        } 
    2222                } 
  • trunk/expressoMail1_2/js/drag_area.js

    r4845 r5134  
    6363         
    6464                if(_button == 2 || _button == 3) { 
    65                         var _checkb = Element("check_box_message_" + msg_number + getTabSufix()); 
     65                        var _checkb = Element("check_box_message_"+ msg_number); 
     66 
     67                        var _checkb = Element(getTabPrefix() + "check_box_message_" + msg_number); 
    6668 
    6769                        if(_checkb) { 
     
    9698 
    9799        var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r',''); 
    98         var _checkbox_element = Element("check_box_message_"+msg_number+getTabSufix()); 
     100        var _checkbox_element = Element(getTabPrefix()+"check_box_message_"+msg_number); 
    99101        if(_dragArea.from_list) { 
    100102 
     
    166168        else if(_dragArea.msg_number && _target.type != 'checkbox') { 
    167169                _dragArea.mouseMoveDrag(e); 
     170        } 
    168171        if (is_ie)  
    169172                window.event.returnValue = false;  
    170173        else  
    171174                e.returnValue = false;  
    172         }  
    173175}; 
    174176 
     
    178180        var     _target = is_ie ? _event.srcElement : _event.target; 
    179181        var _button = is_ie ? _event.button : _event.which; 
     182        var _tab_prefix = getTabPrefix(); 
    180183        var _msg_id; 
    181184 
     
    192195                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                     
    193196                                        _msg_id = getMessageIdFromRowId(id_messages_to_drag[i]); 
    194                                         Element("check_box_message_"+id_messages_to_drag[i]).checked = false; 
     197                                        Element(_tab_prefix+"check_box_message_"+_msg_id).checked = false; 
    195198                                        changeBgColor(_event ,_msg_id); 
    196199                                } 
     
    244247                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                             
    245248                                        _msg_id = getMessageIdFromRowId(id_messages_to_drag[i]); 
    246                                         Element("check_box_message_"+id_messages_to_drag[i]).checked = false; 
     249                                        Element(_tab_prefix+"check_box_message_"+_msg_id).checked = true; 
    247250                                        changeBgColor(_event ,_msg_id); 
    248251                                } 
  • trunk/expressoMail1_2/js/draw_api.js

    r5083 r5134  
    5151                                        else if (data[i].folder_unseen <= 0) 
    5252                                        { 
     53                                                if(tree_folders.getNodeById(data[i].folder_id)){ 
    5354                                                tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name)}); 
    5455                                                tree_folders.getNodeById(data[i].folder_id)._refresh(); 
     56                                        } 
    5557                                        } 
    5658 
     
    152154                 */ 
    153155                if (preferences.use_local_messages==1 || expresso_offline) { 
    154                         if (!window.google || !google.gears) { 
    155                                 if (!expresso_local_messages.installGears()) 
    156                                         preferences.use_local_messages=0; 
    157                         } 
    158                         else{ 
    159                                 if (!window.google || !google.gears) { 
    160                                 temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?")); 
    161                                 if (temp) { 
    162                                        //if(is_win && is_gecko && preferences.gears_firefox_windows != "") 
    163                                         //    location.href = preferences.gears_firefox_windows; 
    164                                        //else if(!is_win && is_gecko && preferences.gears_firefox_linux != "") 
    165                                          //  location.href = preferences.gears_firefox_linux; 
    166                                        //else if(is_ie && preferences.gears_ie != "") 
    167                                            //location.href = preferences.gears_ie; 
    168                                        //else 
    169                                                         expresso_local_messages.installGears(); 
    170                                 } 
    171                                 else { 
    172                                         preferences.use_local_messages=0; 
    173                                 } 
    174                         } 
     156                            //verifica se gears esta installado ou o offline 
     157                        if( (!window.google || !google.gears) && 
     158                             !expresso_local_messages.installGears() ){ 
     159                                preferences.use_local_messages = 0; 
     160                        } 
     161                        else if( !expresso_local_messages.is_offline_installed() ) 
     162                                preferences.use_local_messages = 0; 
    175163                        else{ 
    176164                                if (expresso_offline) 
     
    210198                                } 
    211199                        } 
    212                 } 
    213200 
    214201                tree_folders.draw(Element('content_folders')); 
    215202                if (!expresso_offline) { 
    216                         //n_root.changeState(); 
    217                         //tree_folders.getNodeById('INBOX')._select(); 
     203                        n_root.changeState(); 
     204                        tree_folders.getNodeById('INBOX')._select(); 
    218205                } 
    219206                else { 
     
    260247 
    261248                draw_paging(Element('tot_m').innerHTML); 
    262                 if(document.getElementById("nINBOX/"+trashfolder+"tree_folders")) 
     249                if(document.getElementById("nINBOX"+cyrus_delimiter+trashfolder+"tree_folders")) 
    263250                { 
    264251                        var trash = document.createElement("SPAN"); 
     
    271258                        trash.onmouseover = function() {trash.style.color="red";}; 
    272259                        trash.onmouseout= function() {trash.style.color="#666666";}; 
    273                         document.getElementById("nINBOX/"+trashfolder+"tree_folders").appendChild(trash); 
    274                 } 
    275                 if(document.getElementById("nINBOX/"+spamfolder+"tree_folders")) 
     260                        document.getElementById("nINBOX"+cyrus_delimiter+trashfolder+"tree_folders").appendChild(trash); 
     261                } 
     262                if(document.getElementById("nINBOX"+cyrus_delimiter+spamfolder+"tree_folders")) 
    276263                { 
    277264                                                var spam = document.createElement("SPAN"); 
     
    285272                                                spam.onmouseover = function() {spam.style.color="red";}; 
    286273                                                spam.onmouseout= function() {spam.style.color="#666666";}; 
    287                                                 document.getElementById("nINBOX/"+spamfolder+"tree_folders").appendChild(spam); 
     274                                                document.getElementById("nINBOX"+cyrus_delimiter+spamfolder+"tree_folders").appendChild(spam); 
    288275                           } 
    289276 
     
    540527        if(current_page != 1) { 
    541528                lnk_page = document.createElement("A"); 
    542                 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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     529                //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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     530                lnk_page.setAttribute("href", "javascript:current_page=1; 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){alternate_border(0); draw_box(data, get_current_folder());});"); 
    543531        } 
    544532        else { 
     
    579567                        msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 
    580568                        msg_range_end = (i*preferences.max_email_per_page); 
    581                         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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     569                        //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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     570                        lnk_page.setAttribute("href", "javascript:current_page="+i+"; 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){alternate_border(0); draw_box(data, get_current_folder());});"); 
    582571                } 
    583572                lnk_page.innerHTML = "&nbsp;...&nbsp;"; 
     
    593582                msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 
    594583                msg_range_end = (total_pages*preferences.max_email_per_page); 
    595                 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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     584                //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){alternate_border(0); draw_box(data, get_current_folder());});"); 
     585                lnk_page.setAttribute("href", "javascript:current_page="+total_pages+"; 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){alternate_border(0); draw_box(data, get_current_folder());});"); 
    596586        } 
    597587        else { 
     
    788778        else 
    789779                hT = getFirstParentOfType(el,"TABLE"); 
    790         return (hT.parentNode.nextSibling.childNodes[0]); 
     780        return (hT.parentNode.nextSibling.childNodes[0].className !== "local-messages-search-warning"? 
     781                hT.parentNode.nextSibling.childNodes[0] : hT.parentNode.nextSibling.childNodes[1]); 
    791782} 
    792783 
     
    969960                document.getElementById("border_table").width = "99.5%"; 
    970961 
     962        numBox = 0; //As pastas sempre estarão na aba 0 
     963         
    971964        openTab.content_id[numBox] = document.getElementById("content_id_"+numBox); 
    972965        openTab.content_id[numBox].innerHTML = ""; 
     
    12461239                tr_element.msg_sample = ""; 
    12471240                //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "") 
    1248                 if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1") 
     1241                if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1" && headers_msgs.msg_sample.body !== "") 
    12491242                { 
    12501243                        if (cssForResizing) //Colunas redimensionaveis - nao trunca 
    1251                                 tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,180) + "..."; //trecho do body que sera exibido com o assunto; 
     1244                                tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,180) + "..."; //trecho do body que sera exibido com o assunto; 
    12521245                        else 
    1253                                 tr_element.msg_sample = headers_msgs.msg_sample.body.substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; 
     1246                                tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; 
    12541247                } 
    12551248 
    12561249                tr_element.tip = ""; 
    1257                 if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1") 
     1250                if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1" && headers_msgs.msg_sample.body !== "") 
    12581251                { 
    1259                         tr_element.tip = headers_msgs.msg_sample.body.substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 
     1252                        tr_element.tip = Base64.decode(headers_msgs.msg_sample.body).substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 
    12601253                } 
    12611254 
     
    12661259                } 
    12671260                else{ 
    1268                         if ((headers_msgs.Flagged == 'F') || headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 ) 
     1261                        if ((headers_msgs.Flagged == 'F') || ( headers_msgs.Importance !== undefined && headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 ) ) 
    12691262                                add_className(tr_element,'flagged_msg'); 
    12701263                } 
     
    13421335                td_element23 = createTDElement(0,4,"td_msg",null,"td_message_important_"+headers_msgs.msg_number); 
    13431336 
    1344                 if (headers_msgs.Flagged == 'F' || (headers_msgs.Importance.toLowerCase().indexOf("high") != -1 )) 
     1337                if ( (headers_msgs.Flagged == 'F') || ( headers_msgs.Importance !== undefined && headers_msgs.Importance.toLowerCase().indexOf("high") != -1 ))  
    13451338                { 
    13461339                        td_element23.innerHTML = "<img src ='templates/"+template+"/images/important.gif' title='"+get_lang('Important')+"'>"; 
     
    13701363 
    13711364                test = true; 
    1372                 if(msg_folder.indexOf(sentfolder) !=-1 ||msg_folder.indexOf(preferences.save_in_folder) !=-1 || msg_folder.replace("local_","INBOX/").indexOf(preferences.save_in_folder) !=-1) 
     1365                if(msg_folder.indexOf(sentfolder) !=-1 ||msg_folder.indexOf(preferences.save_in_folder) !=-1 || msg_folder.replace("local_","INBOX"+cyrus_delimiter).indexOf(preferences.save_in_folder) !=-1) 
    13731366                    test = false; 
    13741367 
    1375                 if(headers_msgs.from.email.toLowerCase() == Element("user_email").value.toLowerCase() && !(preferences.from_to_sent == "1" && test) && !(msg_folder.substr(0,5) == "user/")) 
     1368                if( (headers_msgs.from != undefined) && headers_msgs.from.email.toLowerCase() == Element("user_email").value.toLowerCase() && !(preferences.from_to_sent == "1" && test) && !(msg_folder.substr(0,5) == "user/")) 
    13761369                { 
    13771370                        td_element3.onmouseover = function () {this.title=headers_msgs.to.email;}; 
     
    14021395                                spanSender.onmouseover = function (event) {this.style.textDecoration = "underline";try {InfoContact.begin(this,headers_msgs.from.email)} catch(e){};}; 
    14031396                                spanSender.onmouseout = function (){try {this.style.textDecoration = "none";clearTimeout(InfoContact.timeout);} catch(e){}}; 
     1397                                if ( headers_msgs.from !== undefined ) 
    14041398                                spanSender.innerHTML =  headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email; 
    14051399                                if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){ 
     
    14581452 
    14591453                // old local messages can capture headers_msgs.udate as "hh:mm" or "dd/mm/yyyy" 
    1460                 if (headers_msgs.udate.toString().match(/\d{2}:\d{2}/) || headers_msgs.udate.toString().match(/\d{2}\/\d{2}\/\d{4}/)) 
     1454                if ( (headers_msgs.udate !== undefined) && (headers_msgs.udate.toString().match(/\d{2}:\d{2}/) || headers_msgs.udate.toString().match(/\d{2}\/\d{2}\/\d{4}/)) ) 
    14611455                { 
    14621456                    temp_msg_day = headers_msgs.msg_day.split('/'); 
     
    15621556        document.getElementById("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox ).innerHTML = "<B>"+type_name+"</B><img src ='templates/"+template+"/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>"; 
    15631557} 
    1564  
     1558function verifyOption(name, id){ 
     1559        var str = name + '' + id; 
     1560        if(!Element(str).style.display == ""){ 
     1561                var option_reply_options = document.getElementById('msg_opt_reply_options_'+id); 
     1562                option_reply_options.value = 'show'; 
     1563                option_reply_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1564                Element('tr_other_options_'+id).style.display = 'none'; 
     1565                var option_more_options = document.getElementById('msg_opt_more_options_'+id); 
     1566                option_more_options.value = 'show'; 
     1567                option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1568                Element('tr_other_more_options_'+id).style.display = 'none'; 
     1569                var option_mark_as_options = document.getElementById('msg_opt_mark_options_'+id); 
     1570                option_mark_as_options.value = 'show'; 
     1571                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1572                Element('tr_other_mark_options_'+id).style.display = 'none'; 
     1573        } 
     1574} 
    15651575function draw_message(info_msg, ID){ 
    15661576        var content = document.getElementById('content_id_' + ID); 
     
    15891599                folder = Element(info_msg.msg_number); 
    15901600                 
    1591         if (!folder){ 
    1592                 delete_border(ID); 
    1593                 return; 
    1594                 } 
     1601 
    15951602        if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    15961603                if (folder.nextSibling){ 
    15971604                        var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:info_msg.msg_folder; 
    15981605 
    1599                         if (nextMsgBox == "INBOX/decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas 
     1606                        if (nextMsgBox == "INBOX" + cyrus_delimiter + "decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas 
    16001607                                        nextMsgBox = get_current_folder(); 
    16011608 
     
    16051612                                openTab.type[ID] = 2; 
    16061613                                proxy_mensagens.get_msg(folder.nextSibling.id,nextMsgBox,true,show_msg); 
     1614                                select_msg('null', 'down', true); 
    16071615                        }; 
    16081616                } 
     
    16351643        img_previous_msg.style.cursor = 'pointer'; 
    16361644 
    1637         if (!folder){ 
    1638                         delete_border(ID); 
    1639                 return; 
    1640                 } 
     1645 
    16411646        if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    16421647                if (folder.previousSibling) 
     
    16521657                                openTab.type[ID] = 2; 
    16531658                                proxy_mensagens.get_msg(folder.previousSibling.id,previousMsgBox,true,show_msg); 
     1659                                select_msg('null', 'up', true); 
    16541660                        }; 
    16551661                } 
     
    17301736        } 
    17311737 
     1738        if (info_msg.Flagged == 'F') 
     1739        { 
     1740                td.innerHTML += '&nbsp;<img id="disposition_important_'+ID+'" style="cursor:pointer" alt="'+ get_lang('Important message') + '" title="'+ get_lang('Important message') + '" src="templates/'+template+'/images/important.gif">'; 
     1741        } 
    17321742        // NORMAL MSG 
    17331743        if(info_msg.Draft != 'X') 
     
    17361746        options.width = "30%"; 
    17371747        options.setAttribute("noWrap","true"); 
     1748                 
     1749                //BEGIN: DESENHA MOSTRA DETALHES, OCULTAR DETALHES 
    17381750        var option_hide_more = document.createElement("SPAN"); 
    17391751        option_hide_more.className = 'message_options'; 
     
    17561768                resizeWindow(); 
    17571769        }; 
    1758         var option_mark = document.createElement('TD'); 
    1759         option_mark.align = "left"; 
    1760         option_mark.width = "50%"; 
    1761         var option_mark_as = '<span>'+get_lang("Mark as")+'</span>: '; 
     1770                //END: DESENHA MOSTRA DETALHES, OCULTAR DETALHES 
     1771                 
     1772                //OPCAO PARA MARCAR COMO 
     1773                var option_mark_as = document.createElement("SPAN"); 
     1774                option_mark_as.innerHTML = "<b>"+get_lang('Mark as')+"</b>"; 
     1775                option_mark_as.className = 'message_options'; 
     1776                option_mark_as.onmouseover=function () {this.className='message_options_active';}; 
     1777                option_mark_as.onmouseout=function () {this.className='message_options'}; 
     1778                option_mark_as.onclick = function(){ 
     1779                        verifyOption('tr_other_mark_options_', ID); 
     1780                        var thi = document.getElementById('msg_opt_mark_options_'+ID); 
     1781                        if (thi.value != 'hide'){ 
     1782                                thi.value = 'hide'; 
     1783                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1784                                Element('tr_other_mark_options_'+ID).style.display = ''; 
     1785 
     1786                        } 
     1787                        else{ 
     1788                                thi.value = 'show'; 
     1789                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1790                                Element('tr_other_mark_options_'+ID).style.display = 'none'; 
     1791                        } 
     1792                }; 
     1793                //DESENHA OPCOES DO MARCAR COMO 
    17621794        var option_mark_as_unseen = document.createElement("SPAN"); 
    1763         option_mark_as_unseen.className = "message_options"; 
     1795                option_mark_as_unseen.className = "reply_options"; 
    17641796        option_mark_as_unseen.onclick = function () {changeLinkState(this,'seen'); 
    17651797                proxy_mensagens.proxy_set_message_flag(folder_id,'unseen'); 
    17661798                write_msg(get_lang('Message marked as ')+get_lang("Unseen")); 
    17671799        }; 
    1768         option_mark_as_unseen.onmouseover=function () {this.className='message_options_active';}; 
    1769         option_mark_as_unseen.onmouseout=function () {this.className='message_options'}; 
     1800                option_mark_as_unseen.onmouseover=function () {this.className='reply_options_active'}; 
     1801                option_mark_as_unseen.onmouseout=function () {this.className='reply_options'}; 
    17701802        option_mark_as_unseen.innerHTML = get_lang("Unseen"); 
    17711803 
    17721804        var option_mark_important = document.createElement("SPAN"); 
    1773         option_mark_important.className = 'message_options'; 
    1774         option_mark_important.style.paddingLeft = "10px"; 
    1775         option_mark_important.onmouseover=function () {this.className='message_options_active';}; 
    1776         option_mark_important.onmouseout=function () {this.className='message_options'}; 
     1805                option_mark_important.className = 'reply_options';               
     1806                option_mark_important.onmouseover=function () {this.className='reply_options_active';}; 
     1807                option_mark_important.onmouseout=function () {this.className='reply_options'}; 
    17771808 
    17781809        if (info_msg.Flagged == "F"){ 
     
    17961827                option_mark_important.innerHTML = get_lang("Important"); 
    17971828        } 
    1798         option_mark.innerHTML = option_mark_as; 
    1799         option_mark.appendChild(option_mark_as_unseen); 
    1800         option_mark.appendChild(option_mark_important); 
     1829                //option_mark.appendChild(option_mark_as_unseen); 
     1830                //option_mark.appendChild(option_mark_important); 
     1831 
     1832                 
    18011833        option_hide_more.innerHTML = get_lang('Show details'); 
     1834                option_hide_more.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'O') : get_lang('Show details'); 
     1835         
     1836                var space3 = document.createElement("SPAN"); 
     1837                space3.innerHTML = '&nbsp;|&nbsp;'; 
     1838                 
     1839                var option_mark_as_options = document.createElement('IMG'); 
     1840                option_mark_as_options.id = 'msg_opt_mark_options_'+ID; 
     1841                option_mark_as_options.src = '../expressoMail1_2/templates/default/images/down.png'; 
     1842                option_mark_as_options.value = 'show'; 
     1843 
     1844                option_mark_as_options.onmouseover = function(){ 
     1845                        option_mark_as_options.src= '../expressoMail1_2/templates/default/images/over.png'; 
     1846                        option_mark_as.className = 'message_options_active'; 
     1847                }; 
     1848                option_mark_as_options.onmouseout = function(){ 
     1849                        option_mark_as.className = 'message_options'; 
     1850                        if (this.value == 'show') 
     1851                        { 
     1852                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1853                        } 
     1854                        else 
     1855                        { 
     1856                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1857                        } 
     1858                }; 
     1859                option_mark_as_options.onclick = function(){ 
     1860                        verifyOption('tr_other_mark_options_', ID); 
     1861                        if (this.value != 'hide'){ 
     1862                                this.value = 'hide'; 
     1863                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1864                                Element('tr_other_mark_options_'+ID).style.display = ''; 
     1865 
     1866                        } 
     1867                        else{ 
     1868                                this.value = 'show'; 
     1869                                option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1870                                Element('tr_other_mark_options_'+ID).style.display = 'none'; 
     1871                        } 
     1872                }; 
     1873                 
    18021874        options.appendChild(option_hide_more); 
     1875                options.appendChild(space3); 
     1876                options.appendChild(option_mark_as_options);                             
     1877                options.appendChild(option_mark_as); 
     1878                //FIM OPCAO PARA MARCAR COMO 
    18031879 
    18041880        var space0 = document.createElement("SPAN"); 
     
    18091885        space2.innerHTML = '&nbsp;|&nbsp;'; 
    18101886 
    1811         var option_forward = document.createElement("SPAN"); 
    1812         option_forward.id = 'msg_opt_forward_'+ID; 
    1813         option_forward.className = 'message_options'; 
    1814         option_forward.onclick = function(){new_message('forward', ID);}; 
    1815         option_forward.onmouseover=function () {this.className='message_options_active';}; 
    1816         option_forward.onmouseout=function () {this.className='message_options'}; 
    1817         option_forward.innerHTML = get_lang('Forward'); 
     1887                //OPCAO PARA MAIS ACOES 
     1888                var option_more = document.createElement("SPAN"); 
     1889                option_more.id = 'msg_opt_more_actions_'+ID; 
     1890                option_more.className = 'message_options'; 
     1891                //option_more.onclick = function(){new_message('forward', ID);}; 
     1892                option_more.onmouseover=function () {this.className='message_options_active';}; 
     1893        option_more.onmouseout=function () {this.className='message_options'}; 
     1894                option_more.onclick = function(){ 
     1895                        verifyOption('tr_other_more_options_', ID); 
     1896                        if (option_more_options.value != 'hide'){ 
     1897                                option_more_options.value = 'hide'; 
     1898                                option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1899                                Element('tr_other_more_options_'+ID).style.display = ''; 
     1900 
     1901                        } 
     1902                        else{ 
     1903                                option_more_options.value = 'show'; 
     1904                                option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1905                                Element('tr_other_more_options_'+ID).style.display = 'none'; 
     1906                        } 
     1907                }; 
     1908                option_more.innerHTML = get_lang('More Actions'); 
     1909                 
     1910                //CRIA IMG DE MAIS ACOES 
     1911                var option_more_options = document.createElement('IMG'); 
     1912                option_more_options.id = 'msg_opt_more_options_'+ID; 
     1913                option_more_options.src = '../expressoMail1_2/templates/default/images/down.png'; 
     1914                option_more_options.value = 'show'; 
     1915 
     1916                option_more_options.onmouseover = function(){ 
     1917                        option_more.className = 'message_options_active'; 
     1918                        option_more_options.src= '../expressoMail1_2/templates/default/images/over.png'; 
     1919                }; 
     1920                option_more_options.onmouseout = function(){ 
     1921                        option_more.className = 'message_options'; 
     1922                        if (this.value == 'show') 
     1923                        { 
     1924                                option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1925                        } 
     1926                        else 
     1927                        { 
     1928                                option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1929                        } 
     1930                }; 
     1931                option_more_options.onclick = function(){ 
     1932                        verifyOption('tr_other_more_options_',ID); 
     1933                         
     1934                        if (this.value != 'hide'){ 
     1935                                this.value = 'hide'; 
     1936                                option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
     1937                                Element('tr_other_more_options_'+ID).style.display = ''; 
     1938 
     1939                        } 
     1940                        else{ 
     1941                                this.value = 'show'; 
     1942                                option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
     1943                                Element('tr_other_more_options_'+ID).style.display = 'none'; 
     1944                        } 
     1945                }; 
    18181946        options.appendChild(space1); 
    1819         options.appendChild(option_forward); 
     1947                options.appendChild(option_more_options); 
     1948                options.appendChild(option_more); 
     1949                //FIM OPCAO PARA MAIS ACOES 
     1950                 
     1951                //OPCAO PARA RESPONDER 
    18201952        var option_reply = document.createElement("SPAN"); 
    18211953        option_reply.id = 'msg_opt_reply_'+ID; 
     
    18251957        option_reply.onmouseover=function () {this.className='message_options_active';}; 
    18261958        option_reply.onmouseout=function () {this.className='message_options'}; 
     1959                option_reply.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'R') : get_lang('Reply'); 
    18271960 
    18281961        options.appendChild(space2); 
     
    18471980        }; 
    18481981        option_reply_options.onclick = function(){ 
     1982                        verifyOption('tr_other_options_', ID); 
    18491983                if (this.value != 'hide'){ 
    18501984                        this.value = 'hide'; 
     
    18611995        options.appendChild(option_reply_options); 
    18621996        options.appendChild(option_reply); 
     1997                //FIM OPCAO PARA RESPONDER 
     1998                 
     1999                //OPCAO PARA ENCAMINHAR 
     2000                var option_forward = document.createElement("SPAN"); 
     2001                option_forward.id = 'msg_opt_forward_'+ID; 
     2002                option_forward.className = 'message_options'; 
     2003                option_forward.innerHTML = get_lang('Forward'); 
     2004                option_forward.onclick = function(){new_message('forward', ID);}; 
     2005                option_forward.onmouseover=function () {this.className='message_options_active';}; 
     2006        option_forward.onmouseout=function () {this.className='message_options'}; 
     2007                option_forward.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'E') : get_lang('Forward'); 
     2008                 
     2009                var space9 = document.createElement("SPAN"); 
     2010                space9.innerHTML = '&nbsp;|&nbsp;'; 
     2011                 
     2012                options.appendChild(space9); 
     2013                options.appendChild(option_forward); 
     2014                //FIM DA OPCAO PARA ENCAMINHAR 
     2015                 
     2016                //OPCAO PARA DELETAR 
     2017                var option_delete = document.createElement("SPAN"); 
     2018                option_delete.id = 'msg_opt_delete_'+ID; 
     2019                option_delete.className = 'message_options'; 
     2020                option_delete.onclick = function(){proxy_mensagens.delete_msgs('null','selected','null');}; 
     2021                option_delete.innerHTML = get_lang('Delete'); 
     2022                option_delete.onmouseover=function () {this.className='message_options_active';}; 
     2023                option_delete.onmouseout=function () {this.className='message_options'}; 
     2024                option_delete.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'Delete') : get_lang('Delete'); 
     2025 
     2026                var space6 = document.createElement("SPAN"); 
     2027                space6.innerHTML = '&nbsp;|&nbsp;'; 
     2028                 
     2029                options.appendChild(space6); 
     2030                options.appendChild(option_delete); 
     2031                //FIM OPCAO PARA DELETAR 
    18632032 
    18642033        tr.appendChild(td); 
    1865         tr.appendChild(option_mark); 
     2034                //tr.appendChild(option_mark); 
    18662035        tr.appendChild(options); 
    18672036        tr.appendChild(next_previous_msg_td); 
     
    18702039        ////////// OTHER OPTIONS //////////////////// 
    18712040        var tr_other_options = document.createElement("TR"); 
     2041                var tr_other_mark_options = document.createElement("TR"); 
     2042                var tr_other_more_options = document.createElement("TR"); 
     2043                 
     2044                tr_other_mark_options.id = 'tr_other_mark_options_' + ID; 
     2045                tr_other_mark_options.style.display = 'none'; 
     2046                tr_other_mark_options.style.backgroundColor = '#205C8E'; 
    18722047        tr_other_options.id = 'tr_other_options_' + ID; 
    18732048        tr_other_options.style.display = 'none'; 
     2049                tr_other_options.style.backgroundColor = '#205C8E'; 
     2050                tr_other_more_options.id = 'tr_other_more_options_' + ID; 
     2051                tr_other_more_options.style.display = 'none'; 
     2052                tr_other_more_options.style.backgroundColor = '#205C8E';                 
    18742053 
    18752054        var td_other_options = document.createElement("TD"); 
     2055                var td_other_mark_options = document.createElement("TD"); 
     2056                var td_other_more_options = document.createElement("TD"); 
     2057                 
    18762058        td_other_options.colSpan = '3'; 
     2059                td_other_mark_options.colSpan = '3'; 
     2060                td_other_more_options.colSpan = '3'; 
     2061 
    18772062        var div_other_options = document.createElement("DIV"); 
    1878  
    1879         var option_mark_as_unseen = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, '; 
    1880         var option_mark_as_important                    = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, '; 
    1881         var option_mark_as_normal                               = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span> | '; 
    1882  
    1883         var option_move = '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","move_to");>'+get_lang("Move")+'</span> | '; 
    1884         var option_reply_to_all = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_with_history","'+ID+'");>'+get_lang("Reply to all")+'</span> | '; 
     2063                var div_other_mark_options = document.createElement("DIV"); 
     2064                var div_other_more_options = document.createElement("DIV"); 
     2065 
     2066                //var option_mark_as_unseen = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, '; 
     2067                //var option_mark_as_important                  = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, '; 
     2068                //var option_mark_as_normal                             = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span> | '; 
     2069                var block_user = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick ="filter.new_rule(\''+info_msg.from.email+'\');">'+get_lang("Block Sender")+'</span> | ';      
     2070                //var option_forward = '<span onclick="new_message(\'forward\',\''+ ID+'\');" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Forward")+'</span> | '; 
     2071                var option_move = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=wfolders.makeWindow("'+ID+'","move_to");>'+get_lang("Move")+'</span> | '; 
     2072                var option_print = '<span onclick="print_all()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Print")+'</span> | '; 
     2073                var option_export = '<span onclick="proxy_mensagens.export_all_messages()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Export")+'</span> | '; 
     2074 
     2075                option_reply_to_all__title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'T') : ''; 
     2076                var option_reply_to_all = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="new_message(\'reply_to_all_with_history\',\''+ID+'\');" title="'+option_reply_to_all__title+'">'+get_lang("Reply to all")+'</span> | '; 
    18852077        var option_reply_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_without_history","'+ID+'");>'+get_lang("Reply without history")+'</span> | '; 
    1886         var option_reply_to_all_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_without_history","'+ID+'");>'+get_lang("Reply to all without history")+'</span>'; 
    1887  
    1888         div_other_options.innerHTML = option_reply_to_all + option_reply_without_history + option_reply_to_all_without_history; 
     2078                var option_reply_to_all_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_without_history","'+ID+'");>'+get_lang("Reply to all without history")+'</span>  | '; 
     2079 
     2080                var report_error        = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=reports_window("'+currentTab+'");>'+get_lang("Report error")+'</span> | ';  
     2081 
     2082                div_other_more_options.innerHTML += option_move + option_print + option_export + block_user + report_error; 
     2083                 
     2084                div_other_options.innerHTML += option_reply_without_history + option_reply_to_all_without_history + option_reply_to_all; 
    18892085        if (use_spam_filter) { 
    1890                 if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam') 
    1891                         div_other_options.innerHTML += ' | <span class="message_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\')";>'+get_lang("Not Spam")+'</span>'; 
    1892                 else 
    1893                         div_other_options.innerHTML += ' | <span class="message_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\')";>'+get_lang("Mark as Spam")+'</span>'; 
    1894         } 
     2086                        if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam' || (info_msg.msg_folder.match(/^user/) && info_msg.msg_folder.match(/Spam$/))){ 
     2087                                div_other_mark_options.innerHTML += '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\');">'+get_lang("Not Spam")+'</span> | '; 
     2088        } 
     2089                        else{ 
     2090                                div_other_mark_options.innerHTML += '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\');">'+get_lang("Is Spam")+'</span> | '; 
     2091                        } 
     2092                } 
     2093                var space5 = document.createElement("SPAN"); 
     2094                space5.innerHTML = '&nbsp;|&nbsp;'; 
    18952095         
    1896         var report_error        = ' | <span onmouseover="this.className=\'message_options_active\'" onmouseout="this.className=\'message_options\'" class="message_options" onclick=reports_window("'+currentTab+'");>'+get_lang("Report error")+'</span> |';  
    1897                           
    1898         div_other_options.innerHTML += report_error; 
     2096                div_other_mark_options.appendChild(option_mark_as_unseen); 
     2097                var space4 = document.createElement("SPAN"); 
     2098                space4.innerHTML = '&nbsp;|&nbsp;'; 
     2099                div_other_mark_options.appendChild(space4); 
     2100                div_other_mark_options.appendChild(option_mark_important);  
     2101                var space7 = document.createElement("SPAN"); 
     2102                space7.innerHTML = '&nbsp;|&nbsp;'; 
     2103                div_other_mark_options.appendChild(space7); 
    18992104         
    19002105        td_other_options.align = 'right'; 
     
    19022107        td_other_options.appendChild(div_other_options); 
    19032108 
     2109                td_other_mark_options.align = 'right'; 
     2110                td_other_mark_options.style.paddingTop = '3px'; 
     2111                td_other_mark_options.appendChild(div_other_mark_options); 
     2112                 
     2113                td_other_more_options.align = 'right'; 
     2114                td_other_more_options.style.paddingTop = '3px'; 
     2115                td_other_more_options.appendChild(div_other_more_options); 
     2116 
    19042117 
    19052118        tr_other_options.appendChild(td_other_options); 
    19062119        tbody_message_options.appendChild(tr_other_options); 
     2120                 
     2121                tr_other_more_options.appendChild(td_other_more_options); 
     2122                tbody_message_options.appendChild(tr_other_more_options); 
     2123                 
     2124                tr_other_mark_options.appendChild(td_other_mark_options); 
     2125                tbody_message_options.appendChild(tr_other_mark_options); 
    19072126        ////////// END OTHER OPTIONS //////////////// 
    19082127 
     
    19392158                         td_signature.innerHTML += '<span style=color:red><strong>'+get_lang(info_msg.signature[i].substring(0,info_msg.signature[i].indexOf("#@#")))+'</strong> '+info_msg.signature[i].substring(info_msg.signature[i].indexOf("#@#")+3)+'</span> <br /> '; 
    19402159                        } 
    1941                     else 
    1942                         { 
    19432160                            if(info_msg.signature[i].indexOf("###") > -1) 
    19442161                                { 
    19452162                                    td_signature.innerHTML += '<span><strong>'+get_lang(info_msg.signature[i].substring(0,info_msg.signature[i].indexOf("###")))+'</strong> '+info_msg.signature[i].substring(info_msg.signature[i].indexOf("###")+3)+'</span> <br /> '; 
    19462163                                } 
    1947                             else 
    1948                                 { 
    1949                                     td_signature.innerHTML += '<span><strong>'+get_lang(info_msg.signature[i])+'</strong></span> <br /> '; 
    1950                                 } 
    1951                         } 
    19522164                } 
    19532165            var signature_status_pos = info_msg.signature[0].indexOf('Message untouched'); 
     
    20512263        table_message_others_options.width = "100%"; 
    20522264        table_message_others_options.style.display = 'none'; 
    2053         table_message_others_options.className = "table_message"; 
     2265        if(navigator.appName.indexOf('Internet Explorer')>0){ 
     2266                table_message_others_options.className = "table_message_options_ie"; 
     2267        }else{ 
     2268                table_message_others_options.className = "table_message_options"; 
     2269        } 
     2270         
    20542271        var tbody_message_others_options = document.createElement("TBODY"); 
    20552272        var tr1 = document.createElement("TR"); 
     
    21292346        tr2.className = "tr_message_header"; 
    21302347        var td2 = document.createElement("TD"); 
     2348        td2.width = "7%"; 
    21312349        td2.innerHTML = get_lang("To: "); 
    21322350        var to = document.createElement("TD"); 
     
    22932511        if ( info_msg.attachments && info_msg.attachments.length > 0 ) 
    22942512        { 
    2295                 var div_attach = document.createElement("DIV"); 
    2296                 div_attach.setAttribute("class", "expressomail-attachments"); 
    2297                 div_attach.setAttribute("className", "expressomail-attachments"); //for IE 
    2298  
    2299                 var div_attach_lbl = document.createElement("span"); 
    2300                 div_attach_lbl.setAttribute("class", "expressomail-attachments-label"); 
    2301                 div_attach_lbl.setAttribute("className", "expressomail-attachments-label"); //for IE 
    2302                 div_attach_lbl.innerHTML = get_lang("Attachments: "); 
     2513                //Código no padrão expresso 2.2 
     2514        var tr6 = document.createElement("TR"); 
     2515                tr6.className = "tr_message_header"; 
     2516                var td6 = document.createElement("TD"); 
     2517                td6.innerHTML = get_lang("Attachments: "); 
    23032518                 
    2304                 var div_attach_list = document.createElement("UL"); 
    2305                 div_attach_list.setAttribute("id", "attachments_" + ID); 
    2306                 div_attach_list.setAttribute("class", "expressomail-attachments-list"); 
    2307                 div_attach_list.setAttribute("className", "expressomail-attachments-list"); //for IE 
    23082519                 
     2520                var attachments = document.createElement("TD"); 
     2521                td6.valign = "top"; 
     2522                attachments.align = 'left'; 
     2523                if(info_msg.attachments.length >= 1){ 
    23092524                        if(info_msg.attachments.length > 1) { 
    2310                         var li_link_attachment = document.createElement("LI"); 
    23112525                                var link_attachment      = document.createElement("A"); 
    2312                         link_attachment.setAttribute("class", "expressomail-attachments-link"); 
    2313                         link_attachment.setAttribute("className", "expressomail-attachments-link"); //for IE 
    2314          
    23152526                                 if(proxy_mensagens.is_local_folder(current_folder)) 
    23162527                                        link_attachment.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
     
    23182529                                        link_attachment.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    23192530                                link_attachment.innerHTML = " "+info_msg.attachments.length+' '+get_lang('files')+' :: '+get_lang('Download all atachments'); 
    2320                         li_link_attachment.appendChild(link_attachment); 
    2321                         div_attach_list.appendChild(li_link_attachment); 
    2322                         } 
    2323                  
     2531                    attachments.appendChild(link_attachment); 
     2532                        } 
    23242533                        if(parseInt(preferences.remove_attachments_function)) 
    23252534                        { 
    2326                         var li_link_attachment = document.createElement("LI"); 
    2327                         var link_attachment     = document.createElement("A"); 
    2328                         link_attachment.setAttribute("class", "expressomail-attachments-link"); 
    2329                         link_attachment.setAttribute("className", "expressomail-attachments-link"); //for IE 
    2330                         link_attachment.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    2331                         link_attachment.innerHTML = get_lang('remove all attachments'); 
    2332  
    2333                         li_link_attachment.appendChild(link_attachment); 
    2334                         div_attach_list.appendChild(li_link_attachment); 
    2335                         } 
    2336  
     2535                    attachments.appendChild(document.createTextNode('  ')); 
     2536                    var del_attachments = document.createElement("A"); 
     2537                    del_attachments.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
     2538                    del_attachments.innerHTML = get_lang('remove all attachments'); 
     2539                    attachments.appendChild(del_attachments); 
     2540                        } 
     2541                attachments.appendChild(document.createElement('BR')); 
     2542        } 
     2543                attachments.id = "attachments_" + ID; 
    23372544                for (var i=0; i<info_msg.attachments.length; i++) 
    23382545                { 
    2339                         var li_link_attachment = document.createElement("LI"); 
    2340                         var link_attachment = document.createElement("A"); 
     2546                        var link_attachment = document.createElement("a"); 
    23412547                        link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 
    23422548                        link_attachment.innerHTML = url_decode(info_msg.attachments[i].name) + " ("+borkb(info_msg.attachments[i].fsize)+")"; 
    2343                         link_attachment.setAttribute("name", url_decode(info_msg.attachments[i].name)); 
     2549                        //link_attachment.innerHTML += " ("+borkb(info_msg.attachments[i].fsize)+")"; 
    23442550 
    23452551                        //k trocar por match??? 
     
    23572563                        } 
    23582564 
    2359                         li_link_attachment.appendChild(link_attachment); 
    2360                         div_attach_list.appendChild(li_link_attachment); 
    2361                 } 
    2362                 div_attach.appendChild(div_attach_lbl); 
    2363                 div_attach.appendChild(div_attach_list); 
     2565                        if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 
     2566                        { 
     2567                                //Link para importar calendário 
     2568                                var link_open_msg = new Image(); 
     2569                                link_open_msg.src = "templates/"+template+"/images/email.png"; 
     2570                                //link_open_msg.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"'); return false;"); 
     2571                                link_open_msg.setAttribute("onclick","javascript:open_msg_part('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"'); return false;"); 
     2572                                link_open_msg.title = get_lang("Open message"); 
     2573                                link_open_msg.align = "top"; 
     2574                                link_open_msg.style.marginLeft = "5px"; 
     2575                                link_open_msg.style.cursor = "pointer"; 
     2576                                link_attachment.appendChild(link_open_msg); 
     2577                } 
    23642578                 
    2365                 var tr6 = document.createElement("TR"); 
    2366                 tr6.className = "tr_message_header"; 
    2367                 var td6 = document.createElement("TD"); 
    2368                 td6.setAttribute("colspan", "2"); 
    2369                 td6.vAlign = "top"; 
    2370                 td6.appendChild(div_attach); 
     2579            link_attachment.innerHTML += '<br/>'; 
     2580            attachments.appendChild(link_attachment); 
     2581            } 
    23712582                tr6.appendChild(td6); 
     2583            tr6.appendChild(attachments); 
    23722584                tbody_message_others_options.appendChild(tr6); 
    23732585        } 
     2586 
    23742587        //k!! 
    23752588        var div = document.createElement("DIV"); 
    23762589        div.id = "div_message_scroll_"+ID; 
    2377         div.setAttribute('class', 'div_message_scroll'); 
    2378         div.setAttribute('className', 'div_message_scroll'); //for IE 
     2590        div.style.background = 'WHITE'; 
     2591        div.style.overflow = "auto"; 
    23792592        table_message_others_options.appendChild(tbody_message_others_options); 
    23802593        var tr = document.createElement("TR"); 
     2594                tr.className = "tr_message_header"; 
    23812595        var td = document.createElement("TD"); 
    2382         td.colSpan = '2'; 
     2596                td.colspan = '2'; 
    23832597        td.style.fontSize = '10pt';  
    23842598        td.style.fontFamily = 'Arial,Verdana';  
     
    24012615                                for (var i = 0; i < domains.length; i++) 
    24022616                                { 
    2403                                         if (imgTag[j].match(/cid:([\w\d]){5,}/) || imgTag[j].match(/src=\"\.\/inc\/show_embedded_attach\.php/g)) 
     2617                                        if (imgTag[j].match(/cid:([\w\d]){5,}/) || imgTag[j].match(/src=\"\.\/inc\/get_archive\.php/g))  
    24042618                                        { 
    24052619                                                forbidden = false; 
     
    24122626                                if (forbidden) 
    24132627                                { 
    2414                                         newBody = newBody.replace(imgTag[j],"<img src='templates/"+template+"/images/forbidden.jpg'>"); 
     2628                                        newBody = newBody.replace(imgTag[j],"<img src='templates/"+template+"/images/forbidden.png'>"); 
    24152629                                        blocked=true; 
    24162630                                } 
     
    24412655        newBody = newBody.replace("<body","<span"); 
    24422656        newBody = newBody.replace("<BODY","<span"); 
    2443         //while ( ( /<span[^>]*><span[^>]*>/ig ).test( newBody ) ) 
    2444         //       newBody = newBody.replace( /(<span[^>]*>)<span[^>]*>/ig, '$1' ); 
     2657        while ( ( /<span[^>]*><span[^>]*>/ig ).test( newBody ) ) 
     2658                newBody = newBody.replace( /(<span[^>]*>)<span[^>]*>/ig, '$1' ); 
    24452659 
    24462660        var _body = document.createElement( 'div' ); 
    24472661        _body.id = 'body_' + ID; 
    24482662        _body.innerHTML = newBody; 
    2449         _body.style.fontSize = '16px'; 
     2663        //_body.style.fontSize = '16px'; 
    24502664 
    24512665        var _elements = _body.getElementsByTagName( '*' ); 
     
    24872701         
    24882702        if ((info_msg.thumbs)&&(info_msg.thumbs.length > 0)){ 
    2489                 var div_thumbs = document.createElement("DIV"); 
     2703                var thumbs = jQuery.parseJSON(info_msg.thumbs); 
     2704                var div_thumbs = document.createElement("div"); 
     2705                 
    24902706                div_thumbs.setAttribute("class", "expressomail-thumbs"); 
    24912707                div_thumbs.setAttribute("className", "expressomail-thumbs"); //for IE 
     
    25262742                ul_thumbs_list.setAttribute("className", "expressomail-thumbs-list"); //for IE 
    25272743 
    2528                 for (var i=0; i<info_msg.thumbs.length; i++){ 
    2529                         var li = document.createElement("LI"); 
    2530                         li.innerHTML += info_msg.thumbs[i]; 
    2531                         ul_thumbs_list.appendChild(li); 
    2532                 } 
     2744                        var msg = info_msg.msg_number;  
     2745                        var fdr = info_msg.msg_folder;  
     2746                                        var i = 0; 
     2747                                //verifica se está no novo padrão de montagem das mensagens ou no antigo, necessário 
     2748                                //para exibir as imagens no arquivamento local arquivamento local. 
     2749                                if(thumbs){ 
     2750                        jQuery.each(thumbs, function(i, thumb) { 
     2751                                                        if(fdr.indexOf("local_") >= 0){ 
     2752                                                                var href = info_msg.array_attach[i].url + '&image=true';  
     2753                                                                var src  = info_msg.array_attach[i].url+ '&image=thumbnail';  
     2754                                                                i++; 
     2755                                                        }else{ 
     2756                                                                var href = './inc/get_archive.php?msgFolder=' + fdr + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=true';  
     2757                                                                //var href = thumb.url;  
     2758                                                                var src  = 'inc/get_archive.php?msgFolder=' + fdr + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=thumbnail';  
     2759                                } 
     2760                                var msgid= fdr+";;"+msg+";;"+i+";;"+thumb.pid+";;"+thumb.encoding;  
     2761                                var image_info = '{"folder":"'+fdr+'","message":"'+msg+'","thumbIndex":"'+i+'","pid":"'+thumb.pid+'","encoding":"'+thumb.encoding+'","type":"'+thumb.type+'"}';  
     2762                                  
     2763                                var image= '<img id="' + msgid + '" title="' +   
     2764                                                                get_lang('Click here do view (+)') + '" src="' + src + '" style="width:auto;height:100%;" />';  
     2765                                                          
     2766                                var content = '<a title="'+thumb.name+ '" rel="thumbs'+ID+'" class="expressomail-thumbs-link" onMouseDown="save_image(event,this,\'' +thumb.type+'\')" href="'+href+'" onclick="window.open(\''+href+'\',\'mywindow\',\'width=700,height=600,scrollbars=yes\');return false;">'+image+'</a>';  
     2767                                content += '<input id="thumb_'+ID+'_'+i+'" type="hidden" value="' +escape(image_info) +'" />';  
     2768                                jQuery(ul_thumbs_list).append('<li>'+content+'</li>');  
     2769                                  
     2770                        });     
    25332771                 
    25342772                div_thumbs.appendChild(div_thumbs_lbl); 
    25352773                div_thumbs.appendChild(div_thumbs_lbl_sp2); 
    25362774                div_thumbs.appendChild(ul_thumbs_list); 
     2775                 
     2776                                }else{ 
     2777                                        div_thumbs.appendChild(div_thumbs_lbl); 
     2778                                        div_thumbs.appendChild(div_thumbs_lbl_sp2); 
     2779                                        div_thumbs.innerHTML = div_thumbs.innerHTML + info_msg.thumbs; 
     2780                                         
     2781                                         
     2782                                } 
    25372783                 
    25382784                div.appendChild(div_thumbs); 
     
    25602806        } 
    25612807 
    2562         //k! 
    25632808        /* 
    25642809         * TODO: implementar o controle como preferência do usuário 
     
    25662811         */ 
    25672812        var jcarousel = false; 
    2568          
    25692813        if (jcarousel) { 
     2814                //carousel  
    25702815                jQuery(document).ready(function() { 
    2571                         jQuery('.expressomail-thumbs-list').attr('id', 'expressomail-thumbs-list'+ID); 
    2572                         jQuery('.expressomail-thumbs-list').addClass('jcarousel-skin-default'); 
    2573                         jQuery('#expressomail-thumbs-list'+ID).jcarousel({ 
    2574                                 // Configuration 
    2575                         }); 
    2576                 }); 
     2816                        jQuery('.expressomail-thumbs-list').attr('id', 'expressomail-thumbs-list'+ID)  
     2817                    .addClass('jcarousel-skin-default').jcarousel();  
     2818 
     2819                        jQuery('.expressomail-thumbs-link img').attr('style', '');  
    25772820                 
    25782821                //fancybox 
    2579                 jQuery(document).ready(function() { 
    25802822                        jQuery(".expressomail-thumbs-list li a").attr('onclick', 'return true;'); 
    25812823                        jQuery(".expressomail-thumbs-list li a").fancybox({ 
    25822824                                'hideOnContentClick': true, 
    2583                                 'type': 'image' 
     2825                                        'type': 'image',  
     2826                                        'titlePosition': 'over',                                          
     2827                                        'titleFormat' : function(name, currentArray, currentIndex, currentOpts) {                         
     2828                                                        var image_info = $('#thumb_'+ID+'_'+currentIndex).val();  
     2829 
     2830                                                        return '<div id="fancybox-title" class="fancybox-title-over" style="width: 100%; display: block;">' +  
     2831                                                                                '<div id="fancybox-title-over">' +  
     2832                                                                                        '<a title="Anterior" onclick="javascript:$.fancybox.prev();" style="float:left;">' +  
     2833                                                                                                        '<img src="./templates/'+template+'/images/left_arrow_white.png" width="30" height="30" />' +  
     2834                                                                                        '</a>'+  
     2835                                                                                        '<a title="Baixar imagem" onclick="javascript:save_image2(\''+image_info+'\');" style="padding:0 5px;">' +  
     2836                                                                                                        '<img src="./templates/'+template+'/images/image_down.png" width="22" height="22" />' +  
     2837                                                                                        '</a>'+  
     2838                                                                                        '<a title="Baixar todas de uma vez" onclick="javascript:download_all_attachments(\''+info_msg.msg_folder+"','"+info_msg.msg_number+'\')" style="padding:0 5px;">'+  
     2839                                                                                                        '<img src="./templates/'+template+'/images/package_down.png" width="26" height="26" />' +  
     2840                                                                                        '</a>'+  
     2841                                                                                        '<span style="margin-left:5px; margin-top:7px; position:absolute;">'+name+'</span>'+  
     2842                                                                                        '<a title="Próxima" onclick="javascript:$.fancybox.next();" style="float:right;">' +  
     2843                                                                                                '<img src="./templates/'+template+'/images/right_arrow_white.png" width="30" height="30" />' +  
     2844                                                                                        '</a>' +  
     2845                                                                                '</div>' +  
     2846                                                                        '</div>';  
     2847                                        }  
    25842848                        }); 
    25852849                }); 
    2586 } 
    2587         //k!! 
     2850        } 
     2851         
     2852    resizeWindow();  
    25882853} 
    25892854  
     
    26302895function draw_new_message(border_ID){ 
    26312896        connector.loadScript("color_palette"); 
    2632         connector.loadScript("rich_text_editor"); 
    26332897        connector.loadScript('wfolders'); 
    26342898        if(typeof(RichTextEditor) == 'undefined' || typeof(ColorPalette) == 'undefined' || typeof(wfolders) == 'undefined') 
     
    26382902        if (ID == 0) 
    26392903                return 0; 
     2904        else if(ID == 'maximo') 
     2905                return 'maximo'; 
    26402906        hold_session = true; 
    26412907 
     
    26752941 
    26762942        if ((preferences.save_in_folder == '-1') || (preferences.save_in_folder == '')){ 
    2677                 //var option_send = '<span class="message_options" onclick=send_message("'+ID+'","null","null");>'+get_lang("Send")+'</span> | '; 
    2678                 var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send and not file")+'" onclick=send_message("'+ID+'","null","null");>' + ' | '; 
     2943                var option_send = '<span id="send_button_'+ID+'" class="message_options" onclick=send_message("'+ID+'","null","null");>'+get_lang("Send")+'</span> | '; 
     2944                //var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send and not file")+'" onclick=send_message("'+ID+'","null","null");>' + ' | '; 
    26792945                if(!expresso_offline) 
    26802946                        var option_send_and_file= '<span class="message_options" onclick=wfolders.makeWindow("'+ID+'","send_and_file");>'+get_lang("Send and file")+'</span> | '; 
     
    26832949        } 
    26842950        else{ 
    2685                 //var option_send = '<span class="message_options" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">'+get_lang("Send")+'</span> | '; 
    2686                 var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">' + ' | '; 
     2951                var option_send = '<span id="send_button_'+ID+'" class="message_options" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">'+get_lang("Send")+'</span> | '; 
     2952                //var option_send   = '<input type="button" id="send_button_'+ID+'" class="em_button_like_span" tabindex="1" value="'+get_lang("Send")+'" onclick="send_message(\''+ID+'\',\''+preferences.save_in_folder+'\',\'null\');">' + ' | '; 
    26872953                var option_send_and_file=''; 
    26882954                wfolders.alert = true; 
     
    27973063        var img_search = document.createElement("IMG"); 
    27983064        img_search.src = "./templates/"+template+"/images/search.gif"; 
    2799         img_search.onclick = function () {emQuickSearch(document.getElementById('replyto_'+ID).value, 'replyto', ID)} 
     3065        img_search.onclick = function () { 
     3066            emQuickSearch(document.getElementById('replyto_'+ID).value, 'replyto', ID) 
     3067        } 
    28003068        img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.'); 
    28013069        var span_search = document.createElement("SPAN"); 
     
    28873155                img_search.src = "./templates/"+template+"/images/search.gif"; 
    28883156                img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.'); 
    2889                 img_search.onclick = function () {emQuickSearch(document.getElementById('to_'+ID).value, 'to', ID);}; 
     3157                img_search.onclick = function () { 
     3158                    emQuickSearch(document.getElementById('to_'+ID).value, 'to', ID); 
     3159                }; 
    28903160        } 
    28913161        else { 
     
    29743244        var img_search = document.createElement("IMG"); 
    29753245        img_search.src = "./templates/"+template+"/images/search.gif"; 
    2976         img_search.onclick = function () {emQuickSearch(document.getElementById('cc_'+ID).value, 'cc', ID)} 
     3246        img_search.onclick = function () {             
     3247            emQuickSearch(document.getElementById('cc_'+ID).value, 'cc', ID) 
     3248        } 
    29773249        img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.'); 
    29783250        var span_search = document.createElement("SPAN"); 
     
    30623334        img_search.src = "./templates/"+template+"/images/search.gif"; 
    30633335        img_search.title = get_lang('Search') + " | " + get_lang('Use F9 Key as shortcut.'); 
    3064         img_search.onclick = function () {emQuickSearch(document.getElementById('cco_'+ID).value, 'cco', ID);}; 
     3336                            img_search.onclick = function () { 
     3337                                emQuickSearch(document.getElementById('cco_'+ID).value, 'cco', ID); 
     3338                            };  
    30653339        var span_search = document.createElement("SPAN"); 
    30663340        span_search.innerHTML = get_lang('Search'); 
     
    30903364        a_cc_link.setAttribute("href","javascript:void(0)"); 
    30913365        a_cc_link.setAttribute("tabIndex","-1"); 
    3092         a_cc_link.onclick = function () {this.style.display='none';document.getElementById('tr_cc_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cc.focus();return false;} 
     3366        a_cc_link.onclick = function () { 
     3367                this.style.display='none'; 
     3368                document.getElementById('tr_cc_'+ID).style.display=''; 
     3369                if(document.getElementById('space_link_'+ID) !== null) 
     3370                        document.getElementById('space_link_'+ID).style.display='none'; 
     3371                input_cc.focus(); 
     3372                return false;}; 
    30933373        td2_link.appendChild(a_cc_link); 
    3094         var space = document.createElement("span"); 
    3095         space.id ="space_link_"+ID; 
    3096         space.innerHTML="&nbsp;|&nbsp;"; 
    3097         td2_link.appendChild(space); 
    3098         var a_cco_link = document.createElement('A'); 
    3099         a_cco_link.innerHTML = get_lang('Add BCC'); 
    3100         a_cco_link.id = "a_cco_link_"+ID; 
    3101         a_cco_link.setAttribute("href","javascript:void(0)"); 
    3102         a_cco_link.setAttribute("tabIndex","-1"); 
    3103         a_cco_link.onclick = function () {this.style.display='none';document.getElementById('tr_cco_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cco.focus();return false;} 
    3104         td2_link.appendChild(a_cco_link); 
    31053374        var space = document.createElement("span"); 
    31063375         
     
    31153384                            a_cco_link.setAttribute("href","javascript:void(0)");  
    31163385                            a_cco_link.setAttribute("tabIndex","-1");  
    3117                             a_cco_link.onclick = function () {this.style.display='none';document.getElementById('tr_cco_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cco.focus(); return false;}  
     3386            a_cco_link.onclick = function () { 
     3387                this.style.display='none'; 
     3388                document.getElementById('tr_cco_'+ID).style.display=''; 
     3389                if(document.getElementById('space_link_'+ID) !== null) 
     3390                        document.getElementById('space_link_'+ID).style.display='none'; 
     3391                        input_cco.focus(); 
     3392                        return false;};  
    31183393                            td2_link.appendChild(a_cco_link);  
    31193394                        } 
     
    31513426////////////////////////////////////////////////////////////////////////////////////////////////////// 
    31523427        var tr5 = document.createElement("TR"); 
    3153         var td5 = document.createElement("TD"); 
    3154         td5.innerHTML = "&nbsp;"; 
    3155         var td_return_receipt = document.createElement("TD"); 
    3156         td_return_receipt.setAttribute("noWrap","true"); 
    3157         td_return_receipt.innerHTML = get_lang("Return receipt")+":"; 
    3158                 if (is_ie) 
    3159                 { 
    3160                         var input_return_receipt = document.createElement('input name=input_return_receipt'); 
    3161                 } 
    3162                 else 
    3163                 { 
    3164                         var input_return_receipt = document.createElement('input'); 
    3165                         input_return_receipt.name = "input_return_receipt"; 
    3166                 } 
    3167         input_return_receipt.type = "checkbox"; 
    3168         input_return_receipt.className = "checkbox"; 
    3169         input_return_receipt.id = "return_receipt_"+ID; 
    3170  
    3171         if(preferences.return_recipient_deafault != '0'){ 
    3172              if (is_ie){ 
    3173                 input_return_receipt.checked=true; 
    3174              } 
    3175              else{ 
    3176                 input_return_receipt.defaultChecked=true; 
    3177              } 
    3178         } 
    3179  
    3180         input_return_receipt.setAttribute("tabIndex","-1"); 
    3181         td_return_receipt.appendChild(input_return_receipt); 
    3182  
    3183         // Workaround para resolver problema ao enviar e-mails 
    3184         if((preferences.use_assinar_criptografar != '0')) 
    3185         { 
    3186                 if(parseInt(preferences.use_signature_digital_cripto)==1) 
    3187                 { 
    3188                         td_return_receipt.innerHTML +=  "&nbsp;&nbsp;" + get_lang("Digitally sign message?")+""; 
    3189  
    3190                         if (is_ie) 
    3191                         { 
    3192                                 var input_return_digital = document.createElement('input name=input_return_digital'); 
    3193                         } 
    3194                         else 
    3195                         { 
    3196                         var input_return_digital = document.createElement('input'); 
    3197                                 input_return_digital.name = "input_return_digital"; 
    3198                         } 
    3199  
    3200                         input_return_digital.type = "checkbox"; 
    3201                         input_return_digital.className = "checkbox"; 
    3202                         input_return_digital.id = "return_digital_"+ID; 
    3203                         input_return_digital.setAttribute("tabIndex","-1"); 
    3204                         if(parseInt(preferences.use_signature_digital)==1) 
    3205                         { 
    3206                             if (is_ie) 
     3428        var td_content = ''; 
     3429 
     3430        if((preferences.use_assinar_criptografar != '0')) { 
     3431                if(parseInt(preferences.use_signature_digital_cripto)==1) { 
     3432                        var input_return_digital_chk = (parseInt(preferences.use_signature_digital)==1) ? 'checked="checked"' : ''; 
     3433                        var input_return_digital = '<input type="checkbox" class="checkbox" name="input_return_digital" id="return_digital_'+ID+'" tabIndex="-1" '+input_return_digital_chk+' />'; 
     3434                        var label_return_digital = '<label for="return_digital_'+ID+'">'+get_lang("Digitally sign message?")+'</label>'; 
     3435 
     3436                        td_content += input_return_digital + label_return_digital; 
     3437 
     3438                        var input_return_cripto_chk = (parseInt(preferences.use_signature_cripto)==1) ? 'checked="checked"' : ''; 
     3439                        var input_return_cripto = '<input type="checkbox" class="checkbox" name="input_return_cripto" id="return_cripto_'+ID+'" tabIndex="-1" '+input_return_cripto_chk+' />'; 
     3440                        var label_return_cripto = '<label for="return_cripto_'+ID+'">'+get_lang("Digitally crypt message?")+'</label>'; 
     3441 
     3442                        td_content += input_return_cripto + label_return_cripto; 
     3443                            } 
     3444                        } 
     3445 
     3446        var input_return_receipt_chk = (preferences.return_recipient_deafault != '0') ? 'checked="checked"' : ''; 
     3447        var input_return_receipt = '<input type="checkbox" class="checkbox" name="input_return_receipt" id="return_receipt_'+ID+'" tabIndex="-1" '+input_return_receipt_chk+' />'; 
     3448        var label_return_receipt = '<label for="return_receipt_'+ID+'">'+get_lang("Return receipt")+'</label>'; 
     3449 
     3450        td_content += input_return_receipt + label_return_receipt; 
     3451 
     3452        if (parseInt(preferences.use_important_flag)) 
    32073453                            { 
    3208                                 input_return_digital.checked=true; 
    3209                             } 
    3210                             else 
    3211                             { 
    3212                                 input_return_digital.defaultChecked=true; 
    3213                             } 
    3214                         } 
    3215                         td_return_receipt.appendChild(input_return_digital); 
    3216                         td_return_receipt.innerHTML +=  "&nbsp;&nbsp;" + get_lang("Digitally crypt message?")+""; 
    3217  
    3218                         if (is_ie) 
    3219                         { 
    3220                                 var input_return_cripto = document.createElement('input name=input_return_cripto'); 
    3221                         } 
    3222                         else 
    3223                         { 
    3224                         var input_return_cripto = document.createElement('input'); 
    3225                                 input_return_cripto.name = "input_return_cripto"; 
    3226                         } 
    3227  
    3228                         input_return_cripto.type = "checkbox"; 
    3229                         input_return_cripto.className = "checkbox"; 
    3230                         input_return_cripto.id = "return_cripto_"+ID; 
    3231                         input_return_cripto.setAttribute("tabIndex","-1"); 
    3232                         input_return_cripto.defaultChecked=false; 
    3233  
    3234                         if(parseInt(preferences.use_signature_cripto)==1) 
    3235                         { 
    3236                             if (is_ie) 
    3237                             { 
    3238                                 input_return_cripto.checked=true; 
    3239                             } 
    3240                             else 
    3241                             { 
    3242                                 input_return_cripto.defaultChecked=true; 
    3243                             } 
    3244                         } 
    3245  
    3246                         td_return_receipt.appendChild(input_return_cripto); 
    3247                 } 
    3248         } 
    3249         td_return_receipt.innerHTML += ""; 
    3250         tr5.appendChild(td5); 
    3251         tr5.appendChild(td_return_receipt); 
    3252  
    3253         if ( ! expresso_offline ) 
    3254         { 
    3255                 var text_plain = td_return_receipt.appendChild( 
    3256                         document.createElement( 'span' ) 
    3257                 ).appendChild( 
    3258                         document.createTextNode( ' | ' ) 
    3259                 ).parentNode.appendChild( 
    3260                         document.createTextNode( get_lang('Send this mail as text plain') + '.') 
    3261                 ).parentNode.appendChild( 
    3262                         document.createElement( 'input' ) 
    3263                 ); 
    3264                 text_plain.setAttribute( 'tabIndex', '-1' ); 
    3265                 text_plain.id = 'textplain_rt_checkbox_' + ID ; 
    3266                 text_plain.type = "checkbox"; 
    3267                 text_plain.onclick = function () 
    3268                 { 
    3269                 RichTextEditor.setPlain( this.checked, ID ); 
    3270                 }; 
     3454                var input_important = '<input type="checkbox" class="checkbox" id="important_message_'+ID+'" name="input_important_message" tabIndex="-1"/>'; 
     3455                var label_important = '<label for="important_message_'+ID+'">'+get_lang("Important message")+'</label>'; 
     3456                //jQuery(tbody_message).append('<tr><td> </td><td>'+input_important+label_important+'</td</tr>'); 
     3457 
     3458                td_content += input_important + label_important; 
     3459        } 
     3460 
     3461        if (!expresso_offline) { 
     3462                var onclk_text_plain = 'javascript:RichTextEditor.setPlain(this.checked, '+ID+');'; 
     3463                var input_text_plain = '<input type="checkbox" class="checkbox" name="textplain_rt_checkbox" id="textplain_rt_checkbox_'+ID+'" tabIndex="-1" onclick="'+onclk_text_plain+'"/>'; 
     3464                var label_text_plain = '<label for="textplain_rt_checkbox_'+ID+'">'+get_lang('Simple text mode')+'</label>'; 
    32713465                         
    3272         } 
    3273  
     3466                td_content += input_text_plain + label_text_plain; 
     3467        } 
     3468 
     3469        jQuery(tr5).append('<td>&nbsp;</td><td class="message-general-options">'+td_content+'</td>'); 
    32743470         
    32753471        tbody_message.appendChild(tr5); 
    3276         if (parseInt(preferences.use_important_flag)) 
    3277         { 
    3278                 var trn = document.createElement("TR"); 
    3279                 var tdn = document.createElement("TD"); 
    3280                 tdn.innerHTML = "&nbsp;"; 
    3281                 var td_important_msg = document.createElement("TD"); 
    3282                 td_important_msg.setAttribute("noWrap","true"); 
    3283                 td_important_msg.innerHTML = get_lang("Important message")+":"; 
    3284                 var input_important_message = document.createElement('input'); 
    3285                 input_important_message.type = "checkbox"; 
    3286                 input_important_message.className = "checkbox"; 
    3287                 input_important_message.id = "important_message_"+ID; 
    3288                 input_important_message.name = "input_important_message"; 
    3289                 input_important_message.setAttribute("tabIndex","-1"); 
    3290                 td_important_msg.appendChild(input_important_message); 
    3291                 trn.appendChild(tdn); 
    3292                 trn.appendChild(td_important_msg); 
    3293                 tbody_message.appendChild(trn); 
    3294         } 
    32953472 
    32963473        /** 
     
    33193496        add_files.innerHTML =  get_lang("Attachments: add+"); 
    33203497        add_files.setAttribute("tabIndex","-1"); 
     3498         
     3499        var add_msgs = document.createElement("A"); 
     3500        add_msgs.setAttribute("href", "javascript:void(0)"); 
     3501        is_ie ? add_msgs.setAttribute("className", 'message-attach-link') : add_msgs.setAttribute("class", 'message-attach-link'); 
     3502        add_msgs.innerHTML =  get_lang("Messages: add+"); 
    33213503        var divfiles = document.createElement("DIV"); 
    33223504        divfiles.id = "divFiles_"+ID; 
     3505 
     3506        jQuery(add_msgs).click(function(event){ 
     3507                jQuery('#message-attach-dialog').html("../prototype/modules/attach_message/attach_message.ejs", {data:{}}).dialog({ 
     3508                        width:920, 
     3509                        height:550, 
     3510                        resizable:false, 
     3511                        modal: true, 
     3512                        closeOnEscape:true, 
     3513                        close:function(event, ui) {event.stopPropagation();}, 
     3514                        autoOpen:false 
     3515                }); 
     3516                jQuery.getScript("../prototype/modules/attach_message/attach_message.js", function(){ 
     3517                        jQuery('#message-attach-dialog').dialog('open'); 
     3518                         
     3519                        jQuery('#message-attach-attach-btn').click(function(event){ 
     3520                                //alert(dump(selectedMessages));../ 
     3521                                jQuery.each(selectedMessages, function(folder_name, messages) { 
     3522                                   
     3523                                        var isOffline = /^local_messages/.test(folder_name); 
     3524 
     3525                                        jQuery.each(selectedMessages[folder_name], function(message_number, message) {  
     3526                                                if (message) { 
     3527                                                        var subject = onceOpenedMessages[folder_name][message_number].subject; 
     3528                                                        var text_input  = '<input type="text" name="message_attachments['+folder_name+']['+message_number+']" value="'+subject+'"/>'; 
     3529                                                            text_input += '<a href="javascript:void(0)" onclick="javascript:this.parentNode.parentNode.removeChild(this.parentNode);">' + get_lang("Remove")+'</a>'; 
     3530 
     3531                                                            if( isOffline ) 
     3532                                                                text_input += '<input type="hidden" name="message_attachments_content['+folder_name+']['+message_number+']" value="'+Base64.encode( onceOpenedMessages[folder_name][message_number].eml )+'"/>'; 
     3533                                                        jQuery(divfiles).append('<div>'+text_input+'</div>'); 
     3534                                                } 
     3535 
     3536                                        }); 
     3537                                }); 
     3538                                 
     3539                                jQuery('#message-attach-dialog').dialog('close'); 
     3540                        }); 
     3541                        jQuery('#message-attach-cancel-btn').click(function(event){ 
     3542                                jQuery('#message-attach-dialog').dialog('close'); 
     3543                        }); 
     3544                }); 
     3545        }); 
    33233546        var tr5 = document.createElement("TR"); 
    33243547        var td5_link = document.createElement("TD"); 
     
    33283551        td5_link.setAttribute("colSpan","2"); 
    33293552        td5_link.appendChild(add_files); 
     3553        td5_link.appendChild(add_msgs); 
     3554        $(td5_link).append('<div id="message-attach-dialog" title="'+get_lang('Select messages to attach...')+'"> </div>'); 
    33303555        tr5.appendChild(td5_input); 
    33313556        tr5.appendChild(td5_link); 
     
    34263651                if(data.length > 0) { 
    34273652                        tr1_1.style.display = ''; 
     3653                        var mycn = typeof(data.myname != 'undefined') ? data.myname : ''; 
    34283654                        var _option = document.createElement("OPTION"); 
    3429                         _option.text =  '"'+data.myname+'" <'+Element("user_email").value+'>'; 
    3430                         _option.value  = data.myname+";"+Element("user_email").value; 
     3655                        _option.text =  '"'+mycn+'" <'+Element("user_email").value+'>'; 
     3656                        _option.value  = mycn+";"+Element("user_email").value; 
    34313657                        sel_from.options[sel_from.options.length] = _option; 
    34323658 
    34333659                        var options = ''; 
     3660                        var cn = ''; 
    34343661                        for (var x = 0; x < data.length; x++)   { 
     3662                                cn = typeof(data[x].cn[0] != 'undefined') ? data[x].cn[0] : ''; 
    34353663                                var _option = document.createElement("OPTION"); 
    3436                                 _option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>'; 
    3437                                 _option.value = data[x].cn[0] + ';'+data[x].mail[0]+';'+data[x].save_shared[0]+';'+data[x].uid[0]; 
     3664                                _option.text = '"'+cn+'" <'+data[x].mail[0]+'>'; 
     3665                                _option.value = cn+';'+data[x].mail[0]+';'+data[x].save_shared[0]+';'+data[x].uid[0]; 
    34383666                                sel_from.options[sel_from.options.length] = _option     ; 
    34393667                        } 
     
    34523680 
    34533681function changeBgColorToON(all_messages, begin, end){ 
     3682        var _tab_prefix = getTabPrefix(); 
     3683        var _msg_id; 
    34543684        for (begin; begin<=end; begin++) 
    34553685        { 
     3686                _msg_id = getMessageIdFromRowId(all_messages[begin].id); 
    34563687                add_className(all_messages[begin], 'selected_msg'); 
    3457                 Element("check_box_message_" + all_messages[begin].id).checked = true; 
     3688                Element(_tab_prefix + "check_box_message_" + _msg_id).checked = true; 
    34583689        } 
    34593690} 
     
    35023733        else{ 
    35033734                //if ( exist_className(actual_tr, 'selected_msg') ) 
    3504                 if ( Element('check_box_message_' + _element_id).checked ) 
     3735                if ( document.getElementById(getTabPrefix()+'check_box_message_' + msg_number).checked ){ 
     3736                        if( document.getElementById("chk_box_select_all_messages").checked) { 
     3737                                add_className(actual_tr, 'selected_msg selected_shortcut_msg');  
     3738                        }else 
    35053739                        add_className(actual_tr, 'selected_msg'); 
    3506                 else 
     3740                }else{ 
     3741                        if( document.getElementById("chk_box_select_all_messages").checked){ 
     3742                                remove_className(actual_tr, 'selected_msg selected_shortcut_msg'); 
     3743                                remove_className(actual_tr, 'selected_msg'); 
     3744                                remove_chk_box_select_all_messages(); 
     3745                                if(actual_tr.className == 'selected_msg') 
    35073746                        remove_className(actual_tr, 'selected_msg'); 
     3747                        }else 
     3748                                remove_className(actual_tr, 'selected_msg'); 
     3749                } 
    35083750        } 
    35093751        last_message_selected = _element_id; 
  • trunk/expressoMail1_2/js/filter.js

    r4855 r5134  
    5151                        var handler_sieve = function(data) 
    5252                        { 
    53                                 if(data.toString().indexOf('Error:') == 0)  
    54                                 { 
    55  
     53                                if (data.toString().indexOf('Error:') == 0)  
     54                                { 
    5655                                        _this.criticalError = true; 
    5756                                        alert(get_lang('The filters service is out of service, try again later...')); 
     
    6968                                        } 
    7069                                } 
    71                                 if(typeof(data.vacation[0]) == 'undefined'){ 
    72                                     _this.out_officeR = ""; 
    73                                 } 
    74                                 else 
    75                                     _this.out_officeR = url_decode_s(data.vacation[0]); 
     70                                _this.out_officeR = data.vacation[0]; 
     71                                _this.out_officeR = _this.out_officeR ? trim(_this.out_officeR.toString().replace("\n","")) : ""; 
     72                                if(data.mode.length > 0){_this.mode_in = data.mode[0];} 
    7673                                } 
    7774                                catch(e){ 
    7875                                        _this.criticalError = true; 
    79                                         alert(get_lang('==> The filters service is out of service, try again later...')); 
    80                                 } 
    81                                 if(data.mode.length > 0){_this.mode_in = data.mode[0];} 
     76                                        alert(get_lang('The filters service is out of service, try again later...')); 
     77                                } 
    8278                                if (typeof(posHandler) == 'function')   
    8379                                        posHandler(param);   
     
    9389                Element('form_body').innerHTML = ""; 
    9490                Element('form_buttons').style.display = ''; 
     91                Element('Edit_form_buttons').style.display = 'none'; 
    9592                filters.mount_list(); 
    9693                this.ac_form = "";               
     
    109106                Element('form_body').innerHTML = ""; 
    110107                Element('form_body').innerHTML = this.forms_(); 
     108                Element('Edit_form_buttons').style.display = ''; 
     109                Element('form_buttons').style.display = 'none'; 
    111110                this.ind = pos;          
    112111                 
     
    221220                        var mark_values = this.values[fields[8]].split(","); 
    222221                        for(var i=0; i < mark_values.length; i++){ 
     222                                if( mark_values[i] == "checkBox1" || mark_values[i] == "checkBox2"){ 
     223                                        document.getElementById(mark_values[i]).checked = true; 
     224                                } 
    223225                                if( mark_values[i] == "checkBox2"){ 
    224226                                        document.getElementById(mark_values[i]).checked = true; 
     
    313315                         var form = ""; 
    314316                                 form = "<div id='div_rule' style='display:none'><table id='table_rule' border='0' cellpading='0' cellspacing='0' width='100%'>"+ 
     317                                                "<tr><td colspan='2'><input type='checkBox' id='checkBox1' name='checkb'>"+get_lang('Also check message against next rule') + "</td></tr>"+ 
     318                                                //"<tr><td colspan='2'><input type='checkBox' id='checkBox2' onclick='filter.disable_radio3();' name='checkb'>"+get_lang('Keep a copy of the message at your Inbox')+ "</td><tr>"+ 
     319                                                "<tr><td colspan='2'><hr size='1' width='100%'></td></tr><tr>"+ 
    315320                                         "<tr><td colspan='2'><b>"+get_lang("Criteria")+":</b></td></tr><tr>"+ 
    316321                                         "<td rowspan='4' width='20%'>"+get_lang('Find items')+":<br><select id='select_rules' name='select_rules'>"+ 
     
    338343                                                //"<tr><td colspan='3'><br>"+get_lang('Subject')+".: <input type='text' id='field7' name='field7' size='35' maxlength='200'/></td></tr>"+ 
    339344                                                "<tr><td colspan='3'><br>"+get_lang('With the following message')+".:</td>"+ 
    340                                                 "</tr><tr><td colspan='3'><textarea id='field8' onkeypress='return charCounter(this);' rows='8' cols='50'></textarea></td></tr></table></div>" + 
     345                                                "</tr><tr><td colspan='3'><textarea id='field8' rows='8' cols='50'></textarea></td></tr></table></div>" + 
    341346                                                "<div id='div_voipFilter' style='display:none'>" + 
    342347                                                "<br/><table id='table_voipFilter'>" + 
    343348                                                "<tr><td>"+get_lang("Type the subject of the message for receiving a phone warning")+" .:"+ 
    344349                                                "</td></tr><tr><td><input type='text' id='field9' size='50' maxlength='200'>" + 
    345                                                 "</td></tr><br/></table></div>" + 
    346                                                 "<span align='right'><input type='button' value="+get_lang("Back")+" onclick='filter.form_m()'></span>"+ 
    347                                                 "<span align='right'><input type='button' value="+get_lang("Save")+" onclick='filter.saved_rules()'></span>"; 
     350                                                "</td></tr><br/></table></div>";// + 
     351                                                //"<span align='right'><input type='button' value="+get_lang("Back")+" onclick='filter.form_m()'></span>"+ 
     352                                                //"<span align='right'><input type='button' value="+get_lang("Save")+" onclick='filter.saved_rules()'></span>"; 
    348353                return form; 
    349354        } 
     
    487492                                //Save outoffice in prefs: 
    488493                                connector.loadScript("preferences"); 
    489                                 if(typeof(prefe) == 'undefined'){ 
    490                                         setTimeout("filter.delete_r();",500); 
    491                                 } 
    492                                 else 
    493494                                        prefe.save("outoffice", _this.out_officeF); 
    494495                        } 
     
    573574                        } 
    574575 
    575                         if(LTrim(Element("field1").value) == "" && LTrim(Element("field2").value) == "" && LTrim(Element("field3").value) == "" && Element("field4").value == "") 
     576                        if(LTrim(Element("field1").value) == "" && LTrim(Element("field2").value) == "" && LTrim(Element("field3").value) == "" && LTrim(Element("field4").value).length == 0) 
    576577                        { 
    577578                                alert(get_lang("Define some criterion to the fields Sender, To and Subject with more than 3 characters!")); 
    578579                                return false; 
    579580                        } 
    580  
    581                         if((LTrim(Element("field1").value).length <= 3) && (LTrim(Element("field2").value).length <= 3) && (LTrim(Element("field3").value).length <= 3 && Element("field4").value == "")){ 
     581                        if((LTrim(Element("field1").value).length <= 3) && LTrim(Element("field1").value) != ""){ 
     582                                alert(get_lang("Define some criterion to the fields Sender, To and Subject with more than 3 characters!")); 
     583                                return false; 
     584                        }if((LTrim(Element("field2").value).length <= 3) && LTrim(Element("field2").value) != ""){ 
     585                                alert(get_lang("Define some criterion to the fields Sender, To and Subject with more than 3 characters!")); 
     586                                return false; 
     587                        }if((LTrim(Element("field3").value).length <= 3) && LTrim(Element("field3").value) != ""){ 
    582588                                alert(get_lang("Define some criterion to the fields Sender, To and Subject with more than 3 characters!")); 
    583589                                return false; 
     
    649655                        } 
    650656                        var opts = ""; 
     657                        if(Element("checkBox1").checked == true){ 
     658                            opts += ",checkBox1"; 
     659                        } 
    651660                        if(Element("checkBox2").checked == true){ 
    652661                            opts += ",checkBox2"; 
     
    691700                                return false; 
    692701                        } 
     702                        else if(fld_men.value.length > 10000){ 
     703                                alert(get_lang("Your message have %1 characters, the message needs to have less then 10000 characters",fld_men.value.length)); 
     704                                return false; 
     705                        } 
    693706                        this.out_officeR = mount_rule; 
    694707                } 
     
    740753                 
    741754                Element('form_buttons').style.display = ''; 
     755                Element('Edit_form_buttons').style.display = 'none'; 
    742756                this.reload_rules(); 
    743757        } 
     
    824838        } 
    825839 
    826     connector.loadScript("preferences"); 
    827840// build object 
    828841   var filter; 
  • trunk/expressoMail1_2/js/filters.js

    r4855 r5134  
    4343                form_buttons.style.position = "absolute"; 
    4444                form_buttons.style.display = ""; 
    45                 form_buttons.style.top = "347px"; 
     45                form_buttons.style.top = "372px"; 
    4646                form_buttons.style.left = "5px"; 
    47                 form_buttons.style.width = "655px"; 
     47                form_buttons.style.width = "675px"; 
    4848                form_buttons.innerHTML = "<input type='button' value="+get_lang("Enable")+" onclick='filter.enabled_disabled(\"ENABLED\");'>"+ 
    4949                                                                 "&nbsp;<input type='button' value="+get_lang("Disable")+" onclick='filter.enabled_disabled(\"DISABLED\");'>"+   
     
    5252 
    5353                form.appendChild(form_buttons); 
     54                 
     55                var form_buttons2 = document.createElement("DIV"); 
     56                form_buttons2.id = "Edit_form_buttons"; 
     57                form_buttons2.style.position = "absolute"; 
     58                form_buttons2.style.display = "none"; 
     59                form_buttons2.style.top = "372px"; 
     60                form_buttons2.style.left = "5px"; 
     61                form_buttons2.style.width = "675px"; 
     62                form_buttons2.innerHTML = "<span align='right'><input type='button' value="+get_lang("Back")+" onclick='filter.form_m()'></span>"+ 
     63                                                              "<span align='right'><input type='button' value="+get_lang("Save")+" onclick='filter.saved_rules()'></span>"; 
     64 
     65                form.appendChild(form_buttons2); 
    5466                 
    5567                var form_body = document.createElement("DIV"); 
     
    5870                form_body.style.left = "5px"; 
    5971                form_body.style.top = "5px"; 
    60                 form_body.style.width = "668px"; 
    61                 form_body.style.height = "337px"; 
     72                form_body.style.width = "688px"; 
     73                form_body.style.height = "357px"; 
    6274                form_body.style.borderStyle = "outset"; 
    6375                form_body.style.borderColor = "black"; 
     
    187199        { 
    188200                var aux = outOffice.split("&&"); 
    189                 return get_lang("Rule") + " - <a href='javascript:void(0)' onclick=filter.form_out()> " + "<b>" + get_lang("Status") + " : </b><font color='red'>" + (aux[4].replace("\n","") === "off" ? get_lang("Disabled") : get_lang("Enabled")) + "</font></a>"; 
     201                return get_lang("Rule") + " - <a href='javascript:void(0)' onclick=filter.form_out()> " + "<b>" + get_lang("Status") + " : </b><font color='red'>" + (aux[4] == "off" ? get_lang("Disabled") : get_lang("Enabled")) + "</font></a>"; 
    190202        } 
    191203         
     
    197209                filter.ac_form = "new_rule"; 
    198210                Element('form_buttons').style.display = 'none'; 
     211                Element('Edit_form_buttons').style.display = ''; 
    199212                filter.sel_boxes(); 
    200213 
     
    207220                Element('div_vacation').style.display = "block";                         
    208221                Element('form_buttons').style.display = 'none'; 
     222                Element('Edit_form_buttons').style.display = ''; 
    209223                filter.ac_form = "new_out";      
    210224        } 
     
    236250        { 
    237251                if(! this.filter_Sh[div.id]) { 
    238                         div.style.width = "680px"; 
    239                         div.style.height = "372px"; 
     252                        div.style.width = "700px"; 
     253                        div.style.height = "400px"; 
    240254                        div.style.visibility = "hidden"; 
    241255                        div.style.position = "absolute"; 
  • trunk/expressoMail1_2/js/globals.js

    r4802 r5134  
    4646var denyFileExtensions = new Array('exe','com','reg','chm','cnf','hta','ins','jse','job','lnk','pif','src','scf','sct','shb','vbe','vbs','wsc','wsf','wsh','cer','its','mau','','mda','mar','mdz','prf','pst'); 
    4747var mobile_device = false; 
    48  
     48var previous = 0; 
  • trunk/expressoMail1_2/js/lert/lert.css

    r3977 r5134  
    2424        font-weight:normal; 
    2525        font-size:1em; 
    26         font-family: Tahoma, Verdana, Sans; 
     26        //font-family: Tahoma, Verdana, Sans; 
    2727        border:4px double #aaa; 
    2828        width:40%; 
  • trunk/expressoMail1_2/js/local_messages.js

    r4939 r5134  
    88    this.store = null; 
    99    this.filterSerch = ""; 
    10     this.folders = []; 
    1110    this.sortType = ""; 
    1211} 
     
    122121 
    123122local_messages.prototype.installGears = function (){ 
    124     temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to install it now?")); 
    125     if (temp && typeof(preferences.googlegears_url) != 'undefined'){ 
    126         if (is_ie) 
    127             location.href = preferences.googlegears_url + "/gears.exe"; 
     123     
     124    var ua = navigator.userAgent.toLowerCase(); // captura o userAgent 
     125//     alert( parseFloat(ua.substring(ua.indexOf("firefox") + 8))  ); 
     126    var is_ff = ( ua.indexOf("linux") != -1 || ua.indexOf("windows") != -1) && 
     127                  ua.indexOf("mozilla") != -1 && 
     128                ( ua.indexOf("firefox") != -1 && parseFloat(ua.substring(ua.indexOf("firefox") + 8)) <= 3.6 ); 
     129 
     130    if ( is_ff ) 
     131      ext = "xpi"; 
     132    else 
     133    if( typeof is_ie !== "undefined" && is_ie ) 
     134      ext = "exe" 
    128135        else 
    129             location.href = preferences.googlegears_url + "/gears.xpi"; 
    130136        return false; 
    131     } 
    132     if (temp) { 
    133         location.href = "http://gears.google.com/?action=install&message="+ 
    134         get_lang("To use local messages, install Google Gears")+"&return=" + document.location.href; 
    135     } 
    136     else return false; 
     137       
     138    var confirmation = confirm(get_lang("To use local messages you have to install google gears. Would you like to install it now?")); 
     139 
     140    if ( confirmation && typeof(preferences.googlegears_url) != 'undefined' ) 
     141            location.href = preferences.googlegears_url + "/gears." + ext; 
     142 
     143 
     144    return false; 
    137145} 
    138146 
     
    171179    this.dbGears.execute('create table if not exists mail' + 
    172180        ' (mail blob,original_id int,original_folder text,header blob,timestamp int,uid_usuario int,unseen int,id_folder int,' + 
    173         ' ffrom text, subject text, fto text, cc text, body text, size int,unique (original_id,original_folder,uid_usuario,id_folder))'); 
     181        ' ffrom text, subject text, fto text, cc text, body text, size int, visible bool default true, unique (original_id,original_folder,uid_usuario,id_folder))'); 
    174182    this.dbGears.execute('create table if not exists anexo' + 
    175         ' (id_mail int,nome_anexo text,url text,pid int)'); 
     183        ' (id_mail int,nome_anexo text,url text,pid int, contentType text)'); 
    176184    this.dbGears.execute('create table if not exists folders_sync' + 
    177185        ' (id_folder text,folder_name text,uid_usuario int)'); 
     
    184192    try { 
    185193        this.dbGears.execute('alter table mail add column size int'); 
    186     }catch(Exception) { 
     194    } 
     195    catch(Exception) { 
    187196                         
    188197    } 
     198    try { 
     199        this.dbGears.execute('alter table mail add column visible bool default true'); 
     200    } 
     201    catch(Exception) { 
     202    } 
     203    try { 
     204        this.dbGears.execute('alter table anexo add column contentType text'); 
     205    } 
     206    catch(Exception) { 
     207    } 
     208 
     209 
    189210    var rs = this.dbGears.execute('select rowid,header from mail where size is null'); 
    190211    while(rs.isValidRow()) { 
     
    246267} 
    247268         
     269sync = { length: 0, fails: [], success: [], mails: {}, archived: [] }; 
     270 
     271local_messages.prototype.insert_mails = function( msgs_info, folder, complete ){ 
     272   
     273    sync.length += msgs_info.length; 
     274     
     275    write_msg( ( sync.archived.length ?  sync.archived.length + " mensagens ja arquivadas anteriormente, " : "" ) 
     276              + "Preparando o arquivamento de "+sync.length+ " mensagens...", true ); 
     277 
     278    for( var i = 0; i < msgs_info.length; i++ ) 
     279    {       
     280        var original = url = DEFAULT_URL + "$this.exporteml.export_eml.raw&folder=" + msgs_info[i].msg_folder 
     281        + "&msgs_to_export=" + msgs_info[i].msg_number; 
     282 
     283        msgs_info[i].url_export_file = url; 
     284        msgs_info[i].dest_folder = folder; 
     285 
     286        for( var ii = 0; ii < msgs_info[i].array_attach.length; ii++ ) 
     287        { 
     288            var anexo = msgs_info[i].array_attach[ii]; 
     289 
     290            anexo.url = "inc/get_archive.php?msgFolder=" + msgs_info[i].msg_folder + "&msgNumber=" + msgs_info[i].msg_number + "&indexPart=" + anexo.pid; 
     291 
     292            msgs_info[i].array_attach[ii] = anexo; 
     293 
     294            sync.mails[ anexo.url ] = url; 
     295 
     296            url = anexo.url; 
     297        } 
     298 
     299        sync.mails[ original ] = parseInt( this.store_mail( msgs_info[i] ) ); 
     300 
     301        this.capture( url, complete ); 
     302    } 
     303     
     304    write_msg( ( sync.archived.length ?  sync.archived.length + " mensagens ja arquivadas anteriormente, " : "" ) 
     305              + "arquivando " + sync.length + " mensagens...", true ); 
     306} 
     307 
     308local_messages.prototype.checkArchived = function( msgsNumber, folder ){ 
     309     
     310    var levels = [], newtree = []; 
     311     
     312    for( var i = 0; i < oldtree.length; i++ ){ 
     313       
     314      var element = oldtree[i]; 
     315       
     316      var current = element.parent, hierarchy = []; 
     317       
     318      while( !levels[ current.id ] ) 
     319      { 
     320          levels[ current.id ] = []; 
     321           
     322          hierarchy.push( current.id ); 
     323 
     324          for( var ii = 0; ii < hierarchy.length; ii++ ) 
     325            levels[ hierarchy[ii] ].push( 0 ); 
     326 
     327          current = current.parent; 
     328      } 
     329       
     330      var parent = newtree; 
     331           
     332      for( var ii = 0; ii < levels[ element.parent ].length; ii++ ) 
     333            parent = parent[ levels[element.parent][ii] ]; 
     334       
     335      parent[ levels[ element.id ] = parent.length ] = element; 
     336    } 
     337} 
     338 
     339local_messages.prototype.checkArchived = function( msgsNumber, folder ){ 
     340     
     341    var isArray = false; 
     342   
     343    if( msgsNumber.join ){ 
     344        isArray = true; 
     345        msgsNumber = msgsNumber.join(","); 
     346    } 
     347 
     348    var archived = this.isArchived( msgsNumber, folder ); 
     349     
     350    if( !archived ) 
     351        return( isArray ? msgsNumber.split(",") : msgsNumber ); 
     352 
     353    msgsNumber = "," + msgsNumber; 
     354     
     355    for( var i = 0; i < archived.length; i++ ){ 
     356        sync.archived[ sync.archived.length ] = archived[i]; 
     357        msgsNumber = msgsNumber.replace( "," + archived[i], "" ); 
     358    } 
     359     
     360    if( !msgsNumber ) 
     361        this.cleanup(); 
     362 
     363    return( isArray ? msgsNumber.substr(1).split(",") :  
     364                    ( msgsNumber ? msgsNumber.substr(1) : msgsNumber )); 
     365} 
     366 
     367local_messages.prototype.isArchiving = function( msgsNumber, folder ){ 
     368    return this.isArchived( msgsNumber, folder, true ); 
     369} 
     370 
     371local_messages.prototype.isArchived = function( msgsNumber, folder, archiving ){ 
     372   
     373    if( msgsNumber.join ) 
     374        msgsNumber = msgsNumber.join(","); 
     375     
     376    folder = this.get_folder_id( folder ); 
     377     
     378    var archived = []; 
     379   
     380  try{ 
     381      this.init_local_messages(); 
     382 
     383      var sql = "select original_id from mail where id_folder = ? and original_id IN ("+msgsNumber+")" + ( archiving ? " and visible = ?" : "" ); 
     384      var params = archiving ? [ folder, false ]: [ folder ]; 
     385       
     386      if(folder != false){ 
     387                for( var rs = this.dbGears.execute(sql, params); rs.isValidRow() || rs.close(); rs.next() ){ 
     388                        archived[ archived.length ] = rs.field(0); 
     389                } 
     390        } 
     391    } 
     392    catch( error ){ 
     393                //Removido alert pois o método 
     394                //é usado quando move mensagens entre pastas 
     395 //     alert( error ); 
     396      return( false ); 
     397    } 
     398    finally{ 
     399      this.finalize(); 
     400    } 
     401     
     402    return( archived.length ? archived : false ); 
     403} 
     404 
     405local_messages.prototype.capture = function( uri, complete ){ 
     406 
     407    var _this = this; 
     408 
     409    var callback = function( url, ok ){ 
     410 
     411        //check if its a chained attachment url.  
     412        if( typeof sync.mails[url] === "string" ) 
     413        { 
     414            var content = _this.get_src( url ); 
     415 
     416            //if its successful, continue to capture the chain 
     417            if( ok = ok || content ) 
     418                return _this.capture( sync.mails[url], complete ); 
     419 
     420            //If it's not, don't need to continue loading the attachments.  
     421            //Just break the chain, search the last one chained (the message url) and finalize the process 
     422            while( sync.mails[url].length ) 
     423                    url = sync.mails[url]; 
     424        } 
     425 
     426        sync[ ok ? 'success' : 'fails' ].push( sync.mails[url] ); 
     427 
     428        sync.length--; 
     429 
     430        if( sync.length ) 
     431            return write_msg( ( sync.archived.length ?  sync.archived.length + " mensagens ja arquivadas anteriormente, " : "" ) 
     432                              + "arquivando " + sync.length + " mensagens...", true ); 
     433 
     434        clean_msg(); 
     435        write_msg( ( sync.success.length ? "Foram arquivadas corretamente " + sync.success.length + " mensagens" : "Nenhuma mensagem arquivada" ) 
     436                 + ( sync.archived.length ? ", " + sync.archived.length + " mensagens ja arquivadas anteriormente" : "" ) 
     437                 + ( sync.fails.length ? ", " + sync.fails.length + " falharam" : "" ) + "." ); 
     438 
     439        _this.update_mails( sync.success, sync.fails, complete ); 
     440    } 
     441 
     442    try{ 
     443        this.init_local_messages(); 
     444        this.store.capture( uri, callback ); 
     445    } 
     446    catch( error ){ 
     447        console && console.log(error); 
     448    } 
     449    finally{ 
     450        this.finalize(); 
     451    } 
     452} 
     453 
     454local_messages.prototype.store_mail = function( msg_info ){ 
     455 
     456    var id_mail = false; 
     457   
     458    try { 
     459 
     460            var id_folder = this.get_folder_id( msg_info.dest_folder ); 
     461       
     462            this.init_local_messages(); 
     463 
     464            //This fields needs to be separeted to search. 
     465            var msg_header = msg_info.header; 
     466            var anexos = msg_info.array_attach; 
     467            var login = msg_info.login; 
     468            var original_id = msg_info.msg_number; 
     469            var original_folder = msg_info.msg_folder; 
     470            var subject = msg_info.subject; 
     471            var body = msg_info.body; 
     472            var timestamp = msg_info.timestamp; 
     473            var size = msg_header.Size; 
     474            var from = connector.serialize(msg_info.from); 
     475            var to = connector.serialize(msg_info.toaddress2); 
     476            var cc = connector.serialize(msg_info.cc); 
     477            var unseen = (msg_info.Unseen == "U" )? 1 : 0; 
     478 
     479            //If the mail was archieved in the same date the user received it, the date cames with the time. 
     480            //here I solved it 
     481            msg_header.udate = (String(msg_header.udate).indexOf(":")==-1)? msg_header.udate : msg_header.aux_date; 
     482            // The importance attribute can be empty, and javascript consider as null causing nullpointer. 
     483            msg_header.Importance = msg_header.Importance || "Normal"; 
     484 
     485            //do not duplicate this information 
     486            msg_info.from = null; 
     487            msg_info.subject = null; 
     488            msg_info.body = null; 
     489            msg_info.to = null; 
     490            msg_info.cc = null; 
     491            msg_header.Size=null; 
     492            msg_header.aux_date = null; 
     493 
     494            var mail = connector.serialize(msg_info); 
     495            var header = connector.serialize(msg_header); 
     496 
     497            //parse header 
     498            var parser = new FlagsParser(msg_header); 
     499            var flags = parser.parse(); 
     500 
     501            this.dbGears.execute("insert into mail (mail,original_id,original_folder,header,timestamp,uid_usuario,unseen,id_folder,ffrom,subject,fto,cc,body,size,answered,flagged,recent, visible) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", 
     502                                                   [mail,original_id,original_folder,header,timestamp,login,unseen,id_folder,from,subject,to,cc,body,size,flags.getAnswered(),flags.getFlagged(),flags.getRecent(), false]); 
     503 
     504            id_mail = this.dbGears.lastInsertRowId; 
     505 
     506            //insert_mail already close and open gears. 
     507            for (var i = 0; i < anexos.length; i++) 
     508                this.dbGears.execute("insert into anexo (id_mail,nome_anexo,url,pid) values (?,?,?,?)",  
     509                                                        [id_mail, anexos[i]['name'],anexos[i]['url'],anexos[i]['pid']]); 
     510    } 
     511    catch (error) { 
     512        return( false ); 
     513    } 
     514    finally{ 
     515        this.finalize(); 
     516    } 
     517 
     518    return( id_mail ); 
     519} 
     520 
     521local_messages.prototype.get_folder_id = function( folder ){ 
     522 
     523    var id_folder; 
     524     
     525    folder = ( folder && folder != "local_root" )? folder.substr(6) : "Inbox"; 
     526   
     527    try 
     528    { 
     529        this.init_local_messages(); 
     530 
     531        var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[folder,account_id]); 
     532 
     533        if(rs.isValidRow()) 
     534              id_folder = rs.field(0); 
     535        else { 
     536              this.dbGears.execute("insert into folder (folder,uid_usuario) values (?,?)",["Inbox",account_id]); 
     537              id_folder = this.dbGears.lastInsertRowId; 
     538        } 
     539         
     540        rs.close(); 
     541    } 
     542    catch( error ){ 
     543        return( false ); 
     544    } 
     545    finally{ 
     546        this.finalize(); 
     547    } 
     548 
     549    return( id_folder ); 
     550} 
     551 
     552local_messages.prototype.update_mails = function( success, fails, callback ){ 
     553    try 
     554    {            
     555      this.init_local_messages(); 
     556       
     557      this.dbGears.execute('update mail set visible=? where rowid IN (' + success.join(",") + ')',[ true ]); 
     558 
     559      var sql = 'select url, contentType from anexo where id_mail = ' +success; 
     560 
     561      for( var rs = this.dbGears.execute(sql); rs.isValidRow() || rs.close(); rs.next() ) 
     562      { 
     563                var url = rs.field(0), contentType = rs.field(1); 
     564                var blob = this.store.getAsBlob( url ); 
     565           
     566                this.store.captureBlob( blob, url + "&image=thumbnail", "image/jpeg" ); 
     567                this.store.captureBlob( blob, url + "&image=true", "image/jpeg" ); 
     568      }  
     569    } 
     570    catch (error) { 
     571                status = false; 
     572    } 
     573    finally{ 
     574                this.finalize(); 
     575    } 
     576     
     577    if( callback ) 
     578                callback( success, fails ); 
     579                this.cleanup(); 
     580     
     581    return( status ); 
     582} 
     583 
     584local_messages.prototype.cleanup = function(){ 
     585 
     586  try{ 
     587    this.init_local_messages(); 
     588     
     589    this.dbGears.execute('delete from mail where visible=?', [ false ]); 
     590     
     591    sync.success = [], sync.fails = [], sync.archived = [], sync.mails = {}; 
     592  } 
     593  catch(error){ 
     594    return( false ); 
     595  } 
     596  finally{ 
     597    this.finalize(); 
     598  } 
     599   
     600  return( true ); 
     601} 
     602 
     603 
     604 
     605local_messages.prototype.select_mail = function( columns, rowIds ){ 
     606   
     607    try 
     608    { 
     609        this.init_local_messages(); 
     610         
     611        if( rowIds.join ) 
     612            rowIds = rowIds.join( "," );  
     613         
     614        if( columns.join ) 
     615            columns = columns.join( "," ); 
     616 
     617        var sql = 'select '+columns+' from mail where rowid IN (' + rowIds + ')'; 
     618         
     619        var result = []; 
     620 
     621        for( var i = 0, rs = this.dbGears.execute(sql); rs.isValidRow() || rs.close() || delete ii; rs.next( i++ ) ) 
     622 
     623            for( ii = 0, result[i] = {}; ii < rs.fieldCount(); ii++ ) 
     624 
     625                  result[i][ rs.fieldName( ii ) ] = rs.field( ii ); 
     626 
     627    } 
     628    catch (error) { 
     629        status = false; 
     630    } 
     631    finally{ 
     632        this.finalize(); 
     633    } 
     634   
     635    if( result.length === 1 ) 
     636        result = result[0]; 
     637     
     638    return( result ); 
     639} 
     640 
    248641local_messages.prototype.insert_mail = function(msg_info,msg_header,anexos,folder) { 
    249642    try { 
     
    391784            if(anexos[i]['url'] && anexos[i]['url'].match(/((jpg)|(jpeg)|(png)|(gif)|(bmp))/gi)) 
    392785            { 
    393                 var er_imagens = new RegExp("\\.\\/inc\\/show_embedded_attach.php\\?msg_folder=[\\w/]+\\&msg_num=[0-9]+\\&msg_part="+anexos[i]['pid']); 
     786                var er_imagens = new RegExp("\\.\\/get_archive.php\\?msgFolder=[\\w/]+\\&msgNumber=[0-9]+\\&indexPart="+(anexos[i]['pid']-1)); 
    394787                var Result_imagens = er_imagens.exec(retorno['body']); 
    395788                retorno['body'] = retorno['body'].replace(Result_imagens,anexos[i]['url']); 
    396789                if(thumbs && thumbs[i]){ 
    397                     er_imagens = new RegExp("\\.\\/inc\\/show_thumbs.php\\?file_type=image\\/[\\w]+\\&msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 
     790                    er_imagens = new RegExp("\\.\\/inc\\/get_archive.php\\?&&msgFolder=[\\w/%]+\\msgNumber=[0-9]+\\&indexPart=0."+(anexos[i]['pid']-1)+"&image=thumbnail"); 
    398791                    Result_imagens = er_imagens.exec(thumbs[i]); 
    399792                    thumbs[i] = thumbs[i].replace(Result_imagens,"'"+anexos[i]['url']+"'"); 
    400                     er_imagens = new RegExp("\\.\\/inc\\/show_img.php\\?msg_num=[0-9]+\\&msg_folder=[\\w/%]+\\&msg_part="+anexos[i]['pid']); 
     793                    er_imagens = new RegExp("\\.\\/inc\\/get_archive.php\\?&msgFolder=[\\w/%]+\\msgNumber=[0-9]+\\&indexPart=0."+(anexos[i]['pid']-1)+"&image=true"); 
    401794                    Result_imagens = er_imagens.exec(thumbs[i]); 
    402795                    thumbs[i] = thumbs[i].replace(Result_imagens,anexos[i]['url']); 
     
    475868    'ltrim(ltrim(substr(UPPER(ffrom),21,length(ffrom)),\':\'),\'"\') ' + 
    476869    'end ' + 
    477     'end as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? ' + 
     870    'end as order_from,mail.subject from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and mail.visible=? ' + 
    478871    mail_filter + ' order by '; 
    479872                 
     
    496889 
    497890 
    498     var rs = this.dbGears.execute(sql,['%'+Element("user_email").value+'%',account_id,folder,msg_range_begin,emails_per_page]); 
     891    var rs = this.dbGears.execute(sql,['%'+Element("user_email").value+'%',account_id,folder,true,msg_range_begin,emails_per_page]); 
    499892    var cont = 0; 
    500893                 
    501     var rs3 = this.dbGears.execute('select count(*) from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=?'+mail_filter,[account_id,folder]); 
     894    var rs3 = this.dbGears.execute('select count(*) from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario=? and folder.folder=? and mail.visible=?'+mail_filter,[account_id,folder,true]); 
    502895                                 
    503896    while (rs.isValidRow()) { 
     
    528921 
    529922        retorno[cont]['msg_sample'] = new Array(); 
    530  
    531         if( (preview_msg_subject == 0) && (preview_msg_tip == 0) ) 
    532         { 
    533923            retorno[cont]['msg_sample']['body'] = ""; 
    534         } 
    535         else 
    536         { 
    537             msg_body += ">"; 
    538             msg_body=this.strip_tags(msg_body); 
    539             msg_body=msg_body.replace(/\&nbsp;/ig," "); 
    540             retorno[cont]['msg_sample']['body'] = " - " + msg_body.substr(2,msg_body.length-1); 
    541         } 
     924 
    542925 
    543926        cont++; 
     
    562945    var retorno; 
    563946    var rs = this.dbGears.execute("select url from anexo where id_mail="+msg_number+" and pid = '"+pid+"'"); 
    564     retorno = rs.field(0) 
     947    retorno = rs.field(0); 
    565948    this.finalize(); 
    566949                 
     
    576959 
    577960local_messages.prototype.finalize = function() { 
     961    if(this.dbGears) 
    578962    this.dbGears.close(); 
    579963    this.dbGears = null; 
    580964} 
    581965 
    582 local_messages.prototype.delete_msgs = function(msgs_number,border_ID) { 
    583     this.init_local_messages(); 
     966local_messages.prototype.remove_msgs = function(msgs_number) 
     967{ 
     968    this.init_local_messages(); 
     969          
    584970    var rs = this.dbGears.execute("select url from anexo where id_mail in ("+msgs_number+")"); 
    585971    while(rs.isValidRow()) { 
     
    590976    this.dbGears.execute("delete from mail where rowid in ("+msgs_number+")"); 
    591977    this.finalize(); 
    592     if (msgs_number.length == 1) 
    593         write_msg(get_lang("The message was deleted.")); 
    594     else 
    595         write_msg(get_lang("The messages were deleted.")); 
    596                  
    597     mail_msg = Element("tbody_box"); 
    598  
     978} 
     979                 
     980local_messages.prototype.delete_msgs = function(msgs_number,border_ID) { 
     981 
     982        if(!msgs_number) 
     983                msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
     984     
     985        if(msgs_number === ""){ 
     986                 write_msg(get_lang('No selected message.'));  
     987                 return; 
     988        } 
     989 
     990    this.remove_msgs( msgs_number ); 
     991         
     992    mail_msg = Element("tbody_box");     
    599993    try { 
    600994        msgs_exploded = msgs_number.split(","); 
     
    603997        msgs_exploded[0] = msgs_number; 
    604998    } 
     999        this.previous = 0; 
    6051000    var msg_to_delete; 
    6061001    for (var i=0; i<msgs_exploded.length; i++){ 
     
    6091004            if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') ) 
    6101005                select_msg('null', 'down'); 
     1006            if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && currentTab.toString().indexOf("_r") > 0) 
     1007                for(var ii=0; ii < mail_msg.rows.length; ii++){ 
     1008                        if(mail_msg.rows[ii] === msg_to_delete){ 
     1009                                if(ii == 0){ 
     1010                                        break; 
     1011                                }else{ 
     1012                                        this.previous = mail_msg.rows[(ii - 1)].attributes[0]; 
     1013                                        this.previous = parseInt(this.previous.value);  
     1014                                        break; 
     1015                                } 
     1016                        } 
     1017                } 
     1018                 
    6111019            mail_msg.removeChild(msg_to_delete); 
    612             decrement_folder_unseen(); 
    613         } 
    614     } 
     1020                Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - 1; 
     1021        } 
     1022        } 
     1023        if (msgs_exploded.length == 1){ 
     1024        write_msg(get_lang("The message was deleted.")); 
     1025    } 
     1026    else 
     1027        write_msg(get_lang("The messages were deleted.")); 
    6151028    Element('chk_box_select_all_messages').checked = false; 
    616     if (border_ID != 'null') 
    617         delete_border(border_ID,'false'); 
    618                  
     1029                 
     1030         if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && this.previous){ 
     1031                proxy_mensagens.get_msg(this.previous, folder, true, show_msg); 
     1032        }else if(currentTab != 0){ 
     1033                delete_border(currentTab,'false'); 
     1034        } 
    6191035} 
    6201036         
     
    6351051    this.init_local_messages(); 
    6361052        var no_errors = true; 
    637         var rowids_to_set; // rows ids 
    638     var msgs_to_set; // messages ids 
     1053    var msgs_to_set; 
    6391054        var one_message = false; 
    6401055    if (msgs_number == 'get_selected_messages') { 
    641                 msgs_to_set = get_selected_messages(); 
    642                 rowids_to_set = msgs_to_set.split(","); 
    643                 msgs_to_set = msgs_to_set.replace(/_s[^,]*/g,"").split(","); 
    644     } 
    645     else { 
    646         if(isNaN(parseInt(msgs_number))){       //message(s) sent to function 
    647             rowids_to_set = msgs_number.split(","); 
    648             msgs_to_set = msgs_number.replace(/_s[^,]*/g,"").split(","); 
    649             if (msgs_to_set.length==1) { 
    650                             //Just one message 
    651                 one_message = true; 
    652             } 
    653         }else{ 
    654             rowids_to_set = new Array(); 
    655             msgs_to_set = new Array() 
    656             msgs_to_set[0] = parseInt(msgs_number); 
    657             rowids_to_set[0] = parseInt(msgs_number); 
     1056                var msgs_to_set = get_selected_messages(); 
     1057                msgs_to_set= msgs_to_set.split(","); 
     1058    } 
     1059    else { //Just one message 
    6581060            one_message = true; 
    659         } 
     1061                msgs_to_set = new Array(); 
     1062                msgs_to_set[0] = msgs_number; 
    6601063    } 
    6611064    for (var i in msgs_to_set) { 
    6621065                         
    6631066        var matches = '';//Messages comming from other tabs. 
    664         if(matches === this.parse_id_mail(msgs_to_set[i])) { 
     1067        if(matches = this.parse_id_mail(msgs_to_set[i])) { 
    6651068            msgs_to_set[i] = matches[1]; 
    6661069        } 
     
    6741077        switch(flag) { 
    6751078            case "unseen": 
    676                         set_msg_as_unread(rowids_to_set[i]); 
     1079                        set_msg_as_unread(msgs_to_set[i]); 
    6771080                        header["Unseen"] = "U"; 
    6781081                        mail["Unseen"] = "U"; 
     
    6811084                        break; 
    6821085            case "flagged": 
    683                         set_msg_as_flagged(rowids_to_set[i]); 
     1086                        set_msg_as_flagged(msgs_to_set[i]); 
    6841087                        header["Flagged"] = "F"; 
    6851088                        mail["Flagged"] = "F"; 
     
    6911094                                no_errors = false; 
    6921095                        else { 
    693                             set_msg_as_unflagged(rowids_to_set[i]); 
     1096                            set_msg_as_unflagged(msgs_to_set[i]); 
    6941097                            header["Flagged"] = "N"; 
    6951098                                mail["Flagged"] = "N"; 
     
    7021105                        mail["Unseen"] = "N"; 
    7031106                        mail["header"]["Unseen"] = "N"; 
    704                         set_msg_as_read(rowids_to_set[i],true); 
     1107                        set_msg_as_read(msgs_to_set[i],true); 
    7051108                        unseen = 0; 
    7061109                        break; 
     
    7291132        rs.close(); 
    7301133                         
    731         if(Element("check_box_message_" + rowids_to_set[i])) 
    732             Element("check_box_message_" + rowids_to_set[i]).checked = false; 
     1134        if(Element("check_box_message_" + msgs_to_set[i])) 
     1135            Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    7331136        var smail=connector.serialize(mail); 
    7341137        smail =smail.replace(/([^'])'([^'])('?)/g,"$1''$2$3$3"); 
     
    8151218            temp[2] = 0; 
    8161219 
    817         if(sentfolder ==  preferences.save_in_folder.replace("INBOX/","") || preferences.save_in_folder.replace("INBOX/","") == trashfolder || preferences.save_in_folder.replace("INBOX/","") == draftsfolder) 
     1220        if(sentfolder ==  preferences.save_in_folder.replace("INBOX" + cyrus_delimiter,"") || preferences.save_in_folder.replace("INBOX" + cyrus_delimiter,"") == trashfolder || preferences.save_in_folder.replace("INBOX" + cyrus_delimiter,"") == draftsfolder) 
    8181221            achouSentConf= true; 
    8191222 
     
    8351238                achouDrafts = true; 
    8361239                break; 
    837             case preferences.save_in_folder.replace("INBOX/",""): 
     1240            case preferences.save_in_folder.replace("INBOX" + cyrus_delimiter,""): 
    8381241                retorno_defaults[2] = temp; 
    8391242                achouSentConf = true; 
     
    8621265            this.create_folder(draftsfolder); 
    8631266        if(!achouSentConf) 
    864             this.create_folder(preferences.save_in_folder.replace("INBOX/","")); 
     1267            this.create_folder(preferences.save_in_folder.replace("INBOX" + cyrus_delimiter,"")); 
    8651268        return this.list_local_folders(); 
    8661269    } 
     
    9301333 
    9311334local_messages.prototype.move_messages = function(new_folder,msgs_number) { 
     1335     
     1336        if(!msgs_number) 
     1337                msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
     1338         
    9321339    this.init_local_messages(); 
    9331340    var rs = this.dbGears.execute("select rowid from folder where folder=? and uid_usuario=?",[new_folder,account_id]); 
     
    9381345} 
    9391346 
    940 local_messages.prototype.setFolders = function(sFolders) 
    941 { 
    942     this.folders = sFolders; 
    943 } 
    944  
    945 local_messages.prototype.getFolders = function() 
    946 { 
    947     return this.folders; 
    948 } 
    949  
    9501347local_messages.prototype.setFilter = function(sFilter) 
    9511348{ 
     
    9721369local_messages.prototype.search = function(folders,sFilter) { 
    9731370    this.init_local_messages(); 
    974     //sFilter = unescape(sFilter); 
    9751371    this.setFilter(sFilter); 
    976     this.setFolders(folders); 
    9771372    var filters = sFilter.replace(/^##|##$/g,"").split('##'); 
    9781373    var friendly_filters = new Array(); 
     
    10171412        } 
    10181413    } 
    1019     var sql = "select mail.header,folder.folder,mail.rowid,size from mail inner join folder on mail.id_folder=folder.rowid where mail.uid_usuario="+account_id + " and folder.folder in ("; 
     1414    var sql = "select mail.header,folder.folder,mail.rowid,size from mail inner join folder on mail.id_folder=folder.rowid where visible=? and mail.uid_usuario="+account_id + " and folder.folder in ("; 
    10201415    for(var fnum in folders) { 
    10211416        sql+="'"+folders[fnum]+"'"; 
     
    10691464    sql += this.getSortType().match('^.*_REVERSE$') ? ' asc' : ' desc'; 
    10701465 
    1071     var rs = this.dbGears.execute(sql); 
     1466    var rs = this.dbGears.execute(sql,[true]); 
    10721467    var retorno = []; 
    10731468    var numRec = 0; 
     
    12261621    } 
    12271622 
    1228     AJAX.open('get', url, false); 
     1623    AJAX.open('get', encodeURI(url), false); 
    12291624    AJAX.send(null); 
    12301625    return AJAX.responseText; 
     
    12331628//Por Bruno Costa(bruno.vieira-costa@serpro.gov.br - Dessarquiva msgs locais pegando o codigo fonte das mesmas e mandando via POST para o servidor 
    12341629//para que elas sejam inseridas no imap pela função  imap_functions.unarchive_mail. 
    1235 local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){ 
    1236  
    1237     if(!new_folder) 
    1238         new_folder='INBOX'; 
    1239     this.init_local_messages(); 
    1240     // alert(folder+new_folder+msgs_number); 
    1241     var handler_unarchive = function(data) 
    1242     { 
    1243                 if(data.error == '') 
    1244                     write_msg(get_lang('All messages are successfully unarchived')); 
    1245                 else 
    1246                     alert(data.error); 
    1247     } 
    1248  
    1249         if(currentTab.toString().indexOf("_r") != -1){ 
     1630    local_messages.prototype.unarchive_msgs = function (folder,new_folder,msgs_number){ 
     1631 
     1632    this.init_local_messages(); 
     1633 
     1634        // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
     1635        if(currentTab.toString().indexOf("_r") != -1) 
    12501636            msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    1251     } 
    1252          
    1253     if(msgs_number =='selected' || !msgs_number) 
    1254     { 
    1255                 msgs_number = get_selected_messages() 
    1256                 if (!msgs_number){ 
    1257                     write_msg(get_lang('No selected message.')); 
    1258                     return; 
    1259                 } 
    1260                 var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in ("+msgs_number+")"); 
    1261                 var source=""; 
    1262                 var flags=""; 
    1263                 var timestamp=""; 
     1637         
     1638        if( msgs_number =='selected' || !msgs_number ) 
     1639            msgs_number = get_selected_messages(); 
     1640 
     1641        if( !msgs_number ) 
     1642            return write_msg(get_lang('No selected message.')); 
     1643 
     1644        document.getElementById("overlay").style.visibility = ""; 
     1645 
     1646        var rs = this.dbGears.execute("select mail,timestamp from mail where rowid in (" + msgs_number + ")"); 
     1647 
     1648        var source = [], flags = [], timestamp = []; 
    12641649                 
    12651650                while(rs.isValidRow()) { 
    1266                         mail=connector.unserialize(rs.field(0)); 
    1267                         mail.msg_source?source_tmp = escape(mail.msg_source):source_tmp = escape(this.get_src(mail.url_export_file)); 
    1268                         flags+="#@#@#@"+mail["Answered"]+":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; 
    1269                         source+="#@#@#@"+source_tmp; 
    1270                         timestamp+="#@#@#@"+rs.field(1); 
     1651 
     1652            var mail = connector.unserialize(rs.field(0)); 
     1653 
     1654            flags.push( mail["Answered"]+":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"] ); 
     1655            source.push( escape( mail.msg_source || this.get_src( mail.url_export_file ) ) ); 
     1656            timestamp.push( rs.field(1) ); 
     1657 
    12711658                        rs.next(); 
    12721659                } 
     1660 
    12731661                rs.close(); 
    12741662                this.finalize(); 
    1275     } 
    1276     else 
    1277     { 
    1278                 var rs = this.dbGears.execute("select mail,timestamp from mail where rowid="+msgs_number); 
    1279                 mail=connector.unserialize(rs.field(0)); 
    1280                 var source =""; 
    1281  
    1282                 mail.msg_source?source = escape(mail.msg_source):source = escape(this.get_src(mail.url_export_file)); 
    1283                 flags = mail["Answered"]+":"+mail["Draft"]+":"+mail["Flagged"]+":"+mail["Unseen"]; 
    1284                 timestamp=rs.field(1); 
    1285                 rs.close(); 
    1286                 this.finalize(); 
    1287     } 
    1288     params="&folder="+new_folder+"&source="+source+"&timestamp="+timestamp+"&flags="+flags; 
    1289     cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
    1290 } 
     1663 
     1664        write_msg( "Desarquivando " + source.length + " mensagens... ", true ); 
     1665 
     1666        var sep = "#@#@#@"; 
     1667 
     1668        var params = "&folder=" + ( new_folder || 'INBOX' ) + 
     1669                     "&source=" + source.join(sep) + 
     1670                     "&timestamp=" + timestamp.join(sep) + 
     1671                     "&flags=" + flags.join(sep); 
     1672 
     1673        cExecute ("$this.imap_functions.unarchive_mail&", function(data){ 
     1674 
     1675            clean_msg(); 
     1676            document.getElementById("overlay").style.visibility = "hidden"; 
     1677            write_msg( get_lang( data.error || 'All messages are successfully unarchived' ) ); 
     1678 
     1679        }, params); 
     1680         
     1681        update_menu();  
     1682    } 
    12911683 
    12921684local_messages.prototype.get_msg_date = function (original_id, is_local){ 
     
    13091701        rs = this.dbGears.execute("select mail from mail where original_id="+original_id); 
    13101702    } 
    1311         if(!rs.field(0)){ 
    1312           ret=null; 
    1313     } 
    1314     else 
    1315         { 
    13161703    var tmp = connector.unserialize(rs.field(0)); 
    13171704    var ret = new Array(); 
     
    13201707    ret.msg_day = tmp.msg_day; 
    13211708    ret.msg_hour = tmp.msg_day; 
    1322         } 
     1709 
    13231710    rs.close(); 
    13241711    this.finalize(); 
     
    13561743    var flag = true; 
    13571744    var handler_local_mesgs_to_export = function(data){ 
     1745                        var filename = 'mensagens.zip'; 
     1746 
     1747                        if (data.match(/\.eml$/gi)) { 
     1748                                fn_regex = /[^\/]*\.eml$/i; 
     1749                                filename = fn_regex.exec(data); 
     1750                        } 
     1751 
    13581752        document.getElementById('lertOverlay').style.display='none'; 
    13591753        document.getElementById('lertContainer').style.display='none'; 
    13601754        document.getElementById('lertContainer').innerHTML = ''; 
    13611755        flag = false; 
    1362         download_attachments(null, null, data, null,null,'mensagens.zip'); 
     1756 
     1757                        download_attachments(null, null, data, null, null, filename); 
    13631758    } 
    13641759 
     
    15101905} 
    15111906         
     1907local_messages.prototype.as_trash = function(){//verifica se o usuario tem a pasta lixeira no arquivamento local 
     1908        this.init_local_messages(); 
     1909    var rs = this.dbGears.execute("select folder from folder where uid_usuario="+account_id+" and folder = \"Trash\""); 
     1910        var check = rs.isValidRow(); 
     1911        this.finalize(); 
     1912    if(check) 
     1913                return true; 
     1914        else 
     1915                return false; 
     1916} 
     1917 
    15121918local_messages.prototype.get_folders_to_sync = function() {//Precisa ter visibilidade ao array de linguagens. 
    15131919    this.init_local_messages(); 
     
    15171923        temp = new Array(); 
    15181924        temp[0] = rs.field(0); 
    1519         if(temp[0]=='INBOX/Drafts' ||temp[0]=='INBOX/Trash' || temp[0]=='INBOX/Sent') { 
     1925        if(temp[0]=='INBOX' + cyrus_delimiter + 'Drafts' ||temp[0]=='INBOX' + cyrus_delimiter + 'Trash' || temp[0]=='INBOX' + cyrus_delimiter + 'Sent') { 
    15201926            temp[1] = array_lang[rs.field(1).toLowerCase()]; 
    15211927        } 
     
    15331939local_messages.prototype.install_offline = function(urlOffline,urlIcone,uid_usuario,login,pass,redirect) { 
    15341940    if (!window.google || !google.gears) { 
    1535         temp = confirm(document.getElementById('lang_gears_redirect').value); 
    1536         if (temp) { 
    15371941            expresso_local_messages.installGears(); 
    1538         } 
    15391942        return; 
    1540  
    15411943    } 
    15421944                 
  • trunk/expressoMail1_2/js/mail_sync.js

    r4988 r5134  
    275275                         
    276276                        var unseen = 0; 
     277                        var flagged = 0;  
     278                        var answered = 0; 
    277279                        var login = msg_info.login; 
    278280                        var original_id = msg_info.msg_number; 
     
    313315                        if(msg_info.Unseen=="U") 
    314316                                unseen = 1; 
    315  
    316                         //parse header 
    317                         var parser = new FlagsParser(msg_header); 
    318                         var flags = parser.parse(); 
    319  
    320                         this.dbGears.execute("insert into mail (mail,original_id,original_folder,header,timestamp,uid_usuario,unseen,id_folder,ffrom,subject,fto,cc,body,size,flagged,answered,recent) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",[mail,original_id,original_folder,header,timestamp,login,unseen,id_folder,from,subject,to,cc,body,size,flags.getFlagged(),flags.getAnswered(),flags.getRecent()]); 
     317                        this.dbGears.execute("insert into mail (mail,original_id,original_folder,header,timestamp,uid_usuario,unseen,id_folder,ffrom,subject,fto,cc,body,size,flagged,answered) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",[mail,original_id,original_folder,header,timestamp,login,unseen,id_folder,from,subject,to,cc,body,size,flagged,answered]); 
     318 
     319 
    321320                         
    322321                        //Preenche os anexos. 
  • trunk/expressoMail1_2/js/main.js

    r5083 r5134  
    55var autosave_time = 20000; 
    66 
     7var results_search_messages = "";  
     8var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>';  
     9 
    710function init(){ 
    811        if (!is_ie) 
     
    2023 
    2124                preferences = data; 
     25                 
     26                 
     27                        if(preferences.show_name_print_messages == "1") {  
     28                                                        var getUserName = document.getElementById("user_info");  
     29                                var userName = getUserName.innerHTML;  
     30                                var position = userName.indexOf("-");  
     31                                var userName = userName.substring(3, position);  
     32                                cabecalho = '<h4>' + userName;  
     33                        } 
     34                 
     35                 
    2236                current_folder="INBOX"; 
    23                  
    24                 version = (navigator.userAgent.match( /.+ie\s([\d.]+)/i ) || [])[1]; 
    25                 if(parseInt(version)==7 && (/trident\/\d/i.test(navigator.userAgent))) 
    26                         preferences.use_local_messages="0"; 
    2737                 
    2838                if( (window.google && google.gears) && !google.gears.factory.getPermission()) 
     
    318328                // Call function to draw message 
    319329                // If needed, delete old border 
    320                 if (openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) 
     330                var isPartMsg = false; 
     331                for(var ii = 0; ii < partMsgs.length; ii++) 
     332                     if(partMsgs[ii] == ID) isPartMsg = true;                
     333 
     334                if ((openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) && isPartMsg === false) 
    321335                        delete_border(currentTab,'false'); 
    322336 
     
    394408                if(!verify_session(data)) 
    395409                        return; 
     410                var total_messages_element = Element('tot_m'); 
    396411                         
    397412                var box = Element("tbody_box"); 
     
    415430 
    416431                        var box = Element("tbody_box"); 
    417                         table_element.insertBefore(box, Element("colgroup_main_"+numBox)); // keeps colgroup as the last child 
    418  
    419                         if (data.msgs_to_delete.length > 0) 
     432                        //table_element.insertBefore(box, Element("colgroup_main_"+numBox)); // keeps colgroup as the last child 
     433                        //table_element.appendChild(Element("colgroup_main_"+numBox)); 
     434                         
     435                        $(table_element).append(Element("colgroup_main_"+numBox)); 
     436 
     437                        if (data.msgs_to_delete.length > 0){ 
    420438                                for (var i=0; i<data.msgs_to_delete.length; i++){ 
    421439                                        if ( (data.msgs_to_delete[i] != undefined) && (data.msgs_to_delete[i] != "")){ 
     
    423441                                        } 
    424442                                } 
    425  
     443                        } 
    426444                        if (data[0].msg_folder != current_folder) // Bad request 
    427445                                return false; 
    428  
    429                         var total_messages_element = Element('tot_m'); 
    430  
    431446                        for (var i=0; i<data.length; i++){ 
    432447                                var existent = document.getElementById(data[i].msg_number); 
     
    437452                                         
    438453                                        if( data[i].next_msg_number != undefined && data[i].next_msg_number != null ){ 
    439                                                 try { box.insertBefore(new_msg, box.childNodes[data[i].msg_key_position]); } 
    440                                                 catch (e) { box.insertBefore(new_msg, box.firstChild); } 
     454                                                try { 
     455                                                        box.insertBefore(new_msg, box.childNodes[data[i].msg_key_position]);                                                     
     456                                                } 
     457                                                catch (e){ 
     458                                                        $(box).append(new_msg); 
     459                                                } 
    441460                                        } 
    442461                                        else if (data[i].Recent == 'N'){ 
     
    446465                                                box.appendChild(new_msg); 
    447466                                        } 
    448 //                                      if( data[i].next_msg_number != undefined && data[i].next_msg_number != null ) 
    449 //                                              box.insertBefore(new_msg, Element(data[i].next_msg_number)); 
    450 //                                      else if (data[i].Recent == 'N') 
    451 //                                              box.insertBefore(new_msg,box.firstChild); 
    452 //                                      else 
    453 //                                              box.appendChild(new_msg); 
    454  
    455 //                                      total_messages_element.innerHTML = parseInt( total_messages_element.innerHTML ) + 1; 
    456467                                } 
    457468                        } 
     
    460471                                alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 
    461472                        build_quota(data['quota']); 
     473                } 
     474                if(data.new_msgs){ 
     475                        total_messages_element.innerHTML = parseInt( total_messages_element.innerHTML ) + data.new_msgs; 
     476                }else if(data.tot_msgs){ 
     477                        total_messages_element.innerHTML = data.tot_msgs; 
    462478                } 
    463479                // Update Box BgColor 
     
    494510} 
    495511 
    496         function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){       
     512function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){ 
     513                         
     514                        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
     515                          alert( "Impossivel deletar mensagens que estão ainda estão sendo arquivadas." ); 
     516                          return; 
     517                        } 
     518                                 
    497519                        var userTrashFolder = '';  
    498520                        
     
    507529                                else userTrashFolder = 'INBOX'+cyrus_delimiter+trashfolder;  
    508530          
    509                         if(openTab.type[currentTab] == 1) return move_search_msgs('content_id_'+currentTab,userTrashFolder,trashfolder);  
    510                                 if(currentTab.toString().indexOf("_r") != -1) msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
     531                        if(openTab.type[currentTab] == 1)  
     532                                        return move_search_msgs('content_id_'+currentTab,userTrashFolder,trashfolder);  
     533                                         
     534                                if(currentTab.toString().indexOf("_r") != -1)  
     535                                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
    511536                          
    512537                        if (!archive && (parseInt(preferences.save_deleted_msg)) && (folder != userTrashFolder)){  
     
    574599 
    575600function move_search_msgs(border_id, new_folder, new_folder_name){ 
     601   
     602        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
     603          alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 
     604          return; 
     605        } 
     606 
    576607        var selected_messages = ''; 
    577608        var temp_msg; 
     
    663694} 
    664695 
    665 function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg){ 
     696function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg, not_opem_previus){ 
     697        not_opem_previus = typeof(not_opem_previus) != 'undefined' ? not_opem_previus : false; 
     698        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
     699            alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 
     700            return; 
     701        } 
     702 
    666703        if (! folder || folder == 'null') 
    667704                folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder()); 
     
    689726                } 
    690727                mail_msg = ( Element("divScrollMain_"+numBox) ) ? Element("divScrollMain_"+numBox).firstChild.firstChild : Element("divScrollMain_0").firstChild.firstChild; 
    691                 if (data.msgs_number.length == 1) 
     728                if (data.msgs_number.length == 1){ 
    692729                        write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    693                 else 
     730                } 
     731                else{ 
    694732                        write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
     733                } 
    695734 
    696735                if (openTab.type[currentTab] > 1){ 
     
    701740                                        var previous_msg = msg_to_delete.previousSibling.id; 
    702741                                        //cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + current_folder, show_msg); 
     742                                        if(!not_opem_previus){ 
    703743                                        cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + url_encode(folder), show_msg); 
     744                                } 
    704745                                } 
    705746                                else 
    706747                                        delete_border(currentTab,'false'); 
    707748                        } 
    708                         else 
     749                        else{ 
    709750                                delete_border(currentTab,'false'); 
     751                        } 
    710752                        if(msg_to_delete) 
    711753                                mail_msg.removeChild(msg_to_delete); 
     
    715757                        if(box.childNodes.length > 0){ 
    716758                                updateBoxBgColor(box.childNodes); 
     759                        } 
     760                        if(folder == get_current_folder()){ 
     761                                Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - 1; 
    717762                        } 
    718763                        return; 
     
    770815                                delete_border(data.border_ID,'false'); 
    771816                } 
    772                 if(folder == get_current_folder()) 
     817                if(folder == get_current_folder()){ 
    773818                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length; 
    774  
     819                } 
    775820                refresh(); 
    776821        } 
     
    796841                } 
    797842 
    798         if(currentTab.toString().indexOf("_r") != -1){ 
    799                 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    800                 if(msgs_number.indexOf("_s1")) 
    801                            msgs_number = msgs_number.replace('_s1', ''); 
     843        // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
     844        if(currentTab.toString().indexOf("_r") != -1) 
     845        { 
     846                //se a aba for aberta atraves de uma pesquisa 
     847                if(currentTab.toString().indexOf('_s') != -1) 
     848                   msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 
     849                else 
     850                    msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 
    802851        } 
    803852 
    804853        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 
    805             var params = "&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+escape(new_folder)+"&new_folder_name="+escape(new_folder_name)+"&get_previous_msg="+preferences.delete_and_show_previous_message; 
    806             cExecute ("$this.imap_functions.move_messages",handler_move_msgs,params); 
     854                if(!not_opem_previus){ 
     855                        cExecute ("$this.imap_functions.move_messages&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message, handler_move_msgs); 
     856                }else{ 
     857                        cExecute ("$this.imap_functions.move_messages&folder="+folder+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&search_box_type="+search_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+false, handler_move_msgs); 
    807858        } 
    808         else 
     859        }else 
    809860                write_msg(get_lang('No selected message.')); 
    810861 
    811862} 
    812863 
    813 function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name) { 
    814         move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true); 
     864function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus) { 
     865        move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true, not_opem_previus); 
     866} 
     867 
     868//Caso deseja-se que não se abra a mensagem anterior independente da  
     869//preferencia do usuario 
     870function move_msgs_not_previus(folder, msgs_number, border_ID, new_folder, new_folder_name) { 
     871        move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true, true); 
     872} 
     873 
     874function normalizeMsgNumber( msgNumber ){ 
     875   
     876      if (msgNumber || msgNumber == 'selected') 
     877          msgNumber = get_selected_messages(); 
     878 
     879 
     880      // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
     881      if(currentTab.toString().indexOf("_r") != -1) 
     882      { 
     883            //se a aba for aberta atraves de uma pesquisa 
     884            if(currentTab.toString().indexOf('_s') != -1) 
     885                msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 
     886            else 
     887                msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 
     888      } 
     889       
     890      if (parseInt(msgNumber) <= 0 || msgNumber.length <= 0){ 
     891            write_msg(get_lang('No selected message.')); 
     892            return( false ); 
     893      } 
     894       
     895      return( msgNumber ); 
     896 
    815897} 
    816898 
     
    828910                id_msgs = get_selected_messages(); 
    829911 
     912        if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 
     913            return write_msg(get_lang('No selected message.')); 
     914         
    830915        if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
    831916                folder_dest = 'local_Inbox'; 
    832917 
    833         if (parseInt(id_msgs) > 0 || id_msgs.length > 0) 
    834                 expresso_mail_sync.archive_msgs(folder,folder_dest,id_msgs); 
    835                 //cExecute("$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs , handler_arquivar_mensagens); 
    836         else 
    837                 write_msg(get_lang('No selected message.')); 
    838  
     918        id_msgs = expresso_local_messages.checkArchived( id_msgs, folder_dest ); 
     919 
     920         if( !id_msgs ){ 
     921              write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
     922              return; 
     923          } 
     924   
     925        document.getElementById("overlay").style.visibility = "visible"; 
     926 
     927        var handler_arquivar_mensagens = function(data) { 
     928           
     929            var msgs_info = []; 
     930           
     931            for( var i = 0; i < data.length; i++ ) 
     932                msgs_info[i] = connector.unserialize( data[i] ); 
     933 
     934            //vejo se já tinha mensagens locais 
     935            var h = expresso_local_messages.has_local_mails(); 
     936             
     937            expresso_local_messages.insert_mails( msgs_info, folder_dest, function( s, f ){complete_archiving( s, f, h )} ); 
     938 
     939            document.getElementById("overlay").style.visibility = "hidden"; 
     940        } 
     941 
     942        cExecute( "$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs, handler_arquivar_mensagens ); 
     943} 
     944 
     945function complete_archiving( success, fails, has_local_messages_before ) 
     946{ 
     947    var msgs_to_remove = {}; 
     948    var target = 'INBOX' + cyrus_delimiter + trashfolder + cyrus_delimiter + 'tmpMoveToLocal'; 
     949     
     950    success = expresso_local_messages.select_mail( [ 'original_id', 'original_folder' ], success ); 
     951 
     952    for (var i = 0; i < success.length; i++) { 
     953         
     954        var msg_info = success[i]; 
     955 
     956//      if ( msg_info.dest_folder == target ) 
     957//      { 
     958//              msg_info.msg_folder += (Date.parse(new Date)); 
     959//      } 
     960 
     961        //////////////// deselecionando //////////////// 
     962        Element('chk_box_select_all_messages').checked = false; 
     963 
     964        if ( Element("check_box_message_" + msg_info.original_id) )  
     965        { 
     966                Element("check_box_message_" + msg_info.original_id).checked = false; 
     967        } 
     968        if ( Element(msg_info.original_id) ) 
     969        { 
     970                remove_className(Element(msg_info.original_id), 'selected_msg'); 
     971        } 
     972 
     973//      if ( tree_folders._selected.id.indexOf( 'local_' ) == 0 || msg_info.dest_folder.indexOf( target ) == 0 ) 
     974//      { 
     975//              openTab.imapBox[0] = ''; 
     976//              tree_folders.getNodeById( 'local_Inbox' )._select( ); 
     977//              change_folder('local_Inbox','Inbox'); 
     978//      } 
     979        ///////////////////////////////////////////////// 
     980 
     981        //As mensagens arquivadas devem ser removidas, caso o usuario tenha isso configurado. 
     982        msgs_to_remove[ msg_info.original_folder ] = msgs_to_remove[ msg_info.original_folder ] || []; 
     983        msgs_to_remove[ msg_info.original_folder ].push( msg_info.original_id ); 
     984    } 
     985 
     986    if (preferences.keep_archived_messages == 0) { 
     987            //Remove as mensagens 
     988            for( var folder in msgs_to_remove ){ 
     989                if(folder != 'undefined') 
     990                        delete_msgs(folder, msgs_to_remove[folder],'null',false,true); 
     991            } 
     992    } 
     993 
     994    if( !has_local_messages_before && expresso_local_messages.has_local_mails() ) 
     995            ttreeBox.update_folder(); 
     996    else 
     997            update_menu(); 
    839998} 
    840999 
     
    8531012 
    8541013        // Get all TR (messages) in tBody. 
    855         if(currentTab.toString().indexOf("_r") != -1){ 
    856             return currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    857         } 
    858  
    8591014        var main_list = main.childNodes; 
    8601015 
    861         var _check_box; 
     1016        var _tab_prefix = getTabPrefix(); 
    8621017        var selected_messages = ''; 
    8631018        var selected_messages_by_shortcuts = ''; 
     
    8651020        for (j; j<(main_list.length); j++) 
    8661021        { 
    867                 _check_box = Element("check_box_message_" + main_list[j].id); 
    868  
    869                 if ( (_check_box) && (_check_box.checked) ) 
     1022 
     1023if ( (!isNaN(parseInt(numBox))) && (numBox == 0)) {  
     1024                                        check_box = Element("check_box_message_" + main_list[j].id);  
     1025                                } else {  
     1026                                        id_mensagem = main_list[j].id.split('_');  
     1027                                                                check_box = Element("search_" + numBox + "_check_box_message_" + id_mensagem[0]);  
     1028                                }         
     1029                                  
     1030                                if ( (check_box) && (check_box.checked) )  
    8701031                    selected_messages += main_list[j].id + ','; 
    8711032 
     
    8801041        selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
    8811042 
     1043                          
     1044                        /* Verifica se está na tela de pesquisa. */  
     1045                        if(selected_messages.indexOf("_") != -1)  
     1046                        {  
     1047                                results_search_messages = selected_messages;  
     1048                                /* Retira a informação da aba */  
     1049                                selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 
     1050        } 
     1051         
     1052 
    8821053        if (preferences.use_shortcuts == '1') 
    8831054        { 
     
    8971068        else 
    8981069                return selected_messages; 
    899 } 
    900  
    901 function get_selected_messages_folder(){ 
    902         var _main; 
    903         var _main_list; 
    904         try{ 
    905                 _main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
    906         }catch(e){ 
    907         }; 
    908  
    909         if (! _main) 
    910                 _main = Element("tbody_box_"+numBox); 
    911  
    912         if (! _main) 
    913                 _main = Element("tbody_box"); 
    914  
    915         // Get all TR (messages) in tBody. 
    916         _main_list = _main.childNodes; 
    917  
    918         var _check_box; 
    919         var selected_messages_folder; 
    920 //      var selected_messages_by_shortcuts = ''; 
    921         var j = 0; 
    922         for (j; j<(_main_list.length); j++) 
    923         { 
    924  
    925                 _check_box = Element("check_box_message_" + _main_list[j].id); 
    926  
    927                 if ( (_check_box) && (_check_box.checked) && (_main_list[j].name) ) { 
    928                         if (!selected_messages_folder) 
    929                                 selected_messages_folder = _main_list[j].name; 
    930                         else { 
    931                                 if (selected_messages_folder!=_main_list[j].name) 
    932                                         return false; 
    933                         } 
    934                 } 
    935         } 
    936         return selected_messages_folder; 
    9371070} 
    9381071 
     
    9711104                                        9 : get_lang("Reply without history"), 
    9721105                                        10: get_lang("Reply to all without history")}; 
    973  
     1106                        if(new_border_ID != 0) 
    9741107                        if(!confirm(get_lang("Your message to %1 has not been saved or sent. "+ 
    9751108                                                "To %2 will be necessary open it again. Discard your message?", 
     
    9821115                        } 
    9831116                } 
     1117        } 
     1118        if (new_border_ID == 'maximo'){ 
     1119                RichTextEditor.editorReady = true; 
     1120                return false; 
    9841121        } 
    9851122        if (new_border_ID == false) 
     
    10391176        if (document.getElementById("subject_" + border_ID)) 
    10401177                data.subject = document.getElementById("subject_" + border_ID).innerHTML; 
     1178        if(data.subject == get_lang("(no subject)   ")) 
     1179                data.subject = ''; 
     1180                 
    10411181        if (document.getElementById("body_" + border_ID)) 
    10421182                data.body = document.getElementById("body_" + border_ID).innerHTML; 
     
    10521192                data.date_hour = Element('date_hour_' + border_ID).value; 
    10531193        } 
     1194         
    10541195        var signature = RichTextEditor.getSignatureDefault(); 
    1055         if(type!="new" && type!="edit") 
     1196         
     1197        if(type!="new" && type!="edit" && document.getElementById("is_local_"+border_ID) != null) 
    10561198                data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false; 
    10571199        switch(type){ 
     
    10611203                        title = "Re: " + data.subject; 
    10621204                        Element("subject_" + new_border_ID).value = "Re: " + data.subject;                       
    1063                         useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 
     1205 
     1206        if (data.is_local_message){   
     1207                alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
     1208        var imagens = data.body.match(/<img[^>]*>/g);   
     1209        if(imagens != null)   
     1210                        for (var x = 0; x < imagens.length; x++)   
     1211                                data.body = data.body.replace(imagens[x],'');   
     1212        }else{ 
     1213                useOriginalAttachments(new_border_ID,border_ID);                         
     1214        }       
     1215 
    10641216                        // Insert the signature automaticaly at message body if use_signature preference is set 
    10651217                        if (preferences.use_signature == "1"){   
     
    10771229                        Element("subject_" + new_border_ID).value = "Re: " + data.subject; 
    10781230                        Element("to_" + new_border_ID).value = data.to; 
    1079                         useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 
     1231                        if(data.is_local_message){ 
     1232                                alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
     1233                var imagens = data.body.match(/<img[^>]*>/g);   
     1234                if(imagens != null)   
     1235                                        for (var x = 0; x < imagens.length; x++)   
     1236                                                data.body = data.body.replace(imagens[x],'');   
     1237                        }else{ 
     1238                                useOriginalAttachments(new_border_ID,border_ID); 
     1239                        } 
     1240                         
    10801241                        block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 
    10811242                        // Insert the signature automaticaly at message body if use_signature preference is set 
     
    11121273                                Element('space_link_' + new_border_ID).style.display='none'; 
    11131274                        } 
    1114                         useOriginalAttachments(new_border_ID,border_ID,data.is_local_message); 
     1275                        if (data.is_local_message){   
     1276                                alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
     1277                var imagens = data.body.match(/<img[^>]*>/g);   
     1278                if(imagens != null)   
     1279                                        for (var x = 0; x < imagens.length; x++)   
     1280                                                data.body = data.body.replace(imagens[x],'');   
     1281                     }       
     1282                else useOriginalAttachments(new_border_ID,border_ID);   
     1283 
    11151284                        // Insert the signature automaticaly at message body if use_signature preference is set 
    11161285                        if (preferences.use_signature == "1")   
     
    11601329                        break; 
    11611330                case "forward": 
    1162                         data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false; 
     1331                         
    11631332                        msg_forward_from = document.createElement('input'); 
    11641333                        msg_forward_from.id = "msg_forward_from_" + new_border_ID; 
     
    11691338                        document.getElementById("subject_" + new_border_ID).value = "Fw: " + data.subject; 
    11701339                        var divFiles = Element("divFiles_"+new_border_ID); 
     1340                         
     1341                         
     1342                        if (data.is_local_message) {//Local messages   
     1343                                document.getElementById("is_local_forward"+new_border_ID).value = "1";   
     1344                alert(get_lang("In the local file attachments, including images, will be disregarded. To forward / reply with the attachments, please first make the reopening of the message")+'.');   
     1345                var imagens = data.body.match(/<img[^>]*>/g);   
     1346                if(imagens != null)   
     1347                                        for (var x = 0; x < imagens.length; x++)   
     1348                                                data.body = data.body.replace(imagens[x],'');     
     1349                    } 
     1350                else{   
     1351 
     1352                         
     1353                         
    11711354                        var campo_arquivo; 
     1355                         
    11721356                        if (Element("attachments_" + border_ID)){ 
    11731357                                var attachments = document.getElementById("attachments_" + border_ID).getElementsByTagName("a"); 
    11741358                                 
    1175                                 for (var i = (attachments.length > 1 ? 1 : 0); i < attachments.length; i++){ 
     1359                                for (var i = 0; i < attachments.length; i++){ 
    11761360                                        if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || 
    11771361                                                        ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     
    11911375                                                } 
    11921376                                                else { 
    1193                                                         var tempNomeArquivo = attachments[i].firstChild.nodeValue.split("("); 
    1194                                                         var nomeArquivo = trim(tempNomeArquivo[0]); 
     1377                                                        var tempNomeArquivo = tmp.split("&newfilename="); 
     1378                                                        var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length - 1]; 
    11951379                                                } 
    11961380 
     
    12181402                                } 
    12191403                        } 
     1404                        } 
    12201405                        // Insert the signature automaticaly at message body if use_signature preference is set 
    1221 if (preferences.use_signature == "1")    
     1406                        if (preferences.use_signature == "1")   
    12221407                                            RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>' + signature + '<div><br type="_moz"></div>'+ make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc));  
    12231408                                        else    
     
    12661451                        Element("to_" + new_border_ID).value = data.to; 
    12671452                        if (data.cc){ 
     1453                                data.cc = data.cc.replace(/&lt;/gi,"<"); 
     1454                                data.cc = data.cc.replace(/&gt;/gi,">"); 
    12681455                                Element("cc_" + new_border_ID).value = data.cc; 
    1269                                 Element("space_link_" + new_border_ID).style.display = 'none'; 
    12701456                                Element("a_cc_link_" + new_border_ID).style.display = 'none'; 
     1457                                if(Element("cco_" + new_border_ID) != null) 
     1458                                        Element("space_link_" + new_border_ID).style.display = 'none'; 
    12711459                                Element("tr_cc_"+ new_border_ID).style.display = ''; 
    12721460                        } 
    12731461                        if (data.cco){ 
     1462                                if(Element("cco_" + new_border_ID) != null){ 
    12741463                                Element("cco_" + new_border_ID).value = data.cco; 
    12751464                                Element("space_link_" + new_border_ID).style.display = 'none'; 
     
    12771466                                Element("tr_cco_"+ new_border_ID).style.display = ''; 
    12781467                        } 
     1468                        } 
    12791469                        Element("subject_" + new_border_ID).value = data.subject; 
    12801470                         
     
    12841474                        var element_important_message = Element("important_message_" + new_border_ID); 
    12851475                        if(element_important_message) { 
    1286                                 if(Element("is_important_" + border_ID).value == "1") element_important_message.checked = true; 
     1476                                         
     1477                                if(Element("disposition_important_" + border_ID)) 
     1478                                        element_important_message.checked = true;                                
    12871479                        } 
    12881480 
     
    13011493                                        tmp = link_attachment.innerHTML.substring(0,link_attachment.innerHTML.lastIndexOf("(")); 
    13021494                                        a_tmp[2] = "'"+tmp.substring(0,tmp.length-1)+"'"; 
    1303                                         s_tmp = trim(escape(connector.serialize(a_tmp))); 
     1495                                        s_tmp = escape(connector.serialize(a_tmp)); 
     1496 
    13041497                                        divFiles.innerHTML += "<input style='border:0' type='CHECKBOX' name='forwarding_attachments[]' checked value=\""+s_tmp+"\"/>"; 
    13051498                                        divFiles.appendChild(link_attachment); 
     
    13151508        set_border_caption("border_id_" + new_border_ID, title); 
    13161509 
    1317  
     1510        resizeWindow(); 
     1511        //save_msg(new_border_ID); 
    13181512        return new_border_ID; //Preciso retornar o ID da nova mensagem. 
    13191513} 
     
    14841678        { 
    14851679                var handler = function(data){ 
    1486                         if(typeof(expresso_local_messages) != "undefined"){ 
     1680 
    14871681                        if(data.msg_day == '') 
    14881682                        { 
    14891683                                header=expresso_local_messages.get_msg_date(data.original_ID, proxy_mensagens.is_local_folder(get_current_folder())); 
    1490                                 if(header){ 
     1684 
    14911685                                data.fulldate=header.fulldate; 
    14921686                                data.smalldate=header.smalldate; 
    14931687                                data.msg_day = header.msg_day; 
    14941688                                data.msg_hour = header.msg_hour; 
    1495                         } 
    1496                         } 
     1689 
    14971690                      } 
    14981691                        this.show_msg(data); 
     
    15641757        mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 
    15651758 
     1759       var content_body  = RichTextEditor.getData('body_'+ID); 
     1760       //Remove imagens do corpo que estao com o checkbox desmarcados 
     1761       var files_checkbox =  $("#divFiles_"+ID+" input:checkbox"); 
     1762       var files_unchecked = new Array(); 
     1763       for (var i = 0; i < files_checkbox.length; i++) 
     1764            if(files_checkbox[i].checked !== true) 
     1765                files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 
     1766 
     1767       var imagens = content_body.match(/<img[^>]*>/g); 
     1768        
     1769       if(imagens != null) 
     1770            for (var x = 0; x < imagens.length; x++) 
     1771                for (var xx = 0; xx < files_unchecked.length; xx++) 
     1772                    if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 
     1773                         content_body = content_body.replace(imagens[x],''); 
     1774                 
     1775        //--------------------------------------------------------------------------// 
     1776         
    15661777        var textArea = document.createElement("TEXTAREA"); 
    15671778        textArea.style.display='none'; 
    15681779        textArea.name = "body"; 
    1569         textArea.value = RichTextEditor.getData('body_'+ID);  
     1780        textArea.value = content_body; 
     1781    
    15701782        var input_folder = document.createElement("INPUT"); 
    15711783        input_folder.style.display='none'; 
     
    16331845                handler_send_message(data_return,ID); 
    16341846        } 
    1635         else 
     1847        else{ 
    16361848                cExecuteForm("$this.imap_functions.send_mail", form, handler_send_message, ID); 
     1849        } 
     1850} 
     1851function is_valid_email(campo){  
     1852        var invalidEmail = searchEmail(campo); 
     1853        var semicolon = campo.split(";"); 
     1854         
     1855        if((campo.replace(/^\s+|\s+$/g,"")) != ""){ 
     1856                        if(invalidEmail[0] == true){ 
     1857                                write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 
     1858                                return false; 
     1859                        }else{ 
     1860                                if(semicolon.length > 1){ 
     1861                                        var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vígula: "; 
     1862                                        for(var i= 0; i < semicolon.length; i++){ 
     1863                                                stringError = stringError + semicolon[i]; 
     1864                                                if(i+1 < semicolon.length) 
     1865                                                        stringError = stringError + " ; "; 
     1866                                        } 
     1867                                        write_msg(stringError); 
     1868                                        return false; 
     1869                                }else { 
     1870                                        return true; 
     1871                                } 
     1872                        } 
     1873        } 
     1874        else{ 
     1875                write_msg(get_lang("Message without receiver")); 
     1876                return false; 
     1877        }                
    16371878} 
    16381879function change_tr_properties(tr_element, newUid, newSubject){ 
     
    16571898{ 
    16581899        Element("send_button_"+border_id).style.visibility="visible"; 
    1659         var handler_delete_msg = function(data){refresh(preferences.alert_new_msg);}; 
    1660  
    1661         if (data == null || data.append != true ) 
     1900        var handler_delete_msg = function(data){refresh(preferences.alert_new_msg);RichTextEditor.execPosInstance('body_'+border_id);}; 
     1901        if(data === null) 
    16621902        { 
    1663                 RichTextEditor.saveFlag = 0; 
    1664                 if (! data.append) 
    1665                     if(data == 'Post-Content-Length') 
    1666                         write_msg(get_lang('The size of this message has exceeded  the limit (%1B).', preferences.max_attachment_size ? preferences.max_attachment_size : Element('upload_max_filesize').value)); 
    1667                 else 
     1903            write_msg(get_lang('ERROR saving your message.')); 
     1904            return null; 
     1905        } 
     1906 
     1907        if(data.append === "Over quota"){ 
     1908                write_msg(get_lang('ERROR saving your message over quota.')); 
     1909                return; 
     1910        } 
     1911        else if ( data.append !== true ) 
     1912        { 
     1913                if (data.append == null) 
    16681914                    write_msg(get_lang('ERROR saving your message.')); 
    16691915                else 
     
    16851931        { 
    16861932                var newImage = false; 
     1933                RichTextEditor.saveFlag = 1; 
    16871934                openTab.imapUid[border_id] = data.msg_no; 
    16881935                openTab.imapBox[border_id] = data.folder_id; 
    16891936 
    16901937                var newTitle = document.getElementById('subject_'+border_id).value; 
    1691                 if (newTitle == '') 
     1938                if (newTitle.length > 18) 
     1939                    newTitle = newTitle.substr(18) + '...'; 
     1940                else if (newTitle == '') 
    16921941                    newTitle = get_lang("No subject"); 
    1693                 set_border_caption('border_id_'+border_id, newTitle); 
     1942                document.getElementById('font_border_id_'+border_id).innerHTML = newTitle;                  
     1943                Element('border_id_'+border_id).title = newTitle;  
    16941944 
    16951945                // Replace the embedded images for new uids 
    16961946                var content_body  = RichTextEditor.getData('body_'+border_id); 
    1697  
    1698                 if (is_ie) 
     1947                var body_images   = content_body.match(/msgNumber=\d*/g); 
     1948                var folder_images = content_body.match(/msgFolder=[^&]*&/g);             
     1949 
     1950                if (body_images != null) 
    16991951                { 
    1700                     var content_body =  mainField.document.getElementsByTagName('body').item(0).innerHTML; 
    1701                     var body_images = content_body.match(/msg_num=\d*/g); 
    1702                     var images_part = content_body.match(/msg_part=\d*/g); 
    1703                     if (body_images) 
     1952                    for (var i=0; i<body_images.length; i++) 
    17041953                    { 
    1705                         for (var i=0; i<body_images.length; i++){ 
    1706                             content_body = content_body.replace(body_images[i],"msg_num="+openTab.imapUid[border_id]); 
     1954                        if( folder_images != null) 
     1955                          content_body = content_body.replace(folder_images[i], "msgFolder=INBOX" + cyrus_delimiter + draftsfolder +"&"); 
     1956 
     1957 
     1958                             
     1959                         
     1960                        content_body = content_body.replace(body_images[i],"msgNumber="+openTab.imapUid[border_id]); 
     1961                    } 
     1962 
     1963                    var images_part   = content_body.match(/indexPart=[0-9.]*/g); 
     1964 
     1965                    if(images_part != null) 
     1966                                { 
     1967                        for (var x = 0; x < images_part.length; x++) 
     1968                                { 
     1969                            var position = images_part[x].substr(10,images_part[x].length); 
     1970                            content_body = content_body.replace(images_part[x],'indexPart(||.|||.||)='+data.imagesParts[position]); 
     1971                                } 
     1972 
    17071973                        } 
    1708  
    1709                         var allImgs = new Array (images_part.length); 
    1710                         //var j=-1; 
    1711                         for (var i in images_part){ 
    1712  
    1713                             if (i == 0) 
    1714                                 var image_number = parseInt(images_part[i].substr(9)); 
    1715                             else 
    1716                                 image_number = "null"; 
    1717                              
    1718                             if (! isNaN(image_number)) 
    1719                             { 
    1720                                 if (! allImgs[image_number]) 
    1721                                 { 
    1722                                     allImgs[image_number] = true; 
    1723                                     //j--; 
    1724                                 } 
    1725                                 //content_body = content_body.replace(images_part[i],'msg_part='+j); 
    1726                             } 
    1727                             //content_body = content_body.replace(/msg_part=-/g,'msg_part='); 
    1728                         } 
    1729                          
     1974                    content_body = content_body.replace(/indexPart\(\|\|\.\|\|\|\.\|\|\)=/g,'indexPart=');              
    17301975                    } 
    1731                 } 
    1732                 else 
    1733                     { 
    1734                         for (var i = 0; i < bodyChildNodes.length; i++){ 
    1735                             if (typeof(bodyChildNodes[i].tagName) != 'undefined' && bodyChildNodes[i].tagName.search(/img/i) != -1) 
    1736                             { 
    1737                                 bodyChildNodes[i].src =  bodyChildNodes[i].src.replace(/msg_num=\d*/g, "msg_num="+openTab.imapUid[border_id]); 
    1738  
    1739                                 var allImgs = new Array(); 
    1740                                 var image_number = parseInt(bodyChildNodes[i].src.match(/msg_part=\d*/g)[0].substr(9)); 
    1741                                 if (! allImgs[image_number]) 
    1742                                 { 
    1743                                     allImgs[image_number] = true; 
    1744                                 } 
    1745                             } 
    1746                             else 
    1747                                 { 
    1748                                     continue; 
    1749                                 } 
    1750  
    1751                         } 
    1752                     } 
     1976 
     1977                    
    17531978 
    17541979                //Replace all files to new files 
    17551980                var divFiles = Element("divFiles_"+border_id); 
    1756                 elFiles = divFiles.getElementsByTagName("input"); 
    1757                 var countCheck =0; 
    1758                 for (var i=0; i<elFiles.length; i++) { 
    1759                     if(elFiles[i].value !=""){ 
    1760                         if (elFiles[i].type == "checkbox") { 
    1761                             var tmpData = connector.unserialize(decodeURIComponent(elFiles[i].value)); 
    1762                             tmpData[1] = data.msg_no; 
    1763                             elFiles[i].value = encodeURIComponent(connector.serialize(tmpData)); 
    1764                             countCheck++; 
    1765                         } 
    1766                         else { 
    1767                             elFiles[i].value =""; 
    1768                             parantNodeFile = elFiles[i].parentNode.parentNode; 
    1769                             parantNodeFile.removeChild(elFiles[i].parentNode); 
    1770                             i--; 
    1771                         } 
    1772                     } 
    1773                 } 
     1981                divFiles.innerHTML = ''; 
     1982 
    17741983 
    17751984                var attach_files = connector.unserialize(data.files); 
    17761985                if (attach_files != null) { 
    17771986                    openTab.countFile[border_id] = attach_files.length; 
    1778                     att_index = countCheck; 
    1779                     for (att_index; att_index < attach_files.length; att_index++) 
    1780                     { 
     1987                    for (var att_index = 0; att_index < attach_files.length; att_index++){ 
    17811988 
    17821989                        var link_attachment = document.createElement("a"); 
    1783                         var fileName = attach_files[att_index].substr(0,attach_files[att_index].indexOf('_SIZE_')); 
    1784                         var fileSize = parseInt(attach_files[att_index].substr(attach_files[att_index].indexOf('_SIZE_')+6))/1024 
    1785                         link_attachment.innerHTML = fileName + " ("+borkb((parseInt(fileSize)*1024))+")"; 
    1786  
    1787                         var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','"+(att_index+2)+"','base64'"; 
     1990 
     1991                        var fileName = Base64.decode(attach_files[att_index].name); 
     1992                        var fileSize = attach_files[att_index].size / 1024; 
     1993                         
     1994                         
     1995                        link_attachment.innerHTML = fileName + " ("+parseInt(fileSize)+" kb)"; 
     1996                                                 
     1997                                                var encoding = /\.eml$/.exec(fileName)? '7bit' : 'base64'; 
     1998                        var href = "'"+folder_id+"','"+data.msg_no+"','"+(att_index)+"','0."+(att_index+1)+"','"+encoding+"'"; 
    17881999 
    17892000                        link_attachment.setAttribute("href", "javascript:download_attachments("+href+")"); 
     
    17932004                        s_tmp = escape(connector.serialize(a_tmp)); 
    17942005 
    1795                         var check_attachment = document.createElement("INPUT"); 
     2006                        var check_attachment = document.createElement("input"); 
    17962007                        check_attachment.type = 'CHECKBOX'; 
    17972008                        check_attachment.name = 'forwarding_attachments[]'; 
    1798                         check_attachment.value = trim(s_tmp); 
    1799  
    1800                         if (!divFiles.childNodes[0]) 
    1801                         { 
    1802                             divFiles.appendChild(document.createElement("BR")); 
    1803                         } 
    1804                         else 
    1805                             { 
    1806                                 divFiles.insertBefore(document.createElement("BR"),divFiles.childNodes[0]); 
    1807                             } 
    1808  
    1809                         divFiles.insertBefore(link_attachment,divFiles.childNodes[0]); 
    1810                         divFiles.insertBefore(check_attachment,divFiles.childNodes[0]); 
    1811  
    1812                         check_attachment.checked = true; 
    1813                         check_attachment.setAttribute("checked", "checked"); 
     2009                        check_attachment.value = s_tmp; 
     2010 
     2011 
    18142012 
    18152013                        divFiles.appendChild(check_attachment); 
    18162014                        divFiles.appendChild(link_attachment); 
     2015 
    18172016                        divFiles.appendChild(document.createElement("br")); 
     2017                                                 
     2018                                                check_attachment.checked = true; 
     2019                        check_attachment.setAttribute("checked", "checked"); 
    18182020                    } 
    18192021                                        }  
     
    18432045                        change_tr_properties(tr_msg, data.msg_no, data.subject); 
    18442046                    } 
    1845                 } else { 
    1846                     refresh(); 
    1847                 } 
    1848  
    1849                 var save_link = Element("save_message_options_"+border_id); 
    1850                 save_link.onclick = ''; 
    1851                 save_link.className = 'message_options_inactive'; 
    1852                 watch_changes_in_msg(border_id); 
    1853                 write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 
    1854                 setTimeout( function(){RichTextEditor.saveFlag = 1;}, 1000 ); 
    1855         } 
    1856 } 
    1857  
    1858 function save_msg(border_id,withImage){ 
     2047 
     2048        } 
     2049                setTimeout( function(){RichTextEditor.saveFlag = 1;RichTextEditor.execPosInstance('body_'+border_id);}, 1000 ); 
     2050        } 
     2051        return null; 
     2052} 
     2053 
     2054function save_msg(border_id,withImage, out){ 
    18592055        if (typeof(withImage) == 'undefined') 
    18602056                withImage = false; 
     
    18672063                var folder_id = openTab.imapBox[border_id]; 
    18682064        else 
    1869                 var folder_id = "INBOX/"+draftsfolder; 
     2065                var folder_id = "INBOX" + cyrus_delimiter + draftsfolder; 
    18702066 
    18712067        if (folder_id == 'INBOX') // and folder name from border 
     
    18792075        tmp_folder_id=folder_id; 
    18802076        message_id = openTab.imapUid[border_id]; 
    1881         var handler_save_msg = function(data){return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id);} 
     2077        var handler_save_msg = function(data){ 
     2078                if(typeof(out) == 'undefined'){ 
     2079                        return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); 
     2080                        var save_link = Element("save_message_options_"+border_id); 
     2081                        if(!withImage){ 
     2082                                if(data.append === true){ 
     2083                                        save_link.className = 'message_options_inactive'; 
     2084                                        save_link.onclick = ''; 
     2085                                        watch_changes_in_msg(border_id);         
     2086                                        write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 
     2087                                } 
     2088                                if(auto){ 
     2089                                        auto = false; 
     2090                                } 
     2091                        } 
     2092                        else{ 
     2093                                write_msg(get_lang('Wait a moment, your image is uploading ...')); 
     2094                                var auto = true; 
     2095                                setTimeout( function(){save_msg(border_id)}, 1000 ); 
     2096                        } 
     2097                }else{ 
     2098                        if(data.append === true){ 
     2099                                write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 
     2100                        }else if(data.append == null){ 
     2101                                write_msg(get_lang('ERROR saving your message.')); 
     2102                        }if(data.append === "Over quota"){ 
     2103                                write_msg(get_lang('ERROR saving your message over quota.')); 
     2104                        } 
     2105                } 
     2106                 
     2107        } 
    18822108 
    18832109        var mail_as_plain = document.getElementById( 'textplain_rt_checkbox_' + border_id ); 
    18842110        mail_as_plain = ( mail_as_plain ) ? mail_as_plain.checked : false; 
    18852111 
     2112        var content_body  = RichTextEditor.getData("body_"+border_id); 
     2113       //Remove imagens do corpo que estao com o checkbox desmarcados 
     2114       var files_checkbox =  $("#divFiles_"+border_id+" input:checkbox"); 
     2115       var files_unchecked = new Array(); 
     2116       for (var i = 0; i < files_checkbox.length; i++) 
     2117            if(files_checkbox[i].checked !== true) 
     2118                files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 
     2119 
     2120       var imagens = content_body.match(/<img[^>]*>/g); 
     2121       if(imagens != null) 
     2122            for (var x = 0; x < imagens.length; x++) 
     2123                for (var xx = 0; xx < files_unchecked.length; xx++) 
     2124                    if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 
     2125                         content_body = content_body.replace(imagens[x],''); 
     2126         
     2127        if(files_unchecked.length > 0) 
     2128            RichTextEditor.setData("body_"+border_id,content_body); 
     2129             
     2130         
    18862131        var textArea = document.createElement("TEXTAREA"); 
    18872132        textArea.style.display='none'; 
    18882133        textArea.name = "body"; 
    1889         textArea.value = RichTextEditor.getData("body_"+border_id); 
     2134        textArea.value = content_body; 
    18902135        var input_folder = document.createElement("INPUT"); 
    18912136        input_folder.style.display='none'; 
     
    19482193        } 
    19492194        else 
    1950                 write_msg('ERROR saving your message.'); 
     2195                write_msg(get_lang('ERROR saving your message.')); 
    19512196} 
    19522197 
     
    19572202        tmp_folder_name=folder_name; 
    19582203        var handler_save_msg = function(data){return_saveas(data,this.tmp_border_id,this.tmp_folder_name);} 
     2204         
     2205       var content_body  = RichTextEditor.getData("body_"+border_id); 
     2206       //Remove imagens do corpo que estao com o checkbox desmarcados 
     2207       var files_checkbox =  $("#divFiles_"+border_id+" input:checkbox"); 
     2208       var files_unchecked = new Array(); 
     2209       for (var i = 0; i < files_checkbox.length; i++) 
     2210            if(files_checkbox[i].checked !== true) 
     2211                files_unchecked.push(connector.unserialize(unescape(trim(files_checkbox[i].value)))); 
     2212 
     2213       var imagens = content_body.match(/<img[^>]*>/g); 
     2214        
     2215       if(imagens != null) 
     2216            for (var x = 0; x < imagens.length; x++) 
     2217                for (var xx = 0; xx < files_unchecked.length; xx++) 
     2218                    if(imagens[x].indexOf('indexPart='+files_unchecked[xx][3].replace(/'/g,'')) !== -1) 
     2219                         content_body = content_body.replace(imagens[x],''); 
     2220         
    19592221        var textArea = document.createElement("TEXTAREA"); 
    19602222        textArea.style.display='none'; 
    19612223        textArea.name = "body"; 
    1962         textArea.value = RichTextEditor.getData("body_"+border_id); 
     2224        textArea.value = content_body; 
    19632225 
    19642226        var input_folder = document.createElement("INPUT"); 
     
    19842246function set_messages_flag(flag, msgs_to_set){ 
    19852247        var handler_set_messages_flag = function (data){ 
    1986                 var _tab_sufix = getTabSufix(); 
    1987                 var _chk_box; 
    1988                 var _fld_box; 
    19892248                if(!verify_session(data)) 
    19902249                        return; 
    1991                 var msgs_to_set = data.msgs_to_set.split(","); // messages ids 
    1992                 var rowids_to_set = data.rowids_to_set.split(","); // rows ids 
     2250                var msgs_to_set = data.msgs_to_set.split(","); 
    19932251 
    19942252                if(!data.status) { 
     
    19962254                        Element('chk_box_select_all_messages').checked = false; 
    19972255                        for (var i = 0; i < msgs_to_set.length; i++) { 
    1998                                 Element("check_box_message_" + rowids_to_set[i]).checked = false; 
    1999                                 remove_className(Element(rowids_to_set[i]), 'selected_msg'); 
     2256                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
     2257                                remove_className(Element(msgs_to_set[i]), 'selected_msg'); 
    20002258                        } 
    20012259                        if(!data.msgs_unflageds) 
     
    20272285                                } 
    20282286                                proxy_mensagens.get_msg(msgs_to_set[i],current_folder, false, setFlag); 
    2029                         } 
    2030  
    2031                         _chk_box = Element("check_box_message_" + rowids_to_set[i]); 
    2032                         _fld_box = (_tab_sufix ? Element("check_box_message_" + msgs_to_set[i]) : null); 
    2033                         if(_chk_box){ 
     2287 
     2288 
     2289                        } 
     2290                        if(Element("check_box_message_" + msgs_to_set[i])){ 
    20342291                                switch(data.flag){ 
    20352292                                        case "unseen": 
    2036                                                 set_msg_as_unread(rowids_to_set[i]); 
    2037                                                 if (_fld_box) 
    20382293                                                    set_msg_as_unread(msgs_to_set[i]); 
    2039                                                 _chk_box.checked = false; 
     2294                                                if(results_search_messages != "")  
     2295                                                        set_msg_as_unread(results_search_messages, true); 
     2296                                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    20402297                                                break; 
    20412298                                        case "seen": 
    2042                                                 set_msg_as_read(rowids_to_set[i], false); 
    2043                                                 if (_fld_box) 
    2044                                                         set_msg_as_read(msgs_to_set[i]); 
    2045                                                 _chk_box.checked = false; 
     2299                                                set_msg_as_read(msgs_to_set[i], false); 
     2300                                                if(results_search_messages != "")  
     2301                                                        set_msg_as_read(results_search_messages, false, true); 
     2302                                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    20462303                                                break; 
    20472304                                        case "flagged": 
    2048                                                 set_msg_as_flagged(rowids_to_set[i]); 
    2049                                                 if (_fld_box) 
    20502305                                                    set_msg_as_flagged(msgs_to_set[i]); 
    2051                                                 _chk_box.checked = false; 
     2306                                                if(results_search_messages != "")  
     2307                                                        set_msg_as_flagged(results_search_messages, true); 
     2308                                                document.getElementById("check_box_message_" + msgs_to_set[i]).checked = false; 
    20522309                                                break; 
    20532310                                        case "unflagged": 
    2054                                                 set_msg_as_unflagged(rowids_to_set[i]); 
    2055                                                 if (_fld_box) 
    20562311                                                    set_msg_as_unflagged(msgs_to_set[i]); 
    2057                                                 _chk_box.checked = false; 
     2312                                                if(results_search_messages != "")  
     2313                                set_msg_as_unflagged(results_search_messages, true); 
     2314                                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    20582315                                                break; 
    20592316                                } 
     
    20642321 
    20652322        var folder = get_current_folder(); 
    2066         if (msgs_to_set == 'get_selected_messages') { 
     2323        if (msgs_to_set == 'get_selected_messages') 
    20672324                var msgs_to_set = this.get_selected_messages(); 
    2068                 if ( (msgs_to_set) && (msgs_to_set.match(/_s/)) ) { 
    2069                         folder = get_selected_messages_folder(); 
    2070                         if (!folder) { 
    2071                                 alert(get_lang("You cant manipulate messages from multiple folders on search")); 
    2072                                 return; 
    2073                         } 
    2074                 } 
    2075         } 
    20762325        else 
    20772326                folder = Element("input_folder_"+msgs_to_set+"_r").value; 
    20782327 
    20792328        if (msgs_to_set) 
    2080                 if (folder && proxy_mensagens.is_local_folder(folder)) 
    2081                         expresso_local_messages.set_messages_flag(msgs_to_set, flag); //expresso_local_messages.set_messages_flag(msgs_to_set.replace(/_s[^,]*/g,""), flag); 
    2082                 else 
    20832329                cExecute ("$this.imap_functions.set_messages_flag&folder="+folder+"&msgs_to_set="+msgs_to_set+"&flag="+flag, handler_set_messages_flag); 
    20842330        else 
     
    21372383        var folder= Element('border_id_0').innerHTML; 
    21382384        var thead = Element('divScrollHead_'+numBox).firstChild.firstChild.innerHTML; 
     2385         
     2386        msgs_number = get_selected_messages(); 
     2387        if(msgs_number == false){ 
    21392388        var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 
     2389        }else{ 
     2390                msgs_number = msgs_number.split(","); 
     2391                var tbody = ""; 
     2392                for(var i = 0; i < msgs_number.length; i++){ 
     2393                        tbody += "<tr id="+msgs_number[i]+" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]).innerHTML+"</tr>"; 
     2394                }        
     2395        } 
    21402396        var print_width = screen.width - 200; 
    21412397        var x = ((screen.width - print_width) / 2); 
     
    21512407        thead = thead.replace(seekDot, "style='display:none'"); 
    21522408        tbody = tbody.replace(seekDot, "style='display:none'"); 
    2153  
     2409        thead = thead.replace("<td style=\"cursor: pointer;\"></td>", "");               
     2410        thead = thead.replace("<td style=\"cursor: pointer;\" style='display:none'><input title=\"Selecionar todas as mensagens.\" class=\"checkbox\" id=\"chk_box_select_all_messages\" type=\"checkbox\"></td>", ""); 
    21542411        while (1){ 
    21552412                try{ 
     
    21572414                        var html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
    21582415                        + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
    2159                         + '<body class="print-all-messages"><h1>ExpressoLivre - ExpressoMail</h1>' 
     2416                    + cabecalho + '</h4><hr>'  
    21602417                        + '<h2>'+folder+'</h2><hr/><blockquote><font size="2">' 
    21612418                        + '<table width="100%" cellpadding="0" cellspacing="0">' 
     
    22042461                else if(countAtt > 1)  
    22052462                        for (var i = 1; i <attachments.getElementsByTagName('a').length; i++)  
    2206                                 att += attachments.getElementsByTagName('a')[i].innerHTML + " | ";  
     2463                                att += " | " + attachments.getElementsByTagName('a')[i].innerHTML;  
    22072464        }  
    22082465                 
    22092466        var body = Element('body_'+border_ID);  
    22102467         
    2211         if(!is_ie) 
    2212             { 
    2213                 var link = location.href.replace(/\/expressoMail1_2\/(.*)/, ""); 
    2214                 var tab_tags = body.getElementsByTagName("IMG"); 
    2215                 for(var i = 0; i < tab_tags.length;i++) 
    2216                     { 
    2217                         var _img = document.createElement("IMG"); 
    2218                         _img.src = tab_tags[i].src; 
    2219                         if(tab_tags[i].src.toUpperCase().indexOf('/INC/SHOW_EMBEDDED_ATTACH.PHP?MSG_FOLDER=') > -1) 
    2220                             { 
    2221                                 _img.src = link + '/expressoMail1_2'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('/INC/SHOW_EMBEDDED_ATTACH.PHP?MSG_FOLDER=')); 
    2222                             } 
    2223                         tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]); 
    2224                     } 
    2225             } 
    22262468        var print_width = screen.width - 200; 
    22272469        var x = ((screen.width - print_width) / 2); 
     
    22582500                try{ 
    22592501                        var html ='<body>'; 
    2260                         html += "<h4>ExpressoLivre - ExpressoMail</h4><hr>"; 
     2502                        html += cabecalho + '</h4><hr>'; 
    22612503                        html += '<table><tbody>'; 
    22622504                        if(sender) 
     
    22892531                        html += "</tbody></table><hr>"; 
    22902532                        window_print.document.write(html + body.innerHTML); 
    2291                         if(!is_ie){ 
     2533 
    22922534                                var tab_tags = window_print.document.getElementsByTagName("IMG"); 
     2535                        var link = location.href.replace(/\/expressoMail1_2\/(.*)/, ""); 
    22932536                                for(var i = 0; i < tab_tags.length;i++){ 
    2294                                         var _img = document.createElement("IMG"); 
    2295                                         _img.src = tab_tags[i].src; 
     2537                                var _img = tab_tags[i].cloneNode(true); 
     2538                                if(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=') > -1) 
     2539                                    _img.src = link + '/expressoMail1_2/'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=')); 
     2540 
    22962541                                        tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]); 
    22972542                                } 
    2298                         } 
     2543                         
    22992544                        break; 
    23002545                } 
     
    23192564                        if (get_current_folder() == 'INBOX'+cyrus_delimiter+trashfolder){ 
    23202565                                draw_paging(0); 
    2321                                 kill_current_box(); 
     2566                                remove_rows(document.getElementById("table_box"));                               
    23222567                                Element('tot_m').innerHTML = 0; 
    23232568                                Element('new_m').innerHTML = 0; 
     
    23392584                if (get_current_folder() == 'INBOX'+cyrus_delimiter+spamfolder){ 
    23402585                        draw_paging(0); 
    2341                         kill_current_box(); 
     2586                        remove_rows(document.getElementById("table_box")); 
    23422587                } 
    23432588                tree_folders.getNodeById('INBOX'+cyrus_delimiter+spamfolder).alter({caption: get_lang("Spam")}); 
     
    23672612                        write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')); 
    23682613                } 
    2369                 else 
    2370                         download_attachments(null, null, data, null,null,'mensagens.zip'); 
     2614                else{ 
     2615                        var filename = 'mensagens.zip';  
     2616                        if (data.match(/\.eml$/gi)) {  
     2617                                filename = 'fonte_da_mensagem.eml';  
     2618                        }  
     2619                        download_attachments(null, null, data, null,null,filename); 
     2620                } 
    23712621        } 
    23722622 
     
    23792629} 
    23802630 
    2381 function select_all_search_messages(select, id){ 
    2382         var search_box = Element("table_resultsearch_" + getNumBoxFromTabId(id)).firstChild; 
    2383         var felement = search_box.firstChild; 
    2384         while(felement) 
    2385         { 
    2386                 if (select) { 
    2387                         felement.firstChild.firstChild.checked = true; 
    2388                         add_className(felement, 'selected_msg'); 
    2389                 } 
    2390                 else { 
    2391                         felement.firstChild.firstChild.checked = false; 
    2392                         remove_className(felement, 'selected_msg'); 
    2393                 } 
    2394                 felement = felement.nextSibling; 
    2395         } 
     2631function select_all_search_messages(select, aba){ 
     2632           jQuery(function() { 
     2633        if(select){ 
     2634                        jQuery("#"+aba+" tr").each(function(i, o) { 
     2635                         
     2636                                o.firstChild.firstChild.checked = true; 
     2637                                add_className(o, 'selected_msg'); 
     2638                        });              
     2639                }else{ 
     2640                        jQuery("#"+aba+" tr").each(function(i, o) { 
     2641                         
     2642                                o.firstChild.firstChild.checked = false; 
     2643                                remove_className(o, 'selected_msg'); 
     2644                        }); 
     2645        } 
     2646        }); 
     2647 
     2648         
     2649 
    23962650} 
    23972651 
     
    24262680        } 
    24272681} 
     2682function save_image2(info){  
     2683        var obj = jQuery.parseJSON(unescape(info));  
     2684        download_attachments(obj.folder, obj.message, obj.thumbIndex, obj.pid, obj.encoding, obj.type.replace("/","."));  
     2685}  
    24282686 
    24292687function nospam(msgs_number, border_ID, folder){ 
    24302688        if (folder == 'null') 
    24312689                folder = get_current_folder(); 
    2432         var new_folder  = 'INBOX'; 
     2690        var new_folder = ''; 
     2691        if(folder.substr(0,4) == 'user'){ 
     2692                arrayFolder = folder.split(cyrus_delimiter); 
     2693                new_folder = 'user'+cyrus_delimiter+arrayFolder[1]; 
     2694        } 
     2695        else{ 
     2696                new_folder = 'INBOX'; 
     2697        } 
    24332698        var new_folder_name = get_lang('INBOX'); 
    24342699        var handler_move_msgs = function(data){ 
     
    24492714 
    24502715        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) 
    2451                 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=false"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 
     2716                cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=false"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+0+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 
    24522717        else 
    24532718                write_msg(get_lang('No selected message.')); 
     
    24572722        if (folder == 'null') 
    24582723                folder = get_current_folder(); 
    2459         var new_folder = 'INBOX'+cyrus_delimiter+'Spam'; 
     2724        var new_folder = ''; 
     2725        if(folder.substr(0,4) == 'user') 
     2726        {        
     2727                arrayFolder = folder.split(cyrus_delimiter); 
     2728                new_folder = 'user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+spamfolder; 
     2729        } 
     2730        else 
     2731        { 
     2732                new_folder = 'INBOX' + cyrus_delimiter + spamfolder; 
     2733        } 
    24602734        var new_folder_name = 'Spam'; 
     2735        var not_opem_previus = true; 
    24612736        var handler_move_msgs = function(data){ 
    2462                 proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    2463                 if (openTab.type[currentTab] > 1) 
     2737                proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus); 
     2738                if (openTab.type[currentTab] > 1){ 
     2739                        if(preferences.delete_and_show_previous_message == 1) 
    24642740                        delete_border(currentTab,'false'); 
     2741        } 
    24652742        } 
    24662743 
     
    24712748 
    24722749        if(parseInt(msgs_number) > 0 || msgs_number.length > 0) 
    2473                 cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=true"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+preferences.delete_and_show_previous_message+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 
     2750                cExecute ("$this.imap_functions.spam&folder="+folder+"&spam=true"+"&msgs_number="+msgs_number+"&border_ID="+border_ID+"&sort_box_type="+sort_box_type+"&sort_box_reverse="+sort_box_reverse+"&reuse_border="+border_ID+"&new_folder="+new_folder+"&new_folder_name="+new_folder_name+"&get_previous_msg="+0+"&cyrus_delimiter="+cyrus_delimiter, handler_move_msgs); 
    24742751        else 
    24752752                write_msg(get_lang('No selected message.')); 
     
    25652842                        if ( er.test(wfolders_tree._selected.id) ) 
    25662843                        { 
    2567                                 archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 
    2568                                 cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 
     2844                                alert( "Mensagens não podem ser importadas em pastas locais" ); 
     2845                                //archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 
     2846                                //cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 
    25692847                        } 
    25702848                                                 else{ 
     
    26142892} 
    26152893function import_calendar(data){ 
     2894    var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
     2895 
    26162896        function handler_import_calendar(data){ 
    26172897                if(data === true){ 
    26182898                        write_msg(get_lang("The event was imported successfully.")); 
    26192899                } 
     2900            else if( data['url'] ) 
     2901            { 
     2902                var form = document.createElement( "form" ); 
     2903 
     2904                form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
     2905                form.setAttribute( "method", "POST" ); 
     2906 
     2907                document.body.appendChild( form ); 
     2908 
     2909                form.submit(); 
     2910            } 
     2911            else 
     2912                write_msg(get_lang(data)); 
    26202913        } 
    26212914        if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
    2622                         cExecute('$this.db_functions.import_vcard&msg_folder='+data,handler_import_calendar); 
    2623         } 
     2915                    cExecute( import_url +'&from_ajax=true',handler_import_calendar); 
     2916    } 
     2917} 
     2918function open_msg_part(data){ 
     2919        var handler_open_msg_part = function (data) 
     2920        { 
     2921            if(data.append == 1) 
     2922            { 
     2923                proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,show_msg); 
     2924                partMsgs.push(data.msg_number); 
     2925        } 
     2926            else 
     2927               write_msg(data.append); 
     2928        } 
     2929        cExecute('$this.imap_functions.ope_msg_part&msg_folder='+data+'&save_folder=INBOX'+cyrus_delimiter+trashfolder , handler_open_msg_part);         
    26242930} 
    26252931function hack_sent_queue(data,rowid_message) { 
     
    26963002                var er_Email =  new RegExp("<(.*?)>");  
    26973003                // TODO Use validateEmail of common functions ! 
    2698                 var er_ValidaEmail = new RegExp("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"); 
     3004                var er_ValidaEmail = new RegExp("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$"); 
    26993005 
    27003006                for (i=0; i < arrayEmailsFull.length; i++){ 
     
    27023008                        tempEmail = email == null  ? arrayEmailsFull[i]:email[1]; 
    27033009                        tempEmail = tempEmail.replace(/^\s+|\s+$/g,""); 
     3010                         
    27043011                        if (tempEmail != '') { 
    27053012                                singleEmail = er_ValidaEmail.exec(tempEmail); 
    2706  
    27073013                                if (singleEmail == null) { 
    27083014                                        arrayInvalidEmails[0] = true; 
    2709                                         arrayInvalidEmails[1] += (email == null ? arrayEmailsFull[i] : email[1]) + "; "; 
     3015                                        arrayInvalidEmails[1] += (email == null ? arrayEmailsFull[i] : email[1]) + ""; 
    27103016                                } 
    27113017                        } 
  • trunk/expressoMail1_2/js/messages_controller.js

    r4826 r5134  
    1313                        var real_folder = folder.substr(6);              
    1414                        var msgs = expresso_local_messages.get_local_range_msgs(real_folder,msg_range_begin,preferences.max_email_per_page,sort_box_type,sort_box_reverse,search_box_type,preferences.preview_msg_subject,preferences.preview_msg_tip); 
    15                         eval('call_back(msgs)'); 
     15                        if(call_back)  
     16                                call_back(msgs); 
     17                        else{ 
     18                                call_back = function(data) 
     19                                { 
     20                                        alternate_border(0);  
     21                                        draw_box(data, get_current_folder()); 
     22                                }  
     23                                call_back(msgs); 
     24                        } 
    1625                        draw_tree_local_folders(); 
    1726                }else { 
     
    3847                if (msgs_number == 'selected') 
    3948                        msgs_number = get_selected_messages(); 
    40                          
    41                 if (!this.is_local_folder(folder))  
     49                if (!this.is_local_folder(folder)){ 
    4250                        delete_msgs(folder, msgs_number, border_ID); 
    43                 else { 
     51                }else { 
     52                        if((folder != 'local_Trash') && (expresso_local_messages.as_trash())){ 
     53                                expresso_local_messages.move_messages('Trash', msgs_number); 
     54                                this.aux_interface_remove_mails(msgs_number, 'local_Trash', border_ID); 
     55                                draw_tree_local_folders(); 
     56                                refresh();  
     57                        }else{ 
    4458                        expresso_local_messages.delete_msgs(msgs_number, border_ID); 
    4559                        draw_tree_local_folders(); 
    46                          update_local_box(); 
     60                                refresh(); 
     61                        } 
    4762                } 
    4863        } 
     
    236251                else  
    237252                        if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais... 
     253                                if(new_folder_name == 'Spam'){ 
     254                                        move_msgs_not_previus(folder, msgs_number, border_ID, new_folder, new_folder_name); 
     255                                }else{ 
    238256                                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    239257                        } 
    240                         else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { 
     258                        }else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { 
    241259                                if(msgs_number=='selected') 
    242260                                        archive_msgs(folder,new_folder); 
    243261                                else 
    244262                                        archive_msgs(folder,new_folder,msgs_number); 
     263 
     264                                 
    245265                                draw_tree_local_folders(); 
     266                                refresh(); 
    246267                        } 
    247268                        else { 
     
    290311         
    291312        messages_proxy.prototype.aux_interface_remove_mails = function(msgs_number,new_folder_name,border_ID,previous_msg) { 
     313                if(!msgs_number) 
     314                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
     315                         
     316                if(msgs_number === ""){ 
     317                        write_msg(get_lang('No selected message.'));  
     318                        return; 
     319                } 
     320                 
    292321                Element('chk_box_select_all_messages').checked = false; 
    293322                mail_msg = Element("tbody_box"); 
    294323                msgs_number = msgs_number.split(","); 
    295324                var msg_to_delete; 
     325                this.previous = 0; 
    296326                for (var i=0; i<msgs_number.length; i++){ 
    297327                        msg_to_delete = Element(msgs_number[i]); 
     
    299329                                if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') ) 
    300330                                        select_msg('null', 'down'); 
     331                                         
     332                                  if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && currentTab.toString().indexOf("_r") > 0) 
     333                                for(var ii=0; ii < mail_msg.rows.length; ii++){ 
     334                                        if(mail_msg.rows[ii] === msg_to_delete){ 
     335                                                if(ii == 0){ 
     336                                                        break; 
     337                                                }else{ 
     338                                                        this.previous = mail_msg.rows[(ii - 1)].attributes[0]; 
     339                                                        this.previous = parseInt(this.previous.value);  
     340                                                        break; 
     341                                                } 
     342                                        } 
     343                                } 
    301344                                mail_msg.removeChild(msg_to_delete); 
    302345                        } 
     
    307350                        write_msg(get_lang("The messages were moved to folder ") + new_folder_name); 
    308351 
     352                if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && this.previous){ 
     353                        proxy_mensagens.get_msg(this.previous, folder, true, show_msg); 
     354                }else if(currentTab != 0){ 
    309355                if (border_ID != '' && border_ID != 'null'){ 
    310356                                delete_border(border_ID,'false'); 
     357                        }else{ 
     358                                delete_border(currentTab,'false'); 
     359                        } 
    311360                } 
    312361                if(folder == get_current_folder()) 
    313362                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - msgs_number.length;                  
    314                 refresh();               
    315                  
    316363        } 
    317364 
  • trunk/expressoMail1_2/js/report_window.js

    r4830 r5134  
    1111        report_window.prototype.make_report_window = function(ID_msg){ 
    1212                _this = this; 
    13                 var title = get_lang("Describe the problem to report to technical support (optional)"); 
     13                var title = get_lang("More information about the problem (optional)"); 
    1414                 
    1515                tree                              = document.createElement("DIV"); 
     
    5252                        msg_confirmation.style.width = "240px"; 
    5353                        msg_confirmation.style.height = "350px"; 
    54                         msg_confirm = get_lang("Attention! The original message will be sent along with the original source of the email message"); 
     54                        msg_confirm = get_lang("Attention! The information contained in the e-mail will be sent to the support team"); 
    5555                        msg_confirmation.innerHTML = "<br><b><font color='BLACK' nowrap>"+msg_confirm+"</font></b>"; 
    5656                                tree.appendChild(msg_confirmation); 
  • trunk/expressoMail1_2/js/rich_text_editor.js

    r5083 r5134  
    9999        var textArea = document.createElement("TEXTAREA"); 
    100100        textArea.id = pObj; 
    101         textArea.style.height = '500'; 
    102101        textArea.style.width = '100%'; 
    103102        parentDiv.appendChild(textArea); 
     
    367366           if(selection !== undefined && selection !== null) var selectionRanges = selection.getRanges();  
    368367 
    369            editor.insertHtml('<div><br type="_moz"></div>'+data); 
     368           var fontSize = ''; 
     369           var fontFamily = ''; 
    370370            
    371           if(selection !== null) selection.selectRanges(selectionRanges);  
     371           if(typeof(preferences.font_size_editor) !== 'undefined') 
     372               fontSize = 'font-size:' + preferences.font_size_editor; 
     373                
     374           if(fontSize != '')  
     375               fontFamily = ';' 
     376            
     377           if(typeof(preferences.font_family_editor) !== 'undefined') 
     378               fontFamily += 'font-family:' + preferences.font_family_editor + ';';  
     379             
     380           var divBr = '<div style="'+fontSize+fontFamily+'"><br type="_moz"></div>'; 
    372381           
    373           editor.execCommand("autogrow"); //Atualiza tamanho do editor 
     382           editor.insertHtml(divBr+divBr+divBr+data); 
     383            
     384           if(selection !== null) selection.selectRanges(selectionRanges);  
    374385           
    375386          //Caso não for uma resposta votla o foco para o input to 
     
    396407         CKEDITOR.remove(CKEDITOR.instances[id]); 
    397408      
     409    var height = document.body.scrollHeight; 
     410    height -= 425; 
     411      
    398412     $('#'+id).ckeditor(  
    399413          function() {RichTextEditor.execPosInstance(id)}, 
    400414          { 
    401               toolbar:'mail'       
     415              toolbar:'mail', 
     416              height: height 
    402417          });  
    403418 
  • trunk/expressoMail1_2/js/search.js

    r4993 r5134  
    1616                this.txtfields          = new Array("txt_ass","txt_de","txt_body","txt_para","txt_cc","txt_cco", "since_date", "before_date", "on_date"); 
    1717                this.selectFields       = new Array("flagged", "seen", "answered", "recent"); 
    18                 this.localResults   = 0; 
    1918        } 
    2019 
     
    227226 
    228227        // Gears - local 
    229                 if (preferences.use_local_messages == 1 && EsearchE.localResults != 0) 
     228                if ( preferences.use_local_messages == 1 ) 
    230229                { 
    231230                        temp = expresso_local_messages.list_local_folders(); 
     
    234233                                local_folders.push(temp[x][0]); 
    235234                        } 
     235                } 
     236                 
    236237                    if ( local_folders.length > 0 ) 
    237238                        _gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    238                         _data['gears_num_msgs'] = _gears.length; 
    239                 }else{ 
    240                     _data['gears_num_msgs']     = 0; 
    241                 } 
    242239 
    243240                _data['data']                   = data['data']; 
    244241                _data['num_msgs']               = data['num_msgs']; 
    245                  
     242                _data['gears_num_msgs'] = _gears.length; 
    246243 
    247244                delete_border( data['currentTab'], false); 
     
    263260  
    264261                if(size > parseInt(preferences.max_email_per_page)) {  
    265                         this.totalPages = parseInt(size/preferences.max_email_per_page);  
     262                        this.totalPages = Math.ceil(size/preferences.max_email_per_page);  
    266263                        if((size/preferences.max_email_per_page) > this.totalPages)  
    267264                        this.totalPages++;  
     
    270267                if(this.page != 0) {  
    271268                        _link = document.createElement("A");  
     269                if( this.value ) 
     270                  _link.href  = 'javascript:EsearchE.quickSearchMail( false, '+0+', false, "'+currentTab+'" )';  
     271                else{ 
    272272            _link.href  = 'javascript:EsearchE.page=0;';  
    273273            _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0&current_tab='+currentTab+'");';  
     274        }  
    274275        }  
    275276        else {  
     
    319320                                var _link = document.createElement('A');  
    320321                                _link.innerHTML = ( _page + 1 ) + "&nbsp;&nbsp;";  
     322                                if( this.value ) 
     323                                _link.href = 'javascript: EsearchE.quickSearchMail( false, '+i+', false, "'+currentTab+'" )'; 
     324                                else{ 
    321325                                _link.href  = 'javascript:EsearchE.page='+i+';';  
    322326                                _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+_page+'&current_tab='+currentTab+'");';  
     327                        }  
    323328                        }  
    324329                        _link.innerHTML = "&nbsp;...&nbsp;";  
     
    339344                        if(this.page != (this.totalPages - 1)) {  
    340345                                _link = document.createElement("A");  
     346                                if( this.value ) 
     347                                _link.href = 'javascript: EsearchE.quickSearchMail( false, '+(this.totalPages-1)+', false, "'+currentTab+'" )'; 
     348                                else{ 
    341349                                _link.href  = 'javascript:EsearchE.page='+(this.totalPages-1)+';';  
    342350                                _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+(this.totalPages-1)+'&current_tab='+currentTab+'");';  
     351                        }  
    343352                        }  
    344353                else {  
     
    360369                var sort_type   = sortType; 
    361370 
     371                if( this.value ) 
     372                  return this.quickSearchMail( false, false, sortType, border_id ); 
     373  
    362374                var is_local = border_id.match('.*_local_.*'); 
    363375 
     
    383395                        if ( local_folders.length > 0 ){ 
    384396                            expresso_local_messages.setSortType(sortType); 
    385                             gears = expresso_local_messages.search( expresso_local_messages.getFolders(), expresso_local_messages.getFilter() ); 
     397                            gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    386398                        } 
    387399                } 
     
    396408            if (gears.length > 0) 
    397409            { 
    398                 this.localResults = gears.length; 
    399410                allMsg['data_gears']                    = gears; 
    400             }else{ 
    401                  this.localResults = 0; 
    402411            } 
    403412                 
     
    434443 
    435444                        if ( local_folders.length > 0 ) 
    436                                 gears = expresso_local_messages.search( expresso_local_messages.getFolders(), expresso_local_messages.getFilter() ); 
     445                                gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    437446 
    438447                        data['data_gears']      = gears; 
     
    473482                { 
    474483                        var td = document.createElement("TD"); 
     484                        add_className(td, 'td_msg'); 
    475485                        if (j == 0) 
    476486                        { 
     
    480490                                        chk_onclick = "changeBgColor(window.event,"+uid_msg+");"; 
    481491                                else 
    482                                         chk_onclick = "changeBgColor(event,"+uid_msg+");"; 
    483                                 var td1 = '<input type="checkbox" onclick="' + chk_onclick + '" id="check_box_message_'+tr.id+'"></input>'; 
     492                                        chk_onclick = "changeBgColor(event,"+uid_msg+");";                              //'search_' + numBox 
     493                                var td1 = '<input type="checkbox" onclick="' + chk_onclick + '" id="' + border_id + '_check_box_message_'+uid_msg+'"></input>'; 
    484494 
    485495                        } 
     
    510520                        { 
    511521                                td.setAttribute("width", colSizes[1][3]); 
    512                                 td.id = "td_message_important_"+tr.id; 
     522                                td.id = "td_message_important_"+uid_msg; 
    513523                                if (aux.flag.match("F")) 
    514524                                { 
     
    551561                        if( j == 6 ) 
    552562                        { 
    553                                 if (aux.from.length > 29) 
     563                                if ( aux.from !== null && aux.from.length > 29) 
    554564                                        aux.from = aux.from.substr(0,29) + "..."; 
    555565 
     
    634644 
    635645        // Form resultado 
    636         searchE.prototype.mount_result = function( Data, sort_type, keep_border ) 
     646        searchE.prototype.mount_result = function( Data, sort_type, keep_border, keep_filled, division ) 
    637647        { 
    638648                var data = ( Data['data'] ) ? Data['data'] : Data['data_gears']; 
     
    648658                        sort_type = this.sort_type; 
    649659 
    650                 var tab = numBox; 
    651  
    652660                if ( keep_border ) { 
    653661                        var border_id = currentTab; 
    654662                } 
    655663                else { 
    656                         tab = count_borders() + 1; 
     664                        numBox++; 
    657665 
    658666                        if( Data['data'] ) 
    659                                 var border_id = create_border(get_lang("Server Results"), "search_" + tab); 
     667                                var border_id = create_border(get_lang("Server Results"), "search_" + numBox); 
    660668 
    661669                        if( Data['data_gears']) 
    662                                 var border_id = create_border(get_lang("Local Results"), "search_local_msg" + tab); 
     670                                var border_id = create_border(get_lang("Local Results"), "search_local_msg" + numBox); 
    663671                } 
    664672 
     
    667675 
    668676        currentTab = border_id; 
    669         openTab.content_id[currentTab] = Element('content_id_search_' + tab); 
     677        openTab.content_id[currentTab] = Element('content_id_search_' + numBox); 
    670678        openTab.type[currentTab] = 1; 
    671679                openTab.condition[currentTab] = this.condition; 
     
    673681                if ( keep_border ) { 
    674682                        var content_search =  Element('content_id_' + border_id); 
    675                         var div_scroll_result = Element("divScrollMain_"+tab); 
     683                        var div_scroll_result = Element("divScrollMain_"+numBox); 
     684 
    676685                        content_search.removeChild(div_scroll_result); 
     686 
     687                        if( !keep_filled ) 
     688                            div_scroll_result = false; 
    677689                } 
    678690 
    679691                var table = document.createElement("TABLE"); 
    680                         table.id    = "table_resultsearch_" + tab; 
     692                        table.id    = "table_resultsearch_" + numBox; 
    681693                        table.frame = "void"; 
    682694                        table.rules = "rows"; 
     
    686698 
    687699                var tbody               = document.createElement("TBODY"); 
    688                         tbody.id        = "tbody_box_" + tab; 
     700                        tbody.id        = "tbody_box_" + numBox; 
    689701 
    690702                for( var i=0; i < data.length; i++) 
    691703                { 
     704                        if(data[i] !== null){ 
    692705                        var tr = EsearchE.make_tr_message(data[i],border_id,i); 
    693  
    694706            tbody.appendChild(tr); 
    695707                } 
     708                } 
    696709                 
    697710                //global_search++; //Tabs from search must not have the same id on its tr's // use numBox instead of this! 
     
    700713 
    701714                var colgr_element = buildColGroup(1); 
    702                 colgr_element.setAttribute("id","colgroup_main_"+tab); 
     715                colgr_element.setAttribute("id","colgroup_main_"+numBox); 
    703716                table.appendChild(colgr_element); 
    704717 
    705718                var content_search =  Element('content_id_' + border_id); 
     719                 
     720                if( !div_scroll_result ) 
     721                { 
    706722                var div_scroll_result = document.createElement("DIV"); 
    707                 div_scroll_result.id = "divScrollMain_"+tab; 
     723                    div_scroll_result.id = "divScrollMain_"+numBox; 
    708724                div_scroll_result.style.overflowY = "scroll"; 
    709725                div_scroll_result.style.overflowX = "hidden"; 
     
    714730                        div_scroll_result.style.width   ="100%"; 
    715731                } 
     732                } 
     733                if( division ) 
     734                { 
     735                    var _div = document.createElement("div"); 
     736                    _div.className = 'local-messages-search-warning'; 
     737                    _div.innerHTML = division; 
     738                    div_scroll_result.appendChild(_div); 
     739                } 
    716740 
    717741                if(is_ie) 
     
    730754                        table_element.addEventListener("mousedown",startColResize,false); 
    731755                } 
    732                 table_element.setAttribute("id", "table_message_header_box_"+tab); 
     756                table_element.setAttribute("id", "table_message_header_box_"+numBox); 
    733757                table_element.className = "table_message_header_box"; 
    734758                if (!is_ie) 
     
    772796                 
    773797                // Ordernar Pasta 
    774                 if ( sort_type == 'SORTBOX') 
     798                if ( sort_type == 'SORTBOX' /*|| sort_type == 'SORTBOX_REVERSE'*/ ) 
    775799                { 
    776800                        if( Data['data'] ) 
     
    801825                td_element2 = createTDElement(1,6,"th_resizable","left"); 
    802826 
    803                 if (sort_type == 'SORTFROM') 
     827                if (sort_type == 'SORTFROM' || sort_type == 'SORTWHO' /*|| sort_type == 'SORTWHO_REVERSE' || sort_type == 'SORTFROM_REVERSE'*/ ) 
    804828                { 
    805829                        if(Data['data']) 
     
    830854                td_element3 = createTDElement(1,7,"th_resizable","left"); 
    831855                 
    832                 if (sort_type == 'SORTSUBJECT') 
     856                if (sort_type == 'SORTSUBJECT' /*|| sort_type == 'SORTSUBJECT_REVERSE'*/) 
    833857                { 
    834858                        if( Data['data']) 
     
    859883                td_element4 = createTDElement(1,8,"th_resizable","center"); 
    860884                 
    861                 if ( sort_type == 'SORTDATE' ) 
     885                if ( sort_type == 'SORTDATE' /*|| sort_type == 'SORTDATE_REVERSE'*/ ) 
    862886                { 
    863887                        if( Data['data'] ) 
     
    888912                td_element5 = createTDElement(1,9,"th_resizable","center"); 
    889913                 
    890                 if ( sort_type == 'SORTSIZE' ) 
     914                if ( sort_type == 'SORTSIZE' /*|| sort_type == 'SORTSIZE_REVERSE'*/ ) 
    891915                { 
    892916                        if( Data['data'] ) 
     
    928952 
    929953                var colgr_element = buildColGroup(1); 
    930                 colgr_element.setAttribute("id","colgroup_head_"+tab); 
     954                colgr_element.setAttribute("id","colgroup_head_"+numBox); 
    931955                table_element.appendChild(colgr_element); 
    932956 
    933                 if( parseInt( Data['gears_num_msgs'] ) > 0 && !Data['data_gears']) 
     957                if( parseInt( Data['gears_num_msgs'] ) > 0 && !keep_filled) 
    934958                { 
    935959                        var _div_gears = document.createElement("div"); 
     
    941965                }                
    942966 
    943                 var _divScroll = document.getElementById("divScrollHead_"+tab); 
    944  
    945                 if(!_divScroll){ 
     967                var _divScroll = document.getElementById("divScrollHead_"+numBox); 
     968                 
     969                if( _divScroll ){ 
     970                        content_search.removeChild(_divScroll); 
     971                        _divScroll = false; 
     972                } 
     973 
    946974                        _divScroll = document.createElement("DIV"); 
    947                         _divScroll.id = "divScrollHead_"+tab; 
     975                _divScroll.id = "divScrollHead_"+numBox; 
    948976                        _divScroll.style.overflowY = "hidden"; 
    949977                        _divScroll.style.overflowX = "hidden"; 
     
    955983                        _divScroll.appendChild(table_element); 
    956984                        content_search.appendChild(_divScroll); 
    957                 } 
     985 
    958986                /*end of "put header"*/ 
    959987                if ( !expresso_offline ) 
     
    10671095 
    10681096        // Search; 
    1069         searchE.prototype.func_search = function(value) 
     1097        searchE.prototype.func_search_complex = function() 
    10701098        { 
    10711099                var fields = "##"; 
     
    11111139                    } 
    11121140            } 
    1113  
     1141                        if ((trim(Element("since_date").value) != "") && (trim(Element("before_date").value) != "")){ 
     1142                                if(!(validate_date_order(trim(Element("since_date").value), trim(Element("before_date").value)))){ 
     1143                                        alert(get_lang('Invalid date on field %1', get_lang('Before Date'))); 
     1144                    return false; 
     1145                                } 
     1146                        } 
    11141147            if(trim(Element("on_date").value) != "") 
    11151148            { 
     
    11711204                } 
    11721205            } 
    1173  
    1174             if ( value ) 
    1175             { 
    1176                                 fields = "##ALL " +  "<=>" +url_encode(value) + "##"; 
    1177                         } 
    11781206 
    11791207                if(fields == "##") 
     
    12341262            { 
    12351263                var allMsg      = [3]; 
     1264                var count       = ( data['num_msgs'] ) ?  data['num_msgs'] : "0"; 
    12361265                var tmp         = []; 
    12371266 
     
    12411270                    tmp = expresso_local_messages.search( local_folders, fields ); 
    12421271                } 
    1243                 var count = data['num_msgs'] ?  data['num_msgs'] : tmp.length > 0 ? tmp.length : "0"; 
    1244                  EsearchE.localResults = tmp.length; 
     1272 
    12451273                if( data['num_msgs'] ) 
    12461274                { 
     
    12541282                } 
    12551283 
    1256                 if( data['num_msgs'] == 0 && tmp.length < 0) 
     1284                if( ( data['num_msgs'] ) == 0 ) 
    12571285                { 
    12581286                    alert( get_lang("None result was found.") ); 
     
    12601288                else 
    12611289                { 
    1262                     if(tmp.length > 0 && !data['num_msgs']) 
     1290                if( (tmp.length > 0) && (!data['num_msgs']) )  
    12631291                    { 
    1264                         allMsg['data_gears'] = tmp; 
     1292                        EsearchE.viewLocalMessage(); 
    12651293                    } 
    1266                     
     1294                else 
     1295                { 
     1296                                        if(count > 0) 
     1297                                                EsearchE.func_clean(); 
    12671298                     write_msg( count + " " + get_lang("results found") ); 
    12681299                    EsearchE.mount_result( allMsg, 'SORTDATE' ); 
    12691300                } 
    1270  
     1301            } 
    12711302            } 
    12721303 
     
    12801311            else 
    12811312                    cExecute( args, handler, params); 
     1313        } 
     1314         
     1315        searchE.prototype.func_search = function(value, page, sort, border_id) 
     1316        { 
     1317          if( !value ) 
     1318              this.func_search_complex(); 
     1319          else 
     1320            this.quickSearchMail( value, page, sort, border_id ); 
     1321        } 
     1322         
     1323        searchE.prototype.quickSearchMail = function(value, page, sort, border_id) 
     1324        { 
     1325                var local_folders = new Array(); 
     1326                var temp; 
     1327                var not_found_corrent_folder = true; 
     1328 
     1329//              if( Element("check_all_msg").checked ) 
     1330//              { 
     1331                        this.all_mailboxes(); 
     1332                        var nm_box = new Array; 
     1333                        for(var i=0; i < EsearchE.all_boxes.length; i++) 
     1334                        { 
     1335                                nm_box[i] = EsearchE.all_boxes[i]/* + fields*/; 
     1336                        } 
     1337                        if (preferences.use_local_messages == 1) 
     1338                        { 
     1339                                temp = expresso_local_messages.list_local_folders(); 
     1340                                for (var x in temp) 
     1341                                { 
     1342                                        local_folders.push(temp[x][0]); 
     1343                                } 
     1344                        } 
     1345                this.sort               = sort || this.sort || "SORTDATE"; 
     1346                this.page               = isNaN(page) ? ( value ? 0 : this.page ) : page; 
     1347                this.value              = value || this.value || false; 
     1348                 
     1349                if( !this.value ) 
     1350                    return alert( "Busca sem caracteres." ); 
     1351 
     1352                var args                = "$this.imap_functions.quickSearchMail"; 
     1353                var params              = { page: this.page, sort: this.sort, search: this.value }; 
     1354 
     1355                var selection1 = [], selection2 = []; 
     1356 
     1357                for( var i = 0; i < nm_box.length; i++ ) 
     1358                    if( nm_box[i] === current_folder ) 
     1359                        continue; 
     1360                    else if( /^user/.test(nm_box[i]) ) 
     1361                        selection2[selection2.length] = nm_box[i]; 
     1362                    else 
     1363                        selection1[selection1.length] = nm_box[i]; 
     1364 
     1365                 if( expresso_offline ) 
     1366                            handler('none'); 
     1367                 else 
     1368                 { 
     1369                            var url = [], labels = []; 
     1370 
     1371                            params['folder'] = current_folder; 
     1372                            url[0] = args + "&" +  $.param( params ); 
     1373                            labels[0] = "mensagem na sua pasta atual"; 
     1374 
     1375                            if(selection1.length) 
     1376                            { 
     1377                                        params['folder'] = selection1; 
     1378                                        url[1] = args + "&" +  $.param( params ); 
     1379                                        labels[1] = "mensagens nas suas outras pastas"; 
     1380                                } 
     1381                                if(selection2.length) 
     1382                            { 
     1383                                        params['folder'] = selection2; 
     1384                                        url[2] = args + "&" +  $.param( params ); 
     1385                                        labels[2] = "mensagens nas suas pastas compartilhadas"; 
     1386                                } 
     1387                            var link = ' <a href="#" onclick="connector.cancelRequest(); clean_msg(); return false;">cancelar<a/>'; 
     1388 
     1389                            write_msg( "pesquisando " + labels[0] + link, true ); 
     1390                             
     1391                            var keepFilled = false; 
     1392 
     1393                            var handler = function( data ) 
     1394                            { 
     1395                                        data = $.parseJSON( Base64.decode(data) ); 
    12821396             
     1397                                        var allMsg      = { 
     1398                                                num_msgs: ( data['num_msgs'] || 0 ), 
     1399                                                data: ( data['data'] || data['msgs'] || data ) 
     1400                                        }; 
     1401 
     1402                                        // Gears - local 
     1403                                        if ( local_folders.length > 0 ){ 
     1404                                                expresso_local_messages.setSortType('SORTDATE'); 
     1405                                                var tmp = expresso_local_messages.search( local_folders, "##ALL <=>" + url_encode(value) + "##" );  
     1406 
     1407                                                if( tmp.length > 0 ) 
     1408                                                        if( !allMsg['num_msgs'] ){ 
     1409                                                                clean_msg(); 
     1410                                                            not_found_corrent_folder = false; 
     1411                                                                if(tmp.length) 
     1412                                                                        allMsg['gears_num_msgs'] = tmp.length; 
     1413                                                        }else 
     1414                                                                allMsg['gears_num_msgs'] = tmp.length; 
    12831415        } 
    1284         // clean; 
     1416 
     1417                                        if( !allMsg['num_msgs'] && !url.length && not_found_corrent_folder){ 
     1418                                                clean_msg(); 
     1419                                                //alert( get_lang("None result was found.") ); 
     1420                                                return EsearchE.viewLocalMessage(); 
     1421                                        } 
     1422 
     1423                                        if( allMsg['num_msgs'] ) 
     1424                                                EsearchE.total = allMsg['num_msgs'] = Math.max( (EsearchE.total || 0), allMsg['num_msgs'] );     
     1425 
     1426                                        EsearchE.mount_result( allMsg, EsearchE.sort, ( keepFilled || border_id === currentTab ), keepFilled, "Foram encontradas " + data['msgs'].length + " "+labels.shift()+"." ); 
     1427                                         
     1428                                        keepFilled = true; 
     1429                                         
     1430                                        write_msg( "pesquisando " + labels[0] + link, true ); 
     1431 
     1432                                        if( url.length ) 
     1433                                                cExecute( url.shift(), handler ); 
     1434                                        else 
     1435                                                clean_msg(); 
     1436                            } 
     1437 
     1438                            cExecute( url.shift(), handler ); 
     1439                    } 
     1440        } 
     1441         
     1442// clean; 
    12851443        searchE.prototype.func_clean = function() 
    12861444        { 
  • trunk/expressoMail1_2/js/sharemailbox.js

    r4457 r5134  
    4343                        Element('em_input_saveAcl').checked = false; 
    4444                        Element('em_input_saveAcl').disabled = true; 
     45                        Element('em_input_deleteAcl').disabled = true; 
     46                        Element('em_input_writeAcl').disabled = true; 
    4547                         
    4648                        if (data[user].indexOf('lrs',0) >= 0) 
    4749                        { 
    4850                                Element('em_input_sendAcl').disabled = false; 
     51                                Element('em_input_deleteAcl').disabled = false; 
     52                                Element('em_input_writeAcl').disabled = false ; 
    4953                                Element('em_input_readAcl').checked = true; 
    5054                        } 
    5155                        else 
     56                        { 
    5257                                Element('em_input_sendAcl').disabled = true; 
    5358                                 
     59                        } 
    5460                        if (data[user].indexOf('d',0) >= 0) 
    5561                        { 
    5662                                Element('em_input_deleteAcl').checked = true; 
     63                                Element('em_input_deleteAcl').disabled = false; 
    5764                        } 
    5865                        if (data[user].indexOf('wi',0) >= 0) 
    5966                        { 
    6067                                Element('em_input_writeAcl').checked = true; 
     68                                Element('em_input_writeAcl').disabled = false 
    6169                        } 
    6270                         
     
    9199                if (Element('em_input_readAcl').checked) { 
    92100                        Element('em_input_sendAcl').disabled = false; 
     101                        Element('em_input_deleteAcl').disabled = false; 
     102                        Element('em_input_writeAcl').disabled = false; 
    93103                        acl = 'lrs'; 
    94104                } 
     
    96106                        Element('em_input_sendAcl').disabled = true; 
    97107                        Element('em_input_sendAcl').checked = false; 
     108                        Element('em_input_deleteAcl').disabled = true; 
     109                        Element('em_input_deleteAcl').checked = false; 
     110                        Element('em_input_writeAcl').disabled = true; 
     111                        Element('em_input_writeAcl').checked = false; 
     112                         
    98113                } 
    99114                                 
     
    174189                                                        "<td valign='bottom'><br>"+ 
    175190                                                                get_lang('Organization')+":&nbsp;" +  
    176                                                                 "<select id='em_combo_org' onchange='javascript:sharemailbox.get_available_users(this.value);'></select>"+ 
     191                                                                "<select id='em_combo_org'></select>"+ 
    177192                                                                 
    178193                                                                "<br><br>"+get_lang('Search user')+":<br>" + 
    179                                                                 '<input id="em_input_searchUser" size="35" autocomplete="off"  onkeyup="javascript:sharemailbox.optionFinderTimeout(this)"><br>'+ 
     194                                                                '<input id="em_input_searchUser" size="35" autocomplete="off"  onkeyup="javascript:sharemailbox.optionFinderTimeout(this, event);"><br>'+ 
    180195                                                                 
    181196                                                                '<font color="red"><span id="em_span_searching">&nbsp;</span></font><br>'+ 
     
    291306                Element('em_input_sendAcl').disabled = true; 
    292307                Element('em_input_saveAcl').disabled = true; 
     308                Element('em_input_deleteAcl').disabled = true; 
     309                Element('em_input_writeAcl').disabled = true; 
    293310                win.open(); 
    294311        } 
     
    305322        } 
    306323         
    307         cShareMailbox.prototype.optionFinder = function(id) 
    308         { 
    309                 var oWait = document.getElementById("em_span_searching"); 
    310                 var oText = document.getElementById(id); 
    311                          
    312                 //Limpa todo o select 
    313                  
    314                 var select_available_users_tmp = document.getElementById('em_select_available_users') 
    315                 for(var i = 0;i < select_available_users_tmp.options.length; i++) 
    316                         select_available_users_tmp.options[i--] = null; 
    317  
    318                 var RegExp_name = new RegExp("\\b"+oText.value, "i"); 
    319                  
    320                 //Inclui usuário começando com a pesquisa 
    321                 if (typeof(select_available_users_clone)  != "undefined"){ 
    322                     for(i = 0; i < select_available_users_clone.length; i++){ 
    323                             if (RegExp_name.test(select_available_users_clone[i].text)) 
    324                             { 
    325                                     sel = select_available_users_tmp.options; 
    326                                     option = new Option(select_available_users_clone[i].text,select_available_users_clone[i].value); 
    327                                     sel[sel.length] = option; 
    328                             } 
    329                     } 
    330                 } 
    331                 oWait.innerHTML = '&nbsp;'; 
     324        cShareMailbox.prototype.optionFinder = function(id) { 
     325                         
     326                var sentence = Element(id).value; 
     327                 
     328                var url = '$this.ldap_functions.get_available_users2&context=' + 
     329                            Element('em_combo_org').value + 
     330                            ( sentence ? '&sentence=' + sentence: '' ); 
     331 
     332                return userFinder( sentence, 'em_select_available_users', url, 'em_span_searching'); 
    332333        } 
    333334         
  • trunk/expressoMail1_2/js/shortcut.js

    r4787 r5134  
    2323                } 
    2424                 
    25                 var ele = opt.target 
     25                var ele = opt.target; 
    2626                if(typeof opt.target == 'string') ele = document.getElementById(opt.target); 
    2727                var ths = this; 
     
    266266shortcut.add("E",function(){exec_msg_action('forward');},{'disable_in_input':true}); 
    267267shortcut.add("R",function(){exec_msg_action('reply');},{'disable_in_input':true}); 
     268shortcut.add("T",function(){ var msg_id = get_msg_id(); if(msg_id) new_message("reply_to_all_with_history",msg_id);},{'disable_in_input':true}); 
    268269shortcut.add("O",function(){show_head_option();},{'disable_in_input':true}); 
    269270shortcut.add("M",function(){show_address_full();},{'disable_in_input':true}); 
     
    362363else 
    363364{ 
    364         shortcut.add("down",function(){select_msg('null', 'down');},{'type':'keypress', 'disable_in_input':false}); 
    365         shortcut.add("up",function(){select_msg('null', 'up');},{'type':'keypress', 'disable_in_input':false}); 
     365        shortcut.add("Up",function(){select_msg('null', 'up', true);},{'disable_in_input':false}); 
     366        shortcut.add("Down",function(){select_msg('null', 'down', true);},{'disable_in_input':false}); 
    366367         
    367368        shortcut.add("Shift+down",function(){ 
Note: See TracChangeset for help on using the changeset viewer.