Ignore:
Timestamp:
05/07/10 17:20:32 (14 years ago)
Author:
amuller
Message:

Ticket #1059 - Tornando draw_box orientado a objetos

Location:
trunk/expressoMail1_2/js/jscode
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/jscode/draw_api_folders.js

    r2735 r2743  
    319319        if(current_page != 1) { 
    320320                lnk_page = document.createElement("A"); 
    321                 lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_prebox();draw_box(data, get_current_folder());});"); 
     321                lnk_page.setAttribute("href", "javascript:current_page=1;kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});"); 
    322322        } 
    323323        else { 
     
    358358                        msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 
    359359                        msg_range_end = (i*preferences.max_email_per_page); 
    360                         lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_prebox();draw_box(data, get_current_folder());});"); 
     360                        lnk_page.setAttribute("href", "javascript:current_page="+i+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});"); 
    361361                } 
    362362 
     
    375375                msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); 
    376376                msg_range_end = (total_pages*preferences.max_email_per_page); 
    377                 lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_prebox();draw_box(data, get_current_folder());});"); 
     377                lnk_page.setAttribute("href", "javascript:current_page="+total_pages+";kill_current_box(); draw_paging("+num_msgs+"); proxy_mensagens.messages_list(get_current_folder(),"+msg_range_begin+","+msg_range_end+",'"+sort_box_type+"','"+search_box_type+"',"+sort_box_reverse+","+preferences.preview_msg_subject+","+preferences.preview_msg_tip+",function handler(data){draw_box.draw_newBox(data, get_current_folder());});"); 
    378378        } 
    379379        else { 
     
    833833 
    834834var handler_draw_box = function(data){ 
    835     draw_prebox(); 
    836     draw_box( expresso.connector.unserialize( data ), 'INBOX', true); 
     835    draw_box.draw_newBox( expresso.connector.unserialize( data ), 'INBOX', true); 
    837836//alternate_border(0); 
    838837}; 
     
    844843    { 
    845844        current_folder = folder; 
    846         draw_prebox(true); 
     845        draw_box.prepare_box(true); 
    847846        Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>'; 
    848847        var handler_draw_box = function(data) 
    849848        { 
    850             draw_box(data, folder, true); 
     849            draw_box.headers_msgs = data; 
     850            draw_box.draw_box_messages(data, folder, true); 
    851851            draw_paging(data.num_msgs); 
    852852            Element("tot_m").innerHTML = data.num_msgs; 
     
    864864            numBox++; 
    865865            create_border(folder_name,numBox.toString()); 
    866             draw_prebox(false); 
    867             draw_box(data, current_folder); 
     866            draw_box.draw_newBox(data, current_folder); 
    868867            alternate_border(numBox); 
    869868            return true; 
     
    879878    var message_header = Element("message_header_"+search); 
    880879    var handler_draw_box = function(data){ 
    881         draw_prebox(true); 
    882         draw_box(data, current_folder); 
     880        draw_box.draw_newBox(data, current_folder); 
    883881        draw_paging(Element('tot_m').innerHTML); 
    884882        //Mostrar as msgs nao lidas de acordo com o filtro de relevancia 
     
    11651163        return tr_element; 
    11661164} 
    1167  
    1168 function draw_prebox(alternate){ 
     1165function draw_folder(){ 
     1166} 
     1167 
     1168draw_folder.prototype.draw_newBox = function(headers_msgs,msg_folder,alternate){ 
     1169        this.headers_msgs = headers_msgs; 
     1170        this.prepare_box(alternate); 
     1171        this.draw_box_messages(headers_msgs,msg_folder); 
     1172} 
     1173 
     1174draw_folder.prototype.prepare_box = function(alternate){ 
    11691175        if (alternate) 
    11701176                kill_current_box(); 
     
    12911297        openTab.content_id[numBox].appendChild(_divScroll); 
    12921298        _divScroll.appendChild(loading_img); 
    1293 } 
    1294  
    1295 folderHeaders = []; 
    1296 // Draw the inbox and another folders 
    1297 function draw_box(headers_msgs, msg_folder){ 
     1299}; 
     1300 
     1301draw_folder.prototype.draw_box_messages = function(msg_folder){ 
    12981302        openTab.content_id[numBox] = document.getElementById("content_id_"+numBox); 
    12991303        var _divScroll = document.getElementById("divScrollMain_"+numBox); 
     
    13031307        var f_unseen = 0; 
    13041308        openTab.imapBox[numBox] = msg_folder; 
    1305         folderHeaders[msg_folder] = headers_msgs; 
    1306         if (headers_msgs.num_msgs == 0){ 
     1309        if (this.headers_msgs.num_msgs == 0){ 
    13071310                var tr_info = document.createElement("TR"); 
    13081311                var td_info = createAndSet("TD",['colspan','background','align','padding','fontWeight','fontSize'], 
     
    13141317 
    13151318 
    1316         for (var i=0; i < headers_msgs.length; i++){ 
    1317                 if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N')) 
     1319        for (var i=0; i < this.headers_msgs.length; i++){ 
     1320                if ((this.headers_msgs[i].Unseen == 'U') || (this.headers_msgs[i].Recent == 'N')) 
    13181321                        f_unseen++; 
    1319                 tr_element = make_tr_message(headers_msgs[i], msg_folder); 
     1322                tr_element = make_tr_message(this.headers_msgs[i], msg_folder); 
    13201323                if (tr_element){ 
    13211324                        tbody_element.appendChild(tr_element); 
     
    13241327                if ( _dragArea == null ) 
    13251328                        _dragArea = new DragArea( ); 
    1326                 _dragArea.makeDragged(tr_element, headers_msgs[i].msg_number, headers_msgs[i].subject, true); 
    1327         } 
    1328  
    1329         if ((preferences.use_shortcuts == '1') && (headers_msgs[0])) 
    1330                 select_msg(headers_msgs[0].msg_number, 'null', true); 
     1329                _dragArea.makeDragged(tr_element, this.headers_msgs[i].msg_number, this.headers_msgs[i].subject, true); 
     1330        } 
     1331 
     1332        if ((preferences.use_shortcuts == '1') && (this.headers_msgs[0])) 
     1333                select_msg(this.headers_msgs[0].msg_number, 'null', true); 
    13311334 
    13321335        var tdFolders  =  Element("folderscol"); 
    13331336        tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : ""; 
    1334         draw_footer_box(headers_msgs.num_msgs); 
     1337        draw_footer_box(this.headers_msgs.num_msgs); 
    13351338        Element('main_table').style.display = ''; 
    13361339        if(debug) { 
     
    13451348        } 
    13461349        else if(msg_folder && msg_number){ 
    1347                 proxy_mensagens.get_msg(headers_msgs, url_encode(msg_folder),true, show_msg); 
     1350                proxy_mensagens.get_msg(this.headers_msgs, url_encode(msg_folder),true, show_msg); 
    13481351                Element('msg_folder').value = ''; 
    13491352                Element('msg_number').value = ''; 
     
    13701373        if(Element("table_quota")) 
    13711374                expresso.connector.loadScript("jscode/InfoQuota"); 
     1375        alternate_border(numBox); 
    13721376}; 
    13731377 
    1374  
    1375  
     1378draw_box = new draw_folder(); 
  • trunk/expressoMail1_2/js/jscode/draw_api_messages.js

    r2731 r2743  
    3333 
    3434var translatedFolders = new Map(); 
    35  
    36 /* Class draw_message */ 
    37 function draw_message(){ 
    38         var id=0; 
    39 } 
    40 draw_message.prototype.createNxtPrevButtons = function(msg_folder,folder_id){ 
    41         var next_previous_msg_td = createAndSet("TD",[ "noWrap", "align", "width" ], [ "true", "right", "40px"]); 
    42         var img_next_msg = createAndSet("IMG", [ 'id', 'src', 'title' ], [ 
    43                         'msg_opt_next_' + this.id, 
    44                         URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.button.png', 
    45                         get_lang('Next') ]); 
    46         img_next_msg.style.cursor = 'pointer'; 
    47  
    48         var folder = document.getElementById(folder_id); 
    49         if (folder){ // mensagem local criptografada nao tem ID da pasta local 
    50                 if (folder.nextSibling){ 
    51                         var nextMsgBox = folder.nextSibling.name?folder.nextSibling.name:msg_folder; 
    52  
    53                         if (nextMsgBox == "INBOX/decifradas")// teste para ver se a mensagem vem da pasta oculta decifradas 
    54                                 nextMsgBox = get_current_folder(); 
    55  
    56                         img_next_msg.onclick = function() 
    57                         { 
    58                                 openTab.type[currentTab] = 2; 
    59                                 if ( nextMsgBox == undefined ) 
    60                                        nextMsgBox = current_folder; 
    61                                 var allHeaders = folderHeaders[nextMsgBox]; 
    62                                 for (i in allHeaders) 
    63                                         if (allHeaders[i].msg_number == folder.nextSibling.id){ 
    64                                                 var nextHeader = allHeaders[i]; 
    65                                                 break; 
    66                                         } 
    67                                 proxy_mensagens.get_msg(nextHeader,nextMsgBox,true,show_msg,currentTab); 
    68                         }; 
    69                 } 
    70                 else 
    71                 { 
    72                         img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png'; 
    73                         img_next_msg.style.cursor = 'default'; 
    74                 } 
    75         } 
    76         else 
    77         { 
    78                 img_next_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/down.gray.button.png'; 
    79                 img_next_msg.style.cursor = 'default'; 
    80                 if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
    81                 { 
    82                         img_next_msg.onclick = function() 
    83                         { 
    84                                 delete_border(this.id); 
    85                         }; 
    86                 } 
    87         } 
    88         var img_space = document.createElement("SPAN"); 
    89         img_space.innerHTML = "&nbsp;"; 
    90         var img_previous_msg = createAndSet("IMG",['id','src','title'],['msg_opt_previous_' + this.id, 
    91                         URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.button.png', 
    92                         get_lang('Previous')]); 
    93         img_previous_msg.style.cursor = 'pointer'; 
    94  
    95         if (!folder){ 
    96                 delete_border(this.id); 
    97                 return; 
    98         } 
    99         if (folder){ // mensagem local criptografada nao tem this.id da pasta local 
    100                 if (folder.previousSibling) 
    101                 { 
    102                         var previousMsgBox = folder.previousSibling.name?folder.previousSibling.name:msg_folder; 
    103  
    104                         if (previousMsgBox == "INBOX/decifradas") // teste para ver se a mensagem vem da pasta oculta decifradas 
    105                                 previousMsgBox = get_current_folder(); 
    106  
    107                         img_previous_msg.onclick = function() 
    108                         { 
    109                                 openTab.type[currentTab] = 2; 
    110                                 if ( previousMsgBox == undefined ) 
    111                                        previousMsgBox = current_folder; 
    112                                 var allHeaders = folderHeaders[previousMsgBox]; 
    113                                 for (i in allHeaders) 
    114                                         if (allHeaders[i].msg_number == folder.previousSibling.id){ 
    115                                                 var previousHeader = allHeaders[i]; 
    116                                                 break; 
    117                                         } 
    118                                 proxy_mensagens.get_msg(previousHeader,previousMsgBox,true,show_msg,currentTab); 
    119                         }; 
    120                 } 
    121                 else 
    122                 { 
    123                         img_previous_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.gray.button.png'; 
    124                         img_previous_msg.style.cursor = 'default'; 
    125                 } 
    126         } 
    127         else 
    128         { 
    129                 img_previous_msg.src = URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/up.gray.button.png'; 
    130                 img_previous_msg.style.cursor = 'default'; 
    131                 if (!proxy_mensagens.is_local_folder(get_current_folder()) && !(msg_folder == "INBOX/decifradas")) // testa se a mensagem e local 
    132                 { 
    133                         img_previous_msg.onclick = function() 
    134                         { 
    135                                 delete_border(this.id); 
    136                         }; 
    137                 } 
    138         } 
    139         next_previous_msg_td.appendChild(img_previous_msg); 
    140         next_previous_msg_td.appendChild(img_space); 
    141         next_previous_msg_td.appendChild(img_next_msg); 
    142         return next_previous_msg_td; 
    143  
    144 }; 
    145 var idx_cc = 0; 
    146 draw_message.prototype.draw_plugin_cc = function(addrs) 
    147 { 
    148     expresso.connector.loadScript("jscode/ccQuickAdd"); 
    149     var id=this.id; 
    150  
    151     var array_addrs = ''; 
    152     var array_name      = ''; 
    153     var cc_data = new Array(); 
    154     if(typeof(addrs.name) != 'undefined') { 
    155         array_name      = LTrim(addrs.name).split(" "); 
    156         array_addrs = new Array(addrs.email); 
    157     } 
    158     else { 
    159         array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" ")); 
    160         array_name      = LTrim(array_addrs[0]).replace('"','').split(" "); 
    161     } 
    162  
    163     var _split = array_name[0].split('@'); 
    164     cc_data[0] = _split[0]; 
    165     cc_data[1] = _split[0]; 
    166     cc_data[2] = ''; 
    167  
    168     for (i=1; i < array_name.length; i++) 
    169         cc_data[2] += array_name[i] + " "; 
    170  
    171  
    172     if(array_addrs.length > 1) 
    173         cc_data[3] = array_addrs[1] ? array_addrs[1].replace("&lt;",'').replace("&gt;",'') : ''; 
    174     else 
    175         cc_data[3] = array_addrs[0]; 
    176  
    177     var sm_envelope_img1 = '<img style="cursor:'+ (is_ie ? 'hand' : 'pointer') +'" title="' + get_lang("Add Contact") + 
    178     '" onclick="ccQuickAddOne.showList(\''+cc_data+'\')" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/user_card.png">'; 
    179     var to_addybook_add = "<SPAN id='insert_plugin_"+idx_cc+"_"+id+"'>"; 
    180     to_addybook_add += addrs; 
    181     to_addybook_add +=  sm_envelope_img1; 
    182     idx_cc++; 
    183     to_addybook_add += "</SPAN>"; 
    184     return to_addybook_add; 
    185 }; 
    186  
    187  
    188 draw_message.prototype.show_signature_certificate_data = function(){ 
    189         var _height = Element("div_message_scroll_"+this.id).style.height; 
    190         _height = parseInt(_height.replace("px","")); 
    191         var _offset = 130; 
    192         if (this.value == 'more_cert'){ 
    193                 //this.innerHTML += "<b><u>Mais Informaᅵᅵes</u></b>"; 
    194                 this.value = 'hide_cert'; 
    195                 Element("div_message_scroll_"+this.id).style.height = (_height + _offset)+"px"; 
    196                 Element('tr_signature_'+this.id).style.display = 'none'; 
    197                 Element('td_signature_'+this.id).style.display = 'none'; 
    198  
    199         } 
    200         else{ 
    201                 //this.innerHTML += "Mais Informaᅵᅵes"; 
    202                 this.value = 'more_cert'; 
    203                 Element("div_message_scroll_"+this.id).style.height = (_height - _offset)+"px"; 
    204                 Element('tr_signature_'+this.id).style.display = ''; 
    205                 Element('td_signature_'+this.id).style.display = ''; 
    206         } 
    207 }; 
    208  
    209 draw_message.prototype.putSignature = function(info_msg,tdx){ 
    210         var tr_signature = document.createElement("TR"); 
    211         var td_signature = document.createElement("TD"); 
    212         td_signature.className = 'tr_message_header'; 
    213         tr_signature.id = 'tr_signature_'+this.id; 
    214         td_signature.colSpan = "5"; 
    215         tr_signature.style.display = 'none'; 
    216  
    217         for (i=0; i < info_msg.signature.length; i++) 
    218                 td_signature.innerHTML += '<span>'+info_msg.signature[i]+'</span> <br /> '; 
    219         td_signature.innerHTML += '<hr></hr>'; 
    220         var signature_status_pos = info_msg.signature[0].indexOf('Message untouched'); 
    221         td_signature.id = "td_signature_"+this.id; 
    222         if(signature_status_pos < 0 ) 
    223         { 
    224                 tdx.innerHTML += '&nbsp;<img style="cursor:pointer" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_error.gif" title="'+get_lang("Details")+'" onclick="show_signature_certificate_data(\'' + this.id + '\')">'; 
    225                 tr_signature.style.display = ''; 
    226         } 
    227         else 
    228         { 
    229                 tdx.innerHTML += '&nbsp;<img style="cursor:pointer" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed_table.gif" title="'+get_lang("Details")+'" onclick="show_signature_certificate_data(\'' + this.id + '\')">'; 
    230         } 
    231         tr_signature.appendChild(td_signature); 
    232         return tr_signature; 
    233     }; 
    234 draw_message.prototype.make_options_message = function(info_msg, tbody_message){ 
    235         var tr0 = document.createElement("TR"); 
    236         tr0.className = "tr_message_header"; 
    237         var td0 = document.createElement("TD"); 
    238         var table_message_options = createAndSet("TABLE",['border','width','class'],["0","100%",'table_message']); 
    239         var tbody_message_options = document.createElement("TBODY"); 
    240         var tr = document.createElement("TR"); 
    241         var td = document.createElement("TD"); 
    242         td.setAttribute("noWrap","true"); 
    243         var _name = ''; 
    244         var menuHidden = Element("folderscol").style.display == 'none' ? true : false; 
    245  
    246         var folder_id = info_msg.msg_number; 
    247         var folder = document.getElementById(folder_id); 
    248         if (!folder){ 
    249                 delete_border(this.id); 
    250                 return false; 
    251         } 
    252  
    253         var next_previous_msg_td = this.createNxtPrevButtons(info_msg.msg_folder,folder_id); 
    254         if (typeof(next_previous_msg_td) == 'undefined') 
    255                 return false; 
    256  
    257  
    258         var _maxChar = menuHidden ? 40 : 15; 
    259  
    260         if (info_msg.from.name) 
    261         { 
    262                 var spanName = document.createElement("SPAN"); 
    263                 spanName.innerHTML = info_msg.from.name; 
    264                 _name = spanName.innerHTML.length > _maxChar ? spanName.innerHTML.substring(0,_maxChar) + "..." : spanName.innerHTML; 
    265         } 
    266         else 
    267                 _name = info_msg.from.email.length > _maxChar ? info_msg.from.email.substring(0,_maxChar) + "..." : info_msg.from.email; 
    268         var id = this.id; 
    269         td.innerHTML = _name.bold() + ', ' + info_msg.udate; 
    270         if (info_msg.attachment.names.length > 0) 
    271                 td.innerHTML += "&nbsp<img style='cursor:pointer' onclick='javascript:Element(\"option_hide_more_"+id+"\").onclick()' src ='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/clip.gif' title='"+info_msg.attachment.names+"'>"; 
    272  
    273         if (typeof(info_msg.signature) == 'string') 
    274         { 
    275                 if (info_msg.signature != "void") 
    276                         td.innerHTML += '&nbsp;<img style="cursor:pointer" onclick="alert(\''+ get_lang("This message is signed, and you can trust.") + info_msg.signature +'\');" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/signed.gif">'; 
    277                 else 
    278                         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='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/invalid.gif'>"; 
    279         } 
    280  
    281         if (info_msg.DispositionNotificationTo) 
    282         { 
    283                 td.innerHTML += '&nbsp;<img style="cursor:pointer" alt="'+ get_lang('Message with read notification') + '" title="'+ get_lang('Message with read notification') + '" src="' + URL_SERVER + 'expressoMail1_2/templates/'+template+'/images/notification.gif">'; 
    284         } 
    285  
    286         // NORMAL MSG 
    287         if(info_msg.Draft != 'X') 
    288         { 
    289                 var options = createAndSet("TD",['noWrap','width','align'],['true','30%','right']); 
    290                 var option_hide_more = createAndSet("SPAN",['class','value','id'],['message_options','more_options','option_hide_more_'+id],get_lang('show details')); 
    291                 option_hide_more.onclick = function(){ 
    292                         try{ 
    293                                 var _height = Element("div_message_scroll_"+id).style.height; 
    294                         } 
    295                         catch(e){ 
    296                                 return; 
    297                         } 
    298                         _height = parseInt(_height.replace("px","")); 
    299                         var _offset = 35; 
    300                         if (this.value != 'hide_options'){ 
    301                                 this.innerHTML = "<b><u>"+get_lang('hide details')+"</u></b>"; 
    302                                 this.value = 'hide_options'; 
    303                                 Element("div_message_scroll_"+id).style.height = (_height - _offset)+"px"; 
    304                                 Element('table_msg_details_'+id).style.display = ''; 
    305  
    306                         } 
    307                         else{ 
    308                                 this.innerHTML = get_lang('show details'); 
    309                                 this.value = 'more_options'; 
    310                                 Element("div_message_scroll_"+id).style.height = (_height + _offset)+"px"; 
    311                                 Element('table_msg_details_'+id).style.display = 'none'; 
    312                         } 
    313                 }; 
    314                 var option_mark = createAndSet("TD",['width','align'],['50%','left']); 
    315  
    316                 var option_mark_as_unseen = '<span class="message_options" onclick="changeLinkState(this,\'seen\');set_messages_flag(\'unseen\','+ 
    317                                                 folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Unseen")+ 
    318                                                 '.\');">'+get_lang("Unseen")+'</span>, '; 
    319  
    320                 if (info_msg.Flagged == "F") 
    321                         var option_mark_important = '<span class="message_options" onclick="changeLinkState(this,\'important\');set_messages_flag(\'unflagged\','+ 
    322                                                         folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Normal")+ 
    323                                                         '.\');">'+get_lang("Normal")+'</span>'; 
    324                 else 
    325                         var option_mark_important = '<span class="message_options" onclick="changeLinkState(this,\'normal\');set_messages_flag(\'flagged\','+folder_id+');write_msg(\''+get_lang('Message marked as ')+get_lang("Important")+ 
    326                                                                     '.\');">'+get_lang("Important")+'</span>'; 
    327                 option_mark.innerHTML = option_mark_as_unseen+option_mark_important; 
    328  
    329                 var option_forward = createAndSet("SPAN",['id','class'],['msg_opt_forward_'+this.id, 'message_options'],get_lang('Forward')); 
    330                 option_forward.onclick = function(){new_message('forward', this.id);}; 
    331                 appendChilds(options,option_hide_more,createAndSet('SPAN',false,false,'&nbsp;|&nbsp;'),option_forward); 
    332  
    333                 var option_reply_options = createAndSet("IMG",['id', 'src', 'value'],['msg_opt_reply_options_'+id,URL_SERVER+'expressoMail1_2/templates/default/images/down.png','show']); 
    334                 option_reply_options.onmouseover = function(){ 
    335                                 option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/over.png'; 
    336                 }; 
    337                 option_reply_options.onmouseout = function(){ 
    338                         if (this.value == 'show') 
    339                         { 
    340                                 option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/down.png'; 
    341                         } 
    342                         else 
    343                         { 
    344                                 option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/pressed.png'; 
    345                         } 
    346                 }; 
    347                 option_reply_options.onclick = function(){ 
    348                         if (this.value != 'hide'){ 
    349                                 this.value = 'hide'; 
    350                                 option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/pressed.png'; 
    351                                 Element('tr_other_options_'+id).style.display = ''; 
    352  
    353                         } 
    354                         else{ 
    355                                 this.value = 'show'; 
    356                                 option_reply_options.src= URL_SERVER+'expressoMail1_2/templates/default/images/down.png'; 
    357                                 Element('tr_other_options_'+id).style.display = 'none'; 
    358                         } 
    359                 }; 
    360  
    361                 var _option_reply = createAndSet("SPAN",['id','class'],['msg_opt_reply_'+id,'message_options'],get_lang('Reply')); 
    362                 _option_reply.onclick = function(){new_message('reply_with_history', id);}; 
    363  
    364                 appendChilds(options,createAndSet('SPAN',false,false,'&nbsp;|&nbsp;'),option_reply_options,_option_reply); 
    365                 appendChilds(tr,td,option_mark,options,next_previous_msg_td); 
    366                 tbody_message_options.appendChild(tr); 
    367  
    368                 ////////// OTHER OPTIONS //////////////////// 
    369                 var _tr_other_options = createAndSet("TR",['id'],['tr_other_options_' + id]); 
    370                 _tr_other_options.style.display = 'none'; 
    371  
    372                 var div_other_options = document.createElement("DIV"); 
    373  
    374                 var option_mark_as      = '<span>'+get_lang("Mark as")+'</span>: '; 
    375                 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>, '; 
    376                 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>, '; 
    377                 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> | '; 
    378  
    379                 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>'; 
    380                 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+'");>'+get_lang("Reply to all")+'</span> | '; 
    381  
    382                 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> | </div>'; 
    383  
    384                 div_other_options.innerHTML = option_reply_to_all + option_reply_to_all_without_history + option_reply_without_history; 
    385                 if (use_spam_filter) { 
    386                         if(info_msg.msg_folder == 'INBOX'+cyrus_delimiter+'Spam') 
    387                                 div_other_options.innerHTML += ' | <span class="reply_options" onclick="nospam('+info_msg.msg_number+',\'null\', \''+info_msg.msg_folder+'\')";>'+get_lang("Not Spam")+'</span>'; 
    388                         else 
    389                                 div_other_options.innerHTML += ' | <span class="reply_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\')";>'+get_lang("Mark as Spam")+'</span>'; 
    390                 } 
    391  
    392                 var td_other_options = createAndSet("TD",['colSpan','align','noWrap'],['3','right','true']); 
    393                 td_other_options.appendChild(div_other_options); 
    394  
    395                 _tr_other_options.appendChild(td_other_options); 
    396                 tbody_message_options.appendChild(_tr_other_options); 
    397                 ////////// END OTHER OPTIONS //////////////// 
    398                 table_message_options.appendChild(tbody_message_options); 
    399                 td0.appendChild(table_message_options); 
    400                 tr0.appendChild(td0); 
    401                 tbody_message.appendChild(tr0); 
    402                 if (info_msg.signature && info_msg.signature.length > 0) 
    403                 { 
    404                         tbody_message.appendChild(putSignature(this.id,info_msg,td)); 
    405                 } 
    406         } 
    407         else    // IF DRAFT 
    408         { 
    409                 var options = createAndSet('TD',['width','noWrap','align'],['1%','true','right']); 
    410                 var option_hide_more = createAndSet("SPAN",['class','value','id'],['message_options','more_options','option_hide_more_'+this.id],get_lang('Show details')); 
    411                 option_hide_more.onclick = function(){ 
    412                         var _height = Element("div_message_scroll_"+id).style.height; 
    413                         _height = parseInt(_height.replace("px","")); 
    414                         var _offset = 35; 
    415                         if (this.value != 'hide_options'){ 
    416                                 this.innerHTML = "<b><u>"+get_lang('Hide details')+"</u></b>"; 
    417                                 this.value = 'hide_options'; 
    418                                 Element("div_message_scroll_"+id).style.height = (_height - _offset)+"px"; 
    419                                 Element('table_msg_details_'+id).style.display = ''; 
    420                         } 
    421                         else{ 
    422                                 this.innerHTML = get_lang('show details'); 
    423                                 this.value = 'more_options'; 
    424                                 Element("div_message_scroll_"+id).style.height = (_height + _offset)+"px"; 
    425                                 Element('table_msg_details_'+id).style.display = 'none'; 
    426                         } 
    427                 }; 
    428                 var option_edit = createAndSet('SPAN',['class'],['message_options'], get_lang('Edit')); 
    429                 option_edit.onclick= function () { new_message('edit',this.id); }; 
    430                 appendChilds(options, option_hide_more, createAndSet('SPAN',false,false,"&nbsp;|&nbsp;"), option_edit); 
    431  
    432                 tbody_message_options.appendChild(appendChilds(tr, td, options, next_previous_msg_td)); 
    433                 table_message_options.appendChild(tbody_message_options); 
    434                 td0.appendChild(table_message_options); 
    435                 tr0.appendChild(td0); 
    436                 tbody_message.appendChild(tr0); 
    437         } 
    438         return true; 
    439 }; 
    440  
    441 draw_message.prototype.draw_message_header = function(header,border_id){ 
    442         this.id = border_id; 
    443         var defaultWidth = document.body.offsetWidth - 37; 
    444         if(Element("folderscol").style.display != 'none') 
    445                 defaultWidth -= Element("folderscol").offsetWidth; 
    446  
    447         var table_message = createAndSet("TABLE",['id','border','width'],['table_message_'+border_id,"0",defaultWidth]); 
    448         table_message.id = 'table_message_'+border_id; 
    449         var tbody_message = document.createElement("TBODY"); 
    450         if (!this.make_options_message(header,tbody_message)) 
    451                 return; 
    452  
    453         table_message.appendChild(tbody_message); 
    454         var content = document.getElementById('content_id_' + border_id); 
    455         content.appendChild(table_message); 
    456         loading_img = content.appendChild(loading_img); 
    457 }; 
    458  
    459  
    460 draw_message.prototype.draw_message_body = function (info_msg){ 
    461         var defaultWidth = document.body.offsetWidth - 37; 
    462         if(Element("folderscol").style.display != 'none') 
    463                 defaultWidth -= Element("folderscol").offsetWidth; 
    464  
    465         var table_message = Element('table_message_'+this.id); 
    466         var tbody_message = table_message.childNodes[0]; 
    467  
    468         var tbody_message_others_options = document.createElement("TBODY"); 
    469         var tr1 = document.createElement("TR"); 
    470         tr1.className = "tr_message_header"; 
    471         var td1 = createAndSet('TD',['width'],['7%'],get_lang("From: ")); 
    472         td1.appendChild(deny_email(info_msg.from.email)); 
    473         var id=this.id; 
    474  
    475         if (info_msg.sender){ 
    476                 var tr111 = document.createElement("TR"); 
    477                 tr111.className = "tr_message_header"; 
    478                 var td111 = createAndSet('TD',['noWrap'],['true'],get_lang("Sent by")+": "); 
    479                 td111.appendChild(deny_email(info_msg.sender.email)); 
    480                 var sender = document.createElement("TD"); 
    481                 sender.className = "header_message_field"; 
    482                 sender.id = "sender_"+id; 
    483                 sender.innerHTML += this.draw_plugin_cc(info_msg.sender.full); 
    484                 var sender_values = createAndSet("INPUT",['id','type','value'],["sender_values_"+id,"HIDDEN",info_msg.sender.full]); 
    485  
    486                 tbody_message_others_options.appendChild(appendChilds(tr111, td111, sender, sender_values)); 
    487         } 
    488  
    489         var from = createAndSet('TD',['id','class'],["from_"+this.id,"header_message_field"],info_msg.from.full); 
    490  
    491         if (info_msg.Draft != "X"){ 
    492                 from.innerHTML += this.draw_plugin_cc(info_msg.from); 
    493                 tbody_message_others_options.appendChild(tr1); 
    494         } 
    495         var from_values = createAndSet('INPUT',['id','type','value'],["from_values_"+id,"HIDDEN",info_msg.from.full]); 
    496         var local_message = createAndSet("INPUT",['id','name','type','value'],["is_local_"+this.id,"is_local","HIDDEN",(info_msg.local_message)?"1":"0"]); 
    497         appendChilds(tr1,td1,from,from_values,local_message); 
    498  
    499         if (info_msg.reply_to){ 
    500                 var tr11 = document.createElement("TR"); 
    501                 tr11.className = "tr_message_header"; 
    502                 var _td11 = createAndSet('TD',['noWrap'],['true'],get_lang("Reply to")+": "); 
    503                 var _reply_to = createAndSet('TD',['id', 'class'],["reply_to_"+id, "header_message_field"],this.draw_plugin_cc(info_msg.reply_to)); 
    504                 var _reply_to_values = createAndSet('INPUT',['id', 'type', 'value'],["reply_to_values_"+id,"HIDDEN",info_msg.reply_to]); 
    505                 tbody_message_others_options.appendChild(appendChilds(tr11,_td11,_reply_to,_reply_to_values)); 
    506         } 
    507         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    508         var tr2 = document.createElement("TR"); 
    509         tr2.className = "tr_message_header"; 
    510         var td2 = document.createElement("TD"); 
    511         td2.innerHTML = get_lang("To: "); 
    512         var to = document.createElement("TD"); 
    513         to.id = "to_"+id; 
    514  
    515         var _to_values = createAndSet('INPUT',['id', 'type', 'value'],["to_values_"+id, "HIDDEN", info_msg.toaddress2]); 
    516         // Salva a pasta da mensagem 
    517         var _input_cfolder = createAndSet('INPUT',['id', 'name', 'type', 'value'],["input_folder_"+id, "input_folder", "hidden", info_msg.msg_folder]); 
    518         td2.appendChild(_input_cfolder); 
    519  
    520         toaddress_array[id] = info_msg.toaddress2.split(","); 
    521         if (toaddress_array[id].length > 1){ 
    522                 to.innerHTML += this.draw_plugin_cc(toaddress_array[id][0]); 
    523                 var _div_toaddrs = createAndSet('SPAN',['id','style'],["div_toaddress_"+id,'display: inline']," (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+id+"','to');>"+get_lang('more')+"</a>)"); 
    524                 to.appendChild(_div_toaddrs); 
    525         } 
    526         else { 
    527                 to.innerHTML += this.draw_plugin_cc(toaddress_array[id]); 
    528         } 
    529         to.className = "header_message_field"; 
    530         tbody_message_others_options.appendChild(appendChilds(tr2,td2,to,_to_values)); 
    531  
    532         if (info_msg.cc){ 
    533                 var tr3 = document.createElement("TR"); 
    534                 tr3.className = "tr_message_header"; 
    535                 var td3 = document.createElement("TD"); 
    536                 td3.innerHTML = "CC: "; 
    537                 var cc = createAndSet("TD",['id', 'class'],["cc_"+this.id,"header_message_field"]); 
    538  
    539                 var cc_values = createAndSet("INPUT",['id', 'type', 'value'],["cc_values_"+this.id, "HIDDEN", info_msg.cc]); 
    540                 ccaddress_array[this.id] = info_msg.cc.split(",");               
    541                 if (ccaddress_array[this.id].length > 1){ 
    542                         var div_ccaddress = document.createElement("SPAN"); 
    543                         div_ccaddress.id = "div_ccaddress_"+this.id; 
    544                         var div_ccaddress_full = createAndSet("SPAN",['id', 'style'],["div_ccaddress_full_"+this.id, "display: inline"]); 
    545                         cc.innerHTML = this.draw_plugin_cc(ccaddress_array[this.id][0]); 
    546                         div_ccaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+this.id+"','cc');>"+get_lang('more')+"</a>)"; 
    547                         cc.appendChild(div_ccaddress); 
    548                 } 
    549                 else{ 
    550                         cc.innerHTML = this.draw_plugin_cc(info_msg.cc); 
    551                 } 
    552                 tbody_message_others_options.appendChild(appendChilds(tr3,td3,cc,cc_values)); 
    553         } 
    554  
    555         if (info_msg.bcc) 
    556         { 
    557                 tbody_message_others_options.appendChild(this.getBcc(info_msg.bcc)); 
    558         } 
    559  
    560         var tr4 = document.createElement("TR"); 
    561         tr4.className = "tr_message_header"; 
    562         var td4 = document.createElement("TD"); 
    563         td4.innerHTML = get_lang("Date: "); 
    564         var msgFull = info_msg.fulldate.split(' '); 
    565  
    566         var date = createAndSet('TD',['id','class'],["date_"+id,"header_message_field"],info_msg.fulldate); 
    567         var date_day = createAndSet('INPUT',['id', 'type', 'value'],["date_day_"+id, "HIDDEN", msgFull[0]]); 
    568         var date_hour = createAndSet('INPUT',['id', 'type', 'value'],["date_hour_"+id, "HIDDEN", msgFull[1]]); 
    569         tbody_message_others_options.appendChild(appendChilds(tr4,td4,date,date_day,date_hour)); 
    570  
    571         var tr5 = document.createElement("TR"); 
    572         tr5.className = "tr_message_header"; 
    573         var td5 = document.createElement("TD"); 
    574         td5.innerHTML = get_lang("Subject"); 
    575         var subject = createAndSet('TD',['id', 'class'],["subject_"+this.id, "header_message_field"],info_msg.subject); 
    576         tbody_message_others_options.appendChild(appendChilds(tr5,td5,subject)); 
    577         if (info_msg.attachments.length > 0){ 
    578                 var tr6 = document.createElement("TR"); 
    579                 tr6.className = "tr_message_header"; 
    580                 var td6 = document.createElement("TD"); 
    581                 td6.innerHTML = get_lang("Attachments: "); 
    582  
    583                 var attachments = document.createElement("TD"); 
    584                 attachments.align='left'; 
    585                 td6.vAlign = "top"; 
    586  
    587                 var zipped_attachments = ''; 
    588                 if(info_msg.attachments.length >= 1) { 
    589                         var zipped_attachments  = createAndSet("TABLE",['style','cellPadding','cellSpacing'],['margin-bottom: 4px','0','0']); 
    590                         var td = document.createElement("TD"); 
    591                         if(info_msg.attachments.length > 1) { 
    592                                 var link_attachment     = document.createElement("A"); 
    593                                 if(proxy_mensagens.is_local_folder(current_folder)) 
    594                                         link_attachment.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    595                                 else 
    596                                         link_attachment.setAttribute("href", "javascript:download_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    597                                 link_attachment.innerHTML = " "+info_msg.attachments.length+' '+get_lang('files')+' :: '+get_lang('Download all atachments'); 
    598                                 link_attachment.innerHTML += '<BR>'; 
    599                                 td.appendChild(link_attachment); 
    600                         } 
    601                         var tr = document.createElement("TR"); 
    602                         if(parseInt(preferences.remove_attachments_function)) 
    603                         { 
    604                                 var del_attachments = document.createElement("A"); 
    605                                 del_attachments.setAttribute("href", "javascript:remove_all_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"')"); 
    606                                 del_attachments.innerHTML = get_lang('remove all attachments'); 
    607                                 del_attachments.appendChild(document.createElement('BR')); 
    608                                 td.appendChild(del_attachments); 
    609                                 tr.appendChild(td); 
    610                         } 
    611                         tr.appendChild(td); 
    612                         zipped_attachments.appendChild(tr); 
    613                         attachments.appendChild(zipped_attachments); 
    614                 } 
    615  
    616                 attachments.id = "attachments_" + this.id; 
    617                 for (var i=0; i<info_msg.attachments.length; i++){ 
    618                         var link_attachment = document.createElement("A"); 
    619                         link_attachment.setAttribute("href", proxy_mensagens.link_anexo(info_msg,i)); 
    620                         //link_attachment.setAttribute("href", "javascript:download_attachments('"+info_msg.msg_folder+"','"+info_msg.msg_number+"',"+i+",'"+info_msg.attachments[i].pid+"','"+info_msg.attachments[i].encoding+"')"); 
    621                         link_attachment.innerHTML = url_decode(info_msg.attachments[i].name); 
    622                         link_attachment.innerHTML += "&nbsp;"+borkb(info_msg.attachments[i].fsize); 
    623  
    624                         if((url_decode(info_msg.attachments[i].name).indexOf(".ics")!=-1) || (url_decode(info_msg.attachments[i].name).indexOf(".vcard")!=-1)){ 
    625                                 //Link para importar calendário 
    626                                 var link_import_attachment = createAndSet("IMG",['src','onclick','title','align','style'],["templates/"+template+"/images/new.png","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+"');",get_lang("Import to calendar"),"top","cursor: pointer"]); 
    627                                 var space = document.createElement("span"); 
    628                                 space.innerHTML = "&nbsp;"; 
    629                                 appendChilds(attachments,link_attachment,space,link_import_attachment); 
    630                         } 
    631                         else { 
    632                                 link_attachment.innerHTML += '<BR>'; 
    633                                 attachments.appendChild(link_attachment); 
    634                         } 
    635                 } 
    636                 tr6.appendChild(td6); 
    637                 tr6.appendChild(attachments); 
    638                 tbody_message_others_options.appendChild(tr6); 
    639         } 
    640  
    641  
    642         // BEGIN MAKE THE SCROLL HEIGHT 
    643         var bar = document.getElementById("toolbar"); 
    644         var offset = 0; 
    645         if(bar.style.visibility != 'hidden') 
    646                 offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight; 
    647         var div = document.createElement("DIV"); 
    648         div.id = "div_message_scroll_"+this.id; 
    649         div.style.background = 'WHITE'; 
    650         div.style.height = document.body.clientHeight - offset - 125; 
    651         div.style.overflow = "auto"; 
    652         div.style.width = defaultWidth - (is_ie ? 5 : 0); 
    653         // END MAKE THE SCROLL HEIGHT 
    654  
    655         var table_msg_details = createAndSet("TABLE",['id','width','class'],['table_msg_details_' + this.id,defaultWidth - 30,'table_message']); 
    656         table_msg_details.style.display = 'none'; 
    657         table_msg_details.appendChild(tbody_message_others_options); 
    658         div.appendChild(table_msg_details); 
    659  
    660         var tr = document.createElement("TR"); 
    661         var td = document.createElement("TD"); 
    662         td.colSpan = '2'; 
    663  
    664         var newBody = this.blockImage(info_msg,this.id,td); 
    665  
    666         td.appendChild(div); 
    667         tr.appendChild(td); 
    668         tbody_message.appendChild(tr); 
    669  
    670         //////////////////////////////////////////////////////////////////////////////////////////////////////   
    671         //Make the body message. 
    672         /////////////////////////////////////////////////////////////////////////////////////////////////////// 
    673         var tr = document.createElement("TR"); 
    674         tr.className = "tr_message_body"; 
    675         var td = document.createElement("TD"); 
    676         //td.setAttribute("colSpan","2"); 
    677         newBody = newBody.replace("<body","<span"); 
    678         newBody = newBody.replace("<BODY","<span"); 
    679         div.innerHTML+= "<span id='body_"+this.id+"' style='font-size:16px;'>"+newBody+"</span><br><br>"; 
    680         function mailto( link ) 
    681         { 
    682                 var mail = link.href.substr( 7 ); 
    683                 link.onclick = function( ) 
    684                 { 
    685                         new_message_to( mail ); 
    686                         return false; 
    687                 }; 
    688         } 
    689         var links = div.getElementsByTagName( 'a' ); 
    690         for ( var i = 0; i < links.length; i++ ) 
    691                 if ( links.item( i ).href.indexOf( 'mailto:' ) === 0 ) 
    692                         mailto( links.item( i ) ); 
    693                 else 
    694                 { 
    695                         if ( links.item( i ).href.indexOf( 'javascript:' ) !== 0 ) 
    696                                 links.item( i ).setAttribute( 'target', '_blank' ); 
    697                 } 
    698  
    699         if ((info_msg.thumbs)&&(info_msg.thumbs.length > 0)){ 
    700                 //////////////////////////////////////////////////////////////////////////////////////////////////////   
    701                 //Make the thumbs of the message. 
    702                 ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    703                 div.appendChild(this.getThumbs(info_msg.attachments, info_msg.thumbs, info_msg.msg_number, info_msg.msg_folder)); 
    704         } 
    705  
    706  
    707         var msg_number = createAndSet("INPUT",['id','type','value'],["msg_number_" + this.id, "hidden", info_msg.msg_number]); 
    708         var content = document.getElementById('content_id_' + this.id); 
    709         loading_img = content.removeChild( loading_img ); 
    710         content.style.height = document.body.clientHeight - offset - 90; 
    711         content.appendChild(msg_number); 
    712         ////////////////////////////////////////////////////////////////////////////////////////////////////// 
    713  
    714         //Exibe o cabecalho da mensagem totalmente aberto caso esteja setado nas preferencias do usuario 
    715         if (preferences.show_head_msg_full == 1) 
    716         { 
    717                 option_hide_more.onclick(); 
    718  
    719                 if (Element('div_toaddress_'+this.id) != null) 
    720                 { 
    721                         show_div_address_full(this.id,'to'); 
    722                 }        
    723                 if (Element('div_ccaddress_'+this.id) != null) 
    724                 { 
    725                         show_div_address_full(this.id,'cc'); 
    726                 } 
    727         } 
    728  
    729 }; 
    730  
    731 draw_message.prototype.getThumbs = function(attachments, thumbs, msg_number, msg_folder){ 
    732                 var table_message_thumbs = document.createElement("TABLE"); 
    733                 table_message_thumbs.width = "80%"; 
    734                 table_message_thumbs.style.borderTop = "2px solid rgb(170, 170, 170)"; 
    735                 var tbody_message_thumbs = document.createElement("TBODY"); 
    736                 var tr = document.createElement("TR"); 
    737                 tr.className = "tr_message_body"; 
    738                 var td = document.createElement("TD"); 
    739                 td.setAttribute("colSpan","2"); 
    740                 td.id = "body_thumbs_"+msg_number; 
    741                 td.innerHTML += "&nbsp;<font color='DARKBLUE' size='2'><b>"+attachments.length+" "+get_lang("attachment")+(attachments.length > 1 ? "s" : "")+" "+get_lang("in this message")+"</font></b>"; 
    742                 var _link_attachments = ''; 
    743                 if(thumbs.length > 1){ 
    744                         _link_attachments       = document.createElement("A"); 
    745                         _link_attachments.className = "message_options"; 
    746                         if(proxy_mensagens.is_local_folder(current_folder)) 
    747                                 _link_attachments.setAttribute("href", "javascript:expresso_local_messages.download_all_local_attachments('"+msg_folder+"','"+msg_number+"')"); 
    748                         else 
    749                                 _link_attachments.setAttribute("href", "javascript:download_all_attachments('"+msg_folder+"','"+msg_number+"')"); 
    750                         _link_attachments.innerHTML = get_lang('Download all atachments'); 
    751                 } 
    752  
    753                 if(_link_attachments){ 
    754                         td.innerHTML += " :: "; 
    755                         td.appendChild(_link_attachments); 
    756                 } 
    757  
    758                 td.innerHTML += "<BR><img src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/menu/ktip.png'>"+get_lang("<b>Tip:</b> For faster save, click over the image with <u>right button</u>."); 
    759                 td.innerHTML += "<BR>"; 
    760  
    761                 for (var i=0; i<thumbs.length; i++){ 
    762                         if ((i % 4) == 0) 
    763                                 td.innerHTML += "<BR>"; 
    764                         td.innerHTML += thumbs[i]; 
    765                         td.innerHTML += "&nbsp;&nbsp;"; 
    766                 } 
    767                 tr.appendChild(td); 
    768                 tbody_message_thumbs.appendChild(tr); 
    769                 table_message_thumbs.appendChild(tbody_message_thumbs); 
    770                 return table_message_thumbs; 
    771 }; 
    772  
    773 draw_message.prototype.getBcc = function(bccField){ 
    774         /* 
    775          * @AUTHOR Rodrigo Souza dos Santos 
    776          * @MODIFY-DATE 2008/09/11 
    777          * @BRIEF Adding routine to create bcc (blind carbon copy) field if there is one. 
    778          */ 
    779         var tr3 = document.createElement("tr"); 
    780         tr3.className = "tr_message_header"; 
    781         var td3 = document.createElement("td"); 
    782         td3.innerHTML = get_lang("BCC") + " : "; 
    783         var cco = document.createElement("td"); 
    784         cco.id = "cco_"+this.id; 
    785  
    786         var cco_values = createAndSet("INPUT",['id', 'type', 'value'],["cco_values_"+this.id,"hidden",bccField]); 
    787         ccoaddress_array[this.id] = bccField.split(",");                 
    788         if (ccoaddress_array[this.id].length > 1){ 
    789                 var div_ccoaddress = document.createElement("SPAN"); 
    790                 div_ccoaddress.id = "div_ccoaddress_"+this.id; 
    791                 var div_ccoaddress_full = createAndSet("SPAN",['id', 'style'],["div_ccoaddress_full_"+this.id, "display:inline"]); 
    792                 /* 
    793                  * The function below is ugly, doesn't possible use this. 
    794                  * The problem is that the code's function was written 
    795                  * on a hardcode concept. 
    796                  */ 
    797                 //cco.innerHTML = this.draw_plugin_cc(ccoaddress_array[this.id][0]); 
    798                 cco.innerHTML = ccoaddress_array[this.id][0]; 
    799                 div_ccoaddress.innerHTML += " (<a STYLE='color: RED;' onclick=javascript:show_div_address_full('"+this.id+"','cco');>"+get_lang('more')+"</a>)"; 
    800                 cco.appendChild(div_ccoaddress); 
    801         } 
    802         else{ 
    803                 /* 
    804                  * The function below is ugly, it is not possible to use this. 
    805                  * The problem is that the code's function was written 
    806                  * on a hardcode concept. 
    807                  */ 
    808                 //cco.innerHTML = this.draw_plugin_cc(info_msg.cco); 
    809                 cco.innerHTML = bccField; 
    810         } 
    811         cco.className = "header_message_field"; 
    812         return appendChilds(tr3,td3,cco,cco_values); 
    813 }; 
    814  
    815 draw_message.prototype.blockImage = function(info_msg,ID,td){ 
    816         var imgTag = info_msg.body.match(/(<img[^>]*src[^>=]*=['"]?[^'">]*["']?[^>]*>)|(<[^>]*(style[^=>]*=['"][^>]*background(-image)?:[^:;>]*url\()[^>]*>)/gi); 
    817  
    818         var newBody = info_msg.body; 
    819         if(!info_msg.showImg && imgTag) 
    820         { 
    821                 var domains = ''; 
    822                 var blocked = false; 
    823                 var forbidden = true; 
    824  
    825                 if (preferences.notification_domains != null && typeof(preferences.notification_domains) != 'undefined') 
    826                 { 
    827                         domains = preferences.notification_domains.split(','); 
    828                         for(var j = 0; j < imgTag.length; j++) 
    829                         { 
    830                                 for (var i = 0; i < domains.length; i++) 
    831                                 { 
    832                                         if (imgTag[j].match(/cid:([\w\d]){5,}/) || imgTag[j].match(/src=\"\.\/inc\/show_embedded_attach\.php/g)) 
    833                                         { 
    834                                                 forbidden = false; 
    835                                                 continue; 
    836                                         } 
    837                                         imgSource = imgTag[j].match(/=['"](http:\/\/)+[^'"\/]*/); 
    838                                         if (imgSource && imgSource.toString().substr(5).match(domains[i])) 
    839                                                 forbidden = false; 
    840                                 } 
    841                                 if (forbidden) 
    842                                 { 
    843                                         newBody = newBody.replace(imgTag[j],"<img src='" + URL_SERVER + "expressoMail1_2/templates/"+template+"/images/forbidden.jpg'>"); 
    844                                         blocked=true; 
    845                                 } 
    846                         } 
    847                         if (blocked) 
    848                         { 
    849                                 var showImgLink = document.createElement('DIV'); 
    850                                 showImgLink.id="show_img_link_"+ID; 
    851                                 showImgLink.onclick = function(){show_msg_img(info_msg.msg_number,info_msg.msg_folder)}; 
    852                                 showImgLink.className="show_img_link"; 
    853                                 showImgLink.innerHTML = get_lang("Show images from")+": "+info_msg.from.email; 
    854                                 td.appendChild(showImgLink); 
    855                         } 
    856                 } 
    857         } 
    858         return newBody; 
    859  
    860 }; 
    861  
    862 draw_msg = new draw_message(); 
    86335 
    86436function changeLinkState(el,state){ 
  • trunk/expressoMail1_2/js/jscode/main.js

    r2734 r2743  
    133133                                 
    134134                proxy_mensagens.messages_list('local_Inbox', 1, preferences.max_email_per_page, 'SORTARRIVAL', null, 1,1,1, function handler(data){ 
    135                         draw_prebox(); 
    136                         draw_box(data, 'local_Inbox'); 
     135                        draw_box.draw_newBox(data, 'local_Inbox'); 
    137136                }); 
    138137                 
Note: See TracChangeset for help on using the changeset viewer.