Ignore:
Timestamp:
09/17/12 14:30:47 (12 years ago)
Author:
douglas
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.2.

Location:
branches/2.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4

  • branches/2.4/expressoMail1_2/js/main.js

    r7214 r7228  
    11// Tempo do auto refresh (em milisegundos) 
    22var time_refresh = 300000; 
     3 
    34// tempo do auto save (em milisegundos) 
    45// 20000 = 20 segundos 
     
    67var results_search_messages = "";  
    78var cabecalho = '<h4>ExpressoLivre - ExpressoMail</h4>';  
    8 // Variavel para controle de atualização das mensagens listadas na modal de alerta de filtro por remetente 
    9 var checkAlarmsFilter = false; 
     9 
     10var auxNotificationCriteriaVetor = []; 
     11var auxNotification; 
     12 
     13var countNewMessage = 0; 
     14var notifyNewMessageFilter = []; 
    1015 
    1116var dynamicPersonalContacts = new Array(); 
     17var dynamicPersonalGroups = new Array(); 
    1218var dynamicContacts = new Array(); 
    1319var topContact = 0; 
     
    2026        }  
    2127} 
    22          
    23  
    24          
     28 
    2529function mount_url_folder(folders){ 
    2630        return folders.join(cyrus_delimiter); 
     
    5155function updateDynamicPersonalContacts(){ 
    5256        dynamicPersonalContacts = new Array(); 
    53         var contactsData = REST.get("/contacts").collection.itens; 
     57        var contactsData = normalizeContacts(REST.get("/personalContact").collection.itens); 
    5458        if(contactsData){ 
    5559                $.each(contactsData, function(index, value){ 
    5660                        var contact = { 
    57                                 id : parseInt(value.data[0].value), 
    58                                 name : value.data[1].value, 
    59                                 email : value.data[2].value, 
    60                                 value: value.data[1].value + " - " + value.data[2].value, 
     61                id : parseInt(value.id), 
     62                name : value.name, 
     63                email: value.email, 
     64                                value: value.name+ " - " + value.email, 
    6165                                type: "P" 
    6266                        }; 
     
    6670} 
    6771 
     72 
     73function updateDynamicPersonalGroups(){ 
     74        dynamicPersonalGroups = new Array(); 
     75        var contactsData = normalizeContacts(REST.get("/groups").collection.itens); 
     76        if(contactsData){ 
     77                $.each(contactsData, function(index, value){ 
     78                        var contact = { 
     79                                id : parseInt(value.id), 
     80                                owner : value.owner, 
     81                                name : value.name, 
     82                                email: value.email, 
     83                                type: "G" 
     84                        }; 
     85                        dynamicPersonalGroups.push(contact); 
     86                }); 
     87        } 
     88} 
     89 
     90 
    6891function init(){ 
    6992        if (!is_ie) 
     
    77100                 
    78101                        if(preferences.show_name_print_messages == "1") {  
    79                                                         var getUserName = document.getElementById("user_info");  
     102                                var getUserName = document.getElementById("user_info");  
    80103                                var userName = getUserName.innerHTML;  
    81104                                var position = userName.indexOf("-");  
     
    102125                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... 
    103126                        connector.loadScript('mail_sync'); 
    104                         if (is_ie) 
    105                                 connector.loadScript('TreeShow'); 
    106127                        setTimeout('auto_archiving()', 30000); 
    107128                         
    108129                } 
     130                $.ajax({                         
     131                        url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3",  
     132                                folder: "INBOX", 
     133                                 msg_range_begin: "0", 
     134                                 msg_range_end: "0",                                     
     135                                sort_box_type: "SORTARRIVAL",  
     136                                search_box_type: "ALL", 
     137                                sort_box_reverse: "1" 
     138                                }), 
     139                        success: function(data){ 
     140                                data = connector.unserialize(data); 
     141                                if(data){ 
     142                                        var _data = {}; 
     143                                        $.each(data,function(index,value){ 
     144                                                if (data[index] && data[index].msg_number){ 
     145                                                        _data[data[index].msg_number] = data[index].msg_number; 
     146                                                } 
     147                                        }); 
     148                                        populateSelectedMsgs(_data); 
     149                                        _data = {}; 
     150                                 
     151                                } 
     152                        }, 
     153                        beforeSend: function( jqXHR, settings ){ 
     154                                connector.showProgressBar(); 
     155                        }, 
     156                        complete: function( jqXHR, settings ){ 
     157                                connector.hideProgressBar(); 
     158                        } 
     159                }); 
    109160                //Substituido por padrão Jquery 
    110161                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); 
     
    188239                                updateDynamicContact(); 
    189240                                updateDynamicPersonalContacts(); 
     241                                updateDynamicPersonalGroups(); 
    190242                        }; 
    191243                        load_dynamics(); 
     
    507559                                        var sort_type = sort_box_type; 
    508560                                        sort_box_type = null; 
    509                                         sort_box('UNSEEN', sort_type); 
     561                                        sort_box('UNSEEN', sort_type,false);  
     562                                        delete selectedPagingMsgs[msg_info.msg_number]; 
     563                                        totalFolderMsgs--; 
    510564                                } 
    511565                        } 
     
    534588                                        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)), ""); 
    535589 
    536                         if (confNotification) 
    537                                 cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
     590                        if (confNotification) { 
     591                        /* Adequação a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */ 
     592                                if(preferences.confirm_read_message) { 
     593                                        $.Zebra_Dialog(get_lang("Would you like to send the read receipt?"), { 
     594                                                'type':     'question', 
     595                                                'title':    get_lang('Read receipt'), 
     596                                                'buttons':  [get_lang("Yes"), get_lang("No")], 
     597                                                'overlay_opacity' : 0.5, 
     598                                                'onClose':  function(caption) { 
     599                                                        if(caption == get_lang("Yes")) 
     600                                                                cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject), handler_sendNotification);                                                               
     601                                                        else  
     602                                                                write_msg(get_lang("Confirmation message is not sent")); 
     603                                                } 
     604                                        }); 
     605                                } 
     606                                else 
     607                                        cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&date="+msg_info.udate+"&subject="+url_encode(msg_info.subject), handler_sendNotification);                                                               
     608                        } 
     609                                 
    538610                } 
    539611                //Change msg class to read. 
     
    551623 
    552624function auto_refresh(){ 
    553         refresh(preferences.alert_new_msg); 
     625        refresh(preferences.alert_new_msg, preferences.notifications); 
    554626        setTimeout('auto_refresh()', time_refresh); 
    555627} 
     
    560632} 
    561633 
    562 function refresh(alert_new_msg){ 
     634function notificationFilter(data, notifyCriteria){ 
     635         
     636        if(parseInt(notifyCriteria)  && data.length > 0 && !activePage ){ 
     637         
     638                var howManyCriteria = $('div.gray.filtersDeadline .message-list li').length; 
     639                var differenceOfNewCriteria = data.length - howManyCriteria; 
     640                 
     641                if(differenceOfNewCriteria > 0){ 
     642                        for(var i=data.length - differenceOfNewCriteria; i < data.length; i++){ 
     643         
     644                                desktopNotification.sentNotification("",get_lang("Filter criteria"),  truncate(new Date(data[i].udate).toString('dd/MM HH:mm') + ' - ' + data[i].from+' - '+data[i].subject, 75)); 
     645                                desktopNotification.showNotification(false, function(){ 
     646                                        window.focus(); 
     647                                        this.cancel(); 
     648                                }); 
     649                        } 
     650                } 
     651        } 
     652} 
     653 
     654function refresh(alert_new_msg, notifyPermission){ 
     655 
    563656        getFromAlertRules(); 
    564657        var handler_refresh = function(data){ 
    565                 if(checkAlarmsFilter){ 
    566                         handlerMessageFilter = function (data) { 
    567                                 alarmFollowupflagged('filtersAlarms', data); 
    568                         } 
    569                         /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
    570                         cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
    571                 } 
    572                 checkAlarmsFilter = true; 
     658                handlerMessageFilter = function (data) {                         
     659                        notificationFilter(data, notifyPermission); 
     660                        alarmFollowupflagged('filtersAlarms', data); 
     661                         
     662                } 
     663                /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     664                cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     665 
    573666                if(data['msg_range_end']) 
    574667                        if(data['msg_range_end'] > 0) 
     
    582675                        showEmptyBoxMsg(box); 
    583676 
    584                 if (data.length > 0){ 
     677                if (data.length > 0 || countNewMessage > 0){ 
    585678                        for(var i=0;i< data.length;i++){ 
    586679                                if (!onceOpenedHeadersMessages[current_folder]) 
     
    588681                                onceOpenedHeadersMessages[current_folder][data[i].msg_number] = data[i]; 
    589682                        } 
    590                         Element("table_message_header_box_"+numBox).emptyBody = false; 
     683                        Element("table_message_header_box_0").emptyBody = false; 
    591684                        table_element = Element("table_box"); 
    592685                        var msg_info = document.getElementById('msg_info'); 
     
    617710                        if (data[0].msg_folder != current_folder) // Bad request 
    618711                                return false; 
     712                                 
     713                        totalFolderMsgs += data.new_msgs;  
     714                                 
    619715                        for (var i=0; i<data.length; i++){ 
    620716                                var existent = document.getElementById(data[i].msg_number); 
    621717                                if (!existent) 
    622718                                { 
     719                                        selectedPagingMsgs[data[i].msg_number] = false; 
     720                                        updateSelectedMsgs(false,data[i].msg_number); 
    623721                                        var new_msg = this.make_tr_message(data[i], current_folder, data.offsetToGMT); 
    624722                                        $(new_msg).draggable({ 
     
    669767                                                }, 
    670768                                                helper: function(event){ 
    671                                                                 if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    672                                                                         $(this).find("input:checkbox").trigger('click'); 
    673                                                                         $(this).addClass("selected_msg"); 
    674                                                                 } 
    675                                                                 if($("#table_box").find("tr input:checked").length > 1) 
    676                                                                         return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($("#table_box").find("tr input:checked")).length+" mensagens selecionadas"), type: "messages"})+"</td></tr>"); 
    677                                                                 if(     $(this).find(".td_msg_subject").text().length > 18 ) 
    678                                                                         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>"); 
    679                                                                 else 
    680                                                                         return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text(), type: "messages"})+"</td></tr>"); 
     769                                                        $(this).addClass("selected_msg").find("input:checkbox").attr("checked", true); 
     770                                                        updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
     771                                                        if ( $("#tbody_box .selected_shortcut_msg").length > 1) { 
     772                                                                $("#tbody_box .selected_shortcut_msg").addClass("selected_msg").find('.checkbox').attr('checked',true); 
     773                                                                $.each( $(".selected_shortcut_msg"), function(index, value){ 
     774                                                        updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id")); 
     775                                                        }); 
     776                                                        } 
     777                                                        if(totalSelected() > 1) 
     778                                                                return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (totalSelected()+" mensagens selecionadas"), type: "messages"})+"</td></tr>"); 
     779                                                        if(     $(this).find(".td_msg_subject").text().length > 18 ) 
     780                                                                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>"); 
     781                                                        else 
     782                                                                return $("<tr><td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text(), type: "messages"})+"</td></tr>"); 
    681783                                                }, 
    682784                                                iframeFix: true, 
     
    686788                                                containment: "#divAppbox" 
    687789                                        }).bind("contextmenu", function(){ 
    688                                                 if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    689                                                         $(this).find("input:checkbox").trigger('click'); 
    690                                                         $(this).addClass("selected_msg"); 
     790                                                if (!(($(event.target).find('img').length > 0) && ($(event.target).hasClass('td-label')))){ 
     791                                                        if($(this).find("input:checkbox").attr("checked") != "checked"){ 
     792                                                                $(this).find("input:checkbox").trigger('click'); 
     793                                                                $(this).addClass("selected_msg"); 
     794                                                        } 
     795                                                        updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
    691796                                                } 
    692797                                        }); 
     
    711816                        if(parseInt(preferences.use_shortcuts)) 
    712817                                select_msg("null","reload_msg","null"); 
    713  
    714                         if(parseInt(alert_new_msg) && data.new_msgs > 0) 
     818                 
     819                        if(parseInt(alert_new_msg) && data.new_msgs > 0 && activePage) 
    715820                                alert(data['new_msgs'] > 1 ? get_lang("You have %1 new messages", data['new_msgs']) + "!" : get_lang("You have 1 new message") +"!"); 
     821                         
     822                         
     823                        if(parseInt(notifyPermission)  && (data.new_msgs > 0 || !!countNewMessage) && !activePage ){ 
     824                         
     825                                countNewMessage += data.length; 
     826                                 
     827                                desktopNotificationAux = desktopNotification.sentNotification("",get_lang("Notification"), countNewMessage > 1 ? get_lang("You have %1 new messages", countNewMessage) + "!" : get_lang("You have 1 new message") + "!"); 
     828                                 
     829                                if(auxNotification !== 'undefined') 
     830                                        desktopNotification.cancelByReference(auxNotification); 
     831                                 
     832                                desktopNotification.showNotification(function(){ 
     833                                        countNewMessage = 0; 
     834                                }, function(){ 
     835                                        window.focus(); 
     836                                        this.cancel(); 
     837                                        countNewMessage = 0; 
     838                                }); 
     839                                 
     840                                auxNotification = desktopNotificationAux; 
     841                        } 
    716842                        build_quota(data['quota']); 
    717843                } 
     
    811937                          
    812938                        if (!archive && (parseInt(preferences.save_deleted_msg)) && (folder != userTrashFolder)){  
    813                                 move_msgs2(folder, msgs_number, border_ID, userTrashFolder,special_folders['Trash'],show_success_msg );  
     939                    if(currentTab == 0) 
     940                                                msgs_number = get_selected_messages(); 
     941                            move_msgs2(folder, ""+msgs_number, border_ID, userTrashFolder,special_folders['Trash'],show_success_msg );  
    814942                                return; 
    815943        } 
     
    835963                        } 
    836964 
    837                         if(data.status == false){  
    838                     write_msg(get_lang("You don't have permission for this operation in this shared folder!"));  
    839                     return false;  
    840                     }  
    841  
    842                 if (show_success_msg){  
    843                 if (data.msgs_number.length == 1)  
    844                         write_msg(get_lang("The message was deleted."));  
    845                 else  
    846                         write_msg(get_lang("The messages were deleted."));  
    847         }  
    848          
     965                if(data.status == false){ 
     966                        write_msg(get_lang("You don't have permission for this operation in this shared folder!")); 
     967                        return false; 
     968                } 
     969 
     970                if (show_success_msg){ 
     971                        if (data.msgs_number.length == 1) 
     972                                write_msg(get_lang("The message was deleted.")); 
     973                        else 
     974                                write_msg(get_lang("The messages were deleted.")); 
     975                } 
     976 
    849977                if (openTab.type[currentTab] > 1){ 
    850978                        var msg_to_delete = Element(msgs_number); 
     
    8821010                                if (msg_to_delete){ 
    8831011                                                removeAll(msg_to_delete.id); 
     1012                                                 delete selectedPagingMsgs[data.msgs_number[i]];  
    8841013                                } 
    885                                 totalFolderMsgs = totalFolderMsgs - data.msgs_number.length; 
     1014                                 totalFolderMsgs = totalFolderMsgs - data.msgs_number.length;  
    8861015                } 
    8871016                Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - data.msgs_number.length; 
    8881017                refresh(); 
    8891018        } 
    890  
    891         if (msgs_number == 'selected') 
     1019         
     1020        if(currentTab == 0 ) 
    8921021                msgs_number = get_selected_messages(); 
     1022 
    8931023        if (msgs_number.length > 0 || parseInt(msgs_number) > 0) 
    8941024                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); 
     
    10531183                        params += "&new_folder="+url_encode(new_folder); 
    10541184                        params += "&new_folder_name="+url_encode(new_folder_name); 
    1055                 cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
    1056         } 
     1185                        cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
     1186                } 
    10571187        } 
    10581188        else 
     
    10791209                                var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : special_folders['Trash']; 
    10801210                                alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.', folder_error)); 
    1081                                 connector.loadScript('TreeShow'); 
    10821211                                ttree.FOLDER = 'root'; 
    1083                                 ttreeBox.new_past(move_to_folder); 
     1212                                create_new_folder(move_to_folder,"INBOX"); 
    10841213                                return false; 
    10851214                        }else{ 
    1086                                 data = data.split("/").reverse(); //Recupera o nome da pasta do array  
    1087                 write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".', data[0]));  
     1215                                data = data.split("/").reverse(); //Recupera o nome da pasta do array 
     1216                                write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".', data[0])); 
    10881217                                return false; 
    10891218                        } 
     
    12271356        } catch (e) {}  
    12281357 
    1229         if (msgs_number == 'selected'){ 
     1358        if(currentTab == 0) 
    12301359                msgs_number = get_selected_messages(); 
    1231                 } 
    12321360 
    12331361        if(openTab.type[currentTab] == 1){ 
     
    12511379                                url: 'controller.php?' + $.param( {action: '$this.imap_functions.move_messages', 
    12521380                                                                    folder: folder, 
    1253                                                                     msgs_number: msgs_number, 
     1381                                                                    msgs_number: ""+msgs_number, 
    12541382                                                                    border_ID: border_ID, 
    12551383                                                                    sort_box_type: sort_box_type, 
     
    12641392                                success: function( data ){ 
    12651393                                    data = connector.unserialize( data ); 
    1266                                      
     1394                                    $.each(msgs_number, function(index, value){ 
     1395                                        delete selectedPagingMsgs[value]; 
     1396                                    }); 
     1397                                    totalFolderMsgs -= msgs_number.split(",").length; 
     1398 
     1399                                    //TESTE 
     1400                                    selectAllFolderMsgs(); 
     1401                                $('.select-link').unbind('click'); 
     1402 
    12671403                                    if( data ) 
    12681404                                        handler_move_msgs( data ); 
     
    16061742} 
    16071743 
    1608 function get_selected_messages(){ 
     1744/*function get_selected_messages(){ 
    16091745        var main; 
    16101746        try{ 
     
    16501786 
    16511787                          
    1652                         /* Verifica se está na tela de pesquisa. */  
     1788                        /* Verifica se está na tela de pesquisa. */ /* 
    16531789                        if(selected_messages.indexOf("_") != -1)  
    16541790                        {  
    16551791                                results_search_messages = selected_messages;  
    1656                                 /* Retira a informação da aba */  
     1792                                /* Retira a informação da aba */ /* 
    16571793                                selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 
    16581794        } 
     
    16701806                        return selected_messages_by_shortcuts; 
    16711807                }*/ 
    1672                 /*Se houver mais de uma mensagem selecionada por atalho*/ 
     1808                /*Se houver mais de uma mensagem selecionada por atalho*//* 
    16731809                if (array_selected_messages_by_shortcuts.length > 1){ 
    16741810                        if (selected_messages == "") 
     
    16821818        else 
    16831819                return selected_messages; 
     1820}*/ 
     1821function get_selected_messages(){ 
     1822        var selected = new Array(); 
     1823        $.each(selectedPagingMsgs, function(index, value){ 
     1824                if(value) 
     1825                        selected.push(index); 
     1826        }); 
     1827        return ""+selected; 
    16841828} 
    16851829 
     
    16961840} 
    16971841 
    1698 function new_message(type, border_ID, flagged){  
     1842function new_message(type, border_ID, flagged){ 
    16991843                if(RichTextEditor.editorReady === false) return false;  
    17001844                              
     
    17391883        { 
    17401884                RichTextEditor.editorReady = true;  
    1741             setTimeout('new_message(\''+type+'\',\''+border_ID+'\',\''+flagged+'\');',500);  
     1885            setTimeout('new_message(\''+type+'\',\''+border_ID+'\',\''+flagged+'\');',500); 
    17421886                return false; 
    17431887        } 
     
    18041948        if (document.getElementById("body_" + border_ID)) 
    18051949                data.body = document.getElementById("body_" + border_ID).innerHTML; 
     1950        if (document.getElementById("from_values_" + border_ID)) 
     1951                data.from = document.getElementById("from_values_"+border_ID).value; 
    18061952        if (Element('date_' + border_ID)){ 
    18071953                data.date = Element('date_' + border_ID).innerHTML; 
     
    18271973        var content = $("#content_id_"+new_border_ID); 
    18281974 
    1829          
    18301975switch(type){ 
    18311976                case "reply_without_history": 
     
    18461991                        break; 
    18471992                case "reply_with_history": 
    1848  
    18491993                        RichTextEditor.replyController = true; //Seta o editor como modo reply  
    18501994                        title = "Re: " + html_entities(data.subject); 
     
    18531997                         
    18541998                        draw_reply_boxes_by_field("to", data.to, content); 
    1855                          
    18561999                        content.find('[name="msg_reply_from"]').val($("#msg_number_" + border_ID).val());        
    1857  
    1858                         block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 
     2000                        block_quoted_body = make_body_reply(data.body, data.from, data.date_day, data.date_hour); 
    18592001                         
    18602002                        useOriginalAttachments(new_border_ID,border_ID); 
     
    19562098                        content.find(".subject").val("Re: " + data.subject); 
    19572099                         
    1958                         block_quoted_body = make_body_reply(data.body, data.to, data.date_day, data.date_hour); 
     2100                        block_quoted_body = make_body_reply(data.body, data.from, data.date_day, data.date_hour); 
    19592101                         
    19602102                        useOriginalAttachments(new_border_ID,border_ID); 
     
    20202162                        break; 
    20212163                case "edit": 
     2164                 
     2165                        if(flagged == 'F') 
     2166                                $(".important").addClass("expressomail-button-icon-ative"); 
    20222167                         
    2023                         if(flagged == 'F')  
    2024                         $(".important").addClass("expressomail-button-icon-ative");  
    2025                      
     2168                        openTab.imapBox[new_border_ID] = folder_message.value; 
    20262169                        document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 
    20272170                        title = "Edição: "+ html_entities(data.subject); 
     
    20992242//DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 
    21002243function draw_reply_boxes_by_field(field, value, context){ 
    2101         array = value.split(","); 
     2244        array = break_comma(value); 
    21022245        $.each(array, function(index, value){ 
    21032246                draw_email_box(value, context.find("."+field).filter("textarea:first")); 
     
    21662309                                    var attach = {}; 
    21672310                                    attach.fileName =  attachments[i].text.substring(0, attachments[i].text.lastIndexOf('(')); 
    2168  
    2169                                     if(attach.fileName.length > 45) 
    2170                                         attach.fileName = attach.fileName.substr(0, 32) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     2311                    attach.fullFileName = attach.fileName; 
     2312                                    if(attach.fileName.length > 20) 
     2313                                        attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    21712314 
    21722315                                    attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
    21732316 
     2317                    attach.error = false; 
     2318                    fileUploadMSG.find(' .attachments-list').show(); 
    21742319                                    var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2175                                     upload.find('.status-upload').remove(); 
    2176                                     upload.find('.in-progress').remove();  
    21772320                                    upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
    2178                                     upload.find('.button.close').button({ 
    2179                                             icons: { 
    2180                                                     primary: "ui-icon-close" 
    2181                                             }, 
    2182                                             text: false 
    2183  
    2184                                     }).click(function(){ 
     2321                    upload.find(".att-box-loading").remove(); 
     2322                                    upload.find('.att-box-delete').click(function(){ 
    21852323                                            var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    21862324                                            var content_body = RichTextEditor.getData('body_'+new_border_ID); 
     
    21982336                                            fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]'); 
    21992337                                            delAttachment(new_border_ID,idAttach);  
    2200                                             $(this).parent().remove(); 
     2338                                            $(this).parent().qtip("destroy"); 
     2339                        $(this).parent().remove(); 
     2340                        if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
     2341                            fileUploadMSG.find(' .attachments-list').hide(); 
     2342                        } 
    22012343                                    }); 
    22022344 
    22032345                                    fileUploadMSG.find('.attachments-list').append(upload); 
     2346                    fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
     2347                        content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
     2348                        position: { 
     2349                            corner: { 
     2350                                tooltip: 'bottomMiddle', 
     2351                                target: 'topMiddle' 
     2352                            }, 
     2353                            adjust: { 
     2354                               resize: true, 
     2355                               scroll: true, 
     2356                               screen: true 
     2357                            } 
     2358                        }, 
     2359                        show: { 
     2360                            when: 'mouseover', // Don't specify a show event 
     2361                            ready: false // Show the tooltip when ready 
     2362                        }, 
     2363                        hide: 'mouseout', // Don't specify a hide event 
     2364                        style: { 
     2365                            border: { 
     2366                                width: 1, 
     2367                                radius: 5 
     2368                            }, 
     2369                            width: { 
     2370                                                                 min: 75, 
     2371                                                                 max : 1000 
     2372                                                        }, 
     2373                            padding: 3,  
     2374                            textAlign: 'left', 
     2375                            tip: true, // Give it a speech bubble tip with automatic corner detection 
     2376                            name: 'blue' // Style it according to the preset 'cream' style 
     2377                        } 
     2378                    }); 
    22042379                                } 
    22052380                                else 
     
    22242399                                    var attach = {}; 
    22252400                                    attach.fileName =  arrayAttachmentsA[i].text.substring(0, arrayAttachmentsA[i].text.lastIndexOf('(')); 
    2226  
    2227                                     if(attach.fileName.length > 45) 
    2228                                         attach.fileName = attach.fileName.substr(0, 32) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     2401                    attach.fullFileName = attach.fileName; 
     2402                                    if(attach.fileName.length > 20) 
     2403                                        attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    22292404 
    22302405                                    attach.fileSize =  arrayAttachmentsA[i].text.substring(( arrayAttachmentsA[i].text.lastIndexOf('(')+1), arrayAttachmentsA[i].text.lastIndexOf(')')); 
    2231  
     2406                    attach.error = false; 
     2407                    fileUploadMSG.find(' .attachments-list').show(); 
    22322408                                    var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2233                                     upload.find('.status-upload').remove(); 
    2234                                     upload.find('.in-progress').remove();  
     2409                                    upload.find('.att-box-loading').remove();  
    22352410                                    upload.append('<input type="hidden" name="fileId[]" value=\''+arrayAttachments[i]+'\'/>'); 
    2236                                     upload.find('.button.close').button({ 
    2237                                             icons: { 
    2238                                                     primary: "ui-icon-close" 
    2239                                             }, 
    2240                                             text: false 
    2241  
    2242                                     }).click(function(){ 
    2243                                             var idAttach = $(this).parent().parent().find('input[name="fileId[]"]').val(); 
     2411                                    upload.find('.att-box-delete').click(function(){ 
     2412                                            var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    22442413                                            var content_body = RichTextEditor.getData('body_'+new_border_ID); 
    22452414                                            var imagens = content_body.match(/<img[^>]*>/g); 
     
    22562425                                            fileUploadMSG.find('.attachments-list').find('input[value="'+idAttach+'"]'); 
    22572426                                            delAttachment(new_border_ID,idAttach);  
    2258                                             $(this).parent().remove(); 
     2427                                            $(this).parent().qtip("destroy"); 
     2428                        $(this).parent().remove(); 
     2429                        if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
     2430                            fileUploadMSG.find(' .attachments-list').hide(); 
     2431                        } 
    22592432                                    }); 
    22602433 
    22612434                                    fileUploadMSG.find('.attachments-list').append(upload); 
    2262  
     2435                    fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
     2436                        content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
     2437                        position: { 
     2438                            corner: { 
     2439                                tooltip: 'bottomMiddle', 
     2440                                target: 'topMiddle' 
     2441                            }, 
     2442                            adjust: { 
     2443                               resize: true, 
     2444                               scroll: true, 
     2445                               screen: true 
     2446                            } 
     2447                        }, 
     2448                        show: { 
     2449                            when: 'mouseover', // Don't specify a show event 
     2450                            ready: false // Show the tooltip when ready 
     2451                        }, 
     2452                        hide: 'mouseout', // Don't specify a hide event 
     2453                        style: { 
     2454                            border: { 
     2455                                width: 1, 
     2456                                radius: 5 
     2457                            }, 
     2458                            width: { 
     2459                                                                 min: 75, 
     2460                                                                 max : 1000 
     2461                                                        }, 
     2462                            padding: 3,  
     2463                            textAlign: 'left', 
     2464                            tip: true, // Give it a speech bubble tip with automatic corner detection 
     2465                            name: 'blue' // Style it according to the preset 'cream' style 
     2466                        } 
     2467                    }); 
    22632468                        } 
    22642469 
     
    22782483            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))) 
    22792484                    continue; 
    2280  
     2485                fileUploadMSG.find(' .attachments-list').show(); 
    22812486                var arrayAtt = attachments[i].href.replace("javascript:download_attachments(", "").replace(")", "").split(',');                                  
    22822487                var att = new Object(); 
     
    22902495 
    22912496                var attach = {}; 
     2497 
    22922498                attach.fileName =  attachments[i].text.substring(0, attachments[i].text.lastIndexOf('(')); 
    2293  
    2294                 if(attach.fileName.length > 45) 
    2295                     attach.fileName = attach.fileName.substr(0, 32) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
     2499                attach.fullFileName = attach.fileName; 
     2500 
     2501                if(attach.fileName.length > 20) 
     2502                    attach.fileName = attach.fileName.substr(0, 17) + " ... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    22962503 
    22972504                attach.fileSize =  attachments[i].text.substring(( attachments[i].text.lastIndexOf('(')+1), attachments[i].text.lastIndexOf(')')); 
     2505                attach.error = false; 
    22982506 
    22992507                var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    2300                 upload.find('.status-upload').remove(); 
    2301                 upload.find('.in-progress').remove();  
    2302                 upload.find('.button.close').button({ 
    2303                         icons: { 
    2304                                 primary: "ui-icon-close" 
     2508                upload.find('.att-box-loading').remove();  
     2509                upload.find('.att-box-delete').click(function(){ 
     2510                    var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
     2511                    var content_body = RichTextEditor.getData('body_'+new_border_ID); 
     2512                    var imagens = content_body.match(/<img[^>]*>/g); 
     2513                    var att = JSON.parse(idAttach); 
     2514                    if(imagens != null) 
     2515                    {    
     2516                        for (var x = 0; x < imagens.length; x++) 
     2517                            if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part) !== -1) 
     2518                                content_body = content_body.replace(imagens[x],''); 
     2519 
     2520                         RichTextEditor.setData('body_'+new_border_ID,content_body);     
     2521                    }        
     2522 
     2523                    fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
     2524                    delAttachment(new_border_ID,idAttach);  
     2525                    $(this).parent().qtip("destroy"); 
     2526                    $(this).parent().remove(); 
     2527                    if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
     2528                        fileUploadMSG.find(' .attachments-list').hide(); 
     2529                    } 
     2530                });      
     2531 
     2532 
     2533                upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
     2534                fileUploadMSG.find('.attachments-list').append(upload); 
     2535                fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
     2536                    content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
     2537                    position: { 
     2538                        corner: { 
     2539                            tooltip: 'bottomMiddle', 
     2540                            target: 'topMiddle' 
    23052541                        }, 
    2306                         text: false 
    2307                 }).click(function(){ 
    2308                         var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    2309                         var content_body = RichTextEditor.getData('body_'+new_border_ID); 
    2310                         var imagens = content_body.match(/<img[^>]*>/g); 
    2311                         var att = JSON.parse(idAttach); 
    2312                         if(imagens != null) 
    2313                         {    
    2314                             for (var x = 0; x < imagens.length; x++) 
    2315                                 if(imagens[x].indexOf('src="./inc/get_archive.php?msgFolder='+att.folder+'&amp;msgNumber='+att.uid+'&amp;indexPart='+att.part) !== -1) 
    2316                                     content_body = content_body.replace(imagens[x],''); 
    2317  
    2318                              RichTextEditor.setData('body_'+new_border_ID,content_body);     
    2319                         }        
    2320  
    2321                         fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]'); 
    2322                         delAttachment(new_border_ID,idAttach);  
    2323                         $(this).parent().remove(); 
    2324                 });      
    2325  
    2326  
    2327                 upload.find("p").append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
    2328                 fileUploadMSG.find('.attachments-list').append(upload); 
     2542                        adjust: { 
     2543                           resize: true, 
     2544                           scroll: true, 
     2545                           screen: true 
     2546                        } 
     2547                    }, 
     2548                    show: { 
     2549                        when: 'mouseover', // Don't specify a show event 
     2550                        ready: false // Show the tooltip when ready 
     2551                    }, 
     2552                    hide: 'mouseout', // Don't specify a hide event 
     2553                    style: { 
     2554                        border: { 
     2555                            width: 1, 
     2556                            radius: 5 
     2557                        }, 
     2558                        width: { 
     2559                                                         min: 75, 
     2560                                                         max : 1000 
     2561                                                }, 
     2562                        padding: 3,  
     2563                        textAlign: 'left', 
     2564                        tip: true, // Give it a speech bubble tip with automatic corner detection 
     2565                        name: 'blue' // Style it according to the preset 'cream' style 
     2566                    } 
     2567                }); 
    23292568 
    23302569    }                    
     
    24822721                                } 
    24832722                        }); 
     2723                        $.each(dynamicPersonalGroups, function(x, valuex){ 
     2724                                if(valuex.email == $(value).find("input").val().match(reComplexEmail)[1]){ 
     2725                                        stop = true; 
     2726                                        return false; 
     2727                                } 
     2728                        }); 
    24842729                        if(!stop){ 
    24852730                                var exist = 0; 
     
    25722817 
    25732818function send_message(ID, folder, folder_name){ 
    2574      if(!zebraDiscardEventDialog && $('#fileupload_msg'+ID).find('.in-progress').length ) 
    2575      { 
    2576          zebraDiscardEventDialog = true; 
    2577          window.setTimeout(function() { 
    2578          $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 
    2579                     'type':     'question', 
    2580                     'overlay_opacity': '0.5', 
    2581                     'buttons':  ['Descartar anexos e enviar', 'Continuar editando e esperar anexos'], 
    2582                     'width' : 500, 
    2583                     'onClose':  function(clicked) { 
    2584                             if(clicked == 'Descartar anexos e enviar' )  
    2585                               send_valided_message(ID, folder, folder_name); 
    2586  
    2587                             window.setTimeout(function() { 
    2588                                     zebraDiscardEventDialog = false; 
    2589                             }, 500); 
     2819    if(!zebraDiscardEventDialog && $('#fileupload_msg'+ID).find('.att-box-loading').length ) 
     2820    { 
     2821        zebraDiscardEventDialog = true; 
     2822        window.setTimeout(function() { 
     2823            $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 
     2824                'type':     'question', 
     2825                'overlay_opacity': '0.5', 
     2826                'buttons':  ['Descartar anexos e enviar', 'Continuar editando e esperar anexos'], 
     2827                'width' : 500, 
     2828                'onClose':  function(clicked) { 
     2829                    if(clicked == 'Descartar anexos e enviar' ){  
     2830                        $.each($('#fileupload_msg'+ID).find('.att-box'), function(index, value){ 
     2831                            if($(value).find(".att-box-loading").length) 
     2832                                $(value).find('.att-box-delete').trigger("click"); 
     2833                        }); 
     2834                        send_valided_message(ID, folder, folder_name); 
    25902835                    } 
    2591              }) 
    2592           }, 300);  
    2593  
    2594      } 
    2595      else 
    2596        send_valided_message(ID, folder, folder_name);      
     2836                    window.setTimeout(function() { 
     2837                        zebraDiscardEventDialog = false; 
     2838                    }, 500); 
     2839                } 
     2840            }) 
     2841        }, 300);  
     2842    }else 
     2843        send_valided_message(ID, folder, folder_name);      
    25972844} 
    25982845 
     
    26952942        } 
    26962943        //stringEmail = content.find('[name="input_to"]').val(); 
     2944 
     2945    var stringReply = ""; 
     2946    draw_email_box(content.find(".reply-to-tr").find("textarea:first").val(), content.find(".reply-to-tr").find("textarea:first")); 
     2947    content.find(".reply-to-tr").find("textarea:first").val(""); 
     2948    var array = content.find(".reply-to-tr").find(".box"); 
     2949    $.each(array, function(index, value){ 
     2950        stringReply += $(value).find("input").val() + ","; 
     2951    }); 
     2952    content.find('[name="input_reply_to"]').val(stringReply); 
     2953 
    26972954        var stringEmail = ""; 
    26982955        var stringToEmail = ""; 
    2699         draw_email_box(content.find(".to-tr").find("textarea:first").val(), content.find(".to-tr").find("textarea:first"));  
     2956        draw_email_box(content.find(".to-tr").find("textarea:first").val(), content.find(".to-tr").find("textarea:first")); 
    27002957        content.find(".to-tr").find("textarea:first").val(""); 
    27012958        var array = content.find(".to-tr").find(".box"); 
    27022959        $.each(array, function(index, value){ 
    2703                 //stringEmail += $(value).find("input").val() + ",";  
    2704             stringToEmail += $(value).find("input").val() + ","; 
     2960                //stringEmail += $(value).find("input").val() + ","; 
     2961                stringToEmail += $(value).find("input").val() + ","; 
    27052962        }); 
    2706         content.find('[name="input_to"]').val(stringToEmail);  
    2707         stringEmail = stringToEmail;  
    2708         var stringCCoEmail = ""; 
     2963        content.find('[name="input_to"]').val(stringToEmail); 
     2964        stringEmail = stringToEmail; 
     2965        var stringCCoEmail = ""; 
    27092966        if ( content.find('[name="input_cco"]').length){ 
    27102967                if(content.find(".cco-tr").css("display") != "none"){ 
    2711                         draw_email_box(content.find(".cco-tr").find("textarea:first").val(), content.find(".cco-tr").find("textarea:first"));  
     2968                        draw_email_box(content.find(".cco-tr").find("textarea:first").val(), content.find(".cco-tr").find("textarea:first")); 
    27122969                        content.find(".cco-tr").find("textarea:first").val(""); 
    27132970                        var array = content.find(".cco-tr").find(".box"); 
    27142971                        $.each(array, function(index, value){ 
    2715                                 //stringEmail += $(value).find("input").val() + ",";  
    2716                     stringCCoEmail += $(value).find("input").val() + ",";  
     2972                                //stringEmail += $(value).find("input").val() + ","; 
     2973                                stringCCoEmail += $(value).find("input").val() + ","; 
    27172974                        }); 
    2718                         content.find('[name="input_cco"]').val(stringCCoEmail);  
    2719                 }  
    2720         }  
    2721         stringEmail += stringCCoEmail;  
     2975                        content.find('[name="input_cco"]').val(stringCCoEmail); 
     2976                } 
     2977        } 
     2978        stringEmail += stringCCoEmail; 
    27222979        var stringCCEmail = "";          
    27232980        if(content.find(".cc-tr").css("display") != "none") 
    27242981        { 
    2725                 draw_email_box(content.find(".cc-tr").find("textarea:first").val(), content.find(".cc-tr").find("textarea:first"));  
     2982                draw_email_box(content.find(".cc-tr").find("textarea:first").val(), content.find(".cc-tr").find("textarea:first")); 
    27262983                content.find(".cc-tr").find("textarea:first").val(""); 
    27272984                var array = content.find(".cc-tr").find(".box"); 
    27282985                $.each(array, function(index, value){ 
    2729                         //stringEmail += $(value).find("input").val() + ",";  
    2730                 stringCCEmail += $(value).find("input").val() + ","; 
     2986                        //stringEmail += $(value).find("input").val() + ","; 
     2987                        stringCCEmail += $(value).find("input").val() + ","; 
    27312988                }); 
    2732                 content.find('[name="input_cc"]').val(stringCCEmail);  
    2733         }  
    2734         stringEmail +=  stringCCEmail; 
    2735                  
     2989                content.find('[name="input_cc"]').val(stringCCEmail); 
     2990        } 
     2991        stringEmail +=  stringCCEmail; 
    27362992        if (expresso_offline) { 
    27372993                 
     
    27523008        else{ 
    27533009                if(stringEmail != ""){ 
    2754                         $.ajax({                          
    2755                     url: "controller.php?",  
    2756                     success: function(data){  
    2757                             cExecuteForm("$this.imap_functions.send_mail", form, handler_send_message, ID);  
    2758                     },  
    2759                     error: function(){  
    2760                             write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos...");  
    2761                             var interval = setInterval(function(){  
    2762                                             send_valided_message(ID,folder,folder_name);  
    2763                                             clearInterval(interval);  
    2764                             },15000);  
    2765                             return;  
    2766                     }  
    2767             }); 
     3010                        $.ajax({                         
     3011                                url: "controller.php?", 
     3012                                success: function(data){ 
     3013                                        cExecuteForm("$this.imap_functions.send_mail", form, handler_send_message, ID); 
     3014                                }, 
     3015                                error: function(){ 
     3016                                        write_msg("Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos..."); 
     3017                                        var interval = setInterval(function(){ 
     3018                                                        send_valided_message(ID,folder,folder_name); 
     3019                                                        clearInterval(interval); 
     3020                                        },15000); 
     3021                                        return; 
     3022                                } 
     3023                        });                      
    27683024                }else{ 
    27693025                        write_msg(get_lang("message without receiver")); 
     
    28533109    var content = $("#content_id_"+border_id); 
    28543110         
     3111 
     3112    var array = content.find(".reply-to-tr").find(".box"); 
     3113    var stringReplyToEmail = ""; 
     3114    $.each(array, function(index, value){ 
     3115        stringReplyToEmail += $(value).find("input").val() + ","; 
     3116    }); 
     3117    content.find('[name="input_reply_to"]').val(stringReplyToEmail); 
     3118 
    28553119        var stringEmail = ""; 
    28563120        draw_email_box(content.find(".to-tr").find("textarea:first").val(), content.find(".to-tr").find("textarea:first"));  
     
    31063370                          success: function( data ){ 
    31073371                              data = connector.unserialize( data ); 
    3108                                
     3372 
     3373                              selectAllFolderMsgs(); 
     3374                              $('.select-link').unbind('click'); 
     3375 
    31093376                              if( data ) 
    31103377                                  handler_set_messages_flag( data ); 
     
    32063473                } 
    32073474        } 
    3208  
    32093475         
    32103476        var print_width = screen.width - 200;  
     
    34223688} 
    34233689 
    3424 function empty_trash_imap(){ 
     3690function empty_trash_imap(shared, button){ 
     3691        if(shared){ 
     3692                var folder_part = $(button).parents("li:first").attr("id").split(cyrus_delimiter); 
     3693                var folder = folder_part[0]+cyrus_delimiter+folder_part[1]; 
     3694        } 
     3695 
    34253696        var handler_empty_trash = function(data){ 
    34263697                Element('chk_box_select_all_messages').checked = false; 
     
    34333704                draw_tree_labels(); 
    34343705                if (data){ 
     3706                        if(typeof(data) == "object"){ 
     3707                                if(data[1] == "Permission denied"){ 
     3708                                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     3709                                        return write_msg(get_lang("Permission denied")); 
     3710                                } 
     3711                        } 
    34353712                        write_msg(get_lang('Your Trash folder was empty.')); 
    34363713                        if (get_current_folder() == mount_url_folder(["INBOX",special_folders["Trash"]])){ 
     
    34523729                'onClose':  function(caption) { 
    34533730                        if(caption == get_lang("Yes")){ 
    3454                                 cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultTrashFolder", handler_empty_trash); 
     3731                                cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultTrashFolder"+(shared ? "&shared="+folder : ""), handler_empty_trash); 
    34553732                        } 
    34563733                } 
     
    34583735} 
    34593736 
    3460 function empty_spam_imap(){ 
     3737function empty_spam_imap(shared, button){ 
     3738        if(shared){ 
     3739                var folder_part = $(button).parents("li:first").attr("id").split(cyrus_delimiter); 
     3740                var folder = folder_part[0]+cyrus_delimiter+folder_part[1]; 
     3741        } 
    34613742        var handler_empty_spam = function(data){ 
    34623743                Element('chk_box_select_all_messages').checked = false; 
     
    34723753                draw_tree_labels(); 
    34733754                update_quota(get_current_folder()); 
    3474                 if (data) 
    3475                         write_msg(get_lang('Your Spam folder was empty.')); 
     3755                if (data){ 
     3756                        if(typeof(data) == "object"){ 
     3757                                if(data[1] == "Permission denied"){ 
     3758                                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     3759                                        return write_msg(get_lang("Permission denied")); 
     3760                                }else{ 
     3761                                        write_msg(get_lang('Your Spam folder was empty.'));              
     3762                                } 
     3763                        }else{ 
     3764                                write_msg(get_lang('Your Spam folder was empty.'));      
     3765                        } 
     3766                } 
    34763767                else 
    34773768                        write_msg(get_lang('ERROR emptying your Spam folder.')); 
     
    34853776                'onClose':  function(caption) { 
    34863777                        if(caption == get_lang("Yes")){ 
    3487                                 cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultSpamFolder", handler_empty_spam); 
     3778                                cExecute ("$this.imap_functions.empty_folder&clean_folder="+"imapDefaultSpamFolder"+(shared ? "&shared="+folder : ""), handler_empty_spam); 
    34883779                        } 
    34893780                } 
     
    35243815                else{ 
    35253816                        var filename = 'mensagens.zip';  
    3526                         if (data.match(/\.eml$/gi)) {  
    3527                                 filename = 'fonte_da_mensagem.eml';  
     3817                        if (data[0].match(/\.eml$/gi)) {  
     3818                filename = data[1]+'.eml';  
    35283819                        }  
    3529                         download_attachments(null, null, data, null,null,filename); 
     3820                        download_attachments(null, null, data[0], null,null,filename);  
    35303821                } 
    35313822        } 
     
    36213912                msgs_number = get_selected_messages(); 
    36223913 
     3914        //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
     3915        if(currentTab == 0) 
     3916                msgs_number = get_selected_messages(); 
     3917 
    36233918        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) 
    36243919                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); 
     
    36583953                return; 
    36593954        }else if(msgs_number == 'selected') 
     3955                msgs_number = get_selected_messages(); 
     3956 
     3957        //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 
     3958        if(currentTab == 0) 
    36603959                msgs_number = get_selected_messages(); 
    36613960 
     
    37334032                                                                } 
    37344033                                                         } 
    3735                                                 ],  
    3736             open: function(event, ui)  
    3737             {  
    3738                 if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    3739             },  
    3740             close: function(event, ui)  
    3741             {  
    3742                 if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
    3743             }  
     4034                                                ], 
     4035                open: function(event, ui)  
     4036                { 
     4037                    if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
     4038                }, 
     4039                close: function(event, ui)  
     4040                { 
     4041                    if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4042                } 
    37444043                }); 
    37454044 
     
    38554154} 
    38564155 
     4156//Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 
     4157function decodeCreateSchedulable(type, ID){ 
     4158        var startEvent = new Date();   
     4159        if(startEvent.toString('mm') < 30)  
     4160                startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
     4161        else  
     4162                startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
     4163        var endEvent = function(date){  
     4164        if(!!User.preferences.defaultCalendar){  
     4165                return  new Date(parseInt(date.getTime()) +  
     4166                        (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
     4167                        (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
     4168                        (User.preferences.defaultDuration * 60000) 
     4169                )); 
     4170        }else  
     4171                return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
     4172        };        
     4173 
     4174        var emails = $("#to_values_"+ID).val().split(','); 
     4175         
     4176        var schedulable = {}; 
     4177         
     4178        schedulable = {  
     4179                acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
     4180                alarms: [], 
     4181                allDay: false, 
     4182                attachments: [], 
     4183                isAttendee: true, 
     4184                attendee: '',//TODOOOOOO, 
     4185                category: '', 
     4186                'class': '1', 
     4187                delegatedFrom: {}, 
     4188                endDate: startEvent.toString(User.preferences.dateFormat), 
     4189                startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
     4190                startHour: startEvent.toString(User.preferences.hourFormat), 
     4191                endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
     4192                timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
     4193                summary : $("#subject_"+ID).text(), 
     4194                description : $("#body_" + ID).text(), 
     4195                startTime: startEvent.getTime(), 
     4196                endTime: endEvent(startEvent), 
     4197                timezones: Timezone.timezones, 
     4198                me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
     4199                organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
     4200                statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
     4201                location: '', 
     4202                attendee: $.map(emails, function( mail ){                        
     4203                        var contact = false; 
     4204                        var decoded =  Encoder.htmlDecode(mail); 
     4205                        var newAttendeeName = ""; 
     4206 
     4207                        var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
     4208                        var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
     4209 
     4210 
     4211                        var user = DataLayer.get('user', ["=", "mail", mail], true); 
     4212                         
     4213                        if( $.type(user) == "array" ) 
     4214                                user = user[0]; 
     4215 
     4216                        if(user != ''){ 
     4217                                //user = {name : name , mail : mail}; 
     4218                                if(User.me.mail == user.mail) 
     4219                                        return(null); 
     4220                                user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
     4221 
     4222                                return  DataLayer.merge({ 
     4223                                        name: user.name, 
     4224                                        mail: user.mail, 
     4225                                        acl:  'r', 
     4226                                        delegatedFrom: '0', 
     4227                                        status: '4', 
     4228                                        isExternal: user.isExternal 
     4229                                }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
     4230                        }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}\])/)){ 
     4231                                 
     4232                                var userId = DataLayer.put('user', { 
     4233                                name: name,  
     4234                                mail: mail,  
     4235                                isExternal: '1' 
     4236                                }); 
     4237                                var newAttendeeId = DataLayer.put('participant', { 
     4238                                user: userId,  
     4239                                isExternal: '1' 
     4240                                }); 
     4241 
     4242                                return  { 
     4243                                        id: newAttendeeId, 
     4244                                        name: name, 
     4245                                        mail: mail, 
     4246                                        acl:  'r', 
     4247                                        delegatedFrom: '0', 
     4248                                        status: '4', 
     4249                                        isExternal: '1' 
     4250                                }; 
     4251                                 
     4252                        }else 
     4253                                return (null); 
     4254                }) 
     4255        }; 
     4256 
     4257        schedulable  = DataLayer.merge(schedulable,  
     4258                type == 'event' ?  
     4259                {calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], calendars: Calendar.calendars} 
     4260                : {group: Calendar.groups[0].id, groups: Calendar.groups, percentage: 0, isOrganizer: true} 
     4261        ); 
     4262         
     4263        return schedulable; 
     4264             
     4265 
     4266} 
     4267 
    38574268function import_implements_calendar(){ 
    38584269 
     
    38684279                $.ajax({url: "../prototype/modules/calendar/js/map.disponibility.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38694280                $.ajax({url: "../prototype/modules/calendar/js/helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     4281                $.ajax({url: "../prototype/modules/calendar/js/task.helpers.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38704282                //$.ajax({ url: "../prototype/modules/calendar/js/timezone.js", async: false}); 
    38714283                //$.ajax({ url: "../prototype/modules/calendar/js/calendar.codecs.js", async: false}); 
    38724284                $.ajax({url: "../prototype/plugins/encoder/encoder.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
     4285                $.ajax({url: "../prototype/plugins/jquery.spinner/jquery.spinner.min.js", async: false, beforeSend: function( xhr ) {xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38734286                //$.ajax({url: "../prototype/plugins/dateFormat/dateFormat.js", async: false, beforeSend: function( xhr ) { xhr.overrideMimeType('text/javascript; charset=ISO-8859-1')}}); 
    38744287 
     
    39104323                wfolders.makeWindow('null','import'); 
    39114324} 
    3912 function import_calendar(data){ 
    3913     var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
    3914     var logUser; 
    3915     var up; 
    3916     var owner; 
    3917      
    39184325    //Verifica o contexto de importação 
    3919     var decodeOwner = function(){ 
    3920          
     4326    function decodeOwner(){ 
    39214327        owner = User.me.id; 
    39224328        var imapBox = openTab.imapBox[currentTab].split(cyrus_delimiter); 
     
    39244330            var user = DataLayer.get('user', {filter: ['=','uid',imapBox[1]]});              
    39254331            owner = $.isArray(user) ? user[0].id : user.id; 
    3926         } 
    3927          
     4332        }        
    39284333        return owner; 
    39294334    } 
     4335 
     4336   function import_calendar(data){ 
     4337        var import_url = '$this.db_functions.import_vcard&msg_folder='+data; 
     4338        var logUser; 
     4339        var up; 
     4340        var owner; 
     4341 
     4342        function handler_import_calendar(data){ 
     4343            if(data === true){ 
     4344                write_msg(get_lang("The event was imported successfully.")); 
     4345            } 
     4346            else if( data['url'] ) 
     4347            { 
     4348                var form = document.createElement( "form" ); 
     4349 
     4350                form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
     4351                form.setAttribute( "method", "POST" ); 
     4352 
     4353                document.body.appendChild( form ); 
     4354 
     4355                form.submit(); 
     4356            } 
     4357            else 
     4358                write_msg(get_lang(data)); 
     4359        }    
     4360        if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
     4361            import_implements_calendar(); 
     4362                $( "#import-dialog" ).dialog({ 
     4363                    autoOpen: false, 
     4364                    height: 220, 
     4365                    modal: true, 
     4366                    resizable : false, 
     4367                    open: function(event, ui) { 
     4368                        if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
     4369                    }, 
     4370                    close: function(event, ui){ 
     4371                        event.stopPropagation(); 
     4372                        if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4373                    }, 
     4374                    closeOnEscape: true 
     4375                }); 
     4376                    
     4377                $.ajax({ 
     4378                    url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
     4379                    async: false, 
     4380                    success: function(data){ 
     4381                        data = connector.unserialize(data); 
     4382                        var createDialog = function(typeImport, propaget){ 
     4383                                                
     4384                            if(typeof(typeImport) == "object"){ 
     4385                                var calendarIds = !!typeImport.calendar ? typeImport.calendar : Calendar[typeImport.type]; 
     4386                                typeImport = typeImport.action; 
     4387                            } 
     4388                                                    
     4389                            switch(parseInt(typeImport)){ 
     4390                                case 1: 
     4391                                case 7: 
     4392                                case 10: 
     4393                                    $("#select-agenda").html(''); 
     4394 
     4395                                    var options = ''; 
     4396 
     4397                                    if(calendarIds){ 
     4398                                        for(var i = 0; i < calendarIds.length; i++) 
     4399                                            options += '<option value="'+calendarIds[i]+'">'+Calendar.signatureOf[calendarIds[i]].calendar.name+'</option>' 
     4400                                    } 
     4401 
     4402                                    $("#select-agenda").append(options); 
     4403                                    $("#select-agenda").css("display", "block"); 
     4404 
     4405                                    $("#import-dialog" ).dialog({ 
     4406                                        buttons: { 
     4407                                            Cancel: function() { 
     4408                                                $( this ).dialog( "close" ); 
     4409                                            }, 
     4410                                            "Importar" : function(){ 
     4411                                                    $.ajax({ 
     4412                                                        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, 
     4413                                                        success: function(msg){ 
     4414                                                            var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento/tarefa para a agenda "; 
     4415                                                            alert( alt + $("#select-agenda option:selected").text() ); 
     4416                                                        } 
     4417                                                    }); 
     4418                                                    $( this ).dialog( "close" ); 
     4419                                            } 
     4420                                        } 
     4421                                    }); 
    39304422     
    3931     function handler_import_calendar(data){ 
    3932             if(data === true){ 
    3933                     write_msg(get_lang("The event was imported successfully.")); 
    3934             } 
    3935             else if( data['url'] ) 
    3936             { 
    3937                 var form = document.createElement( "form" ); 
    3938  
    3939                 form.setAttribute( "action", DEFAULT_URL + data['url'] + '&isPost=true' ); 
    3940                 form.setAttribute( "method", "POST" ); 
    3941  
    3942                 document.body.appendChild( form ); 
    3943  
    3944                 form.submit(); 
    3945             } 
    3946             else 
    3947                 write_msg(get_lang(data)); 
    3948     }    
    3949         if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
    3950                 import_implements_calendar(); 
    3951                 $( "#import-dialog" ).dialog({ 
    3952                         autoOpen: false, 
    3953                         height: 220, 
    3954                         modal: true, 
    3955                         resizable : false, 
    3956                         open: function(event, ui)   
    3957             {  
    3958                 if(typeof(shortcut) != 'undefined') shortcut.disabled = true;   
    3959             },  
    3960             close: function(event, ui)   
    3961             {  
    3962                 event.stopPropagation();  
    3963                 if(typeof(shortcut) != 'undefined') shortcut.disabled = false;   
    3964             }, 
    3965                         closeOnEscape: true 
    3966                 }); 
    3967                  
    3968                 $.ajax({ 
    3969                         url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
    3970                         async: false, 
    3971                         success: function(data){ 
    3972                                         data = connector.unserialize(data); 
    3973  
    3974  
    3975                                         var createDialog = function(typeImport, propaget){ 
    3976                                              
    3977                                                 if(typeof(typeImport) == "object"){ 
    3978                                                     var calendarPermission = typeImport.calendar; 
    3979                                                     typeImport = typeImport.action; 
     4423                                    if(typeImport == 7){ 
     4424                                        $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 
     4425                                        $("#import-dialog").find('#select-status').attr('disabled','disabled'); 
     4426                                    } 
     4427                                    break; 
     4428                                case 3: 
     4429                                    $.ajax({ 
     4430                                        url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
     4431                                        success: function(msg){ 
     4432                                            alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi removido " : "Ocorreu um erro ao remover o evento/tarefa" ); 
     4433                                        } 
     4434                                    }); 
     4435                                    return; 
     4436                                    break;  
     4437                                case 5: 
     4438                                    $.ajax({ 
     4439                                        url: 'controller.php?action='+import_url+'&from_ajax=true&selected=true&cirus_delimiter='+cyrus_delimiter, 
     4440                                        success: function(msg){ 
     4441                                            alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento/tarefa foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento/tarefa" ); 
     4442                                        } 
     4443                                    }); 
     4444                                    return; 
     4445                                    break;  
     4446                                case 6: 
     4447                                        var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 
     4448                                        $.ajax({ 
     4449                                            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(), 
     4450                                            success: function(msg){ 
     4451                                                if(acceptedSuggestion) 
     4452                                                    alert( ( ( connector.unserialize(msg)) == "ok") ? "Evento/tarefa atualizado com sucesso " : "Ocorreu um erro ao atualizar o evento" ); 
    39804453                                                } 
    3981                                                  
    3982                                                 switch(parseInt(typeImport)){ 
    3983                                                 case 1: 
    3984                                                 case 7: 
    3985                                                 case 10: 
    3986                                                     $("#select-agenda").html(''); 
    3987  
    3988                                                     var options = ''; 
    3989  
    3990                                                     if(typeImport == 10){ 
    3991                                                         for(var i = 0; i < calendarPermission.length; i++) 
    3992                                                             options += '<option value="'+calendarPermission[i]+'">'+Calendar.signatureOf[calendarPermission[i]].calendar.name+'</option>' 
    3993                                                     }else{ 
    3994                                                         for(var id in Calendar.signatures) 
    3995                                                            options += parseInt(Calendar.signatures[id].isOwner) ? '<option value="'+Calendar.signatures[id].calendar.id+'">'+Calendar.signatures[id].calendar.name+'</option>' : '';                                                     
     4454                                        }); 
     4455                                        return; 
     4456                                        break; 
     4457                                        case 9: 
     4458                                            alert('Seu evento/tarefa não possui alterações!'); 
     4459                                            return; 
     4460                                            break; 
     4461                                        case 11: 
     4462                                            alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
     4463                                            return; 
     4464                                            break; 
     4465                                        default: 
     4466                                            up = true; 
     4467                                            $("#select-agenda").css("display", "none"); 
     4468                                            $("#import-dialog" ).children("p:first-child").css("display", "none"); 
     4469                                            $("#import-dialog" ).dialog({ 
     4470                                                height: 160, 
     4471                                                title: 'Atualizar Evento/Tarefa', 
     4472                                                buttons: { 
     4473                                                    Cancel: function() { 
     4474                                                        $( this ).dialog( "close" ); 
     4475                                                    }, 
     4476                                                    "Atualizar": function() { 
     4477                                                        $.ajax({ 
     4478                                                            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(), 
     4479                                                            success: function(msg){ 
     4480                                                                alert( ( (msg = connector.unserialize(msg)) == "ok") ? "Atualizado com sucesso" : "Ocorreu um erro ao atualizar o evento" ); 
     4481                                                            } 
     4482                                                        }); 
     4483                                                        $( this ).dialog( "close" ); 
    39964484                                                    } 
    3997                                                      
    3998                                                     $("#select-agenda").append(options); 
    3999                                                     $("#select-agenda").css("display", "block"); 
    4000                                                      
    4001                                                     $("#import-dialog" ).dialog({ 
    4002                                                         buttons: { 
    4003                                                             Cancel: function() { 
    4004                                                                 $( this ).dialog( "close" ); 
    4005                                                             }, 
    4006                                                             "Importar" : function(){ 
    4007                                                                     $.ajax({ 
    4008                                                                         url: "controller.php?action="+import_url+'&from_ajax=true&selected='+$("#select-agenda option:selected").val()+'&status='+$("#select-status option:selected").val()+'&uidAccount='+decodeOwner(), 
    4009                                                                         success: function(msg){ 
    4010                                                                             var alt = ( (msg = connector.unserialize(msg)) == "ok") ? "Importado com sucesso para " : "Ocorreu um erro ao importar o evento para a agenda "; 
    4011                                                                             alert( alt + $("#select-agenda option:selected").text() ); 
    4012                                                                         } 
    4013                                                                     }); 
    4014                                                                     $( this ).dialog( "close" ); 
    4015                                                             } 
    4016                                                         } 
    4017                                                         }); 
    4018  
    4019                                                         if(typeImport == 7){ 
    4020                                                             $("#import-dialog").find('#select-status option[value=1]').attr('selected','selected').trigger('change'); 
    4021                                                             $("#import-dialog").find('#select-status').attr('disabled','disabled'); 
    4022                                                         } 
    4023                                                     break; 
    4024                                                 case 3: 
    4025                                                         $.ajax({ 
    4026                                                                 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    4027                                                                 success: function(msg){ 
    4028                                                                         alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi removido " : "Ocorreu um erro ao remover o evento" ); 
    4029                                                                 } 
    4030                                                         }); 
    4031                                                         return; 
    4032                                                         break;   
    4033                                                 case 5: 
    4034                                                         $.ajax({ 
    4035                                                                 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    4036                                                                 success: function(msg){ 
    4037                                                                         alert( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento" ); 
    4038                                                                 } 
    4039                                                         }); 
    4040                                                         return; 
    4041                                                         break;   
    4042                                                 case 6: 
    4043                                                         var acceptedSuggestion = confirm("Deseja atualizar o evento de acordo com a sugestão ?"); 
    4044                                                         $.ajax({ 
    4045                                                                 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(), 
    4046                                                                 success: function(msg){ 
    4047                                                                         if(acceptedSuggestion) 
    4048                                                                                 alert( ( ( connector.unserialize(msg)) == "ok") ? "Evento atualizado com sucesso " : "Ocorreu um erro ao atualizar o evento" ); 
    4049                                                                 } 
    4050                                                         }); 
    4051                                                         return; 
    4052                                                         break; 
    4053                                                 case 9: 
    4054                                                         alert('Seu evento não possui alterações!'); 
    4055                                                         return; 
    4056                                                         break; 
    4057                                                 case 11: 
    4058                                                         alert('Este evento já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 
    4059                                                         return; 
    4060                                                         break; 
    4061                                                 default: 
    4062                                                         up = true; 
    4063                                                         $("#select-agenda").css("display", "none"); 
    4064                                                         $("#import-dialog" ).children("p:first-child").css("display", "none"); 
    4065                                                         $("#import-dialog" ).dialog({ 
    4066                                                                 height: 160, 
    4067                                                                 title: 'Atualizar Evento', 
    4068                                                                 buttons: { 
    4069                                                                         Cancel: function() { 
    4070                                                                                 $( this ).dialog( "close" ); 
    4071                                                                         }, 
    4072                                                                    "Atualizar": function() { 
    4073                                                                                  
    4074                                                                                 $.ajax({ 
    4075                                                                                          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(), 
    4076                                                                                          success: function(msg){ 
    4077                                                                                                         alert( ( (msg = connector.unserialize(msg)) == "ok") ? "Atualizado com sucesso para " : "Ocorreu um erro ao atualizar o evento" ); 
    4078                                                                                         } 
    4079                                                                                 }); 
    4080                                                                                 $( this ).dialog( "close" ); 
    4081                                                                         } 
    4082                                                                 },  
    4083                                                     close:function(event, ui)   
    4084                                                     {  
    4085                                                         if(typeof(shortcut) != 'undefined') shortcut.disabled = false;   
    4086                                                     },  
    4087                                                     open: function(event, ui)   
    4088                                                     {  
    4089                                                         if(typeof(shortcut) != 'undefined') shortcut.disabled = true;   
    4090                                                     }  
    4091                                                         }); 
    4092                                                         $(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar"); 
     4485                                                }, 
     4486                                                close:function(event, ui)  
     4487                                                { 
     4488                                                    if(typeof(shortcut) != 'undefined') shortcut.disabled = false;  
     4489                                                }, 
     4490                                                open: function(event, ui)  
     4491                                                { 
     4492                                                    if(typeof(shortcut) != 'undefined') shortcut.disabled = true;  
    40934493                                                } 
    4094                                                 $( "#import-dialog" ).dialog( "open" );  
    4095                                                                                                                                  
    4096                                         }; 
    4097                                         createDialog(data, true); 
    4098                                  
    4099                 }, 
    4100                 beforeSend: function( jqXHR, settings ){ 
    4101                                         connector.showProgressBar(); 
    4102                                 }, 
    4103                                 complete: function( jqXHR, settings ){ 
    4104                                         connector.hideProgressBar(); 
    4105                                 } 
    4106             }); 
    4107                          
    4108                 } 
    4109                 else 
    4110                 { 
    4111                     if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
    4112                         cExecute( import_url + "&from_ajax=true", handler_import_calendar); 
    4113                     } 
    4114                 } 
    4115 } 
     4494                                            }); 
     4495                                            $(".ui-dialog-buttonpane").find(".ui-button:last").children().html("Atualizar"); 
     4496                                    } 
     4497                                    $( "#import-dialog" ).dialog( "open" ); 
     4498                                                                                                                                    
     4499                                }; 
     4500                                createDialog(data, true); 
     4501                                    
     4502                            }, 
     4503                            beforeSend: function( jqXHR, settings ){ 
     4504                                connector.showProgressBar(); 
     4505                            }, 
     4506                            complete: function( jqXHR, settings ){ 
     4507                                connector.hideProgressBar(); 
     4508                            } 
     4509                        });     
     4510                    } 
     4511                    else 
     4512                    { 
     4513                        if(confirm(get_lang("Do you confirm this import to your Calendar?"))){ 
     4514                            cExecute( import_url + "&from_ajax=true", handler_import_calendar); 
     4515                        } 
     4516                    } 
     4517    } 
     4518     
    41164519function open_msg_part(data){ 
    41174520        var handler_open_msg_part = function (data) 
     
    41934596 
    41944597function create_new_folder(name_folder, base_path){ 
     4598        //Limit reached folders 
     4599        if(preferences.imap_max_folders){ 
     4600                if(cp_tree1.length == parseInt(preferences.imap_max_folders)){ 
     4601                        $(".folders-loading").removeClass("folders-loading"); 
     4602                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     4603                        return write_msg(get_lang("Limit reached folders")); 
     4604                } 
     4605        } 
     4606         
    41954607        $.ajax({ 
    41964608                url : "controller.php?action=$this.imap_functions.create_mailbox", 
     
    42024614                        if(data == "Mailbox already exists"){ 
    42034615                                write_msg(get_lang("Mailbox already exists")); 
     4616                        }else if(data.substring(data.indexOf("Permission"), data.length) == "Permission denied"){ 
     4617                                $(".folders-loading").removeClass("folders-loading"); 
     4618                                cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     4619                                return write_msg(get_lang("Permission denied")); 
    42044620                        } 
    42054621                        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     
    43364752} 
    43374753 
     4754/* 
     4755* @author Marcos Luiz Wilhelm (marcoswilhelm@gmail.com) 
     4756* @date 2012/07/17 
     4757* @brief Break out emails only with comma out of quote marks 
     4758*/ 
     4759function break_comma (originalText){ 
     4760        var quotesMarks = false; 
     4761        var completeString = ""; 
     4762        var brokenEmails = new Array(); 
     4763        originalText+=","; 
     4764        for(i=0; i<originalText.length; i++){ 
     4765                var character = originalText.substr(i,1); 
     4766                if(character == "\""){ 
     4767                        quotesMarks = !quotesMarks; 
     4768                } 
     4769                if(!quotesMarks){ 
     4770                        if(character == ","){ 
     4771                                brokenEmails.push(completeString); 
     4772                                completeString = ""; 
     4773                        } 
     4774                        else 
     4775                                completeString+=character;       
     4776                } 
     4777                else 
     4778                        completeString+=character; 
     4779        } 
     4780        return brokenEmails; 
     4781} 
     4782 
    43384783DataLayer.links('message'); 
    43394784DataLayer.poll('message',30); 
Note: See TracChangeset for help on using the changeset viewer.