/**************************************************************************\ Início \**************************************************************************/ function searchE() { this.totalPages = 1; this.numPages = 5; this.lastPage = 0; this.searchW = []; this.condition = ""; this.sort_type = ""; //this.page = 0; this.name_box_search = ""; this.all_boxes = []; this.type = ""; this.txtfields = new Array("txt_ass","txt_de","txt_body","txt_para","txt_cc","txt_cco", "since_date", "before_date", "on_date"); this.selectFields = new Array("flagged", "seen", "answered", "recent"); this.localResults = 0; } //Monta os forms dentro da janela; searchE.prototype.showForms = function(value) { // Principal if(!Element("window_search")) { var form_search = document.createElement("DIV"); form_search.style.visibility = 'hidden'; form_search.style.top = '0px'; form_search.style.left = '0px'; form_search.id = "window_search"; document.body.appendChild(form_search); } // Pesquisa if(!Element("div_form_search")) { var div_form_search = document.createElement("DIV"); div_form_search.id = "div_form_search"; div_form_search.style.position = "absolute"; div_form_search.style.left = "10px"; div_form_search.style.top = "10px"; div_form_search.style.borderStyle = "outset"; div_form_search.style.borderColor = "black"; div_form_search.style.borderWidth = "1px"; div_form_search.style.width = "784px"; div_form_search.style.height = "418px"; div_form_search.style.overflow = "hidden"; div_form_search.innerHTML = ""; var call_form_search = EsearchE.mount_form(); div_form_search.appendChild(call_form_search); form_search.appendChild(div_form_search); Calendar._TT['WEEKEND'] = '0,6'; // hack Calendar._TT['DAY_FIRST'] = 'Mostrar %s primeiro'; Calendar.setup({ inputField : 'since_date', button : 'since_date-trigger', ifFormat : '%d/%m/%Y', daFormat : '%d/%m/%Y', overMe : 'window_search' }); Calendar.setup({ inputField : 'before_date', button : 'before_date-trigger', ifFormat : '%d/%m/%Y', daFormat : '%d/%m/%Y', overMe : 'window_search' }); Calendar.setup({ inputField : 'on_date', button : 'on_date-trigger', ifFormat : '%d/%m/%Y', daFormat : '%d/%m/%Y', overMe : 'window_search' }); } if(!Element("div_button_search")){ var div_button_search = document.createElement("DIV"); div_button_search.id = "div_button_search"; div_button_search.style.position = "absolute"; div_button_search.style.marginLeft = "430px"; div_button_search.style.top = "253px"; div_button_search.style.width = "350px"; div_button_search.style.height = "25px"; div_button_search.innerHTML = ""+ ""+ ""+ ""+ ""+ ""+ "
"; form_search.appendChild(div_button_search); } if(!Element("table_layer")){ var table_layer = ""; } if(value == "") EsearchE.showWindow(Element("window_search")); // Cria as caixas postais; EsearchE.mount_folders(); if(value) { Element("check_all_msg").checked = true; EsearchE.all_mailboxes(); EsearchE.func_search(value); } } //Form searchE.prototype.mount_form = function(value) { var form_sch = document.createElement("FORM"); form_sch.id = "form_sch"; form_sch.innerHTML = '
' + ' '+get_lang('Inform your search in the text fields')+'' + ' ' + ' ' + '
' + ' ' + ' ' + '
' + ' ' + ' ' + '
' + ' ' + ' ' + '
' + ' ' + ' ' + '
' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '
' + ' ' + ' ' + '   ' + '
' + ' ' + ' ' + '
' + ' ' + '
' + ' ' + '
' + ' ' + '
' + '
' + '
' + ' '+get_lang('Search the messages in these folders')+'' + '
' + '
' + ' ' + '
' + ' ' + '
' + '
' + ' ' + '
' + '
' + ' ' + ' ' + '
' + '
' + ' ' + ' ' + '
' + '
'; return form_sch; } // Pastas; searchE.prototype.mount_folders = function() { connector.loadScript("TreeS"); if( Element("div_folders_search") == null) { var div_folders = document.createElement("DIV"); div_folders.id = "div_folders_search"; div_folders.style.width = "155px"; div_folders.style.height = "152px"; div_folders.style.borderStyle = "outset"; div_folders.style.borderColor = "black"; div_folders.style.borderWidth = "1px"; div_folders.style.background = "#F7F7F7"; div_folders.style.overflow = "auto"; div_folders.innerHTML = ""; var dest_div = Element("folders"); dest_div.appendChild(div_folders); } var tree_folders_search = new dFTree({name: 'search_folders'}); //ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","",""); //ttree.make_tree(folders,"div_folders_search","search_folders","","","",""); ttree.make_tree(folders,"div_folders_search","search_folders","","","",false); var drawinginfo = {treeObject: tree_folders_search, treeName: 'search_folders'}; expresso_mail_archive.drawdata = drawinginfo; } function openpage(data) { var _data = [3]; var _gears = []; var local_folders = []; // Gears - local if (preferences.use_local_messages == 1 && EsearchE.localResults != 0) { /*temp = expresso_local_messages.list_local_folders(); temp = expresso_mail_archive.listFolders(); for (var x in temp) { local_folders.push(temp[x][0]); } if ( local_folders.length > 0 ) _gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); _data['gears_num_msgs'] = _gears.length; */ _data['gears_num_msgs'] = expresso_mail_archive.search_queryresult.length; }else{ _data['gears_num_msgs'] = 0; } _data['data'] = data['data']; _data['num_msgs'] = data['num_msgs']; delete_border( data['currentTab'], false); EsearchE.mount_result(_data); } searchE.prototype.show_paging = function(size) { /*if ( preferences.use_local_messages == 1 && expresso_mail_archive.folder) var is_local_folder_search = true; else var is_local_folder_search = false; */ var span_pg = Element("span_paging"+currentTab); if( span_pg == null ) { span_pg = document.createElement('span'); span_pg.id = "span_paging"+currentTab; } else span_pg.innerHTML = ""; if(size > parseInt(preferences.max_email_per_page)) { this.totalPages = parseInt(size/preferences.max_email_per_page); if((size/preferences.max_email_per_page) > this.totalPages) this.totalPages++; } if(this.page != 0) { _link = document.createElement("A"); _link.href = 'javascript:EsearchE.page=0;'; _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0¤t_tab='+currentTab+'");'; } else { _link = document.createElement("SPAN"); } span_pg.appendChild(_link); _link.innerHTML = "<<"; _link.title = get_lang("First"); span_pg.innerHTML += " "; if(this.page == this.lastPage + (this.numPages)) { this.lastPage = this.page - 1; } else if((this.lastPage != 0 && this.lastPage == this.page) || this.page == (this.totalPages-1)) { this.lastPage = this.page - (this.numPages - 1); } else if(this.page == 0) { this.lastPage = 0; } if(this.lastPage < 0) this.lastPage = 0; else if(this.lastPage > 0 && (this.lastPage > (this.totalPages -(this.numPages - 1)))) this.lastPage = this.totalPages -(this.numPages); var hasMarked = false; for(i = this.lastPage; i <= this.totalPages; i++) { if( ( i * preferences.max_email_per_page ) > size) { break; } if( this.page == i || (i == this.totalPages && !hasMarked) ) { var _link = document.createElement('span'); _link.setAttribute("style", "font-weight:bold; color:red") _link.innerHTML = ( this.page + 1 ) + "  "; } else { var _page = i; var _link = document.createElement('A'); _link.innerHTML = ( _page + 1 ) + "  "; _link.href = 'javascript:EsearchE.page='+i+';'; //if(!is_local_folder_search) _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+_page+'¤t_tab='+currentTab+'");'; //else{ //var offlow = (i*preferences.max_email_per_page)+1; //var offtop = (i*preferences.max_email_per_page)*2; //var src_offset = eval('({"lowerIndex":"' + offlow + '", "upperIndex":"' + offtop + '"})'); //expresso_mail_archive.querydata = expresso_mail_archive.queryconfig.query(src_offset); //var localtabid = currentTab.substr(currentTab.indexOf('local_msg')+9, currentTab.length); //window.alert('tab id = ' + currentTab.substr(currentTab.indexOf('local_msg')+9, currentTab.length)); //_link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+_page+'¤t_tab='+currentTab+'");'; //_link.href += "current_page="+i+";kill_current_box(); draw_paging("+expresso_mail_archive.queryresult.length+");expresso_mail_archive.search();alternate_border("+localtabid+"); draw_box(expresso_mail_archive.queryresult, get_current_folder());"; //_link.href += "expresso_mail_archive.search();delete_border("+localtabid+", false); EsearchE.mount_result(expresso_mail_archive.queryresult, this.sort_type);"; //} } _link.innerHTML = " ... "; if(i == (this.lastPage + this.numPages)) { span_pg.appendChild( _link ); break; } else if(this.lastPage == 0 || i != this.lastPage) { _link.innerHTML = " "+( i + 1 )+" "; } //span_pg.innerHTML += " "; span_pg.appendChild( _link ); } if(this.page != (this.totalPages - 1)) { _link = document.createElement("A"); _link.href = 'javascript:EsearchE.page='+(this.totalPages-1)+';'; _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+(this.totalPages-1)+'¤t_tab='+currentTab+'");'; } else { _link = document.createElement("SPAN"); } span_pg.innerHTML += " "; span_pg.appendChild(_link); _link.title = get_lang("Last"); _link.innerHTML += ">>"; Element("div_menu_c3").appendChild(span_pg); } searchE.prototype.searchFor = function( borderID, sortType ) { var border_id = borderID; var sort_type = sortType; var is_local = border_id.match('.*_local_.*'); var args = "$this.imap_functions.search_msg"; var params = "condition="+EsearchE.condition+"&page="+EsearchE.page+"&sort_type="+sort_type; var handler = function( data ) { var allMsg = [3]; var gears = []; var local_folders = []; if ( preferences.use_local_messages == 1 && is_local) { if(sortType.toLowerCase().indexOf("_") == -1){ var sortcrt = sortType.toLowerCase(); var sortord = 'asc'; } else{ var sortcrt = sortType.toLowerCase().substr(0, sortType.toLowerCase().indexOf("_")); var sortord = 'desc'; } switch(sortcrt){ case 'sortwho': var oexpcrt = 'from'; break; case 'sortsubject': var oexpcrt = 'subject'; break; case 'sortsize': var oexpcrt = 'size'; break; case 'sortbox': var oexpcrt = 'folder'; break; default: var oexpcrt = 'date'; break; } var oexporder = eval('({"order":{"' + oexpcrt + '":"' + sortord + '"}})'); expresso_mail_archive.querydata = expresso_mail_archive.search_queryconfig.query(oexporder); expresso_mail_archive.search(); var ma_query_result = expresso_mail_archive.search_queryresult; //expresso_mail_archive.search(local_folders, fields); //expresso_local_messages.setSortType('SORTDATE'); //tmp = expresso_local_messages.search( local_folders, fields ); //tmp = expresso_mail_archive.queryresult; } if( data['num_msgs']) { allMsg['data'] = data['data']; allMsg['num_msgs'] = data['num_msgs']; } if (ma_query_result.length > 0) { this.localResults = ma_query_result.length; allMsg['data_gears'] = ma_query_result; }else{ this.localResults = 0; } delete_border( border_id, false ); EsearchE.mount_result( allMsg , sort_type ); }; if (is_local) { eval("handler('none')"); } else { cExecute(args,handler,params); } } searchE.prototype.viewLocalMessage = function() { var data = [2]; var gears = []; var local_folders = []; //MailArchiver - local data if ( preferences.use_local_messages == 1 ) { data['data_gears'] = expresso_mail_archive.search_queryresult; data['num_msgs'] = expresso_mail_archive.search_queryresult.length; write_msg( data['num_msgs'] + " " + get_lang("results found") ); EsearchE.mount_result(data , 'SORTDATE'); } } searchE.prototype.make_tr_message = function(aux,border_id,i) { var tr = document.createElement("TR"); if(typeof(preferences.line_height) != 'undefined') tr.style.height = preferences.line_height; var mailbox = aux.boxname; var uid_msg = aux.uid; var subject = aux.subject; tr.id = uid_msg+"_s"+numBox; // Keep the two lines together please tr.setAttribute('name',mailbox); tr.name = mailbox; if ( aux.flag.match("U") ) add_className(tr,'tr_msg_unread'); add_className(tr, i%2 != 0 ? 'tr_msg_read2' : 'tr_msg_read'); var _onclick = function() { proxy_mensagens.get_msg(this.parentNode.id,url_encode(this.parentNode.getAttribute('name')),false,show_msg); }; for(var j=0 ; j <= 10 ; j++) { var td = document.createElement("TD"); if (j == 0) { td.setAttribute("width", colSizes[1][0]); var chk_onclick; if (is_ie) chk_onclick = "changeBgColor(window.event,"+uid_msg+");"; else chk_onclick = "changeBgColor(event,"+uid_msg+");"; var td1 = ''; } if (j == 1) { td.setAttribute("width", colSizes[1][1]); if (aux.flag.match('T')) { attachNum = parseInt(aux.flag.substr(aux.flag.indexOf('T')+1)); td1 = ""; } else td1 = ''; } if (j == 2) { td.setAttribute("width", colSizes[1][2]); td.id = "td_message_answered_"+uid_msg; if (aux.flag.match('X')) td1 = ''; else if (aux.flag.match('A')) td1 = ''; else td1 = ''; } if (j == 3) { td.setAttribute("width", colSizes[1][3]); td.id = "td_message_important_"+tr.id; if (aux.flag.match("F")) { add_className(tr, 'flagged_msg'); td1 = ""; } else td1 = ''; } if (j == 4) { td.setAttribute("width", colSizes[1][4]); td.id = "td_message_sent_"+uid_msg; td1 = ''; } if ( j == 5 ) { td.setAttribute("width", colSizes[1][5]); td.className = "td_resizable"; td.onclick = _onclick; var nm_box = aux.boxname.split(cyrus_delimiter); var td1 = nm_box.pop(); td.setAttribute("NoWrap","true"); td.style.overflow = "hidden"; td.style.color = "#42795b"; td.style.fontWeight = "bold"; var td1 = get_lang(td1).substr(get_lang(td1).length-1) == "*"?td1:get_lang(td1); td1 = translateFolder(td1); if( proxy_mensagens.is_local_folder(td1)) { var td1 = this.aux_local_folder_display(td1); } } if( j == 6 ) { if (aux.from.length > 29) aux.from = aux.from.substr(0,29) + "..."; td.setAttribute("width", colSizes[1][6]); td.className = "td_resizable"; td.onclick = _onclick; td.setAttribute("NoWrap","true"); td.style.overflow = "hidden"; var td1 = '
'+aux.from+"
"; } if( j == 7 ) { var subject_encode = url_encode(subject); if (! subject_encode) aux.subject = get_lang("no subject") + "..."; if (aux.subject.length > 70) aux.subject = aux.subject.substr(0,70) + "..."; td.setAttribute("width", colSizes[1][7]); td.className = "td_resizable"; td.onclick = _onclick; td.setAttribute("NoWrap","true"); td.style.overflow = "hidden"; var td1 = aux.subject; } if( j == 8 ) { td.setAttribute("width", colSizes[1][8]); td.className = "td_resizable"; td.align = "center"; td.onclick = _onclick; var today = new Date(); today.setHours(23); today.setMinutes(59); today.setSeconds(59); today.setMilliseconds(999) // old local messages can capture headers_msgs.udate as "hh:mm" or "dd/mm/yyyy" if (aux.udate.toString().match(/\d{2}:\d{2}/) || aux.udate.toString().match(/\d{2}\/\d{2}\/\d{4}/)) { //temp_msg_day = aux.msg_day.split('/'); //temp_msg_hour = aux.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]); date_msg = aux.udate; } 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 = aux.udate*1000 + gmtoffset*1000 + today.getTimezoneOffset()*60*1000; date_msg = new Date(udate_local); } //if( validate_date( aux.udate ) ) if( validate_date( new String(date_msg) ) ) { var td1 = date_msg; } else { var dt = new Date( aux.udate * 1000 ); var td1 = dt.getDate() + "/"; if( !( dt.getMonth() + 1 ).toString().match(/\d{2}/) ) td1 += "0"+( dt.getMonth() + 1 ) + "/"; else td1 += ( dt.getMonth() + 1 ) + "/"; td1 += dt.getFullYear(); } } if( j == 9 ) { td.setAttribute("width", colSizes[1][9]); td.className = "td_resizable"; td.align = "center"; td.onclick = _onclick; var td1 = borkb(aux.size); } if( j == 10 ) { if (aux.flag.match("U")) add_className(tr, 'tr_msg_unread'); if (aux.flag.match("F")) add_className(tr, 'flagged_msg'); var td1 = ''; } if (j<10) { td.innerHTML = td1; tr.appendChild(td); } } _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox); return tr; } // Form resultado searchE.prototype.mount_result = function( Data, sort_type, keep_border ) { var data = ( Data['data'] ) ? Data['data'] : Data['data_gears']; if ( data == undefined ) return; var cont = parseInt(0); if ( typeof(sort_type) != 'undefined') this.sort_type = sort_type; else sort_type = this.sort_type; var tab = numBox; if ( keep_border ) { var border_id = currentTab; } else { tab = count_borders() + 1; if( Data['data'] ) var border_id = create_border(get_lang("Server Results"), "search_" + tab); if( Data['data_gears']) var border_id = create_border(get_lang("Local Results"), "search_local_msg" + tab); } if (!border_id) return; currentTab = border_id; openTab.content_id[currentTab] = Element('content_id_search_' + tab); openTab.type[currentTab] = 1; openTab.condition[currentTab] = this.condition; if ( keep_border ) { var content_search = Element('content_id_' + border_id); var div_scroll_result = Element("divScrollMain_"+tab); content_search.removeChild(div_scroll_result); } var table = document.createElement("TABLE"); table.id = "table_resultsearch_" + tab; table.frame = "void"; table.rules = "rows"; table.cellPadding = "0"; table.cellSpacing = "0"; table.className = "table_box"; var tbody = document.createElement("TBODY"); tbody.id = "tbody_box_" + tab; for( var i=0; i < data.length; i++) { var tr = EsearchE.make_tr_message(data[i],border_id,i); tbody.appendChild(tr); } //global_search++; //Tabs from search must not have the same id on its tr's // use numBox instead of this! table.appendChild(tbody); var colgr_element = buildColGroup(1); colgr_element.setAttribute("id","colgroup_main_"+tab); table.appendChild(colgr_element); var content_search = Element('content_id_' + border_id); var div_scroll_result = document.createElement("DIV"); div_scroll_result.id = "divScrollMain_"+tab; div_scroll_result.style.overflowY = "scroll"; div_scroll_result.style.overflowX = "hidden"; div_scroll_result.style.width ="100%"; if (is_mozilla){ div_scroll_result.style.overflow = "-moz-scrollbars-vertical"; div_scroll_result.style.width ="100%"; } if(is_ie) Element("border_table").width = "99.5%"; // Put header var table_element = document.createElement("TABLE"); var tbody_element = document.createElement("TBODY"); if (is_ie) { table_element.attachEvent("onmousemove",changeCursorState); table_element.attachEvent("onmousedown",startColResize); } else { table_element.addEventListener("mousemove",changeCursorState,false); table_element.addEventListener("mousedown",startColResize,false); } table_element.setAttribute("id", "table_message_header_box_"+tab); table_element.className = "table_message_header_box"; if (!is_ie) table_element.style.width = "98.8%"; table_element.emptyBody = false; tr_element = document.createElement("TR"); tr_element.className = "message_header"; td_element0 = createTDElement(1,0); 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_search_messages(this.checked,content_search.id);}; 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_msgs(current_folder,'selected','null'); } else { if ((e.keyCode) == 46) delete_msgs(current_folder,'selected','null'); } }; td_element0.appendChild(chk_box_element); td_element01 = createTDElement(1,1); td_element02 = createTDElement(1,2); td_element03 = createTDElement(1,3); td_element04 = createTDElement(1,4); td_element1 = createTDElement(1,5,"th_resizable","left"); var arrow_ascendant = function(Text) { return "" + Text + ""; } // Ordernar Pasta if ( sort_type == 'SORTBOX') { //MailArchiver: Local folders does not order by folder name if(currentTab.indexOf('search_local')!=-1){ td_element1.innerHTML = ""+get_lang("Folder")+""; } else{ if( Data['data'] ) { td_element1.onclick = function(){ EsearchE.searchFor(border_id, 'SORTBOX_REVERSE'); }; td_element1.innerHTML = ""+get_lang("Folder")+""; } else { td_element1.onclick = function(){ EsearchE.searchFor(border_id, 'SORTBOX_REVERSE'); }; td_element1.innerHTML = ""+get_lang("Folder")+""; } } } else { //MailArchiver: Local folders does not order by folder name if(currentTab.indexOf('search_local')!=-1){ td_element1.innerHTML = ""+get_lang("Folder")+""; } else{ if( Data['data'] ) { td_element1.onclick = function(){ EsearchE.searchFor(border_id, 'SORTBOX'); }; } else { td_element1.onclick = function(){ EsearchE.searchFor(border_id, 'SORTBOX'); }; } td_element1.innerHTML = ( sort_type == 'SORTBOX_REVERSE' ) ? arrow_ascendant(get_lang("Folder")) : get_lang("Folder"); } } // Ordernar Quem td_element2 = createTDElement(1,6,"th_resizable","left"); if (sort_type == 'SORTWHO') { if(Data['data']) { td_element2.onclick = function(){ EsearchE.searchFor(border_id, 'SORTWHO_REVERSE'); }; td_element2.innerHTML = ""+get_lang("who")+""; } else { td_element2.onclick = function(){ EsearchE.searchFor(border_id, 'SORTWHO_REVERSE'); }; td_element2.innerHTML = ""+get_lang("who")+""; } } else { if( Data['data'] ) { td_element2.onclick = function(){ EsearchE.searchFor(border_id, 'SORTWHO'); }; } else { td_element2.onclick = function(){ EsearchE.searchFor(border_id, 'SORTWHO'); }; } td_element2.innerHTML = ( sort_type == 'SORTWHO_REVERSE' ) ? arrow_ascendant(get_lang("who")) : get_lang("who"); } // Ordernar Subject td_element3 = createTDElement(1,7,"th_resizable","left"); if (sort_type == 'SORTSUBJECT') { if( Data['data']) { td_element3.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSUBJECT_REVERSE'); }; td_element3.innerHTML = ""+get_lang("subject")+""; } else { td_element3.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSUBJECT_REVERSE'); }; td_element3.innerHTML = ""+get_lang("subject")+""; } } else { if( Data['data'] ) { td_element3.onclick = function(){ EsearchE.searchFor( border_id, 'SORTSUBJECT'); }; } else { td_element3.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSUBJECT'); }; } td_element3.innerHTML = ( sort_type == 'SORTSUBJECT_REVERSE' ) ? arrow_ascendant(get_lang("subject")) : get_lang("subject"); } // Ordernar Data td_element4 = createTDElement(1,8,"th_resizable","center"); if ( sort_type == 'SORTDATE' ) { if( Data['data'] ) { td_element4.onclick = function(){ EsearchE.searchFor(border_id, 'SORTDATE_REVERSE'); }; td_element4.innerHTML = ""+get_lang("Date")+""; } else { td_element4.onclick = function(){ EsearchE.searchFor(border_id, 'SORTDATE_REVERSE'); }; td_element4.innerHTML = ""+get_lang("Date")+""; } } else { if( Data['data'] ) { td_element4.onclick = function(){ EsearchE.searchFor(border_id, 'SORTDATE'); }; } else { td_element4.onclick = function(){ EsearchE.searchFor(border_id, 'SORTDATE'); }; } td_element4.innerHTML = ( sort_type == 'SORTDATE_REVERSE' ) ? arrow_ascendant(get_lang("Date")) : get_lang("Date"); } // Ordernar Tamanho td_element5 = createTDElement(1,9,"th_resizable","center"); if ( sort_type == 'SORTSIZE' ) { if( Data['data'] ) { td_element5.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSIZE_REVERSE'); }; td_element5.innerHTML = ""+get_lang("size")+""; } else { td_element5.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSIZE_REVERSE'); }; td_element5.innerHTML = ""+get_lang("size")+""; } } else { if( Data['data'] ) { td_element5.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSIZE'); }; } else { td_element5.onclick = function(){ EsearchE.searchFor(border_id, 'SORTSIZE'); }; } td_element5.innerHTML = ( sort_type == 'SORTSIZE_REVERSE' ) ? arrow_ascendant(get_lang("size")) : get_lang("size"); } tr_element.appendChild(td_element0); tr_element.appendChild(td_element01); tr_element.appendChild(td_element02); tr_element.appendChild(td_element03); tr_element.appendChild(td_element04); 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); tbody_element.appendChild(tr_element); table_element.appendChild(tbody_element); var colgr_element = buildColGroup(1); colgr_element.setAttribute("id","colgroup_head_"+tab); table_element.appendChild(colgr_element); if( parseInt( Data['gears_num_msgs'] ) > 0 && !Data['data_gears']) { var _div_gears = document.createElement("div"); _div_gears.onclick = function(){ EsearchE.viewLocalMessage(); }; _div_gears.className = 'local-messages-search-warning'; _div_gears.innerHTML = get_lang("The search has% 1 messages stored locally. Want to see them ? Click here.", Data['gears_num_msgs']); content_search.appendChild(_div_gears); } var _divScroll = document.getElementById("divScrollHead_"+tab); if(!_divScroll){ _divScroll = document.createElement("DIV"); _divScroll.id = "divScrollHead_"+tab; _divScroll.style.overflowY = "hidden"; _divScroll.style.overflowX = "hidden"; _divScroll.style.width ="100%"; if (is_mozilla){ _divScroll.style.width ="99.3%"; } _divScroll.appendChild(table_element); content_search.appendChild(_divScroll); } /*end of "put header"*/ if ( !expresso_offline ) { div_scroll_result.appendChild(table); content_search.appendChild(div_scroll_result); } else { div_scroll_result.appendChild(table); content_search.appendChild(div_scroll_result); } resizeWindow(); if(typeof(Data.data_gears)=="undefined") EsearchE.show_paging( Data['num_msgs'] ); //else // EsearchE.show_paging(Data['gears_num_msgs']); } searchE.prototype.open_msg = function(mailbox, uid_msg, subject) { var handler_get_msg = function(data) { if( Element("border_id_" + uid_msg + "_r") ) alert(get_lang("This message is already opened!")); else draw_message( data, create_border(url_decode(subject), uid_msg + "_r") ); } proxy_mensagens.get_msg(uid_msg,mailbox,false,handler_get_msg); } // Adiciona caixas postais na busca; searchE.prototype.add_mailboxes = function() { var sel = Element("sel_search_nm_box1"); if (!proxy_mensagens.is_local_folder(this.name_box_search)) { var name_box = this.name_box_search.split(cyrus_delimiter); if(this.name_box_search == "") return false; var name_box_def = ""; if(name_box.length != 1){ name_box_def = name_box[(name_box.length-1)]; }else{ name_box_def = get_lang("Inbox"); } } else { if(this.name_box_search=='local_root'){ var tmpname = this.name_box_search; name_box_def = get_lang('Local folders'); Element('local_recursive').checked = true; Element('local_recursive').disabled = true; Element('lbl_local_recursive').style.color = 'gray'; } //Local special folders names and others local else{ if((this.name_box_search=='local_inbox') || (this.name_box_search=='local_outbox') || (this.name_box_search=='local_sent') || (this.name_box_search=='local_drafts') || (this.name_box_search=='local_trash')){ var tmpname = this.name_box_search.split("_")[1]; name_box_def = get_lang(tmpname) + ' (local)'; } else{ expresso_mail_archive.getFolderInfo(this.name_box_search.substr(6, this.name_box_search.length)); name_box_def = expresso_mail_archive.folder.name + ' (local)';//Retira o 'local_' } //Element('check_recursive_local').style.visibility = 'visible'; Element('local_recursive').disabled = false; Element('local_recursive').checked = false; Element('lbl_local_recursive').style.color = 'black'; } } if( sel.length > 0){ //Disable adding sub folders if all "local folders" have already been added: user should remove it then var local_root_flagged = false; var local_folder_flagged = false; for(var i=0; i< sel.options.length; i++){ if(sel.options[i].value == 'local_root'){ local_root_flagged = true; } if((sel.options[i].value != 'local_root') && (sel.options[i].value.indexOf("local_")!=-1)){ local_folder_flagged = true; } } for(var i=0; i < sel.options.length; i++){ if((this.name_box_search.indexOf("local_")!=-1) && (local_root_flagged)){ alert(get_lang('Local folders root have already been added!\nIf you intend to search at some specific local folder or\n some local folder list, you must remove the local root folder from the list!')); Element('local_recursive').checked = true; Element('local_recursive').disabled = true; Element('lbl_local_recursive').style.color = 'gray'; return false; } if((this.name_box_search == 'local_root') && (local_folder_flagged)){ alert(get_lang('Some local folder(s) have already been added!\nIf you intend to search at all the local folders structure,\n you must remove all the the local folders from the list!')); Element('local_recursive').disabled = false; Element('local_recursive').checked = false; Element('lbl_local_recursive').style.color = 'black'; return false; } if(sel.options[i].value == this.name_box_search){ alert(get_lang('This message is already selected!')); return false; } } } name_box_def = translateFolder(name_box_def); var opt = new Option(lang_folder(name_box_def),this.name_box_search,false,true); sel[sel.length] = opt; } // Remove as caixas postais na busca; searchE.prototype.del_mailboxes = function() { var sel = Element("sel_search_nm_box1"); if(sel.length > 0) { for(var i=0; i < sel.options.length; i++) { if(sel.options[i].selected == true) { sel.options[i] = null; i--; } } //MailArchiver: check if there is some local folder inside folder list var has_local = false; for(var i=0; i < sel.options.length; i++) { if(sel.options[i].value.indexOf("local") != -1){ has_local = true; break; } } if(!has_local){ //Element('check_recursive_local').style.visibility = 'hidden'; Element('local_recursive').disabled = true; Element('local_recursive').checked = false; Element('lbl_local_recursive').style.color = 'gray'; } } } // todas as caixas searchE.prototype.all_mailboxes = function() { var value = Element("check_all_msg").checked; var cont = parseInt(0); if(value) { if(EsearchE.all_boxes.length > 0) { EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); } for(var i=0; i < folders.length; i++) { EsearchE.all_boxes[cont++] = folders[i].folder_id; } } else { EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); } } // Search; searchE.prototype.func_search = function(value) { var fields = "##"; // Verifica se os campos estão preenchidos; if(trim(Element("txt_ass").value) != ""){ fields += "SUBJECT " + "<=>" +url_encode(Element("txt_ass").value) + "##"; } if(trim(Element("txt_body").value) != ""){ fields += "BODY " + "<=>" + url_encode(Element("txt_body").value) + "##"; } if(trim(Element("txt_de").value) != ""){ fields += "FROM " + "<=>" + url_encode(Element("txt_de").value) + "##"; } if(trim(Element("txt_para").value) != ""){ fields += "TO " + "<=>" + url_encode(Element("txt_para").value) + "##"; } if(trim(Element("txt_cc").value) != ""){ fields += "CC " + "<=>" + url_encode(Element("txt_cc").value) + "##"; } if (trim(Element("since_date").value) != "") { if (validate_date(Element("since_date").value)) { fields += "SINCE " + "<=>" + url_encode(Element("since_date").value) + "##"; } else { alert(get_lang('Invalid date on field %1', get_lang('Since Date'))); return false; } } if (trim(Element("before_date").value) != "") { if (validate_date(Element("before_date").value)) { fields += "BEFORE " + "<=>" + url_encode(Element("before_date").value) + "##"; } else { alert(get_lang('Invalid date on field %1', get_lang('Before Date'))); return false; } } if(trim(Element("on_date").value) != "") { if (validate_date(Element("on_date").value)) { fields += "ON " + "<=>" + url_encode(Element("on_date").value) + "##"; } else { alert(get_lang('Invalid date on field %1', get_lang('On Date'))); return false; } } if(trim(Element("flagged").options[Element("flagged").selectedIndex].value) != "") { if (Element("flagged").options[Element("flagged").selectedIndex].value == "FLAGGED") { fields += "FLAGGED##"; } else { fields += "UNFLAGGED##"; } } if(trim(Element("seen").options[Element("seen").selectedIndex].value) != "") { if (Element("seen").options[Element("seen").selectedIndex].value == "SEEN") { fields += "SEEN##"; } else { fields += "UNSEEN##"; } } if(trim(Element("answered").options[Element("answered").selectedIndex].value) != "") { if (Element("answered").options[Element("answered").selectedIndex].value == "ANSWERED"){ fields += "ANSWERED##"; } else { fields += "UNANSWERED##"; } } if(trim(Element("recent").options[Element("recent").selectedIndex].value) != "") { if (Element("answered").options[Element("answered").selectedIndex].value == "RECENT") { fields += "RECENT##"; } else { fields += "OLD##"; } } if ( value ) { fields = "##ALL " + "<=>" +url_encode(value) + "##"; } if(fields == "##") { alert(get_lang("Define some search parameters!")); return false; } var local_folders = new Array(); var temp; if( Element("check_all_msg").checked ) { this.all_mailboxes(); var nm_box = new Array; for(var i=0; i < EsearchE.all_boxes.length; i++) { nm_box[i] = EsearchE.all_boxes[i] + fields; } if (preferences.use_local_messages == 1) { local_folders.push(""); } } else { var nm_box = new Array; var sel_combo = Element("sel_search_nm_box1"); if( sel_combo.options.length <= 0) { alert(get_lang("Define the boxes to search!")); return false; } for(var i=0; i < sel_combo.options.length; i++) { sel_combo.options[i].selected = true; } for(var i=0; i < sel_combo.options.length; i++) { if( sel_combo.options[i].selected == true ) { if(!proxy_mensagens.is_local_folder(sel_combo.options[i].value)) nm_box[nm_box.length] = sel_combo.options[i].value + fields; else{ var l_recursive = ""; (Element('local_recursive').checked) ? l_recursive = "recursive" : l_recursive = ""; local_folders.push(sel_combo.options[i].value.substr(6) + '#' + l_recursive); } } } } var handler = function( data ) { var allMsg = [3]; var tmp = []; // local data if ( local_folders.length > 0 ){ expresso_mail_archive.search(local_folders, fields); tmp = expresso_mail_archive.search_queryresult; if(tmp == null){ tmp = new Object(); tmp.length = 0; } } var count = data['num_msgs'] ? data['num_msgs'] : tmp.length > 0 ? tmp.length : "0"; EsearchE.localResults = tmp.length; if( data['num_msgs'] ) { allMsg['data'] = data['data']; allMsg['num_msgs'] = data['num_msgs']; } if( tmp.length > 0 ) { allMsg['gears_num_msgs'] = tmp.length ; } if( data['num_msgs'] == 0 && tmp.length < 0) { alert( get_lang("None result was found.") ); } else { if(tmp.length > 0 && !data['num_msgs']) { allMsg['data_gears'] = tmp; } write_msg( count + " " + get_lang("results found") ); EsearchE.mount_result( allMsg, 'SORTDATE' ); } } this.condition = nm_box; this.page = 0; var args = "$this.imap_functions.search_msg"; var params = "condition=" + nm_box+ "&page=0"+ "&sort_type=SORTDATE"; if( expresso_offline ) handler('none'); else cExecute( args, handler, params); } // clean; searchE.prototype.func_clean = function() { // Limpa os campos; for( var i=0; i < this.txtfields.length; i++ ) { if( Element(this.txtfields[i]) != null ) Element(this.txtfields[i]).value = ""; } for(i = 0; i < this.selectFields.length; i++) { if (Element(this.selectFields[i])) Element(this.selectFields[i]).selectedIndex = 0; } if( Element("check_all_msg") != null ) Element("check_all_msg").checked = false; EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); EsearchE.del_mailboxes(); //Element('check_recursive_local').style.visibility = 'hidden'; Element('local_recursive').disabled = true; Element('local_recursive').checked = false; } // close searchE.prototype.func_close = function(type) { //Element('check_recursive_local').style.visibility = 'hidden'; Element('local_recursive').disabled = true; Element('local_recursive').checked = false; var _this = this; _this.name_box_search = ""; EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); _this.type = type; _this.searchW['window_search'].close(); } // Monta a janela em tela; searchE.prototype.showWindow = function(div) { if(!this.searchW[div.id]) { div.style.width = "804px"; div.style.height = "440px"; div.style.visibility = "hidden"; div.style.position = "absolute"; div.style.zIndex = "10"; var title = ":: "+ get_lang("Search")+" ::"; var wHeight = div.offsetHeight + "px"; var wWidth = div.offsetWidth + "px"; win = new dJSWin({ id: 'ccList'+div.id, content_id: div.id, width: wWidth, height: wHeight, title_color: '#3978d6', bg_color: '#eee', title: title, title_text_color: 'white', button_y_img: '../phpgwapi/images/win_min.gif', button_x_img: '../phpgwapi/images/winclose.gif', border: true}); this.searchW[div.id] = win; win.draw(); } else { var _this = this; win = this.searchW[div.id]; if((_this.type == "close" && win.state == 0) || win.state == 2){EsearchE.func_clean();} win.draw(); } win.open(); } searchE.prototype.aux_local_folder_display = function(folder) { if(!expresso_offline) return "(Local) " + lang_folder(folder.substr(6)); else return lang_folder(folder.substr(6)); } searchE.prototype.refresh = function(alert_new_msg){ var handler_refresh = function(data){ var allMsg = [3]; var count = ( data['num_msgs'] ) ? data['num_msgs'] : "0"; if( data['num_msgs'] ) { allMsg['data'] = data['data']; allMsg['num_msgs'] = data['num_msgs']; } if( ( data['num_msgs'] ) == 0 ) { alert( get_lang("None result was found.") ); } else { if( data['num_msgs'] ) { write_msg( count + " " + get_lang("results found") ); EsearchE.mount_result( allMsg, 'SORTDATE', true ); } } } this.condition = openTab.condition[currentTab]; var sort_type = (this.sort_type ? this.sort_type : 'SORTDATE'); if( expresso_offline ) handler('none'); else cExecute( "$this.imap_functions.search_msg", handler_refresh, "condition="+openTab.condition[currentTab]+"&page="+EsearchE.page+"&sort_type="+sort_type); } // Cria o objeto var EsearchE; EsearchE = new searchE();