/** * Estrutura que guarda em cache as mensagens abertas, a exemplo da estrutura utilizada * na funcionalidade de anexar mensagens. * Isto reduz a necessidade de acessar estruturas da tela para obter informa��es sobre * as mensagens, como tem sido para encaminhar, responder, etc. * Manter os dados 'limpos' em uma estrutura 'somente-leitura' permite maior flexibilidade * para mudar a tela e menos processamento de limpeza de dados (por exemplo retirar tags de * formata��o, etc.) */ focusIn = ""; canMakeBox = true; fastSearch = false; selectedPagingMsgs = {}; allMsgsSelected = false; totalFolderMsgs = 0; var jqXHR = new Array(); var idattachbycontent = 0; onceOpenedHeadersMessages = {}; var cache = new Array(); var openTab = { 'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao 'content_id' : [], 'imapUid' : [], // Stores the imap email number of current tab 'countFile' : [0,0,0,0,0,0,0,0,0,0], // Stores the number of files attached in current tab 'imapBox' : [], // Stores the folder name 'toPreserve' : [], // Check if the message should be removed from draft after send 'condition' : [] // Will store the search condition if the tab is the result of a search }; var autoSaveControl = { 'timer' : [], // The timeout timer for autosave function 'status' : [] // The status autosave }; var tabTypes = { 'new':4, 'forward':6, 'reply_with_history':7, 'reply_to_all_with_history':8, 'reply_without_history':9, 'reply_to_all_without_history':10, 'edit':5 }; var currentTab,numBox = 0; // Open Tab and num of mailboxes opened at context // Objeto Map, talvez o ideal fosse adicionar este objeto � Api do egroupware, e carreg�-lo // aqui no expressoMail. function draw_tree_labels(){ labels = DataLayer.get('label',{criteria:{order: 'name'}}); if(!$("#MyMarckersList").length) var myLabels = $('#content_folders').append("
").find("#MyMarckersList"); else var myLabels = $("#MyMarckersList"); myLabels.html("
" + "" + "" + "" + "
" ) .append(DataLayer.render("../prototype/modules/mail/templates/label_list.ejs", {labels: labels} )) .find("li.label-item").css({"background-color":"#ffffff", "border-color":"#CCCCCC", "color":"#444444"}).click(function(event,ui){ if($(event.target).is('.square-color')){ $(this).each(function(){ configureLabels({selectedItem: $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]}); var id_label_item = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; $(".label-list-container .label-list").find(".label-item-"+id_label_item).trigger("click"); }); } else { var labelId = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; search_emails("UNDELETED KEYWORD \"$Label"+labelId+"\""); } }).find(".square-color").css("display",""); $("#MyMarckersList a.title-my-labels").click(function() { if($("#MyMarckersList ul.label-list").css("display") == "none"){ $("#MyMarckersList ul.label-list").show(); }else{ $("#MyMarckersList ul.label-list").hide(); } $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-s"); $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-n"); }); if (!labels){ $(".my-labels").hide(); } } function draw_tree_local_folders() { /** * Pastas locais */ if(preferences.use_local_messages==1 || expresso_offline) { var local_folders = expresso_local_messages.list_local_folders(); var has_changes = false; for (var i in local_folders) { //Coloca as pastas locais. var new_caption = local_folders[i][0]; if(local_folders[i][0].indexOf("/")!="-1") { final_pos = local_folders[i][0].lastIndexOf("/"); new_caption = local_folders[i][0].substr(final_pos+1); } var folder_unseen = Element('dftree_local_'+local_folders[i][0]+'_unseen'); if ((folder_unseen) && (local_folders[i][1] > 0)) { folder_unseen.innerHTML = local_folders[i][1]; has_changes = true; } else if (local_folders[i][1] > 0) { tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption) + ' ('+local_folders[i][1]+')'}); tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); has_changes = true; } else if (local_folders[i][1] <= 0) { tree_folders.getNodeById("local_"+local_folders[i][0]).alter({caption:lang_folder(new_caption)}); tree_folders.getNodeById("local_"+local_folders[i][0])._refresh(); has_changes = true; } if("local_"+local_folders[i][0] == get_current_folder()){ var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); if(!isNaN(old_new_m) && old_new_m < local_folders[i][1]){ Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(local_folders[i][1])-old_new_m); } Element('new_m').innerHTML = local_folders[i][1] ? ''+local_folders[i][1]+'' : 0; draw_paging(Element('tot_m').innerHTML); has_changes = true; } } if(has_changes) tree_folders.getNodeById("local_root").open(); } } function update_local_box(){ msg_range_end = (current_page*preferences.max_email_per_page); msg_range_begin = (msg_range_end-(preferences.max_email_per_page)+1); folder=get_current_folder(); var msgs = expresso_local_messages.get_local_range_msgs(folder.substr(6),msg_range_begin,preferences.max_email_per_page,sort_box_type,sort_box_reverse,search_box_type,preferences.preview_msg_subject,preferences.preview_msg_tip); //alternate_border(0); draw_box(msgs, folder, true); draw_paging(msgs.num_msgs); Element("tot_m").innerHTML = msgs.num_msgs; update_menu(); } function update_menu(data){ /* * @AUTHOR Rodrigo Souza dos Santos * @DATE 2008/09/15 * @BRIEF When occurs a error in imap server show the message that is in file "error.html". */ if ( data && data.imap_error ) { if(preferences.use_local_messages==1 && expresso_local_messages.is_offline_installed){ conf = confirm(get_lang("The expresso imap server is currently down, expresso noticed you have offline mail module installed, would you like to use it?")); if(conf) { window.onresize = function() { var target = document.getElementById('divAppbox'); target.style.height= document.body.clientHeight - 83; } var target = document.getElementById('divAppbox'); document.getElementById("divAppboxHeader").innerHTML=""; target.style.height= document.body.clientHeight - 83; expresso_local_messages.set_as_logged(account_id,0,true); target.innerHTML = ""; return false; } } connector.newRequest('error.html', 'templates/'+template+'/error.html', 'GET', function(data) { var target = document.getElementById('divAppbox'); if ( target ) target.innerHTML = data; } ); return false; } if(data) { //draw_tree_folders(data); draw_quota(data); var f_unseen = Element('dftree_'+current_folder+'_unseen'); if(f_unseen && f_unseen.innerHTML) Element('new_m').innerHTML = ''+f_unseen.innerHTML+''; else { if( parseInt(Element('new_m').innerHTML) == 0 ) Element('new_m').innerHTML = 0; } folders = data; } draw_new_tree_folder(); draw_tree_labels(); if(Element("table_quota")) connector.loadScript("InfoQuota"); if(preferences.enable_quickadd_telephonenumber) connector.loadScript("QuickAddTelephone"); } var handler_draw_box = function(data){ draw_box(data, 'INBOX', true); //alternate_border(0); } // Action on change folders. function change_folder(folder, folder_name){ if (openTab.imapBox[0] != folder) { selectAllFolderMsgs(false); current_folder = folder; var handler_draw_box = function(data) { if(!verify_session(data)) return; //alternate_border(0); var title = lang_folder(folder_name); if (title.length > 18) title = title.substring(0,18) + "..."; $("#ptabs li:first a").html(" " + title + ' [  / ]'); $(ptabs).tabs( "select", 0 ); draw_box(data, folder, true); draw_paging(data.num_msgs); Element("tot_m").innerHTML = data.num_msgs; $('#new_m').html(data.tot_unseen > 0 ? data.tot_unseen : "0").css("color","red"); //$("#new_m").html(($(".selected").find(".folder_unseen").html() != "0" && $(".selected").find(".folder_unseen").html() != null)? $(".selected").find(".folder_unseen").html() : "0").css("color", "red"); //update_menu(); $(".folders-loading").removeClass("folders-loading"); return true; } $.ajax({ url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", folder: folder, msg_range_begin: "0", msg_range_end: "0", sort_box_type: "SORTARRIVAL", search_box_type: search_box_type, sort_box_reverse: "1" }), success: function(data){ data = connector.unserialize(data); if(data){ var _data = {}; $.each(data,function(index,value){ if (data[index] && data[index].msg_number){ _data[data[index].msg_number] = data[index].msg_number; } }); populateSelectedMsgs(_data); _data = {}; } }, beforeSend: function( jqXHR, settings ){ connector.showProgressBar(); }, complete: function( jqXHR, settings ){ connector.hideProgressBar(); } }); proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); } else{ $(".folders-loading").removeClass("folders-loading"); alternate_border(0); } } function open_folder(folder, folder_name){ if (current_folder!= folder) { current_folder = folder; var handler_draw_box = function(data){ if(!verify_session(data)) return false; numBox++; create_border(folder_name,numBox.toString()); draw_box(data, current_folder, false); alternate_border(numBox); return true; } cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); } else alternate_border(numBox); return true; } var lastPage = 1; var numPages = 5; var last_folder = 'INBOX'; function draw_paging(num_msgs){ num_msgs = parseInt(num_msgs); total_pages = 1; if(last_folder != current_folder){ lastPage = 1; current_page = 1; last_folder = current_folder; } if(num_msgs > parseInt(preferences.max_email_per_page)) { total_pages = parseInt(num_msgs/preferences.max_email_per_page); if((num_msgs/preferences.max_email_per_page) > total_pages) total_pages++; } if(total_pages == 1) { if(span_paging = document.getElementById("span_paging")) { span_paging.parentNode.removeChild(span_paging); } return; } span_paging = document.getElementById("span_paging"); if(!span_paging){ span_paging = document.createElement("DIV"); span_paging.id = "span_paging"; span_paging.className = "boxHeaderText"; span_paging.align="right"; document.getElementById("div_menu_c3").appendChild(span_paging); } span_paging.style.width="100%"; span_paging.innerHTML=""; msg_range_begin = 1; msg_range_end = preferences.max_email_per_page; if(current_page != 1) { lnk_page = document.createElement("A"); //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){alternate_border(0); draw_box(data, get_current_folder());});"); lnk_page.setAttribute("href", "javascript:current_page=1; 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){alternate_border(0); draw_box(data, get_current_folder());});"); } else { lnk_page = document.createElement("SPAN"); } span_paging.appendChild(lnk_page); lnk_page.innerHTML = "<<"; lnk_page.title = get_lang("First"); span_paging.innerHTML += " "; if(current_page == lastPage + numPages) lastPage = current_page - 1; else if((lastPage != 1 && lastPage == current_page) || current_page == total_pages) lastPage = current_page - (numPages - 1); else if(current_page == 1) lastPage = 1; if(lastPage < 1) lastPage = 1; else if(lastPage > 1 && (lastPage > (total_pages -(numPages - 1)))) lastPage = total_pages -(numPages - 1); var hasMarked = false; for(i = lastPage; i <= total_pages; i++) { if(current_page == i || (i == total_pages && !hasMarked)) { lnk_page = document.createElement("SPAN"); span_paging.appendChild(lnk_page); lnk_page.style.color = "red"; lnk_page.innerHTML = " "+i+" "; hasMarked = true; continue; } else{ lnk_page = document.createElement("A"); span_paging.appendChild(lnk_page); msg_range_begin = ((i*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); msg_range_end = (i*preferences.max_email_per_page); //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){alternate_border(0); draw_box(data, get_current_folder());});"); lnk_page.setAttribute("href", "javascript:current_page="+i+"; 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){alternate_border(0); draw_box(data, get_current_folder());});"); } lnk_page.innerHTML = " ... "; if(i == (lastPage + numPages)) break; else if(lastPage == 1 || i != lastPage) lnk_page.innerHTML = " "+i+" "; span_paging.innerHTML += " "; } if(current_page != total_pages) { lnk_page = document.createElement("A"); msg_range_begin = ((total_pages*preferences.max_email_per_page)-(preferences.max_email_per_page-1)); msg_range_end = (total_pages*preferences.max_email_per_page); //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){alternate_border(0); draw_box(data, get_current_folder());});"); lnk_page.setAttribute("href", "javascript:current_page="+total_pages+"; 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){alternate_border(0); draw_box(data, get_current_folder());});"); } else { lnk_page = document.createElement("SPAN"); } span_paging.innerHTML += " "; span_paging.appendChild(lnk_page); lnk_page.title = get_lang("Last"); lnk_page.innerHTML = ">>"; } // stores the percentages of the cells //var colSizes = [ ["24","24","12","12","12","16","16","20%","58%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; //var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","2%","20%","46%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; var colSizes = [ ["3%","2%","1%","1%","1%","1%","2%","2%","2%","20%","45%","11%","11%"], ["2%","1%","1%","1%","1%","1%","1%","20%","20%","33%","10%","9%"] ]; // stores the alignments of the cells var colAligns = [ ['','','','','','','','left','left','center','center'], ['','','','','','left','left','left','center','center'] ]; var objCell = null; var adjCell = null; var cellClick = null; var cellResized = false; var maxWidth=0; var minWidth=0; var bodyWidth=0; var cssForResizing=false; function changeCursorState(ev) { if (cellResized) cellResized = false; var el = ev.target||ev.srcElement; if (el.tagName != "TD") el=getFirstParentOfType(el, "TD") el.style.cursor ="hand"; el.style.cursor ="pointer"; if (!cssForResizing) return; var cellMouseX = (ev.clientX-parseInt(getColumnPosition(el, ev))); var cellWidth = el.offsetWidth; var tbl = getFirstParentOfType(el,"TABLE"); if (tbl.emptyBody) return; if ((((cellWidth-cellMouseX)<15)||((el.style.cursor=="col-resize")&&(detectLeftButton())))&&((el.className=="th_resizable")&&(el.cellIndex+1 el.cellIndex + 1) ? 1 : -1 ); var msgTable = getMessagesTable(el); var bodyRows = msgTable.rows; objCell = el; adjCell = el.parentNode.cells[el.cellIndex+incIndex]; var tbl = getFirstParentOfType(el, "TABLE"); if (is_ie) { tbl.detachEvent("onmousemove",changeCursorState); document.attachEvent("onmousemove",resizeColumn); document.attachEvent("onmouseup",stopColResize); document.attachEvent("onselect",selectCancel); tbl.attachEvent("onselectstart",selectCancel); } else { tbl.removeEventListener("mousemove",changeCursorState,false); document.addEventListener("mousemove",resizeColumn,false); document.addEventListener("mouseup",stopColResize,false); document.addEventListener("select",selectCancel,false); tbl.addEventListener("selectstart",selectCancel,false); } cellClick = objCell.onclick; objCell.onclick = ""; maxWidth = objCell.offsetWidth+adjCell.offsetWidth; bodyWidth = msgTable.offsetWidth; minWidth = Math.round(bodyWidth/80); document.getElementById("table_message_ruler").style.display = "block"; document.getElementById("table_message_ruler").style.left = ev.clientX; if (document.getElementById("content_id_"+numBox)==null) document.getElementById("table_message_ruler").style.height = document.getElementById("content_id_"+currentTab).offsetHeight; else document.getElementById("table_message_ruler").style.height = document.getElementById("content_id_"+numBox).offsetHeight; } } function stopColResize(ev) { if (!objCell) return; if (is_ie) ev.cancelBubble = true; else ev.stopPropagation(); var tbl = getFirstParentOfType(objCell, "TABLE"); if (is_ie) { tbl.detachEvent("onselectstart",selectCancel); document.detachEvent("onselect",selectCancel); document.detachEvent("onmousemove",resizeColumn); document.detachEvent("onmouseup",stopColResize); tbl.attachEvent("onmousemove",changeCursorState); } else { tbl.removeEventListener("selectstart",selectCancel,false); document.removeEventListener("select",selectCancel,false); document.removeEventListener("mousemove",resizeColumn,false); document.removeEventListener("mouseup",stopColResize,false); tbl.addEventListener("mousemove",changeCursorState,false); } var trM = getMessagesTable(objCell).rows; var adjIndex = adjCell.cellIndex; document.getElementById("table_message_ruler").style.display = "none"; maxWidth = 0; objCell.onclick = cellClick; objCell = null; adjCell = null; cellResized = true; setColSizesCookie(); syncColumns(); } function getMessagesTable(el) { var hT; if (el.tagName == "TABLE") hT = el; else hT = getFirstParentOfType(el,"TABLE"); return (hT.parentNode.nextSibling.childNodes[0].className !== "local-messages-search-warning"? hT.parentNode.nextSibling.childNodes[0] : hT.parentNode.nextSibling.childNodes[1]); } function getColumnPosition(oNode, pNode){ if (!pNode && !is_webkit){ var pos = getOffset(oNode); return [pos.left, pos.top]; } pNode = pNode||document.body; var oCurrentNode = oNode; var iLeft = 0; var iTop = 0; while ((oCurrentNode)&&(oCurrentNode != pNode)){ iLeft+=oCurrentNode.offsetLeft-oCurrentNode.scrollLeft; iTop+=oCurrentNode.offsetTop-oCurrentNode.scrollTop; oCurrentNode=oCurrentNode.offsetParent; } return [iLeft, iTop]; } function getFirstParentOfType(obj, tag){ while (obj&&obj.tagName != tag&&obj.tagName != "BODY"){ obj=obj.parentNode; } return obj; } function syncColumns() { var thisCell; var tbl = (document.getElementById("ptabs_"+numBox)==null ? 1 : 0); if (objCell) thisCell = objCell; else thisCell = document.getElementById("table_message_header_box_"+numBox).rows[0].cells[0]; var emptyBody = document.getElementById("table_message_header_box_"+numBox).emptyBody; var tbH = getFirstParentOfType(thisCell,"TABLE"); var tbM = getMessagesTable(thisCell); var trM = tbM.rows; var _mouse_over; var _mouse_out; var _cell; for (var r=0;r1) { _mouse_over = _cell.childNodes[1].onmouseover; _mouse_out = _cell.childNodes[1].onmouseout; } _cell.innerHTML = trM[r].cells[c].innerHTML; if (_cell.childNodes && _cell.childNodes.length>1) { _cell.childNodes[1].onmouseover = _mouse_over; _cell.childNodes[1].onmouseout = _mouse_out; } tbH.rows[0].cells[c].innerHTML = tbH.rows[0].cells[c].innerHTML; } } else { tbH.rows[0].cells[c].setAttribute("width",_cell.offsetWidth); } } } //bug do firefox ao redefinir os tamanhos das colunas if (is_mozilla && !is_webkit){ if(trM[r]) for (var c=0;c'); div.attr('class','select-all-messages'); $('#content_id_0').first().prepend(div); div.css('display','none'); } function totalSelected(){ var total = 0; for(var obj in selectedPagingMsgs) if (selectedPagingMsgs[obj] == true) total++; return total; }; /*Atualiza o array de mensagens selecionadas*/ function updateSelectedMsgs(selected,msg_number){ var folder = $('#content_folders .folder.selected').attr('title'); folder = folder ? folder : get_lang('INBOX'); folder = folder.length > 70 ? '"'+folder.substr(0,70) + "..." +'"': '"'+folder+'"' ; var div = $('.select-all-messages'); var filterFlag = search_box_type != "ALL" ? '"' + get_lang(search_box_type) + "s" + '"': ""; /*Seleciona as mensagens ao navegar pelas p�ginas*/ if (allMsgsSelected && msg_number == undefined){ $('.checkbox').each(function(){ $(this).attr('checked', true); $(this).parent().parent().addClass('selected_msg'); }); } else if (msg_number == undefined){ for(var obj in selectedPagingMsgs){ if (selectedPagingMsgs[obj] == true){ $('#check_box_message_'+obj).attr('checked', true); $('#check_box_message_'+obj).parent().parent().addClass('selected_msg'); } } } if (selected && msg_number != undefined){ selectedPagingMsgs[msg_number] = true; $(this).parent().parent().addClass('selected_msg'); } else if(!selected && msg_number != undefined){ selectedPagingMsgs[msg_number] = false; $(this).parent().parent().removeClass('selected_msg'); allMsgsSelected = false; $('#chk_box_select_all_messages').attr('checked',false); } var tSelected = totalSelected(); /*Todas as mensagens selecionadas uma a uma*/ if (tSelected > 0 && tSelected == totalFolderMsgs){ allMsgsSelected = true; $('#chk_box_select_all_messages').attr('checked',true); if (total_pages > 1){ var link = "Limpar sele��o?"; var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; div.html(""+info+""); div.show(); $('.select-link').bind('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');}); } } /*Se foram selecionadas algumas mensagens*/ else if (tSelected > 0 && !allMsgsSelected && total_pages > 1){ $('#chk_box_select_all_messages').attr('checked',false); var link = "Limpar sele��o?"; if (tSelected == 1){ var info = "Foi selecionada "+tSelected+" mensagem "+filterFlag+" em "+folder+". "+link; } else{ var info = "Foram selecionadas "+tSelected+" mensagens "+filterFlag+" em "+folder+". "+link; } div.html(""+info+""); div.show(); $('.select-link').bind('click',function(){ selectAllFolderMsgs(); $('.select-link').unbind('click'); }); } else if (allMsgsSelected && total_pages > 1){ var link = "Limpar sele��o?"; var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; div.html(""+info+""); div.show(); $('.select-link').bind('click',function(){ selectAllFolderMsgs(); $('.select-link').unbind('click'); }); } else{ div.hide(); } resizeWindow(); } /*Seleciona ou desseleciona todas as mensagens da pasta*/ function selectAllFolderMsgs(select){ var folder = $('#content_folders .folder.selected').attr('title'); folder = folder ? folder : get_lang('INBOX'); folder = folder.length > 70 ? '"'+folder.substr(0,70) + "..." +'"': '"'+folder+'"' ; var filterFlag = search_box_type != "ALL" ? get_lang(search_box_type) + "s": ""; var div = $('.select-all-messages'); if (select){ allMsgsSelected = true; var link = "Limpar sele��o?"; var info = "Todas as "+totalFolderMsgs+" mensagens "+filterFlag+" em "+folder+" foram selecionadas. "+link; div.html(""+info+""); div.show(); $('.select-link').bind('click',function(){ selectAllFolderMsgs(); $('.select-link').unbind('click'); }); for(var obj in selectedPagingMsgs){ selectedPagingMsgs[obj] = true; } }else{ allMsgsSelected = false; for(var obj in selectedPagingMsgs){ $("#content_id_0").find('input[type="checkbox"]').removeAttr("checked"); selectedPagingMsgs[obj] = false; $('#check_box_message_'+obj).parent().parent().removeClass('selected_msg selected_shortcut_msg'); } div.hide(); } resizeWindow(); } /*Carrega o array de mensagens da pasta*/ function populateSelectedMsgs(data){ this.selectedPagingMsgs = {}; this.totalFolderMsgs = 0; var total = 0; $.each(data, function(index, value){ if(value != undefined){ selectedPagingMsgs[value] = false; total++; } }); delete selectedPagingMsgs[undefined]; allMsgsSelected = false; this.totalFolderMsgs = total; } // Draw the inbox and another folders function draw_box(headers_msgs, msg_folder, alternate){ /* * When the paging response is not in the correct folder you need to change folder * This occurs when the Ajax response is not fast enough and the user click in outher * folder before finishing the Ajax request */ if (msg_folder != headers_msgs['folder']) { if (headers_msgs['folder']) { array_folder = headers_msgs['folder'].split('/'); if (array_folder.length > 1) { name_folder = array_folder[1]; } else { name_folder = headers_msgs['folder']; } current_folder = headers_msgs['folder']; Element("border_id_0").innerHTML = " " + lang_folder(name_folder) + ' [  / ]'; Element('new_m').innerHTML = headers_msgs['tot_unseen'] ? ''+headers_msgs['tot_unseen']+'' : 0; Element("tot_m").innerHTML = headers_msgs['num_msgs']; tree_folders.getNodeById(headers_msgs['folder'])._select(); } } /** * Preenche a estrutura de cache de mensagens para posterior consulta de * informa��es sobre as mensagens no escopo global. */ for (var i=0; i 1) { $("#tbody_box .selected_shortcut_msg").addClass("selected_msg").find('.checkbox').attr('checked',true); $.each( $(".selected_shortcut_msg"), function(index, value){ updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id")); }); } if(totalSelected() > 1 ) return $(""+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (totalSelected()+" mensagens selecionadas"), type: "messages"})+""); if( $(this).find(".td_msg_subject").text().length > 18 ) return $(""+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text().substring(0,18) + "...", type: "messages"})+""); else return $(""+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_subject").text(), type: "messages"})+""); }, iframeFix: true, delay: 150, cursorAt: {top: 5, left: 56}, refreshPositions: true, containment: "#divAppbox" }).bind('contextmenu',function(event){ if (!(($(event.target).find('img').length > 0) && ($(event.target).hasClass('td-label')))){ if($(this).find("input:checkbox").attr("checked") != "checked"){ $(this).find("input:checkbox").trigger('click'); $(this).addClass("selected_msg"); } updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); } }); } if ((preferences.use_shortcuts == '1') && (headers_msgs[0])) select_msg(headers_msgs[0].msg_number, 'null', true); var tdFolders = Element("folderscol"); tdFolders.style.display = preferences.hide_folders == '1' ? "none" : ""; if ( !currentTab ) // alternate_border(numBox); draw_footer_box(headers_msgs.num_msgs); Element('main_table').style.display = ''; if(is_ie6) // Stupid Fixing on IE6. setTimeout("resizeWindow()",1); else //resizeWindow(); if(debug) { var _eTime = new Date(); _eTime = _eTime.getTime(); alert("Carregou em "+(_eTime - _bTime)+" ms"); } var msg_folder = Element('msg_folder').value; var msg_number = Element('msg_number').value; if(!msg_folder && msg_number) { new_message('new','null'); } else if(msg_folder && msg_number){ $.ajax({ url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg', msg_number: msg_number, msg_folder: msg_folder, decoded: true } ), success: function( data ){ data = connector.unserialize( data ); if( data ) show_msg( data ); }, beforeSend: function( jqXHR, settings ){ connector.showProgressBar(); }, complete: function( jqXHR, settings ){ connector.hideProgressBar(); } }); Element('msg_folder').value = ''; Element('msg_number').value = ''; } connector.loadScript("InfoContact"); // Loading Quota View Folder Component (if exists...) if(Element("table_quota")) connector.loadScript("InfoQuota"); // creates the dotted ruler which helps user to visualize resizing of columns var ruler_element = document.getElementById("table_message_ruler"); if (ruler_element == null) { ruler_element = document.createElement("DIV"); ruler_element.setAttribute("id", "table_message_ruler"); ruler_element.className = "table_message_ruler"; ruler_element.style.top = getColumnPosition(document.getElementById("content_id_0"),"BODY")[1]; document.getElementById("exmail_main_body").appendChild(ruler_element); } drawSelectMsgsTable(); updateSelectedMsgs(); resizeWindow(); } function showEmptyBoxMsg(tbody_element) { document.getElementById("table_message_header_box_"+numBox).emptyBody = true; var div_pasta = document.getElementById("div_msg_info"); if (!div_pasta){ div_info = document.createElement("div"); div_info.setAttribute("id", "div_msg_info"); div_info.setAttribute("background", "#FFF"); h3_info = document.createElement("h3"); h3_info.style.padding = "10px"; h3_info.setAttribute("id", "msg_info"); h3_info.align = "center"; h3_info.innerHTML = get_lang("This mail box is empty"); div_info.appendChild(h3_info); tbody_element.parentNode.parentNode.appendChild(div_info); } } function html_entities(string) { return String(string).replace(//g, '>').replace(/"/g, '"'); } // Passar o par�metro offset para esta fun��o function make_tr_message(headers_msgs, msg_folder, offsetToGMT){ headers_msgs.subject = html_entities(headers_msgs.subject); if (typeof offsetToGMT == 'undefined') { // In older local messages headers_msgs.offsetToGMT is undefined. offsetToGMT = typeof headers_msgs.offsetToGMT != 'undefined'?headers_msgs.offsetToGMT:0; } var tr_element = document.createElement('tr'); if(typeof(preferences.line_height) != 'undefined') tr_element.style.height = preferences.line_height; tr_element.id = headers_msgs.msg_number; tr_element.msg_sample = ""; //if(headers_msgs.msg_sample && headers_msgs.msg_sample.preview_msg_subject != "") if(headers_msgs.msg_sample && preferences.preview_msg_subject == "1" && headers_msgs.msg_sample.body !== "") { if (cssForResizing) //Colunas redimensionaveis - nao trunca tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,180) + "..."; //trecho do body que sera exibido com o assunto; else tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; } tr_element.tip = ""; if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1" && headers_msgs.msg_sample.body !== "") { tr_element.tip = Base64.decode(headers_msgs.msg_sample.body).substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; } if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){ if ((headers_msgs.Flagged == 'F') || headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 ) add_className(tr_element, 'flagged_msg'); add_className(tr_element, 'tr_msg_unread'); } else{ if ((headers_msgs.Flagged == 'F') || ( headers_msgs.Importance !== undefined && headers_msgs.Importance.toLowerCase().indexOf("high")!=-1 ) ) add_className(tr_element,'flagged_msg'); } if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) add_className(tr_element, 'tr_msg_unread'); if (headers_msgs.Flagged == 'F') add_className(tr_element,'flagged_msg'); td_element1 = createTDElement(0,0,"td_msg"); chk_box_element = document.createElement("INPUT"); chk_box_element.setAttribute("type", "checkbox"); chk_box_element.className = "checkbox"; chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number); $(chk_box_element).click(function(e){ updateSelectedMsgs($(this).is(':checked'),headers_msgs.msg_number); $(".selected_shortcut_msg").removeClass("current_selected_shortcut_msg selected_shortcut_msg"); $(".current_selected_shortcut_msg").removeClass("current_selected_shortcut_msg selected_shortcut_msg"); if(preferences.use_shortcuts == '1') $(this).parents("tr:first").addClass("current_selected_shortcut_msg selected_shortcut_msg"); //changeBgColor(e,headers_msgs.msg_number); $(this).parents("tr:first").toggleClass("selected_msg"); $(this).blur(); }); td_element1.appendChild(chk_box_element); td_element2 = createTDElement(0,1,"td_msg"); if (headers_msgs.attachment == 1) td_element2.innerHTML = ""; td_element21 = createTDElement(0,2,"td_msg",null,"td_message_answered_"+headers_msgs.msg_number); if ((headers_msgs.Forwarded == 'F') || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){ td_element21.onclick=function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}; td_element21.innerHTML = ""; headers_msgs.Draft = '' headers_msgs.Answered = ''; headers_msgs.Forwarded = 'F'; } else if (headers_msgs.Draft == 'X') td_element21.innerHTML = ""; else if (headers_msgs.Answered == 'A'){ td_element21.onclick=function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}; td_element21.innerHTML = ""; }else td_element21.innerHTML = "   "; td_element22 = createTDElement(0,1,"td_msg",null,"td_message_signed_"+headers_msgs.msg_number); switch(headers_msgs.ContentType) { case "signature": { td_element22.innerHTML = ""; break; } case "cipher": { td_element22.innerHTML = ""; break; } default: { break; } } td_element23 = createTDElement(0,4,"td_msg",null,"td_message_important_"+headers_msgs.msg_number); if ( (headers_msgs.Flagged == 'F') || ( headers_msgs.Importance !== undefined && headers_msgs.Importance.toLowerCase().indexOf("high") != -1 )) { td_element23.innerHTML = ""; } else td_element23.innerHTML = "   "; td_element24 = createTDElement(0,5,"td_msg",null,"td_message_sent_"+headers_msgs.msg_number); td_element24.innerHTML = "   "; // preload image var _img_sent = new Image(); _img_sent.src = "templates/"+template+"/images/sent.gif"; td_element25 = createTDElement(0,7,"td_msg",null,"td_message_unseen_"+headers_msgs.msg_number); if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) td_element25.innerHTML = ""; else td_element25.innerHTML = ""; td_element3 = createTDElement(0,8,"td_msg td_resizable","left","td_from_"+ headers_msgs.msg_number); var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);}; td_element3.onclick = _onclick; td_element3.innerHTML = ' '; test = true; if(msg_folder.indexOf(special_folders['Sent']) !=-1 ||msg_folder.indexOf(preferences.save_in_folder) !=-1 || msg_folder.replace("local_","INBOX"+cyrus_delimiter).indexOf(preferences.save_in_folder) !=-1) test = false; if( (msg_folder.indexOf(special_folders['Sent']) !=-1) && (headers_msgs.from != undefined) && headers_msgs.from.email.toLowerCase() == Element("user_email").value.toLowerCase() && (preferences.from_to_sent == "1") && !(msg_folder.substr(0,5) == "user/")) { td_element3.onmouseover = function () { var title_to = ''; $.each(headers_msgs.to, function(index, value) { if(index == (headers_msgs.to.length - 1)){ title_to = title_to + value.email; } else { title_to = title_to + value.email + ', '; } }); this.title = title_to; }; if (headers_msgs.Draft == 'X') td_element3.innerHTML += "("+get_lang("Draft")+") "; else{ if(headers_msgs.to[0].email != null && headers_msgs.to[0].email.toLowerCase() != Element("user_email").value) td_element24.innerHTML = ""; if (headers_msgs.to) { if (headers_msgs.to[0].name != null) td_element3.innerHTML += headers_msgs.to[0].name; else if(headers_msgs.to[0].email != null) { td_element3.innerHTML += headers_msgs.to[0].email; } else { td_element3.innerHTML += get_lang("without destination"); } } } } else{ if (headers_msgs.Draft == 'X'){ td_element3.innerHTML = "("+get_lang("Draft")+") "; } else{ var spanSender = document.createElement("SPAN"); spanSender.setAttribute('class','span-sender'); spanSender.onmouseover = function (event) {/*this.style.textDecoration = "underline";*/try {InfoContact.begin(this,headers_msgs.reply_toaddress)} catch(e){};}; spanSender.onmouseout = function (){try {/*this.style.textDecoration = "none";*/clearTimeout(InfoContact.timeout);} catch(e){}}; folder = special_folders['Sent']; current = get_current_folder(); if ((preferences.from_to_sent == "1") && (current.substr(current.length - folder.length, folder.length) == folder)){ spanSender.onmouseover = function () { var title_to = ''; $.each(headers_msgs.to, function(index, value) { if(index == (headers_msgs.to.length - 1)){ title_to = title_to + value.email; } else { title_to = title_to + value.email + ', '; } }); this.title = title_to; }; if (headers_msgs.to) { if (headers_msgs.to[0].name != null){ spanSender.innerHTML += headers_msgs.to[0].name; }else if(headers_msgs.to[0].email != null) { spanSender.innerHTML += headers_msgs.to[0].email; } } }else if(headers_msgs.from !== undefined){ spanSender.innerHTML = headers_msgs.from.name != null ? headers_msgs.from.name : headers_msgs.from.email; } if (spanSender.innerHTML.indexOf(" ") == '-1' && spanSender.innerHTML.length > 25){ spanSender.innerHTML = spanSender.innerHTML.substring(0,25) + "..."; } else if (spanSender.innerHTML.length > 40 ){ spanSender.innerHTML = spanSender.innerHTML.substring(0,40) + "..."; } td_element3.appendChild(spanSender); } } td_element4 = createTDElement(0,9,"td_msg td_resizable","left"); td_element4.className += " td_msg_subject"; td_element4.onclick = _onclick; td_element4.innerHTML = !is_ie ? " " : " "; if ((headers_msgs.subject)&&(headers_msgs.subject.length > 50)) { if (cssForResizing) //Colunas redimensionaveis - nao trunca td_element4.innerHTML += headers_msgs.subject + " " + tr_element.msg_sample +""; else { //Modificacao para evitar que o truncamento do assunto quebre uma NCR - #1189 pos = headers_msgs.subject.indexOf("&",45); if ((pos > 0) && (pos <= 50) && ((headers_msgs.subject.charAt(pos+5) == ";") || (headers_msgs.subject.charAt(pos+6) == ";"))) td_element4.innerHTML += headers_msgs.subject.substring(0,pos+6) + "..." + " " + tr_element.msg_sample +""; else td_element4.innerHTML += headers_msgs.subject.substring(0,50) + "..." + " " + tr_element.msg_sample +"";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; } } else { td_element4.innerHTML += headers_msgs.subject + " " + tr_element.msg_sample + "";//modificacao feita para exibir o trecho do body ao lado do assunto da mensagem; } td_element4.title=tr_element.tip; if(!is_ie){ td_element4.innerHTML += ""; } td_element5 = createTDElement(0,10,"td_msg td_resizable","center"); td_element5.onclick = _onclick; td_element27 = createTDElement(0,7,"td_msg",null,"td_message_labels_"+headers_msgs.msg_number); $(td_element27).addClass("td-label"); if (headers_msgs.labels) { td_element27.innerHTML = ''; updateLabelsColumn(headers_msgs); } td_element26 = createTDElement(0,6,"td_msg","center","td_message_followup_"+headers_msgs.msg_number); $(td_element26).addClass("td-followup-flag"); td_element26.innerHTML = '
'; if (headers_msgs.followupflagged) { if(headers_msgs.followupflagged.followupflag.id < 7){ var nameFollowupflag = get_lang(headers_msgs.followupflagged.followupflag.name); }else{ var nameFollowupflag = headers_msgs.followupflagged.followupflag.name; } $(td_element26).attr('title', nameFollowupflag) .find(".flag-edited").css("background",headers_msgs.followupflagged.backgroundColor); if(headers_msgs.followupflagged.isDone == "1"){ $(td_element26).find(".flag-edited").find("img") .attr("src", "../prototype/modules/mail/img/flagChecked.png") .css("margin-left","-3px"); } } else { $(td_element26).find(".flag-edited").css("background","#cccccc"); } /** * Clique para aplicar sinalizador */ $(td_element26).click(function() { var messageClickedId = $(this).attr('id').match(/td_message_followup_([\d]+)/)[1]; var followupColor = $('#td_message_followup_' + messageClickedId).find(".flag-edited").css('backgroundColor'); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") .html('Carregando'); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "transparent"); /** * Hack: * headers_msgs.followupflagged.id n�o vai funcionar porque j� foi feito DataLayer.commit() * por isso o id deve ser obtido do banco * tamb�m para verificar se h� ou n�o sinalizador nesta mensagem */ DataLayer.remove('followupflagged', false); var flagged = DataLayer.get('followupflagged', {filter: [ 'AND', ['=', 'messageNumber', messageClickedId], ['=', 'folderName', msg_folder] ]}); if (!flagged) { /** * Aplica followupflag de Acompanhamento */ headers_msgs.followupflagged = { uid : User.me.id, folderName : msg_folder, messageNumber : messageClickedId, alarmTime : false, backgroundColor : '#FF2016', followupflagId: '1' }; headers_msgs.followupflagged.id = DataLayer.put('followupflagged', headers_msgs.followupflagged); DataLayer.commit(false, false, function(data){ var fail = 'success'; $.each(data, function(index, value) { if(typeof value === 'string'){ fail = value; } }); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") .html(''); if(fail != 'success'){ $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC"); MsgsCallbackFollowupflag[fail](); }else{ $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); updateCacheFollowupflag(messageClickedId, msg_folder, true); } }); } else if (onceOpenedHeadersMessages[msg_folder][messageClickedId]['followupflagged'].followupflag.name == 'Follow up') { /** * Remove followupflag de Acompanhamento */ $(this).find(".flag-edited").css("background", "#cccccc"); DataLayer.remove('followupflagged', flagged[0].id ); DataLayer.commit(false, false, function(){ updateCacheFollowupflag(messageClickedId, msg_folder, false); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") .html(''); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).attr('title', '').find(".flag-edited").css("background", '#CCC'); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); }); } else { $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") .html(''); $('#td_message_followup_' + messageClickedId + ', ' + 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", followupColor); $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); configureFollowupflag(); } }); var norm = function (arg) {return (arg < 10 ? '0'+arg : arg);}; var weekDays = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; var today = new Date(); today.setHours(23); today.setMinutes(59); today.setSeconds(59); today.setMilliseconds(999) var udate_local = null; var date_msg = null; // old local messages can capture headers_msgs.udate as "hh:mm" or "dd/mm/yyyy" if ( (headers_msgs.udate !== undefined) && (headers_msgs.udate.toString().match(/\d{2}:\d{2}/) || headers_msgs.udate.toString().match(/\d{2}\/\d{2}\/\d{4}/)) ) { temp_msg_day = headers_msgs.msg_day.split('/'); temp_msg_hour = headers_msgs.msg_hour.split(':'); date_msg = new Date(temp_msg_day[2], temp_msg_day[1]-1, temp_msg_day[0], temp_msg_hour[0], temp_msg_hour[1]); } else { // The new date implementation // Using offset between user defined timezone and GMT // Date object converts time to local timezone, so we have to adjust it udate_local = headers_msgs.udate*1000 + offsetToGMT*1000 + today.getTimezoneOffset()*60*1000; date_msg = new Date(udate_local); } if (preferences.show_date_numerical == 0 || typeof(preferences.show_date_numerical) == 'undefined') { if (today.getTime() - date_msg.getTime() < 86400000) td_element5.innerHTML = norm(date_msg.getHours()) + ':' + norm(date_msg.getMinutes()); else if (today.getTime() - date_msg.getTime() < 172800000) td_element5.innerHTML = get_lang('Yesterday'); else if (today.getTime() - date_msg.getTime() < 259200000) td_element5.innerHTML = get_lang(weekDays[date_msg.getDay()]); else{ td_element5.innerHTML = norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear(); td_element5.title = norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear(); td_element5.alt = td_element5.title; } }else{ td_element5.innerHTML = norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear(); td_element5.title = norm(date_msg.getDate()) + '/' + norm(date_msg.getMonth()+1) + '/' +date_msg.getFullYear(); td_element5.alt = td_element5.title; } td_element6 = createTDElement(0,11,"td_msg td_resizable","center"); td_element6.onclick = _onclick; td_element6.setAttribute("noWrap","true"); td_element6.innerHTML = borkb(headers_msgs.Size); tr_element.appendChild(td_element1); tr_element.appendChild(td_element2); tr_element.appendChild(td_element21); tr_element.appendChild(td_element22); tr_element.appendChild(td_element23); tr_element.appendChild(td_element24); tr_element.appendChild(td_element26); tr_element.appendChild(td_element27); tr_element.appendChild(td_element25); tr_element.appendChild(td_element3); tr_element.appendChild(td_element4); tr_element.appendChild(td_element5); tr_element.appendChild(td_element6); return tr_element; } function sort_box(search, sort,clean_selected){ if (typeof(clean_selected) == "undefined") selectAllFolderMsgs(false); if (cellResized) return; var message_header = Element("message_header_"+search); var handler_draw_box = function(data){ draw_box(data, current_folder,true); //Mostrar as msgs nao lidas de acordo com o filtro de relevancia var msgs_unseen = 0; draw_paging(data.num_msgs); Element("new_m").innerHTML = '' + data.tot_unseen + ''; Element("tot_m").innerHTML = data.num_msgs; } if(sort_box_type == sort && search_box_type == search){ sort_box_reverse = sort_box_reverse ? 0 : 1; } else if(sort_box_type != sort){ if ( (sort == 'SORTFROM') || (sort == 'SORTSUBJECT') ) sort_box_reverse = 0; else sort_box_reverse = 1; } // Global variable. sort_box_type = sort; search_box_type = search; if (typeof(clean_selected) == "undefined"){ $.ajax({ url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3", folder: get_current_folder(), msg_range_begin: "0", msg_range_end: "0", sort_box_type: "SORTARRIVAL", search_box_type: search_box_type, sort_box_reverse: "1" }), success: function(data){ data = connector.unserialize(data); if(data){ var _data = {}; $.each(data,function(index,value){ if (data[index] && data[index].msg_number){ _data[data[index].msg_number] = data[index].msg_number; } }); populateSelectedMsgs(_data); _data = {}; } }, beforeSend: function( jqXHR, settings ){ connector.showProgressBar(); }, complete: function( jqXHR, settings ){ connector.hideProgressBar(); } }); } proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); current_page = 1; //Comentado para nao sobrepor o numero de msgs nao lidas ao utilizar os filtros //update_menu(); } function draw_header_box(){ switch(sort_box_type){ case 'SORTFROM': type_name = get_lang("From"); break; case 'SORTSUBJECT': type_name = get_lang("Subject"); break; case 'SORTARRIVAL': type_name = get_lang("Date"); break; case 'SORTSIZE': type_name = get_lang("Size"); break; default: type_name = get_lang("Date"); break; } folder = special_folders['Sent']; current = get_current_folder(); if ((preferences.from_to_sent == "1") && (current.substr(current.length - folder.length, folder.length) == folder)) { document.getElementById("message_header_SORTFROM_"+numBox).innerHTML = get_lang("To"); }else{ document.getElementById("message_header_SORTFROM_"+numBox).innerHTML = get_lang("From"); } document.getElementById("message_header_SORTSUBJECT_"+numBox).innerHTML = get_lang("Subject"); document.getElementById("message_header_SORTARRIVAL_"+numBox).innerHTML = get_lang("Date"); document.getElementById("message_header_SORTSIZE_"+numBox).innerHTML = get_lang("Size"); document.getElementById("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox ).innerHTML = ""+type_name+""; } function verifyOption(name, id){ var str = name + '' + id; if(!Element(str).style.display == ""){ var option_reply_options = document.getElementById('msg_opt_reply_options_'+id); option_reply_options.value = 'show'; option_reply_options.src= '../expressoMail1_2/templates/default/images/down.png'; Element('tr_other_options_'+id).style.display = 'none'; var option_more_options = document.getElementById('msg_opt_more_options_'+id); option_more_options.value = 'show'; option_more_options.src= '../expressoMail1_2/templates/default/images/down.png'; Element('tr_other_more_options_'+id).style.display = 'none'; var option_mark_as_options = document.getElementById('msg_opt_mark_options_'+id); option_mark_as_options.value = 'show'; option_mark_as_options.src= '../expressoMail1_2/templates/default/images/down.png'; Element('tr_other_mark_options_'+id).style.display = 'none'; } } /*Busca a primeira mensagem na pagina*/ function firstRow(){ var thisCell; if (objCell) thisCell = objCell; else thisCell = document.getElementById("table_message_header_box_0").rows[0].cells[0]; var tbM = getMessagesTable(thisCell); proxy_mensagens.get_msg(tbM.rows[0].getAttribute('id'),get_current_folder(),true,show_msg); } /*Busca a ultima mensagem na pagina*/ function lastRow(){ var thisCell; if (objCell) thisCell = objCell; else thisCell = document.getElementById("table_message_header_box_0").rows[0].cells[0]; var tbM = getMessagesTable(thisCell); proxy_mensagens.get_msg(tbM.rows[tbM.rows.length - 1].getAttribute('id'),get_current_folder(),true,show_msg); } var msg_selected; function changeLinkState(el,state){ el.innerHTML = get_lang(state); switch (state){ case 'important': { el.onclick = function(){changeLinkState(el,'normal');proxy_mensagens.proxy_set_message_flag(currentTab.substr(0,currentTab.indexOf("_r")),'flagged');write_msg(get_lang('Message marked as ')+get_lang("Important"))} break; } case 'normal': { el.onclick = function(){ var _this = this; proxy_mensagens.proxy_set_message_flag(currentTab.substr(0,currentTab.indexOf("_r")),'unflagged', function(success){ if (success) { changeLinkState(_this, 'important'); write_msg(get_lang('Message marked as ') + get_lang("Normal")); } } ); } break; } case 'unseen': { el.onclick = function(){changeLinkState(el,'seen');proxy_mensagens.proxy_set_message_flag(currentTab.substr(0,currentTab.indexOf("_r")),'unseen');write_msg(get_lang('Message marked as ')+get_lang("unseen"))} break; } case 'seen': { el.onclick = function(){changeLinkState(el,'unseen');proxy_mensagens.proxy_set_message_flag(currentTab.substr(0,currentTab.indexOf("_r")),'seen');write_msg(get_lang('Message marked as ')+get_lang("seen"))} break; } default: { break; } } } //DESENHO DAS CAIXA DE EMAIL function draw_email_box(input_data, location, personal, shared){ if($.trim(input_data) != ""){ var box_data = valid_emails(input_data); DataLayer.render("../prototype/modules/mail/templates/emailBox.ejs", box_data, function(html){ var newBox = location.before(html).prev(); box_actions(newBox); if((preferences.expressoMail_ldap_identifier_recipient || personal)&& $(newBox).hasClass("invalid-email-box")){ //$(newBox).find(".loading").css("background-image", "../prototype/modules/mail/img/ajax-loader.gif"); show_detais(newBox, input_data, personal, shared); }else{ $(newBox).find(".box-loading").remove(); } }); } } function valid_emails(email){ var ContactBox = {name:"", email:"", valid : false}; var reSimpleEmail = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)+$/; var reComplexEmail = /<([^<]*)>[\s]*$/; var validation = email.split('"'); //FUN��O QUE VALIDA OS DADOS QUANDO O EMAIL � DIGITADO COM ("NOME SOBRENOME" ) var complexValidation = function(complexMail){ var Objct = {}; if($.trim(complexMail[1]).match(reComplexEmail)){ if($.trim(complexMail[1]).match(reComplexEmail).length){ Objct['email'] = $.trim(complexMail[1]).match(reComplexEmail)[1]; } }else{ Objct['email'] = $.trim(complexMail[1]); } Objct['name'] = complexMail[0]; Objct['valid'] = reSimpleEmail.test(Objct['email'].toLowerCase()); return Objct; } switch (validation.length) { //PEGA TODO O CONTEUDO E SETA COMO SE FOSSE O EMAIL case 1: validation.unshift(""); ContactBox = complexValidation(validation); break; //CORRIGI ERRO DE DIGITA��O COMO ( huahua") ou (hahahaha"huahua@email.com) ou ainda (hahahaha"huahua@ema il.com) case 2: ContactBox = complexValidation(validation); break; //RECEBE O EMAIL CORRETAMENTE S� VALIDA POSSIVEIS ERROS COMO O DE CIMA E OS CORRIGI CASO ACONTE�AM case 3: //RETIRA O PRIMEIRO INDICE QUE FICOU "INUTIL" validation.shift(); ContactBox = complexValidation(validation); break; //SE EXISTIREM MAIS DO QUE 2 (") default: if($.trim(validation[validation.length-1]).match(reComplexEmail)){ if($.trim(validation[validation.length-1]).match(reComplexEmail).length){ ContactBox.mail = $.trim(validation[validation.length-1]).match(reComplexEmail)[1]; } }else{ ContactBox.mail = $.trim(complexMail[1]); } ContactBox.valid = reSimpleEmail.test(ContactBox.mail.toLowerCase()); } return ContactBox; } //EVENTO DOS INPUTS PARA - CC - CCO function input_keydowns(input, ID){ var f9 = false; input.keydown(function(e){ f9 = false; focusIn = input; var focusing = input.parent().find(".email-text"); //SE OS CONTATOS DINAMICOS ESTAO ATIVOS if(parseInt(preferences.use_dynamic_contacts) && !input.hasClass("box-input")){ //SELECIONA O CONTATO E EVITA OUTROS COMANDOS if ( e.keyCode === $.ui.keyCode.TAB && $( this ).data( "catcomplete" ).menu.active ) { e.preventDefault(); return false; } //FECHA OS CONTATOS DIN�MICOS if( (e.keyCode == 27) && $( this ).data( "catcomplete" ).menu.active ){ e.stopPropagation(); e.preventDefault(); } //SELECIONA O CONTATO E EVITA OUTROS COMANDOS if(e.keyCode == $.ui.keyCode.ENTER && $( this ).data( "catcomplete" ).menu.active){ e.preventDefault(); return false; } if(e.keyCode == $.ui.keyCode.DELETE && $( this ).data( "catcomplete" ).menu.active){ if($($( this ).data( "catcomplete" ).menu.element).find(".ui-state-hover").parents("li:first").hasClass("dynamic-recent")) $($( this ).data( "catcomplete" ).menu.element).find(".ui-state-hover").next().trigger("click"); return false; } } //BUSCA COM A TECLA F9 if((e.keyCode) == 120){ f9 = true; emQuickSearch($(this).val(), "."+$(this).parents("tr:first").attr('class').split("-")[0], ID, undefined, true); e.preventDefault(); return false; } //AO DIGITAR ENTER, ";", "," " " if(e.keyCode == 13 || e.keyCode == 9 || (e.keyCode == 188 && !e.shiftKey) || (e.keyCode == 191 && !e.shiftKey) ){ if(e.keyCode == 13){ e.preventDefault(); } if(input.val() != ""){ if(e.keyCode == 188 && !e.shiftKey && input.val().split("\"").length > 1){ return; } if(e.keyCode != 9) e.preventDefault(); draw_email_box(input.val(), input); if(input.hasClass("box-input")){ input.remove(); focusing.focus(); return; } } if(input.length) input.val(""); } if((e.keyCode == 8 || e.keyCode == 37) && input.val() == "" && input.prev().hasClass("box")){ e.preventDefault(); input.prev().focus(); return; } //AO DIGITAR " " if(e.keyCode == 32){ if(!input.val().length){ e.preventDefault(); return; }else{ var texto = input.val(); texto = texto.substring(0, getPosition(input[0])); if(texto.split('"').length-1 == 0){ if(input.val().split('"').length-1 == 0){ e.preventDefault(); e.stopPropagation(); draw_email_box(input.val(), input); input.val(""); if(input.hasClass("box-input")){ input.remove(); focusing.focus(); return; } return; } } } } //AO DIGITAR ">" if(e.keyCode == 190 && e.shiftKey && input.val().length == getPosition(input[0])){ input.val(input.val()+">"); draw_email_box(input.val(), input); e.preventDefault(); input.val(""); if(input.hasClass("box-input")){ input.remove(); focusing.focus(); return; } } setTimeout(function(){ if(input.val()[input.val().length-1] == ";"){ draw_email_box(input.val().substring(0, input.val().length-1), input); input.val(""); } }, 100); //INPUT AUTO RESIZE setTimeout(function(){ input_search = $(input).val(); var char = input.val().charAt(input.val().length-1); var maiusculas = RegExp("[A-Z]"); /*Se o ultimo caracter for ">" � porque o campo est� sendo editado (a partir de duplo clique)*/ var tamanho = 0; if(char == ">"){ /*Faz um calculo pr�vio do tamanho do campo de acordo com o tamanho de cada caracter da string*/ for(i=0; i 1) var str = pthis.val().replace(/[,;\t]/gi, ","); else var str = pthis.val().replace(/[,;\t\n\s]/gi, ","); str = str.split(","); $.each(str, function(index, value){ draw_email_box(value, pthis); }); pthis.val(""); }, 50); }); //SE FOR EDI��O DE EMAILS RECALCULA O INPUT E SETA O FOCO if(input.hasClass("box-input")){ input.trigger("keydown"); input.focus(); } } var input_search = ""; var click = false; //EVENTOS DA CAIXA function box_actions(box){ //AO PRESSIONAR UMA TECLA COM A CAIXA SELECIONADA box.keydown(function(e){ switch (e.keyCode) { case $.ui.keyCode.LEFT: //VERIFICA SE EXISTE ALGUMA CAIXA A ESQUERDA if($(this).prev().hasClass("box")) $(this).removeClass("box-selected").prev().focus(); break; case $.ui.keyCode.RIGHT: //VERIFICA SE EXISTE ALGUMA CAIXA A DIREITA if($(this).next().hasClass("box")) $(this).removeClass("box-selected").next().focus(); //SENAO FOCO O INPUT DO EMAIL else $(this).removeClass("box-selected").next().focus(); break; case $.ui.keyCode.HOME: //SELECIONO A PRIMEIRA CAIXA e.preventDefault(); $(this).parents(".email-area").find("div:first").focus(); break; case $.ui.keyCode.END: //SELECIONO A ULTIMA CAIXA e.preventDefault(); $(this).parents(".email-area").find("div:last").focus(); break; case $.ui.keyCode.DELETE: //VERIFICA SE EXISTE ALGUMA CAIXA A DIREITA if($(this).next().hasClass("box")) $(this).next().focus(); //SENAO FOCO O INPUT DO EMAIL else $(this).next().focus(); //REMOVO ESTA CAIXA $(this).remove(); break; case $.ui.keyCode.BACKSPACE: //VERIFICA SE EXISTE ALGUMA CAIXA A ESQUERDA if($(this).prev().hasClass("box")) $(this).removeClass("box-selected").prev().focus(); //SENAO HOUVER VERIFICA SE EXISTE ALGUMA CAIXA A DIREITA else if($(this).next().hasClass("box")) $(this).next().focus(); //SENAO HOUVER NEM A DIREITA NEM A ESQUERDA SETO O FOCO NO INPUT DO EMAIL else $(this).next().focus(); //REMOVO ESTA CAIXA $(this).remove(); e.preventDefault(); break; case $.ui.keyCode.ENTER: e.preventDefault(); $(this).trigger("dblclick"); break; } }) //AO FAZER UM DUPLO CLICK NA CAIXA .dblclick(function(e){ var input = $(this).find("input").clone(); input.css("display" , "inline-block"); $(this).before(input); input_keydowns(input, currentTab); $(this).remove(); //CLICK SIMPLES NA CAIXA }).click(function(){ $(this).focus(); //AO DAR O FOCO NA CAIXA }).focus(function(){ $(this).parent().find("div").removeClass("box-selected"); $(this).addClass("box-selected"); }).focusout(function(){ $(this).removeClass("box-selected"); }).draggable({ revert: 'invalid', helper : 'clone', stack: "body", containment : ".new-msg-head-data", start: function(e, ui){ $(this).parent().droppable( "disable" ); }, stop : function(e, ui){ $(this).parent().droppable( "enable" ); } }); } //MOSTRA OS DETALHES DAS CAIXA DE EMAIL NOS CAMPOS PARA - CC - CCO function show_detais(box, value, personal, shared){ var ldap_id = preferences.expressoMail_ldap_identifier_recipient; var group = (personal != undefined ? (personal == "G" ? true : false) : false); shared = shared ? shared : false; if(group){ REST.get("/"+ (shared ? "shared" : "") +"group/"+value, {}, function(data){ if(!data.error){ if(data.collection.error) box.find(".box-loading").remove(); else{ box.find(".box-loading").removeClass("box-loading").addClass("box-info"); box.addClass("box-"+value).removeClass("invalid-email-box"); loadGroupBox(data.collection, ".box-"+value); box.unbind("dblclick").bind("dblclick", function(e){ new $.Zebra_Dialog(get_lang("Impossible editing this contact, but it's possible to remove it"), { 'buttons': false, 'modal': false, 'position': ['right - 20', 'top + 20'], 'auto_close': 3000 }); }).find(".box-input").val("\""+data.collection.data[1].value+"\" <"+data.collection.data[1].value+">"); box.find(".email-box-value").html( (data.collection.data[1].value.length > 18 ? data.collection.data[1].value.substring(0, 15)+"...": data.collection.data[1].value)) } }else{ box.find(".box-loading").remove(); } }); return; } if(personal){ REST.get("/"+ (shared ? "shared" : "") +"contact/"+value, {}, function(data){ if(!data.error){ if(data.collection.error) box.find(".box-loading").remove(); else{ box.find(".box-loading").removeClass("box-loading").addClass("box-info"); box.addClass("box-"+value).removeClass("invalid-email-box"); loadExtraLDAPBox(data.collection.data, ".box-"+value); box.unbind("dblclick").bind("dblclick", function(e){ new $.Zebra_Dialog(get_lang("Impossible editing this contact, but it's possible to remove it"), { 'buttons': false, 'modal': false, 'position': ['right - 20', 'top + 20'], 'auto_close': 3000 }); }).find(".box-input").val("\""+data.collection.data[0].value+"\" <"+data.collection.data[1].value+">"); box.find(".email-box-value").html( (data.collection.data[0].value.length > 18 ? data.collection.data[0].value.substring(0, 15)+"...": data.collection.data[0].value)) } }else{ box.find(".box-loading").remove(); } }); return; } REST.get("/usersldap", {field : ldap_id,value: value}, function(data){ if(!data.error){ if(data.collection.error) box.find(".box-loading").remove(); else{ box.find(".box-loading").removeClass("box-loading").addClass("box-info"); box.addClass("box-"+value).removeClass("invalid-email-box"); loadExtraLDAPBox(data.collection.itens[0].data, ".box-"+value); box.unbind("dblclick").bind("dblclick", function(e){ new $.Zebra_Dialog(get_lang("Impossible editing this contact, but it's possible to remove it"), { 'buttons': false, 'modal': false, 'position': ['right - 20', 'top + 20'], 'auto_close': 3000 }); }).find(".box-input").val("\""+data.collection.itens[0].data[0].value+"\" <"+data.collection.itens[0].data[1].value+">"); box.find(".email-box-value").html( (data.collection.itens[0].data[0].value.length > 18 ? data.collection.itens[0].data[0].value.substring(0, 15)+"...": data.collection.itens[0].data[0].value)) if(data.collection.itens[0].data[3].value == "TRUE"){ box.removeClass("invalid-email-box").addClass("out-office-box"); } } }else{ box.find(".box-loading").remove(); } }); } //FUN��O QUE "SETA" OS BINDS DOS CAMPOS PARA - CC - CCO function input_binds(div, ID){ //AO CLICAR NA DIV SETA O FOCO NO INPUT div.click(function(e){ if(e.target == $(this)[0]){ $(this).find("input:last").focus(); $(this).find("div").removeClass("box-selected"); } }) //AO SAIR DO FOCO DA DIV ELE RETIRA TODAS AS CLASSES DE CAIXAS SELECIONADAS .focusout(function(e){ if(!$(e.target).parents(".email-area:first").length) $(this).find("div").removeClass("box-selected"); }).droppable({ hoverClass: "box-draggable-hover", accept : ".box", drop : function(e, ui){ ui.draggable.parent().droppable( "enable" ); var box = ui.draggable.clone(); box_actions(box); if(box.find(".box-info").length){ box.unbind("dblclick").bind("dblclick", function(e){ new $.Zebra_Dialog('Impossivel editar um contato do ldap\n' + 'Por�m� possivel remove-lo', { 'buttons': false, 'modal': false, 'position': ['right - 20', 'top + 20'], 'auto_close': 3000 }); }); } $(this).prepend(box); ui.draggable.remove(); } }); //MAKE KEYDOWN input_keydowns(div.find("input"), ID); //VERIFICA PREFERENCIA DE CONTATOS DIN�MICOS ESTA ATIVA if(parseInt(preferences.use_dynamic_contacts)){ //PREPARA��O DA ARRAY DOS CONTATOS DIN�MICOS $.widget( "custom.catcomplete", $.ui.autocomplete, { _renderMenu: function( ul, items ) { var self = this, currentType = ""; $.each( items, function( index, item ) { if ( item.typel != currentType) { if(item.typel == "/groups" && $(ul).find(".dynamic-recent").length) self._renderItem( ul, {name:"", value:"", type:"linha"} ); if(item.typel == "/contacts" && ($(ul).find(".dynamic-group").length || $(ul).find(".dynamic-recent").length)) self._renderItem( ul, {name:"", value:"", type:"linha"} ); currentType = item.typel; } self._renderItem( ul, item ); $(ul).find("li:last").find(".dynamic-stars").raty({ readOnly : true, half : true, hints : ['','','','',''], score : ((item.number_of_messages*5)/topContact) > 0.5 ? ((item.number_of_messages*5)/topContact) : 0.5, starOn : '../../prototype/plugins/jq-raty/img/star-on.png', starOff : '../../prototype/plugins/jq-raty/img/star-off.png', starHalf : '../../prototype/plugins/jq-raty/img/star-half.png' }); }); if($(ul).find("li:last").hasClass("dynamic-separator")){ $(ul).find("li:last").remove(); } $(ul).scroll(function(){ canMakeBox = false; }); } }); //INSER��O DO AUTO COMPLETE AO INPUT div.find("input").catcomplete({ minLength: 1, source: function(request, response){ if ( request.term in cache ) { response( cache[ request.term ] ); return; } dynamicContactsList = new Array(); REST.get("/usercontacts", false, function(data){ dynamicData = data.collection.itens; if(dynamicData){ $.each(dynamicData, function(index, value){ dynamic = {}; $.each(value.data, function(index, value){ dynamic[value.name] = value.value; }); dynamic['value'] = (dynamic.name ? dynamic.name +' - ': '') + dynamic.mail; dynamic['type'] = value.dataType; dynamic['typel'] = (value.dataType.substring(0,7) == "/shared" ? "/"+value.dataType.substring(7,value.dataType.length)+"s" : value.dataType) ; dynamicContactsList.push(dynamic); }); } var data = $.ui.autocomplete.filter(dynamicContactsList, request.term ); cache[ request.term ] = data; response( data ); }); }, focus: function() { return false; }, //EVENTO AO SELECIONAR UM CONTATO DIN�MICO select: function( event, ui ) { canMakeBox = false; event.preventDefault(); $(this).val(""); if(ui.item.typel == "/contacts") draw_email_box(""+ui.item.id, $(this), true, (ui.item.type.substring(0,7) == "/shared" ? true : false)); else if(ui.item.typel == "/groups") draw_email_box(""+ui.item.id, $(this), "G", (ui.item.type.substring(0,7) == "/shared" ? true : false)); else draw_email_box(ui.item.name ? "\""+ui.item.name+"\" <"+ui.item.mail+">" : ui.item.mail, $(this)); return false; }, autoFocus: true, position : { my: "left top", at: "left bottom", collision: "fit" } }).bind('catcompleteopen', function(event, ui) { $(this).data('is_open',true); }).bind('catcompleteclose', function(event, ui) { canMakeBox = true; $(this).data('is_open',false); }) //MONTAGEM DA LISTA DE CONTATOS DIN�MICOS DO AUTO COMPLETE .data( "catcomplete" )._renderItem = function( ul, item ) { if($(ul).find("li").length < 50){ var autocomplete = $(this)[0].element; //c�lculo din�mico da largura da lista var width = (item.label ? item.label.length : (item.value ? item.value.length : (item.email ? item.email.length : 20 ))); width = width*5 + (is_ie ? 170 : 200) + 16; if (width < $(ul).width()) width = $(ul).width(); ul.css({"min-width":width,"max-height" : "180px", "overflow-y" : "auto", "min-height": "30px"}); var listContacts = DataLayer.render("../prototype/modules/mail/templates/listContacts.ejs", item); return $(listContacts).data( "item.autocomplete", item ).appendTo( ul ).find("span:last").button({ icons : { primary : "ui-icon-close" }, text: false }).click(function(event){ var removeLi = $(this).parents("li:first"); if(!event.keyCode) autocomplete.catcomplete( "close" ); canMakeBox = false; $.Zebra_Dialog('Deseja remover '+(item.name ? item.name+" - " : "")+ item.mail+'?', { 'type': 'question', 'custom_class': (is_ie ? 'configure-zebra-dialog' : ''), 'title': 'Aten��o', 'buttons': ['Sim','N�o'], 'overlay_opacity': '0.5', 'onClose': function(caption) { if(caption == 'Sim'){ $(removeLi).remove(); REST['delete']("/dynamiccontact/"+item.id); updateDynamicContact(); cache = new Array(); }else if(caption == 'N�o'){ $(focusIn).focus(); } } }); }); } return; }; } //FUN��O DOS BOT�ES PARA - CC - CCO div.parents("tr:first").find("button").button().click(function(){ click = true; fastSearch = true; canMakeBox = false; if(!$(":focus").hasClass("new-message-input")) emQuickSearch(($(this).parents("tr:first").find("input").val() ? $(this).parents("tr:first").find("input").val() : input_search), "."+$(this).parents("tr:first").attr('class').split("-")[0], ID, undefined, true); }); } function draw_new_message(border_ID){ connector.loadScript("color_palette"); connector.loadScript('wfolders'); connector.loadScript("ccQuickAdd"); if(typeof(RichTextEditor) == 'undefined' || typeof(ColorPalette) == 'undefined' || typeof(wfolders) == 'undefined') return false; if(typeof($.fn.elastic) == "undefined"){ $.lazy({ src: '../prototype/plugins/jquery-elastic/jquery.elastic.source.js', name: 'elastic' }); } //var ID = create_border("",border_ID); var ID = countID; createTab("Nova Mensagem"); if (ID == 0) return 0; else if(ID == 'maximo') return 'maximo'; hold_session = true; if ($("#footer_menu").length){ $("#footer_menu").css('display','none'); } var content = $("#ptabs_"+ID).html(DataLayer.render("../prototype/modules/mail/templates/new_message.ejs", {id: ID})); RichTextEditor.loadEditor2(ID); //if(!expresso_offline) // draw_from_field(sel_from,tr1_1); //content.find('name="input_to"').elastic().elastic("destroy"); draw_from_field(content.find(".from-select")[0], content.find(".from-tr")[0]); var check_input = function(field){ var check = field.attr("checked"); field.attr("checked", (!check ? true : false)); return (!check ? true : false); } //A��O GENERICA PARA ADICIONAR/REMOVER var change_text = function(field, text, to_text){ var text = (field.html() == text ? to_text : text); field.html(text); } //A��O GENERICA PARA ADICIONAR/REMOVER CC & CCO var show_hide = function(field, button){ button.toggleClass("expressomail-button-icon-ative"); field.toggle(); field.find("textarea").val("").parent().find("input").focus(); field.find(".email-area div").remove(); if(!field.find("textarea").hasClass("track")){ field.find("textarea").css({"max-height" : "115px", "overflow-y" : "auto"}).addClass("track"); input_binds(field.find(".email-area"), ID); } } input_binds(content.find('[name="input_aux_to"]').css("max-width" , parseInt(content.find(".email-area").css("width"))-5).focus().parent().css({"max-height" : "115px", "overflow-y" : "auto"}), ID); //Bot�o TextoRico/TextoSimples content.find(".new-msg-head-right-buttons").find(".button").button().filter(".rich-button").click(function(){ /*Se o texto do bot�o for "Texto simples" exibir� a mensagem antes de alterar para texto simples*/ if($(".rich-button").find("span").text() == get_lang("Simple Text")){ $.Zebra_Dialog(get_lang("Convert this message into plain text can make parts of it are removed. Continue?"), { 'type': 'warning', 'overlay_opacity': '0.5', 'buttons': ['OK','Cancelar'], 'width' : 380, 'onClose': function(clicked) { if(clicked == 'OK'){ RichTextEditor.setPlain(check_input(content.find('[name="textplain_rt_checkbox"]')), ID); $(".rich-button").find("span").text(get_lang("Rich Text")); } } }) } /*Se o texto do bot�o for "Texto rico" simplesmente altera para texto rico*/ else{ RichTextEditor.setPlain(check_input(content.find('[name="textplain_rt_checkbox"]')), ID); $(".rich-button").find("span").text(get_lang("Simple Text")); } }) //Bot�o Adicionar/Remover CCO .end().filter(".cco-button").click(function(){ show_hide(content.find(".cco-tr"), $(this)); }) //Bot�o Adicionar/Remover CC .end().filter(".cc-button").click(function(){ show_hide(content.find(".cc-tr"), $(this)); }) //Bot�o Responder a .end().filter(".reply-to-button").click(function(){ show_hide(content.find(".reply-to-tr"), $(this)); }); content.find(".field-buttons").buttonset(); //BOTAO ENVIAR content.find(".send").button({ icons : { primary : "ui-icon-mail-closed" } }).click(function(){ send_message(ID,preferences.save_in_folder,null); }) //BOTAO SALVAR E ENVIAR .end().find(".save-and-send").button({ icons : { primary : "expressomail-icon-send" } }).click(function(){ wfolders.makeWindow(ID,"send_and_file"); }) //BOTAO SALVAR .end().find(".save").button({ icons : { primary : "ui-icon-disk" } }).click(function(){ save_msg(ID); }) //BOTAO CONF. LEITURA .end().find(".return-recept").button({ icons : { primary : "ui-icon-transfer-e-w" }, text:false }).click(function(){ check_input(content.find('[name="input_return_receipt"]')); $(this).toggleClass("expressomail-button-icon-ative"); }) //BOTAO IMPORTANTE .end().find(".important").button({ icons : { primary : "ui-icon-notice" }, text:false }).click(function(){ check_input(content.find('[name="input_important_message"]')); $(this).toggleClass("expressomail-button-icon-ative"); }) //BOTAO ASS. DIGITAL .end().find(".return_digital").button({ icons : { primary : "ui-icon-key" }, text:false }).click(function(){ check_input(content.find('[name="input_return_digital"]')); }) //BOTAO EMAIL CRYPT .end().find(".return_cripto").button({ icons : { primary : "ui-icon-locked" }, text:false }).click(function(){ check_input(content.find('[name="input_return_cripto"]')); }); content.find(".flags-buttons").buttonset(); content.find(".attachment td").filter(".value").prepend(DataLayer.render("../prototype/modules/mail/templates/attachment.ejs", {ID:ID})); var fileUploadMSG = $('#fileupload_msg'+ID); var maxAttachmentSize = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : false; content.find(".new-msg-head-data").scroll(function(){ $.each(fileUploadMSG.find(".attachments-list .att-box"), function(index, value){ $(this).qtip("api").updatePosition(); $(this).qtip("api").updateWidth(); }); }); $("#fileupload_msg"+ID+"_droopzone").click(function(){ $(this).removeClass('in hover'); $(this).hide(); $(this).prev().show(); }); fileUploadMSG.find(".button").button().filter(".fileinput-button").find(".ui-button-text").css("margin-top", "2px").find("input:file").fileupload({ //singleFileUploads : true,fileUploadMSG sequentialUploads: true, type: 'post', dataType : 'json', url: "../prototype/post.php", forceIframeTransport: false, dropZone : $("#fileupload_msg"+ID+"_droopzone"), formData: function(form) { return [ { name : "mailAttachment[0][source]", value : "files0" }, { name : "mailAttachment[0][disposition]", value : $(form[0]['attDisposition'+$(form[0]['abaID']).val()]).val() }, { name: "MAX_FILE_SIZE", value : maxAttachmentSize } ]; }, add: function (e, data) { var iterator = idattachbycontent; if(!maxAttachmentSize || data.files[0].size < maxAttachmentSize || is_ie) { setTimeout(function() { $('#attDisposition'+ID).val('attachment'); jqXHR[iterator] = data.submit(); }, 100); } fileUploadMSG.find(' .attachments-list').show(); $.each(data.files, function (index, file) { var attach = {}; attach.fullFileName = file.name; attach.fileName = file.name; if(file.name.length > 20) attach.fileName = file.name.substr(0, 17) + " ... " + file.name.substr(file.name.length-6, file.name.length); attach.fileSize = formatBytes(file.size); if(maxAttachmentSize && file.size > maxAttachmentSize) attach.error = 'Tamanho de arquivo nao permitido' else attach.error = true; var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); upload.find('.att-box-delete').click(function(){ var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]').remove(); delAttachment(ID, idAttach); $(this).parent().qtip("destroy"); $(this).parent().remove(); if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ fileUploadMSG.find(' .attachments-list').hide(); } if(jqXHR){ jqXHR[iterator].abort(); } }); fileUploadMSG.find('.attachments-list').append(upload); fileUploadMSG.find('.attachments-list .att-box:last').qtip({ content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), position: { corner: { tooltip: 'bottomMiddle', target: 'topMiddle' }, adjust: { resize: true, scroll: true, screen: true } }, show: { when: 'mouseover', // Don't specify a show event ready: false // Show the tooltip when ready }, hide: 'mouseout', // Don't specify a hide event style: { border: { width: 1, radius: 5 }, width: { min: 75, max : 1000 }, padding: 3, textAlign: 'left', tip: true, // Give it a speech bubble tip with automatic corner detection name: (typeof(attach.error) == 'boolean' ? 'light' : 'red') // Style it according to the preset 'cream' style } })/*.progressbar({ value : 1 })*/; fileUploadMSG.find('.attachments-list .att-box:last').css('width', fileUploadMSG.find('.attachments-list .att-box:last div:first').css('width')); if(!maxAttachmentSize || file.size < maxAttachmentSize){ if(data.fileInput){ fileUploadMSG.find('.fileinput-button.new').append(data.fileInput[0]).removeClass('new'); fileUploadMSG.find('.attachments-list').find('[type=file]').addClass('hidden'); } }else fileUploadMSG.find(' .fileinput-button.new').removeClass('new'); idattachbycontent++ }); }, done: function(e, data){ var attach_box = fileUploadMSG.find('.att-box-loading:first').parents('.att-box'); var attach = { fullFileName : attach_box.find(".att-box-fullfilename").text(), fileSize : attach_box.find(".att-box-filesize").text(), error : false }; if(!!data.result && data.result != "[]" ){ var newAttach = data.result; if(!newAttach.mailAttachment.error || newAttach.rollback !== false){ attach_box.append(''); addAttachment(ID,newAttach['mailAttachment'][0][0].id); }else { attach_box.addClass('invalid-email-box'); attach.error = newAttach.mailAttachment.error ? newAttach.mailAttachment.error : 'Erro ao anexar...';//.append(newAttach.mailAttachment.error).addClass('message-attach-error'); } }else { attach_box.addClass('invalid-email-box');//.qtip("api").updateContent("oi", true); attach.error = 'Erro ao anexar...'; } attach_box.qtip("destroy").qtip({ content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), position: { corner: { tooltip: 'bottomMiddle', target: 'topMiddle' }, adjust: { resize: true, scroll: true, screen: true } }, show: { when: 'mouseover', // Don't specify a show event ready: false // Show the tooltip when ready }, hide: 'mouseout', // Don't specify a hide event style: { border: { width: 1, radius: 5 }, width: { min: 75, max : 1000 }, padding: 3, textAlign: 'left', tip: true, // Give it a speech bubble tip with automatic corner detection name: (attach.error == false ? 'blue' : 'red')// Style it according to the preset 'cream' style } });/* fileUploadMSG.find(".att-box-loading:first").parents(".att-box").removeAttr("style").progressbar("destroy").find("div:first").removeAttr("style"); */ fileUploadMSG.find('.att-box-loading:first').remove(); }/*, progress : function(e, data){ var progress = parseInt(data.loaded / data.total * 100, 10); fileUploadMSG.find('.att-box-loading:first').parents(".att-box:first").progressbar({ value : progress }); }*/ }).css({ "height" : "20px", "width": (is_webkit ? "205px" : "100px"), "border-width": "0 0 0px 0px", "-moz-transform" : "rotate(-180deg) translate(-147px, -0.5px) scale(1.1)", "-webkit-transform" : "rotate(-180deg) translate(-104px, 0px)" }).end().end().end().filter(".message-attach-link").click(function(){ jQuery('#message-attach-dialog').html(DataLayer.render("../prototype/modules/attach_message/attach_message.ejs", {})); $( "#mailpreview_container span.ui-icon-close" ).click(); jQuery('#message-attach-dialog').dialog({ width:920, height:550, resizable:false, modal: true, closeOnEscape:true, close:function(event, ui) { event.stopPropagation(); if(typeof(shortcut) != 'undefined') shortcut.disabled = false; }, open: function(event, ui) { if(typeof(shortcut) != 'undefined') shortcut.disabled = true; }, autoOpen:false }); jQuery.getScript("../prototype/modules/attach_message/attach_message.js", function(){ jQuery('#message-attach-dialog').dialog('open'); jQuery('#message-attach-attach-btn').unbind('click'); jQuery('#message-attach-attach-btn').click(function(event){ jQuery.each(selectedMessages, function(folder_name, messages) { jQuery.each(selectedMessages[folder_name], function(message_number, message) { if (message) { fileUploadMSG.find(' .attachments-list').show(); var att = new Object(); att.folder = folder_name; att.uid = message_number; att.type = 'imapMSG'; att.name = Base64.encode(onceOpenedMessages[folder_name][message_number].subject + '.eml'); var idATT = JSON.stringify(att); addAttachment( ID , idATT); var attach = {}; attach.fileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; attach.fullFileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; if(attach.fileName.length > 20) attach.fileName = attach.fileName.substr(0, 17) + "... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); attach.error = false; attach.OK = true; attach.fileSize = formatBytes(onceOpenedMessages[folder_name][message_number].size); var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); upload.find('.att-box-loading').remove(); upload.append(''); upload.find('.att-box-delete').click(function(){ var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]').remove(); delAttachment(ID,idAttach); $(this).parent().qtip("destroy"); $(this).parent().remove(); if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ fileUploadMSG.find(' .attachments-list').hide(); } }); fileUploadMSG.find('.attachments-list').append(upload); upload.find('.att-box-loading').remove(); fileUploadMSG.find('.attachments-list .att-box:last').qtip({ content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), position: { corner: { tooltip: 'bottomMiddle', target: 'topMiddle' }, adjust: { resize: true, scroll: true } }, show: { when: 'mouseover', // Don't specify a show event ready: false // Show the tooltip when ready }, hide: 'mouseout', // Don't specify a hide event style: { border: { width: 1, radius: 5 }, width: { min: 75, max : 1000 }, padding: 5, textAlign: 'center', tip: true, // Give it a speech bubble tip with automatic corner detection name: 'blue' // Style it according to the preset 'cream' style } }); } }); }); jQuery('#message-attach-dialog').dialog('close'); }); jQuery('#message-attach-cancel-btn').click(function(event){ jQuery('#message-attach-dialog').dialog('close'); }); }); }); $(document).bind('drop dragover', function (e) { e.preventDefault(); }); //DRAG and DROP DE ARQUIVOS N�O FUNCIONA NO IE if(!is_ie){ $("body").bind('dragenter', function (e) { var dropZone = $("#fileupload_msg"+ID+"_droopzone"); var timeout = window.dropZoneTimeout; dropZone.show(); dropZone.prev().hide(); if (!timeout) { dropZone.addClass('in'); } else { clearTimeout(timeout); } if (e.target === dropZone[0]) { dropZone.addClass('hover'); } else { dropZone.removeClass('hover'); } $(window).unbind('dragleave'); window.dropZoneTimeout = setTimeout(function () { $(window).bind('dragleave', function (e) { window.dropZoneTimeout = null; dropZone.removeClass('in hover'); dropZone.hide(); dropZone.prev().show(); }); }, 1); }).bind('dragleave', function (e) { var dropZone = $("#fileupload_msg"+ID+"_droopzone"); window.dropZoneTimeout = setTimeout(function () { $(window).bind('dragleave', function (e) { window.dropZoneTimeout = null; dropZone.removeClass('in hover'); dropZone.hide(); dropZone.prev().show(); }); }, 1); }).bind('drop', function(e){ var dropZone = $("#fileupload_msg"+ID+"_droopzone"); window.dropZoneTimeout = null; dropZone.removeClass('in hover'); dropZone.hide(); dropZone.prev().show(); }); } return ID; } // Verify if any user is sharing his name/email address // for use in the new messages's "From " field. function draw_from_field(sel_from,tr1_1){ var el_shared_users = Element("el_shared_users"); /* Recupera a pasta atual do usu�rio (selecionada) */ var user_shared = folder.split(cyrus_delimiter); /* Verifica se est� nas pr�prias pastas */ if(user_shared[0] == "INBOX"){ user_shared = User.me.uid; }else{ user_shared = user_shared[1]; } // The element was loaded and populated...so return. if(el_shared_users){ // Nothing to work...so return. if(el_shared_users.options.length == 0) return; tr1_1.style.display = ''; for (var x = 0; x < el_shared_users.options.length; x++) { var _option = document.createElement("OPTION"); _option.text = el_shared_users.options[x].text; _option.value = el_shared_users.options[x].value; /* Faz o tratamento do nome da pasta para fazer a verifica��o e selecionar o valor no select */ var str_begin_name = _option.text.indexOf('<') + 1; var str_end_name = _option.text.indexOf('@'); var user_selected_name = _option.text.substring(str_begin_name, str_end_name); /* Verifica se � o usu�rio da pasta selecionada */ if(user_selected_name == user_shared){ _option.selected = 'selected'; } sel_from.options[sel_from.options.length] = _option ; } return; } // Get the shared folders..... var sharedFolders = new Array(); for(var i = 0; i < folders.length; i++) { var x = folders[i].folder_id; if (folders[i].folder_parent == 'user'){ sharedFolders[sharedFolders.length] = x; } } var matchUser = '#'; var sharedUsers = new Array(); // Filter the shared folders (only root folders) ..... for(var i = 0; i < sharedFolders.length; i++) { matchUser = sharedFolders[i]; sharedUsers[sharedUsers.length] = matchUser.substring(("user"+cyrus_delimiter).length,matchUser.length); } // Handler function for cExecute var h_user = function(data) { if(data.length > 0) { tr1_1.style.display = ''; var mycn = typeof(data.myname != 'undefined') ? data.myname : ''; var _option = document.createElement("OPTION"); _option.text = '"'+mycn+'" <'+Element("user_email").value+'>'; _option.value = mycn+";"+Element("user_email").value; /* Verifica se � o usu�rio logado */ if(user_shared == User.me.uid) _option.selected = 'selected'; sel_from.options[sel_from.options.length] = _option; var options = ''; var cn = ''; for (var x = 0; x < data.length; x++) { cn = typeof(data[x].cn[0] != 'undefined') ? data[x].cn[0] : ''; var _option = document.createElement("OPTION"); _option.text = '"'+cn+'" <'+data[x].mail[0]+'>'; _option.value = cn+';'+data[x].mail[0]+';'+data[x].save_shared[0]+';'+data[x].uid[0]; /* Faz o tratamento do nome da pasta para fazer a verifica��o e selecionar o valor no select */ var str_begin_name = _option.text.indexOf('<') + 1; var str_end_name = _option.text.indexOf('@'); var user_selected_name = _option.text.substring(str_begin_name, str_end_name); /* Verifica se � o usu�rio da pasta selecionada */ if(user_selected_name == user_shared){ _option.selected = 'selected'; } sel_from.options[sel_from.options.length] = _option ; } } var shared_users_from = Element("el_shared_users"); if(!shared_users_from) { shared_users_from = sel_from.cloneNode(true); shared_users_from.id = "el_shared_users"; shared_users_from.style.display = 'none'; document.body.appendChild(shared_users_from); } } // First time, so execute..... cExecute ("$this.ldap_functions.getSharedUsersFrom&uids="+sharedUsers.join(';'), h_user); } function changeBgColorToON(all_messages, begin, end){ var _tab_prefix = getTabPrefix(); var _msg_id; for (begin; begin<=end; begin++) { _msg_id = getMessageIdFromRowId(all_messages[begin].id); add_className(all_messages[begin], 'selected_msg'); Element(_tab_prefix + "check_box_message_" + _msg_id).checked = true; updateSelectedMsgs(true,_msg_id); } } function updateBoxBgColor(box){ // Set first TR Class var _className = 'tr_msg_read2'; for(var i = 0; i < box.length;i++){ if(exist_className(box[i],_className)) remove_className(box[i], _className); _className = (_className == 'tr_msg_read2' ? 'tr_msg_read' : 'tr_msg_read2'); if(!exist_className(box[i],_className)) add_className( box[i], _className); } } function changeBgColor(event, msg_number) { var _element_id = msg_number.toString(); var first_order, last_order; if (typeof(currentTab)!='number') { _element_id = _element_id+'_s'+numBox; } actual_tr = Element(_element_id); if (event.shiftKey) { var last_tr = Element(last_message_selected); if(!last_tr) last_tr = actual_tr; var all_messages = actual_tr.parentNode.childNodes; for (var i=0; i < all_messages.length; i++) { if (actual_tr.id == all_messages[i].id) first_order = i; if (last_tr.id == all_messages[i].id) last_order = i; } if (parseInt(first_order) > parseInt(last_order)) changeBgColorToON(all_messages, last_order, first_order); else changeBgColorToON(all_messages, first_order, last_order); }else if(event.target != document.getElementById(getTabPrefix()+'check_box_message_' + msg_number)){ if($(event.target).attr("checked") == "checked"){ $(event.target).parents("tr:first").addClass("selected_msg"); }else{ $(event.target).parents("tr:first").removeClass("selected_msg"); } } else{ //if ( exist_className(actual_tr, 'selected_msg') ) if ( document.getElementById(getTabPrefix()+'check_box_message_' + msg_number).checked ){ if( document.getElementById("chk_box_select_all_messages").checked) { add_className(actual_tr, 'selected_msg selected_shortcut_msg'); }else add_className(actual_tr, 'selected_msg'); }else{ if( document.getElementById("chk_box_select_all_messages").checked){ remove_className(actual_tr, 'selected_msg selected_shortcut_msg'); remove_className(actual_tr, 'selected_msg'); remove_chk_box_select_all_messages(); if(actual_tr.className == 'selected_msg') remove_className(actual_tr, 'selected_msg'); }else remove_className(actual_tr, 'selected_msg'); } } last_message_selected = _element_id; } function build_quota(data){ id = "content_quota"; q_limit = data['quota_limit']; var div = document.getElementById(id); if(!q_limit){ div.innerHTML = ''+get_lang("Without Quota")+''; } else{ if(div) div.innerHTML = ''; value = data['quota_percent']; q_used = data['quota_used']; table = document.getElementById("table_quota"); if(table) table.parentNode.removeChild(table); table = document.createElement("TABLE"); tbody = document.createElement("TBODY"); table.appendChild(tbody); table.id = "table_quota"; table.width="102"; table.border="0"; table.cellSpacing = 0; table.cellPadding = 0; //tr1 = document.createElement("TR"); td11 = document.createElement("TD"); td11.align="center"; td11.setAttribute("noWrap","true"); td11.innerHTML += '
 ' + value+"% ("+borkb(q_used*1024)+"/"+borkb(q_limit*1024)+")"; //tr1.appendChild(td11); tr2 = document.createElement("TR"); td22 = document.createElement("TD"); //td21.appendChild(table221); //tr2.appendChild(td21); tr2.appendChild(td11); //tr2.appendChild(td1); tbody.appendChild(tr2); //Desenho //tbody.appendChild(tr1); //Letras div.appendChild(table); $("#quota_progressbar").progressbar({ value: value }); if(value > 90) { if(value >= 100) write_msg(get_lang("Your Mailbox is 100% full! You must free more space or will not receive messages.")); else write_msg(get_lang("Warning: Your Mailbox is almost full!")); $("#quota_progressbar").find(".ui-progressbar-value").css({"background-image": "url(templates/default/images/dsalert.gif)", "border-color" : "red"}); } else if(value > 80) $("#quota_progressbar").find(".ui-progressbar-value").css({"background-image": "url(templates/default/images/dswarn.gif)", "border-color" : "yellow"}); } } function draw_quota(data){ this.build_quota(data); } function update_quota(folder_id){ cExecute ("$this.imap_functions.get_quota&folder_id="+folder_id,this.build_quota); } function draw_search(headers_msgs){ Element("border_id_0").innerHTML = "  " + get_lang('Search Result') + "  "; var tbody = Element('tbody_box'); for (var i=0; i<(headers_msgs.length); i++){ // passa par�metro offset var tr = this.make_tr_message(headers_msgs[i], headers_msgs[i].msg_folder); if (tr) tbody.appendChild(tr); } } function draw_search_header_box(){ var table_message_header_box = Element("table_message_header_box"); table_message_header_box.parentNode.removeChild(table_message_header_box); var content_id_0 = Element("content_id_0"); var table_element = document.createElement("TABLE"); var tbody_element = document.createElement("TBODY"); table_element.setAttribute("id", "table_message_header_box"); table_element.className = "table_message_header_box"; tr_element = document.createElement("TR"); tr_element.className = "message_header"; td_element1 = document.createElement("TD"); td_element1.setAttribute("width", "1%"); chk_box_element = document.createElement("INPUT"); chk_box_element.id = "chk_box_select_all_messages"; chk_box_element.setAttribute("type", "checkbox"); chk_box_element.className = "checkbox"; chk_box_element.onclick = function(){select_all_messages(this.checked);}; chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages.')}; chk_box_element.onkeydown = function (e){ if (is_ie) { if ((window.event.keyCode) == 46) { //delete_all_selected_msgs_imap(); proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); } } else { if ((e.keyCode) == 46) { //delete_all_selected_msgs_imap(); proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); } } }; td_element1.appendChild(chk_box_element); td_element2 = document.createElement("TD"); td_element2.setAttribute("width", "3%"); td_element3 = document.createElement("TD"); td_element3.setAttribute("width", "30%"); td_element3.id = "message_header_SORTFROM"; td_element3.align = "left"; td_element3.innerHTML = get_lang("From"); td_element4 = document.createElement("TD"); td_element4.setAttribute("width", "49%"); td_element4.id = "message_header_SORTSUBJECT"; td_element4.align = "left"; td_element4.innerHTML = get_lang("Subject"); td_element5 = document.createElement("TD"); td_element5.setAttribute("width", "10%"); td_element5.id = "message_header_SORTARRIVAL"; td_element5.align = "center"; td_element5.innerHTML = ""+get_lang("Date")+""; td_element5.innerHTML += ""; td_element6 = document.createElement("TD"); td_element6.setAttribute("width", "10%"); td_element6.id = "message_header_SORTSIZE"; td_element6.align = "right"; td_element6.innerHTML = get_lang("Size"); tr_element.appendChild(td_element1); tr_element.appendChild(td_element2); tr_element.appendChild(td_element3); tr_element.appendChild(td_element4); tr_element.appendChild(td_element5); tr_element.appendChild(td_element6); tbody_element.appendChild(tr_element); table_element.appendChild(tbody_element); content_id_0.appendChild(table_element); } function draw_search_division(msg){ var tbody = Element('tbody_box'); var tr = document.createElement("TR"); var td = document.createElement("TD"); td.colSpan = '7'; td.width = '100%'; var action_info_table = document.createElement("TABLE"); var action_info_tbody = document.createElement("TBODY"); action_info_table.className = "action_info_table"; action_info_table.width = "100%"; var action_info_tr = document.createElement("TR"); var action_info_th1 = document.createElement("TH"); action_info_th1.width = "40%"; action_info_th1.innerHTML = " "; var action_info_th2 = document.createElement("TH"); action_info_th2.innerHTML = msg; action_info_th2.className = "action_info_th"; action_info_th2.setAttribute("noWrap", "true"); var action_info_th3 = document.createElement("TH"); action_info_th3.width = "40%"; action_info_th3.innerHTML = " "; action_info_tr.appendChild(action_info_th1); action_info_tr.appendChild(action_info_th2); action_info_tr.appendChild(action_info_th3); action_info_tbody.appendChild(action_info_tr); action_info_table.appendChild(action_info_tbody); td.appendChild(action_info_table); tr.appendChild(td); tbody.appendChild(tr); } function draw_search_box(){ var content_id_0 = Element("content_id_0"); var table = document.createElement("TABLE"); table.id = "table_box"; table.width = 'auto'; var tbody = document.createElement("TBODY"); tbody.id = "tbody_box"; table.className = "table_box"; table.setAttribute("frame", "below"); table.setAttribute("rules", "none"); table.setAttribute("cellpadding", "0"); table.onkeydown = function (e){ if (is_ie) { if ((window.event.keyCode) == 46) { //delete_all_selected_msgs_imap(); proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); } } else { if ((e.keyCode) == 46) { //delete_all_selected_msgs_imap(); proxy_mensagens.delete_msgs(get_current_folder(),'selected','null'); } } }; if (is_ie) table.style.cursor = "hand"; table.appendChild(tbody); content_id_0.appendChild(table); } var idx_cc = 0; function draw_plugin_cc(ID, addrs){ connector.loadScript("ccQuickAdd"); var array_addrs = ''; var array_name = ''; var cc_data = new Array(); if(typeof(addrs.name) != 'undefined') { array_name = LTrim(addrs.name).split(" "); array_addrs = new Array(addrs.email); } else { array_addrs = (typeof addrs == 'object' ? addrs.toString().split("\" ") : addrs.split("\" ")); array_name = LTrim(array_addrs[0]).replace('"','').split(" "); } var _split = array_name[0].split('@'); cc_data[0] = _split[0]; cc_data[1] = _split[0]; cc_data[2] = ''; for (i=1; i < array_name.length; i++) cc_data[2] += array_name[i] + " "; if(array_addrs.length > 1) cc_data[3] = array_addrs[1] ? array_addrs[1].replace("<",'').replace(">",'') : ''; else cc_data[3] = array_addrs[0]; var onclick = ''; $.each(cc_data, function(index, value){ onclick += "'"+value+"',"; }); onclick = onclick.substr(0, onclick.length-1); var sm_envelope_img1 = ''; var to_addybook_add = ""; to_addybook_add += addrs; to_addybook_add += sm_envelope_img1; idx_cc++; to_addybook_add += ""; return to_addybook_add; } function deny_email(email){ connector.loadScript("filter"); connector.loadScript("filters"); var dn_em = document.createElement("SPAN"); dn_em.id = "tt_d"; dn_em.onclick = function(){block_user_email(email); /*filter.new_rule(email);*/}; dn_em.setAttribute("title",get_lang("Block Sender")); dn_em.style.cursor = "pointer"; dn_em.innerHTML = ""; return dn_em; } function show_div_address_full(id, type) { var div_address_full = Element("div_"+type+"address_full_"+id); if(!div_address_full) { div_address_full = document.createElement("SPAN"); div_address_full.id = "div_"+type+"address_full_"+id; div_address_full.style.display="none"; var _address = eval(type+"address_array['"+id+"']"); var isOverLimit = (_address.length > 100); if(isOverLimit) { alert("Esse campo possui muitos endere�os ("+_address.length+" destinat�rios).\r\n"+ "Para evitar o travamento do navegador, o bot�o 'Adicionar Contato' foi desabilitado!"); } for(var idx = 1 ; idx < _address.length;idx++) { div_address_full.innerHTML += isOverLimit ? '
'+_address[idx] : ','+draw_plugin_cc(id,_address[idx]); } div_address_full.innerHTML += " ("+get_lang('less')+")"; Element(type+"_"+id).appendChild(div_address_full); } Element('div_'+type+'address_'+id).style.display='none'; div_address_full.style.display=''; } function draw_footer_box(num_msgs){ folder = get_current_folder(); connector.loadScript('wfolders'); var span_R = Element("table_message"); var span_options = Element("span_options"); if(!span_options) { span_options = document.createElement("TD"); span_options.style.fontSize = "12"; span_options.id = "span_options"; span_R.appendChild(span_options); } var change_font_color = 'onmouseover="var last_class = this.className;'+ 'if (this.className != \'message_options_over\')'+ 'this.className=\'message_options_active\'; '+ 'this.onmouseout=function(){this.className=last_class;}"'; span_options.innerHTML = ''+get_lang("Delete")+''+ ''+get_lang("Move")+''+ ((expresso_offline)?" ":''+get_lang("Print")+'')+ // ''+get_lang("Print")+''+ ((expresso_offline)?" ":''+get_lang("Export")+'') + ((expresso_offline)?" ":''+get_lang("Import")+''); if(preferences.use_local_messages==1 && !expresso_offline) if(proxy_mensagens.is_local_folder(current_folder)) span_options.innerHTML += '  '+get_lang("Unarchive")+''; else span_options.innerHTML += '  '+get_lang("Archive")+''; if (use_spam_filter) { if ( current_folder == 'INBOX'+cyrus_delimiter+'Spam' ) { span_options.innerHTML += ' | '+get_lang("Not Spam")+''; } else { span_options.innerHTML += ' | '+get_lang("Mark as Spam")+''; } } var span_D = Element("span_D"); if(!span_D){ span_D = document.createElement("TD"); span_D.align = "right"; span_D.style.fontSize = "12"; span_D.id = "span_D"; span_R.appendChild(span_D); } span_D.innerHTML = get_lang("List")+': '+ ''+get_lang("All")+', '+ ''+get_lang("l_unseen")+', '+ ''+get_lang("l_seen")+', '+ ''+get_lang("l_answered")+', '+ ''+get_lang("l_important")+'  '; draw_paging(num_msgs); Element("tot_m").innerHTML = num_msgs; }