/**
* 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(' ');
$('#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 += ' ";
//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;
}