Changeset 7550


Ignore:
Timestamp:
11/22/12 17:33:33 (11 years ago)
Author:
angelo
Message:

Ticket #3197 - Reduzir tempo de carregamento do modulo Expresso MailexpressoMail1_2/js/draw_api.min.js

Location:
trunk/expressoMail1_2/js
Files:
3 edited

Legend:

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

    r7548 r7550  
    26072607        td.innerHTML += "&nbsp"; 
    26082608        $(td).css({'background-image':'url(templates/'+template+'/images/mail-gifs.gif)','background-position': '0 -242px'}); 
    2609             $(td).find('img').css({'cursor':'pointer,title': info_msg.attachments[0].name}).click(function(){ 
     2609            $(td).find('img').css({'cursor':'pointer','title': info_msg.attachments[0].name}).click(function(){ 
    26102610            $("option_hide_more_"+ID).click(); 
    26112611        }); 
  • trunk/expressoMail1_2/js/main.js

    r7548 r7550  
    39483948                var newTr = make_tr_message(msg,get_current_folder()); 
    39493949                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'}); 
     3950                        $(newTr).find('td').eq(1).css({'background-image':'url(templates/'+template+'/images/mail-gifs.gif)','background-position': '0 -242px'}); 
    39513951                }                
    39523952                tbody.append(newTr); 
  • trunk/expressoMail1_2/js/main.min.js

    r7548 r7550  
    1  
    2 var 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,'');}} 
    3 function mount_url_folder(folders){return folders.join(cyrus_delimiter);} 
    4 function updateDynamicContact(userContacts){if(!userContacts) 
    5 userContacts=REST.get("/usercontacts",false);if(userContacts.collection&&!userContacts.collection.error){dynamicData=normalizeContacts(userContacts.collection.itens);}else{dynamicData=[];} 
    6 if(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 
    7 dynamic['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);});} 
    8 dynamicData=dynamicContactsList;} 
    9 function 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);});}}} 
    10 function 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);});}}} 
    11 function init(){if(!is_ie) 
    12 Element('tableDivAppbox').width='100%';var save_gmtoffset=function(data){gmtoffset=data;} 
    13 var 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;} 
    14 current_folder="INBOX";if(ArchiveServices) 
    15 expresso_mail_archive.Startup();else{if(preferences.use_local_messages=="1") 
    16 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!'));} 
    17 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);$.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") 
    18 Element('divAppboxHeader').innerHTML=title_app_menu;if(preferences.delete_trash_messages_after_n_days!=0) 
    19 cExecute("$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();} 
    20 DataLayer.get("folder",true);cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);if($.cookie('collapse_folders')=="true"){if(!is_ie) 
    21 $("#folderscol").addClass("hidden");else 
    22 $("#folderscol").hide();$(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-e").children().attr('title',"Expandir");refresh();resizeWindow();} 
    23 else{$(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-w").children().attr('title',"Ocultar");refresh();resizeWindow();} 
    24 $(".collapse_folders_td").attr('title',"Ocultar/Expandir").click(function(){if($("#folderscol").css("display")!="none"){if(!is_ie) 
    25 $("#folderscol").addClass("hidden");else 
    26 $("#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) 
    27 $("#folderscol").removeClass("hidden");else 
    28 $("#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();} 
    29 resizeWindow();}).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();}} 
    30 var handler_automatic_trash_cleanness=function(data){if(data!=false){write_msg(data.length+' '+Element('txt_clear_trash').value);}} 
    31 Element('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");} 
    32 function init_offline(){current_folder='local_Inbox';if(account_id!=null){if(!is_ie) 
    33 Element('tableDivAppbox').width='100%';else 
    34 connector.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');}) 
    35 cyrus_delimiter=Element('cyrus_delimiter').value;}} 
    36 function 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'} 
    37 if(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);}}} 
    38 else 
    39 {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> ';} 
    40 if(applet!=null) 
    41 {applet.style.top="-100px";applet.style.left="-100px";window.document.body.insertBefore(applet,document.body.lastChild);}} 
    42 function disable_field(field,condition){var comando="if ("+condition+") { document.getElementById('"+field.id+"').disabled=true;} else { document.getElementById('"+field.id+"').disabled=false; }";eval(comando);} 
    43 function remove_all_attachments(folder,msg_num){var call_back=function(data){if(!data.status){alert(data.msg);} 
    44 else{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"))) 
    45 cExecute("$this.imap_functions.remove_attachments&folder=" 
    46 +folder+"&msg_num="+msg_num,call_back);} 
     1// Tempo do auto refresh (em milisegundos) 
     2var time_refresh = 300000; 
     3 
     4//MAILARCHIVER-01 
     5// Intervalo de tempo de verificacao de comunicacao com o MailArchiver (milisegundos) 
     6var check_services_interval = 2000; 
     7// Numero de tentativas de reconexao 
     8var check_services_tryouts = 1; 
     9// Limite de tentativas de reconexao 
     10var check_services_tryouts_limit = 5; 
     11 
     12 
     13// tempo do auto save (em milisegundos) 
     14// 20000 = 20 segundos 
     15var autosave_time = 40000; 
     16var results_search_messages = "";  
     17var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>'; 
     18var auxNotificationCriteriaVetor = []; 
     19var auxNotification; 
     20 
     21var countNewMessage = 0; 
     22var notifyNewMessageFilter = []; 
     23 
     24var dynamicPersonalContacts = new Array(); 
     25var dynamicPersonalGroups = new Array(); 
     26var dynamicContacts = new Array(); 
     27var topContact = 0; 
     28DataLayer.get("folder", true); 
     29 
     30//Os IE's < 9 não possui suporte a trim() introduzida no JavaScript 1.8.1 
     31if(!String.prototype.trim){   
     32        String.prototype.trim = function(){ 
     33                return this.replace(/^\s+|\s+$/g,''); 
     34        }  
     35} 
     36 
     37function mount_url_folder(folders){ 
     38        return folders.join(cyrus_delimiter); 
     39}  
     40 
     41function 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 
     96function 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 
     119function 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 
     142function 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 
     335function 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 
     371function 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 
     431function 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*/ 
     438function 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} 
    47459function watch_changes_in_msg(border_id) 
    48 {if(document.getElementById('border_id_'+border_id)) 
    49 {function keypress_handler() 
    50 {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) 
    51 subject_obj.addEventListener('keypress',keypress_handler,false);else if(subject_obj.attachEvent) 
    52 subject_obj.attachEvent('onkeypress',keypress_handler);var to_obj=content.find('[name="input_to"]');if(to_obj.addEventListener) 
    53 to_obj.addEventListener('keypress',keypress_handler,false);else if(to_obj.attachEvent) 
    54 to_obj.attachEvent('onkeypress',keypress_handler);var cc_obj=content.find('[name="input_cc"]');if(cc_obj.addEventListener) 
    55 cc_obj.addEventListener('keypress',keypress_handler,false);else if(cc_obj.attachEvent) 
    56 cc_obj.attachEvent('onkeypress',keypress_handler);if(content.find('[name="input_cco"]').length){var cco_obj=content.find('[name="input_cco"]');if(cco_obj.addEventListener) 
    57 cco_obj.addEventListener('keypress',keypress_handler,false);else if(cco_obj.attachEvent) 
    58 cco_obj.attachEvent('onkeypress',keypress_handler);} 
    59 var txtarea_obj=Element('body_'+border_id);if(txtarea_obj){if((preferences.plain_text_editor==1)||(Element('body_')+border_id).checked){if(txtarea_obj.addEventListener) 
    60 txtarea_obj.addEventListener('keypress',keypress_handler,false);else if(txtarea_obj.attachEvent) 
    61 txtarea_obj.attachEvent('onkeypress',keypress_handler);}}}} 
    62 function 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);} 
    63 show_msg(data);} 
    64 proxy_mensagens.msg_img(msg_number,folder,call_back);} 
    65 function show_msg(msg_info){if(!verify_session(msg_info)) 
    66 return;if(typeof(msg_info)!='object') 
    67 alert(get_lang("Error in show_msg param is not object"));if(msg_info.status_get_msg_info=='false') 
    68 {write_msg(get_lang("Problems reading your message")+".");return;} 
    69 var handler_sendNotification=function(data){if(data) 
    70 write_msg(get_lang("A read confirmation was sent."));else 
    71 write_msg(get_lang("Error in SMTP sending read confirmation."));} 
    72 if(msg_info.source) 
    73 {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);} 
    74 return;} 
    75 if(msg_info.status_get_msg_info=='false') 
    76 {write_msg(get_lang("Problems reading your message")+".");return;} 
    77 if(msg_info.status=='false'){eval(msg_info.command_to_exec);} 
    78 else{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) 
    79 id_msg_read+="n";if(preferences.use_shortcuts=='1') 
    80 select_msg(ID,'null');var isPartMsg=false;for(var ii=0;ii<partMsgs.length;ii++) 
    81 if(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');}} 
    82 if(Element("border_id_"+id_msg_read)){alternate_border(id_msg_read);resizeWindow();} 
    83 else{var border_id=create_border(msg_info.subject,id_msg_read);if(border_id) 
    84 {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)) 
    85 {var sort_type=sort_box_type;sort_box_type=null;sort_box('UNSEEN',sort_type,false);delete selectedPagingMsgs[msg_info.msg_number];totalFolderMsgs--;}} 
    86 else 
    87 return;} 
    88 var domains="";if((msg_info.DispositionNotificationTo)&&(!msg_is_read(ID)||(msg_info.Recent=='N'))) 
    89 {if(preferences.notification_domains!=undefined&&preferences.notification_domains!="") 
    90 {domains=preferences.notification_domains.split(',');} 
    91 else 
    92 {var confNotification=true;} 
    93 for(var i=0;i<domains.length;i++) 
    94 if(Base64.decode(msg_info.DispositionNotificationTo).match("@"+domains[i])) 
    95 {var confNotification=true;break;} 
    96 if(confNotification==undefined) 
    97 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)),"");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")) 
    98 cExecute("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject),handler_sendNotification);else 
    99 write_msg(get_lang("Confirmation message is not sent"));}});} 
    100 else 
    101 cExecute("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject),handler_sendNotification);}} 
    102 if(!msg_is_read(ID)) 
    103 {if(proxy_mensagens.is_local_folder(get_current_folder())){expresso_mail_archive.drawdata=null 
    104 var 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);} 
    105 set_msg_as_read(ID,true);if(msg_info.cacheHit||(!proxy_mensagens.is_local_folder(get_current_folder())&&msg_info.original_ID)) 
    106 {set_message_flag(ID,"seen");}}} 
    107 setTimeout('resizeWindow()',300);} 
    108 function auto_refresh(){refresh(preferences.alert_new_msg,preferences.notifications);setTimeout('auto_refresh()',time_refresh);} 
    109 function auto_archiving(){expresso_mail_sync.start_sync();setTimeout('auto_archiving()',600000);} 
    110 function 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();});}}}} 
    111 function refresh(alert_new_msg,notifyPermission){getFromAlertRules();var handler_refresh=function(data){handlerMessageFilter=function(data){notificationFilter(data,notifyPermission);alarmFollowupflagged('filtersAlarms',data);} 
    112 cExecute("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules,handlerMessageFilter);if(data['msg_range_end']) 
    113 if(data['msg_range_end']>0) 
    114 current_page=data['msg_range_end']/preferences.max_email_per_page;if(!verify_session(data)) 
    115 return;var total_messages_element=Element('tot_m');var box=Element("tbody_box");if(box.childNodes.length==0) 
    116 showEmptyBoxMsg(box);if(data.length>0||countNewMessage>0){for(var i=0;i<data.length;i++){if(!onceOpenedHeadersMessages[current_folder]) 
    117 onceOpenedHeadersMessages[current_folder]={};onceOpenedHeadersMessages[current_folder][data[i].msg_number]=data[i];} 
    118 Element("table_message_header_box_0").emptyBody=false;table_element=Element("table_box");var msg_info=document.getElementById('msg_info');if(msg_info!=null) 
    119 {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);}} 
    120 var box=Element("tbody_box");if(!$("#colgroup_main_0").size()){$(table_element).append(Element("colgroup_main_"+numBox));} 
    121 if(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]);}}} 
    122 if(data[0].msg_folder!=current_folder) 
    123 return false;totalFolderMsgs+=data.new_msgs;for(var i=0;i<data.length;i++){var existent=document.getElementById(data[i].msg_number);if(!existent) 
    124 {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])) 
    125 if($(this).prev()[0]) 
    126 if($(this).parent().find(".expandable-hitarea")[0]==$(this).prev()[0]){setTimeout(function(){if(over.hasClass("folder-over")) 
    127 over.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');} 
    128 var 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"));});} 
    129 if(totalSelected()>1) 
    130 return $("<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) 
    131 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>");else 
    132 return $("<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");} 
    133 updateSelectedMsgs($(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]);} 
    134 catch(e){box.insertBefore(new_msg,box.firstChild);}} 
    135 else if(data[i].Recent=='N'){box.insertBefore(new_msg,box.firstChild);} 
    136 else{box.appendChild(new_msg);}}} 
    137 if(parseInt(preferences.use_shortcuts)) 
    138 select_msg("null","reload_msg","null");if(parseInt(alert_new_msg)&&data.new_msgs>0&&activePage) 
    139 alert(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') 
    140 desktopNotification.cancelByReference(auxNotification);desktopNotification.showNotification(function(){countNewMessage=0;},function(){window.focus();this.cancel();countNewMessage=0;});auxNotification=desktopNotificationAux;} 
    141 build_quota(data['quota']);} 
    142 if(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;} 
    143 var box=Element("tbody_box");if(box.childNodes.length>1){updateBoxBgColor(box.childNodes);} 
    144 connector.purgeCache();cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);resizeMailList();} 
    145 msg_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) 
    146 return;main_list=main.childNodes;var tmp='';var string_msgs_in_main='';var len=main_list.length;for(var j=0;j<len;j++) 
    147 tmp+=main_list[j].id+',';string_msgs_in_main=tmp.substring(0,(tmp.length-1));if(!expresso_offline) 
    148 $.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) 
    149 handler_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")) 
    150 {msgs.first().focus().addClass("current_selected_shortcut_msg selected_shortcut_msg");}} 
    151 function 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;} 
    152 var userTrashFolder='';if(arguments.length<4)show_success_msg=true;if(folder=='null')folder=current_folder;if(folder.substr(0,4)=='user') 
    153 {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]);}} 
    154 else userTrashFolder=mount_url_folder(["INBOX",special_folders["Trash"]]);if(openTab.type[currentTab]==1) 
    155 return move_search_msgs('content_id_'+currentTab,userTrashFolder,special_folders['Trash']);if(currentTab.toString().indexOf("_r")!=-1) 
    156 msgs_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;} 
    157 var handler_delete_msgs=function(data){Element('chk_box_select_all_messages').checked=false;if(currentTab) 
    158 mail_msg=Element("tbody_box_"+currentTab);else 
    159 mail_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);} 
    160 else{if(!select_msg('null','down',true)){select_msg('null','up',true);}}} 
    161 if(data.status==false){write_msg(get_lang("You don't have permission for this operation in this shared folder!"));return false;} 
    162 if(preferences.use_local_messages==1){if(!expresso_mail_archive.isArchiveOperation){if(show_success_msg){if(data.msgs_number.length==1) 
    163 write_msg(get_lang("The message was deleted."));else 
    164 write_msg(get_lang("The messages were deleted."));}}} 
    165 else{if(show_success_msg){if(data.msgs_number.length==1) 
    166 write_msg(get_lang("The message was deleted."));else 
    167 write_msg(get_lang("The messages were deleted."));}} 
    168 if(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) 
    169 show_msg(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    170 else{delete_border(currentTab,'false');}} 
    171 else{delete_border(currentTab,'false');}} 
    172 for(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]];} 
    173 totalFolderMsgs=totalFolderMsgs-data.msgs_number.length;} 
    174 $.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();} 
    175 if(msgs_number.length>0||parseInt(msgs_number)>0) 
    176 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);else 
    177 write_msg(get_lang('No selected message.'));} 
    178 function 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)) 
    179 {alert(get_lang("You cant manipulate local messages on search"));return;} 
    180 var delete_msg=false;if(new_folder_name==special_folders['Trash']){delete_msg=true;} 
    181 selected_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;} 
    182 var handler_move_search_msgs=function(data){if(!data||!data.msgs_number) 
    183 return;else if(data.deleted){if(data.no_move&&data.move) 
    184 alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission."));else if(data.msgs_number.length==1) 
    185 write_msg(get_lang("The message was deleted."));else 
    186 write_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) 
    187 write_msg(get_lang("The message was moved to folder ")+lang_folder(data.new_folder_name));else 
    188 write_msg(get_lang("The messages were moved to folder ")+lang_folder(data.new_folder_name));} 
    189 if(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++) 
    190 if(selected_messages[i]==no_remove[j]) 
    191 continua=false;if(continua) 
    192 removeAll(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);}} 
    193 var box=Element("tbody_box_"+getNumBoxFromTabId(currentTab)).childNodes;if(box.length>1){updateBoxBgColor(box);} 
    194 connector.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++) 
    195 removeAll(remove_currente_folder[i]);var box=Element("tbody_box");if(box.childNodes.length>0){updateBoxBgColor(box.childNodes);} 
    196 if(folder==get_current_folder()){Element('tot_m').innerHTML=parseInt(Element('tot_m').innerHTML)-remove_currente_folder.length;}} 
    197 draw_new_tree_folder();EsearchE.refresh();} 
    198 if(selected_messages){var selected_param="";if(selected_messages.indexOf(',')!=-1) 
    199 {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) 
    200 remove_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))) 
    201 {msg_to_delete+=','+special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,"");} 
    202 else if(!(tr.getAttribute('name')==new_folder&&action!='delete')) 
    203 {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;}}} 
    204 else 
    205 {var tr=Element(selected_messages+'_s'+id_border);if(tr.getAttribute('name')==current_folder) 
    206 remove_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;}} 
    207 var 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);}} 
    208 else 
    209 write_msg(get_lang('No selected message.'));} 
    210 function 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;} 
    211 if(!folder||folder=='null') 
    212 folder=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) 
    213 return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);var handler_move_msgs=function(data){if(typeof(data)=='string') 
    214 if(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."));} 
    215 return false;} 
    216 if(data.status==false){write_msg(get_lang("You don't have permission for this operation in this shared folder!"));return false;} 
    217 mail_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));} 
    218 else{write_msg(get_lang("The messages were moved to folder ")+lang_folder(data.new_folder_name));} 
    219 if(openTab.type[currentTab]>1) 
    220 {msg_to_delete=Element(msgs_number);if(parseInt(preferences.delete_and_show_previous_message)&&msg_to_delete) 
    221 {if(msg_to_delete.previousSibling) 
    222 {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) 
    223 show_msg(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});}} 
    224 else 
    225 {if(current_page>1) 
    226 {$('#msg_opt_previous_'+msg_to_delete.getAttribute('id')+'_r').trigger('click');} 
    227 else 
    228 {var border_id=$("#border_id_"+currentTab).prev().attr("id").split("_").slice(2,3).join("") 
    229 var folderName=current_folder;if(border_id) 
    230 {$.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) 
    231 {show_msg(data);}},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    232 else 
    233 {delete_border(currentTab,'false');}}}} 
    234 else 
    235 {if(msg_to_delete.id===String(currentTab).split('_')[0]) 
    236 {delete_border(currentTab,'false');}} 
    237 if(msg_to_delete) 
    238 {mail_msg.removeChild(msg_to_delete);} 
    239 var box=Element("tbody_box");if(box.childNodes.length>0) 
    240 {updateBoxBgColor(box.childNodes);} 
    241 if(folder==get_current_folder()) 
    242 {Element('tot_m').innerHTML=parseInt(Element('tot_m').innerHTML)-1;} 
    243 return;} 
    244 Element('chk_box_select_all_messages').checked=false;if(!mail_msg) 
    245 mail_msg=Element("tbody_box");data.msgs_number=data.msgs_number.split(",");var msg_to_delete;if(typeof(msgs_number)=='string') 
    246 all_search_msg=msgs_number.split(',');else if(typeof(msgs_number)=='number') 
    247 all_search_msg=msgs_number;for(var i=0;i<=all_search_msg.length;i++) 
    248 {msg_to_delete=Element(folder+';'+all_search_msg[i]);if(msg_to_delete) 
    249 msg_to_delete.parentNode.removeChild(msg_to_delete);} 
    250 if(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);} 
    251 else{if(!select_msg('null','down',true)){select_msg('null','up',true);}}}} 
    252 for(var i=0;i<data.msgs_number.length;i++) 
    253 {msg_to_delete=Element(data.msgs_number[i]);if(msg_to_delete) 
    254 mail_msg.removeChild(msg_to_delete);} 
    255 if(data.msgs_number.length==1) 
    256 write_msg(get_lang("The message was moved to folder ")+lang_folder(data.new_folder_name));else 
    257 write_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);} 
    258 else{delete_border(data.border_ID,'false');}} 
    259 if(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;} 
    260 refresh();} 
    261 if(folder==new_folder){write_msg(get_lang('The origin folder and the destination folder are the same.'));return;} 
    262 try{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){} 
    263 if(currentTab==0&&msgs_number=="selected") 
    264 msgs_number=get_selected_messages();else if(currentTab!=0&&msgs_number=="selected") 
    265 msgs_number=currentTab.substr(0,currentTab.indexOf('_r'));if(openTab.type[currentTab]==1){return move_search_msgs('content_id_'+currentTab,new_folder,new_folder_name);} 
    266 if(currentTab.toString().indexOf("_r")!=-1&&currentTab==border_ID) 
    267 {if(currentTab.toString().indexOf('_s')!=-1) 
    268 msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf('_s'));else 
    269 msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf('_r'));} 
    270 if(msgs_number){refresh();} 
    271 else{$("#"+get_current_folder()).find('span:first').addClass('selected');} 
    272 if(proxy_mensagens.is_local_folder(folder)){expresso_mail_archive.update_counters=true;if(msgs_number=='selected'){msgs_number=get_selected_messages();} 
    273 if(new_folder=='local_root'){alert(get_lang("Select a folder!"));} 
    274 if(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);} 
    275 else{if(!new_folder){new_folder='INBOX';} 
    276 if(currentTab.toString().indexOf("_r")!=-1){msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));} 
    277 expresso_mail_archive.unarchieve(folder,new_folder,msgs_number);if(currentTab!=0) 
    278 delete_border(border_ID);}} 
    279 else{write_msg(get_lang('No selected message.'));}} 
    280 else{if(proxy_mensagens.is_local_folder(new_folder)){if(msgs_number=='selected'){archive_msgs(folder,new_folder);} 
    281 else{archive_msgs(folder,new_folder,msgs_number);}} 
    282 else{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) 
    283 handler_move_msgs(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    284 var 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 
    285 write_msg(get_lang('No selected message.'));}} 
    286 $.each(msgs_number.split(","),function(index,value){delete selectedPagingMsgs[value];});totalFolderMsgs=totalFolderMsgs-msgs_number.split(",").length;selectAllFolderMsgs(false);updateSelectedMsgs();} 
    287 function 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);} 
    288 function normalizeMsgNumber(msgNumber){if(msgNumber||msgNumber=='selected') 
    289 msgNumber=get_selected_messages();if(currentTab.toString().indexOf("_r")!=-1) 
    290 {if(currentTab.toString().indexOf('_s')!=-1) 
    291 msgNumber=currentTab.toString().substr(0,currentTab.toString().indexOf('_s'));else 
    292 msgNumber=currentTab.toString().substr(0,currentTab.toString().indexOf('_r'));} 
    293 if(parseInt(msgNumber)<=0||msgNumber.length<=0){write_msg(get_lang('No selected message.'));return(false);} 
    294 return(msgNumber);} 
    295 function 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) 
    296 return write_msg(get_lang('No selected message.'));if(folder_dest=='local_root'||folder_dest==null) 
    297 folder_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;} 
    298 document.getElementById("overlay").style.visibility="visible";var handler_arquivar_mensagens=function(data){var msgs_info=[];for(var i=0;i<data.length;i++) 
    299 msgs_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";} 
    300 id_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]+/,"");} 
    301 $.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) 
    302 handler_arquivar_mensagens(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    303 function 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;} 
    304 write_msg(get_lang('Starting to archive messages'));if(currentTab.toString().indexOf("_r")!=-1){id_msgs=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));} 
    305 if(!id_msgs) 
    306 id_msgs=get_selected_messages();if(folder_dest=='local_root'||folder_dest==null) 
    307 folder_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);} 
    308 else 
    309 write_msg(get_lang('No selected message.'));} 
    310 function complete_archiving(success,fails,has_local_messages_before) 
    311 {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)) 
    312 {Element("check_box_message_"+msg_info.original_id).checked=false;} 
    313 if(Element(msg_info.original_id)) 
    314 {remove_className(Element(msg_info.original_id),'selected_msg');} 
    315 msgs_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);} 
    316 if(preferences.keep_archived_messages==0){for(var folder in msgs_to_remove){if(folder!='undefined') 
    317 delete_msgs(folder,msgs_to_remove[folder],'null',false,true);}} 
    318 if(!has_local_messages_before&&expresso_local_messages.has_local_mails()) 
    319 ttreeBox.update_folder();else 
    320 update_menu();} 
    321 function action_msg_selected_from_search(aba,evento){if(evento=="delete") 
    322 move_search_msgs(aba,'INBOX/Trash','Trash','delete');} 
    323 function 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) 
    324 messages=messages.substring(1,(messages.length));return messages.substring(0,(messages.length-1));} 
    325 function 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) 
    326 selected_messages=selected_messages.substring(1,(selected_messages.length));selected_messages=selected_messages.substring(0,(selected_messages.length-1));return selected_messages;}else{return false;}} 
    327 function 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) 
    328 selected_messages=selected_messages.substring(1,(selected_messages.length));selected_messages=selected_messages.substring(0,(selected_messages.length-1));return selected_messages;}else{return false;}} 
    329 function get_selected_messages_shortcut(){var main;try{main=document.getElementById("divScrollMain_"+numBox).firstChild.firstChild;}catch(e){};if(!main) 
    330 main=Element("tbody_box_"+numBox);if(!main) 
    331 main=Element("tbody_box");var main_list=main.childNodes;var selected_messages_by_shortcuts='';var j=0;for(j;j<(main_list.length);j++) 
    332 {if(exist_className(Element(main_list[j].id),'selected_shortcut_msg')) 
    333 {selected_messages_by_shortcuts+=main_list[j].id+',';}} 
    334 selected_messages_by_shortcuts=selected_messages_by_shortcuts.substring(0,(selected_messages_by_shortcuts.length-1));return selected_messages_by_shortcuts;} 
    335 function get_selected_messages(){var selectedMsg=new Array();$.each(selectedPagingMsgs,function(index,value){if(value) 
    336 selectedMsg.push(index);});return""+selectedMsg;} 
    337 function clear_selected_messages(){selectedPagingMsgs={};} 
    338 function replaceAll(string,token,newtoken){while(string.indexOf(token)!=-1){string=string.replace(token,newtoken);} 
    339 return string;} 
    340 function new_message_to(email){var new_border_ID=new_message('new','null');document.getElementById("to_"+new_border_ID).value=email;} 
    341 function new_message(type,border_ID,flagged){if(RichTextEditor.editorReady===false)return false;RichTextEditor.editorReady=false;if(Element('show_img_link_'+border_ID)) 
    342 {show_msg_img(border_ID.match(/^\d*/)[0],Element('input_folder_'+border_ID).value);} 
    343 var 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') 
    344 {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) 
    345 if(!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));}}} 
    346 if(new_border_ID=='maximo'){RichTextEditor.editorReady=true;return false;} 
    347 if(new_border_ID==false) 
    348 {RichTextEditor.editorReady=true;setTimeout('new_message(\''+type+'\',\''+border_ID+'\',\''+flagged+'\');',500);return false;} 
    349 openTab.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);} 
    350 var 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,">");} 
    351 else{if(document.getElementById("sender_values_"+border_ID)) 
    352 {data.to=document.getElementById("sender_values_"+border_ID).value;data.to=data.to.replace(/&lt;/gi,"<");data.to=data.to.replace(/&gt;/gi,">");} 
    353 else 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,">");}} 
    354 if(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(",");}} 
    355 if(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(",");} 
    356 if(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,">");} 
    357 if($("#subject_"+border_ID)) 
    358 data.subject=$("#subject_"+border_ID).text();if(data.subject==get_lang("(no subject)   ")) 
    359 data.subject='';if(document.getElementById("body_"+border_ID)) 
    360 data.body=document.getElementById("body_"+border_ID).innerHTML;if(document.getElementById("from_values_"+border_ID)) 
    361 data.from=document.getElementById("from_values_"+border_ID).value;if(Element('date_'+border_ID)){data.date=Element('date_'+border_ID).innerHTML;} 
    362 if(Element('date_day_'+border_ID)){data.date_day=Element('date_day_'+border_ID).value;} 
    363 if(Element('date_hour_'+border_ID)){data.date_hour=Element('date_hour_'+border_ID).value;} 
    364 var signature=RichTextEditor.getSignatureDefault();if(type!="new"&&type!="edit"&&document.getElementById("is_local_"+border_ID)!=null) 
    365 data.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'});} 
    366 var 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");});} 
    367 RichTextEditor.keydown(new_border_ID);} 
    368 switch(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);} 
    369 break;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);} 
    370 break;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);} 
    371 if(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")) 
    372 data.cc=data.cc.join(",");else 
    373 data.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);}} 
    374 useOriginalAttachments(new_border_ID,border_ID);if(preferences.use_signature=="1"){RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>'+signature,true);} 
    375 break;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")) 
    376 data.to_all=data.to_all.join(",");else 
    377 data.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);} 
    378 if(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")) 
    379 data.cc=data.cc.join(",");else 
    380 data.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);}} 
    381 content.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);} 
    382 break;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)) 
    383 addOriginalAttachments(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();} 
    384 else{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();} 
    385 break;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;}}} 
    386 content.find('[name="input_to"]').val(_to+',');draw_email_box(_to,content.find(".to").filter("input"));Element('msg_number').value='';} 
    387 if(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();} 
    388 else 
    389 content.find('[name="input_to"]').focus();break;case"edit":btnSaveVerify();if(flagged=='F') 
    390 $(".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="";} 
    391 draw_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);} 
    392 if(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);}} 
    393 content.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");} 
    394 var 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");}} 
    395 if(Element("attachments_"+border_ID)) 
    396 addOriginalAttachments(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:} 
    397 content.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;} 
    398 function 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"));});} 
    399 function 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];}} 
    400 return array_emails;} 
    401 function 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--;}}} 
    402 return value_to_all;} 
     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 
     513function 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 
     528function 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 
     699function auto_refresh(){ 
     700        refresh(preferences.alert_new_msg, preferences.notifications); 
     701        setTimeout('auto_refresh()', time_refresh); 
     702} 
     703 
     704function auto_archiving() { 
     705        expresso_mail_sync.start_sync(); 
     706        setTimeout('auto_archiving()',600000); 
     707} 
     708 
     709function 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 
     729function 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 
     991function 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   
     1135function 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 
     1304function 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 
     1670function 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 
     1674function 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 
     1699function 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 
     1867function 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 
     1922function action_msg_selected_from_search(aba, evento){ 
     1923        if(evento == "delete") 
     1924                move_search_msgs(aba,'INBOX/Trash', 'Trash', 'delete'); 
     1925} 
     1926 
     1927function 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 
     1941function 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 
     1961function 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 
     1981function 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 
     2091function 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} 
     2099function clear_selected_messages(){ 
     2100    selectedPagingMsgs = {}; 
     2101} 
     2102 
     2103function replaceAll(string, token, newtoken) { 
     2104        while (string.indexOf(token) != -1) { 
     2105                string = string.replace(token, newtoken); 
     2106        } 
     2107        return string; 
     2108} 
     2109 
     2110function new_message_to(email) { 
     2111        var new_border_ID = new_message('new','null'); 
     2112        document.getElementById("to_" + new_border_ID).value=email; 
     2113} 
     2114 
     2115function 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. 
     2249var 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 
     2263switch(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 
     2545function 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 
     2553function 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 
     2566function 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 
    4032583function useOriginalAttachments(new_border_ID,old_id_border) 
    404 {if(Element("attachments_"+old_id_border)) 
    405 {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;} 
    406 var 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))) 
    407 continue;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(',');} 
    408 var 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) 
    409 {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) 
    410 attach.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) 
    411 {for(var x=0;x<imagens.length;x++) 
    412 if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
    413 content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
    414 fileUploadMSG.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'}});} 
    415 else 
    416 {arrayAttachments.push(idATT);arrayAttachmentsA.push(attachments[i]);}} 
    417 if(arrayAttachments.length>0) 
    418 {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) 
    419 attach.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) 
    420 {for(var x=0;x<imagens.length;x++) 
    421 if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
    422 content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
    423 fileUploadMSG.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'}});} 
    424 $(this).remove();});}}} 
     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 
    4252789function addOriginalAttachments(new_border_ID,old_id_border) 
    426 {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;} 
    427 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))) 
    428 continue;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(',');} 
    429 var 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) 
    430 attach.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) 
    431 {for(var x=0;x<imagens.length;x++) 
    432 if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part)!==-1) 
    433 content_body=content_body.replace(imagens[x],'');RichTextEditor.setData('body_'+new_border_ID,content_body);} 
    434 fileUploadMSG.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'}});}} 
    435 function send_message_return(data,ID){if(typeof(data)=='object'&&data.load){cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);} 
    436 watch_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) 
    437 if(checkSign.checked){sign=true;} 
    438 var checkCript=document.getElementById('return_cripto_'+ID);if(checkCript.checked){crypt=true;}} 
    439 if(typeof(data)=='object'&&!data.success) 
    440 {connector=new cConnector();if(sign||crypt){var operation='';if(sign){operation='sign';} 
    441 else{operation='nop';}} 
    442 if(data.body){Element('cert_applet').doButtonClickAction(operation,ID,data.body);} 
    443 else{alert(data.error);} 
    444 return;} 
    445 if(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');} 
    446 else if(msg_number_forwarded.val()){proxy_mensagens.proxy_set_message_flag(msg_number_forwarded.val(),'forwarded');} 
    447 if(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;} 
    448 else{write_msg(get_lang('Your message was sent.'));}} 
    449 delete_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)) 
    450 updateDynamicContact();cache=new Array();} 
    451 else{if(data=='Post-Content-Length') 
    452 write_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]) 
    453 $(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]) 
    454 $(value).addClass("invalid-email-box");});}} 
    455 if(content.find(".cc-tr").css("display")!="none") 
    456 {var array=content.find(".cc-tr").find(".box");$.each(array,function(index,value){if(error_mail==$(value).find("input").val().match(reComplexEmail)[1]) 
    457 $(value).addClass("invalid-email-box");});} 
    458 write_msg(data);}else 
    459 write_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});} 
    460 if(!expresso_offline) 
    461 connector.hideProgressBar();} 
    462 function 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]});}}});}} 
    463 function appletReturn(smime,ID,operation,folder){if(!smime){connector=new cConnector();connector.hideProgressBar();return;} 
    464 if(operation=='decript') 
    465 {var handler=function(data){if(data.msg_day=='') 
    466 {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;} 
    467 this.show_msg(data);} 
    468 para="&source="+smime+"&ID="+ID+"&folder="+folder;cExecute("$this.imap_functions.show_decript&",handler,para);}else 
    469 {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++} 
    470 form=document.forms(i);} 
    471 else 
    472 form=document.forms["form_message_"+ID];form.appendChild(textArea);cExecuteForm("$this.imap_functions.send_mail",form,handler_send_smime,ID);}} 
    473 function verifyBodyWords(body,words){for(i=0;i<words.length;i++){if(body.search(words[i])!=-1){return words[i];}} 
    474 return false;} 
    475 function send_message(ID,folder,folder_name){var content_body=RichTextEditor.getData('body_'+ID);if(language=="pt-br") 
    476 var words=['anexo','anexos','anexada','anexado','anexei','anexando','anexaste','anexastes','anexamos','anexaram'];else if(language=="es-es") 
    477 var words=['anexo','adjunto','adjuntos','adjuntado','adjuntamos'];else 
    478 var 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;}}});} 
    479 else 
    480 send_valided_message(ID,folder,folder_name);} 
    481 else if(!zebraDiscardEventDialog&&$('#fileupload_msg'+ID).find('.att-box-loading').length) 
    482 {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) 
    483 $(value).find('.att-box-delete').trigger("click");});send_valided_message(ID,folder,folder_name);} 
    484 window.setTimeout(function(){zebraDiscardEventDialog=false;},500);}})},300);}else{send_valided_message(ID,folder,folder_name);}} 
    485 function send_valided_message(ID,folder,folder_name) 
    486 {if(preferences.auto_save_draft==1) 
    487 autoSaveControl.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;} 
    488 var 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()+",";});}} 
    489 stringEmail+=stringCCoEmail;var stringCCEmail="";if(content.find(".cc-tr").css("display")!="none") 
    490 {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()+",";});} 
    491 stringEmail+=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()) 
    492 mailData.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;}} 
    493 function 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) 
    494 stringError=stringError+" ; ";} 
    495 write_msg(stringError);return false;}else{return true;}}} 
    496 else{write_msg(get_lang("Message without receiver"));return false;}} 
    497 function 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') 
    498 td_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) 
    499 show_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") 
    500 tr_element.childNodes[i].id=tr_element.childNodes[i].id.replace(message_id,newUid);tr_element.childNodes[i].onclick=openNewMessage;}} 
    501 function autoSave(ID) 
    502 {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) 
    503 save_msg(ID);refresh();} 
    504 function save_msg(border_id){if(preferences.auto_save_draft==1) 
    505 autoSaveControl.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);}} 
    506 stringEmail="";if(content.find(".cc-tr").css("display")!="none") 
    507 {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);} 
    508 var idJavascript=saveBorderError[border_id];if(saveBorderError[border_id]!==false) 
    509 DataLayer.put('message',DataLayer.merge(DataLayer.form("#form_message_"+border_id),{id:idJavascript}));else 
    510 idJavascript=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) 
    511 {uidsSave[border_id].push(data['message://'+idJavascript].id);saveBorderError[border_id]=false;write_msg('Mensagem salva com sucesso!');} 
    512 else 
    513 {saveBorderError[border_id]=idJavascript;write_msg('Erro ao salvar sua mensagem! Nova tentativa em alguns segundos.');}});} 
    514 function set_messages_flag_search_local(flag){} 
    515 function 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;} 
    516 var 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]+/,"");} 
    517 var 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(',') 
    518 notArray=false;}else 
    519 msgs[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;} 
    520 notErrors=true;}}else{errors=true;}} 
    521 draw_tree_folders();Element('chk_box_select_all_messages_search').checked=false;refresh();if(errors&&notErrors) 
    522 write_msg(get_lang('Some messages were not marked with success!'));else if(notErrors) 
    523 write_msg(get_lang('The messages were marked with success!'));else 
    524 write_msg(get_lang('Error marking messages.'));} 
    525 cExecute("$this.imap_functions.set_messages_flag_from_search&msg_to_flag="+selected_param+"&flag="+flag,handler_set_messages_flag);} 
    526 function set_messages_flag(flag,msgs_to_set){if(currentTab!=0&&currentTab.indexOf("search_local")>=0){return set_messages_flag_search_local(flag);} 
    527 if(currentTab!=0&&currentTab.indexOf("search_")>=0){return set_messages_flag_search(flag);} 
    528 var handler_set_messages_flag=function(data){if(!verify_session(data)) 
    529 return;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']});} 
    530 if(!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');} 
    531 if(!data.msgs_unflageds) 
    532 return;else 
    533 if(data.msgs_not_to_set!="") 
    534 write_msg(get_lang("Error processing some messages."));msgs_to_set=data.msgs_unflageds.split(",");} 
    535 for(var i=0;i<msgs_to_set.length;i++){if(preferences.use_cache=='True') 
    536 {if(current_folder=='') 
    537 current_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;}}} 
    538 if(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!="") 
    539 set_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!="") 
    540 set_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!="") 
    541 set_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!="") 
    542 set_msg_as_unflagged(results_search_messages,true);Element("check_box_message_"+msgs_to_set[i]).checked=false;break;}}} 
    543 Element('chk_box_select_all_messages').checked=false;} 
    544 var folder=get_current_folder();if(msgs_to_set=='get_selected_messages') 
    545 var msgs_to_set=this.get_selected_messages();else 
    546 folder=Element("input_folder_"+msgs_to_set+"_r").value;if(msgs_to_set) 
    547 $.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) 
    548 handler_set_messages_flag(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});else 
    549 write_msg(get_lang('No selected message.'));} 
    550 function 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) 
    551 var msg_number_folder=Element("input_folder_"+msg_number+"_r");var handler_set_messages_flag=function(data){if(!verify_session(data)) 
    552 return;if(!data.status){write_msg(get_lang("this message cant be marked as normal"));return;} 
    553 else if(func_after_flag_change){func_after_flag_change(true);} 
    554 if(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();}} 
    555 $.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) 
    556 handler_set_messages_flag(data);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    557 function 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>";}} 
    558 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 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>' 
    559 +'<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
    560 +cabecalho+'</h4><hr>' 
    561 +'<h2>'+folder+'</h2><hr/><blockquote><font size="2">' 
    562 +'<table width="100%" cellpadding="0" cellspacing="0">' 
    563 +'<thead>'+thead+'</thead><tbody>'+tbody+'</tbody>' 
    564 +'</table></font></blockquote></body></html>';window_print.document.write(html);window_print.document.close();break;} 
    565 catch(e){}} 
    566 window_print.document.close();window_print.print();} 
    567 function 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;} 
    568 var header='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>' 
    569 +'<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>";} 
    570 $.each(data,function(index,message){var html="<table><tbody>";if(message.sender) 
    571 for(var i=0;i<message.sender.length;i++){html+=newRow(get_lang('Sent by')+":",message.sender[i]);} 
    572 if(message.from) 
    573 for(var i=0;i<message.from.length;i++){html+=newRow(get_lang('From')+":",message.from[i]);} 
    574 if(message.toaddress2){html+=newRow(get_lang('To')+":",message.toaddress2);} 
    575 if(message.cc){html+=newRow(get_lang('Cc')+":",message.cc);} 
    576 if(message.bcc){html+=newRow(get_lang('Cco')+":",message.bcc);} 
    577 if(message.smalldate) 
    578 html+=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) 
    579 html+=newRow(get_lang('Date')+":",norm(date_msg.getHours())+':'+norm(date_msg.getMinutes()));else 
    580 if(today.getTime()-date_msg.getTime()<172800000) 
    581 newRow(get_lang('Date')+":",get_lang('Yesterday'));else if(today.getTime()-date_msg.getTime()<259200000) 
    582 html+=newRow(get_lang('Date')+":",get_lang(weekDays[date_msg.getDay()]));else 
    583 html+=newRow(get_lang('Date')+":",norm(date_msg.getDate())+'/'+norm(date_msg.getMonth()+1)+'/'+date_msg.getFullYear());}else 
    584 html+=newRow(get_lang('Date')+":",norm(date_msg.getDate())+'/'+norm(date_msg.getMonth()+1)+'/'+date_msg.getFullYear());} 
    585 html+=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);} 
    586 else 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);} 
    587 html+='</tbody></table>';if(message.body){html+="<hr>"+message.body;} 
    588 else if(message._return){html+="<hr>"+message._return;} 
    589 html+="<hr>";window_print.document.write(html);});window_print.document.close();window_print.print();} 
    590 if(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);} 
    591 else{$.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();}});}} 
    592 function 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'});} 
    593 tbody.append(newTr);});return tbody.html();} 
    594 function 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>' 
    595 +'<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>' 
    596 +cabecalho+'</h4><hr>' 
    597 +'<h2>'+$('#border_id_0').html()+'</h2><hr/><blockquote><font size="2">' 
    598 +'<table width="100%" cellpadding="0" cellspacing="0">' 
    599 +'<thead>'+thead+'</thead><tbody>'+tbody+'</tbody>' 
    600 +'</table></font></blockquote></body></html>';window_print.document.write(html);window_print.document.close();break;} 
    601 catch(e){}} 
    602 window_print.document.close();window_print.print();} 
    603 msgs_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));} 
    604 else{$.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();}});}}} 
    605 function 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;} 
    606 if(openTab.type[currentTab]==2) 
    607 return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab);if(currentTab!=0&&currentTab.indexOf("search_")>=0){return print_search_msg();} 
    608 if(get_selected_messages()==false){return print_messages_list();} 
    609 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.';$.Zebra_Dialog(msg,{'type':'question','buttons':['Sim','Não'],'overlay_opacity':'0.5','onClose':function(caption){if(caption=='Sim'){return print_messages_bodies();} 
    610 else{return print_messages_list();}}});} 
    611 function 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) 
    612 {countAtt=attachments.getElementsByTagName('a').length;if(countAtt===1) 
    613 att=attachments.getElementsByTagName('a')[0].innerHTML;else if(countAtt>1) 
    614 for(var i=1;i<attachments.getElementsByTagName('a').length;i++) 
    615 att+=" | "+attachments.getElementsByTagName('a')[i].innerHTML;} 
    616 var 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;} 
    617 if(attachments!=null) 
    618 {var a=attachments.childNodes;var attachs="";var show_attachs="";var ii=a.length>2?2:1;for(i=ii;i<a.length;i++) 
    619 {if(a[i].tagName&&a[i].tagName=="A") 
    620 {attachs+=a[i].innerHTML;}} 
    621 show_attachs="<tr><td width=7%><font size='2'>"+get_lang('Attachments: ')+" </font></td><td><font size='2'>"+attachs+"</font></td></tr>";}else{show_attachs="";} 
    622 var 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) 
    623 html+="<tr><td width=7% noWrap><font size='2'>"+get_lang('Sent by')+": </font></td><td><font size='2'>"+sender+"</font></td></tr>";if(from) 
    624 html+="<tr><td width=7%><font size='2'>"+get_lang('From')+": </font></td><td><font size='2'>"+from+"</font></td></tr>";if(to){if(!printListTO) 
    625 to='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>";} 
    626 if(cc){if(!printListCC) 
    627 cc='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>";} 
    628 if(cco){if(!printListCCO) 
    629 cco='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>";} 
    630 if(date) 
    631 html+="<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>";} 
    632 html+="</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) 
    633 _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]);} 
    634 break;} 
    635 catch(e){}} 
    636 window_print.document.close();window_print.print();} 
    637 function 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];} 
    638 var handler_empty_trash=function(data){Element('chk_box_select_all_messages').checked=false;if(!verify_session(data)) 
    639 return;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"));}} 
    640 write_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;}} 
    641 else 
    642 write_msg(get_lang('ERROR emptying your Trash folder.'));} 
    643 $.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);}}}});} 
    644 function 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];} 
    645 var handler_empty_spam=function(data){Element('chk_box_select_all_messages').checked=false;if(!verify_session(data)) 
    646 return;if(get_current_folder()==mount_url_folder(["INBOX",special_folders["Spam"]])){draw_paging(0);remove_rows(document.getElementById("table_box"));} 
    647 draw_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.'));}} 
    648 else 
    649 write_msg(get_lang('ERROR emptying your Spam folder.'));} 
    650 $.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);}}}});} 
    651 function 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 
    652 download_attachments(null,null,data,null,null,get_current_folder().split("_")[2]+'.zip');} 
    653 var 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);} 
    654 $.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]);});} 
    655 function 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()]);} 
    656 buildExportArchiver(expresso_mail_archive.getSomeMsg,get_current_folder().split("_")[2]);}else{if(openTab.type[currentTab]>1){source_msg(currentTab,openTab.imapBox[currentTab]);return;} 
    657 var 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;} 
    658 var 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();} 
    659 var handler_export_all_selected_msgs=function(data){if(!data){write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.'));} 
    660 else{var filename='mensagens.zip';if(data[0].match(/\.eml$/gi)){filename=data[1]+'.eml';} 
    661 download_attachments(null,null,data[0],null,null,filename);}} 
    662 if(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...'));} 
    663 else 
    664 write_msg(get_lang('No selected message.'));}} 
    665 function 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');});}} 
    666 function verify_session(data){if(data&&data.imap_error){if(data.imap_error=="nosession") 
    667 write_msg(get_lang("your session could not be verified."));else 
    668 write_msg(data.imap_error);return false;} 
    669 else 
    670 return true;} 
    671 function save_image(e,thumb,file_type){file_type=file_type.replace("/",".");thumb.oncontextmenu=function(e){return false;} 
    672 var _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);}}} 
    673 function save_image2(info){var obj=jQuery.parseJSON(unescape(info));download_attachments(obj.folder,obj.message,obj.thumbIndex,obj.pid,obj.encoding,obj.type.replace("/","."));} 
    674 function nospam(msgs_number,border_ID,folder){if(folder=='null') 
    675 folder=get_current_folder();var new_folder='';if(folder.substr(0,4)=='user'){arrayFolder=folder.split(cyrus_delimiter);new_folder='user'+cyrus_delimiter+arrayFolder[1];} 
    676 else{new_folder='INBOX';} 
    677 var new_folder_name=get_lang('INBOX');var handler_move_msgs=function(data){if(msgs_number=='selected') 
    678 set_messages_flag("unseen","get_selected_messages");else 
    679 proxy_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) 
    680 delete_border(currentTab,'false');} 
    681 if(currentTab.toString().indexOf("_r")!=-1) 
    682 msgs_number=currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));else if(msgs_number=='selected') 
    683 msgs_number=get_selected_messages();if(currentTab==0) 
    684 msgs_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) 
    685 msgs_number=$(value).parents("tr").attr("id");else 
    686 msgs_number+=","+$(value).parents("tr").attr("id");}});} 
    687 if(parseInt(msgs_number)>0||msgs_number.length>0) 
    688 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);else 
    689 write_msg(get_lang('No selected message.'));} 
    690 function spam(folder,msgs_number,border_ID){if(folder=='null') 
    691 folder=get_current_folder();var new_folder='';if(folder.substr(0,4)=='user') 
    692 {arrayFolder=folder.split(cyrus_delimiter);new_folder='user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Spam'];} 
    693 else 
    694 {new_folder=mount_url_folder(["INBOX",special_folders["Spam"]]);} 
    695 var 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) 
    696 delete_border(currentTab,'false');}} 
    697 if(currentTab.toString().indexOf("_r")!=-1) 
    698 msgs_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') 
    699 msgs_number=get_selected_messages();if(currentTab==0) 
    700 msgs_number=get_selected_messages();if(parseInt(msgs_number)>0||msgs_number.length>0) 
    701 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);else 
    702 write_msg(get_lang('No selected message.'));} 
     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 
     2891function 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*/ 
     3032function 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 */ 
     3075function 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 */ 
     3141function 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 
     3151function 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 
     3214function 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 
     3324function 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} 
     3352function 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 
     3388function 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 
     3399function 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 
     3466function 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 
     3483function 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 
     3554function 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 
     3691function 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 
     3754function 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*/ 
     3813function 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 
     3945function 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 
     3957function 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 
     4033function 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 
     4064function 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 
     4184function 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 
     4237function 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 
     4289function 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 
     4325function 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 
     4387function 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 
     4404function 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. 
     4421function 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 
     4445function 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 
     4450function 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 
     4499function 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 
    7034542function import_window() 
    704 {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;} 
    705 var 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() 
    706 {importEmails.dialog("close").dialog("destroy");}},{text:get_lang("Import"),click:function() 
    707 {var input_file=importEmails.find("input[type=file]");var input_hidden=importEmails.find("input[name=folder]");if(input_file.attr("value")=="") 
    708 {$.Zebra_Dialog(get_lang("You must choose a file")+" !",{'type':'warning','overlay_opacity':'0.5','onClose':function(){$("#importMessageAccordion").accordion('activate',0);}});} 
    709 else 
    710 {if(input_hidden.attr("value")=="") 
    711 $.Zebra_Dialog(get_lang("You must choose a folder")+" !",{'type':'warning','overlay_opacity':'0.5','onClose':function(){$("#importMessageAccordion").accordion('activate',1);}});else 
    712 {var handler_return=function(data) 
    713 {write_msg(get_lang('The import was executed successfully.'));return_import_msgs(data,folder);} 
    714 var 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) 
    715 {if(typeof(shortcut)!='undefined')shortcut.disabled=true;},close: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;}}} 
    721 if(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')) 
    725 return;if(!target.attr('id')) 
    726 target=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");} 
    728 function return_import_msgs(data,folder) 
    729 {if(data&&data.error){write_msg(data.error);} 
    730 else 
    731 {if(data=='Post-Content-Length') 
    732 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));else 
    733 {var er=/^local_/;if(er.test(folder.id)) 
    734 {alert("Mensagens não podem ser importadas em pastas locais");} 
    735 else 
    736 {if(openTab.imapBox[0]==folder.id) 
    737 {openTab.imapBox[0]='';change_folder(folder.id,folder.caption);} 
    738 refresh();}}}} 
    739 function decodeCreateSchedulable(type,ID){var startEvent=new Date();if(startEvent.toString('mm')<30) 
    740 startEvent.add({minutes:(30-parseInt(startEvent.toString('mm')))});else 
    741 startEvent.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 
    743 return 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") 
    744 user=user[0];if(user!=''){if(User.me.mail==user.mail) 
    745 return(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 
    746 return(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;} 
    747 function 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/";}} 
    748 function 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;} 
    749 var 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;}} 
    750 if(deniedExtension){alert(get_lang('File extension forbidden or invalid file')+'.');return false;} 
    751 arrayJSWin['import_window'].close();connector.loadScript('wfolders');if(typeof(wfolders)=="undefined") 
    752 setTimeout('select_import_folder()',500);else 
    753 wfolders.makeWindow('null','import');} 
    754 function 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;} 
    755 return owner;} 
    756 function 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."));} 
    757 else 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();} 
    759 else 
    760 write_msg(get_lang(data));} 
    761 if(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;} 
    762 switch(parseInt(typeImport)){case 1:case 7:case 10:$("#select-agenda").html('');var options='';if(calendarIds){for(var i=0;i<calendarIds.length;i++) 
    763 options+='<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');} 
    765 break;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) 
    766 alert(((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();}});} 
    770 else 
    771 {if(confirm(get_lang("Do you confirm this import to your Calendar?"))){cExecute(import_url+"&from_ajax=true",handler_import_calendar);}}} 
    772 function 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);} 
    775 else 
    776 write_msg(data.append);} 
    777 cExecute('$this.imap_functions.ope_msg_part&msg_folder='+data+'&save_folder=INBOX'+cyrus_delimiter+special_folders['Trash'],handler_open_msg_part);} 
    778 function hack_sent_queue(data,rowid_message){if(data.success!=true){queue_send_errors=true;expresso_local_messages.set_problem_on_sent(rowid_message,data);} 
    779 else{expresso_local_messages.set_as_sent(rowid_message);if(document.getElementById('_action')){el=document.getElementById('_action');father=el.parentNode;father.removeChild(el);} 
    780 send_mail_from_queue(false);}} 
    781 function send_mail_from_queue(first_pass){if(first_pass) 
    782 modal('send_queue');var num_msgs=expresso_local_messages.get_num_msgs_to_send();if(num_msgs<=0){close_lightbox();return;} 
    783 document.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);} 
    784 var msg_to_send=expresso_local_messages.get_form_msg_to_send();if(!is_ie) 
    785 ID_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;}}} 
    786 expresso_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);} 
    787 function 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);} 
    788 return true;} 
    789 else{return false;}} 
    790 function force_check_queue(){if(!check_mail_in_queue()){write_msg(get_lang("No messages to send"));}} 
    791 function create_new_local_folder(parentFolderId,name){parentFolderId=parentFolderId.split("_");var parentName=parentFolderId[2];expresso_mail_archive.createFolder(parentName,name);} 
    792 function 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"));} 
    794 cExecute("$this.imap_functions.get_folders_list&onload=true",update_menu);},beforeSend:function(jqXHR,settings){connector.showProgressBar();},complete:function(jqXHR,settings){connector.hideProgressBar();}});} 
    795 function 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])+"";}}} 
    796 return arrayInvalidEmails;} 
    797 function reports_window(currentTab){ID_msg=currentTab.substr(0,currentTab.indexOf("_"));report_wind.make_report_window(ID_msg);} 
    798 DataLayer.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) 
    799 var user_selected_email=user_selected.match(/<([^<]*)>[\s]*$/)[1];else 
    800 var 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);}} 
    801 var 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") 
    802 evtObj=[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';} 
    803 if(bytes>=1000000){return(bytes/1000000).toFixed(2)+' MB';} 
    804 if(bytes>=1000){return(bytes/1000).toFixed(2)+' KB';} 
    805 return bytes+' B';};function truncate(text,size){var result=text;if(text.length>size){result=text.substring(0,size)+'...';} 
    806 return result;} 
    807 function 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;} 
    808 if(!quotesMarks){if(character==","){brokenEmails.push(completeString);completeString="";} 
    809 else 
    810 completeString+=character;} 
    811 else 
    812 completeString+=character;} 
    813 return brokenEmails;} 
    814 DataLayer.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;} 
    815 if(arguments.length==0){write_msg(get_lang('Trying to communicate with Mail Archiver...'));} 
    816 connector.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));} 
    817 if(document.getElementById(script_request_tag_id)){document.getElementById(script_request_tag_id).parentNode.removeChild(document.getElementById(script_request_tag_id));} 
    818 if(document.getElementById(script_cors_tag_id)){document.getElementById(script_cors_tag_id).parentNode.removeChild(document.getElementById(script_cors_tag_id));} 
    819 if(document.getElementById(script_utils_tag_id)){document.getElementById(script_utils_tag_id).parentNode.removeChild(document.getElementById(script_utils_tag_id));} 
    820 script_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);} 
    821 catch(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;}} 
    822 function 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);} 
    823 catch(e){check_services_tryouts++;window.clearInterval(ttintval);ttintval=window.setTimeout('services_retry(true)',1);}} 
    824 else{write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!'));connector.hideProgressBar();check_services_tryouts=1;}} 
    825 catch(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;}} 
     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 
     4697function 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 
     4736function 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 
     4847function 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 
     4875function 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     
     5098function 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} 
     5111function 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 
     5128function 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 
     5156function 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 
     5170function force_check_queue() { 
     5171        if(!check_mail_in_queue()) { 
     5172                write_msg(get_lang("No messages to send")); 
     5173        } 
     5174} 
     5175 
     5176function 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 
     5185function 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 
     5220function 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 
     5254DataLayer.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 
     5301DataLayer.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 
     5321function 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 
     5334function 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*/ 
     5347function 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 
     5371DataLayer.links('message'); 
     5372DataLayer.poll('message',30); 
     5373 
     5374//MAILARCHIVER-04 
     5375function 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 
     5457function 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 
Note: See TracChangeset for help on using the changeset viewer.