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

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

File:
1 edited

Legend:

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

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