Ignore:
Timestamp:
09/04/12 18:07:11 (12 years ago)
Author:
gustavo
Message:

Ticket #2939 - Melhorias na exibicao das abas e da listagem de email

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/newExpressoMail/expressoMail1_2/js/draw_api.js

    r7064 r7167  
    4949// aqui no expressoMail. 
    5050 
    51 function draw_tree_folders(folders){ 
    52         // Check if the tree folders alredy exist. 
    53         if (Element('dftree_tree_folders')){ 
    54                 if (!expresso_offline) { 
    55                         var update_tree_folders = function(data){ 
    56                                 draw_quota(data); 
    57                                 var unseen_in_mailbox = 0; 
    58                                 var unseen_in_shared_folders = 0; 
    59                                 for (var i=0; i<data.length; i++){ 
    60                                         if ( data[i].folder_unseen > 0 ) 
    61                                         { 
    62                                                 unseen_in_mailbox = parseInt( unseen_in_mailbox + data[ i ].folder_unseen ); 
    63                                                 if ( data[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 
    64                                                         unseen_in_shared_folders = parseInt( unseen_in_shared_folders + data[ i ].folder_unseen ); 
    65                                         } 
    66  
    67                                         var folder_unseen = Element('dftree_'+data[i].folder_id+'_unseen'); 
    68  
    69                                         if ((folder_unseen) && (data[i].folder_unseen > 0)) 
    70                                         { 
    71                                                 folder_unseen.innerHTML = data[i].folder_unseen; 
    72                                         } 
    73                                         else if (data[i].folder_unseen > 0) 
    74                                         { 
    75                                                 tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+data[i].folder_id+'_unseen" style=color:red>'+data[i].folder_unseen+'</span><font style=color:red>)</font>'}); 
    76                                                 tree_folders.getNodeById(data[i].folder_id)._refresh(); 
    77                                         } 
    78                                         else if (data[i].folder_unseen <= 0) 
    79                                         { 
    80                                                 if(tree_folders.getNodeById(data[i].folder_id)){ 
    81                                                 tree_folders.getNodeById(data[i].folder_id).alter({caption:lang_folder(data[i].folder_name)}); 
    82                                                 tree_folders.getNodeById(data[i].folder_id)._refresh(); 
    83                                         } 
    84                                         } 
    85  
    86                                         if(data[i].folder_id == current_folder){ 
    87                                                 var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
    88                                                 Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 
    89                                                 draw_paging(Element('tot_m').innerHTML); 
    90                                         } 
    91                                 } 
    92  
    93                                 var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 
    94                                 display_unseen_in_mailbox.alter({caption:get_lang("My Folders")}); 
    95                                 display_unseen_in_mailbox._refresh(); 
    96  
    97                                 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 
    98                                 if ( display_unseen_in_shared_folders ) 
    99                                 { 
    100                                         if ( unseen_in_shared_folders ) 
    101                                                 display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")}); 
    102                                         else 
    103                                                 display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")}); 
    104                                         display_unseen_in_shared_folders._refresh(); 
    105                                 } 
    106                         } 
    107                         cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, update_tree_folders); 
    108                 } 
    109  
    110                 return; 
    111         } 
    112         else{ 
    113                 if (!expresso_offline) { 
    114                         tree_folders = new dFTree({name: 'tree_folders'}); 
    115  
    116                         var n_root = new dNode({id:'root', caption: get_lang("My Folders")}); 
    117                         tree_folders.add(n_root,'anything'); //Places the root; second argument can be anything. 
    118  
    119                         var unseen_in_mailbox = 0; 
    120                         var unseen_in_shared_folders = 0; 
    121                         for (var i=0; i<folders.length; i++){ 
    122                                 if (folders[i].folder_unseen > 0) 
    123                                 { 
    124                                         unseen_in_mailbox = parseInt( unseen_in_mailbox + folders[ i ].folder_unseen ); 
    125                                         if ( folders[i].folder_id.indexOf( 'INBOX' ) !== 0 ) 
    126                                                 unseen_in_shared_folders = parseInt( unseen_in_shared_folders + folders[ i ].folder_unseen ); 
    127  
    128                                         var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 
    129  
    130                                         if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
    131                                                 Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 
    132                                 } 
    133                                 else 
    134                                         var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name), onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 
    135  
    136                                 if (folders[i].folder_parent == '') 
    137                                         folders[i].folder_parent = 'root'; 
    138                                 else if (folders[i].folder_parent == 'user'){ 
    139  
    140                                         if (!tree_folders.getNodeById('user')){ 
    141                                                 tmpFolderId = folders[i].folder_id.split(cyrus_delimiter).pop(); 
    142                                                 var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared folders"), plusSign:true}); 
    143                                                 tree_folders.add(n_root_shared_folders,'root'); 
    144                                         } 
    145                                 } 
    146                                 tree_folders.add(nn,folders[i].folder_parent); 
    147                         } 
    148                 } 
    149  
    150  
    151  
    152                 var handlerChannel = function(data){ 
    153                         if (data == null || typeof(data) == 'string') 
    154                                 return; 
    155                         /* 
    156                         *  RSS NEWS 
    157                         */ 
    158                         var root_rss = new dNode({ 
    159                                 id: "news_root", 
    160                                 caption: get_lang('News') 
    161                         }); 
    162                         tree_folders.add(root_rss, "root"); 
    163                         for(i=0; i < data.length; i++) 
    164                         { 
    165                                 var nodeNews = new dNode({ 
    166                                         id: "NEWS/"+data[i].name, 
    167                                         caption: data[i].name, 
    168                                         onClick: "open_rss('"+data[i].rss_url+"')", 
    169                                         plusSign: 0 
    170                                 }); 
    171                                 tree_folders.add(nodeNews,"news_root"); 
    172                         } 
    173                         var noden=document.getElementById('lnews_roottree_folders'); 
    174                         noden.style.backgroundImage="url(templates/"+template+"/images/menu/rss.png)"; 
    175                          
    176                          
    177                          
    178                 } 
    179 //              cExecute('$this.rss.getChannels',handlerChannel); 
    180  
    181  
    182                 /** 
    183                  * Pastas locais 
    184                  */ 
    185                 if (preferences.use_local_messages==1 || expresso_offline) { 
    186                             //verifica se gears esta installado ou o offline 
    187                         if( (!window.google || !google.gears) && 
    188                              !expresso_local_messages.installGears() ){ 
    189                                 preferences.use_local_messages = 0; 
    190                         } 
    191                         else if( !expresso_local_messages.is_offline_installed() ) 
    192                                 preferences.use_local_messages = 0; 
    193                         else{ 
    194                                 if (expresso_offline) 
    195                                         tree_folders = new dFTree({ 
    196                                                 name: 'tree_folders' 
    197                                         }); 
    198                                 var root_local = new dNode({ 
    199                                         id: "local_root", 
    200                                         caption: get_lang('local folders') 
    201                                 }); 
    202                                 tree_folders.add(root_local, "root"); //coloca root local 
    203                                 var local_folders = expresso_local_messages.list_local_folders(); 
    204                                 for (var i in local_folders) { //Coloca as pastas locais. 
    205                                         var node_root = "local_root"; 
    206                                         var new_caption = local_folders[i][0]; 
    207                                         if (local_folders[i][0].indexOf("/") != "-1") { 
    208                                                 final_pos = local_folders[i][0].lastIndexOf("/"); 
    209                                                 node_root = "local_" + local_folders[i][0].substr(0, final_pos); 
    210                                                 new_caption = local_folders[i][0].substr(final_pos + 1); 
    211                                         } 
    212                                         if (local_folders[i][1] > 0) 
    213                                                 var nodeLocal = new dNode({ 
    214                                                         id: "local_" + local_folders[i][0], 
    215                                                         caption: lang_folder(new_caption) + '<font style=color:red>&nbsp(</font><span id="local_unseen" style=color:red>' + local_folders[i][1] + '</span><font style=color:red>)</font>', 
    216                                                         onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 
    217                                                         plusSign: local_folders[i][2] 
    218                                                 }); 
    219                                         else 
    220                                                 var nodeLocal = new dNode({ 
    221                                                         id: "local_" + local_folders[i][0], 
    222                                                         caption: lang_folder(new_caption), 
    223                                                         onClick: "change_folder('local_" + local_folders[i][0] + "','" + new_caption + "')", 
    224                                                         plusSign: local_folders[i][2] 
    225                                                 }); 
    226                                                 tree_folders.add(nodeLocal, node_root); 
    227                                         } 
    228                                 } 
    229                         } 
    230  
    231                 /*tree_folders.draw(Element('content_folders')); 
    232                 if (!expresso_offline) { 
    233                         n_root.changeState(); 
    234                         tree_folders.getNodeById('INBOX')._select(); 
    235                 } 
    236                 else { 
    237                         root_local.changeState(); 
    238                         tree_folders.getNodeById('local_Inbox')._select(); 
    239                 }*/ 
    240                  
    241                 var trash_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Trash"]])  + 'tree_folders');  
    242                 var draft_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Drafts"]]) + 'tree_folders');  
    243                 var sent_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Sent"]]) + 'tree_folders');  
    244                 var spam_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Spam"]]) + 'tree_folders'); 
    245                 //local folders 
    246                 var sent_local_conf = this.preferences.save_in_folder.replace(mount_url_folder(["INBOX",""]),"local_"); 
    247                 var sent_local_conf_span=document.getElementById('l'+sent_local_conf+'tree_folders'); 
    248                 var trash_local_span=document.getElementById('llocal_'+special_folders['Trash']+'tree_folders'); 
    249                 var draft_local_span=document.getElementById('llocal_'+special_folders['Drafts']+'tree_folders'); 
    250                 var sent_span_default=document.getElementById('llocal_'+special_folders['Sent']+'tree_folders'); 
    251  
    252  
    253                 if (trash_span) 
    254                         trash_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_trash.png)"; 
    255  
    256                 if (draft_span) 
    257                         draft_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_draft.png)" 
    258  
    259                 if (sent_span) 
    260                         sent_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 
    261                 if (spam_span) 
    262                         spam_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_spam.png)"; 
    263  
    264                 if (sent_span_default) 
    265                         sent_span_default.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 
    266                 //Local folders 
    267  
    268                 if (sent_local_conf_span) 
    269                         sent_local_conf_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 
    270                 if (trash_local_span) 
    271                         trash_local_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_trash.png)"; 
    272                 if (draft_local_span) 
    273                         draft_local_span.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_draft.png)" 
    274                 if (sent_span_default) 
    275                         sent_span_default.style.backgroundImage="url(../phpgwapi/templates/"+template+"/images/foldertree_sent.png)"; 
    276  
    277  
    278                 draw_paging(Element('tot_m').innerHTML); 
    279                 if(document.getElementById(mount_url_folder(["nINBOX",special_folders["Trash"]])+"tree_folders")) 
    280                 { 
    281                         var trash = document.createElement("SPAN"); 
    282                         trash.id = 'empty_trash'; 
    283                         trash.className = 'clean_folder'; 
    284                         trash.style.cursor = 'pointer'; 
    285                         trash.onclick = function () {empty_trash_imap();}; 
    286                         trash.innerHTML = "["+get_lang("Clean")+"]"; 
    287                         trash.title=get_lang("Empty trash"); 
    288                         trash.onmouseover = function() {trash.style.color="red";}; 
    289                         trash.onmouseout= function() {trash.style.color="#666666";}; 
    290                         document.getElementById(mount_url_folder(["nINBOX",special_folders["Trash"]])+"tree_folders").appendChild(trash); 
    291                 } 
    292                 if(document.getElementById(mount_url_folder(["nINBOX",special_folders["Spam"]])+"tree_folders")) 
    293                 { 
    294                                                 var spam = document.createElement("SPAN"); 
    295                                                 spam.id = 'empty_spam'; 
    296                                                 spam.className = 'clean_folder'; 
    297                                                 spam.style.cursor = 'pointer'; 
    298                                                 spam.style.padding = '0 0 0 6px'; 
    299                                                 spam.onclick = function () {empty_spam_imap();}; 
    300                                                 spam.innerHTML = "["+get_lang("Clean")+"]"; 
    301                                                 spam.title=get_lang("Empty Spam Folder"); 
    302                                                 spam.onmouseover = function() {spam.style.color="red";}; 
    303                                                 spam.onmouseout= function() {spam.style.color="#666666";}; 
    304                                                 document.getElementById(mount_url_folder(["nINBOX",special_folders["Spam"]])+"tree_folders").appendChild(spam); 
    305                            } 
    306  
    307                 if(!expresso_offline) 
    308                         var display_unseen_in_mailbox = tree_folders.getNodeById( 'root' ); 
    309                 else 
    310                         var display_unseen_in_mailbox = tree_folders.getNodeById( 'local_root' ); 
    311                 display_unseen_in_mailbox.alter({caption:get_lang("My Folders")}); 
    312                 display_unseen_in_mailbox._refresh(); 
    313  
    314                 var display_unseen_in_shared_folders = tree_folders.getNodeById( 'user' ); 
    315                 if ( display_unseen_in_shared_folders ) 
    316                 { 
    317                         if ( unseen_in_shared_folders ) 
    318                                 display_unseen_in_shared_folders.alter({caption:'<font style=color:red>[</font><span id="dftree_user_unseen" style="color:red">' + unseen_in_shared_folders +'</span><font style=color:red>]</font> ' + get_lang("Shared folders")}); 
    319                         else 
    320                                 display_unseen_in_shared_folders.alter({caption:get_lang("Shared folders")}); 
    321                         display_unseen_in_shared_folders._refresh(); 
    322                 } 
    323         } 
    324  
    325         if (!expresso_offline) { 
    326                 var folder_create = ""; 
    327                 var nm1 = ""; 
    328                 if(tree_folders._folderPr.length > 0){ 
    329                         var nm_folder = ""; 
    330                         for(var i=0; i < tree_folders._folderPr.length; i++){ 
    331                                 nm_folder = tree_folders._folderPr[i].split(cyrus_delimiter); 
    332                                 if(nm_folder[0] == "INBOX"){ 
    333                                         if(nm1 == ""){ 
    334                                                 nm1 = nm_folder[1]; 
    335                                                 folder_create = "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 
    336                                         }else{ 
    337                                                 if( nm1 != nm_folder[1]){ 
    338                                                         folder_create += "INBOX" + cyrus_delimiter + nm_folder[1] + ";"; 
    339                                                         nm1 = nm_folder[1]; 
    340                                                 } 
    341                                         } 
    342                                 } 
    343                         } 
    344                 } 
    345         } 
    346          
    347         outOfficeVerify(); 
    348 } 
    34951 
    35052function draw_tree_labels(){ 
     
    489191                 
    490192                if(data) { 
    491                         draw_tree_folders(data); 
     193                        //draw_tree_folders(data); 
    492194                        draw_quota(data); 
    493195                        var f_unseen = Element('dftree_'+current_folder+'_unseen'); 
     
    924626function syncColumns() { 
    925627        var thisCell; 
    926         var tbl = (document.getElementById("ui-tabs-"+numBox)==null ? 1 : 0); 
     628        var tbl = (document.getElementById("ptabs_"+numBox)==null ? 1 : 0); 
    927629        if (objCell) 
    928630                thisCell = objCell; 
     
    1230932        numBox = 0; //As pastas sempre estarï¿œo na aba 0 
    1231933         
    1232         openTab.content_id[numBox] = document.getElementById("ui-tabs-"+numBox); 
     934        openTab.content_id[numBox] = document.getElementById("ptabs_"+numBox); 
    1233935        //openTab.content_id[numBox].innerHTML = ""; 
    1234936        openTab.imapBox[numBox] = msg_folder; 
     
    14111113        } 
    14121114 
    1413         _divScroll.style.overflowY = "scroll"; 
     1115        _divScroll.style.overflowY = "auto"; 
    14141116        _divScroll.style.overflowX = "hidden"; 
    14151117        _divScroll.style.width  ="100%"; 
     
    16631365                        if(preferences.use_shortcuts == '1') 
    16641366                                $(this).parents("tr:first").addClass("current_selected_shortcut_msg selected_shortcut_msg"); 
    1665                         changeBgColor(e,headers_msgs.msg_number); 
     1367                        //changeBgColor(e,headers_msgs.msg_number); 
     1368            $(this).parents("tr:first").toggleClass("selected_msg"); 
    16661369                        $(this).blur(); 
    16671370                }); 
     
    21861889 
    21871890var msg_selected; 
    2188 function draw_message(info_msg, ID){ 
    2189         // remove a flag $FilteredMessage da mensagem ao ser lida 
    2190         if(info_msg.Unseen == "U"){ 
    2191                 $.each(fromRules, function(index, value) { 
    2192                         if(value == info_msg.msg_folder){ 
    2193                                 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+info_msg.msg_folder+"&msg_number="+info_msg.msg_number, function(){});  
    2194                                 return false; 
    2195                         } 
    2196                 }); 
    2197         } 
    2198         var content = document.getElementById('content_id_' + ID); 
    2199  
    2200         var menuHidden = Element("folderscol").style.display == 'none' ? true : false; 
    2201          ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2202         //Make the next/previous buttom. 
    2203         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2204         var next_previous_msg_td = document.createElement("TD"); 
    2205         next_previous_msg_td.setAttribute("noWrap","true"); 
    2206         next_previous_msg_td.align = "right"; 
    2207         next_previous_msg_td.style.fontSize = "10px"; 
    2208         next_previous_msg_td.width = "40px"; 
    2209         var img_next_msg = document.createElement("IMG"); 
    2210         img_next_msg.id = 'msg_opt_next_' + ID; 
    2211         img_next_msg.src = './templates/'+template+'/images/down.button.png'; 
    2212         if(preferences.use_shortcuts == '1') 
    2213             img_next_msg.title = get_lang('Next Shortcut:Control + Down'); 
    2214         else 
    2215             img_next_msg.title = get_lang('Next'); 
    2216         img_next_msg.style.cursor = 'pointer'; 
    2217  
    2218         var folder_id = ID.match(/\d+/)[0]; 
    2219         var folder; 
    2220  
    2221         //Correᅵᅵo para fazer funcionar e-mails assinados no formato encapsulado. 
    2222        // folder_id = info_msg.original_ID ? info_msg.original_ID: info_msg.msg_number; 
    2223         //if ((folder = document.getElementById(info_msg.msg_number)) == null) 
    2224         if ((folder = Element(info_msg.original_ID)) == null) 
    2225                 folder = Element(info_msg.msg_number); 
    2226                  
    2227  
    2228         if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    2229                 if (folder.nextSibling){ 
    2230                         var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:info_msg.msg_folder; 
    2231  
    2232                         if (nextMsgBox == "INBOX" + cyrus_delimiter + "decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas 
    2233                                         nextMsgBox = get_current_folder(); 
    2234  
    2235                         img_next_msg.onclick = function() 
    2236                         { 
    2237                                 currentTab = ID; 
    2238                                 openTab.type[ID] = 2; 
    2239                                 proxy_mensagens.get_msg(folder.nextSibling.id,nextMsgBox,true,show_msg); 
    2240                                 //select_msg('null', 'down', true); 
    2241                                 if (!msg_selected){ 
    2242                                         select_msg('null', 'down', true); 
    2243                                         msg_selected = true; 
    2244                                 } 
    2245                         }; 
    2246                 } 
    2247                 /*Ultima mensagem de cada pï¿œgina, exceto a ultima*/ 
    2248         else if( (current_page < total_pages) ){ 
    2249                     
    2250                    img_next_msg.onclick = function() 
    2251                         { 
    2252  
    2253                            current_page++; 
    2254                            var tot_msgs = parseInt(Element("tot_m").innerHTML); 
    2255                            var range_begin = preferences.max_email_per_page*( current_page - 1 ) + 1; 
    2256                            var range_end;  
    2257                            if ( range_begin + parseInt(preferences.max_email_per_page - 1) > tot_msgs )  
    2258                                 range_end = tot_msgs; 
    2259                            else      
    2260                                 range_end = range_begin + parseInt(preferences.max_email_per_page  - 1);   
    2261                            var creatBoxProximo = function (data){ 
    2262                                             draw_box(data, get_current_folder()); 
    2263                                             firstRow(); 
    2264                                 };                                 
    2265                        proxy_mensagens.messages_list(get_current_folder(),range_begin,range_end,sort_box_type,search_box_type,sort_box_reverse,'','', creatBoxProximo); 
    2266                          
    2267                         };          
    2268                 } 
    2269                 else 
    2270                 { 
    2271                         img_next_msg.src = "./templates/"+template+"/images/down.gray.button.png"; 
    2272                         img_next_msg.style.cursor = 'default'; 
    2273  
    2274                 } 
    2275         } 
    2276         else 
    2277         { 
    2278                 img_next_msg.src = "./templates/"+template+"/images/down.gray.button.png"; 
    2279                 img_next_msg.style.cursor = 'default'; 
    2280                 // testa se a mensagem e local  
    2281             if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX" + cyrus_delimiter + "decifradas")) // testa se a mensagem e local 
    2282                 { 
    2283                         img_next_msg.onclick = function() 
    2284                                 { 
    2285                                         delete_border(ID); 
    2286                                 }; 
    2287                 } 
    2288         } 
    2289         var img_space = document.createElement("SPAN"); 
    2290         img_space.innerHTML = "&nbsp;"; 
    2291         var img_previous_msg = document.createElement("IMG"); 
    2292         img_previous_msg.id = 'msg_opt_previous_' + ID; 
    2293         img_previous_msg.src = './templates/'+template+'/images/up.button.png'; 
    2294         if(preferences.use_shortcuts == '1') 
    2295             img_previous_msg.title = get_lang('Previous Shortcut:Control + Up'); 
    2296         else 
    2297             img_previous_msg.title = get_lang('Previous'); 
    2298         img_previous_msg.style.cursor = 'pointer'; 
    2299  
    2300  
    2301         if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    2302                 if (folder.previousSibling) 
    2303                 { 
    2304                         var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:info_msg.msg_folder; 
    2305  
    2306                         if (previousMsgBox == "INBOX" + cyrus_delimiter + "decifradas") // teste para ver se a mensagem vem da pasta oculta decifradas 
    2307                                         previousMsgBox = get_current_folder(); 
    2308  
    2309                         img_previous_msg.onclick = function() 
    2310                         { 
    2311                                 currentTab = ID; 
    2312                                 openTab.type[ID] = 2; 
    2313                                 proxy_mensagens.get_msg(folder.previousSibling.id,previousMsgBox,true,show_msg); 
    2314                                 //select_msg('null', 'up', false); 
    2315                                 if (!msg_selected){ 
    2316                                         select_msg('null', 'up', true); 
    2317                                         msg_selected = true; 
    2318                                 } 
    2319                         }; 
    2320                 } 
    2321                 //primeira mensagem de cada pï¿œgina, exceto a primeira 
    2322                 else if(current_page > 1){ 
    2323                        
    2324                       img_previous_msg.onclick = function() 
    2325                       { 
    2326                               
    2327                              current_page--; 
    2328                              var range_begin = (current_page - 1)*preferences.max_email_per_page + 1;  
    2329                              var range_end = current_page*preferences.max_email_per_page;                                     
    2330                              var creatBoxAnterior = function (data){ 
    2331                                           draw_box(data, get_current_folder()); 
    2332                                               lastRow(); 
    2333                                          };                                
    2334                          proxy_mensagens.messages_list(get_current_folder(),range_begin,range_end,sort_box_type,search_box_type,sort_box_reverse,'','', creatBoxAnterior);                
    2335                   }; 
    2336             } 
    2337                 else 
    2338                 { 
    2339                         img_previous_msg.src = "./templates/"+template+"/images/up.gray.button.png"; 
    2340                         img_previous_msg.style.cursor = 'default'; 
    2341                 } 
    2342         } 
    2343         else 
    2344         { 
    2345                 img_previous_msg.src = "./templates/"+template+"/images/up.gray.button.png"; 
    2346                 img_previous_msg.style.cursor = 'default'; 
    2347                 // testa se a mensagem e local  
    2348             if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(info_msg.msg_folder == "INBOX" + cyrus_delimiter + "decifradas")) // testa se a mensagem e local 
    2349                 { 
    2350                         img_previous_msg.onclick = function() 
    2351                         { 
    2352                                 delete_border(ID); 
    2353                         }; 
    2354                 } 
    2355         } 
    2356         next_previous_msg_td.appendChild(img_previous_msg); 
    2357         next_previous_msg_td.appendChild(img_space); 
    2358         next_previous_msg_td.appendChild(img_next_msg); 
    2359         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2360         //Make the header message. 
    2361         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2362         var table_message = document.createElement("TABLE"); 
    2363         var tbody_message = document.createElement("TBODY"); 
    2364         table_message.border = "0"; 
    2365         //table_message.width = "100%"; 
    2366         //k! 
    2367         table_message.setAttribute("class", "expressomail-message-body"); 
    2368         table_message.setAttribute("className", "expressomail-message-body"); 
    2369         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2370         //Make the options message. 
    2371         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2372         var tr0 = document.createElement("TR"); 
    2373         tr0.className = "tr_message_header"; 
    2374         var td0 = document.createElement("TD"); 
    2375         var table_message_options = document.createElement("TABLE"); 
    2376         table_message_options.width = "100%"; 
    2377         table_message_options.border = '0'; 
    2378         table_message_options.className = 'table_message'; 
    2379         var tbody_message_options = document.createElement("TBODY"); 
    2380         var tr = document.createElement("TR"); 
    2381         var td = document.createElement("TD"); 
    2382         td.setAttribute("noWrap","true"); 
    2383         td.style.fontSize = "10px"; 
    2384         var _name = ''; 
    2385         var _maxChar = menuHidden ? 40 : 15; 
    2386  
    2387         if (info_msg.from.name) 
    2388         { 
    2389                 var spanName = document.createElement("SPAN"); 
    2390                         spanName.innerHTML = info_msg.from.name; 
    2391                 _name = spanName.innerHTML.length > _maxChar ? spanName.innerHTML.substring(0,_maxChar) + "..." : spanName.innerHTML; 
    2392         } 
    2393         else 
    2394                 _name = info_msg.from.email.length > _maxChar ? info_msg.from.email.substring(0,_maxChar) + "..." : info_msg.from.email; 
    2395  
    2396         td.innerHTML = _name.bold() + ', ' + info_msg.smalldate; 
    2397         //k! 
    2398         if (info_msg.attachments && info_msg.attachments.length > 0) 
    2399                 td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+ID+"\").onclick()' src ='templates/"+template+"/images/clip.gif' title='"+info_msg.attachments[0].name+"'>"; 
    2400  
    2401         if (typeof(info_msg.signature) == 'string') 
    2402         { 
    2403                 if (info_msg.signature != "void") 
    2404                         td.innerHTML += '&nbsp;<img style="cursor:pointer" onclick="alert(\''+ get_lang("This message is signed, and you can trust.") + info_msg.signature +'\');" src="templates/'+template+'/images/signed.gif">'; 
    2405                 else 
    2406                         td.innerHTML += "&nbsp;<img style='cursor:pointer' onclick='alert(\""+get_lang("This message is signed, but it is invalid. You should not trust on it.")+"\");' title='"+get_lang("Voided message")+"' src='templates/"+template+"/images/invalid.gif'>"; 
    2407         } 
    2408  
    2409         if (info_msg.DispositionNotificationTo) 
    2410         { 
    2411                 td.innerHTML += '&nbsp;<img id="disposition_notification_'+ID+'" style="cursor:pointer" alt="'+ get_lang('Message with read notification') + '" title="'+ get_lang('Message with read notification') + '" src="templates/'+template+'/images/notification.gif">'; 
    2412         } 
    2413  
    2414         if (info_msg.Flagged == 'F') 
    2415         { 
    2416                 td.innerHTML += '&nbsp;<img id="disposition_important_'+ID+'" style="cursor:pointer" alt="'+ get_lang('Important message') + '" title="'+ get_lang('Important message') + '" src="templates/'+template+'/images/important.png">'; 
    2417         } 
    2418         // NORMAL MSG 
    2419         if(info_msg.Draft != 'X') 
    2420         { 
    2421         var options = document.createElement("TD"); 
    2422         options.width = "30%"; 
    2423         options.setAttribute("noWrap","true"); 
    2424         options.style.fontSize = "10px"; 
    2425                  
    2426                 //BEGIN: DESENHA MOSTRA DETALHES, OCULTAR DETALHES 
    2427         var option_hide_more = document.createElement("SPAN"); 
    2428         option_hide_more.className = 'message_options'; 
    2429         option_hide_more.onmouseover=function () {this.className='message_options_active';}; 
    2430         option_hide_more.onmouseout=function () {this.className='message_options'}; 
    2431         options.align = 'right'; 
    2432         option_hide_more.value = 'more_options'; 
    2433         option_hide_more.id = 'option_hide_more_'+ID; 
    2434         option_hide_more.onclick = function(){ 
    2435                 if (this.value == 'more_options'){ 
    2436                         this.innerHTML = "<b><u>"+get_lang('Hide details')+"</u></b>"; 
    2437                         this.value = 'hide_options'; 
    2438                         Element('table_message_others_options_'+ID).style.display = ''; 
    2439                 } 
    2440                 else{ 
    2441                         this.innerHTML = get_lang('Show details'); 
    2442                         this.value = 'more_options'; 
    2443                         Element('table_message_others_options_'+ID).style.display = 'none'; 
    2444                 } 
    2445                 resizeWindow(); 
    2446         }; 
    2447                 //END: DESENHA MOSTRA DETALHES, OCULTAR DETALHES 
    2448                  
    2449                 //OPCAO PARA MARCAR COMO 
    2450                 var option_mark_as = document.createElement("SPAN"); 
    2451                 option_mark_as.innerHTML = "<b>"+get_lang('Mark as')+"</b>"; 
    2452                 option_mark_as.className = 'message_options'; 
    2453                 option_mark_as.onmouseover=function () {this.className='message_options_active';}; 
    2454                 option_mark_as.onmouseout=function () {this.className='message_options'}; 
    2455                 option_mark_as.onclick = function(){ 
    2456                         verifyOption('tr_other_mark_options_', ID); 
    2457                         var thi = document.getElementById('msg_opt_mark_options_'+ID); 
    2458                         if (thi.value != 'hide'){ 
    2459                                 thi.value = 'hide'; 
    2460                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2461                                 Element('tr_other_mark_options_'+ID).style.display = ''; 
    2462  
    2463                         } 
    2464                         else{ 
    2465                                 thi.value = 'show'; 
    2466                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2467                                 Element('tr_other_mark_options_'+ID).style.display = 'none'; 
    2468                         } 
    2469                 }; 
    2470                 //DESENHA OPCOES DO MARCAR COMO 
    2471         var option_mark_as_unseen = document.createElement("SPAN"); 
    2472                 option_mark_as_unseen.className = "reply_options"; 
    2473         option_mark_as_unseen.onclick = function () {changeLinkState(this,'seen'); 
    2474                 proxy_mensagens.proxy_set_message_flag(folder_id,'unseen'); 
    2475                 write_msg(get_lang('Message marked as ')+get_lang("Unseen")); 
    2476         }; 
    2477                 option_mark_as_unseen.onmouseover=function () {this.className='reply_options_active'}; 
    2478                 option_mark_as_unseen.onmouseout=function () {this.className='reply_options'}; 
    2479         option_mark_as_unseen.innerHTML = get_lang("Unseen"); 
    2480  
    2481         var option_mark_important = document.createElement("SPAN"); 
    2482                 option_mark_important.className = 'reply_options';               
    2483                 option_mark_important.onmouseover=function () {this.className='reply_options_active';}; 
    2484                 option_mark_important.onmouseout=function () {this.className='reply_options'}; 
    2485  
    2486         if (info_msg.Flagged == "F"){ 
    2487                 option_mark_important.onclick = function() { 
    2488                         var _this = this; 
    2489                         proxy_mensagens.proxy_set_message_flag(folder_id,'unflagged', function(success){ 
    2490                                 if (success) { 
    2491                                         changeLinkState(_this, 'important'); 
    2492                                         write_msg(get_lang('Message marked as ') + get_lang("Normal")); 
    2493                                 } 
    2494                         } ); 
    2495  
    2496                 }; 
    2497                 option_mark_important.innerHTML = get_lang("Normal"); 
    2498         } 
    2499         else{ 
    2500                 option_mark_important.onclick = function() {changeLinkState(this,'normal'); 
    2501                         proxy_mensagens.proxy_set_message_flag(folder_id,'flagged'); 
    2502                         write_msg(get_lang('Message marked as ')+get_lang("Important")); 
    2503                 }; 
    2504                 option_mark_important.innerHTML = get_lang("Important"); 
    2505         } 
    2506                 //option_mark.appendChild(option_mark_as_unseen); 
    2507                 //option_mark.appendChild(option_mark_important); 
    2508  
    2509                  
    2510         option_hide_more.innerHTML = get_lang('Show details'); 
    2511                 option_hide_more.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'O') : get_lang('Show details'); 
    2512          
    2513                 var space3 = document.createElement("SPAN"); 
    2514                 space3.innerHTML = '&nbsp;|&nbsp;'; 
    2515                  
    2516                 var option_mark_as_options = document.createElement('IMG'); 
    2517                 option_mark_as_options.id = 'msg_opt_mark_options_'+ID; 
    2518                 option_mark_as_options.src = '../expressoMail1_2/templates/default/images/down.png'; 
    2519                 option_mark_as_options.value = 'show'; 
    2520  
    2521                 option_mark_as_options.onmouseover = function(){ 
    2522                         option_mark_as_options.src= '../expressoMail1_2/templates/default/images/over.png'; 
    2523                         option_mark_as.className = 'message_options_active'; 
    2524                 }; 
    2525                 option_mark_as_options.onmouseout = function(){ 
    2526                         option_mark_as.className = 'message_options'; 
    2527                         if (this.value == 'show') 
    2528                         { 
    2529                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2530                         } 
    2531                         else 
    2532                         { 
    2533                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2534                         } 
    2535                 }; 
    2536                 option_mark_as_options.onclick = function(){ 
    2537                         verifyOption('tr_other_mark_options_', ID); 
    2538                         if (this.value != 'hide'){ 
    2539                                 this.value = 'hide'; 
    2540                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2541                                 Element('tr_other_mark_options_'+ID).style.display = ''; 
    2542  
    2543                         } 
    2544                         else{ 
    2545                                 this.value = 'show'; 
    2546                                 option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2547                                 Element('tr_other_mark_options_'+ID).style.display = 'none'; 
    2548                         } 
    2549                 }; 
    2550                  
    2551         options.appendChild(option_hide_more); 
    2552                 options.appendChild(space3); 
    2553                 options.appendChild(option_mark_as_options);                             
    2554                 options.appendChild(option_mark_as); 
    2555                 //FIM OPCAO PARA MARCAR COMO 
    2556  
    2557         var space0 = document.createElement("SPAN"); 
    2558         space0.innerHTML = '&nbsp;|&nbsp;'; 
    2559         var space1 = document.createElement("SPAN"); 
    2560         space1.innerHTML = '&nbsp;|&nbsp;'; 
    2561         var space2 = document.createElement("SPAN"); 
    2562         space2.innerHTML = '&nbsp;|&nbsp;'; 
    2563  
    2564                 //OPCAO PARA MAIS ACOES 
    2565                 var option_more = document.createElement("SPAN"); 
    2566                 option_more.id = 'msg_opt_more_actions_'+ID; 
    2567                 option_more.className = 'message_options'; 
    2568                 //option_more.onclick = function(){new_message('forward', ID);}; 
    2569                 option_more.onmouseover=function () {this.className='message_options_active';}; 
    2570         option_more.onmouseout=function () {this.className='message_options'}; 
    2571                 option_more.onclick = function(){ 
    2572                         verifyOption('tr_other_more_options_', ID); 
    2573                         if (option_more_options.value != 'hide'){ 
    2574                                 option_more_options.value = 'hide'; 
    2575                                 option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2576                                 Element('tr_other_more_options_'+ID).style.display = ''; 
    2577  
    2578                         } 
    2579                         else{ 
    2580                                 option_more_options.value = 'show'; 
    2581                                 option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2582                                 Element('tr_other_more_options_'+ID).style.display = 'none'; 
    2583                         } 
    2584                 }; 
    2585                 option_more.innerHTML = get_lang('More Actions'); 
    2586                  
    2587                 //CRIA IMG DE MAIS ACOES 
    2588                 var option_more_options = document.createElement('IMG'); 
    2589                 option_more_options.id = 'msg_opt_more_options_'+ID; 
    2590                 option_more_options.src = '../expressoMail1_2/templates/default/images/down.png'; 
    2591                 option_more_options.value = 'show'; 
    2592  
    2593                 option_more_options.onmouseover = function(){ 
    2594                         option_more.className = 'message_options_active'; 
    2595                         option_more_options.src= '../expressoMail1_2/templates/default/images/over.png'; 
    2596                 }; 
    2597                 option_more_options.onmouseout = function(){ 
    2598                         option_more.className = 'message_options'; 
    2599                         if (this.value == 'show') 
    2600                         { 
    2601                                 option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2602                         } 
    2603                         else 
    2604                         { 
    2605                                 option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2606                         } 
    2607                 }; 
    2608                 option_more_options.onclick = function(){ 
    2609                         verifyOption('tr_other_more_options_',ID); 
    2610                          
    2611                         if (this.value != 'hide'){ 
    2612                                 this.value = 'hide'; 
    2613                                 option_more_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2614                                 Element('tr_other_more_options_'+ID).style.display = ''; 
    2615  
    2616                         } 
    2617                         else{ 
    2618                                 this.value = 'show'; 
    2619                                 option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2620                                 Element('tr_other_more_options_'+ID).style.display = 'none'; 
    2621                         } 
    2622                 }; 
    2623         options.appendChild(space1); 
    2624                 options.appendChild(option_more_options); 
    2625                 options.appendChild(option_more); 
    2626                 //FIM OPCAO PARA MAIS ACOES 
    2627                  
    2628                 //OPCAO PARA RESPONDER 
    2629         var option_reply = document.createElement("SPAN"); 
    2630         option_reply.id = 'msg_opt_reply_'+ID; 
    2631         option_reply.className = 'message_options'; 
    2632         option_reply.onclick = function(){new_message('reply_with_history', ID);}; 
    2633         option_reply.innerHTML = get_lang('Reply'); 
    2634         option_reply.onmouseover=function () {this.className='message_options_active';}; 
    2635         option_reply.onmouseout=function () {this.className='message_options'}; 
    2636                 option_reply.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'R') : get_lang('Reply'); 
    2637  
    2638         options.appendChild(space2); 
    2639  
    2640         var option_reply_options = document.createElement('IMG'); 
    2641         option_reply_options.id = 'msg_opt_reply_options_'+ID; 
    2642         option_reply_options.src = '../expressoMail1_2/templates/default/images/down.png'; 
    2643         option_reply_options.value = 'show'; 
    2644  
    2645         option_reply_options.onmouseover = function(){ 
    2646                 option_reply_options.src= '../expressoMail1_2/templates/default/images/over.png'; 
    2647         }; 
    2648         option_reply_options.onmouseout = function(){ 
    2649                 if (this.value == 'show') 
    2650                 { 
    2651                         option_reply_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2652                 } 
    2653                 else 
    2654                 { 
    2655                         option_reply_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2656                 } 
    2657         }; 
    2658         option_reply_options.onclick = function(){ 
    2659                         verifyOption('tr_other_options_', ID); 
    2660                 if (this.value != 'hide'){ 
    2661                         this.value = 'hide'; 
    2662                         option_reply_options.src= '../expressoMail1_2/templates/default/images/pressed.png'; 
    2663                         Element('tr_other_options_'+ID).style.display = ''; 
    2664  
    2665                 } 
    2666                 else{ 
    2667                         this.value = 'show'; 
    2668                         option_reply_options.src= '../expressoMail1_2/templates/default/images/down.png'; 
    2669                         Element('tr_other_options_'+ID).style.display = 'none'; 
    2670                 } 
    2671         }; 
    2672         options.appendChild(option_reply_options); 
    2673         options.appendChild(option_reply); 
    2674                 //FIM OPCAO PARA RESPONDER 
    2675                  
    2676                 //OPCAO PARA ENCAMINHAR 
    2677                 var option_forward = document.createElement("SPAN"); 
    2678                 option_forward.id = 'msg_opt_forward_'+ID; 
    2679                 option_forward.className = 'message_options'; 
    2680                 option_forward.innerHTML = get_lang('Forward'); 
    2681                 option_forward.onclick = function(){new_message('forward', ID);}; 
    2682                 option_forward.onmouseover=function () {this.className='message_options_active';}; 
    2683         option_forward.onmouseout=function () {this.className='message_options'}; 
    2684                 option_forward.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'E') : get_lang('Forward'); 
    2685                  
    2686                 var space9 = document.createElement("SPAN"); 
    2687                 space9.innerHTML = '&nbsp;|&nbsp;'; 
    2688                  
    2689                 options.appendChild(space9); 
    2690                 options.appendChild(option_forward); 
    2691                 //FIM DA OPCAO PARA ENCAMINHAR 
    2692                  
    2693                 //OPCAO PARA DELETAR 
    2694                 var option_delete = document.createElement("SPAN"); 
    2695                 option_delete.id = 'msg_opt_delete_'+ID; 
    2696                 option_delete.className = 'message_options'; 
    2697                 option_delete.onclick = function(){proxy_mensagens.delete_msgs('null','selected','null');}; 
    2698                 option_delete.innerHTML = get_lang('Delete'); 
    2699                 option_delete.onmouseover=function () {this.className='message_options_active';}; 
    2700                 option_delete.onmouseout=function () {this.className='message_options'}; 
    2701                 option_delete.title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'Delete') : get_lang('Delete'); 
    2702  
    2703                 var space6 = document.createElement("SPAN"); 
    2704                 space6.innerHTML = '&nbsp;|&nbsp;'; 
    2705                  
    2706                 options.appendChild(space6); 
    2707                 options.appendChild(option_delete); 
    2708                 //FIM OPCAO PARA DELETAR 
    2709  
    2710         tr.appendChild(td); 
    2711                 //tr.appendChild(option_mark); 
    2712         tr.appendChild(options); 
    2713         tr.appendChild(next_previous_msg_td); 
    2714         tbody_message_options.appendChild(tr); 
    2715  
    2716         ////////// OTHER OPTIONS //////////////////// 
    2717         var tr_other_options = document.createElement("TR"); 
    2718                 var tr_other_mark_options = document.createElement("TR"); 
    2719                 var tr_other_more_options = document.createElement("TR"); 
    2720                  
    2721                 tr_other_mark_options.id = 'tr_other_mark_options_' + ID; 
    2722                 tr_other_mark_options.style.display = 'none'; 
    2723                 tr_other_mark_options.style.backgroundColor = '#205C8E'; 
    2724         tr_other_options.id = 'tr_other_options_' + ID; 
    2725         tr_other_options.style.display = 'none'; 
    2726                 tr_other_options.style.backgroundColor = '#205C8E'; 
    2727                 tr_other_more_options.id = 'tr_other_more_options_' + ID; 
    2728                 tr_other_more_options.style.display = 'none'; 
    2729                 tr_other_more_options.style.backgroundColor = '#205C8E';                 
    2730  
    2731         var td_other_options = document.createElement("TD"); 
    2732                 var td_other_mark_options = document.createElement("TD"); 
    2733                 var td_other_more_options = document.createElement("TD"); 
    2734                  
    2735         td_other_options.colSpan = '3'; 
    2736                 td_other_mark_options.colSpan = '3'; 
    2737                 td_other_more_options.colSpan = '3'; 
    2738  
    2739         var div_other_options = document.createElement("DIV"); 
    2740                 var div_other_mark_options = document.createElement("DIV"); 
    2741                 var div_other_more_options = document.createElement("DIV"); 
    2742  
    2743                 //var option_mark_as_unseen = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unseen\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+'.\');">'+get_lang("Unseen")+'</span>, '; 
    2744                 //var option_mark_as_important                  = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'flagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+'.\');">'+get_lang("Important")+'</span>, '; 
    2745                 //var option_mark_as_normal                             = '<span class="message_options" onclick="proxy_mensagens.proxy_set_messages_flag(\'unflagged\','+info_msg.msg_number+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+'.\');">'+get_lang("Normal")+'</span> | '; 
    2746                 var block_user = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick ="block_user_email(\''+info_msg.from.email+'\');">'+get_lang("Block Sender")+'</span> | ';     
    2747                 //var option_forward = '<span onclick="new_message(\'forward\',\''+ ID+'\');" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Forward")+'</span> | '; 
    2748                 var option_move = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=wfolders.makeWindow("'+ID+'","move_to");>'+get_lang("Move")+'</span> | '; 
    2749                 var option_print = '<span onclick="print_all()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Print")+'</span> | '; 
    2750                 var option_export = '<span onclick="proxy_mensagens.export_all_messages()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Export")+'</span> | '; 
    2751  
    2752                 option_reply_to_all__title = (preferences.use_shortcuts == '1') ? get_lang('Shortcut: %1', 'T') : ''; 
    2753                 var option_reply_to_all = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="new_message(\'reply_to_all_with_history\',\''+ID+'\');" title="'+option_reply_to_all__title+'">'+get_lang("Reply to all")+'</span> | '; 
    2754         var option_reply_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_without_history","'+ID+'");>'+get_lang("Reply without history")+'</span> | '; 
    2755                 var option_reply_to_all_without_history = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=new_message("reply_to_all_without_history","'+ID+'");>'+get_lang("Reply to all without history")+'</span>  | '; 
    2756  
    2757                 var report_error        = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=reports_window("'+currentTab+'");>'+get_lang("Report error")+'</span> | ';  
    2758  
    2759                 div_other_more_options.innerHTML += option_move + option_print + option_export + block_user +  report_error; 
    2760                  
    2761                 div_other_options.innerHTML += option_reply_without_history + option_reply_to_all_without_history + option_reply_to_all; 
    2762         if (use_spam_filter) { 
    2763                         if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam' || (info_msg.msg_folder.match(/^user/) && info_msg.msg_folder.match(/Spam$/))){ 
    2764                                 div_other_mark_options.innerHTML += '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\');">'+get_lang("Not Spam")+'</span> | '; 
    2765         } 
    2766                         else{ 
    2767                                 div_other_mark_options.innerHTML += '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\');">'+get_lang("Is Spam")+'</span> | '; 
    2768                         } 
    2769                 } 
    2770                 var space5 = document.createElement("SPAN"); 
    2771                 space5.innerHTML = '&nbsp;|&nbsp;'; 
    2772          
    2773                 div_other_mark_options.appendChild(option_mark_as_unseen); 
    2774                 var space4 = document.createElement("SPAN"); 
    2775                 space4.innerHTML = '&nbsp;|&nbsp;'; 
    2776                 div_other_mark_options.appendChild(space4); 
    2777                 div_other_mark_options.appendChild(option_mark_important);  
    2778                 var space7 = document.createElement("SPAN"); 
    2779                 space7.innerHTML = '&nbsp;|&nbsp;'; 
    2780                 div_other_mark_options.appendChild(space7); 
    2781          
    2782         td_other_options.align = 'right'; 
    2783         td_other_options.style.paddingTop = '3px'; 
    2784         td_other_options.appendChild(div_other_options); 
    2785  
    2786                 td_other_mark_options.align = 'right'; 
    2787                 td_other_mark_options.style.paddingTop = '3px'; 
    2788                 td_other_mark_options.appendChild(div_other_mark_options); 
    2789                  
    2790                 td_other_more_options.align = 'right'; 
    2791                 td_other_more_options.style.paddingTop = '3px'; 
    2792                 td_other_more_options.appendChild(div_other_more_options); 
    2793  
    2794  
    2795         tr_other_options.appendChild(td_other_options); 
    2796         tbody_message_options.appendChild(tr_other_options); 
    2797                  
    2798                 tr_other_more_options.appendChild(td_other_more_options); 
    2799                 tbody_message_options.appendChild(tr_other_more_options); 
    2800                  
    2801                 tr_other_mark_options.appendChild(td_other_mark_options); 
    2802                 tbody_message_options.appendChild(tr_other_mark_options); 
    2803         ////////// END OTHER OPTIONS //////////////// 
    2804  
    2805                 ////////// BEGIN SIGNATURE ////////////////// 
    2806         if (info_msg.signature && info_msg.signature.length > 0) 
    2807         { 
    2808             var tr_signature = document.createElement("TR"); 
    2809             var td_signature = document.createElement("TD"); 
    2810             td_signature.className = 'tr_message_header'; 
    2811             tr_signature.id = 'tr_signature_'+ID; 
    2812             td_signature.colSpan = "5"; 
    2813             tr_signature.style.display = 'none'; 
    2814             for (i in info_msg.signature) 
    2815                 { 
    2816                     if(typeof(info_msg.signature[i]) == 'object') 
    2817                         { 
    2818                             var aux = ''; 
    2819                             for (ii in info_msg.signature[i]) 
    2820                                 { 
    2821                                     if(info_msg.signature[i][ii].indexOf("###") > -1) 
    2822                                         { 
    2823                                          aux += get_lang(info_msg.signature[i][ii].substring(0,info_msg.signature[i][ii].indexOf("###"))) + info_msg.signature[i][ii].substring(info_msg.signature[i][ii].indexOf("###")+3); 
    2824                                         } 
    2825                                     else 
    2826                                         { 
    2827                                          aux += info_msg.signature[i][ii]; 
    2828                                         } 
    2829                                 } 
    2830                             td_signature.innerHTML += "<a onclick=\"javascript:alert('" + aux + "')\"><b><font color=\"#0000FF\">" + get_lang("More") + "...</font></b></a>"; 
    2831                             continue; 
    2832                         } 
    2833                     if(info_msg.signature[i].indexOf("#@#") > -1) 
    2834                         { 
    2835                          td_signature.innerHTML += '<span style=color:red><strong>'+get_lang(info_msg.signature[i].substring(0,info_msg.signature[i].indexOf("#@#")))+'</strong> '+info_msg.signature[i].substring(info_msg.signature[i].indexOf("#@#")+3)+'</span> <br /> '; 
    2836                         } 
    2837                             if(info_msg.signature[i].indexOf("###") > -1) 
    2838                                 { 
    2839                                     td_signature.innerHTML += '<span><strong>'+get_lang(info_msg.signature[i].substring(0,info_msg.signature[i].indexOf("###")))+'</strong> '+info_msg.signature[i].substring(info_msg.signature[i].indexOf("###")+3)+'</span> <br /> '; 
    2840                                 } 
    2841                 } 
    2842             var signature_status_pos = info_msg.signature[0].indexOf('Message untouched'); 
    2843             td_signature.id = "td_signature_"+ID; 
    2844             if(signature_status_pos < 0 ) 
    2845                 { 
    2846                     td.innerHTML += '&nbsp;<img style="cursor:pointer" src="templates/'+template+'/images/signed_error.gif" title="'+get_lang("Details")+'">'; 
    2847                     tr_signature.style.display = ''; 
    2848                 } 
    2849             else 
    2850                 { 
    2851                     td.innerHTML += '&nbsp;<img style="cursor:pointer" src="templates/'+template+'/images/signed_table.gif" title="'+get_lang("Details")+'">'; 
    2852                 } 
    2853             td.onclick = function(){ 
    2854             var _height = Element("div_message_scroll_"+ID).style.height; 
    2855             _height = parseInt(_height.replace("px","")); 
    2856             var _offset = 130; 
    2857             if (this.value == 'more_cert'){ 
    2858                 this.value = 'hide_cert'; 
    2859                 Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px"; 
    2860                 Element('tr_signature_'+ID).style.display = 'none'; 
    2861                 Element('td_signature_'+ID).style.display = 'none'; 
    2862  
    2863             } 
    2864             else{ 
    2865                 this.value = 'more_cert'; 
    2866                 Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px"; 
    2867                 Element('tr_signature_'+ID).style.display = ''; 
    2868                 Element('td_signature_'+ID).style.display = ''; 
    2869             } 
    2870         }; 
    2871  
    2872             tr_signature.appendChild(td_signature); 
    2873             tbody_message_options.appendChild(tr_signature); 
    2874         } 
    2875         //////////// END SIGNATURE //////////////// 
    2876  
    2877         table_message_options.appendChild(tbody_message_options); 
    2878         td0.appendChild(table_message_options); 
    2879         tr0.appendChild(td0); 
    2880         tbody_message.appendChild(tr0); 
    2881         } 
    2882         // IF DRAFT 
    2883         else 
    2884         { 
    2885                 var options = document.createElement("TD"); 
    2886                 //options.width = "1%"; 
    2887                 options.setAttribute("noWrap","true"); 
    2888                 var option_edit   = ' | <span class="message_options" onclick="new_message(\'edit\',\''+ID+'\');">'+get_lang('Edit')+'</span>'; 
    2889                 var option_print = ' | <span class="message_options" onclick="print_msg(\''+info_msg.msg_folder+'\',\''+info_msg.msg_number+'\',\''+ID+'\');">'+get_lang('Print')+'</span>'; 
    2890                 var option_hide_more = document.createElement("SPAN"); 
    2891                 option_hide_more.className = 'message_options'; 
    2892                 options.align = 'right'; 
    2893                 option_hide_more.value = 'more_options'; 
    2894                 option_hide_more.id = 'option_hide_more_'+ID; 
    2895                 option_hide_more.innerHTML = get_lang('Show details'); 
    2896                 option_hide_more.onclick = function(){ 
    2897                         var _height = Element("div_message_scroll_"+ID).style.height; 
    2898                         _height = parseInt(_height.replace("px","")); 
    2899                         var _offset = 35; 
    2900                         if (this.value == 'more_options'){ 
    2901                                 this.innerHTML = "<b><u>"+get_lang('Hide details')+"</u></b>"; 
    2902                                 this.value = 'hide_options'; 
    2903                                 Element("div_message_scroll_"+ID).style.height = (_height - _offset)+"px"; 
    2904                                 Element('table_message_others_options_'+ID).style.display = ''; 
    2905                         } 
    2906                         else{ 
    2907                                 this.innerHTML = get_lang('Show details'); 
    2908                                 this.value = 'more_options'; 
    2909                                 Element("div_message_scroll_"+ID).style.height = (_height + _offset)+"px"; 
    2910                                 Element('table_message_others_options_'+ID).style.display = 'none'; 
    2911                         } 
    2912                 }; 
    2913                 options.appendChild(option_hide_more); 
    2914                 options_actions = document.createElement('SPAN'); 
    2915                 options_actions.innerHTML = option_edit + option_print; 
    2916                 options.appendChild(options_actions); 
    2917                 tr.appendChild(td); 
    2918                 tr.appendChild(options); 
    2919                 tr.appendChild(next_previous_msg_td); 
    2920                 tbody_message_options.appendChild(tr); 
    2921                 table_message_options.appendChild(tbody_message_options); 
    2922                 td0.appendChild(table_message_options); 
    2923                 tr0.appendChild(td0); 
    2924                 tbody_message.appendChild(tr0); 
    2925  
    2926                 var important_message = document.createElement("INPUT"); 
    2927                 important_message.id = "is_important_"+ID; 
    2928                 important_message.name = "is_important"; 
    2929                 important_message.type = "HIDDEN"; 
    2930                 important_message.value = (info_msg.Importance == "" || info_msg.Importance == "Normal") ? "0": "1"; 
    2931  
    2932                 options.appendChild(important_message); 
    2933         } 
    2934         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2935         // END options message. 
    2936         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    2937  
    2938         var table_message_others_options = document.createElement("TABLE"); 
    2939         table_message_others_options.id = 'table_message_others_options_' + ID; 
    2940         table_message_others_options.width = "100%"; 
    2941         table_message_others_options.style.display = 'none'; 
    2942         if(navigator.appName.indexOf('Internet Explorer')>0){ 
    2943                 table_message_others_options.className = "table_message_options_ie"; 
    2944         }else{ 
    2945                 table_message_others_options.className = "table_message_options"; 
    2946         } 
    2947          
    2948         var tbody_message_others_options = document.createElement("TBODY"); 
    2949         var tr1 = document.createElement("TR"); 
    2950         tr1.className = "tr_message_header"; 
    2951         var td1 = document.createElement("TD"); 
    2952         td1.innerHTML = get_lang("From: "); 
    2953         td1.appendChild(deny_email(info_msg.from.email)); 
    2954         td1.width = "7%"; 
    2955  
    2956         if (info_msg.sender){ 
    2957                 var tr111 = document.createElement("TR"); 
    2958                 tr111.className = "tr_message_header"; 
    2959                 var td111 = document.createElement("TD"); 
    2960                 td111.innerHTML = get_lang("Sent by")+": "; 
    2961                 td111.appendChild(deny_email(info_msg.sender.email)); 
    2962                 td111.setAttribute("noWrap","true"); 
    2963                 var sender = document.createElement("TD"); 
    2964                 sender.id = "sender_"+ID; 
    2965                 var sender_values = document.createElement("INPUT"); 
    2966                 sender_values.id = "sender_values_"+ID; 
    2967                 sender_values.type = "HIDDEN"; 
    2968                 sender_values.value = info_msg.sender.full; //Veio do IMAP, sem images nem links. 
    2969                 sender.innerHTML += draw_plugin_cc(ID, info_msg.sender.full); 
    2970                 sender.className = "header_message_field"; 
    2971                 tr111.appendChild(td111); 
    2972                 tr111.appendChild(sender); 
    2973                 tr111.appendChild(sender_values); 
    2974                 tbody_message_others_options.appendChild(tr111); 
    2975         } 
    2976  
    2977         var from = document.createElement("TD"); 
    2978         from.id = "from_"+ID; 
    2979         from.innerHTML = info_msg.from.full; 
    2980         if (info_msg.Draft != "X"){ 
    2981                 from.innerHTML += draw_plugin_cc(ID, info_msg.from); 
    2982                 tbody_message_others_options.appendChild(tr1); 
    2983         } 
    2984         from.className = "header_message_field"; 
    2985         var from_values = document.createElement("INPUT"); 
    2986         from_values.id = "from_values_"+ID; 
    2987         from_values.type = "HIDDEN"; 
    2988         from_values.value = info_msg.from.full; //Veio do IMAP, sem images nem links. 
    2989  
    2990         var local_message = document.createElement("INPUT"); 
    2991         local_message.id = "is_local_"+ID; 
    2992         local_message.name = "is_local"; 
    2993         local_message.type = "HIDDEN"; 
    2994         local_message.value = (info_msg.local_message)?"1":"0"; 
    2995  
    2996         tr1.appendChild(td1); 
    2997         tr1.appendChild(from); 
    2998         tr1.appendChild(from_values); 
    2999         tr1.appendChild(local_message); 
    3000  
    3001         if (info_msg.reply_to){ 
    3002                 var tr11 = document.createElement("TR"); 
    3003                 tr11.className = "tr_message_header"; 
    3004                 var td11 = document.createElement("TD"); 
    3005                 td11.innerHTML = get_lang("Reply to")+": "; 
    3006                 td11.setAttribute("noWrap","true"); 
    3007                 var reply_to = document.createElement("TD"); 
    3008                 reply_to.id = "reply_to_"+ID; 
    3009  
    3010                 var reply_to_values = document.createElement("INPUT"); 
    3011                 reply_to_values.id = "reply_to_values_"+ID; 
    3012                 reply_to_values.type = "HIDDEN"; 
    3013                 reply_to_values.value = info_msg.reply_to; //Veio do IMAP, sem images nem links. 
    3014                 $.each(break_comma(info_msg.reply_to), function(index, value){ 
    3015                         reply_to.innerHTML += draw_plugin_cc(ID, value);         
    3016                 }) 
    3017                 reply_to.className = "header_message_field"; 
    3018                 tr11.appendChild(td11); 
    3019                 tr11.appendChild(reply_to); 
    3020                 tr11.appendChild(reply_to_values); 
    3021                 tbody_message_others_options.appendChild(tr11); 
    3022         } 
    3023         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3024         var tr2 = document.createElement("TR"); 
    3025         tr2.className = "tr_message_header"; 
    3026         var td2 = document.createElement("TD"); 
    3027         td2.width = "7%"; 
    3028         td2.innerHTML = get_lang("To: "); 
    3029         var to = document.createElement("TD"); 
    3030         to.id = "to_"+ID; 
    3031  
    3032         var to_values = document.createElement("INPUT"); 
    3033         to_values.id = "to_values_"+ID; 
    3034         to_values.type = "HIDDEN"; 
    3035         to_values.value = info_msg.toaddress2; //Veio do IMAP, sem images nem links. 
    3036         // Salva a pasta da mensagem 
    3037         var input_current_folder = document.createElement('input'); 
    3038         input_current_folder.id = "input_folder_"+ID; 
    3039         input_current_folder.name = "input_folder"; 
    3040         input_current_folder.type = "hidden"; 
    3041         input_current_folder.value = info_msg.msg_folder; 
    3042         td2.appendChild(input_current_folder); 
    3043         // fim 
    3044         // ALEXANDRE LUIZ CORREIA 
    3045         if(info_msg.toaddress2 != null) 
    3046         { 
    3047                 toaddress_array[ID] = break_comma(info_msg.toaddress2); 
    3048                 if (toaddress_array[ID].length > 1) 
    3049                 { 
    3050                         to.innerHTML += draw_plugin_cc(ID, toaddress_array[ID][0]); 
    3051                         var div_toaddress = document.createElement("SPAN"); 
    3052                         div_toaddress.id = "div_toaddress_"+ID; 
    3053                         div_toaddress.style.display=""; 
    3054                         div_toaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','to');>"+get_lang('more')+"</a>)"; 
    3055                         to.appendChild(div_toaddress); 
    3056                 } 
    3057                 else 
    3058                 { 
    3059                         toAdd = toaddress_array[ID].toString() 
    3060                         if( trim(toAdd) != "" ) { 
    3061                                 toAdd = toAdd.replace("<","&lt;").replace(">","&gt;"); 
    3062                         } else { 
    3063                                 toAdd = get_lang("without destination"); 
    3064                         } 
    3065  
    3066                         to.innerHTML += draw_plugin_cc(ID,toAdd); 
    3067                 } 
    3068  
    3069                 to.className = "header_message_field"; 
    3070                 tr2.appendChild(td2); 
    3071                 tr2.appendChild(to); 
    3072                 tr2.appendChild(to_values); 
    3073         } 
    3074  
    3075         tbody_message_others_options.appendChild(tr2); 
    3076  
    3077         if (info_msg.cc){ 
    3078                 var tr3 = document.createElement("TR"); 
    3079                 tr3.className = "tr_message_header"; 
    3080                 var td3 = document.createElement("TD"); 
    3081                 td3.innerHTML = "CC: "; 
    3082                 var cc = document.createElement("TD"); 
    3083                 cc.id = "cc_"+ID; 
    3084  
    3085                 var cc_values = document.createElement("INPUT"); 
    3086                 cc_values.id = "cc_values_"+ID; 
    3087                 cc_values.type = "HIDDEN"; 
    3088                 cc_values.value = info_msg.cc; 
    3089  
    3090                 ccaddress_array[ID] = break_comma(info_msg.cc); 
    3091                 if (ccaddress_array[ID].length > 1){ 
    3092                         var div_ccaddress = document.createElement("SPAN"); 
    3093                         div_ccaddress.id = "div_ccaddress_"+ID; 
    3094                         var div_ccaddress_full = document.createElement("SPAN"); 
    3095                         div_ccaddress_full.id = "div_ccaddress_full_"+ID; 
    3096                         div_ccaddress.style.display=""; 
    3097                         cc.innerHTML = draw_plugin_cc(ID, ccaddress_array[ID][0]); 
    3098                         div_ccaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cc');>"+get_lang('more')+"</a>)"; 
    3099                         cc.appendChild(div_ccaddress); 
    3100                 } 
    3101                 else{ 
    3102                         cc.innerHTML = draw_plugin_cc(ID, info_msg.cc); 
    3103                 } 
    3104                 cc.className = "header_message_field"; 
    3105                 tr3.appendChild(td3); 
    3106                 tr3.appendChild(cc); 
    3107                 tr3.appendChild(cc_values); 
    3108                 tbody_message_others_options.appendChild(tr3); 
    3109         } 
    3110  
    3111         /* 
    3112          * @AUTHOR Rodrigo Souza dos Santos 
    3113          * @MODIFY-DATE 2008/09/11 
    3114          * @BRIEF Adding routine to create bcc field if there is one. 
    3115          */ 
    3116         if (info_msg.bcc) 
    3117         { 
    3118                 var tr3 = document.createElement("tr"); 
    3119                 tr3.className = "tr_message_header"; 
    3120                 var td3 = document.createElement("td"); 
    3121                 td3.innerHTML = get_lang("BCC") + " : "; 
    3122                 var cco = document.createElement("td"); 
    3123                 cco.id = "cco_"+ID; 
    3124  
    3125                 var cco_values = document.createElement("input"); 
    3126                 cco_values.id = "cco_values_"+ID; 
    3127                 cco_values.type = "hidden"; 
    3128                 cco_values.value = info_msg.bcc; 
    3129  
    3130                 ccoaddress_array[ID] = info_msg.bcc.split(","); 
    3131                 if (ccoaddress_array[ID].length > 1){ 
    3132                         var div_ccoaddress = document.createElement("SPAN"); 
    3133                         div_ccoaddress.id = "div_ccoaddress_"+ID; 
    3134                         var div_ccoaddress_full = document.createElement("SPAN"); 
    3135                         div_ccoaddress_full.id = "div_ccoaddress_full_"+ID; 
    3136                         div_ccoaddress.style.display=""; 
    3137  
    3138                         //cco.innerHTML = draw_plugin_cc(ID, ccoaddress_array[ID][0]); 
    3139                         cco.innerHTML = ccoaddress_array[ID][0]; 
    3140                         div_ccoaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+ID+"','cco');>"+get_lang('more')+"</a>)"; 
    3141                         cco.appendChild(div_ccoaddress); 
    3142                 } 
    3143                 else{ 
    3144                         //cco.innerHTML = draw_plugin_cc(ID, info_msg.cco); 
    3145                         cco.innerHTML = info_msg.bcc; 
    3146                 } 
    3147                 cco.className = "header_message_field"; 
    3148                 tr3.appendChild(td3); 
    3149                 tr3.appendChild(cco); 
    3150                 tr3.appendChild(cco_values); 
    3151                 tbody_message_others_options.appendChild(tr3); 
    3152         } 
    3153  
    3154         var tr4 = document.createElement("TR"); 
    3155         tr4.className = "tr_message_header"; 
    3156         var td4 = document.createElement("TD"); 
    3157         td4.innerHTML = get_lang("Date: "); 
    3158         var date = document.createElement("TD"); 
    3159         date.id = "date_"+ID; 
    3160         date.innerHTML = info_msg.fulldate; 
    3161         var date_day = document.createElement("INPUT"); 
    3162         date_day.id = "date_day_"+ID; 
    3163         date_day.type = "HIDDEN"; 
    3164         date_day.value = info_msg.msg_day; 
    3165         var date_hour = document.createElement("INPUT"); 
    3166         date_hour.id = "date_hour_"+ID; 
    3167         date_hour.type = "HIDDEN"; 
    3168         date_hour.value = info_msg.msg_hour 
    3169         date.className = "header_message_field"; 
    3170         tr4.appendChild(td4); 
    3171         tr4.appendChild(date); 
    3172         tr4.appendChild(date_day); 
    3173         tr4.appendChild(date_hour); 
    3174         tbody_message_others_options.appendChild(tr4); 
    3175  
    3176         var tr5 = document.createElement("TR"); 
    3177         tr5.className = "tr_message_header"; 
    3178         var td5 = document.createElement("TD"); 
    3179         td5.innerHTML = get_lang("Subject"); 
    3180         var subject = document.createElement("TD"); 
    3181         subject.id = "subject_"+ID; 
    3182         subject.innerHTML = html_entities(info_msg.subject);  
    3183         subject.className = "header_message_field"; 
    3184         if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
    3185                 var new_event_logo = document.createElement("IMG"); 
    3186                 new_event_logo.title = "Criar evento a partir deste email"; 
    3187                 new_event_logo.alt = "Criar evento a partir deste email"; 
    3188                 new_event_logo.src = "./templates/default/images/calendar_add.png"; 
    3189                 new_event_logo.style.cursor = "pointer"; 
    3190                 new_event_logo.style.marginLeft = "5px"; 
    3191                 new_event_logo.onclick = function(){ 
    3192                 import_implements_calendar(); 
    3193                  
    3194                  
    3195                         DataLayer.dispatchPath = "../prototype/"; 
    3196                         var path = "../prototype/modules/calendar/"; 
    3197  
    3198                         var startEvent = new Date();   
    3199                         if(startEvent.toString('mm') < 30)  
    3200                                 startEvent.add({minutes: (30 - parseInt(startEvent.toString('mm')))});  
    3201                         else  
    3202                                 startEvent.add({hours: 1, minutes: '-'+startEvent.toString('mm')});  
    3203                         var endEvent = function(date){  
    3204                                 if(!!User.preferences.defaultCalendar){  
    3205                                         return  new Date(parseInt(date.getTime()) +  
    3206                                                     (!!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ?   
    3207                                                         (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration * 60000) : 
    3208                                                         (User.preferences.defaultDuration * 60000) 
    3209                                                 )); 
    3210                                 }else  
    3211                                         return new Date(parseInt(date.getTime()) + (User.preferences.defaultDuration * 60000));  
    3212                         };        
    3213  
    3214                         var emails = $("#to_values_"+ID).val().split(','); 
    3215                          
    3216                          
    3217                         //Normalizaᅵᅵo dos dados evita ter que reemplementar toda as funcionalidades do calendar 
    3218                         eventDetails({  
    3219                                          
    3220                                         acl: {inviteGuests: true, organization: true ,participationRequired: false, read: true, write: true}, 
    3221                                         alarms: [], 
    3222                                         allDay: false, 
    3223                                         attachments: [], 
    3224                                         isAttendee: true, 
    3225                                         attendee: '',//TODOOOOOO, 
    3226                                         calendar: User.preferences.defaultCalendar ? User.preferences.defaultCalendar : Calendar.calendars[0], 
    3227                                         calendars: Calendar.calendars, 
    3228                                         category: '', 
    3229                                         'class': '1', 
    3230                                         delegatedFrom: {}, 
    3231                                         endDate: startEvent.toString(User.preferences.dateFormat), 
    3232                                         startDate: endEvent(startEvent).toString(User.preferences.dateFormat), 
    3233                                         startHour: startEvent.toString(User.preferences.hourFormat), 
    3234                                         endHour: endEvent(startEvent).toString(User.preferences.hourFormat), 
    3235                                         timezone: User.preferences.defaultCalendar ? Calendar.signatureOf[User.preferences.defaultCalendar].calendar.timezone : User.preferences.timezone, 
    3236                                         summary : $("#subject_"+ID).text(), 
    3237                                         description : $("#body_" + ID).text(), 
    3238                                         startTime: startEvent.getTime(), 
    3239                                         endTime: endEvent(startEvent), 
    3240                                         timezones: Timezone.timezones, 
    3241                                         me: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0', id: User.me.id}, 
    3242                                         organizer: {name: User.me.name, mail: User.me.mail, acl: 'rowi', status: '1', delegatedFrom: '0' , id: User.me.id}, 
    3243                                         statusParticipants: {accepted: 0, cancelled: 0, tentative: 0, unanswered:emails.length}, 
    3244                                         location: '', 
    3245                                         attendee: $.map(emails, function( mail ){                        
    3246                                                 var contact = false; 
    3247                                                 var decoded =  Encoder.htmlDecode(mail); 
    3248                                                 var newAttendeeName = ""; 
    3249  
    3250                                                 var name = decoded.match(/"([^"]*)"/) ? decoded.match(/"([^"]*)"/)[1] : ''; 
    3251                                                 var mail = decoded.match(/<([^<]*)>[\s]*$/) ? decoded.match(/<([^<]*)>[\s]*$/)[1].toLowerCase() : decoded;  
    3252  
    3253  
    3254                                                 var user = DataLayer.get('user', ["=", "mail", mail], true); 
    3255                                                  
    3256                                                 if( $.type(user) == "array") 
    3257                                                     user = user[0]; 
    3258  
    3259                                                 if(user != ''){ 
    3260                                                     //user = {name : name , mail : mail}; 
    3261                                                     if(User.me.mail == user.mail) 
    3262                                                             return(null); 
    3263                                                     user.isExternal = (!!user && !(!!user.isExternal)) ? 0 : 1; 
    3264  
    3265                                                     return  DataLayer.merge({ 
    3266                                                             name: user.name, 
    3267                                                             mail: user.mail, 
    3268                                                             acl:  'r', 
    3269                                                             delegatedFrom: '0', 
    3270                                                             status: '4', 
    3271                                                             isExternal: user.isExternal 
    3272                                                     }, !!user.id ? {id : DataLayer.put('participant', {user: user.id, isExternal: user.isExternal})} : {id: DataLayer.put('participant', {user: user})});  
    3273                                                 }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}\])/)){ 
    3274                                                      
    3275                                                     var userId = DataLayer.put('user', { 
    3276                                                         name: name,  
    3277                                                         mail: mail,  
    3278                                                         isExternal: '1' 
    3279                                                     }); 
    3280                                                     var newAttendeeId = DataLayer.put('participant', { 
    3281                                                         user: userId,  
    3282                                                         isExternal: '1' 
    3283                                                     }); 
    3284  
    3285                                                     return  { 
    3286                                                             id: newAttendeeId, 
    3287                                                             name: name, 
    3288                                                             mail: mail, 
    3289                                                             acl:  'r', 
    3290                                                             delegatedFrom: '0', 
    3291                                                             status: '4', 
    3292                                                             isExternal: '1' 
    3293                                                     }; 
    3294                                                      
    3295                                                 }else 
    3296                                                     return (null); 
    3297                                         })       
    3298                                          
    3299                         }, true, path, true); 
    3300                 } 
    3301                 subject.appendChild(new_event_logo); 
    3302         } 
    3303         tr5.appendChild(td5); 
    3304         tr5.appendChild(subject); 
    3305         tbody_message_others_options.appendChild(tr5); 
    3306         //k! 
    3307          
    3308          
    3309         var update_labeleds_msg = function(){ 
    3310                 //TODO Mudar quando API abstrair atualizaᅵᅵes no cache 
    3311                 DataLayer.remove('labeled', false); 
    3312                 //DataLayer.get('labeled'); 
    3313                 var labels = DataLayer.get("labeled", {filter: [ 
    3314                                 'AND', 
    3315                                         ['=', 'folderName', current_folder],  
    3316                                         ['=','messageNumber',folder_id]],  
    3317                                 criteria : {deepness: 2}} ); 
    3318                  
    3319                 if(labels.length != 0){ 
    3320                         var tr8 = document.createElement("TR"); 
    3321                         tr8.className = "tr_message_header"; 
    3322                         var td8 = document.createElement("TD"); 
    3323                         td8.innerHTML = get_lang("Labels: "); 
    3324                         var markers = document.createElement("TD"); 
    3325                         markers.id = "markers_"+ID; 
    3326                          
    3327                         for(var i=0; i<labels.length; i++){ 
    3328                                 fontColor = labels[i].label.fontColor; 
    3329                                 borderColor = labels[i].label.borderColor; 
    3330                                 backgroundColor = labels[i].label.backgroundColor; 
    3331                                 nameLabel = labels[i].label.name; 
    3332                                 id = labels[i].id; 
    3333                                 markers.innerHTML+= "<div  style='height: 15px; background:"+backgroundColor+"; float: left; -webkit-border-radius: 3px; -moz-border-radius: 3px; margin:0 0 1px 1px; border: 1px solid "+borderColor+"'><span style='color: "+fontColor+"; margin: 5px;'>"+nameLabel+"</span><span class='removeLabeledMsg' id='"+id+"' title='"+get_lang("Remove Label")+"'>x</span></div>"; 
    3334                                  
    3335                         } 
    3336                         $(markers).find('span.removeLabeledMsg').click(function(event){ 
    3337                                 var id_labeled = $(event.target).attr("id"); 
    3338                                 //TODO Mudar quando API abstrair atualizaᅵᅵes no cache 
    3339                                 //DataLayer.remove('labeled', false); 
    3340                                 //DataLayer.get('labeled'); 
    3341                                 DataLayer.remove('labeled', id_labeled); 
    3342                                 DataLayer.commit(false, false, function(){ 
    3343                                         var index_folder = id_labeled.lastIndexOf('/'); 
    3344                                         var folder_name = id_labeled.slice(0,index_folder); 
    3345                                         var index_number = id_labeled.lastIndexOf('#'); 
    3346                                         var msg_number = id_labeled.slice(index_folder + 1,index_number); 
    3347                                         updateLabelsColumn({msg_number:msg_number, boxname:folder_name, labels:false}); 
    3348                                         update_labeleds_msg(); 
    3349                                         tbody_message_others_options.removeChild(tr8); 
    3350                                 }); 
    3351                                  
    3352                         }); 
    3353                         markers.className = "header_message_field"; 
    3354                         tr8.appendChild(td8); 
    3355                         tr8.appendChild(markers); 
    3356                         tbody_message_others_options.appendChild(tr8); 
    3357                 } 
    3358         } 
    3359  
    3360         if ( info_msg.attachments && info_msg.attachments.length > 0 ) 
    3361         { 
    3362                 //Cï¿œdigo no padrï¿œo expresso 2.2 
    3363         var tr6 = document.createElement("TR"); 
    3364                 tr6.className = "tr_message_header"; 
    3365                 var td6 = document.createElement("TD"); 
    3366                 td6.innerHTML = get_lang("Attachments: "); 
    3367                  
    3368                  
    3369                 var attachments = document.createElement("TD"); 
    3370                 td6.valign = "top"; 
    3371                 attachments.align = 'left'; 
    3372                 if(info_msg.attachments.length >= 1){ 
    3373                         if(info_msg.attachments.length > 1) { 
    3374                                 var link_attachment      = document.createElement("A"); 
    3375                                  if(proxy_mensagens.is_local_folder(current_folder)) 
    3376                                         link_attachment.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    3377                                 else 
    3378                                         link_attachment.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    3379                                 link_attachment.innerHTML = " "+info_msg.attachments.length+' '+get_lang('files')+' :: '+get_lang('Download all atachments'); 
    3380                     attachments.appendChild(link_attachment); 
    3381                         } 
    3382                         if(parseInt(preferences.remove_attachments_function)) 
    3383                         { 
    3384                     attachments.appendChild(document.createTextNode('  ')); 
    3385                     var del_attachments = document.createElement("A"); 
    3386                     del_attachments.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    3387                     del_attachments.innerHTML = get_lang('remove all attachments'); 
    3388                     attachments.appendChild(del_attachments); 
    3389                         } 
    3390                 attachments.appendChild(document.createElement('BR')); 
    3391         } 
    3392                 attachments.id = "attachments_" + ID; 
    3393                 var parserImport = false; 
    3394                 for (var i=0; i<info_msg.attachments.length; i++) 
    3395                 { 
    3396                         var import_url = '$this.db_functions.import_vcard&msg_folder='+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding; 
    3397                         var link_attachment = document.createElement("a"); 
    3398                         link_attachment.setAttribute("class", "type_images"); 
    3399                         link_attachment.style.display = "block"; 
    3400                         link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 
    3401                         link_attachment.innerHTML = url_decode(info_msg.attachments[i].name) + " ("+borkb(info_msg.attachments[i].fsize)+")"; 
    3402                         //link_attachment.innerHTML += " ("+borkb(info_msg.attachments[i].fsize)+")"; 
    3403  
    3404                         //k trocar por match??? 
    3405                         if((url_decode(info_msg.attachments[i].name).indexOf(".ics")!=-1) || (url_decode(info_msg.attachments[i].name).indexOf(".vcard")!=-1)) 
    3406                         { 
    3407                                 //Link para importar calendï¿œrio 
    3408                                 var link_import_attachment = new Image(); 
    3409                                 link_import_attachment.src = "templates/"+template+"/images/new.png"; 
    3410                                 link_import_attachment.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"'); return false;"); 
    3411                                 link_import_attachment.title = get_lang("Import to calendar"); 
    3412                                 link_import_attachment.style.display = "inline"; 
    3413                                 link_import_attachment.align = "top"; 
    3414                                 link_import_attachment.style.marginLeft = "5px"; 
    3415                                 link_import_attachment.style.cursor = "pointer"; 
    3416                                 link_attachment.appendChild(link_import_attachment); 
    3417                                 parserImport = true; 
    3418                         } 
    3419  
    3420             if((url_decode(info_msg.attachments[i].name).indexOf(".eml") != -1)) 
    3421                         { 
    3422                                 //Link para importar calendï¿œrio 
    3423                                 var link_open_msg = new Image(); 
    3424                                 link_open_msg.src = "templates/"+template+"/images/email.png"; 
    3425                                 //link_open_msg.setAttribute("onclick","javascript:import_calendar('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"&idx_file="+i+"&encoding="+info_msg.attachments[i].encoding+"'); return false;"); 
    3426                                 link_open_msg.setAttribute("onclick","javascript:open_msg_part('"+info_msg.msg_folder+"&msg_number="+info_msg.msg_number+"&msg_part="+info_msg.attachments[i].pid+"'); return false;"); 
    3427                                 link_open_msg.title = get_lang("Open message"); 
    3428                                 link_open_msg.align = "top"; 
    3429                                 link_open_msg.style.marginLeft = "5px"; 
    3430                                 link_open_msg.style.cursor = "pointer"; 
    3431                                 link_attachment.appendChild(link_open_msg); 
    3432                         } 
    3433                  
    3434             //link_attachment.innerHTML += '<br/>'; 
    3435             attachments.appendChild(link_attachment); 
    3436             } 
    3437                 tr6.appendChild(td6); 
    3438         tr6.appendChild(attachments); 
    3439                 tbody_message_others_options.appendChild(tr6); 
    3440         } 
    3441  
    3442         if (parserImport){ 
    3443                 $.ajax({ 
    3444                         url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&readable=true&cirus_delimiter='+cyrus_delimiter+'&analize=true&uidAccount='+decodeOwner(), 
    3445                         async: true, 
    3446                         success: function(data){ 
    3447                                 data = connector.unserialize(data); 
    3448  
    3449                                 if(typeof(data) == "object"){ 
    3450                                     var calendarPermission = data.calendar; 
    3451                                     data = data.action; 
    3452                                 } 
    3453                                          
    3454                                 switch(parseInt(data)){ 
    3455                                 case 5: 
    3456                                         $('.type_images').append('<img class="loader" src="templates/default/images/ajax-loader.gif" align="top" style="margin-left: 5px; cursor: pointer; display: inline">'); 
    3457                                         $.ajax({ 
    3458                                                 url: "controller.php?action="+import_url+'&from_ajax=true&selected=true', 
    3459                                                 success: function(msg){          
    3460                                                         $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; display: inline">').parent().find('.loader').remove(); 
    3461                                                         write_msg( ( ( connector.unserialize(msg)) == "ok") ? "Seu evento foi Atualizado com sucesso" : "Ocorreu um erro ao atualizar evento" ); 
    3462                                                 } 
    3463                                         }); 
    3464                                         return; 
    3465                                         break;           
    3466                                 case 4: 
    3467                                         $('.type_images').append('<img src="../prototype/modules/mail/img/flagDone.png" align="top" style="margin: 3px 0 0 5px; cursor: pointer; ">'); 
    3468                                         write_msg("Seu evento encontra-se atualizado."); 
    3469                                         return; 
    3470                                         break; 
    3471                                 case 12: 
    3472                                         write_msg('Este evento nï¿œo existe mais.'); 
    3473                                         return; 
    3474                                         break;                   
    3475                                 } 
    3476                         } 
    3477                 }); 
    3478         } 
    3479         //k!! 
    3480          
    3481         var div = document.createElement("DIV"); 
    3482         div.id = "div_message_scroll_"+ID; 
    3483         div.style.background = 'WHITE'; 
    3484         div.style.overflow = "auto"; 
    3485         table_message_others_options.appendChild(tbody_message_others_options); 
    3486         var tr = document.createElement("TR"); 
    3487                 tr.className = "tr_message_header"; 
    3488         var td = document.createElement("TD"); 
    3489                 td.colspan = '2'; 
    3490         td.style.fontSize = '10pt';  
    3491         td.style.fontFamily = 'Arial,Verdana';  
    3492         td.style.verticalAlign = 'top';  
    3493         td.style.height = '100%'; 
    3494         div.appendChild(table_message_others_options); 
    3495         var imgTag = info_msg.body.match(/(<img[^>]*src[^>=]*=['"]?[^'">]*["']?[^>]*>)|(<[^>]*(style[^=>]*=['"][^>]*background(-image)?:[^:;>]*url\()[^>]*>)/gi); 
    3496         var newBody = info_msg.body; 
    3497         if(!info_msg.showImg && imgTag) 
    3498         { 
    3499                 var domains = ''; 
    3500                 var blocked = false; 
    3501                 var forbidden = true; 
    3502  
    3503                 if (preferences.notification_domains != null && typeof(preferences.notification_domains) != 'undefined') 
    3504                 { 
    3505                         domains = preferences.notification_domains.split(','); 
    3506                         for(var j = 0; j < imgTag.length; j++) 
    3507                         { 
    3508                                 for (var i = 0; i < domains.length; i++) 
    3509                                 { 
    3510                                         if (imgTag[j].match(/cid:([\w\d]){5,}/) || imgTag[j].match(/src=\"\.\/inc\/get_archive\.php/g))  
    3511                                         { 
    3512                                                 forbidden = false; 
    3513                                                 continue; 
    3514                                         } 
    3515                                         imgSource = imgTag[j].match(/=['"](http:\/\/)+[^'"\/]*/); 
    3516                                         if (imgSource && imgSource.toString().substr(5).match(domains[i])) 
    3517                                                 forbidden = false; 
    3518                                 } 
    3519                                 if (forbidden) 
    3520                                 { 
    3521                                         newBody = newBody.replace(imgTag[j],"<img src='templates/"+template+"/images/forbidden.png'>"); 
    3522                                         blocked=true; 
    3523                                 } 
    3524                         } 
    3525                         if (blocked) 
    3526                         { 
    3527                                 var showImgLink = document.createElement('DIV'); 
    3528                                 showImgLink.id="show_img_link_"+ID; 
    3529                                 showImgLink.onclick = function(){show_msg_img(info_msg.msg_number,info_msg.msg_folder)}; 
    3530                                 showImgLink.className="show_img_link"; 
    3531                                 showImgLink.innerHTML = get_lang("Show images from")+": "+info_msg.from.email; 
    3532                                 td.appendChild(showImgLink); 
    3533                         } 
    3534                 } 
    3535         } 
    3536         td.appendChild(div); 
    3537         tr.appendChild(td) 
    3538         tbody_message.appendChild(tr); 
    3539  
    3540  
    3541         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3542         //Make the body message. 
    3543         /////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3544         var tr = document.createElement("TR"); 
    3545         tr.className = "tr_message_body"; 
    3546         var td = document.createElement("TD"); 
    3547         //td.setAttribute("colSpan","2"); 
    3548          
    3549         //Comentado pois estes replaces e a tentativa de remover as tags <span> vazias faz com que seja  
    3550         //eliminado os estilos aplicados no corpo do texto quando utilizado o Firefox. 
    3551         //newBody = newBody.replace("<body","<span"); 
    3552         //newBody = newBody.replace("<BODY","<span"); 
    3553         //while ( ( /<span[^>]*><span[^>]*>/ig ).test( newBody ) ) 
    3554         //      newBody = newBody.replace( /(<span[^>]*>)<span[^>]*>/ig, '$1' ); 
    3555  
    3556         var _body = document.createElement( 'div' ); 
    3557         _body.id = 'body_' + ID; 
    3558         _body.innerHTML = newBody; 
    3559         _body.style.marginLeft = '5px'; 
    3560  
    3561         var _elements = _body.getElementsByTagName( '*' ); 
    3562         for( var i = 0; i < _elements.length; i++ ) 
    3563                 if ( _elements[ i ].attributes && _elements[ i ].attributes.getNamedItem( 'id' ) ) 
    3564                         _elements[ i ].attributes.removeNamedItem( 'id' );       
    3565          
    3566         div.appendChild( _body ); 
    3567          
    3568          //window.setTimeout(function() { $("#div_message_scroll_"+ID).focus() },250); 
    3569          
    3570         function mailto( link ) 
    3571         { 
    3572                 var mail = link.href.substr( 7 ); 
    3573                 link.onclick = function( ) 
    3574                 { 
    3575                         new_message_to( mail ); 
    3576                         return false; 
    3577                 }; 
    3578         } 
    3579         var links = div.getElementsByTagName( 'a' ); 
    3580         for ( var i = 0; i < links.length; i++ ){ 
    3581                 try{ 
    3582                         if ( links.item( i ).href.indexOf( 'mailto:' ) === 0 ){ 
    3583                                 mailto( links.item( i ) ); 
    3584                         } 
    3585                         else{ 
    3586                                 var anchor_pattern = "http://"+location.host+location.pathname+"#"; 
    3587  
    3588                                 if ( ( links.item( i ).href.indexOf( 'javascript:' ) !== 0 ) && 
    3589                                         (links.item( i ).href.indexOf(anchor_pattern) !== 0) ) //se nï¿œo for ï¿œncora 
    3590                                                 links.item( i ).setAttribute( 'target', '_blank' ); 
    3591                         } 
    3592                 }catch(e){ 
    3593                 } 
    3594         } 
    3595         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3596         //Make the thumbs of the message. 
    3597         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3598         //k 
    3599          
    3600         if ((info_msg.thumbs)&&(info_msg.thumbs.length > 0)){ 
    3601                 var thumbs = jQuery.parseJSON(info_msg.thumbs); 
    3602                 var div_thumbs = document.createElement("div"); 
    3603                  
    3604                 div_thumbs.setAttribute("class", "expressomail-thumbs"); 
    3605                 div_thumbs.setAttribute("className", "expressomail-thumbs"); //for IE 
    3606                  
    3607                 var div_thumbs_lbl = document.createElement("DIV"); 
    3608                 div_thumbs_lbl.setAttribute("class", "expressomail-thumbs-label"); 
    3609                 div_thumbs_lbl.setAttribute("className", "expressomail-thumbs-label"); //for IE 
    3610                  
    3611                 var div_thumbs_lbl_sp = document.createElement("SPAN"); 
    3612                 div_thumbs_lbl_sp.setAttribute("class", "message_options"); 
    3613                 div_thumbs_lbl_sp.setAttribute("className", "message_options"); //for IE 
    3614                 var div_thumbs_lbl_st = document.createElement("STRONG"); 
    3615                 div_thumbs_lbl_st.innerHTML = info_msg.attachments.length+" "+get_lang("attachment")+(info_msg.attachments.length > 1 ? "s" : "")+" "+get_lang("in this message"); 
    3616                 var div_thumbs_lbl_a  = document.createElement("A"); 
    3617  
    3618                 if(info_msg.thumbs.length > 1){ 
    3619                          if(proxy_mensagens.is_local_folder(current_folder)) 
    3620                                 div_thumbs_lbl_a.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    3621                         else 
    3622                                 div_thumbs_lbl_a.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    3623                         div_thumbs_lbl_a.innerHTML = get_lang('Download all atachments'); 
    3624                 } else { 
    3625                         div_thumbs_lbl_a.setAttribute("style", "display:none; visibility:hidden;"); 
    3626                 } 
    3627  
    3628                 div_thumbs_lbl_sp.appendChild(div_thumbs_lbl_st); 
    3629                 div_thumbs_lbl_sp.appendChild(document.createTextNode(' :: ')); 
    3630                 div_thumbs_lbl_sp.appendChild(div_thumbs_lbl_a); 
    3631                 div_thumbs_lbl.appendChild(div_thumbs_lbl_sp); 
    3632  
    3633                 var div_thumbs_lbl_sp2   = document.createElement("SPAN"); 
    3634                 div_thumbs_lbl_sp2.setAttribute("class", "message_tips"); 
    3635                 div_thumbs_lbl_sp2.setAttribute("className", "message_tips"); //for IE 
    3636                 div_thumbs_lbl_sp2.innerHTML = get_lang("<strong>Tip:</strong> <span>For faster save, click over the image with <em>right button</em>.</span>"); 
    3637  
    3638                 var ul_thumbs_list = document.createElement("UL"); 
    3639                 ul_thumbs_list.setAttribute("class", "expressomail-thumbs-list"); 
    3640                 ul_thumbs_list.setAttribute("className", "expressomail-thumbs-list"); //for IE 
    3641  
    3642                         var msg = info_msg.msg_number;  
    3643                         var fdr = info_msg.msg_folder;  
    3644                                         var i = 0; 
    3645                                 //verifica se estï¿œ no novo padrï¿œo de montagem das mensagens ou no antigo, necessï¿œrio 
    3646                                 //para exibir as imagens no arquivamento local arquivamento local. 
    3647                                 if(thumbs){ 
    3648                         jQuery.each(thumbs, function(i, thumb) { 
    3649                                                         if(fdr.indexOf("local_") >= 0){ 
    3650                                                                 var href = info_msg.array_attach[i].url + '&image=true';  
    3651                                                                 var src  = info_msg.array_attach[i].url+ '&image=thumbnail';  
    3652                                                                 i++; 
    3653                                                         }else{ 
    3654                                                                 var href = './inc/get_archive.php?msgFolder=' + fdr + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=true';  
    3655                                                                 //var href = thumb.url;  
    3656                                                                 var src  = 'inc/get_archive.php?msgFolder=' + fdr + '&msgNumber=' + msg + '&indexPart=' + thumb.pid + '&image=thumbnail';  
    3657                                 } 
    3658                                 var msgid= fdr+";;"+msg+";;"+i+";;"+thumb.pid+";;"+thumb.encoding;  
    3659                                 var image_info = '{"folder":"'+fdr+'","message":"'+msg+'","thumbIndex":"'+i+'","pid":"'+thumb.pid+'","encoding":"'+thumb.encoding+'","type":"'+thumb.type+'"}';  
    3660                                   
    3661                                 var image= '<img id="' + msgid + '" title="' +   
    3662                                                                 get_lang('Click here do view (+)') + '" src="' + src + '" style="width:auto;height:100%;" />';  
    3663                                                           
    3664                                 var content = '<a title="'+thumb.name+ '" rel="thumbs'+ID+'" class="expressomail-thumbs-link" onMouseDown="save_image(event,this,\'' +thumb.type+'\')" href="'+href+'" onclick="window.open(\''+href+'\',\'mywindow\',\'width=700,height=600,scrollbars=yes\');return false;">'+image+'</a>';  
    3665                                 content += '<input id="thumb_'+ID+'_'+i+'" type="hidden" value="' +escape(image_info) +'" />';  
    3666                                 jQuery(ul_thumbs_list).append('<li>'+content+'</li>');  
    3667                                   
    3668                         });     
    3669                  
    3670                 div_thumbs.appendChild(div_thumbs_lbl); 
    3671                 div_thumbs.appendChild(div_thumbs_lbl_sp2); 
    3672                 div_thumbs.appendChild(ul_thumbs_list); 
    3673                  
    3674                                 }else{ 
    3675                                         div_thumbs.appendChild(div_thumbs_lbl); 
    3676                                         div_thumbs.appendChild(div_thumbs_lbl_sp2); 
    3677                                         div_thumbs.innerHTML = div_thumbs.innerHTML + info_msg.thumbs; 
    3678                                          
    3679                                          
    3680                                 } 
    3681                  
    3682                 div.appendChild(div_thumbs); 
    3683         } 
    3684         //k!! 
    3685         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3686         table_message.appendChild(tbody_message); 
    3687         content.appendChild(table_message); 
    3688         resizeWindow(); 
    3689         var msg_number = document.createElement('INPUT'); 
    3690         msg_number.id = "msg_number_" + ID; 
    3691         msg_number.type = "hidden"; 
    3692         msg_number.value = info_msg.msg_number; 
    3693         content.appendChild(msg_number); 
    3694         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    3695  
    3696         //Exibe o cabecalho da mensagem totalmente aberto caso esteja setado nas preferencias do usuario 
    3697         if (preferences.show_head_msg_full == 1) 
    3698         { 
    3699                 option_hide_more.onclick(); 
    3700                 if (Element('div_toaddress_'+ID) != null) 
    3701                         show_div_address_full(ID,'to'); 
    3702                 if (Element('div_ccaddress_'+ID) != null) 
    3703                         show_div_address_full(ID,'cc'); 
    3704         } 
    3705  
    3706         /* 
    3707          * TODO: implementar o controle como preferï¿œncia do usuï¿œrio 
    3708          * 
    3709          */ 
    3710         var jcarousel = false; 
    3711         if (jcarousel) { 
    3712                 //carousel  
    3713                 jQuery(document).ready(function() { 
    3714                         jQuery('.expressomail-thumbs-list').attr('id', 'expressomail-thumbs-list'+ID)  
    3715                     .addClass('jcarousel-skin-default').jcarousel();  
    3716  
    3717                         jQuery('.expressomail-thumbs-link img').attr('style', '');  
    3718                  
    3719                 //fancybox 
    3720                         jQuery(".expressomail-thumbs-list li a").attr('onclick', 'return true;'); 
    3721                         jQuery(".expressomail-thumbs-list li a").fancybox({ 
    3722                                 'hideOnContentClick': true, 
    3723                                         'type': 'image',  
    3724                                         'titlePosition': 'over',                                          
    3725                                         'titleFormat' : function(name, currentArray, currentIndex, currentOpts) {                         
    3726                                                         var image_info = $('#thumb_'+ID+'_'+currentIndex).val();  
    3727  
    3728                                                         return '<div id="fancybox-title" class="fancybox-title-over" style="width: 100%; display: block;">' +  
    3729                                                                                 '<div id="fancybox-title-over">' +  
    3730                                                                                         '<a title="Anterior" onclick="javascript:$.fancybox.prev();" style="float:left;">' +  
    3731                                                                                                         '<img src="./templates/'+template+'/images/left_arrow_white.png" width="30" height="30" />' +  
    3732                                                                                         '</a>'+  
    3733                                                                                         '<a title="Baixar imagem" onclick="javascript:save_image2(\''+image_info+'\');" style="padding:0 5px;">' +  
    3734                                                                                                         '<img src="./templates/'+template+'/images/image_down.png" width="22" height="22" />' +  
    3735                                                                                         '</a>'+  
    3736                                                                                         '<a title="Baixar todas de uma vez" onclick="javascript:download_all_attachments(\''+info_msg.msg_folder+"','"+info_msg.msg_number+'\')" style="padding:0 5px;">'+  
    3737                                                                                                         '<img src="./templates/'+template+'/images/package_down.png" width="26" height="26" />' +  
    3738                                                                                         '</a>'+  
    3739                                                                                         '<span style="margin-left:5px; margin-top:7px; position:absolute;">'+name+'</span>'+  
    3740                                                                                         '<a title="Prï¿œxima" onclick="javascript:$.fancybox.next();" style="float:right;">' +  
    3741                                                                                                 '<img src="./templates/'+template+'/images/right_arrow_white.png" width="30" height="30" />' +  
    3742                                                                                         '</a>' +  
    3743                                                                                 '</div>' +  
    3744                                                                         '</div>';  
    3745                                         }  
    3746                         }); 
    3747                 }); 
    3748         }   
    3749         if ( is_webkit ){ //Corrige o bug de foco no Chrome 
    3750                var ev = document.createEvent('MouseEvents'); 
    3751            ev.initEvent( 
    3752                                 'click'     
    3753                                 ,false  
    3754                                 ,true 
    3755                         ); 
    3756                var divScroll = Element('div_message_scroll_'+ID); 
    3757                         if (divScroll) { 
    3758                                 divScroll.setAttribute('tabindex','-1'); 
    3759                                 divScroll.onclick = function() {setTimeout(function(){$("#div_message_scroll_"+ID).focus();},0);}; 
    3760                                 divScroll.dispatchEvent(ev); 
    3761                         } 
    3762                 } 
    3763         else  $("#div_message_scroll_"+ID).focus(); 
    3764         update_labeleds_msg(); 
    3765  
    3766         resizeWindow();  
    3767          
    3768         $("#div_message_scroll_"+ID).scrollTo( 0, 400, {queue:true} ); 
    3769 } 
    37701891  
    37711892function changeLinkState(el,state){ 
     
    38071928                        } 
    38081929        } 
    3809 } 
    3810  
    3811 function mySplit( val ) { 
    3812         return val.split( /,\s*/ ); 
    3813 } 
    3814  
    3815 function extractLast( term ) { 
    3816         return mySplit( term ).pop(); 
    38171930} 
    38181931 
     
    45162629        .end().filter(".cco-button").click(function(){ 
    45172630                show_hide(content.find(".cco-tr"), $(this)); 
    4518                 change_text($(this).find(".ui-button-text"), get_lang("Add BCC"), get_lang('Remove CCo')); 
    45192631        }) 
    45202632        //Botï¿œo Adicionar/Remover CC 
    45212633        .end().filter(".cc-button").click(function(){ 
    45222634                show_hide(content.find(".cc-tr"), $(this)); 
    4523                 change_text($(this).find(".ui-button-text"), get_lang("Add CC"), get_lang('Remove CC')); 
    45242635        }) 
    45252636    //Botï¿œo Responder a 
     
    45272638        show_hide(content.find(".reply-to-tr"), $(this)); 
    45282639    }); 
    4529          
     2640 
     2641        content.find(".field-buttons").buttonset(); 
     2642 
    45302643        //BOTAO ENVIAR 
    45312644        content.find(".send").button({ 
    45322645                icons : { 
    4533                         primary : "expressomail-icon-send" 
     2646                        primary : "ui-icon-mail-closed" 
    45342647                } 
    45352648        }).click(function(){ 
     
    45472660        .end().find(".save").button({ 
    45482661                icons : { 
    4549                         primary : "expressomail-icon-save" 
     2662                        primary : "ui-icon-disk" 
    45502663                } 
    45512664        }).click(function(){ 
     
    45552668        .end().find(".return-recept").button({ 
    45562669                icons : { 
    4557                         primary : "expressomail-icon-read-confirmation" 
    4558                 } 
     2670                        primary : "ui-icon-transfer-e-w" 
     2671                }, 
     2672                text:false 
    45592673        }).click(function(){ 
    45602674                check_input(content.find('[name="input_return_receipt"]')); 
     
    45642678        .end().find(".important").button({ 
    45652679                icons : { 
    4566                         primary : "expressomail-icon-important" 
    4567                 } 
     2680                        primary : "ui-icon-notice" 
     2681                }, 
     2682                text:false 
    45682683        }).click(function(){ 
    45692684                check_input(content.find('[name="input_important_message"]')); 
     
    45732688        .end().find(".return_digital").button({ 
    45742689                icons : { 
    4575                         primary : "expressomail-icon-signature" 
    4576                 } 
     2690                        primary : "ui-icon-key" 
     2691                }, 
     2692                text:false 
    45772693        }).click(function(){ 
    45782694                check_input(content.find('[name="input_return_digital"]')); 
    4579                 $(this).toggleClass("expressomail-button-icon-ative"); 
    45802695        }) 
    45812696        //BOTAO EMAIL CRYPT 
    45822697        .end().find(".return_cripto").button({ 
    45832698                icons : { 
    4584                         primary : "expressomail-icon-encryption" 
    4585                 } 
     2699                        primary : "ui-icon-locked" 
     2700                }, 
     2701                text:false 
    45862702        }).click(function(){ 
    45872703                check_input(content.find('[name="input_return_cripto"]')); 
    4588                 $(this).toggleClass("expressomail-button-icon-ative"); 
    45892704        }); 
    45902705         
     2706        content.find(".flags-buttons").buttonset(); 
     2707 
    45912708        content.find(".attachment td").filter(".value").prepend(DataLayer.render("../prototype/modules/mail/templates/attachment.ejs", {ID:ID})); 
    45922709        var fileUploadMSG = $('#fileupload_msg'+ID); 
Note: See TracChangeset for help on using the changeset viewer.