Changeset 7563 for trunk


Ignore:
Timestamp:
11/23/12 17:38:23 (11 years ago)
Author:
angelo
Message:

Ticket #3202 - Funcionalidade de atalho anulada apos importar mensagem

Location:
trunk/expressoMail1_2/js
Files:
2 edited

Legend:

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

    r7550 r7563  
    45954595                                                                                        var handler_return = function(data) 
    45964596                                                                                        { 
    4597                                                                                                 write_msg(get_lang('The import was executed successfully.')); 
    4598                                                                                                  
     4597                                                                                                write_msg(get_lang('The import was executed successfully.'));                                                                                            
    45994598                                                                                                return_import_msgs( data, folder ); 
     4599                                                                                                if(typeof(shortcut) != 'undefined') shortcut.disabled = false; 
    46004600                                                                                        } 
    46014601                                                                                         
     
    46194619                { 
    46204620                    if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4621                }, 
     4622                destroy: function(event,ui) 
     4623                { 
     4624                        if(typeof(shortcut) != 'undefined') shortcut.disabled = false; 
    46214625                } 
    46224626                }); 
  • trunk/expressoMail1_2/js/main.min.js

    r7550 r7563  
    1 // Tempo do auto refresh (em milisegundos) 
    2 var time_refresh = 300000; 
    3  
    4 //MAILARCHIVER-01 
    5 // Intervalo de tempo de verificacao de comunicacao com o MailArchiver (milisegundos) 
    6 var check_services_interval = 2000; 
    7 // Numero de tentativas de reconexao 
    8 var check_services_tryouts = 1; 
    9 // Limite de tentativas de reconexao 
    10 var check_services_tryouts_limit = 5; 
    11  
    12  
    13 // tempo do auto save (em milisegundos) 
    14 // 20000 = 20 segundos 
    15 var autosave_time = 40000; 
    16 var results_search_messages = "";  
    17 var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>'; 
    18 var auxNotificationCriteriaVetor = []; 
    19 var auxNotification; 
    20  
    21 var countNewMessage = 0; 
    22 var notifyNewMessageFilter = []; 
    23  
    24 var dynamicPersonalContacts = new Array(); 
    25 var dynamicPersonalGroups = new Array(); 
    26 var dynamicContacts = new Array(); 
    27 var topContact = 0; 
    28 DataLayer.get("folder", true); 
    29  
    30 //Os IE's < 9 não possui suporte a trim() introduzida no JavaScript 1.8.1 
    31 if(!String.prototype.trim){   
    32         String.prototype.trim = function(){ 
    33                 return this.replace(/^\s+|\s+$/g,''); 
    34         }  
    35 } 
    36  
    37 function mount_url_folder(folders){ 
    38         return folders.join(cyrus_delimiter); 
    39 }  
    40  
    41 function updateDynamicContact(userContacts){ 
    42  
    43     if(!userContacts) 
    44         userContacts = REST.get("/usercontacts", false); 
    45  
    46     if(userContacts.collection && !userContacts.collection.error){ 
    47         dynamicData = normalizeContacts(userContacts.collection.itens); 
    48     }else{ 
    49         dynamicData = []; 
    50     } 
    51  
    52     if(dynamicData){ 
    53         var dynamicContactsList = []; 
    54         $.each(dynamicData, function(index, dynamic){ 
    55  
    56             var dataType = userContacts.collection.itens[index].dataType; 
    57  
    58             dynamic['value'] = (dynamic.name ? dynamic.name +' - ': '') + dynamic.mail; 
    59             dynamic['type'] = dataType 
    60             dynamic['typel'] = (dataType.substring(0,7) == "/shared" ? "/"+dataType.substring(7,dataType.length)+"s" : dataType); 
    61  
    62             topContact = dynamic.number_of_messages > topContact ? dynamic.number_of_messages : topContact; 
    63  
    64             dynamicContactsList.push(dynamic); 
    65         }); 
    66     } 
    67  
    68     dynamicData = dynamicContactsList; 
    69  
    70  
    71         /*dynamicContacts = new Array(); 
    72  
    73     var dynamicUsers = REST.get("/dynamiccontacts"); 
    74  
    75     if(dynamicUsers.collection && !dynamicUsers.collection.error){ 
    76         var dynamicData = normalizeContacts(dynamicUsers.collection.itens) 
    77  
    78         $.each(dynamicData, function(index, value){ 
    79                         if(index ==0){ 
    80                                 topContact = parseInt(value['number_of_messages']); 
    81                         } 
    82                         var dynamic = { 
    83                                 name : value.name, 
    84                                 mail : value.mail, 
    85                                 value: value.name + " - " + value.mail, 
    86                                 type: "", 
    87                                 id: value.id, 
    88                                 qtd : value['number_of_messages'] 
    89                         }; 
    90                         dynamicContacts.push(dynamic); 
    91                 }); 
    92         }*/ 
    93 } 
    94  
    95  
    96 function updateDynamicPersonalContacts(){ 
    97         dynamicPersonalContacts = new Array(); 
    98  
    99     var personalContacts = REST.get("/personalContact"); 
    100  
    101     if(personalContacts.collection && !personalContacts.collection.error){ 
    102         var contactsData = normalizeContacts(personalContacts.collection.itens); 
    103         if(contactsData){ 
    104             $.each(contactsData, function(index, value){ 
    105                 var contact = { 
    106                     id : parseInt(value.id), 
    107                     name : value.name, 
    108                     email: value.email, 
    109                     value: value.name+ " - " + value.email, 
    110                     type: "P" 
    111                 }; 
    112                 dynamicPersonalContacts.push(contact); 
    113             }); 
    114         } 
    115     } 
    116 } 
    117  
    118  
    119 function updateDynamicPersonalGroups(){ 
    120         dynamicPersonalGroups = new Array(); 
    121  
    122     var groups = REST.get("/groups"); 
    123  
    124     if(groups.collection && !groups.collection.error){ 
    125         var contactsData = normalizeContacts(groups.collection.itens); 
    126         if(contactsData.collecion && !contactsData.collecion.error){ 
    127             $.each(contactsData, function(index, value){ 
    128                 var contact = { 
    129                     id : parseInt(value.id), 
    130                     owner : value.owner, 
    131                     name : value.name, 
    132                     email: value.email, 
    133                     type: "G" 
    134                 }; 
    135                 dynamicPersonalGroups.push(contact); 
    136             }); 
    137         } 
    138     } 
    139 } 
    140  
    141  
    142 function init(){ 
    143         if (!is_ie) 
    144                 Element('tableDivAppbox').width = '100%'; 
    145  
    146     //MailArchiver save offset to gmt user preference data to list correctly date/time from messages list 
    147     var save_gmtoffset = function(data){ 
    148         gmtoffset = data; 
    149     } 
    150  
    151         var save_preferences = function(data){ 
    152  
    153  
    154                 preferences = data; 
    155                  
    156                  
    157                         if(preferences.show_name_print_messages == "1") {  
    158                                 var getUserName = document.getElementById("user_info");  
    159                                 var userName = getUserName.innerHTML;  
    160                                 var position = userName.indexOf("-");  
    161                                 var userName = userName.substring(3, position);  
    162                                 cabecalho = '<h4>' + userName;  
    163                         } 
    164                  
    165                  
    166                 current_folder="INBOX"; 
    167                  
    168                 /*if( (window.google && google.gears) && !google.gears.factory.getPermission()) 
    169                     preferences.use_local_messages=0; 
    170                  
    171                 if ((preferences.use_local_messages==1) && (!window.google || !google.gears)) { 
    172                     temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?")); 
    173                     if (temp) { 
    174                             location.href = "http://gears.google.com/?action=install&message="+ 
    175                             "Para utilizar o recurso de mensagens locais, instale o google gears&return=" + document.location.href; 
    176                     } 
    177                     else { 
    178                             preferences.use_local_messages=0; 
    179                     } 
    180                 } 
    181                 if (preferences.use_local_messages==1) { //O I.E 7 estava se atrapalhando caso esses loads fossem feitos após as chamadas ajax. Antes não apresentou problemas... 
    182                         connector.loadScript('mail_sync'); 
    183                         setTimeout('auto_archiving()', 30000); 
    184                          
    185                 }*/ 
    186  
    187         //MAILARCHIVER-02 
    188         //Try to get ArchiveServices object directly 
    189         if(ArchiveServices) 
    190             expresso_mail_archive.Startup(); 
    191         //ArchiveServices not runnnig: catch the user preferences to set up message at header 
    192         else{ 
    193             if(preferences.use_local_messages=="1") 
    194                 write_msg(get_lang('Sorry, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off local messages!')); 
    195         } 
    196                 cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box); 
    197                 //cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
    198                 $.ajax({ 
    199             async: false, 
    200                         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    201                                 folder: get_current_folder(), 
    202                                  msg_range_begin: "0", 
    203                                  msg_range_end: "0",                                     
    204                                 sort_box_type: "SORTARRIVAL",  
    205                                 search_box_type: search_box_type, 
    206                                 sort_box_reverse: "1" 
    207                                 }), 
    208                         success: function(data){ 
    209                                 data = connector.unserialize(data); 
    210                                 if(data){                    
    211                                         var _data = {}; 
    212                                         $.each(data,function(index,value){ 
    213                                                 if (data[index]){ 
    214                                                         _data[data[index]] = data[index]; 
    215                                                 } 
    216                                         }); 
    217                                         populateSelectedMsgs(_data); 
    218                                 } 
    219                         }, 
    220                         beforeSend: function( jqXHR, settings ){ 
    221                                 connector.showProgressBar(); 
    222                         }, 
    223                         complete: function( jqXHR, settings ){ 
    224                                 connector.hideProgressBar(); 
    225                         } 
    226         }); 
    227                 if(preferences.hide_folders == "1") 
    228                         Element('divAppboxHeader').innerHTML =  title_app_menu; 
    229  
    230                 if (preferences.delete_trash_messages_after_n_days != 0) 
    231                         cExecute ("$this.imap_functions.automatic_trash_cleanness&before_date="+preferences.delete_trash_messages_after_n_days+"&cyrus_delimiter="+cyrus_delimiter, handler_automatic_trash_cleanness); 
    232                  
    233                 //if(preferences.outoffice == "1") 
    234                 //       
    235  
    236                 //Troca da forma de construção de menu para o plugin jquery.contextMenu 
    237                 //ConstructMenuTools(); 
    238                 //MAILARCHIVER-00 
    239                 //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails 
    240                         //check_mail_in_queue(); 
    241                  
    242                 // Insere a applet de criptografia 
    243                 if (preferences.use_signature_digital_cripto == '1'){ 
    244                         loadApplet(); 
    245                 } 
    246                 // Fim da inserção da applet     
    247                 DataLayer.get("folder", true); 
    248                 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);      
    249                  
    250                 if($.cookie('collapse_folders') == "true"){ 
    251                         if(!is_ie) 
    252                                 $("#folderscol").addClass( "hidden"); 
    253                         else 
    254                                 $("#folderscol").hide(); 
    255                         $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-e").children().attr('title', "Expandir"); 
    256                         refresh(); 
    257                         resizeWindow(); 
    258                 }        
    259                 else{ 
    260                         $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-w").children().attr('title', "Ocultar"); 
    261                         refresh(); 
    262                         resizeWindow(); 
    263                 } 
    264                  
    265                 $(".collapse_folders_td").attr('title', "Ocultar/Expandir").click(function(){ 
    266                         if($("#folderscol").css("display") != "none"){ 
    267                                 if(!is_ie) 
    268                                         $("#folderscol").addClass( "hidden"); 
    269                                 else 
    270                                         $("#folderscol").hide(); 
    271                                          
    272                                 $(".collapse_folders").removeClass("ui-icon-triangle-1-w"); 
    273                                 $(".collapse_folders").addClass("ui-icon-triangle-1-e"); 
    274                                 $(".collapse_folders").parent().attr('title', "Expandir"); 
    275                                 $.cookie('collapse_folders', "true"); 
    276                                 refresh(); 
    277                                 resizeWindow(); 
    278                         }else{ 
    279                                 if(!is_ie) 
    280                                         $("#folderscol").removeClass( "hidden"); 
    281                                 else 
    282                                         $("#folderscol").show(); 
    283                                 $(".collapse_folders").removeClass("ui-icon-triangle-1-e"); 
    284                                 $(".collapse_folders").addClass("ui-icon-triangle-1-w"); 
    285                                 $(".collapse_folders").parent().attr('title', "Ocultar"); 
    286                                 $.cookie('collapse_folders', "false"); 
    287                                 refresh(); 
    288                                 resizeWindow(); 
    289                         } 
    290                         resizeWindow(); 
    291                          
    292                 }).hover( 
    293                         function(){ 
    294                                 $(this).addClass("collapse_folders_td_over"); 
    295                         }, 
    296                         function(){ 
    297                                 $(this).removeClass("collapse_folders_td_over"); 
    298                         } 
    299                 ); 
    300                  
    301                 if(parseInt(preferences.use_dynamic_contacts)){ 
    302                         var load_dynamics = function(){ 
    303                                 updateDynamicContact(); 
    304                                 updateDynamicPersonalContacts(); 
    305                                 updateDynamicPersonalGroups(); 
    306                         }; 
    307                         load_dynamics(); 
    308                 } 
    309         } 
    310         var handler_automatic_trash_cleanness = function(data){ 
    311                 if (data != false){ 
    312                         write_msg(data.length +' '+ Element('txt_clear_trash').value); 
    313                 } 
    314         } 
    315  
    316         // Versão 
    317         Element('divAppboxHeader').innerHTML = title_app; 
    318  
    319         // Get cyrus delimiter 
    320         cyrus_delimiter = Element('cyrus_delimiter').value; 
    321  
    322         cExecute ("$this.functions.get_preferences", save_preferences); 
    323     cExecute ("phpgwapi.browser.isMobile", function( data ){ 
    324                 mobile_device = ( ( data.constructor == Boolean ) ? data : ( data === 'true' ) ); 
    325         }); 
    326  
    327         DataLayer.get("folder", true); 
    328         cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);      
    329          
    330         setTimeout('auto_refresh()', time_refresh); 
    331          
    332         $("#divAppbox").css("padding-left", "0px"); 
    333 } 
    334  
    335 function init_offline(){ 
    336         current_folder = 'local_Inbox'; 
    337         if (account_id != null) { 
    338                 if (!is_ie) 
    339                         Element('tableDivAppbox').width = '100%'; 
    340                 else 
    341                         connector.createXMLHTTP(); 
    342                 Element('divStatusBar').innerHTML = '<table height="16px" border=0 width=100% cellspacing=0 cellpadding=2>' + 
    343                 '<tr>' + 
    344                 '<td style="padding-left:17px" width=33% id="content_quota" align=left></td>' + 
    345                 '<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>' + 
    346                 '<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>' + 
    347                 '<td width=33% id="div_menu_c3" align=right></td>' + 
    348                 '</tr></table>'; 
    349  
    350                 //Troca da forma de construção de menu para o plugin jquery.contextMenu 
    351                 //ConstructMenuTools(); 
    352  
    353                 draw_tree_folders(); 
    354  
    355                 proxy_mensagens.messages_list('local_Inbox', 1, preferences.max_email_per_page, 'SORTARRIVAL', null, 1,1,1, function handler(data){ 
    356                         draw_box(data, 'local_Inbox'); 
    357                 }) 
    358  
    359                 // Get cyrus delimiter 
    360         cyrus_delimiter = Element('cyrus_delimiter').value; 
    361  
    362         //cExecute ("$this.db_functions.get_dropdown_contacts_to_cache", function(data) {contacts = data;}); 
    363         //cExecute ("$this.functions.get_preferences", save_preferences); 
    364         } 
    365 } 
    366 /** 
    367  * Carrega a applet java no objeto search_div 
    368  * @author Mário César Kolling <mario.kolling@serpro.gov.br> 
    369  */ 
    370  
    371 function loadApplet(){ 
    372  
    373         var search_div = Element('search_div'); 
    374         var applet = null; 
    375         if (navigator.userAgent.match('MSIE')){ 
    376                 applet = document.createElement('<object style="display:yes;width:0;height:0;vertical-align:bottom;" id="cert_applet" ' + 
    377                         'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"></object>'); 
    378  
    379                 var parameters = { 
    380                         type:'application/x-java-applet;version=1.5', 
    381                         code:'ExpressoSmimeApplet', 
    382                         codebase:'/security/', 
    383                         mayscript:'true', 
    384                         token: token_param, 
    385                         locale: locale, 
    386                         archive:'ExpressoCertMail.jar,' + 
    387                                 'ExpressoCert.jar,' + 
    388                                 'bcmail-jdk15-142.jar,' + 
    389                                 'mail.jar,' + 
    390                                 'activation.jar,' + 
    391                                 'bcprov-jdk15-142.jar,' + 
    392                                 'commons-codec-1.3.jar,' + 
    393                                 'commons-httpclient-3.1.jar,' + 
    394                                 'commons-logging-1.1.1.jar' 
    395                         //debug:'true' 
    396                 } 
    397  
    398                 if (parameters != 'undefined' && parameters != null){ 
    399                         for (var parameter in parameters) { 
    400                                 var param = document.createElement("PARAM"); 
    401                                 param.setAttribute("name",parameter); 
    402                                 param.setAttribute("value",parameters[parameter]); 
    403                                 applet.appendChild(param); 
    404                         } 
    405                 } 
    406         } 
    407         else 
    408         { 
    409                 applet = document.createElement('embed'); 
    410                 applet.innerHTML = '<embed style="display:yes;width:0;height:0;vertical-align:bottom;" id="cert_applet" code="ExpressoSmimeApplet.class" ' + 
    411                         'codebase="/security/" locale="'+locale+'"'+ 
    412                         'archive="ExpressoCertMail.jar,ExpressoCert.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar,commons-codec-1.3.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar" ' + 
    413                         'token="' + token_param + '" ' + 
    414                         'type="application/x-java-applet;version=1.5" mayscript > ' + 
    415                         //'type="application/x-java-applet;version=1.5" debug="true" mayscript > ' + 
    416                         '<noembed> ' + 
    417                         'No Java Support. ' + 
    418                         '</noembed> ' + 
    419                         '</embed> '; 
    420         } 
    421          
    422         if( applet != null ) 
    423         { 
    424                 applet.style.top        = "-100px"; 
    425                 applet.style.left       = "-100px"; 
    426                 window.document.body.insertBefore( applet, document.body.lastChild ); 
    427         } 
    428          
    429 } 
    430  
    431 function disable_field(field,condition) { 
    432         var comando = "if ("+condition+") { document.getElementById('"+field.id+"').disabled=true;} else { document.getElementById('"+field.id+"').disabled=false; }"; 
    433         eval(comando); 
    434 } 
    435 /* 
    436         função que remove todos os anexos... 
    437 */ 
    438 function remove_all_attachments(folder,msg_num) { 
    439  
    440         var call_back = function(data) { 
    441                 if(!data.status) { 
    442                         alert(data.msg); 
    443                 } 
    444                 else { 
    445                         msg_to_delete = Element(msg_num); 
    446                         change_tr_properties(msg_to_delete, data.msg_no); 
    447                         msg_to_delete.childNodes[1].innerHTML = ""; 
    448                         write_msg(get_lang("Attachments removed")); 
    449                         folderName = Base64.encode(folder); 
    450                         folderName = folderName.replace(/=/gi, ''); 
    451                         delete_border(msg_num+'_r_'+folderName,'false'); //close email tab 
    452  
    453         } 
    454         }; 
    455         if (confirm(get_lang("delete all attachments confirmation"))) 
    456                 cExecute ("$this.imap_functions.remove_attachments&folder=" 
    457                                 +folder+"&msg_num="+msg_num, call_back); 
    458 } 
     1var time_refresh=300000;var check_services_interval=2000;var check_services_tryouts=1;var check_services_tryouts_limit=5;var autosave_time=40000;var results_search_messages="";var cabecalho='<h4>ExpressoLivre - ExpressoMail</h4>';var auxNotificationCriteriaVetor=[];var auxNotification;var countNewMessage=0;var notifyNewMessageFilter=[];var dynamicPersonalContacts=new Array();var dynamicPersonalGroups=new Array();var dynamicContacts=new Array();var topContact=0;DataLayer.get("folder",true);if(!String.prototype.trim){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');}} 
     2function mount_url_folder(folders){return folders.join(cyrus_delimiter);} 
     3function updateDynamicContact(userContacts){if(!userContacts) 
     4userContacts=REST.get("/usercontacts",false);if(userContacts.collection&&!userContacts.collection.error){dynamicData=normalizeContacts(userContacts.collection.itens);}else{dynamicData=[];} 
     5if(dynamicData){var dynamicContactsList=[];$.each(dynamicData,function(index,dynamic){var dataType=userContacts.collection.itens[index].dataType;dynamic['value']=(dynamic.name?dynamic.name+' - ':'')+dynamic.mail;dynamic['type']=dataType 
     6dynamic['typel']=(dataType.substring(0,7)=="/shared"?"/"+dataType.substring(7,dataType.length)+"s":dataType);topContact=dynamic.number_of_messages>topContact?dynamic.number_of_messages:topContact;dynamicContactsList.push(dynamic);});} 
     7dynamicData=dynamicContactsList;} 
     8function updateDynamicPersonalContacts(){dynamicPersonalContacts=new Array();var personalContacts=REST.get("/personalContact");if(personalContacts.collection&&!personalContacts.collection.error){var contactsData=normalizeContacts(personalContacts.collection.itens);if(contactsData){$.each(contactsData,function(index,value){var contact={id:parseInt(value.id),name:value.name,email:value.email,value:value.name+" - "+value.email,type:"P"};dynamicPersonalContacts.push(contact);});}}} 
     9function updateDynamicPersonalGroups(){dynamicPersonalGroups=new Array();var groups=REST.get("/groups");if(groups.collection&&!groups.collection.error){var contactsData=normalizeContacts(groups.collection.itens);if(contactsData.collecion&&!contactsData.collecion.error){$.each(contactsData,function(index,value){var contact={id:parseInt(value.id),owner:value.owner,name:value.name,email:value.email,type:"G"};dynamicPersonalGroups.push(contact);});}}} 
     10function init(){if(!is_ie) 
     11Element('tableDivAppbox').width='100%';var save_gmtoffset=function(data){gmtoffset=data;} 
     12var save_preferences=function(data){preferences=data;if(preferences.show_name_print_messages=="1"){var getUserName=document.getElementById("user_info");var userName=getUserName.innerHTML;var position=userName.indexOf("-");var userName=userName.substring(3,position);cabecalho='<h4>'+userName;} 
     13current_folder="INBOX";if(ArchiveServices) 
     14expresso_mail_archive.Startup();else{if(preferences.use_local_messages=="1") 
     15write_msg(get_lang('Sorry, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off local messages!'));} 
     16cExecute("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1",handler_draw_box);$.ajax({async:false,url:"controller.php?"+$.param({action:"$this.imap_functions.getMessagesIds",folder:get_current_folder(),msg_range_begin:"0",msg_range_end:"0",sort_box_type:"SORTARRIVAL",search_box_type:search_box_type,sort_box_reverse:"1"}),success:function(data){data=connector.unserialize(data);if(data){var _data={};$.each(data,function(index,value){if(data[index]){_data[data[index]]=data[index];}});populateSelectedMsgs(_data);}},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});if(preferences.hide_folders=="1") 
     17Element('divAppboxHeader').innerHTML=title_app_menu;if(preferences.delete_trash_messages_after_n_days!=0) 
     18cExecute("$this.imap_functions.automatic_trash_cleanness&before_date="+preferences.delete_trash_messages_after_n_days+"&cyrus_delimiter="+cyrus_delimiter,handler_automatic_trash_cleanness);if(preferences.use_signature_digital_cripto=='1'){loadApplet();} 
     19DataLayer.get("folder",true);cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);if($.cookie('collapse_folders')=="true"){if(!is_ie) 
     20$("#folderscol").addClass("hidden");else 
     21$("#folderscol").hide();$(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-e").children().attr('title',"Expandir");refresh();resizeWindow();} 
     22else{$(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-w").children().attr('title',"Ocultar");refresh();resizeWindow();} 
     23$(".collapse_folders_td").attr('title',"Ocultar/Expandir").click(function(){if($("#folderscol").css("display")!="none"){if(!is_ie) 
     24$("#folderscol").addClass("hidden");else 
     25$("#folderscol").hide();$(".collapse_folders").removeClass("ui-icon-triangle-1-w");$(".collapse_folders").addClass("ui-icon-triangle-1-e");$(".collapse_folders").parent().attr('title',"Expandir");$.cookie('collapse_folders',"true");refresh();resizeWindow();}else{if(!is_ie) 
     26$("#folderscol").removeClass("hidden");else 
     27$("#folderscol").show();$(".collapse_folders").removeClass("ui-icon-triangle-1-e");$(".collapse_folders").addClass("ui-icon-triangle-1-w");$(".collapse_folders").parent().attr('title',"Ocultar");$.cookie('collapse_folders',"false");refresh();resizeWindow();} 
     28resizeWindow();}).hover(function(){$(this).addClass("collapse_folders_td_over");},function(){$(this).removeClass("collapse_folders_td_over");});if(parseInt(preferences.use_dynamic_contacts)){var load_dynamics=function(){updateDynamicContact();updateDynamicPersonalContacts();updateDynamicPersonalGroups();};load_dynamics();}} 
     29var handler_automatic_trash_cleanness=function(data){if(data!=false){write_msg(data.length+' '+Element('txt_clear_trash').value);}} 
     30Element('divAppboxHeader').innerHTML=title_app;cyrus_delimiter=Element('cyrus_delimiter').value;cExecute("$this.functions.get_preferences",save_preferences);cExecute("phpgwapi.browser.isMobile",function(data){mobile_device=((data.constructor==Boolean)?data:(data==='true'));});DataLayer.get("folder",true);cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);setTimeout('auto_refresh()',time_refresh);$("#divAppbox").css("padding-left","0px");} 
     31function init_offline(){current_folder='local_Inbox';if(account_id!=null){if(!is_ie) 
     32Element('tableDivAppbox').width='100%';else 
     33connector.createXMLHTTP();Element('divStatusBar').innerHTML='<table height="16px" border=0 width=100% cellspacing=0 cellpadding=2>'+'<tr>'+'<td style="padding-left:17px" width=33% id="content_quota" align=left></td>'+'<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>'+'<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>'+'<td width=33% id="div_menu_c3" align=right></td>'+'</tr></table>';draw_tree_folders();proxy_mensagens.messages_list('local_Inbox',1,preferences.max_email_per_page,'SORTARRIVAL',null,1,1,1,function handler(data){draw_box(data,'local_Inbox');}) 
     34cyrus_delimiter=Element('cyrus_delimiter').value;}} 
     35function loadApplet(){var search_div=Element('search_div');var applet=null;if(navigator.userAgent.match('MSIE')){applet=document.createElement('<object style="display:yes;width:0;height:0;vertical-align:bottom;" id="cert_applet" '+'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"></object>');var parameters={type:'application/x-java-applet;version=1.5',code:'ExpressoSmimeApplet',codebase:'/security/',mayscript:'true',token:token_param,locale:locale,archive:'ExpressoCertMail.jar,'+'ExpressoCert.jar,'+'bcmail-jdk15-142.jar,'+'mail.jar,'+'activation.jar,'+'bcprov-jdk15-142.jar,'+'commons-codec-1.3.jar,'+'commons-httpclient-3.1.jar,'+'commons-logging-1.1.1.jar'} 
     36if(parameters!='undefined'&&parameters!=null){for(var parameter in parameters){var param=document.createElement("PARAM");param.setAttribute("name",parameter);param.setAttribute("value",parameters[parameter]);applet.appendChild(param);}}} 
     37else 
     38{applet=document.createElement('embed');applet.innerHTML='<embed style="display:yes;width:0;height:0;vertical-align:bottom;" id="cert_applet" code="ExpressoSmimeApplet.class" '+'codebase="/security/" locale="'+locale+'"'+'archive="ExpressoCertMail.jar,ExpressoCert.jar,bcmail-jdk15-142.jar,mail.jar,activation.jar,bcprov-jdk15-142.jar,commons-codec-1.3.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar" '+'token="'+token_param+'" '+'type="application/x-java-applet;version=1.5" mayscript > '+'<noembed> '+'No Java Support. '+'</noembed> '+'</embed> ';} 
     39if(applet!=null) 
     40{applet.style.top="-100px";applet.style.left="-100px";window.document.body.insertBefore(applet,document.body.lastChild);}} 
     41function disable_field(field,condition){var comando="if ("+condition+") { document.getElementById('"+field.id+"').disabled=true;} else { document.getElementById('"+field.id+"').disabled=false; }";eval(comando);} 
     42function remove_all_attachments(folder,msg_num){var call_back=function(data){if(!data.status){alert(data.msg);} 
     43else{msg_to_delete=Element(msg_num);change_tr_properties(msg_to_delete,data.msg_no);msg_to_delete.childNodes[1].innerHTML="";write_msg(get_lang("Attachments removed"));folderName=Base64.encode(folder);folderName=folderName.replace(/=/gi,'');delete_border(msg_num+'_r_'+folderName,'false');}};if(confirm(get_lang("delete all attachments confirmation"))) 
     44cExecute("$this.imap_functions.remove_attachments&folder=" 
     45+folder+"&msg_num="+msg_num,call_back);} 
    45946function watch_changes_in_msg(border_id) 
    460 { 
    461         if (document.getElementById('border_id_'+border_id)) 
    462         { 
    463                 function keypress_handler () 
    464                 { 
    465                         away=false; 
    466                         var save_link = content.find(".save"); 
    467                         save_link.onclick = function onclick(event) {openTab.toPreserve[border_id] = true;save_msg(border_id);} ; 
    468                         save_link.button({disabled: false}); 
    469                         $(".header-button").button(); 
    470                 }; 
    471                 var content = $("#content_id_"+border_id); 
    472                  
    473                 var subject_obj = content.find(".subject"); 
    474                 if ( subject_obj.addEventListener ) 
    475                                 subject_obj.addEventListener('keypress', keypress_handler, false); 
    476                 else if ( subject_obj.attachEvent ) 
    477                         subject_obj.attachEvent('onkeypress', keypress_handler); 
    478  
    479                 var to_obj = content.find('[name="input_to"]'); 
    480                 if ( to_obj.addEventListener ) 
    481                                 to_obj.addEventListener('keypress', keypress_handler, false); 
    482                 else if ( to_obj.attachEvent ) 
    483                         to_obj.attachEvent('onkeypress', keypress_handler); 
    484                          
    485                 var cc_obj = content.find('[name="input_cc"]'); 
    486                 if ( cc_obj.addEventListener ) 
    487                                 cc_obj.addEventListener('keypress', keypress_handler, false); 
    488                 else if ( cc_obj.attachEvent ) 
    489                         cc_obj.attachEvent('onkeypress', keypress_handler); 
    490                  
    491                 if(content.find('[name="input_cco"]').length){ 
    492                         var cco_obj = content.find('[name="input_cco"]'); 
    493                         if ( cco_obj.addEventListener ) 
    494                                 cco_obj.addEventListener('keypress', keypress_handler, false); 
    495                         else if ( cco_obj.attachEvent ) 
    496                                 cco_obj.attachEvent('onkeypress', keypress_handler); 
    497                 } 
    498                 //var important_obj = $("important_message_options_"+border_id).bind('click',keypress_handler); 
    499                         //important_obj.addEventListener('click', keypress_handler, false); 
    500                          
    501         var txtarea_obj = Element('body_'+border_id); 
    502         if (txtarea_obj){ 
    503           if ((preferences.plain_text_editor == 1)||(Element('body_')+border_id).checked){ 
    504                     if ( txtarea_obj.addEventListener ) 
    505                            txtarea_obj.addEventListener('keypress', keypress_handler, false); 
    506                     else if ( txtarea_obj.attachEvent ) 
    507                            txtarea_obj.attachEvent('onkeypress', keypress_handler); 
    508           } 
    509         } 
    510         } 
    511 } 
    512  
    513 function show_msg_img(msg_number,folder){ 
    514         var call_back = function(data){ 
    515            data.showImg = true; 
    516            if (!Element(data.msg_number)){ 
    517                    trElement = document.createElement('DIV'); 
    518                    trElement.id = data.msg_number; 
    519                    Element("tbody_box").appendChild(trElement); 
    520            } 
    521            show_msg(data); 
    522         } 
    523  
    524         proxy_mensagens.msg_img(msg_number,folder,call_back); 
    525  
    526 } 
    527  
    528 function show_msg(msg_info){ 
    529         if(!verify_session(msg_info)) 
    530                 return; 
    531         if (typeof(msg_info) != 'object') 
    532                 alert(get_lang("Error in show_msg param is not object")); 
    533  
    534         if (msg_info.status_get_msg_info == 'false') 
    535         { 
    536                 write_msg(get_lang("Problems reading your message")+ "."); 
    537                 return; 
    538         } 
    539  
    540         var handler_sendNotification = function(data){ 
    541                 if (data) 
    542                         write_msg(get_lang("A read confirmation was sent.")); 
    543                 else 
    544                         write_msg(get_lang("Error in SMTP sending read confirmation.")); 
    545         } 
    546  
    547         if(msg_info.source) 
    548         { 
    549                 // Abrindo um e-mail criptografado 
    550                 // Verifica se existe o objeto applet 
    551                 if (!Element('cert_applet')){ 
    552                         // se não existir, mostra mensagem de erro. 
    553                         write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 
    554                 } else { 
    555                         // se existir prepara os dados para serem enviados e chama a 
    556                         // operação na applet 
    557  
    558                    // if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
    559                         /*      var confNotification = confirm(get_lang("The sender waits your notification of reading. Do you want to confirm this?"), ""); 
    560                                 if (confNotification)*/ 
    561                         //              cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
    562                    // } 
    563  
    564                         Element('cert_applet').doButtonClickAction('decript', 
    565                                                                                                                 msg_info.msg_number, 
    566                                                                                                                 msg_info.source, 
    567                                                                                                                 msg_info.msg_folder); // Passa os dados para a applet 
    568                 } 
    569                 return; 
    570  
    571         } 
    572  
    573  
    574         if (msg_info.status_get_msg_info == 'false') 
    575         { 
    576                 write_msg(get_lang("Problems reading your message")+ "."); 
    577                 return; 
    578         } 
    579  
    580         if (msg_info.status == 'false'){ 
    581                 eval(msg_info.command_to_exec); 
    582         } 
    583         else{ 
    584                 var ID = msg_info.original_ID ? msg_info.original_ID : msg_info.msg_number; 
    585                          
    586                 var folderName = msg_info.msg_folder; 
    587                 folderName = Base64.encode(folderName); 
    588                 folderName = folderName.replace(/=/gi, ''); 
    589                 var id_msg_read = ID+"_r_"+folderName; 
    590          
    591         //Evita a tentativa de criação de uma aba cujo ID já existe 
    592         if (Element("border_id_"+id_msg_read) && currentTab > 0)  
    593                     id_msg_read += "n"; 
    594      
    595                 if (preferences.use_shortcuts == '1')  
    596                   select_msg(ID, 'null');  
    597                            
    598                 // Call function to draw message 
    599                 // If needed, delete old border 
    600                 var isPartMsg = false; 
    601                 for(var ii = 0; ii < partMsgs.length; ii++) 
    602                      if(partMsgs[ii] == ID) isPartMsg = true;     
    603                                           
    604                                         if(msg_info.alarm == false){ 
    605                                                 if ((openTab.type[currentTab] == 2 || openTab.type[currentTab] == 3) && isPartMsg === false){ 
    606                             delete_border(currentTab,'false'); 
    607                         } 
    608                                                          
    609                                         } 
    610                                          
    611                 if(Element("border_id_" + id_msg_read)) { 
    612                         alternate_border(id_msg_read); 
    613                         resizeWindow();  
    614                 } 
    615                 else { 
    616                         var border_id = create_border(msg_info.subject, id_msg_read); 
    617                         if(border_id) 
    618                         { 
    619                                 openTab.type[border_id] = 2; 
    620                                 openTab.imapBox[border_id] = msg_info.msg_folder; 
    621                                 draw_message(msg_info,border_id); 
    622                                 var unseen_sort = document.getElementById('span_flag_UNSEEN').getAttribute('onclick'); 
    623                                 unseen_sort = unseen_sort.toString(); 
    624                                 if ( !(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'") < 0) ) 
    625                                 { 
    626                                         var sort_type = sort_box_type; 
    627                                         sort_box_type = null; 
    628                                         sort_box('UNSEEN', sort_type,false);  
    629                                         delete selectedPagingMsgs[msg_info.msg_number]; 
    630                                         totalFolderMsgs--; 
    631                                 } 
    632                         } 
    633                         else 
    634                                 return; 
    635                 } 
    636  
    637                 var domains = ""; 
    638                 if ((msg_info.DispositionNotificationTo) && (!msg_is_read(ID) || (msg_info.Recent == 'N'))) 
    639                 { 
    640                         if (preferences.notification_domains != undefined && preferences.notification_domains != "") 
    641                         { 
    642                                 domains = preferences.notification_domains.split(','); 
    643                         } 
    644                         else 
    645                         { 
    646                                 var confNotification = true; 
    647                          } 
    648                         for (var i = 0; i < domains.length; i++) 
    649                                 if (Base64.decode(msg_info.DispositionNotificationTo).match("@"+domains[i])) 
    650                                 { 
    651                                         var confNotification = true; 
    652                                         break; 
    653                                 } 
    654                                 if (confNotification == undefined) 
    655                                         var confNotification = confirm(get_lang("The sender:\n%1\nwaits your notification of reading. Do you want to confirm this?",Base64.decode(msg_info.DispositionNotificationTo)), ""); 
    656  
    657                         if (confNotification) { 
    658                         /* Adequação a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */ 
    659                                 if(preferences.confirm_read_message) { 
    660                                         $.Zebra_Dialog(get_lang("Would you like to send the read receipt?"), { 
    661                                                 'type':     'question', 
    662                                                 'title':    get_lang('Read receipt'), 
    663                                                 'buttons':  [get_lang("Yes"), get_lang("No")], 
    664                                                 'overlay_opacity' : 0.5, 
    665                                                 'onClose':  function(caption) { 
    666                                                         if(caption == get_lang("Yes")) 
    667                                                                 cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject), handler_sendNotification);                                                               
    668                                                         else  
    669                                                                 write_msg(get_lang("Confirmation message is not sent")); 
    670                                                 } 
    671                                         }); 
    672                                 } 
    673                                 else 
    674                                         cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject), handler_sendNotification);                                                               
    675                         } 
    676                                  
    677                 } 
    678  
    679                 //Change msg class to read. 
    680                 if (!msg_is_read(ID)) 
    681                 { 
    682             //MAILARCHIVER-01 TAG MESSAGE AS SEEN 
    683             if (proxy_mensagens.is_local_folder(get_current_folder())){ 
    684                 expresso_mail_archive.drawdata = null //no draw action 
    685                 var tl = expresso_mail_archive.pattern.tagConfig('unseen', ID, 1); 
    686                 expresso_mail_archive.taglist = tl; 
    687                 expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);                             
    688             } 
    689             set_msg_as_read(ID, true); 
    690                         if (msg_info.cacheHit || (!proxy_mensagens.is_local_folder(get_current_folder()) && msg_info.original_ID)) 
    691                         { 
    692                 set_message_flag(ID, "seen"); // avoid caducous (lazy) data 
    693                         } 
    694                 } 
    695         } 
    696         setTimeout('resizeWindow()',300); 
    697 } 
    698  
    699 function auto_refresh(){ 
    700         refresh(preferences.alert_new_msg, preferences.notifications); 
    701         setTimeout('auto_refresh()', time_refresh); 
    702 } 
    703  
    704 function auto_archiving() { 
    705         expresso_mail_sync.start_sync(); 
    706         setTimeout('auto_archiving()',600000); 
    707 } 
    708  
    709 function notificationFilter(data, notifyCriteria){ 
    710          
    711         if(parseInt(notifyCriteria)  && data.length > 0 && !activePage ){ 
    712          
    713                 var howManyCriteria = $('div.gray.filtersDeadline .message-list li').length; 
    714                 var differenceOfNewCriteria = data.length - howManyCriteria; 
    715                  
    716                 if(differenceOfNewCriteria > 0){ 
    717                         for(var i=data.length - differenceOfNewCriteria; i < data.length; i++){ 
    718          
    719                                 desktopNotification.sentNotification("",get_lang("Filter criteria"),  truncate(new Date(data[i].udate).toString('dd/MM HH:mm') + ' - ' + data[i].from+' - '+data[i].subject, 75)); 
    720                                 desktopNotification.showNotification(false, function(){ 
    721                                         window.focus(); 
    722                                         this.cancel(); 
    723                                 }); 
    724                         } 
    725                 } 
    726         } 
    727 } 
    728  
    729 function refresh(alert_new_msg, notifyPermission){ 
    730  
    731         getFromAlertRules(); 
    732         var handler_refresh = function(data){ 
    733                 handlerMessageFilter = function (data) {                         
    734                         notificationFilter(data, notifyPermission); 
    735                         alarmFollowupflagged('filtersAlarms', data); 
    736                          
    737                 } 
    738                 /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
    739                 cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    740  
    741                 if(data['msg_range_end']) 
    742                         if(data['msg_range_end'] > 0) 
    743                                 current_page = data['msg_range_end']/preferences.max_email_per_page; 
    744                 if(!verify_session(data)) 
    745                         return; 
    746                 var total_messages_element = Element('tot_m'); 
    747                          
    748                 var box = Element("tbody_box"); 
    749                 if (box.childNodes.length == 0) 
    750                         showEmptyBoxMsg(box); 
    751  
    752                 if (data.length > 0 || countNewMessage > 0){ 
    753                         for(var i=0;i< data.length;i++){ 
    754                                 if (!onceOpenedHeadersMessages[current_folder]) 
    755                                         onceOpenedHeadersMessages[current_folder] = {}; 
    756                                 onceOpenedHeadersMessages[current_folder][data[i].msg_number] = data[i]; 
    757                         } 
    758                         Element("table_message_header_box_0").emptyBody = false; 
    759                         table_element = Element("table_box"); 
    760                         var msg_info = document.getElementById('msg_info'); 
    761                         if (msg_info != null) 
    762                         { 
    763                                 var msg_tr = msg_info.parentNode.parentNode; 
    764                                 msg_tr.removeChild(msg_info.parentNode); 
    765                                 if (!Element("colgroup_main_"+numBox)) { 
    766                                         var colgr_element = buildColGroup(); 
    767                                         colgr_element.setAttribute("id","colgroup_main_"+numBox); 
    768                                         table_element.appendChild(colgr_element); 
    769                                 } 
    770                         } 
    771  
    772                         var box = Element("tbody_box"); 
    773                         //table_element.insertBefore(box, Element("colgroup_main_"+numBox)); // keeps colgroup as the last child 
    774                         //table_element.appendChild(Element("colgroup_main_"+numBox)); 
    775                          
    776                          
    777                         if (!$("#colgroup_main_0").size()){ 
    778                                 $(table_element).append(Element("colgroup_main_"+numBox)); 
    779                         } 
    780  
    781                         if (data.msgs_to_delete.length > 0){ 
    782                                 for (var i=0; i<data.msgs_to_delete.length; i++){ 
    783                                         if ( (data.msgs_to_delete[i] != undefined) && (data.msgs_to_delete[i] != "")){ 
    784                                                 removeAll(data.msgs_to_delete[i]); 
    785                                         } 
    786                                 } 
    787                         } 
    788                         if (data[0].msg_folder != current_folder) // Bad request 
    789                                 return false; 
    790                                  
    791                         totalFolderMsgs += data.new_msgs;  
    792                                  
    793                         for (var i=0; i<data.length; i++){ 
    794                                 var existent = document.getElementById(data[i].msg_number); 
    795                                 if (!existent) 
    796                                 { 
    797                                         selectedPagingMsgs[data[i].msg_number] = false; 
    798                                         totalFolderMsgs++; 
    799                                         updateSelectedMsgs(false,data[i].msg_number); 
    800                                         var new_msg = this.make_tr_message(data[i], current_folder, data.offsetToGMT); 
    801                                         $(new_msg).draggable({ 
    802                                                 start : function(){ 
    803                                                         if($(".shared-folders").length){ 
    804                                                                 $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({ 
    805                                                                         over : function(a, b){                                           
    806                                                                                 //SETA BORDA EM VOLTA DA PASTA 
    807                                                                                 over = $(this); 
    808                                                                                 $(this).addClass("folder-over"); 
    809                                                                                 if(($(this)[0] != $(this).parent().find(".head_folder")[0])) 
    810                                                                                         if($(this).prev()[0]) 
    811                                                                                                 if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ 
    812                                                                                                         setTimeout(function(){ 
    813                                                                                                                 if(over.hasClass("folder-over")) 
    814                                                                                                                         over.prev().trigger("click"); 
    815                                                                                                         }, 500); 
    816                                                                                                          
    817                                                                                                 } 
    818                                                                         }, 
    819                                                                         out : function(){ 
    820                                                                                 //RETIRA BORDA EM VOLTA DA PASTA 
    821                                                                                 $(this).removeClass("folder-over"); 
    822                                                                         }, 
    823                                                                         //accept: ".draggin_mail", 
    824                                                                         drop : function(event, ui){ 
    825                                                                                 $(this).css("border", ""); 
    826                                                                                 if($(this).parent().attr('id') == undefined){ 
    827                                                                                         var folder_to = 'INBOX'; 
    828                                                                                         var to_folder_title = get_lang("Inbox"); 
    829                                                                                 }else{ 
    830                                                                                         var folder_to = $(this).parent().attr('id'); 
    831                                                                                         var to_folder_title = $(this).attr('title'); 
    832                                                                                 }                
    833                                                                                 var folder_to_move = ui.draggable.parent().attr('id'); 
    834                                                                                 var border_id = ui.draggable.find("input[type=hidden]").attr("name"); 
    835                                                                                 // Mensagens : SE O DROP VIER DA LISTA DE MENSAGENS : 
    836                                                                                 if(folder_to_move == "tbody_box"){ 
    837                                                                                         move_msgs2(get_current_folder(), 'selected', 0, folder_to, to_folder_title,true); 
    838                                                                                         return refresh(); 
    839                                                                                 } 
    840                                                                         } 
    841                                                                 }); 
    842                                                         } 
    843                                                 }, 
    844                                                 stop :function(){ 
    845                                                         $(".shared-folders").parent().find(".folder").droppable("destroy"); 
    846                                                 }, 
    847                                                 helper: function(event){ 
    848                                                         $(this).addClass("selected_msg").find("input:checkbox").attr("checked", true); 
    849                                                         updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
    850                                                         if ( $("#tbody_box .selected_shortcut_msg").length > 1) { 
    851                                                                 $("#tbody_box .selected_shortcut_msg").addClass("selected_msg").find('.checkbox').attr('checked',true); 
    852                                                                 $.each( $(".selected_shortcut_msg"), function(index, value){ 
    853                                                         updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id")); 
    854                                                         }); 
    855                                                         } 
    856                                                         if(totalSelected() > 1) 
    857                                                                 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (totalSelected()+" mensagens selecionadas"), type: "messages"})+"</td></tr>"); 
    858                                                         if(     $(this).find(".td_msg_subject").text().length > 18 ) 
    859                                                                 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text().substring(0,18) + "...", type: "messages"})+"</td></tr>"); 
    860                                                         else 
    861                                                                 return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text(), type: "messages"})+"</td></tr>"); 
    862                                                 }, 
    863                                                 iframeFix: true, 
    864                                                 delay: 150, 
    865                                                 cursorAt: {top: 5, left: 56}, 
    866                                                 refreshPositions: true, 
    867                                                 containment: "#divAppbox" 
    868                                         }).bind("contextmenu", function(){ 
    869                                                 if (!(($(event.target).find('img').length > 0) && ($(event.target).hasClass('td-label')))){ 
    870                                                         if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    871                                                                 $(this).find("input:checkbox").trigger('click'); 
    872                                                                 $(this).addClass("selected_msg"); 
    873                                                         } 
    874                                                         updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
    875                                                 } 
    876                                         }); 
    877                                         //_dragArea.makeDragged(new_msg, data[i].msg_number, data[i].subject, true); 
    878                                          
    879                                         if( data[i].next_msg_number != undefined && data[i].next_msg_number != null ){ 
    880                                                 try { 
    881                                                         box.insertBefore(new_msg, box.childNodes[data[i].msg_key_position]);                                     
    882                                                 } 
    883                                                 catch (e){ 
    884                                                         box.insertBefore(new_msg, box.firstChild); 
    885                                                 } 
    886                                         } 
    887                                         else if (data[i].Recent == 'N'){ 
    888                                                 box.insertBefore(new_msg,box.firstChild); 
    889                                         } 
    890                                         else { 
    891                                                 box.appendChild(new_msg); 
    892                                         } 
    893                                 } 
    894                         } 
    895                         if(parseInt(preferences.use_shortcuts)) 
    896                                 select_msg("null","reload_msg","null"); 
    897                  
    898                         if(parseInt(alert_new_msg) && data.new_msgs > 0 && activePage) 
    899                                 alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 
    900                          
    901                          
    902                         if(parseInt(notifyPermission)  && (data.new_msgs > 0 || !!countNewMessage) && !activePage ){ 
    903                          
    904                                 countNewMessage += data.length; 
    905                                  
    906                                 desktopNotificationAux = desktopNotification.sentNotification("",get_lang("Notification"), countNewMessage > 1 ? get_lang("You have %1 new messages", countNewMessage) + "!" : get_lang("You have 1 new message") + "!"); 
    907                                  
    908                                 if(auxNotification !== 'undefined') 
    909                                         desktopNotification.cancelByReference(auxNotification); 
    910                                  
    911                                 desktopNotification.showNotification(function(){ 
    912                                         countNewMessage = 0; 
    913                                 }, function(){ 
    914                                         window.focus(); 
    915                                         this.cancel(); 
    916                                         countNewMessage = 0; 
    917                                 }); 
    918                                  
    919                                 auxNotification = desktopNotificationAux; 
    920                         } 
    921                         build_quota(data['quota']); 
    922                 } 
    923                 if(data.new_msgs){ 
    924                         total_messages_element.innerHTML = parseInt( total_messages_element.innerHTML ) + data.new_msgs; 
    925                 }else if(data.tot_msgs){ 
    926                         total_messages_element.innerHTML = data.tot_msgs >=0  ? data.tot_msgs : 0; 
    927                 } 
    928                 // Update Box BgColor 
    929                 var box = Element("tbody_box"); 
    930                 if(box.childNodes.length > 1){ 
    931                         updateBoxBgColor(box.childNodes); 
    932                 } 
    933                 connector.purgeCache(); 
    934                 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    935                 resizeMailList(); 
    936  
    937         } 
    938          
    939         msg_range_end = (current_page*preferences.max_email_per_page); 
    940         msg_range_begin = (msg_range_end-(preferences.max_email_per_page)+1); 
    941  
    942  
    943         //Get element tBody. 
    944         main = Element("tbody_box"); 
    945         if(!main) 
    946                 return; 
    947  
    948         // Get all TR (messages) in tBody. 
    949         main_list = main.childNodes; 
    950         var tmp = ''; 
    951         var string_msgs_in_main = ''; 
    952  
    953         var len = main_list.length; 
    954         for (var j=0; j < len; j++) 
    955                 tmp += main_list[j].id + ','; 
    956  
    957         string_msgs_in_main = tmp.substring(0,(tmp.length-1)); 
    958         if(!expresso_offline) 
    959                 $.ajax({ 
    960                           url: 'controller.php?' + $.param( {action: '$this.imap_functions.refresh', 
    961                                                               folder: current_folder, 
    962                                                               msgs_existent: string_msgs_in_main, 
    963                                                               msg_range_begin: msg_range_begin, 
    964                                                               msg_range_end: msg_range_end, 
    965                                                               sort_box_type: sort_box_type, 
    966                                                               search_box_type: search_box_type, 
    967                                                               sort_box_reverse: sort_box_reverse } ), 
    968                           success: function( data ){ 
    969                               data = connector.unserialize( data ); 
    970                                
    971                               if( data ) 
    972                                   handler_refresh( data ); 
    973                           }, 
    974                           beforeSend: function( jqXHR, settings ){ 
    975                                 connector.showProgressBar(); 
    976                           }, 
    977                           complete: function( jqXHR, settings ){ 
    978                                 connector.hideProgressBar(); 
    979                           } 
    980  
    981                 }); 
    982          
    983         var msgs = $("#tbody_box tr"); 
    984         if(!msgs.hasClass("current_selected_shortcut_msg selected_shortcut_msg")) 
    985         { 
    986                 msgs.first().focus().addClass("current_selected_shortcut_msg selected_shortcut_msg"); 
    987         } 
    988          
    989 } 
    990  
    991 function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive){  
    992             if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
    993                           alert( "Impossivel deletar mensagens que estão ainda estão sendo arquivadas." ); 
    994                           return; 
    995                         } 
    996                                  
    997                         var userTrashFolder = '';  
    998                         
    999                         if (arguments.length < 4) show_success_msg = true;  
    1000                         if (folder == 'null') folder = current_folder;  
    1001                   
    1002                         if(folder.substr(0,4) == 'user')  
    1003                         {  
    1004                                         var arrayFolder = folder.split(cyrus_delimiter);  
    1005                                         userTrashFolder = 'user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Trash'];   
    1006                                         /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 
    1007                                         DataLayer.remove('folder', false); 
    1008                                         DataLayer.get('folder'); 
    1009                                          
    1010                                         var has_folder = DataLayer.get('folder', userTrashFolder); 
    1011                                         if(!has_folder){ 
    1012                                                 create_new_folder(special_folders['Trash'], 'user'+cyrus_delimiter+arrayFolder[1]); 
    1013                                         } 
    1014                                          
    1015                         }  
    1016                                 else userTrashFolder = mount_url_folder(["INBOX",special_folders["Trash"]]);  
    1017           
    1018                         if(openTab.type[currentTab] == 1)  
    1019                                         return move_search_msgs('content_id_'+currentTab,userTrashFolder,special_folders['Trash']);  
    1020                                          
    1021                                 if(currentTab.toString().indexOf("_r") != -1)  
    1022                                         msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));  
    1023                           
    1024                         if (!archive && (parseInt(preferences.save_deleted_msg)) && (folder != userTrashFolder)){  
    1025                             move_msgs2(folder, ""+msgs_number, border_ID, userTrashFolder,special_folders['Trash'],show_success_msg );  
    1026                                         return; 
    1027                                 } 
    1028  
    1029         var handler_delete_msgs = function(data){ 
    1030  
    1031                 Element('chk_box_select_all_messages').checked = false; 
    1032                 if (currentTab) 
    1033                         mail_msg = Element("tbody_box_"+currentTab); 
    1034                 else 
    1035                         mail_msg = Element("tbody_box"); 
    1036  
    1037                 if ( preferences.use_shortcuts == '1') { 
    1038                                 //Last msg is selected 
    1039                                 if (mail_msg && exist_className(mail_msg.childNodes[mail_msg.childNodes.length-1], 'selected_shortcut_msg') ) { 
    1040                                         select_msg('null', 'up', true); 
    1041                                 } 
    1042                                 else { 
    1043                                         if (!select_msg('null', 'down', true)) { 
    1044                                                 select_msg('null', 'up', true); 
    1045                                         } 
    1046                                 } 
    1047                         } 
    1048  
    1049                 if(data.status == false){ 
    1050                         write_msg(get_lang("You don't have permission for this operation in this shared folder!")); 
    1051                         return false; 
    1052                 } 
    1053  
    1054                 //Se pref. usar mensagens locais ativaada e não for operação de arquivamento exibe mensagem de remoção. 
    1055                 if(preferences.use_local_messages == 1){ 
    1056                         if(!expresso_mail_archive.isArchiveOperation){ 
    1057                                 if (show_success_msg){ 
    1058                                         if (data.msgs_number.length == 1) 
    1059                                                 write_msg(get_lang("The message was deleted.")); 
    1060                                         else 
    1061                                                 write_msg(get_lang("The messages were deleted.")); 
    1062                                 } 
    1063                         } 
    1064                 } 
    1065                 else{ 
    1066                         if (show_success_msg){ 
    1067                                 if (data.msgs_number.length == 1) 
    1068                                         write_msg(get_lang("The message was deleted.")); 
    1069                                 else 
    1070                                         write_msg(get_lang("The messages were deleted.")); 
    1071                         } 
    1072                 } 
    1073  
    1074                 if (openTab.type[currentTab] > 1){ 
    1075                         var msg_to_delete = Element(msgs_number); 
    1076                         if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) { 
    1077                                 if (msg_to_delete.previousSibling){ 
    1078                                         var previous_msg = msg_to_delete.previousSibling.id; 
    1079                                          $.ajax({ 
    1080                                                   url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1081                                                                                       msg_number: previous_msg,  
    1082                                                                                       msg_folder: current_folder, 
    1083                                                                                       decoded: true } ), 
    1084                                                   success: function( data ){ 
    1085                                                       data = connector.unserialize( data ); 
    1086                                                        
    1087                                                       if( data ) 
    1088                                                           show_msg( data ); 
    1089                                                   }, 
    1090                                                   beforeSend: function( jqXHR, settings ){ 
    1091                                                         connector.showProgressBar(); 
    1092                                                   }, 
    1093                                                   complete: function( jqXHR, settings ){ 
    1094                                                         connector.hideProgressBar(); 
    1095                                                   } 
    1096  
    1097                                         }); 
    1098                                 }  
    1099                                 else{ 
    1100                     delete_border(currentTab,'false'); 
    1101                 } 
    1102                                          
    1103                         } 
    1104                         else{ 
    1105                 delete_border(currentTab,'false'); 
    1106             } 
    1107                                  
    1108                 } 
    1109                 for (var i=0; i<data.msgs_number.length; i++){ 
    1110                                 var msg_to_delete = Element(data.msgs_number[i]); 
    1111                                 if (msg_to_delete){ 
    1112                                                 removeAll(msg_to_delete.id); 
    1113                                                  delete selectedPagingMsgs[data.msgs_number[i]];  
    1114                                 } 
    1115                                  totalFolderMsgs = totalFolderMsgs - data.msgs_number.length;  
    1116                 } 
    1117                 $.each(data.msgs_number, function(index, value){ 
    1118                 msgFolder =  Base64.encode(get_current_folder()); 
    1119                 tabToRemove = value + "_r_" + msgFolder.replace(/=/g,""); 
    1120                 if ($("#"+tabToRemove)){ 
    1121                         delete_border(tabToRemove,'false'); 
    1122                 } 
    1123             }); 
    1124                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length; 
    1125                 refresh(); 
    1126         } 
    1127          
    1128         if (msgs_number.length > 0 || parseInt(msgs_number) > 0) 
    1129                 cExecute ("$this.imap_functions.delete_msgs&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, handler_delete_msgs); 
    1130         else 
    1131                 write_msg(get_lang('No selected message.')); 
    1132 } 
    1133  
    1134    
    1135 function move_search_msgs(border_id, new_folder, new_folder_name, action){ 
    1136  
    1137         var msg_to_delete = ""; 
    1138         var msg_to_move = ""; 
    1139         var selected_messages = ''; 
    1140         var temp_msg; 
    1141         var remove_currente_folder = ""; 
    1142         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    1143  
    1144         //Validação para não poder manipular mensagens locais na busca 
    1145         if (currentTab.indexOf('search_local') != -1 || proxy_mensagens.is_local_folder(new_folder)) 
    1146         { 
    1147                 alert(get_lang("You cant manipulate local messages on search")); 
    1148                 return; 
    1149         } 
    1150  
    1151         var delete_msg = false; 
    1152          
    1153         if(new_folder_name == special_folders['Trash']){ 
    1154                 delete_msg = true; 
    1155                 } 
    1156         selected_messages = get_selected_messages_search(); 
    1157          
    1158         if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( selected_messages, folder ) ){ 
    1159           alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 
    1160           return; 
    1161         } 
    1162         var handler_move_search_msgs = function(data){ 
    1163                 if(!data || !data.msgs_number) 
    1164                         return; 
    1165                 else if(data.deleted) { 
    1166                         if(data.no_move && data.move) 
    1167                                 alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission.")); 
    1168                         else if (data.msgs_number.length == 1) 
    1169                                 write_msg(get_lang("The message was deleted.")); 
    1170                         else 
    1171                                 write_msg(get_lang("The messages were deleted.")); 
    1172                 }else if(data.status == false && data.move ){ 
    1173                                         alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission.")); 
    1174                 }else if(data.status == false){ 
    1175                                         alert(get_lang("You don't have permission for this operation in this shared folder!")); 
    1176                                         return false; 
    1177                 }else{ 
    1178                         if (data.msgs_number.length == 1) 
    1179                                 write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    1180                         else 
    1181                                 write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    1182                 } 
    1183  
    1184                 if(data.no_move){ 
    1185                         var no_remove = data.no_move.split(','); 
    1186                         var continua = true; 
    1187                          
    1188                 selected_messages = selected_messages.split(","); 
    1189                 for (i = 0; i < selected_messages.length; i++){ 
    1190                                 for(j = 0; j < no_remove.length; j++) 
    1191                                         if(selected_messages[i] == no_remove[j]) 
    1192                                                 continua = false; 
    1193                                 if(continua)     
    1194                                         removeAll(selected_messages[i]+'_s'+id_border); 
    1195                                 continua = true; 
    1196                 } 
    1197                 }else{ 
    1198                         selected_messages = selected_messages.split(","); 
    1199                         for (i = 0; i < selected_messages.length; i++){ 
    1200                                 removeAll(selected_messages[i]+'_s'+id_border); 
    1201                  
    1202                         } 
    1203                 } 
    1204                  
    1205                 // Update Box BgColor 
    1206                 var box = Element("tbody_box_"+getNumBoxFromTabId(currentTab)).childNodes; 
    1207                 if(box.length > 1){ 
    1208                         updateBoxBgColor(box); 
    1209                 } 
    1210                 connector.purgeCache(); 
    1211  
    1212                  
    1213                 if(remove_currente_folder != ""){ 
    1214                         var mail_msg = Element('tbody_box').childNodes; 
    1215                         remove_currente_folder = remove_currente_folder.substring(0,(remove_currente_folder.length-1)); 
    1216                         remove_currente_folder = remove_currente_folder.split(","); 
    1217                         for(i = 0; i < remove_currente_folder.length; i++) 
    1218                                 removeAll(remove_currente_folder[i]); 
    1219  
    1220                         // Update Box BgColor 
    1221                         var box = Element("tbody_box"); 
    1222                         if(box.childNodes.length > 0){ 
    1223                                 updateBoxBgColor(box.childNodes); 
    1224                         } 
    1225                         if(folder == get_current_folder()){ 
    1226                                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - remove_currente_folder.length; 
    1227                         } 
    1228                 } 
    1229                  
    1230                 draw_new_tree_folder(); 
    1231                 EsearchE.refresh(); 
    1232         } 
    1233  
    1234         if (selected_messages){ 
    1235                  
    1236                 var selected_param = ""; 
    1237                 if (selected_messages.indexOf(',') != -1) 
    1238                 { 
    1239                         selected_msg_array = selected_messages.split(","); 
    1240                         for (i = 0; i < selected_msg_array.length; i++){ 
    1241                                 var tr = Element(selected_msg_array[i]+'_s'+id_border); 
    1242                                 if(tr.getAttribute('name') == current_folder) 
    1243                                         remove_currente_folder += tr.id.replace(/_[a-zA-Z0-9]+/,"")+','; 
    1244                                  
    1245                                 if ((action == 'delete' && tr.getAttribute('name') == mount_url_folder(["INBOX",special_folders["Trash"]])) || !(parseInt(preferences.save_deleted_msg))) 
    1246                                 { 
    1247                                         msg_to_delete +=   ','+special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    1248                                 } 
    1249                                 else if (!(tr.getAttribute('name') == new_folder && action != 'delete')) 
    1250                                 { 
    1251                                         msg_to_move = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    1252                                         selected_param += ','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    1253                                 }else{ 
    1254                                         write_msg(get_lang('At least one message have the same origin')); 
    1255                                         return false; 
    1256                                 } 
    1257                         } 
    1258                 } 
    1259                 else 
    1260                 { 
    1261                         var tr=Element(selected_messages+'_s'+id_border); 
    1262                         if(tr.getAttribute('name') == current_folder) 
    1263                                         remove_currente_folder += tr.id.replace(/_[a-zA-Z0-9]+/,"")+','; 
    1264                         if((action == 'delete' && tr.getAttribute('name') == mount_url_folder(["INBOX",special_folders["Trash"]])) || !(parseInt(preferences.save_deleted_msg))){ 
    1265                                 msg_to_delete = special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    1266                         }else if (!(tr.getAttribute('name') == new_folder && action != 'delete')){ 
    1267                                 trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    1268                                 selected_param=trfolder+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    1269                         }else{ 
    1270                                 write_msg(get_lang('The origin folder and the destination folder are the same.')); 
    1271                                 return false; 
    1272                         } 
    1273                 } 
    1274                 var params = ""; 
    1275                 if(msg_to_delete != "" && msg_to_move != ""){ 
    1276                         params += "&selected_messages_move="+url_encode(selected_param); 
    1277                         params += "&new_folder_move="+url_encode(new_folder); 
    1278                         params += "&new_folder_name_move="+url_encode(new_folder_name); 
    1279                  
    1280                         new_folder = mount_url_folder(["INBOX",special_folders["Trash"]]); 
    1281                         new_folder_name = special_folders['Trash']; 
    1282                         params += "&selected_messages_delete="+url_encode(msg_to_delete); 
    1283                         params += "&new_folder_delete="+url_encode(new_folder); 
    1284                         cExecute ("$this.imap_functions.move_delete_search_messages", handler_move_search_msgs, params); 
    1285                 }else if(msg_to_delete != ""){ 
    1286                         new_folder = mount_url_folder(["INBOX",special_folders["Trash"]]); 
    1287                         new_folder_name = special_folders['Trash']; 
    1288                         params += "&delete=true"; 
    1289                         params += "&selected_messages="+url_encode(msg_to_delete); 
    1290                         params += "&new_folder="+url_encode(new_folder); 
    1291                         cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
    1292                 }else{ 
    1293                         params = "&selected_messages="+url_encode(selected_param); 
    1294                         params += "&delete=false"; 
    1295                         params += "&new_folder="+url_encode(new_folder); 
    1296                         params += "&new_folder_name="+url_encode(new_folder_name); 
    1297                         cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
    1298                 } 
    1299         } 
    1300         else 
    1301                 write_msg(get_lang('No selected message.')); 
    1302 } 
    1303  
    1304 function move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,show_success_msg, not_opem_previus){ 
    1305         not_opem_previus = typeof(not_opem_previus) != 'undefined' ? not_opem_previus : false; 
    1306         var folder_error = new_folder_name; 
    1307         if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
    1308             alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 
    1309             return; 
    1310         } 
    1311  
    1312         if (! folder || folder == 'null') 
    1313                 folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder()); 
    1314         if(openTab.type[currentTab] == 1) 
    1315                 return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name); 
    1316  
    1317         var handler_move_msgs = function(data){ 
    1318                 if(typeof(data) == 'string') 
    1319                         if (data.match(/^(.*)TRYCREATE(.*)$/)){ 
    1320                                 connector.loadScript('TreeS'); 
    1321                                 var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : special_folders['Trash']; 
    1322                                 alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.', folder_error)); 
    1323                                 ttree.FOLDER = 'root'; 
    1324                                 create_new_folder(move_to_folder,"INBOX"); 
    1325                                 return false; 
    1326                         }else{ 
    1327                                 write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".', new_folder_name)); 
    1328                                 /*Verifica se a pasta destino é a "Trash" e se a pasta origem e destino são do mesma estrutura compartilhada*/ 
    1329                                 if(new_folder_name == "Trash" && folder.split("/")[1] == new_folder.split("/")[1]){ 
    1330                                         alert(get_lang("You can not remove the message with the preference 'Send to Trash' enabled. There is no permission to move messages to the trash folder.")); 
    1331                                 } 
    1332                                 return false; 
    1333                         } 
    1334                 //Este bloco verifica as permissoes ACL sobre pastas compartilhadas 
    1335                 if(data.status == false){ 
    1336                         write_msg(get_lang("You don't have permission for this operation in this shared folder!")); 
    1337                         return false; 
    1338                 } 
    1339                 mail_msg = ( Element("divScrollMain_"+numBox) ) ? Element("divScrollMain_"+numBox).firstChild.firstChild : Element("divScrollMain_0").firstChild.firstChild; 
    1340                 if (data.msgs_number.length == 1){ 
    1341                         write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    1342                 } 
    1343                 else{ 
    1344                         write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    1345                 } 
    1346  
    1347                 if (openTab.type[currentTab] > 1) 
    1348                 { 
    1349                         msg_to_delete = Element(msgs_number); 
    1350                         if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) 
    1351                         { 
    1352                                 if (msg_to_delete.previousSibling) 
    1353                                 { 
    1354                                         var previous_msg = msg_to_delete.previousSibling.id; 
    1355                                         //cExecute("$this.imap_functions.get_info_msg&msg_number="+previous_msg+"&msg_folder=" + current_folder, show_msg); 
    1356                                         if(!not_opem_previus){ 
    1357                                                 $.ajax({ 
    1358                                                           url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1359                                                                                               msg_number: previous_msg,  
    1360                                                                                               msg_folder: folder, 
    1361                                                                                               decoded: true } ), 
    1362                                                           success: function( data ){ 
    1363                                                               data = connector.unserialize( data ); 
    1364                                                                
    1365                                                               if( data ) 
    1366                                                                   show_msg( data ); 
    1367                                                           }, 
    1368                                                           beforeSend: function( jqXHR, settings ){ 
    1369                                                                 connector.showProgressBar(); 
    1370                                                           }, 
    1371                                                           complete: function( jqXHR, settings ){ 
    1372                                                                 connector.hideProgressBar(); 
    1373                                                           } 
    1374                                                 }); 
    1375                                         } 
    1376                                 } 
    1377                                 //se houver pagina anterior a paginação deve ser refeita 
    1378                                 else  
    1379                                 { 
    1380                                         if (current_page > 1) 
    1381                                         { 
    1382                                                 $('#msg_opt_previous_'+msg_to_delete.getAttribute('id') + '_r').trigger('click'); 
    1383                                         } 
    1384                                         else 
    1385                                         { 
    1386                                                 var border_id = $("#border_id_"+currentTab).prev().attr("id").split("_").slice(2, 3).join("") 
    1387                                                 var folderName = current_folder; 
    1388                                                 if(border_id) 
    1389                                                 { 
    1390                                                         $.ajax({ 
    1391                                                                 url: 'controller.php?' + $.param({ 
    1392                                                                         action: '$this.imap_functions.get_info_msg', 
    1393                                                                         msg_number: border_id,  
    1394                                                                         msg_folder: folderName, 
    1395                                                                         decoded: true  
    1396                                                                 }), 
    1397                                                                 success: function( data ){ 
    1398                                                                         data = connector.unserialize( data ); 
    1399                                                                         delete_border(currentTab,'false'); 
    1400                                                                         if( data ) 
    1401                                                                         { 
    1402                                                                                 show_msg( data ); 
    1403                                                                         } 
    1404                                                                 }, 
    1405                                                                 beforeSend: function( jqXHR, settings ){ 
    1406                                                                         connector.showProgressBar(); 
    1407                                                                 }, 
    1408                                                                 complete: function( jqXHR, settings ){ 
    1409                                                                         connector.hideProgressBar(); 
    1410                                                                 } 
    1411                                                         }); 
    1412                                                 } 
    1413                                                 else  
    1414                                                 { 
    1415                                                         delete_border(currentTab,'false'); 
    1416                                                 } 
    1417                                         } 
    1418                                 } 
    1419                         } 
    1420                         else 
    1421                         { 
    1422                                 if (msg_to_delete.id === String(currentTab).split('_')[0]) 
    1423                                 { 
    1424                                         delete_border(currentTab,'false'); 
    1425                                 } 
    1426                         } 
    1427                          
    1428                         if(msg_to_delete) 
    1429                         { 
    1430                                 mail_msg.removeChild(msg_to_delete); 
    1431                         } 
    1432  
    1433                         // Update Box BgColor 
    1434                         var box = Element("tbody_box"); 
    1435                         if(box.childNodes.length > 0) 
    1436                         { 
    1437                                 updateBoxBgColor(box.childNodes); 
    1438                         } 
    1439                         if(folder == get_current_folder()) 
    1440                         { 
    1441                                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - 1; 
    1442                         } 
    1443                         return; 
    1444                 } 
    1445  
    1446                 Element('chk_box_select_all_messages').checked = false; 
    1447                 if (! mail_msg) 
    1448                                 mail_msg = Element("tbody_box"); 
    1449                 data.msgs_number = data.msgs_number.split(","); 
    1450  
    1451                 var msg_to_delete; 
    1452                 if( typeof(msgs_number) == 'string' ) 
    1453                         all_search_msg = msgs_number.split(','); 
    1454                 else if( typeof(msgs_number) == 'number') 
    1455                         all_search_msg = msgs_number; 
    1456  
    1457                 for (var i=0; i <= all_search_msg.length; i++) 
    1458                 { 
    1459                         msg_to_delete = Element(folder+';'+all_search_msg[i]); 
    1460                         if (msg_to_delete) 
    1461                                 msg_to_delete.parentNode.removeChild(msg_to_delete); 
    1462                 } 
    1463  
    1464                 if ( preferences.use_shortcuts == '1') { 
    1465                         var all_messages = Element('tbody_box').childNodes; 
    1466                         // verificar se a msg selecionada com o checkbox é a mesma selecionada com o shortcut 
    1467                         var msg_list_shortcut = get_selected_messages_shortcut().split(','); 
    1468                         if(data.msgs_number.length > 0 && msg_list_shortcut.length > 0 && data.msgs_number.toString() == msg_list_shortcut.toString()){ 
    1469                                 //Last msg is selected 
    1470                                 if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') ) { 
    1471                                         select_msg('null', 'up', true); 
    1472                                 } 
    1473                                 else { 
    1474                                         if (!select_msg('null', 'down', true)) { 
    1475                                                 select_msg('null', 'up', true); 
    1476                                         } 
    1477                                 } 
    1478                         } 
    1479                 } 
    1480                 for (var i=0; i<data.msgs_number.length; i++) 
    1481                 { 
    1482                         msg_to_delete = Element(data.msgs_number[i]); 
    1483                         if (msg_to_delete) 
    1484                                 mail_msg.removeChild(msg_to_delete);     
    1485                 } 
    1486  
    1487                 if (data.msgs_number.length == 1) 
    1488                         write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    1489                 else 
    1490                         write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    1491                 if (data.border_ID.indexOf('r') != -1){ 
    1492                         if (parseInt(preferences.delete_and_show_previous_message) && folder == get_current_folder()){ 
    1493                                 delete_border(data.border_ID,'false'); 
    1494                                 show_msg(data.previous_msg); 
    1495                                 } 
    1496                         else{ 
    1497                 delete_border(data.border_ID,'false'); 
    1498             } 
    1499                                  
    1500                 } 
    1501                 if(folder == get_current_folder()){ 
    1502                         var n_total_msg = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length; 
    1503                         n_total_msg = n_total_msg >= 0 ? n_total_msg : 0; 
    1504                         draw_paging(n_total_msg); 
    1505                         Element('tot_m').innerHTML = n_total_msg; 
    1506                         totalFolderMsgs -= data.msgs_number.length; 
    1507                 } 
    1508                 refresh(); 
    1509         } 
    1510  
    1511         if (folder == new_folder){ 
    1512                 write_msg(get_lang('The origin folder and the destination folder are the same.')); 
    1513                 return; 
    1514         }   
    1515  
    1516         try{ 
    1517                 if (proxy_mensagens.is_local_folder(Element('input_folder_'+currentTab).getAttribute('value')) && !border_ID) { 
    1518                         alert(get_lang("You cant manipulate local messages on search")); 
    1519                         return; 
    1520                 } 
    1521         } catch (e) {}  
    1522     //Validação para recuperar o id caso não seja aba de listagem 
    1523         if (currentTab == 0 && msgs_number == "selected") 
    1524                 msgs_number = get_selected_messages(); 
    1525         else if (currentTab != 0 && msgs_number == "selected") 
    1526                 msgs_number = currentTab.substr(0,currentTab.indexOf('_r')); 
    1527  
    1528         if(openTab.type[currentTab] == 1){ 
    1529                 return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name); 
    1530                 } 
    1531  
    1532         // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
    1533         if(currentTab.toString().indexOf("_r") != -1 && currentTab == border_ID) 
    1534         { 
    1535                 //se a aba for aberta atraves de uma pesquisa 
    1536                 if(currentTab.toString().indexOf('_s') != -1) 
    1537                    msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 
    1538                 else 
    1539                     msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 
    1540         } 
    1541         if (msgs_number) { 
    1542                 refresh(); 
    1543         } 
    1544         else{ 
    1545                 $("#"+get_current_folder()).find('span:first').addClass('selected'); 
    1546         } 
    1547  
    1548         if (proxy_mensagens.is_local_folder(folder)){ 
    1549          
    1550                 expresso_mail_archive.update_counters = true; 
    1551         //Folder de onde sai a mensagem é local (armazenamento local) 
    1552  
    1553         if(msgs_number=='selected'){ 
    1554             msgs_number = get_selected_messages(); 
    1555         } 
    1556  
    1557         if (new_folder == 'local_root'){ 
    1558             alert(get_lang("Select a folder!")); 
    1559         } 
    1560                      
    1561         if (parseInt(msgs_number) > 0 || msgs_number.length > 0) { 
    1562             if (proxy_mensagens.is_local_folder(new_folder)){ 
    1563                 //esta tirando de um folder local para outro folder local 
    1564                 //expresso_mail_archive.moveMessages(new_folder.substr(6), msgs_number); 
    1565                 expresso_mail_archive.moveMessages(new_folder.replace('local_messages_', ''), msgs_number); 
    1566                 delete_border(border_ID); 
    1567             } 
    1568             else{ 
    1569                 //esta tirando de um folder local para um folder IMAP (desarquivamento) 
    1570                 if(!new_folder){ 
    1571                     new_folder = 'INBOX'; 
    1572                 } 
    1573                 if(currentTab.toString().indexOf("_r") != -1){ 
    1574                     msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    1575                 }                       
    1576                 expresso_mail_archive.unarchieve(folder, new_folder, msgs_number); 
    1577                 if(currentTab != 0) 
    1578                         delete_border(border_ID); 
    1579             } 
    1580         } 
    1581         else{ 
    1582             write_msg(get_lang('No selected message.')); 
    1583         } 
    1584  
    1585         } 
    1586         else{ 
    1587         if (proxy_mensagens.is_local_folder(new_folder)){ 
    1588             //esta tirando de um folder não local para um folder local (arquivamento) 
    1589             if(msgs_number=='selected'){ 
    1590                 archive_msgs(folder, new_folder); 
    1591             } 
    1592             else{ 
    1593                 archive_msgs(folder, new_folder, msgs_number); 
    1594             } 
    1595         } 
    1596         else{ 
    1597             //esta tirando de um folder não local para outro folder não local (move) 
    1598             //move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    1599                         if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 
    1600                                 // remove a flag $FilteredMessage da mensagem, depois move 
    1601                                 var handler_removeFlag = function(){ 
    1602                                         $.ajax({ 
    1603                                                 url: 'controller.php?' + $.param( {action: '$this.imap_functions.move_messages', 
    1604                                                                                     folder: folder, 
    1605                                                                                     msgs_number: ""+msgs_number, 
    1606                                                                                     border_ID: border_ID, 
    1607                                                                                     sort_box_type: sort_box_type, 
    1608                                                                                     search_box_type: search_box_type, 
    1609                                                                                     sort_box_reverse: sort_box_reverse, 
    1610                                                                                     reuse_border: border_ID, 
    1611                                                                                     new_folder: new_folder, 
    1612                                                                                     new_folder_name: new_folder_name, 
    1613                                                                                     get_previous_msg: ( !not_opem_previus ? preferences.delete_and_show_previous_message : false ), 
    1614                                                                                     decoded: true } ), 
    1615  
    1616                                                 success: function( data ){ 
    1617                                                     data = connector.unserialize( data ); 
    1618                                                     $.each(msgs_number.split(","), function(index, value){ 
    1619                                                         delete selectedPagingMsgs[value]; 
    1620                                                         msgFolder =  Base64.encode(get_current_folder()); 
    1621                                                         tabToRemove = value + "_r_" + msgFolder.replace(/=/g,""); 
    1622                                                         if ($("#"+tabToRemove)){ 
    1623                                                                 //delete_border(tabToRemove,'false'); 
    1624                                                         } 
    1625                                                     }); 
    1626                                                     totalFolderMsgs -= msgs_number.split(",").length; 
    1627  
    1628                                                     //TESTE 
    1629                                                     selectAllFolderMsgs(); 
    1630                                                 $('.select-link').unbind('click'); 
    1631  
    1632                                                     if( data ) 
    1633                                                         handler_move_msgs( data ); 
    1634                                                 }, 
    1635                                                 beforeSend: function( jqXHR, settings ){ 
    1636                                                         connector.showProgressBar(); 
    1637                                             }, 
    1638                                             complete: function( jqXHR, settings ){ 
    1639                                                         connector.hideProgressBar(); 
    1640                                           } 
    1641  
    1642                                     }); 
    1643                                 } 
    1644                                 var hasFolder = false; 
    1645                                 $.each(fromRules, function(index, value) { 
    1646                                         if(value == folder){ 
    1647                                                 hasFolder = true; 
    1648                                                 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_number, handler_removeFlag);  
    1649                                                 return false; 
    1650                                         } 
    1651                                 }); 
    1652                                 if(!hasFolder){ 
    1653                                         handler_removeFlag(); 
    1654                                 } 
    1655                                  
    1656                         }else 
    1657                                 write_msg(get_lang('No selected message.')); 
    1658         } 
    1659     }    
    1660  
    1661     //Código adicionado para o correto funcionamento da seleção independente de paginação. 
    1662     $.each(msgs_number.split(","), function(index, value){ 
    1663         delete selectedPagingMsgs[value]; 
    1664     }); 
    1665     totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length; 
    1666     selectAllFolderMsgs(false); 
    1667     updateSelectedMsgs(); 
    1668 } 
    1669  
    1670 function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus) { 
    1671         move_msgs2(folder, msgs_number, border_ID, new_folder, new_folder_name,true, not_opem_previus); 
    1672 } 
    1673  
    1674 function normalizeMsgNumber( msgNumber ){ 
    1675    
    1676       if (msgNumber || msgNumber == 'selected') 
    1677           msgNumber = get_selected_messages(); 
    1678  
    1679  
    1680       // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 
    1681       if(currentTab.toString().indexOf("_r") != -1) 
    1682       { 
    1683             //se a aba for aberta atraves de uma pesquisa 
    1684             if(currentTab.toString().indexOf('_s') != -1) 
    1685                 msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_s')); 
    1686             else 
    1687                 msgNumber = currentTab.toString().substr(0,currentTab.toString().indexOf('_r')); 
    1688       } 
    1689        
    1690       if (parseInt(msgNumber) <= 0 || msgNumber.length <= 0){ 
    1691             write_msg(get_lang('No selected message.')); 
    1692             return( false ); 
    1693       } 
    1694        
    1695       return( msgNumber ); 
    1696  
    1697 } 
    1698  
    1699 function archive_search_msgs(folder_dest) { 
    1700          
    1701         var id_msgs = ""; 
    1702         id_msgs = get_selected_messages_search(); 
    1703         var msg_to_arquive = ""; 
    1704         var messages = ""; 
    1705         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    1706  
    1707         if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 
    1708             return write_msg(get_lang('No selected message.')); 
    1709          
    1710         if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
    1711             folder_dest = 'local_Inbox'; 
    1712  
    1713         id_msgs = expresso_local_messages.checkArchived( id_msgs, folder_dest ); 
    1714  
    1715         if( !id_msgs ){ 
    1716             write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
    1717             return; 
    1718         } 
    1719    
    1720         document.getElementById("overlay").style.visibility = "visible"; 
    1721  
    1722         var handler_arquivar_mensagens = function(data) { 
    1723            
    1724             var msgs_info = []; 
    1725            
    1726             for( var i = 0; i < data.length; i++ ) 
    1727                 msgs_info[i] = connector.unserialize( data[i] ); 
    1728  
    1729             //vejo se já tinha mensagens locais 
    1730             var h = expresso_local_messages.has_local_mails(); 
    1731              
    1732             expresso_local_messages.insert_mails( msgs_info, folder_dest, function( s, f ){complete_archiving( s, f, h )} ); 
    1733  
    1734             document.getElementById("overlay").style.visibility = "hidden"; 
    1735         } 
    1736  
    1737         id_msgs =  id_msgs.split(','); 
    1738         for (i = 0; i < id_msgs.length; i++){ 
    1739                 var tr = Element(id_msgs[i]+'_s'+id_border); 
    1740                 msg_to_arquive = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    1741                 messages += ','+msg_to_arquive+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    1742         } 
    1743          
    1744         $.ajax({ 
    1745                   url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1746                                                       msg_number: messages,  
    1747                                                       msg_folder: folder_dest, 
    1748                                                       decoded: true } ), 
    1749                   success: function( data ){ 
    1750                       data = connector.unserialize( data ); 
    1751                        
    1752                       if( data ) 
    1753                           handler_arquivar_mensagens( data ); 
    1754                   }, 
    1755                   beforeSend: function( jqXHR, settings ){ 
    1756                         connector.showProgressBar(); 
    1757                   }, 
    1758                   complete: function( jqXHR, settings ){ 
    1759                         connector.hideProgressBar(); 
    1760                   } 
    1761  
    1762         }); 
    1763 } 
    1764  
    1765  
    1766  function archive_msgs(folder,folder_dest,id_msgs) { 
    1767  
    1768     if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    1769         alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    1770         return true; 
    1771     } 
    1772     write_msg(get_lang('Starting to archive messages')); 
    1773  
    1774     if(currentTab.toString().indexOf("_r") != -1){ 
    1775         id_msgs = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    1776     } 
    1777  
    1778     if(!id_msgs) 
    1779         id_msgs = get_selected_messages(); 
    1780  
    1781     if(folder_dest=='local_root' || folder_dest==null)//Default archive destiny = local_inbox folder 
    1782         folder_dest = 'local_inbox'; 
    1783      
    1784     if (parseInt(id_msgs) > 0 || id_msgs.length > 0){        
    1785         //expresso_mail_archive.Archive(folder,folder_dest,id_msgs); 
    1786         window.setTimeout("expresso_mail_archive.Archive('" + folder + "','" + folder_dest + "','" + id_msgs + "')", 1); 
    1787         selectAllFolderMsgs(false); 
    1788     } 
    1789     else 
    1790         write_msg(get_lang('No selected message.')); 
    1791  
    1792  
    1793         /* 
    1794         if(proxy_mensagens.is_local_folder(folder)) { 
    1795                 write_msg(get_lang("You cant archive local mails")); 
    1796                 return; 
    1797         } 
    1798  
    1799         if(currentTab.toString().indexOf("_r") != -1) 
    1800         id_msgs = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    1801                  
    1802     if(currentTab.toString().indexOf("_s") != -1) 
    1803                 id_msgs = currentTab.toString().substr(0,currentTab.toString().indexOf("_s")); 
    1804  
    1805         if(!id_msgs){ 
    1806                 if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    1807                         archive_search_msgs(folder_dest); 
    1808                         return; 
    1809                 }else 
    1810                         id_msgs = get_selected_messages(); 
    1811         }        
    1812  
    1813         if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 
    1814             return write_msg(get_lang('No selected message.')); 
    1815          
    1816         if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
    1817                 folder_dest = 'local_Inbox'; 
    1818  
    1819         id_msgs = expresso_local_messages.checkArchived( id_msgs, folder_dest ); 
    1820  
    1821          if( !id_msgs ){ 
    1822               write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
    1823               return; 
    1824           } 
    1825    
    1826         document.getElementById("overlay").style.visibility = "visible"; 
    1827  
    1828         var handler_arquivar_mensagens = function(data) { 
    1829            
    1830             //var msgs_info = []; 
    1831            
    1832             //for( var i = 0; i < data.length; i++ ) 
    1833                 //msgs_info[i] = connector.unserialize( data[i] ); 
    1834  
    1835             //vejo se já tinha mensagens locais 
    1836             //var h = expresso_local_messages.has_local_mails(); 
    1837              
    1838             //expresso_local_messages.insert_mails( msgs_info, folder_dest, function( s, f ){complete_archiving( s, f, h )} ); 
    1839  
    1840             expresso_mail_archive.Archive(folder,folder_dest,id_msgs); 
    1841             document.getElementById("overlay").style.visibility = "hidden"; 
    1842         } 
    1843  
    1844         $.ajax({ 
    1845                   url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    1846                                                       msg_number: id_msgs,  
    1847                                                       msg_folder: folder, 
    1848                                                       decoded: true } ), 
    1849                   success: function( data ){ 
    1850                       data = connector.unserialize( data ); 
    1851                        
    1852                       if( data ) 
    1853                           handler_arquivar_mensagens( data ); 
    1854                   }, 
    1855                   beforeSend: function( jqXHR, settings ){ 
    1856                         connector.showProgressBar(); 
    1857                   }, 
    1858                   complete: function( jqXHR, settings ){ 
    1859                         connector.hideProgressBar(); 
    1860                   } 
    1861  
    1862         }); 
    1863         */ 
    1864          
    1865 } 
    1866  
    1867 function complete_archiving( success, fails, has_local_messages_before ) 
    1868 { 
    1869     var msgs_to_remove = {}; 
    1870     var target = mount_url_folder(["INBOX",special_folders["Trash"],'tmpMoveToLocal']); 
    1871      
    1872     success = expresso_local_messages.select_mail( [ 'original_id', 'original_folder' ], success ); 
    1873  
    1874     for (var i = 0; i < success.length; i++) { 
    1875          
    1876         var msg_info = success[i]; 
    1877  
    1878 //      if ( msg_info.dest_folder == target ) 
    1879 //      { 
    1880 //              msg_info.msg_folder += (Date.parse(new Date)); 
    1881 //      } 
    1882  
    1883         //////////////// deselecionando //////////////// 
    1884         Element('chk_box_select_all_messages').checked = false; 
    1885  
    1886         if ( Element("check_box_message_" + msg_info.original_id) )  
    1887         { 
    1888                 Element("check_box_message_" + msg_info.original_id).checked = false; 
    1889         } 
    1890         if ( Element(msg_info.original_id) ) 
    1891         { 
    1892                 remove_className(Element(msg_info.original_id), 'selected_msg'); 
    1893         } 
    1894  
    1895 //      if ( tree_folders._selected.id.indexOf( 'local_' ) == 0 || msg_info.dest_folder.indexOf( target ) == 0 ) 
    1896 //      { 
    1897 //              openTab.imapBox[0] = ''; 
    1898 //              tree_folders.getNodeById( 'local_Inbox' )._select( ); 
    1899 //              change_folder('local_Inbox','Inbox'); 
    1900 //      } 
    1901         ///////////////////////////////////////////////// 
    1902  
    1903         //As mensagens arquivadas devem ser removidas, caso o usuario tenha isso configurado. 
    1904         msgs_to_remove[ msg_info.original_folder ] = msgs_to_remove[ msg_info.original_folder ] || []; 
    1905         msgs_to_remove[ msg_info.original_folder ].push( msg_info.original_id ); 
    1906     } 
    1907  
    1908     if (preferences.keep_archived_messages == 0) { 
    1909             //Remove as mensagens 
    1910             for( var folder in msgs_to_remove ){ 
    1911                 if(folder != 'undefined') 
    1912                         delete_msgs(folder, msgs_to_remove[folder],'null',false,true); 
    1913             } 
    1914     } 
    1915  
    1916     if( !has_local_messages_before && expresso_local_messages.has_local_mails() ) 
    1917             ttreeBox.update_folder(); 
    1918     else 
    1919             update_menu(); 
    1920 } 
    1921  
    1922 function action_msg_selected_from_search(aba, evento){ 
    1923         if(evento == "delete") 
    1924                 move_search_msgs(aba,'INBOX/Trash', 'Trash', 'delete'); 
    1925 } 
    1926  
    1927 function get_all_messages_search(){ 
    1928         var aba = document.getElementById('content_id_'+currentTab); 
    1929         var messages = ""; 
    1930         jQuery(function() { 
    1931             jQuery("#"+aba.id+" tr").each(function(i, main_list) {  
    1932                                 messages += main_list.id.replace(/_[a-zA-Z0-9]+/,"") + ',' ; 
    1933             });               
    1934               
    1935         }); 
    1936         if(messages.indexOf(',') == 0) 
    1937                 messages = messages.substring(1,(messages.length)); 
    1938         return messages.substring(0,(messages.length-1)); 
    1939 } 
    1940  
    1941 function get_selected_messages_search(){ 
    1942         var aba = document.getElementById('content_id_'+currentTab); 
    1943         var selected_messages = ""; 
    1944             jQuery("#"+aba.id+" tr").each(function(i, main_list) {  
    1945                 var check_box = main_list.firstChild.firstChild; 
    1946                         if(check_box && check_box.checked) { 
    1947                                 selected_messages += main_list.id.replace(/_[a-zA-Z0-9]+/,"") + ',' ; 
    1948                         }; 
    1949             });               
    1950               
    1951         if (selected_messages != ""){ 
    1952                 if(selected_messages.indexOf(',') == 0) 
    1953                         selected_messages = selected_messages.substring(1,(selected_messages.length)); 
    1954                 selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
    1955                 return selected_messages; 
    1956         }else{ 
    1957                 return false; 
    1958         } 
    1959 } 
    1960  
    1961 function get_selected_messages_search_role(){ 
    1962         var aba = document.getElementById('content_id_'+currentTab); 
    1963         var selected_messages = ""; 
    1964         jQuery("#"+aba.id+" tr").each(function(i, main_list) {  
    1965         var check_box = main_list.firstChild.firstChild; 
    1966                 if(check_box && check_box.checked && check_box.id != 'chk_box_select_all_messages_search') { 
    1967                         selected_messages += main_list.role + ',' ; 
    1968                 }; 
    1969         });               
    1970  
    1971         if (selected_messages != ""){ 
    1972                 if(selected_messages.indexOf(',') == 0) 
    1973                         selected_messages = selected_messages.substring(1,(selected_messages.length)); 
    1974                 selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
    1975                 return selected_messages; 
    1976         }else{ 
    1977                 return false; 
    1978         } 
    1979 } 
    1980  
    1981 function get_selected_messages_shortcut(){ 
    1982         var main; 
    1983         try{ 
    1984                 main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
    1985         }catch(e){ 
    1986         }; 
    1987  
    1988         if (! main) 
    1989                 main = Element("tbody_box_"+numBox); 
    1990  
    1991         if (! main) 
    1992                 main = Element("tbody_box"); 
    1993  
    1994         // Get all TR (messages) in tBody. 
    1995         var main_list = main.childNodes; 
    1996         var selected_messages_by_shortcuts = ''; 
    1997         var j = 0; 
    1998         for (j; j<(main_list.length); j++) 
    1999         { 
    2000  
    2001                 if ( exist_className(Element(main_list[j].id), 'selected_shortcut_msg') ) 
    2002                 { 
    2003                         selected_messages_by_shortcuts += main_list[j].id + ','; 
    2004                 } 
    2005  
    2006         } 
    2007         selected_messages_by_shortcuts = selected_messages_by_shortcuts.substring(0,(selected_messages_by_shortcuts.length-1)); 
    2008  
    2009         return selected_messages_by_shortcuts; 
    2010  
    2011 } 
    2012  
    2013 /*function get_selected_messages(){ 
    2014         var main; 
    2015         try{ 
    2016                 main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
    2017         }catch(e){ 
    2018         }; 
    2019  
    2020         if (! main) 
    2021                 main = Element("tbody_box_"+numBox); 
    2022  
    2023         if (! main) 
    2024                 main = Element("tbody_box"); 
    2025  
    2026         // Get all TR (messages) in tBody. 
    2027         var main_list = main.childNodes; 
    2028  
    2029         var _tab_prefix = getTabPrefix(); 
    2030         var selected_messages = ''; 
    2031         var selected_messages_by_shortcuts = ''; 
    2032         var j = 0; 
    2033         for (j; j<(main_list.length); j++) 
    2034         { 
    2035  
    2036                 if ( (!isNaN(parseInt(numBox))) && (numBox == 0)) {  
    2037                         check_box = Element("check_box_message_" + main_list[j].id);  
    2038                 } else {  
    2039                         id_mensagem = main_list[j].id.split('_');  
    2040                                                 check_box = Element("search_" + numBox + "_check_box_message_" + id_mensagem[0]);  
    2041                 }         
    2042                                   
    2043                 if ( (check_box) && (check_box.checked) )  
    2044                         selected_messages += main_list[j].id + ','; 
    2045  
    2046                 if (preferences.use_shortcuts == '1') 
    2047                 { 
    2048                         if ( exist_className(Element(main_list[j].id), 'selected_shortcut_msg') ) 
    2049                         { 
    2050                                 selected_messages_by_shortcuts += main_list[j].id + ','; 
    2051                         } 
    2052                 } 
    2053         } 
    2054         selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
    2055  
    2056                           
    2057                         /* Verifica se está na tela de pesquisa. */ /* 
    2058                         if(selected_messages.indexOf("_") != -1)  
    2059                         {  
    2060                                 results_search_messages = selected_messages;  
    2061                                 /* Retira a informação da aba */ /* 
    2062                                 selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 
    2063         } 
    2064          
    2065  
    2066         if (preferences.use_shortcuts == '1') 
    2067         { 
    2068                 selected_messages_by_shortcuts = selected_messages_by_shortcuts.substring(0,(selected_messages_by_shortcuts.length-1)); 
    2069  
    2070                 var array_selected_messages_by_shortcuts = selected_messages_by_shortcuts.split(","); 
    2071                 var array_selected_messages = selected_messages.split(","); 
    2072                 /* 
    2073                 if ((array_selected_messages.length == 0) && (array_selected_messages_by_shortcuts.length > 0)) 
    2074                 { 
    2075                         return selected_messages_by_shortcuts; 
    2076                 }*/ 
    2077                 /*Se houver mais de uma mensagem selecionada por atalho*//* 
    2078                 if (array_selected_messages_by_shortcuts.length > 1){ 
    2079                         if (selected_messages == "") 
    2080                            return selected_messages_by_shortcuts; 
    2081                         else  
    2082                            return selected_messages + "," + selected_messages_by_shortcuts; 
    2083                 } 
    2084         }        
    2085         if (selected_messages == '') 
    2086                 return false; 
    2087         else 
    2088                 return selected_messages; 
    2089 }*/ 
    2090  
    2091 function get_selected_messages(){ 
    2092         var selectedMsg = new Array(); 
    2093         $.each(selectedPagingMsgs, function(index, value){ 
    2094                 if(value) 
    2095                         selectedMsg.push(index); 
    2096         }); 
    2097         return ""+selectedMsg; 
    2098 } 
    2099 function clear_selected_messages(){ 
    2100     selectedPagingMsgs = {}; 
    2101 } 
    2102  
    2103 function replaceAll(string, token, newtoken) { 
    2104         while (string.indexOf(token) != -1) { 
    2105                 string = string.replace(token, newtoken); 
    2106         } 
    2107         return string; 
    2108 } 
    2109  
    2110 function new_message_to(email) { 
    2111         var new_border_ID = new_message('new','null'); 
    2112         document.getElementById("to_" + new_border_ID).value=email; 
    2113 } 
    2114  
    2115 function new_message(type, border_ID, flagged){ 
    2116                 if(RichTextEditor.editorReady === false) return false;  
    2117                               
    2118             RichTextEditor.editorReady = false;  
    2119  
    2120                  
    2121                 if (Element('show_img_link_'+border_ID)) 
    2122                 { 
    2123                         show_msg_img(border_ID.match(/^\d*/)[0], Element('input_folder_'+border_ID).value); 
    2124                 } 
    2125         var new_border_ID = draw_new_message(parseInt(border_ID.replace('_r',''))); 
    2126          
    2127         if(typeof(openTab.type[new_border_ID]) != "undefined") { 
    2128                 if(tabTypes[type] == openTab.type[new_border_ID]) { 
    2129                     if (type != 'edit') 
    2130                     { 
    2131                                                 delete_border(currentTab); 
    2132                                                 new_border_ID = draw_new_message(parseInt(border_ID)); 
    2133                     }                    
    2134                 } else { 
    2135                         var a_types = {6 : get_lang("Forward"),7 : get_lang("Reply"),  
    2136                                         8 : get_lang("Reply to all with history"), 
    2137                                         9 : get_lang("Reply without history"), 
    2138                                         10: get_lang("Reply to all without history")}; 
    2139                         if(new_border_ID != 0) 
    2140                         if(!confirm(get_lang("Your message to %1 has not been saved or sent. "+ 
    2141                                                 "To %2 will be necessary open it again. Discard your message?", 
    2142                                                 a_types[openTab.type[new_border_ID]].toUpperCase(),  
    2143                                                 a_types[tabTypes[type]].toUpperCase()))){ 
    2144                                 return new_border_ID; 
    2145                         } else { 
    2146                                 delete_border(currentTab); 
    2147                                 new_border_ID = draw_new_message(parseInt(border_ID)); 
    2148                         } 
    2149                 } 
    2150         } 
    2151         if (new_border_ID == 'maximo'){ 
    2152                 RichTextEditor.editorReady = true; 
    2153                 return false; 
    2154         } 
    2155         if (new_border_ID == false) 
    2156         { 
    2157                 RichTextEditor.editorReady = true;  
    2158             setTimeout('new_message(\''+type+'\',\''+border_ID+'\',\''+flagged+'\');',500); 
    2159                 return false; 
    2160         } 
    2161         openTab.type[new_border_ID] = tabTypes[type]; 
    2162  
    2163         // Salva a pasta da mensagem respondida ou encaminhada: 
    2164         var folder_message = Element("input_folder_"+border_ID); 
    2165         if(folder_message) { 
    2166                 var input_current_folder = document.createElement('input'); 
    2167                 input_current_folder.id = "new_input_folder_"+border_ID; 
    2168                 input_current_folder.name = "input_folder"; 
    2169                 input_current_folder.type = "hidden"; 
    2170                 input_current_folder.value = folder_message.value; 
    2171                 Element("content_id_" + new_border_ID).appendChild(input_current_folder); 
    2172         }//Fim. 
    2173         var title = ''; 
    2174         data = []; 
    2175  
    2176          
    2177         if (Element("from_" + border_ID)){ 
    2178                 if (document.getElementById("reply_to_" + border_ID)){ 
    2179                                 data.to = document.getElementById("reply_to_values_" + border_ID).value; 
    2180                                 data.to = data.to.replace(/&lt;/gi,"<"); 
    2181                                 data.to = data.to.replace(/&gt;/gi,">"); 
    2182                 } 
    2183                 else { 
    2184                         if (document.getElementById("sender_values_"+border_ID)) 
    2185                         { 
    2186                                 data.to = document.getElementById("sender_values_"+border_ID).value; 
    2187                                 data.to = data.to.replace(/&lt;/gi,"<"); 
    2188                                 data.to = data.to.replace(/&gt;/gi,">"); 
    2189                         } 
    2190                         else if(document.getElementById("from_values_"+border_ID)) { 
    2191                                 data.to = document.getElementById("from_values_"+border_ID).value; 
    2192                                 data.to = data.to.replace(/&lt;/gi,"<"); 
    2193                                 data.to = data.to.replace(/&gt;/gi,">"); 
    2194                         } 
    2195                 } 
    2196                 if (document.getElementById("to_values_" + border_ID)){ 
    2197                         data.to_all = document.getElementById("to_values_" + border_ID).value; 
    2198                         data.to_all_alternative = document.getElementById("user_email_alternative").value; 
    2199                         data.to_all = data.to_all.replace(/\n/gi," "); 
    2200                         data.to_all = data.to_all.replace(/&lt;/gi,"<"); 
    2201                         data.to_all = data.to_all.replace(/&gt;/gi,">"); 
    2202                         var _array_to_all = data.to_all.split(","); 
    2203                         var _array_to_alternative = data.to_all_alternative.split(","); 
    2204                 } 
    2205         } 
    2206         if (document.getElementById("cc_" + border_ID)){ 
    2207                 data.cc = document.getElementById("cc_values_" + border_ID).value; 
    2208                 data.cc = data.cc.replace(/&lt;/gi,"<"); 
    2209                 data.cc = data.cc.replace(/&gt;/gi,">"); 
    2210                 var _array_cc = data.cc.split(","); 
    2211         } 
    2212         if (document.getElementById("cco_" + border_ID)){ 
    2213                 data.cco = document.getElementById("cco_values_" + border_ID).value; 
    2214                 data.cco = data.cco.replace(/&lt;/gi,"<"); 
    2215                 data.cco = data.cco.replace(/&gt;/gi,">"); 
    2216         } 
    2217         if ($("#subject_" + border_ID)) 
    2218                 data.subject = $("#subject_" + border_ID).text(); 
    2219         if(data.subject == get_lang("(no subject)   ")) 
    2220                 data.subject = ''; 
    2221         if (document.getElementById("body_" + border_ID)) 
    2222                 data.body = document.getElementById("body_" + border_ID).innerHTML; 
    2223         if (document.getElementById("from_values_" + border_ID)) 
    2224                 data.from = document.getElementById("from_values_"+border_ID).value; 
    2225         if (Element('date_' + border_ID)){ 
    2226                 data.date = Element('date_' + border_ID).innerHTML; 
    2227         } 
    2228         if (Element('date_day_' + border_ID)){ 
    2229                 data.date_day = Element('date_day_' + border_ID).value; 
    2230         } 
    2231         if (Element('date_hour_' + border_ID)){ 
    2232                 data.date_hour = Element('date_hour_' + border_ID).value; 
    2233         } 
    2234          
    2235         var signature = RichTextEditor.getSignatureDefault(); 
    2236          
    2237         if(type!="new" && type!="edit" && document.getElementById("is_local_"+border_ID) != null) 
    2238                 data.is_local_message = (document.getElementById("is_local_"+border_ID).value=="1")?true:false; 
    2239                  
    2240         if(typeof($.fn.elastic) == "undefined"){ 
    2241                 $.lazy({ 
    2242                         src: '../prototype/plugins/jquery-elastic/jquery.elastic.source.js', 
    2243                         name: 'elastic' 
    2244                 }); 
    2245         } 
    2246         var content = $("#content_id_"+new_border_ID); 
    2247  
    2248 //It is verifying if the message was modified or not. 
    2249 var btnSaveVerify = function(){ 
    2250     $("#content_id_"+currentTab+" .save").button("disable"); 
    2251  
    2252     dataBtn = new Array(".to",".cc",".cco","input[name=input_subject]",".reply-to"); 
    2253  
    2254     for(var i in dataBtn){ 
    2255       $("#content_id_"+currentTab+" "+dataBtn[i]).keydown(function() {   
    2256         $("#content_id_"+currentTab+" .save").button("enable"); 
    2257       }); 
    2258     } 
    2259  
    2260     RichTextEditor.keydown(new_border_ID); 
    2261 } 
    2262  
    2263 switch(type){ 
    2264                 case "reply_without_history": 
    2265             btnSaveVerify(); 
    2266  
    2267                         RichTextEditor.replyController = true; //Seta o editor como modo reply 
    2268                         content.find('[name="input_to"]').val(data.to);                  
    2269                          
    2270                         draw_reply_boxes_by_field("to", data.to, content); 
    2271                          
    2272                         title = "Re: " + html_entities(data.subject); 
    2273                         content.find(".subject").val("Re: " + data.subject);                     
    2274                         useOriginalAttachments(new_border_ID,border_ID); 
    2275                         content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val());                        
    2276  
    2277                         // Insert the signature automaticaly at message body if use_signature preference is set 
    2278                         if (preferences.use_signature == "1"){   
    2279                                 RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>' + signature ,true) ;       
    2280                         }  
    2281                         break; 
    2282                 case "reply_with_history": 
    2283             btnSaveVerify(); 
    2284  
    2285                         RichTextEditor.replyController = true; //Seta o editor como modo reply  
    2286                         title = "Re: " + html_entities(data.subject); 
    2287                         content.find(".subject").val("Re: " + data.subject); 
    2288                         content.find('[name="input_to"]').val(data.to); 
    2289                          
    2290                         draw_reply_boxes_by_field("to", data.to, content); 
    2291                         content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val());        
    2292                         block_quoted_body = make_body_reply(data.body, data.from, data.date_day, data.date_hour); 
    2293                          
    2294                         useOriginalAttachments(new_border_ID,border_ID); 
    2295                          
    2296                         // Insert the signature automaticaly at message body if use_signature preference is set 
    2297                         if (preferences.use_signature == "1"){   
    2298                                 RichTextEditor.setInitData(new_border_ID, '<div><br type="_moz"></div>' + signature + '<div><br type="_moz"></div>' + block_quoted_body,true);                           
    2299                         }else{ 
    2300                                 RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+ block_quoted_body,true); 
    2301                         } 
    2302                         break; 
    2303                 case "reply_to_all_without_history": 
    2304             btnSaveVerify(); 
    2305  
    2306                         RichTextEditor.replyController = true; //Seta o editor como modo reply 
    2307                         // delete user email from to_all array. 
    2308                         data.to_all = new Array(); 
    2309                         data.to_all = removeUserEmail(_array_to_all); 
    2310                         data.to_all = removeAlternative(data.to_all,_array_to_alternative); 
    2311                         content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val());        
    2312  
    2313                         data.to_all = data.to_all.join(","); 
    2314  
    2315                         title = "Re: " + html_entities(data.subject); 
    2316                         content.find(".subject").val("Re: " + data.subject); 
    2317                          
    2318                         if (data.to.indexOf(Element("user_email").value) > 0 ){ 
    2319                                 draw_reply_boxes_by_field("to", data.to_all, content); 
    2320                                 content.find('[name="input_to"]').val(data.to_all); 
    2321                         }else{ 
    2322                                 draw_reply_boxes_by_field("to", data.to + ',' + data.to_all, content); 
    2323                                 content.find('[name="input_to"]').val(data.to + ',' + data.to_all); 
    2324                         } 
    2325                          
    2326                         if (data.cc){ 
    2327                                 data.cc = new Array(); 
    2328                                 data.cc = removeUserEmail(_array_cc); 
    2329                                 data.cc = removeAlternative(data.cc,_array_to_alternative); 
    2330                                         if (data.cc != get_lang("undisclosed-recipient")) 
    2331                                                 data.cc = data.cc.join(","); 
    2332                                         else 
    2333                                                 data.cc = "";    
    2334                                 if(data.cc != ""){ 
    2335                                         content.find('[name="input_cc"]').val(data.cc); 
    2336                                         input_binds(content.find('[name="input_cc"]').parent(), new_border_ID); 
    2337                                         content.find(".cc-tr").show();//cc-button 
    2338                                         //document.getElementById("a_cc_link" + new_border_ID).value = data.cc; 
    2339                                         content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    2340                                         content.find(".cc-button").find("span").html("Remover CC"); 
    2341                                         draw_reply_boxes_by_field("cc", data.cc, content); 
    2342                                 } 
    2343                         } 
    2344                          
    2345                         useOriginalAttachments(new_border_ID,border_ID);   
    2346                         if (preferences.use_signature == "1"){   
    2347                                 RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>' + signature,true); 
    2348                         } 
    2349                                  
    2350                         break; 
    2351                 case "reply_to_all_with_history": 
    2352             btnSaveVerify();  
    2353  
    2354                         RichTextEditor.replyController = true; //Seta o editor como modo reply  
    2355                         //delete user email from to_all array. 
    2356                         data.to_all = new Array(); 
    2357                         data.to_all = removeUserEmail(_array_to_all); 
    2358                         data.to_all = removeAlternative(data.to_all,_array_to_alternative); 
    2359                         content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val()); 
    2360                  
    2361                         if (data.to_all != get_lang("undisclosed-recipient")) 
    2362                                 data.to_all = data.to_all.join(","); 
    2363                         else 
    2364                                 data.to_all = ""; 
    2365                          
    2366                         title = "Re: " + html_entities(data.subject); 
    2367                          
    2368                         if (data.to.indexOf(Element("user_email").value) > 0 ){ 
    2369                                 draw_reply_boxes_by_field("to", data.to_all, content); 
    2370                                 content.find('[name="input_to"]').val(data.to_all); 
    2371                         }else{ 
    2372                                 draw_reply_boxes_by_field("to", data.to + ',' + data.to_all, content); 
    2373                                 content.find('[name="input_to"]').val(data.to + ',' + data.to_all);                      
    2374                         } 
    2375                          
    2376                         if (data.cc){ 
    2377                                 data.cc = new Array(); 
    2378                                 data.cc = removeUserEmail(_array_cc); 
    2379                                 data.cc = removeAlternative(data.cc,_array_to_alternative); 
    2380                                         if (data.cc != get_lang("undisclosed-recipient")) 
    2381                                                 data.cc = data.cc.join(","); 
    2382                                         else 
    2383                                                 data.cc = "";                    
    2384                                 if(data.cc != ""){ 
    2385                                         content.find('[name="input_cc"]').val(data.cc); 
    2386                                         input_binds(content.find('[name="input_aux_cc"]').parent(), new_border_ID); 
    2387                                         content.find(".cc-tr").show(); 
    2388                                         content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    2389                                         content.find(".cc-button").find("span").html("Remover CC"); 
    2390                                          
    2391                                         draw_reply_boxes_by_field("cc", data.cc, content); 
    2392                                 } 
    2393                         } 
    2394                         content.find(".subject").val("Re: " + data.subject); 
    2395                          
    2396                         block_quoted_body = make_body_reply(data.body, data.from, data.date_day, data.date_hour); 
    2397                          
    2398                         useOriginalAttachments(new_border_ID,border_ID); 
    2399                          
    2400                         if (preferences.use_signature == "1"){   
    2401                                 RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div><div><br type="_moz"></div>' + signature + '<div><br type="_moz"></div>'+ block_quoted_body,true);  
    2402                         }else{                 
    2403                                 RichTextEditor.setInitData(new_border_ID,block_quoted_body,true);  
    2404                         } 
    2405                                  
    2406                         break; 
    2407                 case "forward": 
    2408             btnSaveVerify(); 
    2409  
    2410                         title = "Fw: " + html_entities(data.subject); 
    2411                         content.find(".subject").val("Fw: " + data.subject); 
    2412                         var divFiles = Element("divFiles_"+new_border_ID); 
    2413                         var campo_arquivo; 
    2414                         content.find('[name="msg_forward_from"]').val($("#msg_number_" + border_ID).val()); 
    2415                    
    2416                         if (Element("attachments_" + border_ID)) 
    2417                             addOriginalAttachments(new_border_ID,border_ID); 
    2418                          
    2419                         // Insert the signature automaticaly at message body if use_signature preference is set 
    2420                         if (preferences.use_signature == "1"){  
    2421                                 $("#body_"+new_border_ID).val('<div><br type="_moz"></div><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)); 
    2422                         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));  
    2423                                 content.find(".to").focus(); 
    2424                         } 
    2425                         else{    
    2426                                 RichTextEditor.setInitData(new_border_ID,make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc));    
    2427                                 $("#body_"+new_border_ID).val('<div><br type="_moz"></div><div><br type="_moz"></div>'+make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc)); 
    2428                                 content.find(".to").focus(); 
    2429                         } 
    2430  
    2431                         break; 
    2432                 case "new": 
    2433          
    2434         btnSaveVerify(); 
    2435  
    2436                         title = get_lang("New Message"); 
    2437                         if(Element('msg_number').value) { 
    2438                                 var _to = Element('msg_number').value; 
    2439                                 var reEmail = /^[A-Za-z\d_-]+(\.[A-Za-z\d_-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/; 
    2440                                 if(!reEmail.test(_to)){ 
    2441                                         var array_contacts = contacts.split(','); 
    2442                                         for(i = 0; i < array_contacts.length;i++) { 
    2443                                                 if(array_contacts[i].lastIndexOf(_to) != "-1"){ 
    2444                                                         var _group = array_contacts[i].split(";"); 
    2445                                                         _to = '"'+_group[0]+'" <'+_group[1]+'>'; 
    2446                                                         break; 
    2447                                                 } 
    2448                                         } 
    2449                                 } 
    2450                                 content.find('[name="input_to"]').val(_to +','); 
    2451                                 draw_email_box(_to, content.find(".to").filter("input")); 
    2452                                 Element('msg_number').value = ''; 
    2453                         } 
    2454                          
    2455                         // Insert the signature automaticaly at message body if use_signature preference is set 
    2456                          if (preferences.use_signature == "1"){  
    2457                                 $("#body_"+new_border_ID).val('<div><br type="_moz"></div><div><br type="_moz"></div>' + signature); 
    2458                                 RichTextEditor.setInitData(new_border_ID, '<div><br type="_moz"></div>' + signature); 
    2459                                 content.find(".to").focus(); 
    2460                          } 
    2461                          else 
    2462                            content.find('[name="input_to"]').focus();  
    2463                         break; 
    2464                 case "edit": 
    2465                 btnSaveVerify(); 
    2466  
    2467                         if(flagged == 'F') 
    2468                                 $(".important").addClass("expressomail-button-icon-ative"); 
    2469                          
    2470                         openTab.imapBox[new_border_ID] = folder_message.value; 
    2471                         document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 
    2472                         title = "Edição: "+ html_entities(data.subject); 
    2473                          
    2474                         data.to = Element("to_values_" + border_ID).value; 
    2475                         if( data.to != get_lang("without destination") ) { 
    2476                                 data.to = data.to.replace(/&lt;/gi,"<"); 
    2477                                 data.to = data.to.replace(/&gt;/gi,">"); 
    2478                         } else { 
    2479                                 data.to = ""; 
    2480                         } 
    2481  
    2482                         draw_reply_boxes_by_field("to", data.to, content); 
    2483                          
    2484                         content.find('[name="input_to"]').val(data.to); 
    2485                         if (data.cc){ 
    2486                                 data.cc = data.cc.replace(/&lt;/gi,"<"); 
    2487                                 data.cc = data.cc.replace(/&gt;/gi,">"); 
    2488                                 content.find('[name="input_cc"]').val(data.cc); 
    2489                                 input_binds(content.find('[name="input_cc"]').parent(), new_border_ID); 
    2490                                 content.find(".cc-tr").show(); 
    2491                                 content.find(".cc-button").toggleClass("expressomail-button-icon-ative"); 
    2492                                 content.find(".cc-button").find("span").html(get_lang('Remove CC')); 
    2493                                 draw_reply_boxes_by_field("cc", data.cc, content); 
    2494                         } 
    2495                         if (data.cco){ 
    2496                                 if(content.find('[name="input_cco"]').length){ 
    2497                                         content.find('[name="input_cco"]').val(data.cco); 
    2498                                         content.find(".cco-tr").show(); 
    2499                                         content.find(".cco-button").toggleClass("expressomail-button-icon-ative"); 
    2500                                         content.find(".cco-button").find("span").html(get_lang('Remove CCo')); 
    2501                                         input_binds(content.find('[name="input_cco"]').parent(), new_border_ID); 
    2502                                         draw_reply_boxes_by_field("cco", data.cco, content); 
    2503                                 } 
    2504                         } 
    2505                         content.find(".subject").val(data.subject); 
    2506                          
    2507                         if( $("#disposition_notification_" + border_ID).length ){ 
    2508                                 content.find('[name="input_return_receipt"]').attr("checked", true); 
    2509                                 content.find(".return-recept").toggleClass("expressomail-button-icon-ative"); 
    2510                                 //Element("return_receipt_" + new_border_ID).checked = true; 
    2511                         } 
    2512  
    2513                         var element_important_message = Element("important_message_" + new_border_ID); 
    2514                         if(element_important_message) { 
    2515                                          
    2516                                 if($("#disposition_important_" + border_ID).length){ 
    2517                                         content.find('[name="input_important_message"]').attr("checked", true); 
    2518                                         content.find(".important").toggleClass("expressomail-button-icon-ative");        
    2519                                 } 
    2520                         } 
    2521  
    2522                         if (Element("attachments_" + border_ID)) 
    2523                                 addOriginalAttachments(new_border_ID,border_ID); 
    2524                         RichTextEditor.setInitData(new_border_ID, data.body, 'edit'); 
    2525                          
    2526                         uidsSave[new_border_ID].push(new_border_ID); 
    2527                         close_delete(border_ID); 
    2528                          
    2529                         break; 
    2530                 default: 
    2531         } 
    2532          
    2533         content.find('[name="input_to"]').trigger("update");     
    2534         var txtarea = $('#body_'+new_border_ID); 
    2535         var height = document.body.scrollHeight - 330; 
    2536         txtarea.css("overflowY","auto"); 
    2537         txtarea.css("height",height); 
    2538         $("#border_id_" + new_border_ID).attr("title", title); 
    2539         set_border_caption("border_id_" + new_border_ID, title); 
    2540         resizeWindow(); 
    2541         return new_border_ID; //Preciso retornar o ID da nova mensagem. 
    2542 } 
    2543  
    2544 //DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 
    2545 function draw_reply_boxes_by_field(field, value, context){ 
    2546         array = break_comma(value); 
    2547         $.each(array, function(index, value){ 
    2548                 draw_email_box(value, context.find("."+field).filter("textarea:first")); 
    2549         }); 
    2550 } 
    2551  
    2552 //Remove o email do usuario ao responder a todos 
    2553 function removeUserEmail(emailList){ 
    2554       var userEmail = Element("user_email").value; 
    2555       var array_emails = Array(); 
    2556       var j = 0; 
    2557       for (var i=0;i<emailList.length;i++){ 
    2558                         if (emailList[i].indexOf(userEmail) < 0){ 
    2559                            array_emails[j++] = emailList[i]; 
    2560                         } 
    2561           }   
    2562  return array_emails; 
    2563 } 
    2564  
    2565 //Remove os emails alternativos ao responder a todos 
    2566 function removeAlternative(value_to_all, _array_to_alternative){ 
    2567         for(i = 0; i < _array_to_alternative.length; i++) { 
    2568                 for(k = 0; k < value_to_all.length; k++){ 
    2569                         if(value_to_all[k].match(/<([^<]*)>[\s]*$/)){ 
    2570                                 if(value_to_all[k].match(/<([^<]*)>[\s]*$/)[1].toLowerCase() == _array_to_alternative[i].toLowerCase()){ 
    2571                                         value_to_all.splice( k , 1); 
    2572                                         k--; 
    2573                                 } 
    2574                         }else if(value_to_all[k].replace(/^\s+|\s+$/g,"").toLowerCase() == _array_to_alternative[i].toLowerCase()){ 
    2575                                         value_to_all.splice( k , 1); 
    2576                                         k--; 
    2577                         } 
    2578                 } 
    2579         } 
    2580         return value_to_all; 
    2581 } 
    2582  
     47{if(document.getElementById('border_id_'+border_id)) 
     48{function keypress_handler() 
     49{away=false;var save_link=content.find(".save");save_link.onclick=function onclick(event){openTab.toPreserve[border_id]=true;save_msg(border_id);};save_link.button({disabled:false});$(".header-button").button();};var content=$("#content_id_"+border_id);var subject_obj=content.find(".subject");if(subject_obj.addEventListener) 
     50subject_obj.addEventListener('keypress',keypress_handler,false);else if(subject_obj.attachEvent) 
     51subject_obj.attachEvent('onkeypress',keypress_handler);var to_obj=content.find('[name="input_to"]');if(to_obj.addEventListener) 
     52to_obj.addEventListener('keypress',keypress_handler,false);else if(to_obj.attachEvent) 
     53to_obj.attachEvent('onkeypress',keypress_handler);var cc_obj=content.find('[name="input_cc"]');if(cc_obj.addEventListener) 
     54cc_obj.addEventListener('keypress',keypress_handler,false);else if(cc_obj.attachEvent) 
     55cc_obj.attachEvent('onkeypress',keypress_handler);if(content.find('[name="input_cco"]').length){var cco_obj=content.find('[name="input_cco"]');if(cco_obj.addEventListener) 
     56cco_obj.addEventListener('keypress',keypress_handler,false);else if(cco_obj.attachEvent) 
     57cco_obj.attachEvent('onkeypress',keypress_handler);} 
     58var txtarea_obj=Element('body_'+border_id);if(txtarea_obj){if((preferences.plain_text_editor==1)||(Element('body_')+border_id).checked){if(txtarea_obj.addEventListener) 
     59txtarea_obj.addEventListener('keypress',keypress_handler,false);else if(txtarea_obj.attachEvent) 
     60txtarea_obj.attachEvent('onkeypress',keypress_handler);}}}} 
     61function show_msg_img(msg_number,folder){var call_back=function(data){data.showImg=true;if(!Element(data.msg_number)){trElement=document.createElement('DIV');trElement.id=data.msg_number;Element("tbody_box").appendChild(trElement);} 
     62show_msg(data);} 
     63proxy_mensagens.msg_img(msg_number,folder,call_back);} 
     64function show_msg(msg_info){if(!verify_session(msg_info)) 
     65return;if(typeof(msg_info)!='object') 
     66alert(get_lang("Error in show_msg param is not object"));if(msg_info.status_get_msg_info=='false') 
     67{write_msg(get_lang("Problems reading your message")+".");return;} 
     68var handler_sendNotification=function(data){if(data) 
     69write_msg(get_lang("A read confirmation was sent."));else 
     70write_msg(get_lang("Error in SMTP sending read confirmation."));} 
     71if(msg_info.source) 
     72{if(!Element('cert_applet')){write_msg(get_lang('The preference "%1" isn\'t enabled.',get_lang('Enable digitally sign/cipher the message?')));}else{Element('cert_applet').doButtonClickAction('decript',msg_info.msg_number,msg_info.source,msg_info.msg_folder);} 
     73return;} 
     74if(msg_info.status_get_msg_info=='false') 
     75{write_msg(get_lang("Problems reading your message")+".");return;} 
     76if(msg_info.status=='false'){eval(msg_info.command_to_exec);} 
     77else{var ID=msg_info.original_ID?msg_info.original_ID:msg_info.msg_number;var folderName=msg_info.msg_folder;folderName=Base64.encode(folderName);folderName=folderName.replace(/=/gi,'');var id_msg_read=ID+"_r_"+folderName;if(Element("border_id_"+id_msg_read)&&currentTab>0) 
     78id_msg_read+="n";if(preferences.use_shortcuts=='1') 
     79select_msg(ID,'null');var isPartMsg=false;for(var ii=0;ii<partMsgs.length;ii++) 
     80if(partMsgs[ii]==ID)isPartMsg=true;if(msg_info.alarm==false){if((openTab.type[currentTab]==2||openTab.type[currentTab]==3)&&isPartMsg===false){delete_border(currentTab,'false');}} 
     81if(Element("border_id_"+id_msg_read)){alternate_border(id_msg_read);resizeWindow();} 
     82else{var border_id=create_border(msg_info.subject,id_msg_read);if(border_id) 
     83{openTab.type[border_id]=2;openTab.imapBox[border_id]=msg_info.msg_folder;draw_message(msg_info,border_id);var unseen_sort=document.getElementById('span_flag_UNSEEN').getAttribute('onclick');unseen_sort=unseen_sort.toString();if(!(unseen_sort.indexOf("'UNSEEN' == 'UNSEEN'")<0)) 
     84{var sort_type=sort_box_type;sort_box_type=null;sort_box('UNSEEN',sort_type,false);delete selectedPagingMsgs[msg_info.msg_number];totalFolderMsgs--;}} 
     85else 
     86return;} 
     87var domains="";if((msg_info.DispositionNotificationTo)&&(!msg_is_read(ID)||(msg_info.Recent=='N'))) 
     88{if(preferences.notification_domains!=undefined&&preferences.notification_domains!="") 
     89{domains=preferences.notification_domains.split(',');} 
     90else 
     91{var confNotification=true;} 
     92for(var i=0;i<domains.length;i++) 
     93if(Base64.decode(msg_info.DispositionNotificationTo).match("@"+domains[i])) 
     94{var confNotification=true;break;} 
     95if(confNotification==undefined) 
     96var confNotification=confirm(get_lang("The sender:\n%1\nwaits your notification of reading. Do you want to confirm this?",Base64.decode(msg_info.DispositionNotificationTo)),"");if(confNotification){if(preferences.confirm_read_message){$.Zebra_Dialog(get_lang("Would you like to send the read receipt?"),{'type':'question','title':get_lang('Read receipt'),'buttons':[get_lang("Yes"),get_lang("No")],'overlay_opacity':0.5,'onClose':function(caption){if(caption==get_lang("Yes")) 
     97cExecute("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject),handler_sendNotification);else 
     98write_msg(get_lang("Confirmation message is not sent"));}});} 
     99else 
     100cExecute("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject),handler_sendNotification);}} 
     101if(!msg_is_read(ID)) 
     102{if(proxy_mensagens.is_local_folder(get_current_folder())){expresso_mail_archive.drawdata=null 
     103var tl=expresso_mail_archive.pattern.tagConfig('unseen',ID,1);expresso_mail_archive.taglist=tl;expresso_mail_archive.progressbar=window.setTimeout("expresso_mail_archive.tagMessage()",1);} 
     104set_msg_as_read(ID,true);if(msg_info.cacheHit||(!proxy_mensagens.is_local_folder(get_current_folder())&&msg_info.original_ID)) 
     105{set_message_flag(ID,"seen");}}} 
     106setTimeout('resizeWindow()',300);} 
     107function auto_refresh(){refresh(preferences.alert_new_msg,preferences.notifications);setTimeout('auto_refresh()',time_refresh);} 
     108function auto_archiving(){expresso_mail_sync.start_sync();setTimeout('auto_archiving()',600000);} 
     109function notificationFilter(data,notifyCriteria){if(parseInt(notifyCriteria)&&data.length>0&&!activePage){var howManyCriteria=$('div.gray.filtersDeadline .message-list li').length;var differenceOfNewCriteria=data.length-howManyCriteria;if(differenceOfNewCriteria>0){for(var i=data.length-differenceOfNewCriteria;i<data.length;i++){desktopNotification.sentNotification("",get_lang("Filter criteria"),truncate(new Date(data[i].udate).toString('dd/MM HH:mm')+' - '+data[i].from+' - '+data[i].subject,75));desktopNotification.showNotification(false,function(){window.focus();this.cancel();});}}}} 
     110function refresh(alert_new_msg,notifyPermission){getFromAlertRules();var handler_refresh=function(data){handlerMessageFilter=function(data){notificationFilter(data,notifyPermission);alarmFollowupflagged('filtersAlarms',data);} 
     111cExecute("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules,handlerMessageFilter);if(data['msg_range_end']) 
     112if(data['msg_range_end']>0) 
     113current_page=data['msg_range_end']/preferences.max_email_per_page;if(!verify_session(data)) 
     114return;var total_messages_element=Element('tot_m');var box=Element("tbody_box");if(box.childNodes.length==0) 
     115showEmptyBoxMsg(box);if(data.length>0||countNewMessage>0){for(var i=0;i<data.length;i++){if(!onceOpenedHeadersMessages[current_folder]) 
     116onceOpenedHeadersMessages[current_folder]={};onceOpenedHeadersMessages[current_folder][data[i].msg_number]=data[i];} 
     117Element("table_message_header_box_0").emptyBody=false;table_element=Element("table_box");var msg_info=document.getElementById('msg_info');if(msg_info!=null) 
     118{var msg_tr=msg_info.parentNode.parentNode;msg_tr.removeChild(msg_info.parentNode);if(!Element("colgroup_main_"+numBox)){var colgr_element=buildColGroup();colgr_element.setAttribute("id","colgroup_main_"+numBox);table_element.appendChild(colgr_element);}} 
     119var box=Element("tbody_box");if(!$("#colgroup_main_0").size()){$(table_element).append(Element("colgroup_main_"+numBox));} 
     120if(data.msgs_to_delete.length>0){for(var i=0;i<data.msgs_to_delete.length;i++){if((data.msgs_to_delete[i]!=undefined)&&(data.msgs_to_delete[i]!="")){removeAll(data.msgs_to_delete[i]);}}} 
     121if(data[0].msg_folder!=current_folder) 
     122return false;totalFolderMsgs+=data.new_msgs;for(var i=0;i<data.length;i++){var existent=document.getElementById(data[i].msg_number);if(!existent) 
     123{selectedPagingMsgs[data[i].msg_number]=false;totalFolderMsgs++;updateSelectedMsgs(false,data[i].msg_number);var new_msg=this.make_tr_message(data[i],current_folder,data.offsetToGMT);$(new_msg).draggable({start:function(){if($(".shared-folders").length){$(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({over:function(a,b){over=$(this);$(this).addClass("folder-over");if(($(this)[0]!=$(this).parent().find(".head_folder")[0])) 
     124if($(this).prev()[0]) 
     125if($(this).parent().find(".expandable-hitarea")[0]==$(this).prev()[0]){setTimeout(function(){if(over.hasClass("folder-over")) 
     126over.prev().trigger("click");},500);}},out:function(){$(this).removeClass("folder-over");},drop:function(event,ui){$(this).css("border","");if($(this).parent().attr('id')==undefined){var folder_to='INBOX';var to_folder_title=get_lang("Inbox");}else{var folder_to=$(this).parent().attr('id');var to_folder_title=$(this).attr('title');} 
     127var folder_to_move=ui.draggable.parent().attr('id');var border_id=ui.draggable.find("input[type=hidden]").attr("name");if(folder_to_move=="tbody_box"){move_msgs2(get_current_folder(),'selected',0,folder_to,to_folder_title,true);return refresh();}}});}},stop:function(){$(".shared-folders").parent().find(".folder").droppable("destroy");},helper:function(event){$(this).addClass("selected_msg").find("input:checkbox").attr("checked",true);updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id"));if($("#tbody_box .selected_shortcut_msg").length>1){$("#tbody_box .selected_shortcut_msg").addClass("selected_msg").find('.checkbox').attr('checked',true);$.each($(".selected_shortcut_msg"),function(index,value){updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id"));});} 
     128if(totalSelected()>1) 
     129return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs',{texto:(totalSelected()+" mensagens selecionadas"),type:"messages"})+"</td></tr>");if($(this).find(".td_msg_subject").text().length>18) 
     130return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs',{texto:$(this).find(".td_msg_subject").text().substring(0,18)+"...",type:"messages"})+"</td></tr>");else 
     131return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs',{texto:$(this).find(".td_msg_subject").text(),type:"messages"})+"</td></tr>");},iframeFix:true,delay:150,cursorAt:{top:5,left:56},refreshPositions:true,containment:"#divAppbox"}).bind("contextmenu",function(){if(!(($(event.target).find('img').length>0)&&($(event.target).hasClass('td-label')))){if($(this).find("input:checkbox").attr("checked")!="checked"){$(this).find("input:checkbox").trigger('click');$(this).addClass("selected_msg");} 
     132updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id"));}});if(data[i].next_msg_number!=undefined&&data[i].next_msg_number!=null){try{box.insertBefore(new_msg,box.childNodes[data[i].msg_key_position]);} 
     133catch(e){box.insertBefore(new_msg,box.firstChild);}} 
     134else if(data[i].Recent=='N'){box.insertBefore(new_msg,box.firstChild);} 
     135else{box.appendChild(new_msg);}}} 
     136if(parseInt(preferences.use_shortcuts)) 
     137select_msg("null","reload_msg","null");if(parseInt(alert_new_msg)&&data.new_msgs>0&&activePage) 
     138alert(data['new_msgs']>1?get_lang("You have %1 new messages",data['new_msgs'])+"!":get_lang("You have 1 new message")+"!");if(parseInt(notifyPermission)&&(data.new_msgs>0||!!countNewMessage)&&!activePage){countNewMessage+=data.length;desktopNotificationAux=desktopNotification.sentNotification("",get_lang("Notification"),countNewMessage>1?get_lang("You have %1 new messages",countNewMessage)+"!":get_lang("You have 1 new message")+"!");if(auxNotification!=='undefined') 
     139desktopNotification.cancelByReference(auxNotification);desktopNotification.showNotification(function(){countNewMessage=0;},function(){window.focus();this.cancel();countNewMessage=0;});auxNotification=desktopNotificationAux;} 
     140build_quota(data['quota']);} 
     141if(data.new_msgs){total_messages_element.innerHTML=parseInt(total_messages_element.innerHTML)+data.new_msgs;}else if(data.tot_msgs){total_messages_element.innerHTML=data.tot_msgs>=0?data.tot_msgs:0;} 
     142var box=Element("tbody_box");if(box.childNodes.length>1){updateBoxBgColor(box.childNodes);} 
     143connector.purgeCache();cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);resizeMailList();} 
     144msg_range_end=(current_page*preferences.max_email_per_page);msg_range_begin=(msg_range_end-(preferences.max_email_per_page)+1);main=Element("tbody_box");if(!main) 
     145return;main_list=main.childNodes;var tmp='';var string_msgs_in_main='';var len=main_list.length;for(var j=0;j<len;j++) 
     146tmp+=main_list[j].id+',';string_msgs_in_main=tmp.substring(0,(tmp.length-1));if(!expresso_offline) 
     147$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.refresh',folder:current_folder,msgs_existent:string_msgs_in_main,msg_range_begin:msg_range_begin,msg_range_end:msg_range_end,sort_box_type:sort_box_type,search_box_type:search_box_type,sort_box_reverse:sort_box_reverse}),success:function(data){data=connector.unserialize(data);if(data) 
     148handler_refresh(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});var msgs=$("#tbody_box tr");if(!msgs.hasClass("current_selected_shortcut_msg selected_shortcut_msg")) 
     149{msgs.first().focus().addClass("current_selected_shortcut_msg selected_shortcut_msg");}} 
     150function delete_msgs(folder,msgs_number,border_ID,show_success_msg,archive){if(preferences.use_local_messages==1&&expresso_local_messages.isArchiving(msgs_number,folder)){alert("Impossivel deletar mensagens que estão ainda estão sendo arquivadas.");return;} 
     151var userTrashFolder='';if(arguments.length<4)show_success_msg=true;if(folder=='null')folder=current_folder;if(folder.substr(0,4)=='user') 
     152{var arrayFolder=folder.split(cyrus_delimiter);userTrashFolder='user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Trash'];DataLayer.remove('folder',false);DataLayer.get('folder');var has_folder=DataLayer.get('folder',userTrashFolder);if(!has_folder){create_new_folder(special_folders['Trash'],'user'+cyrus_delimiter+arrayFolder[1]);}} 
     153else userTrashFolder=mount_url_folder(["INBOX",special_folders["Trash"]]);if(openTab.type[currentTab]==1) 
     154return move_search_msgs('content_id_'+currentTab,userTrashFolder,special_folders['Trash']);if(currentTab.toString().indexOf("_r")!=-1) 
     155msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));if(!archive&&(parseInt(preferences.save_deleted_msg))&&(folder!=userTrashFolder)){move_msgs2(folder,""+msgs_number,border_ID,userTrashFolder,special_folders['Trash'],show_success_msg);return;} 
     156var handler_delete_msgs=function(data){Element('chk_box_select_all_messages').checked=false;if(currentTab) 
     157mail_msg=Element("tbody_box_"+currentTab);else 
     158mail_msg=Element("tbody_box");if(preferences.use_shortcuts=='1'){if(mail_msg&&exist_className(mail_msg.childNodes[mail_msg.childNodes.length-1],'selected_shortcut_msg')){select_msg('null','up',true);} 
     159else{if(!select_msg('null','down',true)){select_msg('null','up',true);}}} 
     160if(data.status==false){write_msg(get_lang("You don't have permission for this operation in this shared folder!"));return false;} 
     161if(preferences.use_local_messages==1){if(!expresso_mail_archive.isArchiveOperation){if(show_success_msg){if(data.msgs_number.length==1) 
     162write_msg(get_lang("The message was deleted."));else 
     163write_msg(get_lang("The messages were deleted."));}}} 
     164else{if(show_success_msg){if(data.msgs_number.length==1) 
     165write_msg(get_lang("The message was deleted."));else 
     166write_msg(get_lang("The messages were deleted."));}} 
     167if(openTab.type[currentTab]>1){var msg_to_delete=Element(msgs_number);if(parseInt(preferences.delete_and_show_previous_message)&&msg_to_delete){if(msg_to_delete.previousSibling){var previous_msg=msg_to_delete.previousSibling.id;$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.get_info_msg',msg_number:previous_msg,msg_folder:current_folder,decoded:true}),success:function(data){data=connector.unserialize(data);if(data) 
     168show_msg(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     169else{delete_border(currentTab,'false');}} 
     170else{delete_border(currentTab,'false');}} 
     171for(var i=0;i<data.msgs_number.length;i++){var msg_to_delete=Element(data.msgs_number[i]);if(msg_to_delete){removeAll(msg_to_delete.id);delete selectedPagingMsgs[data.msgs_number[i]];} 
     172totalFolderMsgs=totalFolderMsgs-data.msgs_number.length;} 
     173$.each(data.msgs_number,function(index,value){msgFolder=Base64.encode(get_current_folder());tabToRemove=value+"_r_"+msgFolder.replace(/=/g,"");if($("#"+tabToRemove)){delete_border(tabToRemove,'false');}});Element('tot_m').innerHTML=parseInt(Element('tot_m').innerHTML)-data.msgs_number.length;refresh();} 
     174if(msgs_number.length>0||parseInt(msgs_number)>0) 
     175cExecute("$this.imap_functions.delete_msgs&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,handler_delete_msgs);else 
     176write_msg(get_lang('No selected message.'));} 
     177function move_search_msgs(border_id,new_folder,new_folder_name,action){var msg_to_delete="";var msg_to_move="";var selected_messages='';var temp_msg;var remove_currente_folder="";var id_border=currentTab.replace(/[a-zA-Z_]+/,"");if(currentTab.indexOf('search_local')!=-1||proxy_mensagens.is_local_folder(new_folder)) 
     178{alert(get_lang("You cant manipulate local messages on search"));return;} 
     179var delete_msg=false;if(new_folder_name==special_folders['Trash']){delete_msg=true;} 
     180selected_messages=get_selected_messages_search();if(preferences.use_local_messages==1&&expresso_local_messages.isArchiving(selected_messages,folder)){alert("Impossivel mover mensagens que ainda estão sendo arquivadas.");return;} 
     181var handler_move_search_msgs=function(data){if(!data||!data.msgs_number) 
     182return;else if(data.deleted){if(data.no_move&&data.move) 
     183alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission."));else if(data.msgs_number.length==1) 
     184write_msg(get_lang("The message was deleted."));else 
     185write_msg(get_lang("The messages were deleted."));}else if(data.status==false&&data.move){alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission."));}else if(data.status==false){alert(get_lang("You don't have permission for this operation in this shared folder!"));return false;}else{if(data.msgs_number.length==1) 
     186write_msg(get_lang("The message was moved to folder ")+lang_folder(data.new_folder_name));else 
     187write_msg(get_lang("The messages were moved to folder ")+lang_folder(data.new_folder_name));} 
     188if(data.no_move){var no_remove=data.no_move.split(',');var continua=true;selected_messages=selected_messages.split(",");for(i=0;i<selected_messages.length;i++){for(j=0;j<no_remove.length;j++) 
     189if(selected_messages[i]==no_remove[j]) 
     190continua=false;if(continua) 
     191removeAll(selected_messages[i]+'_s'+id_border);continua=true;}}else{selected_messages=selected_messages.split(",");for(i=0;i<selected_messages.length;i++){removeAll(selected_messages[i]+'_s'+id_border);}} 
     192var box=Element("tbody_box_"+getNumBoxFromTabId(currentTab)).childNodes;if(box.length>1){updateBoxBgColor(box);} 
     193connector.purgeCache();if(remove_currente_folder!=""){var mail_msg=Element('tbody_box').childNodes;remove_currente_folder=remove_currente_folder.substring(0,(remove_currente_folder.length-1));remove_currente_folder=remove_currente_folder.split(",");for(i=0;i<remove_currente_folder.length;i++) 
     194removeAll(remove_currente_folder[i]);var box=Element("tbody_box");if(box.childNodes.length>0){updateBoxBgColor(box.childNodes);} 
     195if(folder==get_current_folder()){Element('tot_m').innerHTML=parseInt(Element('tot_m').innerHTML)-remove_currente_folder.length;}} 
     196draw_new_tree_folder();EsearchE.refresh();} 
     197if(selected_messages){var selected_param="";if(selected_messages.indexOf(',')!=-1) 
     198{selected_msg_array=selected_messages.split(",");for(i=0;i<selected_msg_array.length;i++){var tr=Element(selected_msg_array[i]+'_s'+id_border);if(tr.getAttribute('name')==current_folder) 
     199remove_currente_folder+=tr.id.replace(/_[a-zA-Z0-9]+/,"")+',';if((action=='delete'&&tr.getAttribute('name')==mount_url_folder(["INBOX",special_folders["Trash"]]))||!(parseInt(preferences.save_deleted_msg))) 
     200{msg_to_delete+=','+special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");} 
     201else if(!(tr.getAttribute('name')==new_folder&&action!='delete')) 
     202{msg_to_move=(tr.getAttribute('name')==null?get_current_folder():tr.getAttribute('name'));selected_param+=','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");}else{write_msg(get_lang('At least one message have the same origin'));return false;}}} 
     203else 
     204{var tr=Element(selected_messages+'_s'+id_border);if(tr.getAttribute('name')==current_folder) 
     205remove_currente_folder+=tr.id.replace(/_[a-zA-Z0-9]+/,"")+',';if((action=='delete'&&tr.getAttribute('name')==mount_url_folder(["INBOX",special_folders["Trash"]]))||!(parseInt(preferences.save_deleted_msg))){msg_to_delete=special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");}else if(!(tr.getAttribute('name')==new_folder&&action!='delete')){trfolder=(tr.getAttribute('name')==null?get_current_folder():tr.getAttribute('name'));selected_param=trfolder+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");}else{write_msg(get_lang('The origin folder and the destination folder are the same.'));return false;}} 
     206var params="";if(msg_to_delete!=""&&msg_to_move!=""){params+="&selected_messages_move="+url_encode(selected_param);params+="&new_folder_move="+url_encode(new_folder);params+="&new_folder_name_move="+url_encode(new_folder_name);new_folder=mount_url_folder(["INBOX",special_folders["Trash"]]);new_folder_name=special_folders['Trash'];params+="&selected_messages_delete="+url_encode(msg_to_delete);params+="&new_folder_delete="+url_encode(new_folder);cExecute("$this.imap_functions.move_delete_search_messages",handler_move_search_msgs,params);}else if(msg_to_delete!=""){new_folder=mount_url_folder(["INBOX",special_folders["Trash"]]);new_folder_name=special_folders['Trash'];params+="&delete=true";params+="&selected_messages="+url_encode(msg_to_delete);params+="&new_folder="+url_encode(new_folder);cExecute("$this.imap_functions.move_search_messages",handler_move_search_msgs,params);}else{params="&selected_messages="+url_encode(selected_param);params+="&delete=false";params+="&new_folder="+url_encode(new_folder);params+="&new_folder_name="+url_encode(new_folder_name);cExecute("$this.imap_functions.move_search_messages",handler_move_search_msgs,params);}} 
     207else 
     208write_msg(get_lang('No selected message.'));} 
     209function move_msgs2(folder,msgs_number,border_ID,new_folder,new_folder_name,show_success_msg,not_opem_previus){not_opem_previus=typeof(not_opem_previus)!='undefined'?not_opem_previus:false;var folder_error=new_folder_name;if(preferences.use_local_messages==1&&expresso_local_messages.isArchiving(msgs_number,folder)){alert("Impossivel mover mensagens que estão ainda estão sendo arquivadas.");return;} 
     210if(!folder||folder=='null') 
     211folder=Element("input_folder_"+msgs_number+"_r")?Element("input_folder_"+msgs_number+"_r").value:(openTab.imapBox[currentTab]?openTab.imapBox[currentTab]:get_current_folder());if(openTab.type[currentTab]==1) 
     212return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);var handler_move_msgs=function(data){if(typeof(data)=='string') 
     213if(data.match(/^(.*)TRYCREATE(.*)$/)){connector.loadScript('TreeS');var move_to_folder=data.match(/^(.*)Spam(.*)$/)?"Spam":special_folders['Trash'];alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.',folder_error));ttree.FOLDER='root';create_new_folder(move_to_folder,"INBOX");return false;}else{write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".',new_folder_name));if(new_folder_name=="Trash"&&folder.split("/")[1]==new_folder.split("/")[1]){alert(get_lang("You can not remove the message with the preference 'Send to Trash' enabled. There is no permission to move messages to the trash folder."));} 
     214return false;} 
     215if(data.status==false){write_msg(get_lang("You don't have permission for this operation in this shared folder!"));return false;} 
     216mail_msg=(Element("divScrollMain_"+numBox))?Element("divScrollMain_"+numBox).firstChild.firstChild:Element("divScrollMain_0").firstChild.firstChild;if(data.msgs_number.length==1){write_msg(get_lang("The message was moved to folder ")+lang_folder(data.new_folder_name));} 
     217else{write_msg(get_lang("The messages were moved to folder ")+lang_folder(data.new_folder_name));} 
     218if(openTab.type[currentTab]>1) 
     219{msg_to_delete=Element(msgs_number);if(parseInt(preferences.delete_and_show_previous_message)&&msg_to_delete) 
     220{if(msg_to_delete.previousSibling) 
     221{var previous_msg=msg_to_delete.previousSibling.id;if(!not_opem_previus){$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.get_info_msg',msg_number:previous_msg,msg_folder:folder,decoded:true}),success:function(data){data=connector.unserialize(data);if(data) 
     222show_msg(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});}} 
     223else 
     224{if(current_page>1) 
     225{$('#msg_opt_previous_'+msg_to_delete.getAttribute('id')+'_r').trigger('click');} 
     226else 
     227{var border_id=$("#border_id_"+currentTab).prev().attr("id").split("_").slice(2,3).join("") 
     228var folderName=current_folder;if(border_id) 
     229{$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.get_info_msg',msg_number:border_id,msg_folder:folderName,decoded:true}),success:function(data){data=connector.unserialize(data);delete_border(currentTab,'false');if(data) 
     230{show_msg(data);}},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     231else 
     232{delete_border(currentTab,'false');}}}} 
     233else 
     234{if(msg_to_delete.id===String(currentTab).split('_')[0]) 
     235{delete_border(currentTab,'false');}} 
     236if(msg_to_delete) 
     237{mail_msg.removeChild(msg_to_delete);} 
     238var box=Element("tbody_box");if(box.childNodes.length>0) 
     239{updateBoxBgColor(box.childNodes);} 
     240if(folder==get_current_folder()) 
     241{Element('tot_m').innerHTML=parseInt(Element('tot_m').innerHTML)-1;} 
     242return;} 
     243Element('chk_box_select_all_messages').checked=false;if(!mail_msg) 
     244mail_msg=Element("tbody_box");data.msgs_number=data.msgs_number.split(",");var msg_to_delete;if(typeof(msgs_number)=='string') 
     245all_search_msg=msgs_number.split(',');else if(typeof(msgs_number)=='number') 
     246all_search_msg=msgs_number;for(var i=0;i<=all_search_msg.length;i++) 
     247{msg_to_delete=Element(folder+';'+all_search_msg[i]);if(msg_to_delete) 
     248msg_to_delete.parentNode.removeChild(msg_to_delete);} 
     249if(preferences.use_shortcuts=='1'){var all_messages=Element('tbody_box').childNodes;var msg_list_shortcut=get_selected_messages_shortcut().split(',');if(data.msgs_number.length>0&&msg_list_shortcut.length>0&&data.msgs_number.toString()==msg_list_shortcut.toString()){if(exist_className(all_messages[all_messages.length-1],'selected_shortcut_msg')){select_msg('null','up',true);} 
     250else{if(!select_msg('null','down',true)){select_msg('null','up',true);}}}} 
     251for(var i=0;i<data.msgs_number.length;i++) 
     252{msg_to_delete=Element(data.msgs_number[i]);if(msg_to_delete) 
     253mail_msg.removeChild(msg_to_delete);} 
     254if(data.msgs_number.length==1) 
     255write_msg(get_lang("The message was moved to folder ")+lang_folder(data.new_folder_name));else 
     256write_msg(get_lang("The messages were moved to folder ")+lang_folder(data.new_folder_name));if(data.border_ID.indexOf('r')!=-1){if(parseInt(preferences.delete_and_show_previous_message)&&folder==get_current_folder()){delete_border(data.border_ID,'false');show_msg(data.previous_msg);} 
     257else{delete_border(data.border_ID,'false');}} 
     258if(folder==get_current_folder()){var n_total_msg=parseInt(Element('tot_m').innerHTML)-data.msgs_number.length;n_total_msg=n_total_msg>=0?n_total_msg:0;draw_paging(n_total_msg);Element('tot_m').innerHTML=n_total_msg;totalFolderMsgs-=data.msgs_number.length;} 
     259refresh();} 
     260if(folder==new_folder){write_msg(get_lang('The origin folder and the destination folder are the same.'));return;} 
     261try{if(proxy_mensagens.is_local_folder(Element('input_folder_'+currentTab).getAttribute('value'))&&!border_ID){alert(get_lang("You cant manipulate local messages on search"));return;}}catch(e){} 
     262if(currentTab==0&&msgs_number=="selected") 
     263msgs_number=get_selected_messages();else if(currentTab!=0&&msgs_number=="selected") 
     264msgs_number=currentTab.substr(0,currentTab.indexOf('_r'));if(openTab.type[currentTab]==1){return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);} 
     265if(currentTab.toString().indexOf("_r")!=-1&&currentTab==border_ID) 
     266{if(currentTab.toString().indexOf('_s')!=-1) 
     267msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf('_s'));else 
     268msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf('_r'));} 
     269if(msgs_number){refresh();} 
     270else{$("#"+get_current_folder()).find('span:first').addClass('selected');} 
     271if(proxy_mensagens.is_local_folder(folder)){expresso_mail_archive.update_counters=true;if(msgs_number=='selected'){msgs_number=get_selected_messages();} 
     272if(new_folder=='local_root'){alert(get_lang("Select a folder!"));} 
     273if(parseInt(msgs_number)>0||msgs_number.length>0){if(proxy_mensagens.is_local_folder(new_folder)){expresso_mail_archive.moveMessages(new_folder.replace('local_messages_',''),msgs_number);delete_border(border_ID);} 
     274else{if(!new_folder){new_folder='INBOX';} 
     275if(currentTab.toString().indexOf("_r")!=-1){msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));} 
     276expresso_mail_archive.unarchieve(folder,new_folder,msgs_number);if(currentTab!=0) 
     277delete_border(border_ID);}} 
     278else{write_msg(get_lang('No selected message.'));}} 
     279else{if(proxy_mensagens.is_local_folder(new_folder)){if(msgs_number=='selected'){archive_msgs(folder,new_folder);} 
     280else{archive_msgs(folder,new_folder,msgs_number);}} 
     281else{if(parseInt(msgs_number)>0||msgs_number.length>0){var handler_removeFlag=function(){$.ajax({url:'controller.php?'+$.param({action:'$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:(!not_opem_previus?preferences.delete_and_show_previous_message:false),decoded:true}),success:function(data){data=connector.unserialize(data);$.each(msgs_number.split(","),function(index,value){delete selectedPagingMsgs[value];msgFolder=Base64.encode(get_current_folder());tabToRemove=value+"_r_"+msgFolder.replace(/=/g,"");if($("#"+tabToRemove)){}});totalFolderMsgs-=msgs_number.split(",").length;selectAllFolderMsgs();$('.select-link').unbind('click');if(data) 
     282handler_move_msgs(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     283var hasFolder=false;$.each(fromRules,function(index,value){if(value==folder){hasFolder=true;cExecute("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_number,handler_removeFlag);return false;}});if(!hasFolder){handler_removeFlag();}}else 
     284write_msg(get_lang('No selected message.'));}} 
     285$.each(msgs_number.split(","),function(index,value){delete selectedPagingMsgs[value];});totalFolderMsgs=totalFolderMsgs-msgs_number.split(",").length;selectAllFolderMsgs(false);updateSelectedMsgs();} 
     286function move_msgs(folder,msgs_number,border_ID,new_folder,new_folder_name,not_opem_previus){move_msgs2(folder,msgs_number,border_ID,new_folder,new_folder_name,true,not_opem_previus);} 
     287function normalizeMsgNumber(msgNumber){if(msgNumber||msgNumber=='selected') 
     288msgNumber=get_selected_messages();if(currentTab.toString().indexOf("_r")!=-1) 
     289{if(currentTab.toString().indexOf('_s')!=-1) 
     290msgNumber=currentTab.toString().substr(0,currentTab.toString().indexOf('_s'));else 
     291msgNumber=currentTab.toString().substr(0,currentTab.toString().indexOf('_r'));} 
     292if(parseInt(msgNumber)<=0||msgNumber.length<=0){write_msg(get_lang('No selected message.'));return(false);} 
     293return(msgNumber);} 
     294function archive_search_msgs(folder_dest){var id_msgs="";id_msgs=get_selected_messages_search();var msg_to_arquive="";var messages="";var id_border=currentTab.replace(/[a-zA-Z_]+/,"");if(parseInt(id_msgs)<=0||id_msgs.length<=0) 
     295return write_msg(get_lang('No selected message.'));if(folder_dest=='local_root'||folder_dest==null) 
     296folder_dest='local_Inbox';id_msgs=expresso_local_messages.checkArchived(id_msgs,folder_dest);if(!id_msgs){write_msg("Todas as mensagens já foram arquivadas anteriormente.");return;} 
     297document.getElementById("overlay").style.visibility="visible";var handler_arquivar_mensagens=function(data){var msgs_info=[];for(var i=0;i<data.length;i++) 
     298msgs_info[i]=connector.unserialize(data[i]);var h=expresso_local_messages.has_local_mails();expresso_local_messages.insert_mails(msgs_info,folder_dest,function(s,f){complete_archiving(s,f,h)});document.getElementById("overlay").style.visibility="hidden";} 
     299id_msgs=id_msgs.split(',');for(i=0;i<id_msgs.length;i++){var tr=Element(id_msgs[i]+'_s'+id_border);msg_to_arquive=(tr.getAttribute('name')==null?get_current_folder():tr.getAttribute('name'));messages+=','+msg_to_arquive+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");} 
     300$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.get_info_msg',msg_number:messages,msg_folder:folder_dest,decoded:true}),success:function(data){data=connector.unserialize(data);if(data) 
     301handler_arquivar_mensagens(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     302function archive_msgs(folder,folder_dest,id_msgs){if(typeof(currentTab)=="string"&&currentTab.indexOf("local")!=-1){alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");return true;} 
     303write_msg(get_lang('Starting to archive messages'));if(currentTab.toString().indexOf("_r")!=-1){id_msgs=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));} 
     304if(!id_msgs) 
     305id_msgs=get_selected_messages();if(folder_dest=='local_root'||folder_dest==null) 
     306folder_dest='local_inbox';if(parseInt(id_msgs)>0||id_msgs.length>0){window.setTimeout("expresso_mail_archive.Archive('"+folder+"','"+folder_dest+"','"+id_msgs+"')",1);selectAllFolderMsgs(false);} 
     307else 
     308write_msg(get_lang('No selected message.'));} 
     309function complete_archiving(success,fails,has_local_messages_before) 
     310{var msgs_to_remove={};var target=mount_url_folder(["INBOX",special_folders["Trash"],'tmpMoveToLocal']);success=expresso_local_messages.select_mail(['original_id','original_folder'],success);for(var i=0;i<success.length;i++){var msg_info=success[i];Element('chk_box_select_all_messages').checked=false;if(Element("check_box_message_"+msg_info.original_id)) 
     311{Element("check_box_message_"+msg_info.original_id).checked=false;} 
     312if(Element(msg_info.original_id)) 
     313{remove_className(Element(msg_info.original_id),'selected_msg');} 
     314msgs_to_remove[msg_info.original_folder]=msgs_to_remove[msg_info.original_folder]||[];msgs_to_remove[msg_info.original_folder].push(msg_info.original_id);} 
     315if(preferences.keep_archived_messages==0){for(var folder in msgs_to_remove){if(folder!='undefined') 
     316delete_msgs(folder,msgs_to_remove[folder],'null',false,true);}} 
     317if(!has_local_messages_before&&expresso_local_messages.has_local_mails()) 
     318ttreeBox.update_folder();else 
     319update_menu();} 
     320function action_msg_selected_from_search(aba,evento){if(evento=="delete") 
     321move_search_msgs(aba,'INBOX/Trash','Trash','delete');} 
     322function get_all_messages_search(){var aba=document.getElementById('content_id_'+currentTab);var messages="";jQuery(function(){jQuery("#"+aba.id+" tr").each(function(i,main_list){messages+=main_list.id.replace(/_[a-zA-Z0-9]+/,"")+',';});});if(messages.indexOf(',')==0) 
     323messages=messages.substring(1,(messages.length));return messages.substring(0,(messages.length-1));} 
     324function get_selected_messages_search(){var aba=document.getElementById('content_id_'+currentTab);var selected_messages="";jQuery("#"+aba.id+" tr").each(function(i,main_list){var check_box=main_list.firstChild.firstChild;if(check_box&&check_box.checked){selected_messages+=main_list.id.replace(/_[a-zA-Z0-9]+/,"")+',';};});if(selected_messages!=""){if(selected_messages.indexOf(',')==0) 
     325selected_messages=selected_messages.substring(1,(selected_messages.length));selected_messages=selected_messages.substring(0,(selected_messages.length-1));return selected_messages;}else{return false;}} 
     326function get_selected_messages_search_role(){var aba=document.getElementById('content_id_'+currentTab);var selected_messages="";jQuery("#"+aba.id+" tr").each(function(i,main_list){var check_box=main_list.firstChild.firstChild;if(check_box&&check_box.checked&&check_box.id!='chk_box_select_all_messages_search'){selected_messages+=main_list.role+',';};});if(selected_messages!=""){if(selected_messages.indexOf(',')==0) 
     327selected_messages=selected_messages.substring(1,(selected_messages.length));selected_messages=selected_messages.substring(0,(selected_messages.length-1));return selected_messages;}else{return false;}} 
     328function get_selected_messages_shortcut(){var main;try{main=document.getElementById("divScrollMain_"+numBox).firstChild.firstChild;}catch(e){};if(!main) 
     329main=Element("tbody_box_"+numBox);if(!main) 
     330main=Element("tbody_box");var main_list=main.childNodes;var selected_messages_by_shortcuts='';var j=0;for(j;j<(main_list.length);j++) 
     331{if(exist_className(Element(main_list[j].id),'selected_shortcut_msg')) 
     332{selected_messages_by_shortcuts+=main_list[j].id+',';}} 
     333selected_messages_by_shortcuts=selected_messages_by_shortcuts.substring(0,(selected_messages_by_shortcuts.length-1));return selected_messages_by_shortcuts;} 
     334function get_selected_messages(){var selectedMsg=new Array();$.each(selectedPagingMsgs,function(index,value){if(value) 
     335selectedMsg.push(index);});return""+selectedMsg;} 
     336function clear_selected_messages(){selectedPagingMsgs={};} 
     337function replaceAll(string,token,newtoken){while(string.indexOf(token)!=-1){string=string.replace(token,newtoken);} 
     338return string;} 
     339function new_message_to(email){var new_border_ID=new_message('new','null');document.getElementById("to_"+new_border_ID).value=email;} 
     340function new_message(type,border_ID,flagged){if(RichTextEditor.editorReady===false)return false;RichTextEditor.editorReady=false;if(Element('show_img_link_'+border_ID)) 
     341{show_msg_img(border_ID.match(/^\d*/)[0],Element('input_folder_'+border_ID).value);} 
     342var new_border_ID=draw_new_message(parseInt(border_ID.replace('_r','')));if(typeof(openTab.type[new_border_ID])!="undefined"){if(tabTypes[type]==openTab.type[new_border_ID]){if(type!='edit') 
     343{delete_border(currentTab);new_border_ID=draw_new_message(parseInt(border_ID));}}else{var a_types={6:get_lang("Forward"),7:get_lang("Reply"),8:get_lang("Reply to all with history"),9:get_lang("Reply without history"),10:get_lang("Reply to all without history")};if(new_border_ID!=0) 
     344if(!confirm(get_lang("Your message to %1 has not been saved or sent. "+"To %2 will be necessary open it again. Discard your message?",a_types[openTab.type[new_border_ID]].toUpperCase(),a_types[tabTypes[type]].toUpperCase()))){return new_border_ID;}else{delete_border(currentTab);new_border_ID=draw_new_message(parseInt(border_ID));}}} 
     345if(new_border_ID=='maximo'){RichTextEditor.editorReady=true;return false;} 
     346if(new_border_ID==false) 
     347{RichTextEditor.editorReady=true;setTimeout('new_message(\''+type+'\',\''+border_ID+'\',\''+flagged+'\');',500);return false;} 
     348openTab.type[new_border_ID]=tabTypes[type];var folder_message=Element("input_folder_"+border_ID);if(folder_message){var input_current_folder=document.createElement('input');input_current_folder.id="new_input_folder_"+border_ID;input_current_folder.name="input_folder";input_current_folder.type="hidden";input_current_folder.value=folder_message.value;Element("content_id_"+new_border_ID).appendChild(input_current_folder);} 
     349var title='';data=[];if(Element("from_"+border_ID)){if(document.getElementById("reply_to_"+border_ID)){data.to=document.getElementById("reply_to_values_"+border_ID).value;data.to=data.to.replace(/&lt;/gi,"<");data.to=data.to.replace(/&gt;/gi,">");} 
     350else{if(document.getElementById("sender_values_"+border_ID)) 
     351{data.to=document.getElementById("sender_values_"+border_ID).value;data.to=data.to.replace(/&lt;/gi,"<");data.to=data.to.replace(/&gt;/gi,">");} 
     352else if(document.getElementById("from_values_"+border_ID)){data.to=document.getElementById("from_values_"+border_ID).value;data.to=data.to.replace(/&lt;/gi,"<");data.to=data.to.replace(/&gt;/gi,">");}} 
     353if(document.getElementById("to_values_"+border_ID)){data.to_all=document.getElementById("to_values_"+border_ID).value;data.to_all_alternative=document.getElementById("user_email_alternative").value;data.to_all=data.to_all.replace(/\n/gi," ");data.to_all=data.to_all.replace(/&lt;/gi,"<");data.to_all=data.to_all.replace(/&gt;/gi,">");var _array_to_all=data.to_all.split(",");var _array_to_alternative=data.to_all_alternative.split(",");}} 
     354if(document.getElementById("cc_"+border_ID)){data.cc=document.getElementById("cc_values_"+border_ID).value;data.cc=data.cc.replace(/&lt;/gi,"<");data.cc=data.cc.replace(/&gt;/gi,">");var _array_cc=data.cc.split(",");} 
     355if(document.getElementById("cco_"+border_ID)){data.cco=document.getElementById("cco_values_"+border_ID).value;data.cco=data.cco.replace(/&lt;/gi,"<");data.cco=data.cco.replace(/&gt;/gi,">");} 
     356if($("#subject_"+border_ID)) 
     357data.subject=$("#subject_"+border_ID).text();if(data.subject==get_lang("(no subject)   ")) 
     358data.subject='';if(document.getElementById("body_"+border_ID)) 
     359data.body=document.getElementById("body_"+border_ID).innerHTML;if(document.getElementById("from_values_"+border_ID)) 
     360data.from=document.getElementById("from_values_"+border_ID).value;if(Element('date_'+border_ID)){data.date=Element('date_'+border_ID).innerHTML;} 
     361if(Element('date_day_'+border_ID)){data.date_day=Element('date_day_'+border_ID).value;} 
     362if(Element('date_hour_'+border_ID)){data.date_hour=Element('date_hour_'+border_ID).value;} 
     363var signature=RichTextEditor.getSignatureDefault();if(type!="new"&&type!="edit"&&document.getElementById("is_local_"+border_ID)!=null) 
     364data.is_local_message=(document.getElementById("is_local_"+border_ID).value=="1")?true:false;if(typeof($.fn.elastic)=="undefined"){$.lazy({src:'../prototype/plugins/jquery-elastic/jquery.elastic.source.js',name:'elastic'});} 
     365var content=$("#content_id_"+new_border_ID);var btnSaveVerify=function(){$("#content_id_"+currentTab+" .save").button("disable");dataBtn=new Array(".to",".cc",".cco","input[name=input_subject]",".reply-to");for(var i in dataBtn){$("#content_id_"+currentTab+" "+dataBtn[i]).keydown(function(){$("#content_id_"+currentTab+" .save").button("enable");});} 
     366RichTextEditor.keydown(new_border_ID);} 
     367switch(type){case"reply_without_history":btnSaveVerify();RichTextEditor.replyController=true;content.find('[name="input_to"]').val(data.to);draw_reply_boxes_by_field("to",data.to,content);title="Re: "+html_entities(data.subject);content.find(".subject").val("Re: "+data.subject);useOriginalAttachments(new_border_ID,border_ID);content.find('[name="msg_reply_from"]').val($("#msg_number_"+border_ID).val());if(preferences.use_signature=="1"){RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+signature,true);} 
     368break;case"reply_with_history":btnSaveVerify();RichTextEditor.replyController=true;title="Re: "+html_entities(data.subject);content.find(".subject").val("Re: "+data.subject);content.find('[name="input_to"]').val(data.to);draw_reply_boxes_by_field("to",data.to,content);content.find('[name="msg_reply_from"]').val($("#msg_number_"+border_ID).val());block_quoted_body=make_body_reply(data.body,data.from,data.date_day,data.date_hour);useOriginalAttachments(new_border_ID,border_ID);if(preferences.use_signature=="1"){RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+signature+'<div><br type="_moz"></div>'+block_quoted_body,true);}else{RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+block_quoted_body,true);} 
     369break;case"reply_to_all_without_history":btnSaveVerify();RichTextEditor.replyController=true;data.to_all=new Array();data.to_all=removeUserEmail(_array_to_all);data.to_all=removeAlternative(data.to_all,_array_to_alternative);content.find('[name="msg_reply_from"]').val($("#msg_number_"+border_ID).val());data.to_all=data.to_all.join(",");title="Re: "+html_entities(data.subject);content.find(".subject").val("Re: "+data.subject);if(data.to.indexOf(Element("user_email").value)>0){draw_reply_boxes_by_field("to",data.to_all,content);content.find('[name="input_to"]').val(data.to_all);}else{draw_reply_boxes_by_field("to",data.to+','+data.to_all,content);content.find('[name="input_to"]').val(data.to+','+data.to_all);} 
     370if(data.cc){data.cc=new Array();data.cc=removeUserEmail(_array_cc);data.cc=removeAlternative(data.cc,_array_to_alternative);if(data.cc!=get_lang("undisclosed-recipient")) 
     371data.cc=data.cc.join(",");else 
     372data.cc="";if(data.cc!=""){content.find('[name="input_cc"]').val(data.cc);input_binds(content.find('[name="input_cc"]').parent(),new_border_ID);content.find(".cc-tr").show();content.find(".cc-button").toggleClass("expressomail-button-icon-ative");content.find(".cc-button").find("span").html("Remover CC");draw_reply_boxes_by_field("cc",data.cc,content);}} 
     373useOriginalAttachments(new_border_ID,border_ID);if(preferences.use_signature=="1"){RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+signature,true);} 
     374break;case"reply_to_all_with_history":btnSaveVerify();RichTextEditor.replyController=true;data.to_all=new Array();data.to_all=removeUserEmail(_array_to_all);data.to_all=removeAlternative(data.to_all,_array_to_alternative);content.find('[name="msg_reply_from"]').val($("#msg_number_"+border_ID).val());if(data.to_all!=get_lang("undisclosed-recipient")) 
     375data.to_all=data.to_all.join(",");else 
     376data.to_all="";title="Re: "+html_entities(data.subject);if(data.to.indexOf(Element("user_email").value)>0){draw_reply_boxes_by_field("to",data.to_all,content);content.find('[name="input_to"]').val(data.to_all);}else{draw_reply_boxes_by_field("to",data.to+','+data.to_all,content);content.find('[name="input_to"]').val(data.to+','+data.to_all);} 
     377if(data.cc){data.cc=new Array();data.cc=removeUserEmail(_array_cc);data.cc=removeAlternative(data.cc,_array_to_alternative);if(data.cc!=get_lang("undisclosed-recipient")) 
     378data.cc=data.cc.join(",");else 
     379data.cc="";if(data.cc!=""){content.find('[name="input_cc"]').val(data.cc);input_binds(content.find('[name="input_aux_cc"]').parent(),new_border_ID);content.find(".cc-tr").show();content.find(".cc-button").toggleClass("expressomail-button-icon-ative");content.find(".cc-button").find("span").html("Remover CC");draw_reply_boxes_by_field("cc",data.cc,content);}} 
     380content.find(".subject").val("Re: "+data.subject);block_quoted_body=make_body_reply(data.body,data.from,data.date_day,data.date_hour);useOriginalAttachments(new_border_ID,border_ID);if(preferences.use_signature=="1"){RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div><div><br type="_moz"></div>'+signature+'<div><br type="_moz"></div>'+block_quoted_body,true);}else{RichTextEditor.setInitData(new_border_ID,block_quoted_body,true);} 
     381break;case"forward":btnSaveVerify();title="Fw: "+html_entities(data.subject);content.find(".subject").val("Fw: "+data.subject);var divFiles=Element("divFiles_"+new_border_ID);var campo_arquivo;content.find('[name="msg_forward_from"]').val($("#msg_number_"+border_ID).val());if(Element("attachments_"+border_ID)) 
     382addOriginalAttachments(new_border_ID,border_ID);if(preferences.use_signature=="1"){$("#body_"+new_border_ID).val('<div><br type="_moz"></div><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));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));content.find(".to").focus();} 
     383else{RichTextEditor.setInitData(new_border_ID,make_forward_body(data.body,data.to,data.date,data.subject,data.to_all,data.cc));$("#body_"+new_border_ID).val('<div><br type="_moz"></div><div><br type="_moz"></div>'+make_forward_body(data.body,data.to,data.date,data.subject,data.to_all,data.cc));content.find(".to").focus();} 
     384break;case"new":btnSaveVerify();title=get_lang("New Message");if(Element('msg_number').value){var _to=Element('msg_number').value;var reEmail=/^[A-Za-z\d_-]+(\.[A-Za-z\d_-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;if(!reEmail.test(_to)){var array_contacts=contacts.split(',');for(i=0;i<array_contacts.length;i++){if(array_contacts[i].lastIndexOf(_to)!="-1"){var _group=array_contacts[i].split(";");_to='"'+_group[0]+'" <'+_group[1]+'>';break;}}} 
     385content.find('[name="input_to"]').val(_to+',');draw_email_box(_to,content.find(".to").filter("input"));Element('msg_number').value='';} 
     386if(preferences.use_signature=="1"){$("#body_"+new_border_ID).val('<div><br type="_moz"></div><div><br type="_moz"></div>'+signature);RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+signature);content.find(".to").focus();} 
     387else 
     388content.find('[name="input_to"]').focus();break;case"edit":btnSaveVerify();if(flagged=='F') 
     389$(".important").addClass("expressomail-button-icon-ative");openTab.imapBox[new_border_ID]=folder_message.value;document.getElementById('font_border_id_'+new_border_ID).innerHTML=data.subject;title="Edição: "+html_entities(data.subject);data.to=Element("to_values_"+border_ID).value;if(data.to!=get_lang("without destination")){data.to=data.to.replace(/&lt;/gi,"<");data.to=data.to.replace(/&gt;/gi,">");}else{data.to="";} 
     390draw_reply_boxes_by_field("to",data.to,content);content.find('[name="input_to"]').val(data.to);if(data.cc){data.cc=data.cc.replace(/&lt;/gi,"<");data.cc=data.cc.replace(/&gt;/gi,">");content.find('[name="input_cc"]').val(data.cc);input_binds(content.find('[name="input_cc"]').parent(),new_border_ID);content.find(".cc-tr").show();content.find(".cc-button").toggleClass("expressomail-button-icon-ative");content.find(".cc-button").find("span").html(get_lang('Remove CC'));draw_reply_boxes_by_field("cc",data.cc,content);} 
     391if(data.cco){if(content.find('[name="input_cco"]').length){content.find('[name="input_cco"]').val(data.cco);content.find(".cco-tr").show();content.find(".cco-button").toggleClass("expressomail-button-icon-ative");content.find(".cco-button").find("span").html(get_lang('Remove CCo'));input_binds(content.find('[name="input_cco"]').parent(),new_border_ID);draw_reply_boxes_by_field("cco",data.cco,content);}} 
     392content.find(".subject").val(data.subject);if($("#disposition_notification_"+border_ID).length){content.find('[name="input_return_receipt"]').attr("checked",true);content.find(".return-recept").toggleClass("expressomail-button-icon-ative");} 
     393var element_important_message=Element("important_message_"+new_border_ID);if(element_important_message){if($("#disposition_important_"+border_ID).length){content.find('[name="input_important_message"]').attr("checked",true);content.find(".important").toggleClass("expressomail-button-icon-ative");}} 
     394if(Element("attachments_"+border_ID)) 
     395addOriginalAttachments(new_border_ID,border_ID);RichTextEditor.setInitData(new_border_ID,data.body,'edit');uidsSave[new_border_ID].push(new_border_ID);close_delete(border_ID);break;default:} 
     396content.find('[name="input_to"]').trigger("update");var txtarea=$('#body_'+new_border_ID);var height=document.body.scrollHeight-330;txtarea.css("overflowY","auto");txtarea.css("height",height);$("#border_id_"+new_border_ID).attr("title",title);set_border_caption("border_id_"+new_border_ID,title);resizeWindow();return new_border_ID;} 
     397function draw_reply_boxes_by_field(field,value,context){array=break_comma(value);$.each(array,function(index,value){draw_email_box(value,context.find("."+field).filter("textarea:first"));});} 
     398function removeUserEmail(emailList){var userEmail=Element("user_email").value;var array_emails=Array();var j=0;for(var i=0;i<emailList.length;i++){if(emailList[i].indexOf(userEmail)<0){array_emails[j++]=emailList[i];}} 
     399return array_emails;} 
     400function removeAlternative(value_to_all,_array_to_alternative){for(i=0;i<_array_to_alternative.length;i++){for(k=0;k<value_to_all.length;k++){if(value_to_all[k].match(/<([^<]*)>[\s]*$/)){if(value_to_all[k].match(/<([^<]*)>[\s]*$/)[1].toLowerCase()==_array_to_alternative[i].toLowerCase()){value_to_all.splice(k,1);k--;}}else if(value_to_all[k].replace(/^\s+|\s+$/g,"").toLowerCase()==_array_to_alternative[i].toLowerCase()){value_to_all.splice(k,1);k--;}}} 
     401return value_to_all;} 
    2583402function useOriginalAttachments(new_border_ID,old_id_border) 
    2584 {    
    2585         if (Element("attachments_" + old_id_border)) 
    2586     { 
    2587         var fileUploadMSG = $('#fileupload_msg'+new_border_ID);          
    2588         var attachments = $("#attachments_" + old_id_border).find("a");  
    2589                 if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 
    2590                         alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
    2591                         return false; 
    2592                 } 
    2593                  
    2594         var imagens = block_quoted_body.match(/<img[^>]*>/g); 
    2595                 var arrayAttachments = []; 
    2596                 var arrayAttachmentsA = []; 
    2597                  
    2598                 //------------------- 
    2599                     for (var i = 0; i < attachments.length; i++){ 
    2600                             if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
    2601                                     continue; 
    2602                                 if(attachments[i].href.split("local") > 1){ 
    2603                                         var arrayAtt = attachments[i].href.replace("javascript:download_local_attachment(", "").replace(")", "").split(',');                                  
    2604                                 }else{ 
    2605                                         var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                  
    2606                                 } 
    2607                                  
    2608                                 var att = new Object(); 
    2609                                 var regex = new RegExp( "'", "g" ); 
    2610                                 att.folder = utf8_decoder(Base64.decode(arrayAtt[0].replace(regex,""))); 
    2611                                 att.uid = arrayAtt[1].replace(regex,""); 
    2612                                 att.part = arrayAtt[3].replace(regex,""); 
    2613                                 att.type = 'imapPart'; 
    2614                                 var idATT = JSON.stringify(att); 
    2615                                  
    2616                                 if(block_quoted_body.indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part+'"') !== -1) 
    2617                                 { 
    2618                                     addAttachment( new_border_ID , idATT);   
    2619  
    2620                                     var attach = {}; 
    2621                                     attach.fileName =  attachments[i].text.substring(0, attachments[i].text.lastIndexOf('(')); 
    2622                     attach.fullFileName = attach.fileName; 
    2623                                     if(attach.fileName.length > 20) 
    2624                                         attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    2625  
    2626                                     attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
    2627  
    2628                     attach.error = false; 
    2629                     fileUploadMSG.find(' .attachments-list').show(); 
    2630                                     var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2631                                     upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
    2632                     upload.find(".att-box-loading").remove(); 
    2633                                     upload.find('.att-box-delete').click(function(){ 
    2634                                             var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    2635                                             var content_body = RichTextEditor.getData('body_'+new_border_ID); 
    2636                                             var imagens = content_body.match(/<img[^>]*>/g); 
    2637                                             var att = JSON.parse(idAttach); 
    2638                                             if(imagens != null) 
    2639                                             {    
    2640                                                 for (var x = 0; x < imagens.length; x++) 
    2641                                                     if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part) !== -1) 
    2642                                                         content_body = content_body.replace(imagens[x],''); 
    2643  
    2644                                                 RichTextEditor.setData('body_'+new_border_ID,content_body);     
    2645                                             }        
    2646  
    2647                                             fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]'); 
    2648                                             delAttachment(new_border_ID,idAttach);  
    2649                                             $(this).parent().qtip("destroy"); 
    2650                         $(this).parent().remove(); 
    2651                         if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
    2652                             fileUploadMSG.find(' .attachments-list').hide(); 
    2653                         } 
    2654                                     }); 
    2655  
    2656                                     fileUploadMSG.find('.attachments-list').append(upload); 
    2657                     fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
    2658                         content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
    2659                         position: { 
    2660                             corner: { 
    2661                                 tooltip: 'bottomMiddle', 
    2662                                 target: 'topMiddle' 
    2663                             }, 
    2664                             adjust: { 
    2665                                resize: true, 
    2666                                scroll: true, 
    2667                                screen: true 
    2668                             } 
    2669                         }, 
    2670                         show: { 
    2671                             when: 'mouseover', // Don't specify a show event 
    2672                             ready: false // Show the tooltip when ready 
    2673                         }, 
    2674                         hide: 'mouseout', // Don't specify a hide event 
    2675                         style: { 
    2676                             border: { 
    2677                                 width: 1, 
    2678                                 radius: 5 
    2679                             }, 
    2680                             width: { 
    2681                                                                  min: 75, 
    2682                                                                  max : 1000 
    2683                                                         }, 
    2684                             padding: 3,  
    2685                             textAlign: 'left', 
    2686                             tip: true, // Give it a speech bubble tip with automatic corner detection 
    2687                             name: 'blue' // Style it according to the preset 'cream' style 
    2688                         } 
    2689                     }); 
    2690                                 } 
    2691                                 else 
    2692                                 {    
    2693                                     arrayAttachments.push(idATT); 
    2694                                     arrayAttachmentsA.push(attachments[i]); 
    2695                                 } 
    2696         } 
    2697                 //------------------- 
    2698                  
    2699                 if(arrayAttachments.length > 0) 
    2700                 { 
    2701                  
    2702                     var orignialAtt = fileUploadMSG.find('.button-files-upload').append(' <button tabindex="-1" class="message-add-original-att button small">Anexar arquivos originais</button>').find(".message-add-original-att").button(); 
    2703                     orignialAtt.click(function(event ){ 
    2704  
    2705                         for (var i = 0; i < arrayAttachments.length; i++){ 
    2706  
    2707                                     var att = JSON.parse(arrayAttachments[i]); 
    2708                                     addAttachment( new_border_ID , arrayAttachments[i]);   
    2709  
    2710                                     var attach = {}; 
    2711                                     attach.fileName =  arrayAttachmentsA[i].text.substring(0, arrayAttachmentsA[i].text.lastIndexOf('(')); 
    2712                     attach.fullFileName = attach.fileName; 
    2713                                     if(attach.fileName.length > 20) 
    2714                                         attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    2715  
    2716                                     attach.fileSize =  arrayAttachmentsA[i].text.substring(( arrayAttachmentsA[i].text.lastIndexOf('(')+1), arrayAttachmentsA[i].text.lastIndexOf(')')); 
    2717                     attach.error = false; 
    2718                     fileUploadMSG.find(' .attachments-list').show(); 
    2719                                     var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2720                                     upload.find('.att-box-loading').remove();  
    2721                                     upload.append('<input type="hidden" name="fileId[]" value=\''+arrayAttachments[i]+'\'/>'); 
    2722                                     upload.find('.att-box-delete').click(function(){ 
    2723                                             var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    2724                                             var content_body = RichTextEditor.getData('body_'+new_border_ID); 
    2725                                             var imagens = content_body.match(/<img[^>]*>/g); 
    2726                                             var att = JSON.parse(idAttach); 
    2727                                             if(imagens != null) 
    2728                                             {    
    2729                                                 for (var x = 0; x < imagens.length; x++) 
    2730                                                     if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part) !== -1) 
    2731                                                         content_body = content_body.replace(imagens[x],''); 
    2732  
    2733                                                 RichTextEditor.setData('body_'+new_border_ID,content_body);     
    2734                                             }        
    2735  
    2736                                             fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]'); 
    2737                                             delAttachment(new_border_ID,idAttach);  
    2738                                             $(this).parent().qtip("destroy"); 
    2739                         $(this).parent().remove(); 
    2740                         if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
    2741                             fileUploadMSG.find(' .attachments-list').hide(); 
    2742                         } 
    2743                                     }); 
    2744  
    2745                                     fileUploadMSG.find('.attachments-list').append(upload); 
    2746                     fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
    2747                         content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
    2748                         position: { 
    2749                             corner: { 
    2750                                 tooltip: 'bottomMiddle', 
    2751                                 target: 'topMiddle' 
    2752                             }, 
    2753                             adjust: { 
    2754                                resize: true, 
    2755                                scroll: true, 
    2756                                screen: true 
    2757                             } 
    2758                         }, 
    2759                         show: { 
    2760                             when: 'mouseover', // Don't specify a show event 
    2761                             ready: false // Show the tooltip when ready 
    2762                         }, 
    2763                         hide: 'mouseout', // Don't specify a hide event 
    2764                         style: { 
    2765                             border: { 
    2766                                 width: 1, 
    2767                                 radius: 5 
    2768                             }, 
    2769                             width: { 
    2770                                                                  min: 75, 
    2771                                                                  max : 1000 
    2772                                                         }, 
    2773                             padding: 3,  
    2774                             textAlign: 'left', 
    2775                             tip: true, // Give it a speech bubble tip with automatic corner detection 
    2776                             name: 'blue' // Style it according to the preset 'cream' style 
    2777                         } 
    2778                     }); 
    2779                         } 
    2780  
    2781                     $(this).remove(); 
    2782                     }); 
    2783                 } 
    2784  
    2785          } 
    2786                  
    2787 } 
    2788  
     403{if(Element("attachments_"+old_id_border)) 
     404{var fileUploadMSG=$('#fileupload_msg'+new_border_ID);var attachments=$("#attachments_"+old_id_border).find("a");if(openTab.imapBox[new_border_ID].split("local").length>1&&attachments.length>0){alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos");return false;} 
     405var imagens=block_quoted_body.match(/<img[^>]*>/g);var arrayAttachments=[];var arrayAttachmentsA=[];for(var i=0;i<attachments.length;i++){if((attachments[i].tagName=="SPAN")||(attachments[i].tagName=="IMG")||((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     406continue;if(attachments[i].href.split("local")>1){var arrayAtt=attachments[i].href.replace("javascript:download_local_attachment(","").replace(")","").split(',');}else{var arrayAtt=attachments[i].href.replace("javascript:download_attachments(","").replace(")","").split(',');} 
     407var att=new Object();var regex=new RegExp("'","g");att.folder=utf8_decoder(Base64.decode(arrayAtt[0].replace(regex,"")));att.uid=arrayAtt[1].replace(regex,"");att.part=arrayAtt[3].replace(regex,"");att.type='imapPart';var idATT=JSON.stringify(att);if(block_quoted_body.indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part+'"')!==-1) 
     408{addAttachment(new_border_ID,idATT);var attach={};attach.fileName=attachments[i].text.substring(0,attachments[i].text.lastIndexOf('('));attach.fullFileName=attach.fileName;if(attach.fileName.length>20) 
     409attach.fileName=attach.fileName.substr(0,17)+" ... "+attach.fileName.substr(attach.fileName.length-9,attach.fileName.length);attach.fileSize=attachments[i].text.substring((attachments[i].text.lastIndexOf('(')+1),attachments[i].text.lastIndexOf(')'));attach.error=false;fileUploadMSG.find(' .attachments-list').show();var upload=$(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs",{file:attach}));upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>');upload.find(".att-box-loading").remove();upload.find('.att-box-delete').click(function(){var idAttach=$(this).parent().find('input[name="fileId[]"]').val();var content_body=RichTextEditor.getData('body_'+new_border_ID);var imagens=content_body.match(/<img[^>]*>/g);var att=JSON.parse(idAttach);if(imagens!=null) 
     410{for(var x=0;x<imagens.length;x++) 
     411if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
     412content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
     413fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]');delAttachment(new_border_ID,idAttach);$(this).parent().qtip("destroy");$(this).parent().remove();if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){fileUploadMSG.find(' .attachments-list').hide();}});fileUploadMSG.find('.attachments-list').append(upload);fileUploadMSG.find('.attachments-list .att-box:last').qtip({content:DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs",{attach:attach}),position:{corner:{tooltip:'bottomMiddle',target:'topMiddle'},adjust:{resize:true,scroll:true,screen:true}},show:{when:'mouseover',ready:false},hide:'mouseout',style:{border:{width:1,radius:5},width:{min:75,max:1000},padding:3,textAlign:'left',tip:true,name:'blue'}});} 
     414else 
     415{arrayAttachments.push(idATT);arrayAttachmentsA.push(attachments[i]);}} 
     416if(arrayAttachments.length>0) 
     417{var orignialAtt=fileUploadMSG.find('.button-files-upload').append(' <button tabindex="-1" class="message-add-original-att button small">Anexar arquivos originais</button>').find(".message-add-original-att").button();orignialAtt.click(function(event){for(var i=0;i<arrayAttachments.length;i++){var att=JSON.parse(arrayAttachments[i]);addAttachment(new_border_ID,arrayAttachments[i]);var attach={};attach.fileName=arrayAttachmentsA[i].text.substring(0,arrayAttachmentsA[i].text.lastIndexOf('('));attach.fullFileName=attach.fileName;if(attach.fileName.length>20) 
     418attach.fileName=attach.fileName.substr(0,17)+" ... "+attach.fileName.substr(attach.fileName.length-9,attach.fileName.length);attach.fileSize=arrayAttachmentsA[i].text.substring((arrayAttachmentsA[i].text.lastIndexOf('(')+1),arrayAttachmentsA[i].text.lastIndexOf(')'));attach.error=false;fileUploadMSG.find(' .attachments-list').show();var upload=$(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs",{file:attach}));upload.find('.att-box-loading').remove();upload.append('<input type="hidden" name="fileId[]" value=\''+arrayAttachments[i]+'\'/>');upload.find('.att-box-delete').click(function(){var idAttach=$(this).parent().find('input[name="fileId[]"]').val();var content_body=RichTextEditor.getData('body_'+new_border_ID);var imagens=content_body.match(/<img[^>]*>/g);var att=JSON.parse(idAttach);if(imagens!=null) 
     419{for(var x=0;x<imagens.length;x++) 
     420if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
     421content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
     422fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]');delAttachment(new_border_ID,idAttach);$(this).parent().qtip("destroy");$(this).parent().remove();if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){fileUploadMSG.find(' .attachments-list').hide();}});fileUploadMSG.find('.attachments-list').append(upload);fileUploadMSG.find('.attachments-list .att-box:last').qtip({content:DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs",{attach:attach}),position:{corner:{tooltip:'bottomMiddle',target:'topMiddle'},adjust:{resize:true,scroll:true,screen:true}},show:{when:'mouseover',ready:false},hide:'mouseout',style:{border:{width:1,radius:5},width:{min:75,max:1000},padding:3,textAlign:'left',tip:true,name:'blue'}});} 
     423$(this).remove();});}}} 
    2789424function addOriginalAttachments(new_border_ID,old_id_border) 
    2790 {    
    2791     var fileUploadMSG = $('#fileupload_msg'+new_border_ID); 
    2792     var attachments = $("#attachments_" + old_id_border).find("a");                      
    2793  
    2794         if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 
    2795                 alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 
    2796                 return false; 
    2797         } 
    2798  
    2799     for (var i = 0; i < attachments.length; i++){ 
    2800             if((attachments[i].tagName=="SPAN") || (attachments[i].tagName=="IMG") || ((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
    2801                     continue; 
    2802                 fileUploadMSG.find(' .attachments-list').show(); 
    2803                 if(attachments[i].href.split("local").length > 1){ 
    2804                         var arrayAtt = attachments[i].href.replace("javascript:download_local_attachment(", "").replace(")", "").split(',');                                     
    2805                 }else{ 
    2806                         var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                          
    2807                 } 
    2808                 var att = new Object(); 
    2809                 var regex = new RegExp( "'", "g" ); 
    2810                 att.folder = utf8_decoder(Base64.decode(arrayAtt[0].replace(regex,""))); 
    2811                 att.uid = arrayAtt[1].replace(regex,""); 
    2812                 att.part = arrayAtt[3].replace(regex,""); 
    2813                 att.type = 'imapPart'; 
    2814                 var idATT = JSON.stringify(att); 
    2815                 addAttachment( new_border_ID , idATT); 
    2816                  
    2817                 var attach = {}; 
    2818                 var attachText = (is_ie ? attachments[i].innerText : attachments[i].text); 
    2819                 attach.fileName =  attachText.substring(0, attachText.lastIndexOf('(')); 
    2820                 attach.fullFileName = attach.fileName; 
    2821                 if(attach.fileName.length > 20) 
    2822                     attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    2823                 attach.fileSize =  attachText.substring((attachText.lastIndexOf('(')+1),attachText.lastIndexOf(')')); 
    2824                 attach.error = false; 
    2825  
    2826                 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2827                 upload.find('.att-box-loading').remove();  
    2828                 upload.find('.att-box-delete').click(function(){ 
    2829                     var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    2830                     var content_body = RichTextEditor.getData('body_'+new_border_ID); 
    2831                     var imagens = content_body.match(/<img[^>]*>/g); 
    2832                     var att = JSON.parse(idAttach); 
    2833                     if(imagens != null) 
    2834                     {    
    2835                         for (var x = 0; x < imagens.length; x++) 
    2836                             if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part) !== -1) 
    2837                                 content_body = content_body.replace(imagens[x],''); 
    2838  
    2839                          RichTextEditor.setData('body_'+new_border_ID,content_body);     
    2840                     }        
    2841  
    2842                     fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
    2843                     delAttachment(new_border_ID,idAttach);  
    2844                     $(this).parent().qtip("destroy"); 
    2845                     $(this).parent().remove(); 
    2846                     if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
    2847                         fileUploadMSG.find(' .attachments-list').hide(); 
    2848                     } 
    2849                 });      
    2850  
    2851  
    2852                 upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
    2853                 fileUploadMSG.find('.attachments-list').append(upload); 
    2854                 fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
    2855                     content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
    2856                     position: { 
    2857                         corner: { 
    2858                             tooltip: 'bottomMiddle', 
    2859                             target: 'topMiddle' 
    2860                         }, 
    2861                         adjust: { 
    2862                            resize: true, 
    2863                            scroll: true, 
    2864                            screen: true 
    2865                         } 
    2866                     }, 
    2867                     show: { 
    2868                         when: 'mouseover', // Don't specify a show event 
    2869                         ready: false // Show the tooltip when ready 
    2870                     }, 
    2871                     hide: 'mouseout', // Don't specify a hide event 
    2872                     style: { 
    2873                         border: { 
    2874                             width: 1, 
    2875                             radius: 5 
    2876                         }, 
    2877                         width: { 
    2878                                                          min: 75, 
    2879                                                          max : 1000 
    2880                                                 }, 
    2881                         padding: 3,  
    2882                         textAlign: 'left', 
    2883                         tip: true, // Give it a speech bubble tip with automatic corner detection 
    2884                         name: 'blue' // Style it according to the preset 'cream' style 
    2885                     } 
    2886                 }); 
    2887  
    2888     }                    
    2889 } 
    2890  
    2891 function send_message_return(data, ID){ 
    2892          
    2893         if (typeof(data) == 'object' && data.load){ 
    2894                 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    2895         } 
    2896         watch_changes_in_msg(ID); 
    2897  
    2898         var content = $("#content_id_"+ID); 
    2899         var sign = false; 
    2900         var crypt = false; 
    2901         var reComplexEmail = /<([^<]*)>[\s]*$/; 
    2902         if ((preferences.use_assinar_criptografar != '0') && (preferences.use_signature_digital_cripto != '0')){ 
    2903                 var checkSign = document.getElementById('return_digital_'+ID) 
    2904                 if (checkSign.checked){ 
    2905                         sign = true; 
    2906                 } 
    2907  
    2908                 var checkCript = document.getElementById('return_cripto_'+ID); 
    2909                 if (checkCript.checked){ 
    2910                         crypt = true; 
    2911                 } 
    2912         } 
    2913  
    2914         if (typeof(data) == 'object' && !data.success) 
    2915         { 
    2916                 connector = new  cConnector(); 
    2917  
    2918                 if (sign || crypt){ 
    2919                         var operation = ''; 
    2920                         if (sign){ 
    2921                                 operation = 'sign'; 
    2922                         } 
    2923                         else { // crypt 
    2924                                 //TODO: Colocar mensagem de erro, e finalizar o método. 
    2925                                 operation = 'nop'; 
    2926                         } 
    2927                 } 
    2928  
    2929                 if (data.body){ 
    2930                         Element('cert_applet').doButtonClickAction(operation, ID, data.body); 
    2931                 } 
    2932                 else { 
    2933                         alert(data.error); 
    2934                 } 
    2935  
    2936                 return; 
    2937         } 
    2938         if(data && data.success == true ){ 
    2939                 // if send ok, set a flag as answered or forwarded 
    2940                 var msg_number_replied = content.find('[name="msg_reply_from"]'); 
    2941                 var msg_number_forwarded = content.find('[name="msg_forward_from"]'); 
    2942  
    2943                 if (msg_number_replied.val()){ 
    2944                         proxy_mensagens.proxy_set_message_flag(msg_number_replied.val(), 'answered'); 
    2945                 } 
    2946                 else if (msg_number_forwarded.val()){ 
    2947                         proxy_mensagens.proxy_set_message_flag(msg_number_forwarded.val(), 'forwarded'); 
    2948                 } 
    2949                 if(expresso_offline){ 
    2950                         write_msg(get_lang('Your message was sent to queue')); 
    2951                         delete_border(ID,'true'); 
    2952                         return; 
    2953                 }else{ 
    2954                         if (wfolders.alert) { 
    2955                                 write_msg(get_lang('Your message was sent and save.')); 
    2956                                 wfolders.alert = false; 
    2957                         } 
    2958                         else { 
    2959                                 write_msg(get_lang('Your message was sent.')); 
    2960                         } 
    2961                 } 
    2962  
    2963                 //REFAZER ISTO COM UMA CHAMADA ASSINCRONA PARA REGISTRAR E ATUALIZAR A LISTA DOS NOVOS CONTATOS DINAMICOS 
    2964                 // If new dynamic contacts were added, update the autocomplete .... 
    2965                 /*if(data.new_contacts){ 
    2966                         var ar_contacts = data.new_contacts.split(',;'); 
    2967                         for(var j in ar_contacts){ 
    2968                                 // If the dynamic contact don't exist, update the autocomplete.... 
    2969                                 if((contacts+",").indexOf(";"+ar_contacts[j]+",") == -1) 
    2970                                         contacts += ",;" + ar_contacts[j]; 
    2971                         } 
    2972                 } 
    2973                 var dynamicPersonalContacts = new Array(); 
    2974                 var dynamicPersonalGroups = new Array(); 
    2975                 var dynamicContacts = new Array(); 
    2976                 var dynamicContactList = new Array(); 
    2977  
    2978                 */ 
    2979                 delete_border(ID,'true'); 
    2980                 var arrayTo = content.find(".to-tr").find(".box").clone(); 
    2981                 save_dynamic_contacts(arrayTo); 
    2982                 var arrayCC = content.find(".cc-tr").find(".box").clone(); 
    2983                 save_dynamic_contacts(arrayCC); 
    2984                 var arrayCCo = content.find(".cco-tr").find(".box").clone(); 
    2985                 save_dynamic_contacts(arrayCCo); 
    2986         if(parseInt(preferences.use_dynamic_contacts)) 
    2987             updateDynamicContact(); 
    2988                 cache = new Array(); 
    2989         } 
    2990         else{ 
    2991                 if(data == 'Post-Content-Length') 
    2992                         write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value)); 
    2993                 else if(data){ 
    2994                         var error_mail = $.trim(data.split(":")[data.split(":").length-1]); 
    2995                         var array = content.find(".to-tr").find(".box"); 
    2996                         //$(value).find("input").val() 
    2997                         $.each(array, function(index, value){ 
    2998                                 if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
    2999                                         $(value).addClass("invalid-email-box"); 
    3000                         }); 
    3001                         if ( content.find('[name="input_cco"]').length){ 
    3002                                 if(content.find(".cco-tr").css("display") != "none"){ 
    3003                                         var array = content.find(".cco-tr").find(".box"); 
    3004                                         $.each(array, function(index, value){ 
    3005                                                 if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
    3006                                                         $(value).addClass("invalid-email-box"); 
    3007                                         }); 
    3008                                 } 
    3009                         } 
    3010                         if(content.find(".cc-tr").css("display") != "none") 
    3011                         { 
    3012                                 var array = content.find(".cc-tr").find(".box"); 
    3013                                 $.each(array, function(index, value){ 
    3014                                         if(error_mail == $(value).find("input").val().match(reComplexEmail)[1]) 
    3015                                                 $(value).addClass("invalid-email-box"); 
    3016                                 });                              
    3017                         }  
    3018                         write_msg(data); 
    3019                 }else 
    3020                         write_msg(get_lang("Connection failed with %1 Server. Try later.", "Web")); 
    3021                  
    3022                 var save_link = $("#content_id_"+ID).find(".save")[0]; 
    3023                 save_link.onclick = function onclick(event) {openTab.toPreserve[ID] = true;save_msg(ID);} ; 
    3024                 $("#save_message_options_"+ID).button({disabled: false}); 
    3025                 //save_link.className = 'message_options'; 
    3026         } 
    3027         if(!expresso_offline) 
    3028                 connector.hideProgressBar(); 
    3029 } 
    3030  
    3031 /*Função que grava o destinatário nos contatos dinâmicos*/ 
    3032 function save_dynamic_contacts(array){ 
    3033         if(parseInt(preferences.use_dynamic_contacts)){ 
    3034                  
    3035                 $.each(array, function(i, value){ 
    3036                         var stop = false; 
    3037                         $.each(dynamicPersonalContacts, function(x, valuex){ 
    3038                                 if(valuex.email == $(value).find("input").val().match(reComplexEmail)[1]){ 
    3039                                         stop = true; 
    3040                                         return false; 
    3041                                 } 
    3042                         }); 
    3043                         $.each(dynamicPersonalGroups, function(x, valuex){ 
    3044                                 if(valuex.email == $(value).find("input").val().match(reComplexEmail)[1]){ 
    3045                                         stop = true; 
    3046                                         return false; 
    3047                                 } 
    3048                         }); 
    3049                         if(!stop){ 
    3050                                 var exist = 0; 
    3051                                 $.each(dynamicData, function(x, valuex){ 
    3052                                         if(valuex.mail == $(value).find("input").val().match(reComplexEmail)[1]){ 
    3053                                                 exist = valuex.id; 
    3054                                                 return false; 
    3055                                         } 
    3056                                 }); 
    3057                                 if(exist){ 
    3058                                         REST.put("/dynamiccontact/"+exist, {name: $(value).find("input").val().split('"')[1], mail:$(value).find("input").val().match(reComplexEmail)[1]}); 
    3059                                 }else{ 
    3060                                         REST.post("/dynamiccontacts", {name: $(value).find("input").val().split('"')[1], mail:$(value).find("input").val().match(reComplexEmail)[1]}); 
    3061                                 } 
    3062                         } 
    3063                 }); 
    3064         } 
    3065 } 
    3066  
    3067 /** 
    3068  * Método chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 
    3069  * para posterior envio ao servidor. 
    3070  * @author Mário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 
    3071  * @param smime O e-mail decifrado/assinado 
    3072  * @param ID O ID do e-mail, para saber em que aba esse e-mail será mostrado. 
    3073  * @param operation A operação que foi realizada pela applet (assinatura ou decifragem) 
    3074  */ 
    3075 function appletReturn(smime, ID, operation, folder){ 
    3076  
    3077         if (!smime){ // Erro aconteceu ao assinar ou decifrar e-mail 
    3078                 connector = new  cConnector(); 
    3079                 connector.hideProgressBar(); 
    3080                 return; 
    3081         } 
    3082  
    3083         if(operation=='decript') 
    3084         { 
    3085                 var handler = function(data){ 
    3086  
    3087                         if(data.msg_day == '') 
    3088                         { 
    3089                                 header=expresso_local_messages.get_msg_date(data.original_ID, proxy_mensagens.is_local_folder(get_current_folder())); 
    3090  
    3091                                 data.fulldate=header.fulldate; 
    3092                                 data.smalldate=header.smalldate; 
    3093                                 data.msg_day = header.msg_day; 
    3094                                 data.msg_hour = header.msg_hour; 
    3095  
    3096                       } 
    3097                         this.show_msg(data); 
    3098                 } 
    3099                 para="&source="+smime+"&ID="+ID+"&folder="+folder; 
    3100                 cExecute ("$this.imap_functions.show_decript&", handler, para); 
    3101         }else 
    3102         { 
    3103                 ID_tmp = ID; 
    3104                 // Lê a variável e chama a nova função cExecuteForm 
    3105                 // Processa e envia para o servidor web 
    3106                 // Faz o request do connector novamente. Talvez implementar no connector 
    3107                 // para manter coerência. 
    3108  
    3109                 var handler_send_smime = function(data){ 
    3110                         send_message_return(data, this.ID_tmp); // this is a hack to escape quotation form connector bug 
    3111                 }; 
    3112  
    3113                 var textArea = document.createElement("TEXTAREA"); 
    3114                 textArea.style.display='none'; 
    3115                 textArea.id = 'smime'; 
    3116                 textArea.name = "smime"; 
    3117                 textArea.value += smime; 
    3118  
    3119                 // Lê a variável e chama a nova função cExecuteForm 
    3120                 // Processa e envia para o servidor web 
    3121                 // Faz o request do connector novamente. Talvez implementar no connector 
    3122                 // para manter coerência. 
    3123                 if (is_ie){ 
    3124                         var i = 0; 
    3125                         while (document.forms(i).name != "form_message_"+ID){i++} 
    3126                         form = document.forms(i); 
    3127                 } 
    3128                 else 
    3129                         form = document.forms["form_message_"+ID]; 
    3130  
    3131                 form.appendChild(textArea); 
    3132  
    3133                 cExecuteForm ("$this.imap_functions.send_mail", form, handler_send_smime, ID); 
    3134         } 
    3135 } 
    3136  
    3137 /*  
    3138  * Método que verifica se existe algum item de 'words' em 'body'.  
    3139  * Se houver, retorna a primeira ocorrência encontrada de words, caso contrário retorna false.  
    3140  */ 
    3141 function verifyBodyWords(body, words) { 
    3142         for(i = 0; i < words.length; i++) { 
    3143                 if(body.search(words[i]) != -1) { 
    3144                         return words[i];  
    3145                 } 
    3146         } 
    3147         return false; 
    3148 } 
    3149  
    3150  
    3151 function send_message(ID, folder, folder_name){ 
    3152         var content_body  = RichTextEditor.getData('body_'+ID);      
    3153         /*  
    3154                 Funcionalidade que verifica se o usuário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo. 
    3155                 Esta funcionalidade é ativada nas preferências do módulo ExpressoMail. 
    3156         */       
    3157         /* Lista de palavras que vão ser procuradas no corpo do email, referente às variantes da palavra anexo em português, inglês e espanhol. */ 
    3158         if(language == "pt-br") //Português brasileiro 
    3159                 var words = ['anexo', 'anexos', 'anexada', 'anexado', 'anexei', 'anexando', 'anexaste', 'anexastes', 'anexamos', 'anexaram']; 
    3160         else if(language == "es-es") //Espanhol 
    3161                 var words = ['anexo','adjunto', 'adjuntos', 'adjuntado','adjuntamos']; 
    3162         else //Inglês ('en')  
    3163                 var words = ['attach', 'attachment', 'attached', 'annex', 'appending']; 
    3164  
    3165         if($('#fileupload_msg'+ID).find('.att-box').length == 0 && preferences.alert_message_attachment == '1' ) { 
    3166                 var bodyWord = verifyBodyWords(content_body, words); 
    3167                 if(bodyWord) {           
    3168                         $.Zebra_Dialog(get_lang('You wrote "%1" in your message, but there are no files attached. Send it anyway?', bodyWord), { 
    3169                                 'type':     'question', 
    3170                                 'overlay_opacity': '0.5', 
    3171                                 'buttons':  ['OK', 'Cancelar'], 
    3172                                 'width' : 500, 
    3173                                 'onClose':  function(clicked) { 
    3174                                         if(clicked == 'OK' ){ 
    3175                                                 send_valided_message(ID, folder, folder_name);                           
    3176                                                 return; 
    3177                                         } else { 
    3178                                                 return; 
    3179                                         } 
    3180                                 } 
    3181                         }); 
    3182                 } 
    3183                 else 
    3184                         send_valided_message(ID, folder, folder_name);   
    3185         } 
    3186         else if(!zebraDiscardEventDialog && $('#fileupload_msg'+ID).find('.att-box-loading').length) 
    3187         { 
    3188                 zebraDiscardEventDialog = true; 
    3189                 window.setTimeout(function() { 
    3190                         $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 
    3191                                 'type':     'question', 
    3192                                 'overlay_opacity': '0.5', 
    3193                                 'buttons':  ['Descartar anexos e enviar', 'Continuar editando e esperar anexos'], 
    3194                                 'width' : 500, 
    3195                                 'onClose':  function(clicked) { 
    3196                                         if(clicked == 'Descartar anexos e enviar' ){  
    3197                                                 $.each($('#fileupload_msg'+ID).find('.att-box'), function(index, value){ 
    3198                                                         if($(value).find(".att-box-loading").length) 
    3199                                                                 $(value).find('.att-box-delete').trigger("click"); 
    3200                                                 }); 
    3201                                                 send_valided_message(ID, folder, folder_name); 
    3202                                         } 
    3203                                         window.setTimeout(function() { 
    3204                                                 zebraDiscardEventDialog = false; 
    3205                                         }, 500); 
    3206                                 } 
    3207                         }) 
    3208                 }, 300);  
    3209         }else { 
    3210                 send_valided_message(ID, folder, folder_name); 
    3211                 } 
    3212 } 
    3213  
    3214 function send_valided_message(ID, folder, folder_name) 
    3215 {  
    3216         if (preferences.auto_save_draft == 1) 
    3217            autoSaveControl.status[ID] = true; 
    3218  
    3219         var content = $("#content_id_"+ID); 
    3220         var save_link = $("#content_id_"+ID).find(".save"); 
    3221         var onClick = save_link.onclick; 
    3222         save_link.onclick = ''; 
    3223         save_link.button({disabled: true}); 
    3224  
    3225     var _subject = trim(content.find(".subject").val()); 
    3226     if((_subject.length == 0) && !confirm(get_lang("Send this message without a subject?"))) { 
    3227         save_link.click(onClick); 
    3228         content.find(".subject").focus(); 
    3229         return; 
    3230     } 
    3231  
    3232     var stringReply = ""; 
    3233     draw_email_box(content.find(".reply-to-tr").find("textarea:first").val(), content.find(".reply-to-tr").find("textarea:first")); 
    3234     content.find(".reply-to-tr").find("textarea:first").val(""); 
    3235     var array = content.find(".reply-to-tr").find(".box"); 
    3236     $.each(array, function(index, value){ 
    3237         stringReply += $(value).find("input").val() + ","; 
    3238     });  
    3239     var stringToEmail = ""; 
    3240     draw_email_box(content.find(".to-tr").find("textarea:first").val() || content.find(".to-tr").find("input:visible").val(), content.find(".to-tr").find("textarea:first")); 
    3241     content.find(".to-tr").find("textarea:first").val(""); 
    3242     content.find(".to-tr").find("input:visible").val(""); 
    3243     var array = content.find(".to-tr").find(".box"); 
    3244     $.each(array, function(index, value){ 
    3245         stringToEmail += $(value).find("input").val() + ","; 
    3246     }); 
    3247     var stringEmail = ""; 
    3248     stringEmail = stringToEmail; 
    3249     var stringCCoEmail = ""; 
    3250     if ( content.find('[name="input_cco"]').length){ 
    3251         if(content.find(".cco-tr").css("display") != "none"){ 
    3252             draw_email_box(content.find(".cco-tr").find("textarea:first").val() || content.find(".cco-tr").find("input:visible").val(), content.find(".cco-tr").find("textarea:first")); 
    3253             content.find(".cco-tr").find("textarea:first").val(""); 
    3254             content.find(".cco-tr").find("input:visible").val(""); 
    3255             var array = content.find(".cco-tr").find(".box"); 
    3256             $.each(array, function(index, value){ 
    3257                 stringCCoEmail += $(value).find("input").val() + ","; 
    3258             }); 
    3259         } 
    3260     } 
    3261     stringEmail += stringCCoEmail; 
    3262     var stringCCEmail = ""; 
    3263     if(content.find(".cc-tr").css("display") != "none") 
    3264     { 
    3265         draw_email_box(content.find(".cc-tr").find("textarea:first").val() || content.find(".cc-tr").find("input:visible").val(), content.find(".cc-tr").find("textarea:first")); 
    3266         content.find(".cc-tr").find("textarea:first").val(""); 
    3267         content.find(".cc-tr").find("input:visible").val(""); 
    3268         var array = content.find(".cc-tr").find(".box"); 
    3269         $.each(array, function(index, value){ 
    3270             stringCCEmail += $(value).find("input").val() + ","; 
    3271         }); 
    3272     } 
    3273     stringEmail +=      stringCCEmail; 
    3274  
    3275     var mailData = new Object(); 
    3276     mailData.body = Base64.encode(RichTextEditor.getData('body_'+ID)); 
    3277     mailData.folder = folder; 
    3278     mailData.type = RichTextEditor.plain[ID] ? 'plain' : 'html'; 
    3279     mailData.uids_save = uidsSave[ID].toString(); 
    3280     mailData.save_folder = (openTab.imapBox[ID] && openTab.type[ID] < 6) ? openTab.imapBox[ID]: "INBOX" + cyrus_delimiter + draftsfolder; 
    3281     mailData.attachments = listAttachment(ID); 
    3282     mailData.messageNum = currentTab; 
    3283     mailData.input_subject = trim(content.find(".subject").val()); 
    3284     mailData.input_reply_to = stringReply; 
    3285     mailData.input_to = stringToEmail; 
    3286     mailData.input_cco = stringCCoEmail; 
    3287     mailData.input_cc = stringCCEmail; 
    3288     mailData.input_cc = stringCCEmail; 
    3289     mailData.abaID = $(content).find('[name="abaID"]').val(); 
    3290     mailData.input_important_message = $(content).find('input:checkbox:checked[name="input_important_message"]').val(); 
    3291     mailData.input_return_receipt = $(content).find('input:checkbox:checked[name="input_return_receipt"]').val(); 
    3292     mailData.msg_forward_from = $(content).find('[name="msg_forward_from"]').val(); 
    3293     mailData.msg_reply_from = $(content).find('[name="msg_reply_from"]').val(); 
    3294          
    3295         if ($(content).find('select[name="input_from"]').val()) 
    3296                 mailData.input_from = $(content).find('select[name="input_from"]').val(); 
    3297  
    3298  
    3299         if(stringEmail != ""){ 
    3300                 $.ajax({ 
    3301                         url: "controller.php?action=$this.imap_functions.send_mail", 
    3302             data:  mailData, 
    3303             type: 'POST', 
    3304                 success: function(data){ 
    3305                 send_message_return(connector.unserialize(data),ID); 
    3306                         }, 
    3307                         error: function(){ 
    3308                                 write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos..."); 
    3309                                 var interval = setInterval(function(){ 
    3310                                                 send_valided_message(ID,folder,folder_name); 
    3311                                                 clearInterval(interval); 
    3312                                 },15000); 
    3313                                 return; 
    3314                         } 
    3315                 }); 
    3316         }else{ 
    3317                 write_msg(get_lang("message without receiver")); 
    3318                 return; 
    3319         } 
    3320  
    3321  
    3322 } 
    3323  
    3324 function is_valid_email(campo){  
    3325         var invalidEmail = searchEmail(campo); 
    3326         var semicolon = campo.split(";"); 
    3327          
    3328         if((campo.replace(/^\s+|\s+$/g,"")) != ""){ 
    3329                         if(invalidEmail[0] == true){ 
    3330                                 write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 
    3331                                 return false; 
    3332                         }else{ 
    3333                                 if(semicolon.length > 1){ 
    3334                                         var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vígula: "; 
    3335                                         for(var i= 0; i < semicolon.length; i++){ 
    3336                                                 stringError = stringError + semicolon[i]; 
    3337                                                 if(i+1 < semicolon.length) 
    3338                                                         stringError = stringError + " ; "; 
    3339                                         } 
    3340                                         write_msg(stringError); 
    3341                                         return false; 
    3342                                 }else { 
    3343                                         return true; 
    3344                                 } 
    3345                         } 
    3346         } 
    3347         else{ 
    3348                 write_msg(get_lang("Message without receiver")); 
    3349                 return false; 
    3350         }                
    3351 } 
    3352 function change_tr_properties(tr_element, newUid, newSubject){ 
    3353         message_id=tr_element.id; 
    3354         var td_from = document.getElementById('td_from_'+message_id); 
    3355         if (typeof(newSubject) != 'undefined') 
    3356                 td_from.nextSibling.innerHTML = newSubject; 
    3357         tr_element.id = newUid; 
    3358  
    3359         var openNewMessage = function () { 
    3360                 $.ajax({ 
    3361                           url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', 
    3362                                                               msg_number: newUid,  
    3363                                                               msg_folder: current_folder, 
    3364                                                               decoded: true } ), 
    3365                           success: function( data ){ 
    3366                               data = connector.unserialize( data ); 
    3367                                
    3368                               if( data ) 
    3369                                   show_msg( data ); 
    3370                           }, 
    3371                           beforeSend: function( jqXHR, settings ){ 
    3372                                 connector.showProgressBar(); 
    3373                           }, 
    3374                           complete: function( jqXHR, settings ){ 
    3375                                 connector.hideProgressBar(); 
    3376                           } 
    3377  
    3378                 }); 
    3379         }; 
    3380         for (var i=2; i < 10; i++){ 
    3381                 if (typeof(tr_element.childNodes[i].id) != "undefined") 
    3382                         tr_element.childNodes[i].id = tr_element.childNodes[i].id.replace(message_id,newUid); 
    3383                 tr_element.childNodes[i].onclick = openNewMessage; 
    3384         } 
    3385 } 
    3386  
    3387  
    3388 function autoSave( ID ) 
    3389 { 
    3390     var content = $("#content_id_"+border_id); 
    3391     content.find(".save").button('option','disabled',true); 
    3392  
    3393         saveButtonDisabled = $("#content_id_"+ID).find(".save").button('option','disabled'); 
    3394     if(autoSaveControl.status[ID] === false && !saveButtonDisabled) 
    3395         save_msg(ID); 
    3396     refresh(); 
    3397 } 
    3398  
    3399 function save_msg(border_id){ 
    3400  
    3401     //seta o status do auto_save = true 
    3402    if (preferences.auto_save_draft == 1) 
    3403        autoSaveControl.status[border_id] = true; 
    3404    /////////////////////////////////////////// 
    3405     var content = $("#content_id_"+border_id); 
    3406         content.find(".save").button('option','disabled',true); 
    3407  
    3408     var array = content.find(".reply-to-tr").find(".box"); 
    3409     var stringReplyToEmail = ""; 
    3410     $.each(array, function(index, value){ 
    3411         stringReplyToEmail += $(value).find("input").val() + ","; 
    3412     }); 
    3413     content.find('[name="input_reply_to"]').val(stringReplyToEmail); 
    3414  
    3415         var stringEmail = ""; 
    3416         var array = content.find(".to-tr").find(".box"); 
    3417         $.each(array, function(index, value){ 
    3418                 stringEmail += $(value).find("input").val() + ","; 
    3419         }); 
    3420         content.find('[name="input_to"]').val(stringEmail); 
    3421         stringEmail = ""; 
    3422         if ( content.find('[name="input_cco"]').length){ 
    3423                 if(content.find(".cco-tr").css("display") != "none"){ 
    3424                         var array = content.find(".cco-tr").find(".box"); 
    3425                         $.each(array, function(index, value){ 
    3426                                 stringEmail += $(value).find("input").val() + ","; 
    3427                         }); 
    3428                         content.find('[name="input_cco"]').val(stringEmail); 
    3429                 } 
    3430         } 
    3431          
    3432         stringEmail = "";        
    3433         if(content.find(".cc-tr").css("display") != "none") 
    3434         { 
    3435                 var array = content.find(".cc-tr").find(".box"); 
    3436                 $.each(array, function(index, value){ 
    3437                         stringEmail += $(value).find("input").val() + ","; 
    3438                 }); 
    3439                 content.find('[name="input_cc"]').val(stringEmail); 
    3440         } 
    3441          
    3442    var idJavascript = saveBorderError[border_id]; 
    3443     
    3444    if(saveBorderError[border_id] !== false) 
    3445         DataLayer.put('message',DataLayer.merge(DataLayer.form("#form_message_"+border_id), {id: idJavascript })); 
    3446    else 
    3447        idJavascript = DataLayer.put('message',DataLayer.form("#form_message_"+border_id));   
    3448  
    3449    uidsSave[border_id] = []; 
    3450    DataLayer.commit(false,false,function(data){ 
    3451        if(data != null && data['message://'+idJavascript] !== undefined && data['message://'+idJavascript].id !== undefined ) 
    3452        { 
    3453         uidsSave[border_id].push(data['message://'+idJavascript].id); 
    3454         saveBorderError[border_id] = false; 
    3455         write_msg('Mensagem salva com sucesso!'); 
    3456        } 
    3457        else 
    3458        { 
    3459         saveBorderError[border_id] = idJavascript; 
    3460         write_msg('Erro ao salvar sua mensagem! Nova tentativa em alguns segundos.');     
    3461        } 
    3462    }); 
    3463  
    3464 } 
    3465  
    3466 function set_messages_flag_search_local(flag){ 
    3467         // var msgs_flag = this.get_selected_messages_search(); 
    3468         // if(local_messages.prototype.set_messages_flag(msgs_flag, flag, true)){ 
    3469         //      var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    3470         //      var msgs = msgs_flag.split(','); 
    3471         //      for(var i = 0; i < msgs.length; i++){ 
    3472         //              Element("search_local_msg"+id_border+"_check_box_message_"+msgs[i]).checked = false; 
    3473         //      } 
    3474         //      draw_tree_folders(); 
    3475         //      Element('chk_box_select_all_messages_search_local').checked = false; 
    3476         //      refresh(); 
    3477         //      write_msg(get_lang('The messages were marked with success!'));           
    3478         // }else{ 
    3479         //      write_msg(get_lang('Error marking messages.')); 
    3480         // } 
    3481 } 
    3482  
    3483 function set_messages_flag_search(flag){ 
    3484          
    3485         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    3486         var msgs_flag = this.get_selected_messages_search(); 
    3487         if (!msgs_flag){ 
    3488                 write_msg(get_lang('No selected message.')); 
    3489                 return; 
    3490         } 
    3491         var selected_param = ""; 
    3492         msgs_to_flag = msgs_flag.split(","); 
    3493         search = true; 
    3494         for (i = 0; i < msgs_to_flag.length; i++){ 
    3495                 var tr = Element(msgs_to_flag[i]+'_s'+id_border); 
    3496                 var msg_to_flag = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    3497                 selected_param += ','+msg_to_flag+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    3498         } 
    3499          
    3500         var handler_set_messages_flag = function(data){ 
    3501                 var errors = false; 
    3502                 var notErrors = false; 
    3503                 for (var i = 0; i < data.length; i++){ 
    3504                         var notArray = true; 
    3505                         if(data[i].msgs_to_set != ''){ 
    3506                                 var msgs = []; 
    3507                                 if(data[i].msgs_to_set.indexOf(',') > 0){ 
    3508                                         msgs = data[i].msgs_to_set.split(',') 
    3509                                         notArray = false; 
    3510                                 }else 
    3511                                         msgs[0] = data[i].msgs_to_set; 
    3512                                          
    3513                                 for (var j = 0; j < msgs.length; j++){ 
    3514                                         switch(data[i].flag){ 
    3515                                                 case "unseen": 
    3516                                                         set_msg_as_unread(msgs[j]+'_s'+id_border, true); 
    3517                                                         Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    3518                                                         break; 
    3519                                                 case "seen": 
    3520                                                         set_msg_as_read(msgs[j]+'_s'+id_border, true); 
    3521                                                         Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    3522                                                         break; 
    3523                                                 case "flagged": 
    3524                                                         set_msg_as_flagged(msgs[j]+'_s'+id_border, true); 
    3525                                                         document.getElementById("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    3526                                                         break; 
    3527                                                 case "unflagged": 
    3528                                                         set_msg_as_unflagged(msgs[j]+'_s'+id_border, true); 
    3529                                                         Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    3530                                                         break; 
    3531                                         } 
    3532                                         notErrors = true; 
    3533                                 } 
    3534                         }else{ 
    3535                                 errors = true; 
    3536                         } 
    3537                 } 
    3538                  
    3539                 draw_tree_folders(); 
    3540                 Element('chk_box_select_all_messages_search').checked = false; 
    3541                 refresh(); 
    3542                  
    3543                 if(errors && notErrors) 
    3544                         write_msg(get_lang('Some messages were not marked with success!')); 
    3545                 else if(notErrors) 
    3546                         write_msg(get_lang('The messages were marked with success!')); 
    3547                 else 
    3548                         write_msg(get_lang('Error marking messages.')); 
    3549         } 
    3550         cExecute ("$this.imap_functions.set_messages_flag_from_search&msg_to_flag="+selected_param+"&flag="+flag, handler_set_messages_flag); 
    3551 } 
    3552  
    3553 // Get checked messages 
    3554 function set_messages_flag(flag, msgs_to_set){   
    3555         if(currentTab != 0 && currentTab.indexOf("search_local")  >= 0){ 
    3556                 return set_messages_flag_search_local(flag); 
    3557         } 
    3558         if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    3559                 return set_messages_flag_search(flag); 
    3560         } 
    3561          
    3562         var handler_set_messages_flag = function (data){ 
    3563                 if(!verify_session(data)) 
    3564                         return; 
    3565                 var msgs_to_set = data.msgs_to_set.split(","); 
    3566  
    3567  
    3568         if(data.disposition_notification_to){ 
    3569             $.Zebra_Dialog(data.disposition_notification_to.length == 1 ? get_lang('One of his messages can not be marked as read, because it contains a read confirmation.') : data.disposition_notification_to.length + get_lang(' of its messages could not be marked as read, because it contains a read confirmation.'), { 
    3570                 'type':     'warning', 
    3571                 'overlay_opacity': '0.5', 
    3572                 'buttons':  ['Fechar'] 
    3573             }); 
    3574         } 
    3575  
    3576                 if(!data.status) { 
    3577                         write_msg(data.msg); 
    3578                         Element('chk_box_select_all_messages').checked = false; 
    3579                         for (var i = 0; i < msgs_to_set.length; i++) { 
    3580                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    3581                                 remove_className(Element(msgs_to_set[i]), 'selected_msg'); 
    3582                         } 
    3583                         if(!data.msgs_unflageds) 
    3584                                 return; 
    3585                                  
    3586                         else 
    3587                                 if(data.msgs_not_to_set != "") 
    3588                                         write_msg(get_lang("Error processing some messages.")); 
    3589                                          
    3590                                 msgs_to_set = data.msgs_unflageds.split(","); 
    3591                 } 
    3592  
    3593                 for (var i=0; i<msgs_to_set.length; i++){ 
    3594                         if (preferences.use_cache == 'True') 
    3595                         { 
    3596                                 if (current_folder == '') 
    3597                                         current_folder = 'INBOX'; 
    3598                                 var setFlag = function(msgObj) { 
    3599                                         switch(data.flag){ 
    3600                                                 case "unseen": 
    3601                                                         msgObj.Unseen = "U"; 
    3602                                                         break; 
    3603                                                 case "seen": 
    3604                                                         msgObj.Unseen = ""; 
    3605                                                         break; 
    3606                                                 case "flagged": 
    3607                                                         msgObj.Flagged = "F"; 
    3608                                                         break; 
    3609                                                 case "unflagged": 
    3610                                                         msgObj.Flagged = ""; 
    3611                                                         break; 
    3612                                         } 
    3613                                 } 
    3614                         } 
    3615                         if(Element("check_box_message_" + msgs_to_set[i])){ 
    3616                                 switch(data.flag){ 
    3617                                         case "unseen": 
    3618                                                     set_msg_as_unread(msgs_to_set[i]); 
    3619                                                 if(results_search_messages != "")  
    3620                                                         set_msg_as_unread(results_search_messages, true); 
    3621                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    3622                                                 break; 
    3623                                         case "seen": 
    3624                                                 set_msg_as_read(msgs_to_set[i], false); 
    3625                                                 if(results_search_messages != "")  
    3626                                                         set_msg_as_read(results_search_messages, false, true); 
    3627                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    3628                                                  
    3629                                                 // remove a flag $FilteredMessage da mensagem ao ser marcada como lida   
    3630                                                 $.each(fromRules, function(index, value) { 
    3631                                                         if(value == folder){ 
    3632                                                                 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_to_set, function(){});  
    3633                                                                 return false; 
    3634                                                         } 
    3635                                                 });      
    3636                                                  
    3637                                                 break; 
    3638                                         case "flagged": 
    3639                                                     set_msg_as_flagged(msgs_to_set[i]); 
    3640                                                 if(results_search_messages != "")  
    3641                                                         set_msg_as_flagged(results_search_messages, true); 
    3642                                                 document.getElementById("check_box_message_" + msgs_to_set[i]).checked = false; 
    3643                                                 break; 
    3644                                         case "unflagged": 
    3645                                                     set_msg_as_unflagged(msgs_to_set[i]); 
    3646                                                 if(results_search_messages != "")  
    3647                                 set_msg_as_unflagged(results_search_messages, true); 
    3648                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    3649                                                 break; 
    3650                                 } 
    3651                         } 
    3652                 } 
    3653                 Element('chk_box_select_all_messages').checked = false; 
    3654         } 
    3655  
    3656         var folder = get_current_folder(); 
    3657         if (msgs_to_set == 'get_selected_messages') 
    3658                 var msgs_to_set = this.get_selected_messages(); 
    3659         else 
    3660                 folder = Element("input_folder_"+msgs_to_set+"_r").value; 
    3661          
    3662         if (msgs_to_set) 
    3663                 $.ajax({ 
    3664                           url: 'controller.php?' + $.param( {action: '$this.imap_functions.set_messages_flag', 
    3665                                                               folder: folder, 
    3666                                                               msgs_to_set: msgs_to_set, 
    3667                                                               flag: flag,  
    3668                                                               decoded: true } ), 
    3669                           success: function( data ){ 
    3670                               data = connector.unserialize( data ); 
    3671  
    3672                               selectAllFolderMsgs(); 
    3673                               $('.select-link').unbind('click'); 
    3674  
    3675                               if( data ) 
    3676                                   handler_set_messages_flag( data ); 
    3677                           }, 
    3678                           beforeSend: function( jqXHR, settings ){ 
    3679                                 connector.showProgressBar(); 
    3680                           }, 
    3681                           complete: function( jqXHR, settings ){ 
    3682                                 connector.hideProgressBar(); 
    3683                           } 
    3684  
    3685                 }); 
    3686         else 
    3687                 write_msg(get_lang('No selected message.')); 
    3688 } 
    3689  
    3690 // By message number 
    3691 function set_message_flag(msg_number, flag, func_after_flag_change){ 
    3692         var msg_number_folder = Element("new_input_folder_"+msg_number+"_r"); //Mensagens respondidas/encaminhadas 
    3693         if(!msg_number_folder) 
    3694                 var msg_number_folder = Element("input_folder_"+msg_number+"_r"); //Mensagens abertas 
    3695          
    3696         var handler_set_messages_flag = function (data){ 
    3697                 if(!verify_session(data)) 
    3698                         return; 
    3699                 if(!data.status) { 
    3700                         write_msg(get_lang("this message cant be marked as normal")); 
    3701                         return; 
    3702                 } 
    3703                 else if(func_after_flag_change) { 
    3704                         func_after_flag_change(true); 
    3705                 } 
    3706                 if (data.status && Element("td_message_answered_"+msg_number)) { 
    3707                          
    3708                         switch(flag){ 
    3709                                 case "unseen": 
    3710                                         set_msg_as_unread(msg_number); 
    3711                                         break; 
    3712                                 case "seen": 
    3713                                         set_msg_as_read(msg_number); 
    3714                                         break; 
    3715                                 case "flagged": 
    3716                                         set_msg_as_flagged(msg_number); 
    3717                                         break; 
    3718                                 case "unflagged": 
    3719                                         set_msg_as_unflagged(msg_number); 
    3720                                         break; 
    3721                                 case "answered": 
    3722                                         Element("td_message_answered_"+msg_number).innerHTML = '<img src=templates/'+template+'/images/answered.png title=Respondida>'; 
    3723                                         break; 
    3724                                 case "forwarded": 
    3725                                         Element("td_message_answered_"+msg_number).innerHTML = '<img src=templates/'+template+'/images/forwarded.png title=Encaminhada>'; 
    3726                                         break; 
    3727                         }                                
    3728                 } else { 
    3729                         refresh(); 
    3730                 } 
    3731         } 
    3732         $.ajax({ 
    3733                   url: 'controller.php?' + $.param( {action: '$this.imap_functions.set_messages_flag', 
    3734                                                       folder: ( msg_number_folder ?  msg_number_folder.value : get_current_folder() ), 
    3735                                                       msgs_to_set: msg_number, 
    3736                                                       flag: flag, 
    3737                                                       decoded: true } ), 
    3738                   success: function( data ){ 
    3739                       data = connector.unserialize( data ); 
    3740                        
    3741                       if( data ) 
    3742                           handler_set_messages_flag( data ); 
    3743                   }, 
    3744                   beforeSend: function( jqXHR, settings ){ 
    3745                                 connector.showProgressBar(); 
    3746                   }, 
    3747                   complete: function( jqXHR, settings ){ 
    3748                                 connector.hideProgressBar(); 
    3749                    } 
    3750  
    3751         }); 
    3752 } 
    3753  
    3754 function print_search_msg(){             
    3755         var folder = "<h2>&nbsp;Resultado da Pesquisa&nbsp;<font color=\"#505050\" face=\"Verdana\" size=\"1\"></h2>"; 
    3756         msgs_number = get_selected_messages_search(); 
    3757         var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 
    3758         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    3759          
    3760         if(msgs_number){ 
    3761                 msgs_number = msgs_number.split(","); 
    3762                 var tbody = ""; 
    3763                 for(var i = 0; i < msgs_number.length; i++){ 
    3764                         tbody += "<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>"; 
    3765                 } 
    3766         }else{ 
    3767                 msgs_number = get_all_messages_search(); 
    3768                 msgs_number = msgs_number.split(","); 
    3769                 var tbody = ""; 
    3770                 for(var i = 0; i < msgs_number.length; i++){ 
    3771                         tbody += "<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>"; 
    3772                 } 
    3773         } 
    3774          
    3775         var print_width = screen.width - 200;  
    3776         var x = ((screen.width - print_width) / 2);  
    3777         var y = ((screen.height - 400) / 2) - 35;  
    3778         var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);  
    3779         seekDot = (is_ie ? /width=24/gi : /width="24"/gi);  
    3780  
    3781         var thead = "<tr class=\"message_header\">    <td width=\"3%\"></td><td width=\"2%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"2%\"></td><td id=\"message_header_FOLDER_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">Pasta</td><td id=\"message_header_SORTFROM_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">De</td><td id=\"message_header_SORTSUBJECT_0\" class=\"th_resizable\" align=\"left\" width=\"*\">Assunto</td><td id=\"message_header_SORTARRIVAL_0\" class=\"th_resizable\" align=\"center\" width=\"11%\"><b>Data</b><img src=\"templates/default/images/arrow_descendant.gif\"></td><td id=\"message_header_SORTSIZE_0\" class=\"th_resizable\" align=\"left\" width=\"11%\">Tamanho</td></tr>"; 
    3782         tbody = tbody.replace(seekDot, "style='display:none'");  
    3783         seekDot = (is_ie ? /width=16/gi : /width="16"/gi);  
    3784  
    3785         tbody = tbody.replace(seekDot, "style='display:none'");  
    3786         seekDot = (is_ie ? /width=12/gi : /width="12"/gi);  
    3787  
    3788         tbody = tbody.replace(seekDot, "style='display:none'");  
    3789         while (1){  
    3790                 try{  
    3791                         window_print.document.open();  
    3792                     var html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>'  
    3793                     + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>'  
    3794                     + cabecalho + '</h4><hr>'  
    3795                     + '<h2>'+folder+'</h2><hr/><blockquote><font size="2">'  
    3796                     + '<table width="100%" cellpadding="0" cellspacing="0">'  
    3797                     + '<thead>' + thead + '</thead><tbody>' + tbody + '</tbody>'  
    3798                     + '</table></font></blockquote></body></html>';  
    3799                     window_print.document.write(html);  
    3800                     window_print.document.close();  
    3801                     break;  
    3802                 }  
    3803                 catch(e){  
    3804                         //alert(e.message);  
    3805                 }  
    3806         }  
    3807         window_print.document.close();  
    3808         window_print.print();  
    3809 } 
    3810  
    3811  
    3812 /*PERMITE A IMPRESSÃO DE UMA LISTA DE MENSAGENS E SEU CONTEÚDO*/ 
    3813 function print_messages_bodies(){ 
    3814         var messages = {}; 
    3815         messages[get_current_folder()] = get_selected_messages().split(','); 
    3816  
    3817         var print_bodies = function (data){ 
    3818                 var print_width = screen.width - 200; 
    3819                 var x = ((screen.width - print_width) / 2); 
    3820                 var y = ((screen.height - 400) / 2) - 35; 
    3821                 var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y); 
    3822                 if(window_print == null) { 
    3823                         alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname)); 
    3824                         return; 
    3825                 } 
    3826                 var header = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
    3827                 + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>'; 
    3828                 window_print.document.write(header); 
    3829                 var printData ='<body style="overflow:auto">' + cabecalho + '</h4><hr>'; 
    3830                 window_print.document.write(printData); 
    3831                 var newRow = function(label,data){ 
    3832                         return "<tr><td width=7%><font size='2'><b>"+label+" </b></font></td><td><font size='2'>"+data+"</font></td></tr>"; 
    3833                 } 
    3834                 /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSÃO*/ 
    3835                 $.each(data,function(index,message){ 
    3836                         var html = "<table><tbody>"; 
    3837                         if(message.sender) 
    3838                                 for(var i=0; i<message.sender.length; i++){      
    3839                                         html += newRow(get_lang('Sent by')+":",message.sender[i]); 
    3840                                 } 
    3841                         if(message.from) 
    3842                                 for(var i=0; i<message.from.length; i++){        
    3843                                         html += newRow(get_lang('From')+":",message.from[i]); 
    3844                                 } 
    3845                         if(message.toaddress2) { 
    3846                                 html += newRow(get_lang('To')+":",message.toaddress2); 
    3847                         } 
    3848                         if (message.cc) { 
    3849                                 html += newRow(get_lang('Cc')+":",message.cc); 
    3850                         } 
    3851                         if (message.bcc) { 
    3852                                 html += newRow(get_lang('Cco')+":",message.bcc); 
    3853                         } 
    3854                         if(message.smalldate) 
    3855                                 html += newRow(get_lang('Date')+":",message.smalldate); 
    3856                         /*DATA NAS MESAGENS LOCAIS*/ 
    3857                         else if(message.udate){ 
    3858                                 var norm = function (arg) {return (arg < 10 ? '0'+arg : arg);}; 
    3859                                 var weekDays = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 
    3860                             var today = new Date(); 
    3861                                 today.setHours(23); 
    3862                                 today.setMinutes(59); 
    3863                 today.setSeconds(59); 
    3864                 today.setMilliseconds(999); 
    3865                     udate_local = message.udate*1000 + today.getTimezoneOffset()*60*1000; 
    3866                     date_msg = new Date(udate_local);                            
    3867                                 if (preferences.show_date_numerical == 0 || typeof(preferences.show_date_numerical) == 'undefined') {    
    3868                                         if (today.getTime() - date_msg.getTime() < 86400000) 
    3869                                                 html += newRow(get_lang('Date')+":",norm(date_msg.getHours()) + ':' + norm(date_msg.getMinutes())); 
    3870                                         else 
    3871                                                 if (today.getTime() - date_msg.getTime() < 172800000) 
    3872                                                         newRow(get_lang('Date')+":",get_lang('Yesterday')); 
    3873                                                 else if (today.getTime() - date_msg.getTime() < 259200000) 
    3874                                                         html += newRow(get_lang('Date')+":",get_lang(weekDays[date_msg.getDay()])); 
    3875                                                 else 
    3876                                                         html += newRow(get_lang('Date')+":",norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear());                                         
    3877                                 }else 
    3878                                         html += newRow(get_lang('Date')+":",norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear()); 
    3879                         }        
    3880                         html += newRow(get_lang('Subject')+":",message.subject);                 
    3881                         /*LISTA DE ANEXOS*/ 
    3882                         if (message.attachments && message.attachments.length) { 
    3883                         var img = '<img style="margin-bottom : -5px; cursor : pointer;" src="templates/'+template+'/images/new.png">'; 
    3884                         var atts = ""; 
    3885                         $.each(message.attachments,function(index,attach){ 
    3886                                 atts += " | " + attach.name + "("+ formatBytes(attach.fsize) +") " + img + " | "; 
    3887                         }); 
    3888                         html += newRow(get_lang('Attachments: '),atts);        
    3889                     } 
    3890                     /*ANEXOS LOCAIS*/ 
    3891                     else if (message.attachment && message.attachment.number_attachments > 0) { 
    3892                         var img = '<img style="margin-bottom : -5px; cursor : pointer;" src="templates/'+template+'/images/new.png">'; 
    3893                         var atts = ""; 
    3894                         $.each(message.attachment.names.split(','),function(index,attach){ 
    3895                                 atts += " | " + attach + img + " |"; 
    3896                         }); 
    3897                         html += newRow(get_lang('Attachments: '),atts);        
    3898                     } 
    3899                         html += '</tbody></table>'; 
    3900                         if (message.body){ 
    3901                                 html += "<hr>" + message.body; 
    3902                     } 
    3903                     else if (message._return){ 
    3904                         html += "<hr>" + message._return; 
    3905                     } 
    3906                     html += "<hr>"; 
    3907                         window_print.document.write(html); 
    3908                 }); 
    3909                 window_print.document.close(); 
    3910                 window_print.print(); 
    3911         } 
    3912                         /*MENSAGENS LOCAIS*/ 
    3913         if ( proxy_mensagens.is_local_folder(get_current_folder()) ){ 
    3914                 var msgs = Array(); 
    3915                 var _msg = {}; 
    3916                 $.each(get_selected_messages().split(','),function(index,value){ 
    3917                         _msg.header = expresso_mail_archive.getMessageHeaders(value);  
    3918                         _msg.body = expresso_mail_archive.getMessageBodies([value]); 
    3919                         msgs.push($.extend({},_msg.header,_msg.body[0])); 
    3920                 }); 
    3921                 print_bodies(msgs); 
    3922         } 
    3923         else{ 
    3924                 $.ajax({                         
    3925                                 url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessages", 
    3926                                         details: "all", 
    3927                         messages : messages, 
    3928                                         }), 
    3929                                 success: function(data){ 
    3930                                         data = connector.unserialize(data); 
    3931                                         if(data){ 
    3932                           print_bodies(data[get_current_folder()]); 
    3933                                         } 
    3934                                 }, 
    3935                                 beforeSend: function( jqXHR, settings ){ 
    3936                                         connector.showProgressBar(); 
    3937                                 }, 
    3938                                 complete: function( jqXHR, settings ){ 
    3939                                         connector.hideProgressBar(); 
    3940                                 } 
    3941                         }); 
    3942         }        
    3943 } 
    3944  
    3945 function newTbody(messages){ 
    3946         var tbody = $("<tbody>"); 
    3947         $.each(messages,function(index,msg){ 
    3948                 var newTr = make_tr_message(msg,get_current_folder()); 
    3949                 if (msg.attachments && msg.attachments.length){ 
    3950                         $(newTr).find('td').eq(1).css({'background-image':'url(templates/'+template+'/images/mail-gifs.gif)','background-position': '0 -242px'}); 
    3951                 }                
    3952                 tbody.append(newTr); 
    3953         }); 
    3954         return tbody.html(); 
    3955 } 
    3956  
    3957 function print_messages_list(){ 
    3958         var print_list = function(tbody,folder){ 
    3959                 var print_width = screen.width - 200; 
    3960                 var x = ((screen.width - print_width) / 2); 
    3961                 var y = ((screen.height - 400) / 2) - 35; 
    3962                 var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y); 
    3963                 seekDot = (is_ie ? /width=24/gi : /width="24"/gi); 
    3964                 //thead = thead.replace(seekDot, "style='display:none'");  
    3965                 var thead = "<tr class=\"message_header\"> <td width=\"3%\"></td><td width=\"2%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"2%\"></td><td width=\"2%\"></td><td width=\"2%\"></td><td id=\"message_header_SORTFROM_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">De</td><td id=\"message_header_SORTSUBJECT_0\" class=\"th_resizable\" align=\"left\" width=\"*\">Assunto</td><td id=\"message_header_SORTARRIVAL_0\" class=\"th_resizable\" align=\"center\" width=\"11%\"><b>Data</b><img src=\"templates/default/images/arrow_descendant.gif\"></td><td id=\"message_header_SORTSIZE_0\" class=\"th_resizable\" align=\"left\" width=\"11%\">Tamanho</td></tr>"; 
    3966                 tbody = tbody.replace(seekDot, "style='display:none'"); 
    3967                 seekDot = (is_ie ? /width=16/gi : /width="16"/gi); 
    3968                 //thead = thead.replace(seekDot, "style='display:none'");  
    3969                 tbody = tbody.replace(seekDot, "style='display:none'"); 
    3970                 seekDot = (is_ie ? /width=12/gi : /width="12"/gi); 
    3971                 //thead = thead.replace(seekDot, "style='display:none'");  
    3972                 tbody = tbody.replace(seekDot, "style='display:none'"); 
    3973                 while (1){ 
    3974                         try{ 
    3975                                 window_print.document.open(); 
    3976                                 var html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
    3977                                 + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
    3978                             + cabecalho + '</h4><hr>'  
    3979                                 + '<h2>'+$('#border_id_0').html()+'</h2><hr/><blockquote><font size="2">' 
    3980                                 + '<table width="100%" cellpadding="0" cellspacing="0">' 
    3981                                 + '<thead>' + thead + '</thead><tbody>' + tbody + '</tbody>' 
    3982                                 + '</table></font></blockquote></body></html>'; 
    3983                                 window_print.document.write(html); 
    3984                                 window_print.document.close(); 
    3985                                 break; 
    3986                         } 
    3987                         catch(e){ 
    3988                                 //alert(e.message); 
    3989                         } 
    3990                 } 
    3991                 window_print.document.close(); 
    3992                 window_print.print(); 
    3993         } 
    3994         msgs_number = get_selected_messages(); 
    3995         if(msgs_number == false){ 
    3996                 var tbody = Element('divScrollMain_0').firstChild.firstChild.innerHTML; 
    3997                 print_list(tbody); 
    3998         }else{ 
    3999                 var messages = {}; 
    4000                 messages[get_current_folder()] = msgs_number.split(','); 
    4001                 /*MENSAGENS LOCAIS*/ 
    4002                 if ( proxy_mensagens.is_local_folder(get_current_folder()) ){ 
    4003                         var msgs = Array(); 
    4004                         $.each(msgs_number.split(','),function(index,value){ 
    4005                                 msgs.push(expresso_mail_archive.getMessageHeaders(value)); 
    4006                         }); 
    4007                         print_list(newTbody(msgs)); 
    4008                 } 
    4009                 else{ 
    4010                         $.ajax({                         
    4011                                 url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessages", 
    4012                             details : "all", 
    4013                             messages : messages, 
    4014                                         }), 
    4015                                 success: function(data){ 
    4016                                         data = connector.unserialize(data); 
    4017                                         if(data){ 
    4018                                                 data = data[get_current_folder()]; 
    4019                                 print_list(newTbody(data)); 
    4020                                         } 
    4021                                 }, 
    4022                                 beforeSend: function( jqXHR, settings ){ 
    4023                                         connector.showProgressBar(); 
    4024                                 }, 
    4025                                 complete: function( jqXHR, settings ){ 
    4026                                         connector.hideProgressBar(); 
    4027                                 } 
    4028                         });      
    4029                 }        
    4030         } 
    4031 } 
    4032  
    4033 function print_all(){ 
    4034     if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    4035         alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    4036         return true; 
    4037     } 
    4038         if (openTab.type[currentTab] == 2) 
    4039                 return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab); 
    4040  
    4041         if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    4042                 return print_search_msg(); 
    4043         } 
    4044  
    4045         if (get_selected_messages() == false){ 
    4046                 return print_messages_list(); 
    4047         } 
    4048     var msg = 'Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.'; 
    4049     $.Zebra_Dialog(msg, { 
    4050             'type':     'question', 
    4051             'buttons': ['Sim','Não'], 
    4052             'overlay_opacity': '0.5', 
    4053             'onClose':  function(caption) { 
    4054                 if(caption == 'Sim'){ 
    4055                         return print_messages_bodies(); 
    4056                 } 
    4057                 else{ 
    4058                         return print_messages_list();    
    4059                 } 
    4060             } 
    4061         }); 
    4062 } 
    4063  
    4064 function print_msg(msg_folder, msg_number, border_ID){ 
    4065         var div_toaddress_full = Element("div_toaddress_full_"+border_ID); 
    4066         var div_ccaddress_full = Element("div_ccaddress_full_"+border_ID); 
    4067         var div_ccoaddress_full = Element("div_ccoaddress_full_"+border_ID); 
    4068         var printListTO = (div_toaddress_full && div_toaddress_full.style.display != 'none') || toaddress_array[border_ID].length == 1 ? true : false;   
    4069         var printListCC = (div_ccaddress_full && div_ccaddress_full.style.display != 'none') || !div_ccaddress_full ? true : false; 
    4070         var printListCCO = (div_ccoaddress_full && div_ccoaddress_full.style.display != 'none') || !div_ccoaddress_full ? true : false;  
    4071         var sender              = Element('sender_values_'+border_ID) ? Element('sender_values_'+border_ID).value : null; 
    4072         var from                = Element('from_values_'+border_ID) ? Element('from_values_'+border_ID).value : null; 
    4073         var to                  = Element('to_values_'+border_ID) ? Element('to_values_'+border_ID).value :null; 
    4074         var cco                 = Element('cco_values_'+border_ID) ? Element('cco_values_'+border_ID).value : null; 
    4075         var cc                  = Element('cc_values_'+border_ID) ? Element('cc_values_'+border_ID).value : null;                
    4076         var date                =  Element('date_'+border_ID);   
    4077         var subject             = Element('subject_'+border_ID); 
    4078         var attachments = Element('attachments_'+border_ID); 
    4079         var body                = Element('body_'+border_ID); 
    4080  
    4081          
    4082         var att = ''; 
    4083          
    4084         var countAtt = 0;  
    4085                           
    4086         if(attachments !== null)  
    4087         {  
    4088                 countAtt = attachments.getElementsByTagName('a').length;  
    4089                 if(countAtt === 1)   
    4090                         att =  attachments.getElementsByTagName('a')[0].innerHTML;  
    4091                 else if(countAtt > 1)  
    4092                         for (var i = 1; i <attachments.getElementsByTagName('a').length; i++)  
    4093                                 att += " | " + attachments.getElementsByTagName('a')[i].innerHTML;  
    4094         }  
    4095                  
    4096         var body = Element('body_'+border_ID);  
    4097          
    4098         var print_width = screen.width - 200; 
    4099         var x = ((screen.width - print_width) / 2); 
    4100         var y = ((screen.height - 400) / 2) - 35; 
    4101         var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y); 
    4102         if(window_print == null) { 
    4103                 alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname)); 
    4104                 return; 
    4105         } 
    4106  
    4107         //needed to get the names of the attachments... only. 
    4108         if(attachments != null) 
    4109         { 
    4110                 var a = attachments.childNodes; 
    4111                 var attachs = ""; 
    4112                 var show_attachs = ""; 
    4113                 var ii = a.length >2?2:1; 
    4114                 for(i=ii;i<a.length;i++) 
    4115                 { 
    4116                         if(a[i].tagName && a[i].tagName == "A") 
    4117                         { 
    4118                                 attachs += a[i].innerHTML; 
    4119                         } 
    4120                 } 
    4121                 show_attachs = "<tr><td width=7%><font size='2'>" + get_lang('Attachments: ')+ " </font></td><td><font size='2'>"+attachs+"</font></td></tr>"; 
    4122         } else{ 
    4123                 show_attachs = ""; 
    4124         }        
    4125         var current_path = window.location.href.substr(0,window.location.href.lastIndexOf("/")); 
    4126         var head = '<head><title></title><link href="'+current_path+'/templates/default/main.css" type="text/css" rel="stylesheet"></head>'; 
    4127         window_print.document.write(head); 
    4128  
    4129         while (1){ 
    4130                 try{ 
    4131                         var html ='<body style="overflow:auto">'; 
    4132                         html += cabecalho + '</h4><hr>'; 
    4133                         html += '<table><tbody>'; 
    4134                         if(sender) 
    4135                                 html += "<tr><td width=7% noWrap><font size='2'>" + get_lang('Sent by') + ": </font></td><td><font size='2'>"+sender+"</font></td></tr>"; 
    4136                         if(from) 
    4137                                 html += "<tr><td width=7%><font size='2'>" + get_lang('From') + ": </font></td><td><font size='2'>"+from+"</font></td></tr>"; 
    4138                         if(to) { 
    4139                                 if(!printListTO) 
    4140                                         to = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    4141                                 html += "<tr><td width=7%><font size='2'>" + get_lang('To') + ": </font></td><td><font size='2'>"+to+"</font></td></tr>"; 
    4142                         } 
    4143                         if (cc) { 
    4144                                 if(!printListCC) 
    4145                                         cc = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    4146                                 html += "<tr><td width=7%><font size='2'>" + get_lang('Cc') + ": </font></td><td><font size='2'>"+cc+"</font></td></tr>"; 
    4147                         } 
    4148                         if (cco) { 
    4149                                 if(!printListCCO) 
    4150                                         cco = 'Os destinatários não estão sendo exibidos para esta impressão'; 
    4151                                 html += "<tr><td width=7%><font size='2'>" + get_lang('Cco') + ": </font></td><td><font size='2'>"+cco+"</font></td></tr>"; 
    4152                         } 
    4153                         if(date) 
    4154                                 html += "<tr><td width=7%><font size='2'>" + get_lang('Date') + ": </font></td><td><font size='2'>"+date.innerHTML+"</font></td></tr>"; 
    4155                          
    4156                         html += "<tr><td width=7%><font size='2'>" + get_lang('Subject')+ ": </font></td><td><font size='2'>"+subject.innerHTML+"</font></td></tr>"; 
    4157                         //html += show_attachs; //to show the names of the attachments 
    4158                         if (countAtt > 0) {  
    4159                     html += "<tr><td width=7%><font size='2'>" + get_lang('Attachments: ') + "</font></td><td><font size='2'>"+att+"</font></td></tr>";        
    4160                 } 
    4161                         html += "</tbody></table><hr>"; 
    4162                         window_print.document.write(html + body.innerHTML); 
    4163  
    4164                                 var tab_tags = window_print.document.getElementsByTagName("IMG"); 
    4165                         var link = location.href.replace(/\/expressoMail1_2\/(.*)/, ""); 
    4166                                 for(var i = 0; i < tab_tags.length;i++){ 
    4167                                 var _img = tab_tags[i].cloneNode(true); 
    4168                                 if(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=') > -1) 
    4169                                     _img.src = link + '/expressoMail1_2/'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=')); 
    4170  
    4171                                         tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]); 
    4172                                 } 
    4173                          
    4174                         break; 
    4175                 } 
    4176                 catch(e){ 
    4177                         //alert(e.message); 
    4178                 } 
    4179         } 
    4180         window_print.document.close(); 
    4181         window_print.print(); 
    4182 } 
    4183  
    4184 function empty_trash_imap(shared, button, type){ 
    4185         if(shared){ 
    4186                 var folder_part = $(button).parents("li:first").attr("id").split(cyrus_delimiter); 
    4187                 var folder = folder_part[0]+cyrus_delimiter+folder_part[1]; 
    4188         } 
    4189  
    4190         var handler_empty_trash = function(data){ 
    4191                 Element('chk_box_select_all_messages').checked = false; 
    4192                 if(!verify_session(data)) 
    4193                         return; 
    4194                 //tree_folders.getNodeById(mount_url_folder(["INBOX",special_folders["Trash"]])).alter({caption: get_lang("Trash")}); 
    4195                 //tree_folders.getNodeById(mount_url_folder(["INBOX",special_folders["Trash"]]))._refresh(); 
    4196                 update_quota(get_current_folder()); 
    4197                 draw_new_tree_folder(); 
    4198                 draw_tree_labels(); 
    4199                 if (data){ 
    4200                         if(typeof(data) == "object"){ 
    4201                                 if(data[1] == "Permission denied"){ 
    4202                                         cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    4203                                         return write_msg(get_lang("Permission denied")); 
    4204                                 } 
    4205                         } 
    4206                         write_msg(get_lang('Your Trash folder was empty.')); 
    4207                         if (get_current_folder() == mount_url_folder(["INBOX",special_folders["Trash"]])){ 
    4208                                 draw_paging(0); 
    4209                                 remove_rows(document.getElementById("table_box"));                               
    4210                                 Element('tot_m').innerHTML = 0; 
    4211                                 Element('new_m').innerHTML = 0; 
    4212                         } 
    4213                 } 
    4214                 else 
    4215                         write_msg(get_lang('ERROR emptying your Trash folder.')); 
    4216         } 
    4217          
    4218         $.Zebra_Dialog(get_lang('Do you really want to empty your trash folder?'), { 
    4219                 'type':     'question', 
    4220                 'title':    get_lang('Empty Trash'), 
    4221                 'buttons':  [get_lang("Yes"), get_lang("No")], 
    4222                 'overlay_opacity' : 0.5, 
    4223                 'onClose':  function(caption) { 
    4224  
    4225                         if(caption == get_lang("Yes")){ 
    4226                 if(type.id == "local_messages_trash"){ 
    4227                     expresso_mail_archive.deleteAllMessages(type.id); 
    4228                     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    4229                 } else { 
    4230                     cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultTrashFolder"+(shared ? "&shared="+folder : ""), handler_empty_trash); 
    4231                 }  
    4232                         } 
    4233                 } 
    4234         }); 
    4235 } 
    4236  
    4237 function empty_spam_imap(shared, button, type){ 
    4238         if(shared){ 
    4239                 var folder_part = $(button).parents("li:first").attr("id").split(cyrus_delimiter); 
    4240                 var folder = folder_part[0]+cyrus_delimiter+folder_part[1]; 
    4241         } 
    4242         var handler_empty_spam = function(data){ 
    4243                 Element('chk_box_select_all_messages').checked = false; 
    4244                 if(!verify_session(data)) 
    4245                         return; 
    4246                 if (get_current_folder() == mount_url_folder(["INBOX",special_folders["Spam"]])){ 
    4247                         draw_paging(0); 
    4248                         remove_rows(document.getElementById("table_box")); 
    4249                 } 
    4250                 //tree_folders.getNodeById(mount_url_folder(["INBOX",special_folders["Spam"]])).alter({caption: get_lang("Spam")}); 
    4251                 //tree_folders.getNodeById(mount_url_folder(["INBOX",special_folders["Spam"]]))._refresh(); 
    4252                 draw_new_tree_folder(); 
    4253                 draw_tree_labels(); 
    4254                 update_quota(get_current_folder()); 
    4255                 if (data){ 
    4256                         if(typeof(data) == "object"){ 
    4257                                 if(data[1] == "Permission denied"){ 
    4258                                         cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    4259                                         return write_msg(get_lang("Permission denied")); 
    4260                                 }else{ 
    4261                                         write_msg(get_lang('Your Spam folder was empty.'));              
    4262                                 } 
    4263                         }else{ 
    4264                                 write_msg(get_lang('Your Spam folder was empty.'));      
    4265                         } 
    4266                 } 
    4267                 else 
    4268                         write_msg(get_lang('ERROR emptying your Spam folder.')); 
    4269         } 
    4270          
    4271         $.Zebra_Dialog(get_lang('Do you really want to empty your spam folder?'), { 
    4272                 'type':     'question', 
    4273                 'title':    get_lang('Empty Spam'), 
    4274                 'buttons':  [get_lang("Yes"), get_lang("No")], 
    4275                 'overlay_opacity' : 0.5, 
    4276                 'onClose':  function(caption) { 
    4277                         if(caption == get_lang("Yes")){ 
    4278                 if(type.id == "local_messages_spam"){  
    4279                     expresso_mail_archive.deleteAllMessages(type.id); 
    4280                     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    4281                 } else { 
    4282                     cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultSpamFolder"+(shared ? "&shared="+folder : ""), handler_empty_spam); 
    4283                 }  
    4284                         } 
    4285                 } 
    4286         }); 
    4287 } 
    4288  
    4289 function buildExportArchiver(msgsArchive, name_box){ 
    4290  
    4291     var hand_export = function(data){ 
    4292         if(!data){ 
    4293             write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) 
    4294         }else if(data["empty_folder"] || data == "empty_folder"){ 
    4295             write_msg(get_lang("The selected folder is empty.")); 
    4296         }else 
    4297           download_attachments(null, null, data, null,null, get_current_folder().split("_")[2] +'.zip'); 
    4298     } 
    4299  
    4300     var array = new Array(); 
    4301  
    4302     for(var i =0; i < msgsArchive.length; i++){ 
    4303         eachMsg = { 
    4304                 'ContentType' : msgsArchive[i].ContentType, 
    4305                 'from' : { 'email' : msgsArchive[i].from.email, 'full' : msgsArchive[i].from.full, 'name' : msgsArchive[i].from.name}, 
    4306                 'msg_sample' : msgsArchive[i].msg_sample, 
    4307                 'subject' : msgsArchive[i].subject, 
    4308                 'to' : { 'email' : msgsArchive[i].to.email, 'full' : msgsArchive[i].to.full, 'name' : msgsArchive[i].to.name}, 
    4309                 'toaddress2' : msgsArchive[i].toaddress2, 
    4310                 'msg_number' : msgsArchive[i].msg_number, 
    4311                 'date' : new Date(msgsArchive[i].timestamp).toString()   
    4312         }; 
    4313         array.push(eachMsg); 
    4314     } 
    4315  
    4316     $.ajax({ 
    4317         type: "POST", 
    4318         url: "controller.php?action=$this.exporteml.export_all_byLocalFolder", 
    4319         data: { folder: name_box, type: "msg_local", messages : array} 
    4320     }).done(function(msg) { 
    4321         hand_export(msg.split('"')[1]); 
    4322     }); 
    4323 } 
    4324  
    4325 function export_all_selected_msgs(){ 
    4326         if(get_current_folder().split("_")[0] == "local"){ 
    4327  
    4328         if(get_selected_messages().indexOf(",") != -1){ 
    4329             expresso_mail_archive.getSomeMsgs(get_selected_messages().split(",")); 
    4330         } else { 
    4331             expresso_mail_archive.getSomeMsgs([get_selected_messages()]); 
    4332         } 
    4333          
    4334         buildExportArchiver(expresso_mail_archive.getSomeMsg, get_current_folder().split("_")[2]); 
    4335  
    4336     } else { 
    4337  
    4338     if (openTab.type[currentTab] > 1){       
    4339                 source_msg(currentTab,openTab.imapBox[currentTab]); 
    4340                 return; 
    4341         } 
    4342         var search = false;              
    4343  
    4344         if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    4345                 var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    4346                 var msgs_to_export = this.get_selected_messages_search(); 
    4347                 if (!msgs_to_export){ 
    4348                         write_msg(get_lang('No selected message.')); 
    4349                         return; 
    4350                 } 
    4351                 var selected_param = ""; 
    4352                 msgs_to_export = msgs_to_export.split(","); 
    4353                 search = true; 
    4354                 for (i = 0; i < msgs_to_export.length; i++){ 
    4355                         var tr = Element(msgs_to_export[i]+'_s'+id_border); 
    4356                         msg_to_move = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    4357                         selected_param += ','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    4358                 } 
    4359         }else{ 
    4360                 var msgs_to_export = this.get_selected_messages(); 
    4361         } 
    4362         var handler_export_all_selected_msgs = function(data){ 
    4363  
    4364                 if(!data){ 
    4365                         write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')); 
    4366                 } 
    4367                 else{ 
    4368                         var filename = 'mensagens.zip';  
    4369                         if (data[0].match(/\.eml$/gi)) {  
    4370                 filename = data[1]+'.eml';  
    4371                         }  
    4372                         download_attachments(null, null, data[0], null,null,filename);  
    4373                 } 
    4374         } 
    4375  
    4376         if(search){ 
    4377                 cExecute ("$this.exporteml.makeAll", handler_export_all_selected_msgs, "folder=false&msgs_to_export="+selected_param); 
    4378         }else if (msgs_to_export) { 
    4379                 cExecute ("$this.exporteml.makeAll", handler_export_all_selected_msgs, "folder="+get_current_folder()+"&msgs_to_export="+msgs_to_export); 
    4380                 write_msg(get_lang('You must wait while the messages will be exported...')); 
    4381         } 
    4382         else 
    4383                 write_msg(get_lang('No selected message.')); 
    4384     } 
    4385 } 
    4386  
    4387 function select_all_search_messages(select, aba){ 
    4388  
    4389         if(select){ 
    4390                 jQuery("#"+aba+" tr").each(function(i, o) { 
    4391                  
    4392                         o.firstChild.firstChild.checked = true; 
    4393                         add_className(o, 'selected_msg'); 
    4394                 });              
    4395         }else{ 
    4396                 jQuery("#"+aba+" tr").each(function(i, o) { 
    4397                  
    4398                         o.firstChild.firstChild.checked = false; 
    4399                         remove_className(o, 'selected_msg'); 
    4400                 }); 
    4401         } 
    4402 } 
    4403  
    4404 function verify_session(data){ 
    4405  
    4406         if(data && data.imap_error) { 
    4407                 if(data.imap_error == "nosession") 
    4408                         write_msg(get_lang("your session could not be verified.")); 
    4409                 else 
    4410                         write_msg(data.imap_error); 
    4411                 // Hold sesion for edit message. 
    4412                 //if(!hold_session) 
    4413                 //      location.href="../login.php?cd=10&phpgw_forward=%2FexpressoMail1_2%2Findex.php"; 
    4414                 return false; 
    4415         } 
    4416         else 
    4417                 return true; 
    4418 } 
    4419  
    4420 // Save image file. 
    4421 function save_image(e,thumb,file_type){ 
    4422         file_type = file_type.replace("/","."); 
    4423         thumb.oncontextmenu = function(e) { 
    4424                 return false; 
    4425         } 
    4426         var _button = is_ie ? window.event.button : e.which; 
    4427         var     _target = is_ie ? event.srcElement : e.target; 
    4428  
    4429         if(_button == 2 || _button == 3) { 
    4430                 var _params = _target.id.split(";;"); 
    4431                 download_attachments(Base64.encode(_params[0]),_params[1],_params[2],_params[3],_params[4],file_type); 
    4432                 if($(_target).parent().attr("href").split("http").length > 1){ 
    4433                         var part_find = thumb.toString().split("#"); 
    4434                         var part2_find = part_find[1].split("/temp"); 
    4435                         var part_id_dwl = part2_find[0] + '/temp/download' + part2_find[1];  
    4436                         download_local_attachment(part_id_dwl); 
    4437                         return; 
    4438                 }else{ 
    4439                         var _params = _target.id.split(";;");    
    4440                         download_attachments(_params[0],_params[1],_params[2],_params[3],_params[4],file_type); 
    4441                 } 
    4442         } 
    4443 } 
    4444  
    4445 function save_image2(info){  
    4446         var obj = jQuery.parseJSON(unescape(info));  
    4447         download_attachments(obj.folder, obj.message, obj.thumbIndex, obj.pid, obj.encoding, obj.type.replace("/","."));  
    4448 }  
    4449  
    4450 function nospam(msgs_number, border_ID, folder){ 
    4451         if (folder == 'null') 
    4452                 folder = get_current_folder(); 
    4453         var new_folder = ''; 
    4454         if(folder.substr(0,4) == 'user'){ 
    4455                 arrayFolder = folder.split(cyrus_delimiter); 
    4456                 new_folder = 'user'+cyrus_delimiter+arrayFolder[1]; 
    4457         } 
    4458         else{ 
    4459                 new_folder = 'INBOX'; 
    4460         } 
    4461         var new_folder_name = get_lang('INBOX'); 
    4462         var handler_move_msgs = function(data){ 
    4463                 if (msgs_number == 'selected') 
    4464                         set_messages_flag("unseen", "get_selected_messages"); 
    4465                 else 
    4466                         proxy_mensagens.proxy_set_message_flag(msgs_number, "unseen"); 
    4467                 proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name); 
    4468  
    4469                 if (openTab.type[currentTab] > 1) 
    4470                         delete_border(currentTab,'false'); 
    4471         } 
    4472  
    4473         if(currentTab.toString().indexOf("_r") != -1) 
    4474                 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    4475         else if(msgs_number == 'selected') 
    4476                 msgs_number = get_selected_messages(); 
    4477  
    4478         //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
    4479         if(currentTab == 0) 
    4480                 msgs_number = get_selected_messages(); 
    4481         if (typeof currentTab == "string" && currentTab.indexOf("search_") != "-1"){ 
    4482                 msgs_number = ""; 
    4483                 var checked = $("#divScrollMain_"+currentTab.substr(currentTab.indexOf('_')+1,255)).find("tr input:checked"); 
    4484                 $.each(checked,function(index,value){ 
    4485                         if (value){ 
    4486                                 if (index == 0) 
    4487                                         msgs_number = $(value).parents("tr").attr("id"); 
    4488                                 else 
    4489                                         msgs_number += "," + $(value).parents("tr").attr("id"); 
    4490                         } 
    4491                 }); 
    4492         } 
    4493         if (parseInt(msgs_number) > 0 || msgs_number.length > 0) 
    4494                 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); 
    4495         else 
    4496                 write_msg(get_lang('No selected message.')); 
    4497 } 
    4498  
    4499 function spam(folder, msgs_number, border_ID){ 
    4500         if (folder == 'null') 
    4501                 folder = get_current_folder(); 
    4502         var new_folder = ''; 
    4503         if(folder.substr(0,4) == 'user') 
    4504         {        
    4505                 arrayFolder = folder.split(cyrus_delimiter); 
    4506                 new_folder = 'user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Spam']; 
    4507         } 
    4508         else 
    4509         { 
    4510                 new_folder = mount_url_folder(["INBOX",special_folders["Spam"]]); 
    4511         } 
    4512         var new_folder_name = 'Spam'; 
    4513         var not_opem_previus = true; 
    4514         var handler_move_msgs = function(data){ 
    4515                 proxy_mensagens.proxy_move_messages(folder, msgs_number, border_ID, new_folder, new_folder_name, not_opem_previus); 
    4516                 if (openTab.type[currentTab] > 1){ 
    4517                         if(preferences.delete_and_show_previous_message == 1) 
    4518                         delete_border(currentTab,'false'); 
    4519         } 
    4520         } 
    4521  
    4522         if(currentTab.toString().indexOf("_r") != -1) 
    4523                 msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    4524         else if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
    4525                 var content_search = document.getElementById('content_id_'+currentTab);mount_url_folder(["INBOX",special_folders['Trash']]), 'Trash', 
    4526                 move_search_msgs('content_id_'+currentTab,  mount_url_folder(["INBOX",special_folders["Spam"]]), special_folders['Spam']); 
    4527                 refresh(); 
    4528                 return; 
    4529         }else if(msgs_number == 'selected') 
    4530                 msgs_number = get_selected_messages(); 
    4531  
    4532         //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
    4533         if(currentTab == 0) 
    4534                 msgs_number = get_selected_messages(); 
    4535  
    4536         if(parseInt(msgs_number) > 0 || msgs_number.length > 0) 
    4537                 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); 
    4538         else 
    4539                 write_msg(get_lang('No selected message.')); 
    4540 } 
    4541  
     425{var fileUploadMSG=$('#fileupload_msg'+new_border_ID);var attachments=$("#attachments_"+old_id_border).find("a");if(openTab.imapBox[new_border_ID].split("local").length>1&&attachments.length>0){alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos");return false;} 
     426for(var i=0;i<attachments.length;i++){if((attachments[i].tagName=="SPAN")||(attachments[i].tagName=="IMG")||((attachments[i].href.indexOf("javascript:download_local_attachment")==-1)&&(attachments[i].href.indexOf("javascript:download_attachments")==-1))) 
     427continue;fileUploadMSG.find(' .attachments-list').show();if(attachments[i].href.split("local").length>1){var arrayAtt=attachments[i].href.replace("javascript:download_local_attachment(","").replace(")","").split(',');}else{var arrayAtt=attachments[i].href.replace("javascript:download_attachments(","").replace(")","").split(',');} 
     428var att=new Object();var regex=new RegExp("'","g");att.folder=utf8_decoder(Base64.decode(arrayAtt[0].replace(regex,"")));att.uid=arrayAtt[1].replace(regex,"");att.part=arrayAtt[3].replace(regex,"");att.type='imapPart';var idATT=JSON.stringify(att);addAttachment(new_border_ID,idATT);var attach={};var attachText=(is_ie?attachments[i].innerText:attachments[i].text);attach.fileName=attachText.substring(0,attachText.lastIndexOf('('));attach.fullFileName=attach.fileName;if(attach.fileName.length>20) 
     429attach.fileName=attach.fileName.substr(0,17)+" ... "+attach.fileName.substr(attach.fileName.length-9,attach.fileName.length);attach.fileSize=attachText.substring((attachText.lastIndexOf('(')+1),attachText.lastIndexOf(')'));attach.error=false;var upload=$(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs",{file:attach}));upload.find('.att-box-loading').remove();upload.find('.att-box-delete').click(function(){var idAttach=$(this).parent().find('input[name="fileId[]"]').val();var content_body=RichTextEditor.getData('body_'+new_border_ID);var imagens=content_body.match(/<img[^>]*>/g);var att=JSON.parse(idAttach);if(imagens!=null) 
     430{for(var x=0;x<imagens.length;x++) 
     431if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
     432content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
     433fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]');delAttachment(new_border_ID,idAttach);$(this).parent().qtip("destroy");$(this).parent().remove();if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){fileUploadMSG.find(' .attachments-list').hide();}});upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>');fileUploadMSG.find('.attachments-list').append(upload);fileUploadMSG.find('.attachments-list .att-box:last').qtip({content:DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs",{attach:attach}),position:{corner:{tooltip:'bottomMiddle',target:'topMiddle'},adjust:{resize:true,scroll:true,screen:true}},show:{when:'mouseover',ready:false},hide:'mouseout',style:{border:{width:1,radius:5},width:{min:75,max:1000},padding:3,textAlign:'left',tip:true,name:'blue'}});}} 
     434function send_message_return(data,ID){if(typeof(data)=='object'&&data.load){cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);} 
     435watch_changes_in_msg(ID);var content=$("#content_id_"+ID);var sign=false;var crypt=false;var reComplexEmail=/<([^<]*)>[\s]*$/;if((preferences.use_assinar_criptografar!='0')&&(preferences.use_signature_digital_cripto!='0')){var checkSign=document.getElementById('return_digital_'+ID) 
     436if(checkSign.checked){sign=true;} 
     437var checkCript=document.getElementById('return_cripto_'+ID);if(checkCript.checked){crypt=true;}} 
     438if(typeof(data)=='object'&&!data.success) 
     439{connector=new cConnector();if(sign||crypt){var operation='';if(sign){operation='sign';} 
     440else{operation='nop';}} 
     441if(data.body){Element('cert_applet').doButtonClickAction(operation,ID,data.body);} 
     442else{alert(data.error);} 
     443return;} 
     444if(data&&data.success==true){var msg_number_replied=content.find('[name="msg_reply_from"]');var msg_number_forwarded=content.find('[name="msg_forward_from"]');if(msg_number_replied.val()){proxy_mensagens.proxy_set_message_flag(msg_number_replied.val(),'answered');} 
     445else if(msg_number_forwarded.val()){proxy_mensagens.proxy_set_message_flag(msg_number_forwarded.val(),'forwarded');} 
     446if(expresso_offline){write_msg(get_lang('Your message was sent to queue'));delete_border(ID,'true');return;}else{if(wfolders.alert){write_msg(get_lang('Your message was sent and save.'));wfolders.alert=false;} 
     447else{write_msg(get_lang('Your message was sent.'));}} 
     448delete_border(ID,'true');var arrayTo=content.find(".to-tr").find(".box").clone();save_dynamic_contacts(arrayTo);var arrayCC=content.find(".cc-tr").find(".box").clone();save_dynamic_contacts(arrayCC);var arrayCCo=content.find(".cco-tr").find(".box").clone();save_dynamic_contacts(arrayCCo);if(parseInt(preferences.use_dynamic_contacts)) 
     449updateDynamicContact();cache=new Array();} 
     450else{if(data=='Post-Content-Length') 
     451write_msg(get_lang('The size of this message has exceeded  the limit (%1B).',Element('upload_max_filesize').value));else if(data){var error_mail=$.trim(data.split(":")[data.split(":").length-1]);var array=content.find(".to-tr").find(".box");$.each(array,function(index,value){if(error_mail==$(value).find("input").val().match(reComplexEmail)[1]) 
     452$(value).addClass("invalid-email-box");});if(content.find('[name="input_cco"]').length){if(content.find(".cco-tr").css("display")!="none"){var array=content.find(".cco-tr").find(".box");$.each(array,function(index,value){if(error_mail==$(value).find("input").val().match(reComplexEmail)[1]) 
     453$(value).addClass("invalid-email-box");});}} 
     454if(content.find(".cc-tr").css("display")!="none") 
     455{var array=content.find(".cc-tr").find(".box");$.each(array,function(index,value){if(error_mail==$(value).find("input").val().match(reComplexEmail)[1]) 
     456$(value).addClass("invalid-email-box");});} 
     457write_msg(data);}else 
     458write_msg(get_lang("Connection failed with %1 Server. Try later.","Web"));var save_link=$("#content_id_"+ID).find(".save")[0];save_link.onclick=function onclick(event){openTab.toPreserve[ID]=true;save_msg(ID);};$("#save_message_options_"+ID).button({disabled:false});} 
     459if(!expresso_offline) 
     460connector.hideProgressBar();} 
     461function save_dynamic_contacts(array){if(parseInt(preferences.use_dynamic_contacts)){$.each(array,function(i,value){var stop=false;$.each(dynamicPersonalContacts,function(x,valuex){if(valuex.email==$(value).find("input").val().match(reComplexEmail)[1]){stop=true;return false;}});$.each(dynamicPersonalGroups,function(x,valuex){if(valuex.email==$(value).find("input").val().match(reComplexEmail)[1]){stop=true;return false;}});if(!stop){var exist=0;$.each(dynamicData,function(x,valuex){if(valuex.mail==$(value).find("input").val().match(reComplexEmail)[1]){exist=valuex.id;return false;}});if(exist){REST.put("/dynamiccontact/"+exist,{name:$(value).find("input").val().split('"')[1],mail:$(value).find("input").val().match(reComplexEmail)[1]});}else{REST.post("/dynamiccontacts",{name:$(value).find("input").val().split('"')[1],mail:$(value).find("input").val().match(reComplexEmail)[1]});}}});}} 
     462function appletReturn(smime,ID,operation,folder){if(!smime){connector=new cConnector();connector.hideProgressBar();return;} 
     463if(operation=='decript') 
     464{var handler=function(data){if(data.msg_day=='') 
     465{header=expresso_local_messages.get_msg_date(data.original_ID,proxy_mensagens.is_local_folder(get_current_folder()));data.fulldate=header.fulldate;data.smalldate=header.smalldate;data.msg_day=header.msg_day;data.msg_hour=header.msg_hour;} 
     466this.show_msg(data);} 
     467para="&source="+smime+"&ID="+ID+"&folder="+folder;cExecute("$this.imap_functions.show_decript&",handler,para);}else 
     468{ID_tmp=ID;var handler_send_smime=function(data){send_message_return(data,this.ID_tmp);};var textArea=document.createElement("TEXTAREA");textArea.style.display='none';textArea.id='smime';textArea.name="smime";textArea.value+=smime;if(is_ie){var i=0;while(document.forms(i).name!="form_message_"+ID){i++} 
     469form=document.forms(i);} 
     470else 
     471form=document.forms["form_message_"+ID];form.appendChild(textArea);cExecuteForm("$this.imap_functions.send_mail",form,handler_send_smime,ID);}} 
     472function verifyBodyWords(body,words){for(i=0;i<words.length;i++){if(body.search(words[i])!=-1){return words[i];}} 
     473return false;} 
     474function send_message(ID,folder,folder_name){var content_body=RichTextEditor.getData('body_'+ID);if(language=="pt-br") 
     475var words=['anexo','anexos','anexada','anexado','anexei','anexando','anexaste','anexastes','anexamos','anexaram'];else if(language=="es-es") 
     476var words=['anexo','adjunto','adjuntos','adjuntado','adjuntamos'];else 
     477var words=['attach','attachment','attached','annex','appending'];if($('#fileupload_msg'+ID).find('.att-box').length==0&&preferences.alert_message_attachment=='1'){var bodyWord=verifyBodyWords(content_body,words);if(bodyWord){$.Zebra_Dialog(get_lang('You wrote "%1" in your message, but there are no files attached. Send it anyway?',bodyWord),{'type':'question','overlay_opacity':'0.5','buttons':['OK','Cancelar'],'width':500,'onClose':function(clicked){if(clicked=='OK'){send_valided_message(ID,folder,folder_name);return;}else{return;}}});} 
     478else 
     479send_valided_message(ID,folder,folder_name);} 
     480else if(!zebraDiscardEventDialog&&$('#fileupload_msg'+ID).find('.att-box-loading').length) 
     481{zebraDiscardEventDialog=true;window.setTimeout(function(){$.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.',{'type':'question','overlay_opacity':'0.5','buttons':['Descartar anexos e enviar','Continuar editando e esperar anexos'],'width':500,'onClose':function(clicked){if(clicked=='Descartar anexos e enviar'){$.each($('#fileupload_msg'+ID).find('.att-box'),function(index,value){if($(value).find(".att-box-loading").length) 
     482$(value).find('.att-box-delete').trigger("click");});send_valided_message(ID,folder,folder_name);} 
     483window.setTimeout(function(){zebraDiscardEventDialog=false;},500);}})},300);}else{send_valided_message(ID,folder,folder_name);}} 
     484function send_valided_message(ID,folder,folder_name) 
     485{if(preferences.auto_save_draft==1) 
     486autoSaveControl.status[ID]=true;var content=$("#content_id_"+ID);var save_link=$("#content_id_"+ID).find(".save");var onClick=save_link.onclick;save_link.onclick='';save_link.button({disabled:true});var _subject=trim(content.find(".subject").val());if((_subject.length==0)&&!confirm(get_lang("Send this message without a subject?"))){save_link.click(onClick);content.find(".subject").focus();return;} 
     487var stringReply="";draw_email_box(content.find(".reply-to-tr").find("textarea:first").val(),content.find(".reply-to-tr").find("textarea:first"));content.find(".reply-to-tr").find("textarea:first").val("");var array=content.find(".reply-to-tr").find(".box");$.each(array,function(index,value){stringReply+=$(value).find("input").val()+",";});var stringToEmail="";draw_email_box(content.find(".to-tr").find("textarea:first").val()||content.find(".to-tr").find("input:visible").val(),content.find(".to-tr").find("textarea:first"));content.find(".to-tr").find("textarea:first").val("");content.find(".to-tr").find("input:visible").val("");var array=content.find(".to-tr").find(".box");$.each(array,function(index,value){stringToEmail+=$(value).find("input").val()+",";});var stringEmail="";stringEmail=stringToEmail;var stringCCoEmail="";if(content.find('[name="input_cco"]').length){if(content.find(".cco-tr").css("display")!="none"){draw_email_box(content.find(".cco-tr").find("textarea:first").val()||content.find(".cco-tr").find("input:visible").val(),content.find(".cco-tr").find("textarea:first"));content.find(".cco-tr").find("textarea:first").val("");content.find(".cco-tr").find("input:visible").val("");var array=content.find(".cco-tr").find(".box");$.each(array,function(index,value){stringCCoEmail+=$(value).find("input").val()+",";});}} 
     488stringEmail+=stringCCoEmail;var stringCCEmail="";if(content.find(".cc-tr").css("display")!="none") 
     489{draw_email_box(content.find(".cc-tr").find("textarea:first").val()||content.find(".cc-tr").find("input:visible").val(),content.find(".cc-tr").find("textarea:first"));content.find(".cc-tr").find("textarea:first").val("");content.find(".cc-tr").find("input:visible").val("");var array=content.find(".cc-tr").find(".box");$.each(array,function(index,value){stringCCEmail+=$(value).find("input").val()+",";});} 
     490stringEmail+=stringCCEmail;var mailData=new Object();mailData.body=Base64.encode(RichTextEditor.getData('body_'+ID));mailData.folder=folder;mailData.type=RichTextEditor.plain[ID]?'plain':'html';mailData.uids_save=uidsSave[ID].toString();mailData.save_folder=(openTab.imapBox[ID]&&openTab.type[ID]<6)?openTab.imapBox[ID]:"INBOX"+cyrus_delimiter+draftsfolder;mailData.attachments=listAttachment(ID);mailData.messageNum=currentTab;mailData.input_subject=trim(content.find(".subject").val());mailData.input_reply_to=stringReply;mailData.input_to=stringToEmail;mailData.input_cco=stringCCoEmail;mailData.input_cc=stringCCEmail;mailData.input_cc=stringCCEmail;mailData.abaID=$(content).find('[name="abaID"]').val();mailData.input_important_message=$(content).find('input:checkbox:checked[name="input_important_message"]').val();mailData.input_return_receipt=$(content).find('input:checkbox:checked[name="input_return_receipt"]').val();mailData.msg_forward_from=$(content).find('[name="msg_forward_from"]').val();mailData.msg_reply_from=$(content).find('[name="msg_reply_from"]').val();if($(content).find('select[name="input_from"]').val()) 
     491mailData.input_from=$(content).find('select[name="input_from"]').val();if(stringEmail!=""){$.ajax({url:"controller.php?action=$this.imap_functions.send_mail",data:mailData,type:'POST',success:function(data){send_message_return(connector.unserialize(data),ID);},error:function(){write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos...");var interval=setInterval(function(){send_valided_message(ID,folder,folder_name);clearInterval(interval);},15000);return;}});}else{write_msg(get_lang("message without receiver"));return;}} 
     492function is_valid_email(campo){var invalidEmail=searchEmail(campo);var semicolon=campo.split(";");if((campo.replace(/^\s+|\s+$/g,""))!=""){if(invalidEmail[0]==true){write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+invalidEmail[1]);return false;}else{if(semicolon.length>1){var stringError="Erro de SMTP: Os endereços devem ser separados apenas por vígula: ";for(var i=0;i<semicolon.length;i++){stringError=stringError+semicolon[i];if(i+1<semicolon.length) 
     493stringError=stringError+" ; ";} 
     494write_msg(stringError);return false;}else{return true;}}} 
     495else{write_msg(get_lang("Message without receiver"));return false;}} 
     496function change_tr_properties(tr_element,newUid,newSubject){message_id=tr_element.id;var td_from=document.getElementById('td_from_'+message_id);if(typeof(newSubject)!='undefined') 
     497td_from.nextSibling.innerHTML=newSubject;tr_element.id=newUid;var openNewMessage=function(){$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.get_info_msg',msg_number:newUid,msg_folder:current_folder,decoded:true}),success:function(data){data=connector.unserialize(data);if(data) 
     498show_msg(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});};for(var i=2;i<10;i++){if(typeof(tr_element.childNodes[i].id)!="undefined") 
     499tr_element.childNodes[i].id=tr_element.childNodes[i].id.replace(message_id,newUid);tr_element.childNodes[i].onclick=openNewMessage;}} 
     500function autoSave(ID) 
     501{var content=$("#content_id_"+border_id);content.find(".save").button('option','disabled',true);saveButtonDisabled=$("#content_id_"+ID).find(".save").button('option','disabled');if(autoSaveControl.status[ID]===false&&!saveButtonDisabled) 
     502save_msg(ID);refresh();} 
     503function save_msg(border_id){if(preferences.auto_save_draft==1) 
     504autoSaveControl.status[border_id]=true;var content=$("#content_id_"+border_id);content.find(".save").button('option','disabled',true);var array=content.find(".reply-to-tr").find(".box");var stringReplyToEmail="";$.each(array,function(index,value){stringReplyToEmail+=$(value).find("input").val()+",";});content.find('[name="input_reply_to"]').val(stringReplyToEmail);var stringEmail="";var array=content.find(".to-tr").find(".box");$.each(array,function(index,value){stringEmail+=$(value).find("input").val()+",";});content.find('[name="input_to"]').val(stringEmail);stringEmail="";if(content.find('[name="input_cco"]').length){if(content.find(".cco-tr").css("display")!="none"){var array=content.find(".cco-tr").find(".box");$.each(array,function(index,value){stringEmail+=$(value).find("input").val()+",";});content.find('[name="input_cco"]').val(stringEmail);}} 
     505stringEmail="";if(content.find(".cc-tr").css("display")!="none") 
     506{var array=content.find(".cc-tr").find(".box");$.each(array,function(index,value){stringEmail+=$(value).find("input").val()+",";});content.find('[name="input_cc"]').val(stringEmail);} 
     507var idJavascript=saveBorderError[border_id];if(saveBorderError[border_id]!==false) 
     508DataLayer.put('message',DataLayer.merge(DataLayer.form("#form_message_"+border_id),{id:idJavascript}));else 
     509idJavascript=DataLayer.put('message',DataLayer.form("#form_message_"+border_id));uidsSave[border_id]=[];DataLayer.commit(false,false,function(data){if(data!=null&&data['message://'+idJavascript]!==undefined&&data['message://'+idJavascript].id!==undefined) 
     510{uidsSave[border_id].push(data['message://'+idJavascript].id);saveBorderError[border_id]=false;write_msg('Mensagem salva com sucesso!');} 
     511else 
     512{saveBorderError[border_id]=idJavascript;write_msg('Erro ao salvar sua mensagem! Nova tentativa em alguns segundos.');}});} 
     513function set_messages_flag_search_local(flag){} 
     514function set_messages_flag_search(flag){var id_border=currentTab.replace(/[a-zA-Z_]+/,"");var msgs_flag=this.get_selected_messages_search();if(!msgs_flag){write_msg(get_lang('No selected message.'));return;} 
     515var selected_param="";msgs_to_flag=msgs_flag.split(",");search=true;for(i=0;i<msgs_to_flag.length;i++){var tr=Element(msgs_to_flag[i]+'_s'+id_border);var msg_to_flag=(tr.getAttribute('name')==null?get_current_folder():tr.getAttribute('name'));selected_param+=','+msg_to_flag+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");} 
     516var handler_set_messages_flag=function(data){var errors=false;var notErrors=false;for(var i=0;i<data.length;i++){var notArray=true;if(data[i].msgs_to_set!=''){var msgs=[];if(data[i].msgs_to_set.indexOf(',')>0){msgs=data[i].msgs_to_set.split(',') 
     517notArray=false;}else 
     518msgs[0]=data[i].msgs_to_set;for(var j=0;j<msgs.length;j++){switch(data[i].flag){case"unseen":set_msg_as_unread(msgs[j]+'_s'+id_border,true);Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked=false;break;case"seen":set_msg_as_read(msgs[j]+'_s'+id_border,true);Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked=false;break;case"flagged":set_msg_as_flagged(msgs[j]+'_s'+id_border,true);document.getElementById("search_"+id_border+"_check_box_message_"+msgs[j]).checked=false;break;case"unflagged":set_msg_as_unflagged(msgs[j]+'_s'+id_border,true);Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked=false;break;} 
     519notErrors=true;}}else{errors=true;}} 
     520draw_tree_folders();Element('chk_box_select_all_messages_search').checked=false;refresh();if(errors&&notErrors) 
     521write_msg(get_lang('Some messages were not marked with success!'));else if(notErrors) 
     522write_msg(get_lang('The messages were marked with success!'));else 
     523write_msg(get_lang('Error marking messages.'));} 
     524cExecute("$this.imap_functions.set_messages_flag_from_search&msg_to_flag="+selected_param+"&flag="+flag,handler_set_messages_flag);} 
     525function set_messages_flag(flag,msgs_to_set){if(currentTab!=0&&currentTab.indexOf("search_local")>=0){return set_messages_flag_search_local(flag);} 
     526if(currentTab!=0&&currentTab.indexOf("search_")>=0){return set_messages_flag_search(flag);} 
     527var handler_set_messages_flag=function(data){if(!verify_session(data)) 
     528return;var msgs_to_set=data.msgs_to_set.split(",");if(data.disposition_notification_to){$.Zebra_Dialog(data.disposition_notification_to.length==1?get_lang('One of his messages can not be marked as read, because it contains a read confirmation.'):data.disposition_notification_to.length+get_lang(' of its messages could not be marked as read, because it contains a read confirmation.'),{'type':'warning','overlay_opacity':'0.5','buttons':['Fechar']});} 
     529if(!data.status){write_msg(data.msg);Element('chk_box_select_all_messages').checked=false;for(var i=0;i<msgs_to_set.length;i++){Element("check_box_message_"+msgs_to_set[i]).checked=false;remove_className(Element(msgs_to_set[i]),'selected_msg');} 
     530if(!data.msgs_unflageds) 
     531return;else 
     532if(data.msgs_not_to_set!="") 
     533write_msg(get_lang("Error processing some messages."));msgs_to_set=data.msgs_unflageds.split(",");} 
     534for(var i=0;i<msgs_to_set.length;i++){if(preferences.use_cache=='True') 
     535{if(current_folder=='') 
     536current_folder='INBOX';var setFlag=function(msgObj){switch(data.flag){case"unseen":msgObj.Unseen="U";break;case"seen":msgObj.Unseen="";break;case"flagged":msgObj.Flagged="F";break;case"unflagged":msgObj.Flagged="";break;}}} 
     537if(Element("check_box_message_"+msgs_to_set[i])){switch(data.flag){case"unseen":set_msg_as_unread(msgs_to_set[i]);if(results_search_messages!="") 
     538set_msg_as_unread(results_search_messages,true);Element("check_box_message_"+msgs_to_set[i]).checked=false;break;case"seen":set_msg_as_read(msgs_to_set[i],false);if(results_search_messages!="") 
     539set_msg_as_read(results_search_messages,false,true);Element("check_box_message_"+msgs_to_set[i]).checked=false;$.each(fromRules,function(index,value){if(value==folder){cExecute("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_to_set,function(){});return false;}});break;case"flagged":set_msg_as_flagged(msgs_to_set[i]);if(results_search_messages!="") 
     540set_msg_as_flagged(results_search_messages,true);document.getElementById("check_box_message_"+msgs_to_set[i]).checked=false;break;case"unflagged":set_msg_as_unflagged(msgs_to_set[i]);if(results_search_messages!="") 
     541set_msg_as_unflagged(results_search_messages,true);Element("check_box_message_"+msgs_to_set[i]).checked=false;break;}}} 
     542Element('chk_box_select_all_messages').checked=false;} 
     543var folder=get_current_folder();if(msgs_to_set=='get_selected_messages') 
     544var msgs_to_set=this.get_selected_messages();else 
     545folder=Element("input_folder_"+msgs_to_set+"_r").value;if(msgs_to_set) 
     546$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.set_messages_flag',folder:folder,msgs_to_set:msgs_to_set,flag:flag,decoded:true}),success:function(data){data=connector.unserialize(data);selectAllFolderMsgs();$('.select-link').unbind('click');if(data) 
     547handler_set_messages_flag(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});else 
     548write_msg(get_lang('No selected message.'));} 
     549function set_message_flag(msg_number,flag,func_after_flag_change){var msg_number_folder=Element("new_input_folder_"+msg_number+"_r");if(!msg_number_folder) 
     550var msg_number_folder=Element("input_folder_"+msg_number+"_r");var handler_set_messages_flag=function(data){if(!verify_session(data)) 
     551return;if(!data.status){write_msg(get_lang("this message cant be marked as normal"));return;} 
     552else if(func_after_flag_change){func_after_flag_change(true);} 
     553if(data.status&&Element("td_message_answered_"+msg_number)){switch(flag){case"unseen":set_msg_as_unread(msg_number);break;case"seen":set_msg_as_read(msg_number);break;case"flagged":set_msg_as_flagged(msg_number);break;case"unflagged":set_msg_as_unflagged(msg_number);break;case"answered":Element("td_message_answered_"+msg_number).innerHTML='<img src=templates/'+template+'/images/answered.png title=Respondida>';break;case"forwarded":Element("td_message_answered_"+msg_number).innerHTML='<img src=templates/'+template+'/images/forwarded.png title=Encaminhada>';break;}}else{refresh();}} 
     554$.ajax({url:'controller.php?'+$.param({action:'$this.imap_functions.set_messages_flag',folder:(msg_number_folder?msg_number_folder.value:get_current_folder()),msgs_to_set:msg_number,flag:flag,decoded:true}),success:function(data){data=connector.unserialize(data);if(data) 
     555handler_set_messages_flag(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     556function print_search_msg(){var folder="<h2>&nbsp;Resultado da Pesquisa&nbsp;<font color=\"#505050\" face=\"Verdana\" size=\"1\"></h2>";msgs_number=get_selected_messages_search();var tbody=Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML;var id_border=currentTab.replace(/[a-zA-Z_]+/,"");if(msgs_number){msgs_number=msgs_number.split(",");var tbody="";for(var i=0;i<msgs_number.length;i++){tbody+="<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>";}}else{msgs_number=get_all_messages_search();msgs_number=msgs_number.split(",");var tbody="";for(var i=0;i<msgs_number.length;i++){tbody+="<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>";}} 
     557var print_width=screen.width-200;var x=((screen.width-print_width)/2);var y=((screen.height-400)/2)-35;var window_print=window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);seekDot=(is_ie?/width=24/gi:/width="24"/gi);var thead="<tr class=\"message_header\">    <td width=\"3%\"></td><td width=\"2%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"2%\"></td><td id=\"message_header_FOLDER_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">Pasta</td><td id=\"message_header_SORTFROM_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">De</td><td id=\"message_header_SORTSUBJECT_0\" class=\"th_resizable\" align=\"left\" width=\"*\">Assunto</td><td id=\"message_header_SORTARRIVAL_0\" class=\"th_resizable\" align=\"center\" width=\"11%\"><b>Data</b><img src=\"templates/default/images/arrow_descendant.gif\"></td><td id=\"message_header_SORTSIZE_0\" class=\"th_resizable\" align=\"left\" width=\"11%\">Tamanho</td></tr>";tbody=tbody.replace(seekDot,"style='display:none'");seekDot=(is_ie?/width=16/gi:/width="16"/gi);tbody=tbody.replace(seekDot,"style='display:none'");seekDot=(is_ie?/width=12/gi:/width="12"/gi);tbody=tbody.replace(seekDot,"style='display:none'");while(1){try{window_print.document.open();var html='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
     558+'<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
     559+cabecalho+'</h4><hr>' 
     560+'<h2>'+folder+'</h2><hr/><blockquote><font size="2">' 
     561+'<table width="100%" cellpadding="0" cellspacing="0">' 
     562+'<thead>'+thead+'</thead><tbody>'+tbody+'</tbody>' 
     563+'</table></font></blockquote></body></html>';window_print.document.write(html);window_print.document.close();break;} 
     564catch(e){}} 
     565window_print.document.close();window_print.print();} 
     566function print_messages_bodies(){var messages={};messages[get_current_folder()]=get_selected_messages().split(',');var print_bodies=function(data){var print_width=screen.width-200;var x=((screen.width-print_width)/2);var y=((screen.height-400)/2)-35;var window_print=window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);if(window_print==null){alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname));return;} 
     567var header='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
     568+'<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>';window_print.document.write(header);var printData='<body style="overflow:auto">'+cabecalho+'</h4><hr>';window_print.document.write(printData);var newRow=function(label,data){return"<tr><td width=7%><font size='2'><b>"+label+" </b></font></td><td><font size='2'>"+data+"</font></td></tr>";} 
     569$.each(data,function(index,message){var html="<table><tbody>";if(message.sender) 
     570for(var i=0;i<message.sender.length;i++){html+=newRow(get_lang('Sent by')+":",message.sender[i]);} 
     571if(message.from) 
     572for(var i=0;i<message.from.length;i++){html+=newRow(get_lang('From')+":",message.from[i]);} 
     573if(message.toaddress2){html+=newRow(get_lang('To')+":",message.toaddress2);} 
     574if(message.cc){html+=newRow(get_lang('Cc')+":",message.cc);} 
     575if(message.bcc){html+=newRow(get_lang('Cco')+":",message.bcc);} 
     576if(message.smalldate) 
     577html+=newRow(get_lang('Date')+":",message.smalldate);else if(message.udate){var norm=function(arg){return(arg<10?'0'+arg:arg);};var weekDays=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];var today=new Date();today.setHours(23);today.setMinutes(59);today.setSeconds(59);today.setMilliseconds(999);udate_local=message.udate*1000+today.getTimezoneOffset()*60*1000;date_msg=new Date(udate_local);if(preferences.show_date_numerical==0||typeof(preferences.show_date_numerical)=='undefined'){if(today.getTime()-date_msg.getTime()<86400000) 
     578html+=newRow(get_lang('Date')+":",norm(date_msg.getHours())+':'+norm(date_msg.getMinutes()));else 
     579if(today.getTime()-date_msg.getTime()<172800000) 
     580newRow(get_lang('Date')+":",get_lang('Yesterday'));else if(today.getTime()-date_msg.getTime()<259200000) 
     581html+=newRow(get_lang('Date')+":",get_lang(weekDays[date_msg.getDay()]));else 
     582html+=newRow(get_lang('Date')+":",norm(date_msg.getDate())+'/'+norm(date_msg.getMonth()+1)+'/'+date_msg.getFullYear());}else 
     583html+=newRow(get_lang('Date')+":",norm(date_msg.getDate())+'/'+norm(date_msg.getMonth()+1)+'/'+date_msg.getFullYear());} 
     584html+=newRow(get_lang('Subject')+":",message.subject);if(message.attachments&&message.attachments.length){var img='<img style="margin-bottom : -5px; cursor : pointer;" src="templates/'+template+'/images/new.png">';var atts="";$.each(message.attachments,function(index,attach){atts+=" | "+attach.name+"("+formatBytes(attach.fsize)+") "+img+" | ";});html+=newRow(get_lang('Attachments: '),atts);} 
     585else if(message.attachment&&message.attachment.number_attachments>0){var img='<img style="margin-bottom : -5px; cursor : pointer;" src="templates/'+template+'/images/new.png">';var atts="";$.each(message.attachment.names.split(','),function(index,attach){atts+=" | "+attach+img+" |";});html+=newRow(get_lang('Attachments: '),atts);} 
     586html+='</tbody></table>';if(message.body){html+="<hr>"+message.body;} 
     587else if(message._return){html+="<hr>"+message._return;} 
     588html+="<hr>";window_print.document.write(html);});window_print.document.close();window_print.print();} 
     589if(proxy_mensagens.is_local_folder(get_current_folder())){var msgs=Array();var _msg={};$.each(get_selected_messages().split(','),function(index,value){_msg.header=expresso_mail_archive.getMessageHeaders(value);_msg.body=expresso_mail_archive.getMessageBodies([value]);msgs.push($.extend({},_msg.header,_msg.body[0]));});print_bodies(msgs);} 
     590else{$.ajax({url:"controller.php?"+$.param({action:"$this.imap_functions.getMessages",details:"all",messages:messages,}),success:function(data){data=connector.unserialize(data);if(data){print_bodies(data[get_current_folder()]);}},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});}} 
     591function newTbody(messages){var tbody=$("<tbody>");$.each(messages,function(index,msg){var newTr=make_tr_message(msg,get_current_folder());if(msg.attachments&&msg.attachments.length){$(newTr).find('td').eq(1).css({'background-image':'url(templates/'+template+'/images/mail-gifs.gif)','background-position':'0 -242px'});} 
     592tbody.append(newTr);});return tbody.html();} 
     593function print_messages_list(){var print_list=function(tbody,folder){var print_width=screen.width-200;var x=((screen.width-print_width)/2);var y=((screen.height-400)/2)-35;var window_print=window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);seekDot=(is_ie?/width=24/gi:/width="24"/gi);var thead="<tr class=\"message_header\"> <td width=\"3%\"></td><td width=\"2%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"1%\"></td><td width=\"2%\"></td><td width=\"2%\"></td><td width=\"2%\"></td><td id=\"message_header_SORTFROM_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">De</td><td id=\"message_header_SORTSUBJECT_0\" class=\"th_resizable\" align=\"left\" width=\"*\">Assunto</td><td id=\"message_header_SORTARRIVAL_0\" class=\"th_resizable\" align=\"center\" width=\"11%\"><b>Data</b><img src=\"templates/default/images/arrow_descendant.gif\"></td><td id=\"message_header_SORTSIZE_0\" class=\"th_resizable\" align=\"left\" width=\"11%\">Tamanho</td></tr>";tbody=tbody.replace(seekDot,"style='display:none'");seekDot=(is_ie?/width=16/gi:/width="16"/gi);tbody=tbody.replace(seekDot,"style='display:none'");seekDot=(is_ie?/width=12/gi:/width="12"/gi);tbody=tbody.replace(seekDot,"style='display:none'");while(1){try{window_print.document.open();var html='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
     594+'<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
     595+cabecalho+'</h4><hr>' 
     596+'<h2>'+$('#border_id_0').html()+'</h2><hr/><blockquote><font size="2">' 
     597+'<table width="100%" cellpadding="0" cellspacing="0">' 
     598+'<thead>'+thead+'</thead><tbody>'+tbody+'</tbody>' 
     599+'</table></font></blockquote></body></html>';window_print.document.write(html);window_print.document.close();break;} 
     600catch(e){}} 
     601window_print.document.close();window_print.print();} 
     602msgs_number=get_selected_messages();if(msgs_number==false){var tbody=Element('divScrollMain_0').firstChild.firstChild.innerHTML;print_list(tbody);}else{var messages={};messages[get_current_folder()]=msgs_number.split(',');if(proxy_mensagens.is_local_folder(get_current_folder())){var msgs=Array();$.each(msgs_number.split(','),function(index,value){msgs.push(expresso_mail_archive.getMessageHeaders(value));});print_list(newTbody(msgs));} 
     603else{$.ajax({url:"controller.php?"+$.param({action:"$this.imap_functions.getMessages",details:"all",messages:messages,}),success:function(data){data=connector.unserialize(data);if(data){data=data[get_current_folder()];print_list(newTbody(data));}},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});}}} 
     604function print_all(){if(typeof(currentTab)=="string"&&currentTab.indexOf("local")!=-1){alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");return true;} 
     605if(openTab.type[currentTab]==2) 
     606return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab);if(currentTab!=0&&currentTab.indexOf("search_")>=0){return print_search_msg();} 
     607if(get_selected_messages()==false){return print_messages_list();} 
     608var msg='Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.';$.Zebra_Dialog(msg,{'type':'question','buttons':['Sim','Não'],'overlay_opacity':'0.5','onClose':function(caption){if(caption=='Sim'){return print_messages_bodies();} 
     609else{return print_messages_list();}}});} 
     610function print_msg(msg_folder,msg_number,border_ID){var div_toaddress_full=Element("div_toaddress_full_"+border_ID);var div_ccaddress_full=Element("div_ccaddress_full_"+border_ID);var div_ccoaddress_full=Element("div_ccoaddress_full_"+border_ID);var printListTO=(div_toaddress_full&&div_toaddress_full.style.display!='none')||toaddress_array[border_ID].length==1?true:false;var printListCC=(div_ccaddress_full&&div_ccaddress_full.style.display!='none')||!div_ccaddress_full?true:false;var printListCCO=(div_ccoaddress_full&&div_ccoaddress_full.style.display!='none')||!div_ccoaddress_full?true:false;var sender=Element('sender_values_'+border_ID)?Element('sender_values_'+border_ID).value:null;var from=Element('from_values_'+border_ID)?Element('from_values_'+border_ID).value:null;var to=Element('to_values_'+border_ID)?Element('to_values_'+border_ID).value:null;var cco=Element('cco_values_'+border_ID)?Element('cco_values_'+border_ID).value:null;var cc=Element('cc_values_'+border_ID)?Element('cc_values_'+border_ID).value:null;var date=Element('date_'+border_ID);var subject=Element('subject_'+border_ID);var attachments=Element('attachments_'+border_ID);var body=Element('body_'+border_ID);var att='';var countAtt=0;if(attachments!==null) 
     611{countAtt=attachments.getElementsByTagName('a').length;if(countAtt===1) 
     612att=attachments.getElementsByTagName('a')[0].innerHTML;else if(countAtt>1) 
     613for(var i=1;i<attachments.getElementsByTagName('a').length;i++) 
     614att+=" | "+attachments.getElementsByTagName('a')[i].innerHTML;} 
     615var body=Element('body_'+border_ID);var print_width=screen.width-200;var x=((screen.width-print_width)/2);var y=((screen.height-400)/2)-35;var window_print=window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);if(window_print==null){alert(get_lang("The Anti Pop-Up is enabled. Allow this site (%1) for print.",document.location.hostname));return;} 
     616if(attachments!=null) 
     617{var a=attachments.childNodes;var attachs="";var show_attachs="";var ii=a.length>2?2:1;for(i=ii;i<a.length;i++) 
     618{if(a[i].tagName&&a[i].tagName=="A") 
     619{attachs+=a[i].innerHTML;}} 
     620show_attachs="<tr><td width=7%><font size='2'>"+get_lang('Attachments: ')+" </font></td><td><font size='2'>"+attachs+"</font></td></tr>";}else{show_attachs="";} 
     621var current_path=window.location.href.substr(0,window.location.href.lastIndexOf("/"));var head='<head><title></title><link href="'+current_path+'/templates/default/main.css" type="text/css" rel="stylesheet"></head>';window_print.document.write(head);while(1){try{var html='<body style="overflow:auto">';html+=cabecalho+'</h4><hr>';html+='<table><tbody>';if(sender) 
     622html+="<tr><td width=7% noWrap><font size='2'>"+get_lang('Sent by')+": </font></td><td><font size='2'>"+sender+"</font></td></tr>";if(from) 
     623html+="<tr><td width=7%><font size='2'>"+get_lang('From')+": </font></td><td><font size='2'>"+from+"</font></td></tr>";if(to){if(!printListTO) 
     624to='Os destinatários não estão sendo exibidos para esta impressão';html+="<tr><td width=7%><font size='2'>"+get_lang('To')+": </font></td><td><font size='2'>"+to+"</font></td></tr>";} 
     625if(cc){if(!printListCC) 
     626cc='Os destinatários não estão sendo exibidos para esta impressão';html+="<tr><td width=7%><font size='2'>"+get_lang('Cc')+": </font></td><td><font size='2'>"+cc+"</font></td></tr>";} 
     627if(cco){if(!printListCCO) 
     628cco='Os destinatários não estão sendo exibidos para esta impressão';html+="<tr><td width=7%><font size='2'>"+get_lang('Cco')+": </font></td><td><font size='2'>"+cco+"</font></td></tr>";} 
     629if(date) 
     630html+="<tr><td width=7%><font size='2'>"+get_lang('Date')+": </font></td><td><font size='2'>"+date.innerHTML+"</font></td></tr>";html+="<tr><td width=7%><font size='2'>"+get_lang('Subject')+": </font></td><td><font size='2'>"+subject.innerHTML+"</font></td></tr>";if(countAtt>0){html+="<tr><td width=7%><font size='2'>"+get_lang('Attachments: ')+"</font></td><td><font size='2'>"+att+"</font></td></tr>";} 
     631html+="</tbody></table><hr>";window_print.document.write(html+body.innerHTML);var tab_tags=window_print.document.getElementsByTagName("IMG");var link=location.href.replace(/\/expressoMail1_2\/(.*)/,"");for(var i=0;i<tab_tags.length;i++){var _img=tab_tags[i].cloneNode(true);if(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER=')>-1) 
     632_img.src=link+'/expressoMail1_2/'+tab_tags[i].src.substr(tab_tags[i].src.toUpperCase().indexOf('INC/GET_ARCHIVE.PHP?MSGFOLDER='));tab_tags[i].parentNode.replaceChild(_img,tab_tags[i]);} 
     633break;} 
     634catch(e){}} 
     635window_print.document.close();window_print.print();} 
     636function empty_trash_imap(shared,button,type){if(shared){var folder_part=$(button).parents("li:first").attr("id").split(cyrus_delimiter);var folder=folder_part[0]+cyrus_delimiter+folder_part[1];} 
     637var handler_empty_trash=function(data){Element('chk_box_select_all_messages').checked=false;if(!verify_session(data)) 
     638return;update_quota(get_current_folder());draw_new_tree_folder();draw_tree_labels();if(data){if(typeof(data)=="object"){if(data[1]=="Permission denied"){cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);return write_msg(get_lang("Permission denied"));}} 
     639write_msg(get_lang('Your Trash folder was empty.'));if(get_current_folder()==mount_url_folder(["INBOX",special_folders["Trash"]])){draw_paging(0);remove_rows(document.getElementById("table_box"));Element('tot_m').innerHTML=0;Element('new_m').innerHTML=0;}} 
     640else 
     641write_msg(get_lang('ERROR emptying your Trash folder.'));} 
     642$.Zebra_Dialog(get_lang('Do you really want to empty your trash folder?'),{'type':'question','title':get_lang('Empty Trash'),'buttons':[get_lang("Yes"),get_lang("No")],'overlay_opacity':0.5,'onClose':function(caption){if(caption==get_lang("Yes")){if(type.id=="local_messages_trash"){expresso_mail_archive.deleteAllMessages(type.id);cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);}else{cExecute("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultTrashFolder"+(shared?"&shared="+folder:""),handler_empty_trash);}}}});} 
     643function empty_spam_imap(shared,button,type){if(shared){var folder_part=$(button).parents("li:first").attr("id").split(cyrus_delimiter);var folder=folder_part[0]+cyrus_delimiter+folder_part[1];} 
     644var handler_empty_spam=function(data){Element('chk_box_select_all_messages').checked=false;if(!verify_session(data)) 
     645return;if(get_current_folder()==mount_url_folder(["INBOX",special_folders["Spam"]])){draw_paging(0);remove_rows(document.getElementById("table_box"));} 
     646draw_new_tree_folder();draw_tree_labels();update_quota(get_current_folder());if(data){if(typeof(data)=="object"){if(data[1]=="Permission denied"){cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);return write_msg(get_lang("Permission denied"));}else{write_msg(get_lang('Your Spam folder was empty.'));}}else{write_msg(get_lang('Your Spam folder was empty.'));}} 
     647else 
     648write_msg(get_lang('ERROR emptying your Spam folder.'));} 
     649$.Zebra_Dialog(get_lang('Do you really want to empty your spam folder?'),{'type':'question','title':get_lang('Empty Spam'),'buttons':[get_lang("Yes"),get_lang("No")],'overlay_opacity':0.5,'onClose':function(caption){if(caption==get_lang("Yes")){if(type.id=="local_messages_spam"){expresso_mail_archive.deleteAllMessages(type.id);cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);}else{cExecute("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultSpamFolder"+(shared?"&shared="+folder:""),handler_empty_spam);}}}});} 
     650function buildExportArchiver(msgsArchive,name_box){var hand_export=function(data){if(!data){write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'))}else if(data["empty_folder"]||data=="empty_folder"){write_msg(get_lang("The selected folder is empty."));}else 
     651download_attachments(null,null,data,null,null,get_current_folder().split("_")[2]+'.zip');} 
     652var array=new Array();for(var i=0;i<msgsArchive.length;i++){eachMsg={'ContentType':msgsArchive[i].ContentType,'from':{'email':msgsArchive[i].from.email,'full':msgsArchive[i].from.full,'name':msgsArchive[i].from.name},'msg_sample':msgsArchive[i].msg_sample,'subject':msgsArchive[i].subject,'to':{'email':msgsArchive[i].to.email,'full':msgsArchive[i].to.full,'name':msgsArchive[i].to.name},'toaddress2':msgsArchive[i].toaddress2,'msg_number':msgsArchive[i].msg_number,'date':new Date(msgsArchive[i].timestamp).toString()};array.push(eachMsg);} 
     653$.ajax({type:"POST",url:"controller.php?action=$this.exporteml.export_all_byLocalFolder",data:{folder:name_box,type:"msg_local",messages:array}}).done(function(msg){hand_export(msg.split('"')[1]);});} 
     654function export_all_selected_msgs(){if(get_current_folder().split("_")[0]=="local"){if(get_selected_messages().indexOf(",")!=-1){expresso_mail_archive.getSomeMsgs(get_selected_messages().split(","));}else{expresso_mail_archive.getSomeMsgs([get_selected_messages()]);} 
     655buildExportArchiver(expresso_mail_archive.getSomeMsg,get_current_folder().split("_")[2]);}else{if(openTab.type[currentTab]>1){source_msg(currentTab,openTab.imapBox[currentTab]);return;} 
     656var search=false;if(currentTab!=0&&currentTab.indexOf("search_")>=0){var id_border=currentTab.replace(/[a-zA-Z_]+/,"");var msgs_to_export=this.get_selected_messages_search();if(!msgs_to_export){write_msg(get_lang('No selected message.'));return;} 
     657var selected_param="";msgs_to_export=msgs_to_export.split(",");search=true;for(i=0;i<msgs_to_export.length;i++){var tr=Element(msgs_to_export[i]+'_s'+id_border);msg_to_move=(tr.getAttribute('name')==null?get_current_folder():tr.getAttribute('name'));selected_param+=','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");}}else{var msgs_to_export=this.get_selected_messages();} 
     658var handler_export_all_selected_msgs=function(data){if(!data){write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'));} 
     659else{var filename='mensagens.zip';if(data[0].match(/\.eml$/gi)){filename=data[1]+'.eml';} 
     660download_attachments(null,null,data[0],null,null,filename);}} 
     661if(search){cExecute("$this.exporteml.makeAll",handler_export_all_selected_msgs,"folder=false&msgs_to_export="+selected_param);}else if(msgs_to_export){cExecute("$this.exporteml.makeAll",handler_export_all_selected_msgs,"folder="+get_current_folder()+"&msgs_to_export="+msgs_to_export);write_msg(get_lang('You must wait while the messages will be exported...'));} 
     662else 
     663write_msg(get_lang('No selected message.'));}} 
     664function select_all_search_messages(select,aba){if(select){jQuery("#"+aba+" tr").each(function(i,o){o.firstChild.firstChild.checked=true;add_className(o,'selected_msg');});}else{jQuery("#"+aba+" tr").each(function(i,o){o.firstChild.firstChild.checked=false;remove_className(o,'selected_msg');});}} 
     665function verify_session(data){if(data&&data.imap_error){if(data.imap_error=="nosession") 
     666write_msg(get_lang("your session could not be verified."));else 
     667write_msg(data.imap_error);return false;} 
     668else 
     669return true;} 
     670function save_image(e,thumb,file_type){file_type=file_type.replace("/",".");thumb.oncontextmenu=function(e){return false;} 
     671var _button=is_ie?window.event.button:e.which;var _target=is_ie?event.srcElement:e.target;if(_button==2||_button==3){var _params=_target.id.split(";;");download_attachments(Base64.encode(_params[0]),_params[1],_params[2],_params[3],_params[4],file_type);if($(_target).parent().attr("href").split("http").length>1){var part_find=thumb.toString().split("#");var part2_find=part_find[1].split("/temp");var part_id_dwl=part2_find[0]+'/temp/download'+part2_find[1];download_local_attachment(part_id_dwl);return;}else{var _params=_target.id.split(";;");download_attachments(_params[0],_params[1],_params[2],_params[3],_params[4],file_type);}}} 
     672function save_image2(info){var obj=jQuery.parseJSON(unescape(info));download_attachments(obj.folder,obj.message,obj.thumbIndex,obj.pid,obj.encoding,obj.type.replace("/","."));} 
     673function nospam(msgs_number,border_ID,folder){if(folder=='null') 
     674folder=get_current_folder();var new_folder='';if(folder.substr(0,4)=='user'){arrayFolder=folder.split(cyrus_delimiter);new_folder='user'+cyrus_delimiter+arrayFolder[1];} 
     675else{new_folder='INBOX';} 
     676var new_folder_name=get_lang('INBOX');var handler_move_msgs=function(data){if(msgs_number=='selected') 
     677set_messages_flag("unseen","get_selected_messages");else 
     678proxy_mensagens.proxy_set_message_flag(msgs_number,"unseen");proxy_mensagens.proxy_move_messages(folder,msgs_number,border_ID,new_folder,new_folder_name);if(openTab.type[currentTab]>1) 
     679delete_border(currentTab,'false');} 
     680if(currentTab.toString().indexOf("_r")!=-1) 
     681msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));else if(msgs_number=='selected') 
     682msgs_number=get_selected_messages();if(currentTab==0) 
     683msgs_number=get_selected_messages();if(typeof currentTab=="string"&&currentTab.indexOf("search_")!="-1"){msgs_number="";var checked=$("#divScrollMain_"+currentTab.substr(currentTab.indexOf('_')+1,255)).find("tr input:checked");$.each(checked,function(index,value){if(value){if(index==0) 
     684msgs_number=$(value).parents("tr").attr("id");else 
     685msgs_number+=","+$(value).parents("tr").attr("id");}});} 
     686if(parseInt(msgs_number)>0||msgs_number.length>0) 
     687cExecute("$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);else 
     688write_msg(get_lang('No selected message.'));} 
     689function spam(folder,msgs_number,border_ID){if(folder=='null') 
     690folder=get_current_folder();var new_folder='';if(folder.substr(0,4)=='user') 
     691{arrayFolder=folder.split(cyrus_delimiter);new_folder='user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Spam'];} 
     692else 
     693{new_folder=mount_url_folder(["INBOX",special_folders["Spam"]]);} 
     694var new_folder_name='Spam';var not_opem_previus=true;var handler_move_msgs=function(data){proxy_mensagens.proxy_move_messages(folder,msgs_number,border_ID,new_folder,new_folder_name,not_opem_previus);if(openTab.type[currentTab]>1){if(preferences.delete_and_show_previous_message==1) 
     695delete_border(currentTab,'false');}} 
     696if(currentTab.toString().indexOf("_r")!=-1) 
     697msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));else if(currentTab!=0&&currentTab.indexOf("search_")>=0){var content_search=document.getElementById('content_id_'+currentTab);mount_url_folder(["INBOX",special_folders['Trash']]),'Trash',move_search_msgs('content_id_'+currentTab,mount_url_folder(["INBOX",special_folders["Spam"]]),special_folders['Spam']);refresh();return;}else if(msgs_number=='selected') 
     698msgs_number=get_selected_messages();if(currentTab==0) 
     699msgs_number=get_selected_messages();if(parseInt(msgs_number)>0||msgs_number.length>0) 
     700cExecute("$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);else 
     701write_msg(get_lang('No selected message.'));} 
    4542702function import_window() 
    4543 { 
    4544     if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    4545         alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    4546         return true; 
    4547     } 
    4548         var folder = {}; 
    4549         var importEmails = $("#importEmails"); 
    4550                 importEmails.html( DataLayer.render( BASE_PATH + "modules/mail/templates/importEmails.ejs", {})); 
    4551                 importEmails.dialog( 
    4552                 { 
    4553                         height          : 280, 
    4554                         width           : 500, 
    4555                         resizable       : false, 
    4556                         title           : get_lang('zip mails to import'), 
    4557                         modal           : true, 
    4558                         buttons         : [ 
    4559                                                          { 
    4560                                                                 text    : get_lang("Close"),  
    4561                                                                 click   : function() 
    4562                                                                 { 
    4563                                                                         importEmails.dialog("close").dialog("destroy"); 
    4564                                                                 } 
    4565                                                          }, 
    4566                                                          { 
    4567                                                                 text    : get_lang("Import"),  
    4568                                                                 click   : function() 
    4569                                                                 { 
    4570                                                                         var input_file   = importEmails.find("input[type=file]"); 
    4571                                                                         var input_hidden = importEmails.find("input[name=folder]");  
    4572                                                                          
    4573                                                                         if( input_file.attr("value") == "" ) 
    4574                                                                         { 
    4575                                                                                 $.Zebra_Dialog(get_lang("You must choose a file") + " !",{ 
    4576                                                                                         'type'                          : 'warning', 
    4577                                                                                         'overlay_opacity'       : '0.5', 
    4578                                                                                         'onClose'                       :  function(){ 
    4579                                                                                                 $("#importMessageAccordion").accordion('activate',0);    
    4580                                                                                         } 
    4581                                                                                 }); 
    4582                                                                         } 
    4583                                                                         else 
    4584                                                                         { 
    4585                                                                                 if( input_hidden.attr("value") == "" ) 
    4586                                                                                         $.Zebra_Dialog( get_lang("You must choose a folder") + " !" , { 
    4587                                                                                                 'type'                          : 'warning', 
    4588                                                                                                 'overlay_opacity'       : '0.5', 
    4589                                                                                                 'onClose'                       :  function(){ 
    4590                                                                                                         $("#importMessageAccordion").accordion('activate',1);    
    4591                                                                                                 } 
    4592                                                                                         }); 
    4593                                                                                 else 
    4594                                                                                 { 
    4595                                                                                         var handler_return = function(data) 
    4596                                                                                         { 
    4597                                                                                                 write_msg(get_lang('The import was executed successfully.')); 
    4598                                                                                                  
    4599                                                                                                 return_import_msgs( data, folder ); 
    4600                                                                                         } 
    4601                                                                                          
    4602                                                                                         var formSend =  document.getElementById("importFileMessages"); 
    4603                                                                                          
    4604                                                                                         importEmails.dialog("destroy"); 
    4605                                                                                          
    4606                                                                                         write_msg(get_lang('You must wait while the messages will be imported...')); 
    4607                                                                                          
    4608                                                                                         cExecuteForm('$this.imap_functions.import_msgs', formSend , handler_return ); 
    4609                                                                                 } 
    4610                                                                         } 
    4611                                                                 } 
    4612                                                          } 
    4613                                                 ], 
    4614                 open: function(event, ui)  
    4615                 { 
    4616                     if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    4617                 }, 
    4618                 close: function(event, ui)  
    4619                 { 
    4620                     if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    4621                 } 
    4622                 }); 
    4623  
    4624         importEmails.css("overflow","hidden"); 
    4625                  
    4626         importEmails.find("input[type=file]").change(function() 
    4627         {  
    4628                 var deniedExtension = true; 
    4629                 var fileExtension       = ["eml","zip"]; 
    4630                 var fileName            = importEmails.find("input[type=file]").attr('value'); 
    4631                         fileName                = fileName.split("."); 
    4632                  
    4633                 if( fileName[1] ) 
    4634                 { 
    4635                         for( var i in fileExtension ) 
    4636                         { 
    4637                                 if( fileExtension[i].toUpperCase() === fileName[1].toUpperCase() ) 
    4638                                 { 
    4639                                         deniedExtension = false; 
    4640                                         break; 
    4641                                 } 
    4642                         } 
    4643                 } 
    4644  
    4645                 if( deniedExtension ) 
    4646                 { 
    4647                         $.Zebra_Dialog( get_lang('File extension forbidden or invalid file') , { 
    4648                                 'type'                          : 'warning', 
    4649                                 'overlay_opacity'       : '0.5' 
    4650                         }); 
    4651                 } 
    4652  
    4653                 $("#lblFileName").html( ( !deniedExtension ) ? importEmails.find("input[type=file]").attr('value') : "" ); 
    4654                  
    4655         });      
    4656                  
    4657         $("#importMessageAccordion").accordion();        
    4658  
    4659         var foldersTree = jQuery("#foldertree-container-importMessage") 
    4660         .removeClass('empty-container') 
    4661         .html(DataLayer.render(BASE_PATH + 'api/templates/foldertree.ejs', {folders: [cp_tree1, cp_tree2, [] ]})) 
    4662         .find("#foldertree").treeview() 
    4663         .click(function(event) 
    4664         { 
    4665                 //request new selected folder messages 
    4666                 var target = $(event.target); 
    4667  
    4668                 if( target.is('.collapsable-hitarea, .expandable-hitarea, .lastCollapsable, .lastExpandable, .treeview') ) 
    4669                     return; 
    4670  
    4671                 if( !target.attr('id') ) 
    4672                     target = target.parent(); 
    4673  
    4674         if (target.attr('id') == "foldertree") return; 
    4675                  
    4676                 folder.id               = target.attr('id'); 
    4677                 folder.child    = target.find('.folder'); 
    4678                 folder.caption  = target.find('span').attr('title');                     
    4679                  
    4680                 $('#foldertree-container-importMessage .filetree span.folder.selected').removeClass('selected'); 
    4681                 if(!target.is('#foldertree > .expandable, #foldertree > .collapsable')) 
    4682                         $(target).children('.folder').addClass('selected'); 
    4683                  
    4684                 selectedFolder = { 
    4685                     id: folder.id,  
    4686                     name: folder.child.attr('title'), 
    4687                     'class': folder.child.attr('class') 
    4688                 }; 
    4689                  
    4690                 importEmails.find("input[name=folder]").attr("value", folder.id); 
    4691         }); 
    4692          
    4693         $("#lblFileName").prev().css("margin-left", "10px"); 
    4694         $("#lblFileName").prev().css("font-weight", "bold"); 
    4695 } 
    4696  
    4697 function return_import_msgs(data, folder) 
    4698 { 
    4699         if(data && data.error){ 
    4700                 write_msg(data.error); 
    4701         } 
    4702         else 
    4703         { 
    4704                 if(data == 'Post-Content-Length') 
    4705                         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)); 
    4706                 else 
    4707                 {       /* 
    4708                         * @author Rommel Cysne (rommel.cysne@serpro.gov.br) 
    4709                         * @date 2009/05/15 
    4710                         * Foi colocado um teste para verificar se a pasta selecionada, passada como parametro, 
    4711                         * eh uma pasta local (qualquer uma) 
    4712                         */ 
    4713                         var er = /^local_/; 
    4714                         if ( er.test(folder.id) ) 
    4715                         { 
    4716                                 alert( "Mensagens não podem ser importadas em pastas locais" ); 
    4717                                 //archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 
    4718                                 //cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); 
    4719                         } 
    4720                         else 
    4721                         { 
    4722                                 if( openTab.imapBox[0] == folder.id ) 
    4723                                 { 
    4724                                         openTab.imapBox[0] = ''; 
    4725                                         change_folder(folder.id, folder.caption); 
    4726                                 } 
    4727                                  
    4728                                 refresh(); 
    4729                         } 
    4730                 } 
    4731         } 
    4732  
    4733 } 
    4734  
    4735 //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
    4736 function decodeCreateSchedulable(type, ID){ 
    4737         var startEvent = new Date();   
    4738         if(startEvent.toString('mm') < 30)  
    4739                 startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
    4740         else  
    4741                 startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
    4742         var endEvent = function(date){  
    4743         if(!!User.preferences.defaultCalendar){  
    4744                 return  new Date(parseInt(date.getTime()) +  
    4745                         (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
    4746                         (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    4747                         (User.preferences.defaultDuration * 60000) 
    4748                 )); 
    4749         }else  
    4750                 return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
    4751         };        
    4752  
    4753         var emails = $("#to_values_"+ID).val().split(','); 
    4754          
    4755         var schedulable = {}; 
    4756          
    4757         schedulable = {  
    4758                 acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
    4759                 alarms: [], 
    4760                 allDay: false, 
    4761                 attachments: [], 
    4762                 isAttendee: true, 
    4763                 attendee: '',//TODOOOOOO, 
    4764                 category: '', 
    4765                 'class': '1', 
    4766                 delegatedFrom: {}, 
    4767                 endDate: startEvent.toString(User.preferences.dateFormat), 
    4768                 startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
    4769                 startHour: startEvent.toString(User.preferences.hourFormat), 
    4770                 endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
    4771                 timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
    4772                 summary : $("#subject_"+ID).text(), 
    4773                 description : $("#body_" + ID).text(), 
    4774                 startTime: startEvent.getTime(), 
    4775                 endTime: endEvent(startEvent), 
    4776                 timezones: Timezone.timezones, 
    4777                 me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
    4778                 organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
    4779                 statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
    4780                 location: '', 
    4781                 attendee: $.map(emails, function( mail ){                        
    4782                         var contact = false; 
    4783                         var decoded =  Encoder.htmlDecode(mail); 
    4784                         var newAttendeeName = ""; 
    4785  
    4786                         var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
    4787                         var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
    4788  
    4789  
    4790                         var user = DataLayer.get('user', ["=", "mail", mail], true); 
    4791                          
    4792                         if( $.type(user) == "array" ) 
    4793                                 user = user[0]; 
    4794  
    4795                         if(user != ''){ 
    4796                                 //user = {name : name , mail : mail}; 
    4797                                 if(User.me.mail == user.mail) 
    4798                                         return(null); 
    4799                                 user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
    4800  
    4801                                 return  DataLayer.merge({ 
    4802                                         name: user.name, 
    4803                                         mail: user.mail, 
    4804                                         acl:  'r', 
    4805                                         delegatedFrom: '0', 
    4806                                         status: '4', 
    4807                                         isExternal: user.isExternal 
    4808                                 }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
    4809                         }else if(mail.match(/[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])/)){ 
    4810                                  
    4811                                 var userId = DataLayer.put('user', { 
    4812                                 name: name,  
    4813                                 mail: mail,  
    4814                                 isExternal: '1' 
    4815                                 }); 
    4816                                 var newAttendeeId = DataLayer.put('participant', { 
    4817                                 user: userId,  
    4818                                 isExternal: '1' 
    4819                                 }); 
    4820  
    4821                                 return  { 
    4822                                         id: newAttendeeId, 
    4823                                         name: name, 
    4824                                         mail: mail, 
    4825                                         acl:  'r', 
    4826                                         delegatedFrom: '0', 
    4827                                         status: '4', 
    4828                                         isExternal: '1' 
    4829                                 }; 
    4830                                  
    4831                         }else 
    4832                                 return (null); 
    4833                 }) 
    4834         }; 
    4835  
    4836         schedulable  = DataLayer.merge(schedulable,  
    4837                 type == 'event' ?  
    4838                 {calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], calendars: Calendar.calendars} 
    4839                 : {group: Calendar.groups[0].id, groups: Calendar.groups, percentage: 0, isOrganizer: true} 
    4840         ); 
    4841          
    4842         return schedulable; 
    4843              
    4844  
    4845 } 
    4846  
    4847 function import_implements_calendar(){ 
    4848  
    4849         if(typeof(Encoder) == "undefined"){ 
    4850                 /* 
    4851                 * Deve-se centralizar as informações do usuário logado afim de não incluir 
    4852                 * arquivos de modulos distintos para este fim. 
    4853                 */ 
    4854                  
    4855                 //$.ajax({ url: "../expressoCalendar/index.php", async: false}); 
    4856                 //$.ajax({url: "../prototype/modules/calendar/js/calendar.date.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4857                 $.ajax({url: "../prototype/modules/calendar/js/load.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4858                 $.ajax({url: "../prototype/modules/calendar/js/map.disponibility.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4859                 $.ajax({url: "../prototype/modules/calendar/js/helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4860                 $.ajax({url: "../prototype/modules/calendar/js/task.helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4861                 //$.ajax({ url: "../prototype/modules/calendar/js/timezone.js", async: false}); 
    4862                 //$.ajax({ url: "../prototype/modules/calendar/js/calendar.codecs.js", async: false}); 
    4863                 $.ajax({url: "../prototype/plugins/encoder/encoder.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4864                 $.ajax({url: "../prototype/plugins/jquery.spinner/jquery.spinner.min.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4865                 //$.ajax({url: "../prototype/plugins/dateFormat/dateFormat.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4866  
    4867                 $.ajax({url: "../prototype/plugins/fullcalendar/fullcalendar.js", async: false , beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    4868                  
    4869                  
    4870                 DataLayer.dispatchPath = "../prototype/";        
    4871         } 
    4872 } 
    4873  
    4874  
    4875 function select_import_folder(){ 
    4876         //Begin: Verify if the file extension is allowed. 
    4877         var imgExtensions = new Array("eml","zip"); 
    4878         var inputFile = document.form_import.file_1; 
    4879         if(!inputFile.value){ 
    4880                 alert(get_lang('File extension forbidden or invalid file') + '.'); 
    4881                 return false; 
    4882         } 
    4883         var fileExtension = inputFile.value.split("."); 
    4884         fileExtension = fileExtension[(fileExtension.length-1)]; 
    4885         var deniedExtension = true; 
    4886         for(var i=0; i<imgExtensions.length; i++) { 
    4887                 if(imgExtensions[i].toUpperCase() == fileExtension.toUpperCase()) { 
    4888                         deniedExtension = false; 
    4889                         break; 
    4890                 } 
    4891         } 
    4892         if(deniedExtension) { 
    4893                 alert(get_lang('File extension forbidden or invalid file') + '.'); 
    4894                 return false; 
    4895         } 
    4896         arrayJSWin['import_window'].close(); 
    4897                 connector.loadScript('wfolders'); 
    4898  
    4899         if ( typeof(wfolders) == "undefined" ) 
    4900                 setTimeout( 'select_import_folder()', 500 ); 
    4901         else 
    4902                 wfolders.makeWindow('null','import'); 
    4903 } 
    4904     //Verifica o contexto de importação 
    4905     function decodeOwner(){ 
    4906         owner = User.me.id; 
    4907         var imapBox = openTab.imapBox[currentTab].split(cyrus_delimiter); 
    4908         if(imapBox.length > 1){ 
    4909             var user = DataLayer.get('user', {filter: ['=','uid',imapBox[1]]});              
    4910             owner = $.isArray(user) ? user[0].id : user.id; 
    4911         }        
    4912         return owner; 
    4913     } 
    4914  
    4915    function import_calendar(data){ 
    4916         var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
    4917         var logUser; 
    4918         var up; 
    4919         var owner; 
    4920  
    4921         function handler_import_calendar(data){ 
    4922             if(data === true){ 
    4923                 write_msg(get_lang("The event was imported successfully.")); 
    4924             } 
    4925             else if( data['url'] ) 
    4926             { 
    4927                 var form = document.createElement( "form" ); 
    4928  
    4929                 form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
    4930                 form.setAttribute( "method", "POST" ); 
    4931  
    4932                 document.body.appendChild( form ); 
    4933  
    4934                 form.submit(); 
    4935             } 
    4936             else 
    4937                 write_msg(get_lang(data)); 
    4938         }    
    4939         if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
    4940             import_implements_calendar(); 
    4941                 $( "#import-dialog" ).dialog({ 
    4942                     autoOpen: false, 
    4943                     height: 220, 
    4944                     modal: true, 
    4945                     resizable : false, 
    4946                     open: function(event, ui) { 
    4947                         if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    4948                     }, 
    4949                     close: function(event, ui){ 
    4950                         event.stopPropagation(); 
    4951                         if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    4952                     }, 
    4953                     closeOnEscape: true 
    4954                 }); 
    4955                     
    4956                 $.ajax({ 
    4957                     url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
    4958                     async: false, 
    4959                     success: function(data){ 
    4960                         data = connector.unserialize(data); 
    4961                         var createDialog = function(typeImport, propaget){ 
    4962                                                 
    4963                             if(typeof(typeImport) == "object"){ 
    4964                                 var calendarIds = !!typeImport.calendar ? typeImport.calendar : Calendar[typeImport.type]; 
    4965                                 typeImport = typeImport.action; 
    4966                             } 
    4967                                                     
    4968                             switch(parseInt(typeImport)){ 
    4969                                 case 1: 
    4970                                 case 7: 
    4971                                 case 10: 
    4972                                     $("#select-agenda").html(''); 
    4973  
    4974                                     var options = ''; 
    4975  
    4976                                     if(calendarIds){ 
    4977                                         for(var i = 0; i < calendarIds.length; i++) 
    4978                                             options += '<option value="'+calendarIds[i]+'">'+Calendar.signatureOf[calendarIds[i]].calendar.name+'</option>' 
    4979                                     } 
    4980  
    4981                                     $("#select-agenda").append(options); 
    4982                                     $("#select-agenda").css("display", "block"); 
    4983  
    4984                                     $("#import-dialog" ).dialog({ 
    4985                                         buttons: { 
    4986                                             Cancel: function() { 
    4987                                                 $( this ).dialog( "close" ); 
    4988                                             }, 
    4989                                             "Importar" : function(){ 
    4990                                                     $.ajax({ 
    4991                                                         url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner()+'&cirus_delimiter='+cyrus_delimiter, 
    4992                                                         success: function(msg){ 
    4993                                                             var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento/tarefa para a agenda "; 
    4994                                                             alert( alt + $("#select-agenda option:selected").text() ); 
    4995                                                         } 
    4996                                                     }); 
    4997                                                     $( this ).dialog( "close" ); 
    4998                                             } 
    4999                                         } 
    5000                                     }); 
    5001      
    5002                                     if(typeImport == 7){ 
    5003                                         $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 
    5004                                         $("#import-dialog").find('#select-status').attr('disabled','disabled'); 
    5005                                     } 
    5006                                     break; 
    5007                                 case 3: 
    5008                                     $.ajax({ 
    5009                                         url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    5010                                         success: function(msg){ 
    5011                                             alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi removido " : "Ocorreu um erro ao remover o evento/tarefa" ); 
    5012                                         } 
    5013                                     }); 
    5014                                     return; 
    5015                                     break;  
    5016                                 case 5: 
    5017                                     $.ajax({ 
    5018                                         url: 'controller.php?action='+import_url+'&from_ajax=true&selected=true&cirus_delimiter='+cyrus_delimiter, 
    5019                                         success: function(msg){ 
    5020                                             alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento/tarefa" ); 
    5021                                         } 
    5022                                     }); 
    5023                                     return; 
    5024                                     break;  
    5025                                 case 6: 
    5026                                         var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 
    5027                                         $.ajax({ 
    5028                                             url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(), 
    5029                                             success: function(msg){ 
    5030                                                 if(acceptedSuggestion) 
    5031                                                     alert( ( ( connector.unserialize(msg)) == "ok") ? "Evento/tarefa atualizado com sucesso " : "Ocorreu um erro ao atualizar o evento" ); 
    5032                                                 } 
    5033                                         }); 
    5034                                         return; 
    5035                                         break; 
    5036                                         case 9: 
    5037                                             alert('Seu evento/tarefa não possui alterações!'); 
    5038                                             return; 
    5039                                             break; 
    5040                                         case 11: 
    5041                                             alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
    5042                                             return; 
    5043                                             break; 
    5044                                         default: 
    5045                                             up = true; 
    5046                                             $("#select-agenda").css("display", "none"); 
    5047                                             $("#import-dialog" ).children("p:first-child").css("display", "none"); 
    5048                                             $("#import-dialog" ).dialog({ 
    5049                                                 height: 160, 
    5050                                                 title: 'Atualizar Evento/Tarefa', 
    5051                                                 buttons: { 
    5052                                                     Cancel: function() { 
    5053                                                         $( this ).dialog( "close" ); 
    5054                                                     }, 
    5055                                                     "Atualizar": function() { 
    5056                                                         $.ajax({ 
    5057                                                             url: "controller.php?action="+import_url+'&from_ajax=true&cirus_delimiter='+cyrus_delimiter+'&selected='+ (parseInt(typeImport) == 2 || parseInt(typeImport) == 4 ? 'true' : $("#select-agenda option:selected").val()) +'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
    5058                                                             success: function(msg){ 
    5059                                                                 alert( ( (msg = connector.unserialize(msg)) == "ok") ? "Atualizado com sucesso" : "Ocorreu um erro ao atualizar o evento" ); 
    5060                                                             } 
    5061                                                         }); 
    5062                                                         $( this ).dialog( "close" ); 
    5063                                                     } 
    5064                                                 }, 
    5065                                                 close:function(event, ui)  
    5066                                                 { 
    5067                                                     if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    5068                                                 }, 
    5069                                                 open: function(event, ui)  
    5070                                                 { 
    5071                                                     if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    5072                                                 } 
    5073                                             }); 
    5074                                             $(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar"); 
    5075                                     } 
    5076                                     $( "#import-dialog" ).dialog( "open" ); 
    5077                                                                                                                                     
    5078                                 }; 
    5079                                 createDialog(data, true); 
    5080                                     
    5081                             }, 
    5082                             beforeSend: function( jqXHR, settings ){ 
    5083                                 connector.showProgressBar(); 
    5084                             }, 
    5085                             complete: function( jqXHR, settings ){ 
    5086                                 connector.hideProgressBar(); 
    5087                             } 
    5088                         });     
    5089                     } 
    5090                     else 
    5091                     { 
    5092                         if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
    5093                             cExecute( import_url + "&from_ajax=true", handler_import_calendar); 
    5094                         } 
    5095                     } 
    5096     } 
    5097      
    5098 function open_msg_part(data){ 
    5099         var handler_open_msg_part = function (data) 
    5100         { 
    5101             if(data.append == 1) 
    5102             { 
    5103                 proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,show_msg); 
    5104                 partMsgs.push(data.msg_number); 
    5105         } 
    5106             else 
    5107                write_msg(data.append); 
    5108         } 
    5109         cExecute('$this.imap_functions.ope_msg_part&msg_folder='+data+'&save_folder=INBOX'+cyrus_delimiter+special_folders['Trash'] , handler_open_msg_part);    
    5110 } 
    5111 function hack_sent_queue(data,rowid_message) { 
    5112  
    5113         if (data.success != true) { 
    5114                 queue_send_errors = true; 
    5115                 expresso_local_messages.set_problem_on_sent(rowid_message,data); 
    5116         } 
    5117         else { 
    5118                 expresso_local_messages.set_as_sent(rowid_message); 
    5119                 if(document.getElementById('_action')) { //Não posso manter esse elemento, pois o connector irá criar outro com o mesmo id para a próxima mensagem. 
    5120                         el =document.getElementById('_action'); 
    5121                         father = el.parentNode; 
    5122                         father.removeChild(el); 
    5123                 } 
    5124                 send_mail_from_queue(false); 
    5125         } 
    5126 } 
    5127  
    5128 function send_mail_from_queue(first_pass) { 
    5129         if(first_pass) 
    5130                 modal('send_queue'); 
    5131         var num_msgs = expresso_local_messages.get_num_msgs_to_send(); 
    5132         if (num_msgs <= 0) { 
    5133                 close_lightbox(); 
    5134                 return; 
    5135         } 
    5136         document.getElementById('text_send_queue').innerHTML = get_lang('Number of messages to send:')+' '+num_msgs; 
    5137         var handler_send_queue_message = function(data,rowid_message) { 
    5138                 hack_sent_queue(data,this.ID_tmp); 
    5139         } 
    5140         var msg_to_send = expresso_local_messages.get_form_msg_to_send(); 
    5141         if(!is_ie) 
    5142                 ID_tmp = msg_to_send.rowid.value; 
    5143         else {//I.E kills me of shame... 
    5144                 for (var i=0;i<msg_to_send.length;i++) { 
    5145                         if(msg_to_send.elements[i].name=='rowid') { 
    5146                                 ID_tmp = msg_to_send.elements[i].value; 
    5147                                 break; 
    5148                         } 
    5149                 } 
    5150         } 
    5151         expresso_local_messages.set_as_sent(ID_tmp); 
    5152         cExecuteForm("$this.imap_functions.send_mail", msg_to_send, handler_send_queue_message,"queue_"+ID_tmp); 
    5153         send_mail_from_queue(false); 
    5154 } 
    5155  
    5156 function check_mail_in_queue() { 
    5157         var num_msgs = expresso_local_messages.get_num_msgs_to_send(); 
    5158         if(num_msgs>0) { 
    5159                 control = confirm(get_lang('You have messages to send. Want you to send them now?')); 
    5160                 if(control) { 
    5161                         send_mail_from_queue(true); 
    5162                 } 
    5163                 return true; 
    5164         } 
    5165         else { 
    5166                 return false; 
    5167         } 
    5168 } 
    5169  
    5170 function force_check_queue() { 
    5171         if(!check_mail_in_queue()) { 
    5172                 write_msg(get_lang("No messages to send")); 
    5173         } 
    5174 } 
    5175  
    5176 function create_new_local_folder(parentFolderId, name){ 
    5177  
    5178         parentFolderId = parentFolderId.split("_"); 
    5179         var parentName = parentFolderId[2]; 
    5180  
    5181     expresso_mail_archive.createFolder(parentName, name); 
    5182  
    5183 } 
    5184  
    5185 function create_new_folder(name_folder, base_path){ 
    5186         //Limit reached folders 
    5187         if(preferences.imap_max_folders){ 
    5188                 if(cp_tree1.length == parseInt(preferences.imap_max_folders)){ 
    5189                         $(".folders-loading").removeClass("folders-loading"); 
    5190                         cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    5191                         return write_msg(get_lang("Limit reached folders")); 
    5192                 } 
    5193         } 
    5194          
    5195         $.ajax({ 
    5196                 url : "controller.php?action=$this.imap_functions.create_mailbox", 
    5197                 type : "POST", 
    5198                 async : false, 
    5199                 data : "newp="+name_folder+"&base_path="+base_path, 
    5200                 success : function(data){ 
    5201                         data = connector.unserialize(data); 
    5202                         if(data == "Mailbox already exists"){ 
    5203                                 write_msg(get_lang("Mailbox already exists")); 
    5204                         }else if(data.substring(data.indexOf("Permission"), data.length) == "Permission denied"){ 
    5205                                 $(".folders-loading").removeClass("folders-loading"); 
    5206                                 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    5207                                 return write_msg(get_lang("Permission denied")); 
    5208                         } 
    5209                         cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
    5210                 }, 
    5211                 beforeSend: function( jqXHR, settings ){ 
    5212                         connector.showProgressBar(); 
    5213                 }, 
    5214                   complete: function( jqXHR, settings ){ 
    5215                         connector.hideProgressBar(); 
    5216                 } 
    5217         }); 
    5218 } 
    5219  
    5220 function searchEmail(emailString){ 
    5221                 var arrayInvalidEmails = new  Array(); 
    5222                 arrayInvalidEmails[1] = ''; 
    5223                 var email; 
    5224                 var arrayEmailsFull = new Array(); 
    5225                 arrayEmailsFull = emailString.split(','); 
    5226                 var er_Email =  new RegExp("<(.*?)>");  
    5227                 // TODO Use validateEmail of common functions ! 
    5228                 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})$"); 
    5229  
    5230                 for (i=0; i < arrayEmailsFull.length; i++){ 
    5231                         email = er_Email.exec(arrayEmailsFull[i]); 
    5232                         tempEmail = email == null  ? arrayEmailsFull[i]:email[1]; 
    5233                         tempEmail = tempEmail.replace(/^\s+|\s+$/g,""); 
    5234                          
    5235                         if (tempEmail != '') { 
    5236                                 singleEmail = er_ValidaEmail.exec(tempEmail); 
    5237                                 if (singleEmail == null) { 
    5238                                         arrayInvalidEmails[0] = true; 
    5239                                         arrayInvalidEmails[1] += (email == null ? arrayEmailsFull[i] : email[1]) + ""; 
    5240                                 } 
    5241                         } 
    5242                 } 
    5243  
    5244                 return arrayInvalidEmails; 
    5245 } 
    5246  
    5247                 /* Função que chama a tela para o usuário reportar um erro no email. */  
    5248                 function reports_window(currentTab){  
    5249                         ID_msg = currentTab.substr(0,currentTab.indexOf("_"));  
    5250                         report_wind.make_report_window(ID_msg);  
    5251                 }  
    5252  
    5253  
    5254 DataLayer.codec( "message", "detail", { 
    5255    
    5256         decoder:function( form ){ 
    5257             var border_id = form.abaID;   
    5258             //Defininindo pasta a ser salva mensagem 
    5259                         var user_selected = $('#content_id_'+border_id).find('.from-select option:selected').text(); 
    5260                         var str_begin_name = user_selected.indexOf('<') + 1; 
    5261                         var str_end_name = user_selected.indexOf('@'); 
    5262                         var user_selected_name = user_selected.substring(str_begin_name, str_end_name); 
    5263                          
    5264                         if(user_selected.length > 0) 
    5265                                 var user_selected_email = user_selected.match(/<([^<]*)>[\s]*$/)[1];     
    5266                         else  
    5267                                 var user_selected_email = User.me.mail; 
    5268                          
    5269                         if(user_selected_email == User.me.mail){ 
    5270                                 var prefix = 'INBOX'; 
    5271                         }else{ 
    5272                                 var prefix = 'user' + cyrus_delimiter+user_selected_name; 
    5273                                  
    5274                                 /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 
    5275                                 DataLayer.remove('folder', false); 
    5276                                 DataLayer.get('folder'); 
    5277                                  
    5278                                 var has_folder = DataLayer.get('folder', prefix + cyrus_delimiter + draftsfolder); 
    5279                                 if(!has_folder){ 
    5280                                         create_new_folder(draftsfolder, prefix); 
    5281                                 } 
    5282                         } 
    5283                          
    5284             var folder_id = (openTab.imapBox[border_id] && openTab.type[border_id] < 6) ? openTab.imapBox[border_id]: prefix + cyrus_delimiter + draftsfolder; 
    5285             form.folder = folder_id; 
    5286             form.body = RichTextEditor.getData("body_"+border_id); 
    5287                         form.type =  RichTextEditor.plain[border_id] ? 'plain' : 'html';             
    5288             form.attachments = listAttachment(border_id); 
    5289             form.uidsSave = uidsSave[border_id].toString(); 
    5290             return( form ); 
    5291        
    5292         }, 
    5293  
    5294         encoder:function( pref ){ 
    5295                
    5296                 return( pref ); 
    5297         } 
    5298  
    5299 }); 
    5300  
    5301 DataLayer.codec( "mailAttachment", "detail", { 
    5302    
    5303         decoder: function(evtObj){ 
    5304          
    5305                 if( notArray = $.type(evtObj) !== "array" ) 
    5306                         evtObj = [ evtObj ]; 
    5307  
    5308                 var res = $.map(evtObj, function( form){ 
    5309                         return [$.map(form.files , function( files){ 
    5310                                         return {source: files , disposition : form['attDisposition'+form.abaID]}; 
    5311                                 })]; 
    5312                 }); 
    5313         return notArray ? res[0] : res; 
    5314         }, 
    5315        
    5316         encoder: function(){} 
    5317  
    5318        
    5319 }); 
    5320  
    5321 function formatBytes(bytes) { 
    5322         if (bytes >= 1000000000) { 
    5323                 return (bytes / 1000000000).toFixed(2) + ' GB'; 
    5324         } 
    5325         if (bytes >= 1000000) { 
    5326                 return (bytes / 1000000).toFixed(2) + ' MB'; 
    5327         } 
    5328         if (bytes >= 1000) { 
    5329                 return (bytes / 1000).toFixed(2) + ' KB'; 
    5330         } 
    5331         return bytes + ' B'; 
    5332 }; 
    5333  
    5334 function truncate(text, size){ 
    5335         var result = text; 
    5336         if(text.length > size){ 
    5337                 result = text.substring(0,size) + '...'; 
    5338         } 
    5339         return result; 
    5340 } 
    5341  
    5342 /* 
    5343 * @author Marcos Luiz Wilhelm (marcoswilhelm@gmail.com) 
    5344 * @date 2012/07/17 
    5345 * @brief Break out emails only with comma out of quote marks 
    5346 */ 
    5347 function break_comma (originalText){ 
    5348         var quotesMarks = false; 
    5349         var completeString = ""; 
    5350         var brokenEmails = new Array(); 
    5351         originalText+=","; 
    5352         for(i=0; i<originalText.length; i++){ 
    5353                 var character = originalText.substr(i,1); 
    5354                 if(character == "\""){ 
    5355                         quotesMarks = !quotesMarks; 
    5356                 } 
    5357                 if(!quotesMarks){ 
    5358                         if(character == ","){ 
    5359                                 brokenEmails.push(completeString); 
    5360                                 completeString = ""; 
    5361                         } 
    5362                         else 
    5363                                 completeString+=character;       
    5364                 } 
    5365                 else 
    5366                         completeString+=character; 
    5367         } 
    5368         return brokenEmails; 
    5369 } 
    5370  
    5371 DataLayer.links('message'); 
    5372 DataLayer.poll('message',30); 
    5373  
    5374 //MAILARCHIVER-04 
    5375 function services_retry(){ 
    5376     try{ 
    5377         connector.purgeCache();  
    5378         //window.alert('expresso var dump:\nenabled = ' + expresso_mail_archive.enabled + '\ntimer = ' + expresso_mail_archive.timer +'\ncounter = ' + expresso_mail_archive.counter); 
    5379  
    5380         if ((expresso_mail_archive.enabled == null) && (expresso_mail_archive.timer == null) && (expresso_mail_archive.counter > 0)){ 
    5381             connector.hideProgressBar(); 
    5382             //connector.resetProgressBarText(); 
    5383             write_msg(get_lang('Sorry, but you need to reload this web page. Click at reload page at web browsing top navigation.')); 
    5384             return; 
    5385         } 
    5386  
    5387         if (arguments.length == 0){ 
    5388            write_msg(get_lang('Trying to communicate with Mail Archiver...')); 
    5389         } 
    5390  
    5391         connector.showProgressBar(); 
    5392         var head = document.getElementById('send_queue'); 
    5393          
    5394         var script_xdr= document.createElement('script'); 
    5395         var script_xdr_tag_id = 'mail_archiver_retry_xdr';     
    5396          
    5397         var script_request= document.createElement('script'); 
    5398         var script_request_tag_id = 'mail_archiver_retry_request';                 
    5399          
    5400         var script_cors= document.createElement('script'); 
    5401         var script_cors_tag_id = 'mail_archiver_retry_cors'; 
    5402          
    5403         var script_utils= document.createElement('script'); 
    5404         var script_utils_tag_id = 'mail_archiver_retry_utils'; 
    5405  
    5406         if(document.getElementById(script_xdr_tag_id)){ 
    5407             document.getElementById(script_xdr_tag_id).parentNode.removeChild(document.getElementById(script_xdr_tag_id)); 
    5408         } 
    5409  
    5410         if(document.getElementById(script_request_tag_id)){ 
    5411             document.getElementById(script_request_tag_id).parentNode.removeChild(document.getElementById(script_request_tag_id)); 
    5412         } 
    5413  
    5414         if(document.getElementById(script_cors_tag_id)){ 
    5415             document.getElementById(script_cors_tag_id).parentNode.removeChild(document.getElementById(script_cors_tag_id)); 
    5416         } 
    5417          
    5418         if(document.getElementById(script_utils_tag_id)){ 
    5419             document.getElementById(script_utils_tag_id).parentNode.removeChild(document.getElementById(script_utils_tag_id)); 
    5420         }         
    5421  
    5422         //IE XDR ADAPTER 
    5423         script_xdr.type= 'text/javascript'; 
    5424         script_xdr.src=  mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcservutil/cxf-addon-xdr-adapter.js'; 
    5425         script_xdr.id= script_xdr_tag_id; 
    5426         head.appendChild(script_xdr); 
    5427  
    5428         //CXF TRANSPORT OBJECT 
    5429         script_request.type= 'text/javascript'; 
    5430         script_request.src= mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcservutil/cxf-addon-cors-request-object.js'; 
    5431         script_request.id= script_request_tag_id; 
    5432         head.appendChild(script_request); 
    5433  
    5434         //CXF CORS OBJECT 
    5435         script_cors.type= 'text/javascript'; 
    5436         script_cors.src= mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcservutil/cxf-addon-cors-utils.js'; 
    5437         script_cors.id= script_cors_tag_id; 
    5438         head.appendChild(script_cors); 
    5439  
    5440         //CXF CORE 
    5441         script_utils.type= 'text/javascript'; 
    5442         script_utils.src= mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcserv/ArchiveServices?js&nojsutils'; 
    5443         script_utils.id= script_utils_tag_id; 
    5444         head.appendChild(script_utils); 
    5445  
    5446         ttintval = window.setTimeout('check_services_restart()', 1000); 
    5447     } 
    5448     catch (e){ 
    5449         write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
    5450         connector.hideProgressBar(); 
    5451         //connector.resetProgressBarText(); 
    5452         check_services_tryouts = 1; 
    5453     } 
    5454 } 
    5455  
    5456 //MAILARCHIVER-05 
    5457 function check_services_restart(){ 
    5458     try{ 
    5459                 write_msg(get_lang('Wait: attempt %1 from %2...', check_services_tryouts, check_services_tryouts_limit)); 
    5460         if(check_services_tryouts <= 5){ 
    5461             try{ 
    5462                 ArchiveServices = new web_service_mailarchiver_serpro__ArchiveServices(); 
    5463                 ArchiveServices.url = mail_archive_protocol + "://" + mail_archive_host + ":" + mail_archive_port + "/arcserv/ArchiveServices"; 
    5464                 window.clearInterval(ttintval); 
    5465                 expresso_mail_archive.Restart(expresso_mail_archive); 
    5466             } 
    5467             catch (e){ 
    5468                 check_services_tryouts++; 
    5469                 window.clearInterval(ttintval); 
    5470                 ttintval = window.setTimeout('services_retry(true)',1); 
    5471             } 
    5472         } 
    5473         else{ 
    5474             write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
    5475             connector.hideProgressBar(); 
    5476             //connector.resetProgressBarText(); 
    5477             check_services_tryouts = 1; 
    5478         } 
    5479     } 
    5480     catch (e){ 
    5481         write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
    5482         connector.hideProgressBar(); 
    5483         //connector.resetProgressBarText(); 
    5484         check_services_tryouts = 1; 
    5485     } 
    5486 } 
    5487  
     703{if(typeof(currentTab)=="string"&&currentTab.indexOf("local")!=-1){alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");return true;} 
     704var folder={};var importEmails=$("#importEmails");importEmails.html(DataLayer.render(BASE_PATH+"modules/mail/templates/importEmails.ejs",{}));importEmails.dialog({height:280,width:500,resizable:false,title:get_lang('zip mails to import'),modal:true,buttons:[{text:get_lang("Close"),click:function() 
     705{importEmails.dialog("close").dialog("destroy");}},{text:get_lang("Import"),click:function() 
     706{var input_file=importEmails.find("input[type=file]");var input_hidden=importEmails.find("input[name=folder]");if(input_file.attr("value")=="") 
     707{$.Zebra_Dialog(get_lang("You must choose a file")+" !",{'type':'warning','overlay_opacity':'0.5','onClose':function(){$("#importMessageAccordion").accordion('activate',0);}});} 
     708else 
     709{if(input_hidden.attr("value")=="") 
     710$.Zebra_Dialog(get_lang("You must choose a folder")+" !",{'type':'warning','overlay_opacity':'0.5','onClose':function(){$("#importMessageAccordion").accordion('activate',1);}});else 
     711{var handler_return=function(data) 
     712{write_msg(get_lang('The import was executed successfully.'));return_import_msgs(data,folder);if(typeof(shortcut)!='undefined')shortcut.disabled=false;} 
     713var formSend=document.getElementById("importFileMessages");importEmails.dialog("destroy");write_msg(get_lang('You must wait while the messages will be imported...'));cExecuteForm('$this.imap_functions.import_msgs',formSend,handler_return);}}}}],open:function(event,ui) 
     714{if(typeof(shortcut)!='undefined')shortcut.disabled=true;},close:function(event,ui) 
     715{if(typeof(shortcut)!='undefined')shortcut.disabled=false;},destroy:function(event,ui) 
     716{if(typeof(shortcut)!='undefined')shortcut.disabled=false;}});importEmails.css("overflow","hidden");importEmails.find("input[type=file]").change(function() 
     717{var deniedExtension=true;var fileExtension=["eml","zip"];var fileName=importEmails.find("input[type=file]").attr('value');fileName=fileName.split(".");if(fileName[1]) 
     718{for(var i in fileExtension) 
     719{if(fileExtension[i].toUpperCase()===fileName[1].toUpperCase()) 
     720{deniedExtension=false;break;}}} 
     721if(deniedExtension) 
     722{$.Zebra_Dialog(get_lang('File extension forbidden or invalid file'),{'type':'warning','overlay_opacity':'0.5'});} 
     723$("#lblFileName").html((!deniedExtension)?importEmails.find("input[type=file]").attr('value'):"");});$("#importMessageAccordion").accordion();var foldersTree=jQuery("#foldertree-container-importMessage").removeClass('empty-container').html(DataLayer.render(BASE_PATH+'api/templates/foldertree.ejs',{folders:[cp_tree1,cp_tree2,[]]})).find("#foldertree").treeview().click(function(event) 
     724{var target=$(event.target);if(target.is('.collapsable-hitarea, .expandable-hitarea, .lastCollapsable, .lastExpandable, .treeview')) 
     725return;if(!target.attr('id')) 
     726target=target.parent();if(target.attr('id')=="foldertree")return;folder.id=target.attr('id');folder.child=target.find('.folder');folder.caption=target.find('span').attr('title');$('#foldertree-container-importMessage .filetree span.folder.selected').removeClass('selected');if(!target.is('#foldertree > .expandable, #foldertree > .collapsable')) 
     727$(target).children('.folder').addClass('selected');selectedFolder={id:folder.id,name:folder.child.attr('title'),'class':folder.child.attr('class')};importEmails.find("input[name=folder]").attr("value",folder.id);});$("#lblFileName").prev().css("margin-left","10px");$("#lblFileName").prev().css("font-weight","bold");} 
     728function return_import_msgs(data,folder) 
     729{if(data&&data.error){write_msg(data.error);} 
     730else 
     731{if(data=='Post-Content-Length') 
     732write_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));else 
     733{var er=/^local_/;if(er.test(folder.id)) 
     734{alert("Mensagens não podem ser importadas em pastas locais");} 
     735else 
     736{if(openTab.imapBox[0]==folder.id) 
     737{openTab.imapBox[0]='';change_folder(folder.id,folder.caption);} 
     738refresh();}}}} 
     739function decodeCreateSchedulable(type,ID){var startEvent=new Date();if(startEvent.toString('mm')<30) 
     740startEvent.add({minutes:(30-parseInt(startEvent.toString('mm')))});else 
     741startEvent.add({hours:1,minutes:'-'+startEvent.toString('mm')});var endEvent=function(date){if(!!User.preferences.defaultCalendar){return new Date(parseInt(date.getTime())+ 
     742(!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration?(Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration*60000):(User.preferences.defaultDuration*60000)));}else 
     743return new Date(parseInt(date.getTime())+(User.preferences.defaultDuration*60000));};var emails=$("#to_values_"+ID).val().split(',');var schedulable={};schedulable={acl:{inviteGuests:true,organization:true,participationRequired:false,read:true,write:true},alarms:[],allDay:false,attachments:[],isAttendee:true,attendee:'',category:'','class':'1',delegatedFrom:{},endDate:startEvent.toString(User.preferences.dateFormat),startDate:endEvent(startEvent).toString(User.preferences.dateFormat),startHour:startEvent.toString(User.preferences.hourFormat),endHour:endEvent(startEvent).toString(User.preferences.hourFormat),timezone:User.preferences.defaultCalendar?Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone:User.preferences.timezone,summary:$("#subject_"+ID).text(),description:$("#body_"+ID).text(),startTime:startEvent.getTime(),endTime:endEvent(startEvent),timezones:Timezone.timezones,me:{name:User.me.name,mail:User.me.mail,acl:'rowi',status:'1',delegatedFrom:'0',id:User.me.id},organizer:{name:User.me.name,mail:User.me.mail,acl:'rowi',status:'1',delegatedFrom:'0',id:User.me.id},statusParticipants:{accepted:0,cancelled:0,tentative:0,unanswered:emails.length},location:'',attendee:$.map(emails,function(mail){var contact=false;var decoded=Encoder.htmlDecode(mail);var newAttendeeName="";var name=decoded.match(/"([^"]*)"/)?decoded.match(/"([^"]*)"/)[1]:'';var mail=decoded.match(/<([^<]*)>[\s]*$/)?decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase():decoded;var user=DataLayer.get('user',["=","mail",mail],true);if($.type(user)=="array") 
     744user=user[0];if(user!=''){if(User.me.mail==user.mail) 
     745return(null);user.isExternal=(!!user&&!(!!user.isExternal))?0:1;return DataLayer.merge({name:user.name,mail:user.mail,acl:'r',delegatedFrom:'0',status:'4',isExternal:user.isExternal},!!user.id?{id:DataLayer.put('participant',{user:user.id,isExternal:user.isExternal})}:{id:DataLayer.put('participant',{user:user})});}else if(mail.match(/[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])/)){var userId=DataLayer.put('user',{name:name,mail:mail,isExternal:'1'});var newAttendeeId=DataLayer.put('participant',{user:userId,isExternal:'1'});return{id:newAttendeeId,name:name,mail:mail,acl:'r',delegatedFrom:'0',status:'4',isExternal:'1'};}else 
     746return(null);})};schedulable=DataLayer.merge(schedulable,type=='event'?{calendar:User.preferences.defaultCalendar?User.preferences.defaultCalendar:Calendar.calendars[0],calendars:Calendar.calendars}:{group:Calendar.groups[0].id,groups:Calendar.groups,percentage:0,isOrganizer:true});return schedulable;} 
     747function import_implements_calendar(){if(typeof(Encoder)=="undefined"){$.ajax({url:"../prototype/modules/calendar/js/load.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/modules/calendar/js/map.disponibility.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/modules/calendar/js/helpers.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/modules/calendar/js/task.helpers.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/plugins/encoder/encoder.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/plugins/jquery.spinner/jquery.spinner.min.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});$.ajax({url:"../prototype/plugins/fullcalendar/fullcalendar.js",async:false,beforeSend:function(xhr){xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}});DataLayer.dispatchPath="../prototype/";}} 
     748function select_import_folder(){var imgExtensions=new Array("eml","zip");var inputFile=document.form_import.file_1;if(!inputFile.value){alert(get_lang('File extension forbidden or invalid file')+'.');return false;} 
     749var fileExtension=inputFile.value.split(".");fileExtension=fileExtension[(fileExtension.length-1)];var deniedExtension=true;for(var i=0;i<imgExtensions.length;i++){if(imgExtensions[i].toUpperCase()==fileExtension.toUpperCase()){deniedExtension=false;break;}} 
     750if(deniedExtension){alert(get_lang('File extension forbidden or invalid file')+'.');return false;} 
     751arrayJSWin['import_window'].close();connector.loadScript('wfolders');if(typeof(wfolders)=="undefined") 
     752setTimeout('select_import_folder()',500);else 
     753wfolders.makeWindow('null','import');} 
     754function decodeOwner(){owner=User.me.id;var imapBox=openTab.imapBox[currentTab].split(cyrus_delimiter);if(imapBox.length>1){var user=DataLayer.get('user',{filter:['=','uid',imapBox[1]]});owner=$.isArray(user)?user[0].id:user.id;} 
     755return owner;} 
     756function import_calendar(data){var import_url='$this.db_functions.import_vcard&msg_folder='+data;var logUser;var up;var owner;function handler_import_calendar(data){if(data===true){write_msg(get_lang("The event was imported successfully."));} 
     757else if(data['url']) 
     758{var form=document.createElement("form");form.setAttribute("action",DEFAULT_URL+data['url']+'&isPost=true');form.setAttribute("method","POST");document.body.appendChild(form);form.submit();} 
     759else 
     760write_msg(get_lang(data));} 
     761if(defaultCalendar=="expressoCalendar"&&$("#expressoCalendarid")[0]){import_implements_calendar();$("#import-dialog").dialog({autoOpen:false,height:220,modal:true,resizable:false,open:function(event,ui){if(typeof(shortcut)!='undefined')shortcut.disabled=true;},close:function(event,ui){event.stopPropagation();if(typeof(shortcut)!='undefined')shortcut.disabled=false;},closeOnEscape:true});$.ajax({url:"controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(),async:false,success:function(data){data=connector.unserialize(data);var createDialog=function(typeImport,propaget){if(typeof(typeImport)=="object"){var calendarIds=!!typeImport.calendar?typeImport.calendar:Calendar[typeImport.type];typeImport=typeImport.action;} 
     762switch(parseInt(typeImport)){case 1:case 7:case 10:$("#select-agenda").html('');var options='';if(calendarIds){for(var i=0;i<calendarIds.length;i++) 
     763options+='<option value="'+calendarIds[i]+'">'+Calendar.signatureOf[calendarIds[i]].calendar.name+'</option>'} 
     764$("#select-agenda").append(options);$("#select-agenda").css("display","block");$("#import-dialog").dialog({buttons:{Cancel:function(){$(this).dialog("close");},"Importar":function(){$.ajax({url:"controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner()+'&cirus_delimiter='+cyrus_delimiter,success:function(msg){var alt=((msg=connector.unserialize(msg))=="ok")?"Importado com sucesso para ":"Ocorreu um erro ao importar o evento/tarefa para a agenda ";alert(alt+$("#select-agenda option:selected").text());}});$(this).dialog("close");}}});if(typeImport==7){$("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change');$("#import-dialog").find('#select-status').attr('disabled','disabled');} 
     765break;case 3:$.ajax({url:"controller.php?action="+import_url+'&from_ajax=true&selected=true',success:function(msg){alert(((connector.unserialize(msg))=="ok")?"Seu evento/tarefa foi removido ":"Ocorreu um erro ao remover o evento/tarefa");}});return;break;case 5:$.ajax({url:'controller.php?action='+import_url+'&from_ajax=true&selected=true&cirus_delimiter='+cyrus_delimiter,success:function(msg){alert(((connector.unserialize(msg))=="ok")?"Seu evento/tarefa foi Atualizado com sucesso":"Ocorreu um erro ao atualizar evento/tarefa");}});return;break;case 6:var acceptedSuggestion=confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?");$.ajax({url:"controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(),success:function(msg){if(acceptedSuggestion) 
     766alert(((connector.unserialize(msg))=="ok")?"Evento/tarefa atualizado com sucesso ":"Ocorreu um erro ao atualizar o evento");}});return;break;case 9:alert('Seu evento/tarefa não possui alterações!');return;break;case 11:alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!');return;break;default:up=true;$("#select-agenda").css("display","none");$("#import-dialog").children("p:first-child").css("display","none");$("#import-dialog").dialog({height:160,title:'Atualizar Evento/Tarefa',buttons:{Cancel:function(){$(this).dialog("close");},"Atualizar":function(){$.ajax({url:"controller.php?action="+import_url+'&from_ajax=true&cirus_delimiter='+cyrus_delimiter+'&selected='+(parseInt(typeImport)==2||parseInt(typeImport)==4?'true':$("#select-agenda option:selected").val())+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(),success:function(msg){alert(((msg=connector.unserialize(msg))=="ok")?"Atualizado com sucesso":"Ocorreu um erro ao atualizar o evento");}});$(this).dialog("close");}},close:function(event,ui) 
     767{if(typeof(shortcut)!='undefined')shortcut.disabled=false;},open:function(event,ui) 
     768{if(typeof(shortcut)!='undefined')shortcut.disabled=true;}});$(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar");} 
     769$("#import-dialog").dialog("open");};createDialog(data,true);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     770else 
     771{if(confirm(get_lang("Do you confirm this import to your Calendar?"))){cExecute(import_url+"&from_ajax=true",handler_import_calendar);}}} 
     772function open_msg_part(data){var handler_open_msg_part=function(data) 
     773{if(data.append==1) 
     774{proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,show_msg);partMsgs.push(data.msg_number);} 
     775else 
     776write_msg(data.append);} 
     777cExecute('$this.imap_functions.ope_msg_part&msg_folder='+data+'&save_folder=INBOX'+cyrus_delimiter+special_folders['Trash'],handler_open_msg_part);} 
     778function hack_sent_queue(data,rowid_message){if(data.success!=true){queue_send_errors=true;expresso_local_messages.set_problem_on_sent(rowid_message,data);} 
     779else{expresso_local_messages.set_as_sent(rowid_message);if(document.getElementById('_action')){el=document.getElementById('_action');father=el.parentNode;father.removeChild(el);} 
     780send_mail_from_queue(false);}} 
     781function send_mail_from_queue(first_pass){if(first_pass) 
     782modal('send_queue');var num_msgs=expresso_local_messages.get_num_msgs_to_send();if(num_msgs<=0){close_lightbox();return;} 
     783document.getElementById('text_send_queue').innerHTML=get_lang('Number of messages to send:')+' '+num_msgs;var handler_send_queue_message=function(data,rowid_message){hack_sent_queue(data,this.ID_tmp);} 
     784var msg_to_send=expresso_local_messages.get_form_msg_to_send();if(!is_ie) 
     785ID_tmp=msg_to_send.rowid.value;else{for(var i=0;i<msg_to_send.length;i++){if(msg_to_send.elements[i].name=='rowid'){ID_tmp=msg_to_send.elements[i].value;break;}}} 
     786expresso_local_messages.set_as_sent(ID_tmp);cExecuteForm("$this.imap_functions.send_mail",msg_to_send,handler_send_queue_message,"queue_"+ID_tmp);send_mail_from_queue(false);} 
     787function check_mail_in_queue(){var num_msgs=expresso_local_messages.get_num_msgs_to_send();if(num_msgs>0){control=confirm(get_lang('You have messages to send. Want you to send them now?'));if(control){send_mail_from_queue(true);} 
     788return true;} 
     789else{return false;}} 
     790function force_check_queue(){if(!check_mail_in_queue()){write_msg(get_lang("No messages to send"));}} 
     791function create_new_local_folder(parentFolderId,name){parentFolderId=parentFolderId.split("_");var parentName=parentFolderId[2];expresso_mail_archive.createFolder(parentName,name);} 
     792function create_new_folder(name_folder,base_path){if(preferences.imap_max_folders){if(cp_tree1.length==parseInt(preferences.imap_max_folders)){$(".folders-loading").removeClass("folders-loading");cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);return write_msg(get_lang("Limit reached folders"));}} 
     793$.ajax({url:"controller.php?action=$this.imap_functions.create_mailbox",type:"POST",async:false,data:"newp="+name_folder+"&base_path="+base_path,success:function(data){data=connector.unserialize(data);if(data=="Mailbox already exists"){write_msg(get_lang("Mailbox already exists"));}else if(data.substring(data.indexOf("Permission"),data.length)=="Permission denied"){$(".folders-loading").removeClass("folders-loading");cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);return write_msg(get_lang("Permission denied"));} 
     794cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
     795function searchEmail(emailString){var arrayInvalidEmails=new Array();arrayInvalidEmails[1]='';var email;var arrayEmailsFull=new Array();arrayEmailsFull=emailString.split(',');var er_Email=new RegExp("<(.*?)>");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})$");for(i=0;i<arrayEmailsFull.length;i++){email=er_Email.exec(arrayEmailsFull[i]);tempEmail=email==null?arrayEmailsFull[i]:email[1];tempEmail=tempEmail.replace(/^\s+|\s+$/g,"");if(tempEmail!=''){singleEmail=er_ValidaEmail.exec(tempEmail);if(singleEmail==null){arrayInvalidEmails[0]=true;arrayInvalidEmails[1]+=(email==null?arrayEmailsFull[i]:email[1])+"";}}} 
     796return arrayInvalidEmails;} 
     797function reports_window(currentTab){ID_msg=currentTab.substr(0,currentTab.indexOf("_"));report_wind.make_report_window(ID_msg);} 
     798DataLayer.codec("message","detail",{decoder:function(form){var border_id=form.abaID;var user_selected=$('#content_id_'+border_id).find('.from-select option:selected').text();var str_begin_name=user_selected.indexOf('<')+1;var str_end_name=user_selected.indexOf('@');var user_selected_name=user_selected.substring(str_begin_name,str_end_name);if(user_selected.length>0) 
     799var user_selected_email=user_selected.match(/<([^<]*)>[\s]*$/)[1];else 
     800var user_selected_email=User.me.mail;if(user_selected_email==User.me.mail){var prefix='INBOX';}else{var prefix='user'+cyrus_delimiter+user_selected_name;DataLayer.remove('folder',false);DataLayer.get('folder');var has_folder=DataLayer.get('folder',prefix+cyrus_delimiter+draftsfolder);if(!has_folder){create_new_folder(draftsfolder,prefix);}} 
     801var folder_id=(openTab.imapBox[border_id]&&openTab.type[border_id]<6)?openTab.imapBox[border_id]:prefix+cyrus_delimiter+draftsfolder;form.folder=folder_id;form.body=RichTextEditor.getData("body_"+border_id);form.type=RichTextEditor.plain[border_id]?'plain':'html';form.attachments=listAttachment(border_id);form.uidsSave=uidsSave[border_id].toString();return(form);},encoder:function(pref){return(pref);}});DataLayer.codec("mailAttachment","detail",{decoder:function(evtObj){if(notArray=$.type(evtObj)!=="array") 
     802evtObj=[evtObj];var res=$.map(evtObj,function(form){return[$.map(form.files,function(files){return{source:files,disposition:form['attDisposition'+form.abaID]};})];});return notArray?res[0]:res;},encoder:function(){}});function formatBytes(bytes){if(bytes>=1000000000){return(bytes/1000000000).toFixed(2)+' GB';} 
     803if(bytes>=1000000){return(bytes/1000000).toFixed(2)+' MB';} 
     804if(bytes>=1000){return(bytes/1000).toFixed(2)+' KB';} 
     805return bytes+' B';};function truncate(text,size){var result=text;if(text.length>size){result=text.substring(0,size)+'...';} 
     806return result;} 
     807function break_comma(originalText){var quotesMarks=false;var completeString="";var brokenEmails=new Array();originalText+=",";for(i=0;i<originalText.length;i++){var character=originalText.substr(i,1);if(character=="\""){quotesMarks=!quotesMarks;} 
     808if(!quotesMarks){if(character==","){brokenEmails.push(completeString);completeString="";} 
     809else 
     810completeString+=character;} 
     811else 
     812completeString+=character;} 
     813return brokenEmails;} 
     814DataLayer.links('message');DataLayer.poll('message',30);function services_retry(){try{connector.purgeCache();if((expresso_mail_archive.enabled==null)&&(expresso_mail_archive.timer==null)&&(expresso_mail_archive.counter>0)){connector.hideProgressBar();write_msg(get_lang('Sorry, but you need to reload this web page. Click at reload page at web browsing top navigation.'));return;} 
     815if(arguments.length==0){write_msg(get_lang('Trying to communicate with Mail Archiver...'));} 
     816connector.showProgressBar();var head=document.getElementById('send_queue');var script_xdr=document.createElement('script');var script_xdr_tag_id='mail_archiver_retry_xdr';var script_request=document.createElement('script');var script_request_tag_id='mail_archiver_retry_request';var script_cors=document.createElement('script');var script_cors_tag_id='mail_archiver_retry_cors';var script_utils=document.createElement('script');var script_utils_tag_id='mail_archiver_retry_utils';if(document.getElementById(script_xdr_tag_id)){document.getElementById(script_xdr_tag_id).parentNode.removeChild(document.getElementById(script_xdr_tag_id));} 
     817if(document.getElementById(script_request_tag_id)){document.getElementById(script_request_tag_id).parentNode.removeChild(document.getElementById(script_request_tag_id));} 
     818if(document.getElementById(script_cors_tag_id)){document.getElementById(script_cors_tag_id).parentNode.removeChild(document.getElementById(script_cors_tag_id));} 
     819if(document.getElementById(script_utils_tag_id)){document.getElementById(script_utils_tag_id).parentNode.removeChild(document.getElementById(script_utils_tag_id));} 
     820script_xdr.type='text/javascript';script_xdr.src=mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/arcservutil/cxf-addon-xdr-adapter.js';script_xdr.id=script_xdr_tag_id;head.appendChild(script_xdr);script_request.type='text/javascript';script_request.src=mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/arcservutil/cxf-addon-cors-request-object.js';script_request.id=script_request_tag_id;head.appendChild(script_request);script_cors.type='text/javascript';script_cors.src=mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/arcservutil/cxf-addon-cors-utils.js';script_cors.id=script_cors_tag_id;head.appendChild(script_cors);script_utils.type='text/javascript';script_utils.src=mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/arcserv/ArchiveServices?js&nojsutils';script_utils.id=script_utils_tag_id;head.appendChild(script_utils);ttintval=window.setTimeout('check_services_restart()',1000);} 
     821catch(e){write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!'));connector.hideProgressBar();check_services_tryouts=1;}} 
     822function check_services_restart(){try{write_msg(get_lang('Wait: attempt %1 from %2...',check_services_tryouts,check_services_tryouts_limit));if(check_services_tryouts<=5){try{ArchiveServices=new web_service_mailarchiver_serpro__ArchiveServices();ArchiveServices.url=mail_archive_protocol+"://"+mail_archive_host+":"+mail_archive_port+"/arcserv/ArchiveServices";window.clearInterval(ttintval);expresso_mail_archive.Restart(expresso_mail_archive);} 
     823catch(e){check_services_tryouts++;window.clearInterval(ttintval);ttintval=window.setTimeout('services_retry(true)',1);}} 
     824else{write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!'));connector.hideProgressBar();check_services_tryouts=1;}} 
     825catch(e){write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!'));connector.hideProgressBar();check_services_tryouts=1;}} 
Note: See TracChangeset for help on using the changeset viewer.