/**************************************************************************\ Início \**************************************************************************/ function searchE(){ this.searchW = new Array; this.name_box_search = ""; this.all_boxes = new Array; this.type = ""; this.fields = new Array("_ass","_de","_body","_para","_cc","_cco"); } var search_tabs = 0; // Count the number of seach tabs //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.width = "635px"; div_form_search.style.height = "200px"; div_form_search.style.borderStyle = "outset"; div_form_search.style.borderColor = "black"; div_form_search.style.borderWidth = "1px"; 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); } 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.left = "10px"; div_button_search.style.top = "223px"; div_button_search.style.width = "600px"; 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') + " :
"+ "
"+ "
" + get_lang('In all the folders') + "
"+ "
" + get_lang('From') + " .:
" + get_lang('To') + ".:
" + get_lang('Cc') + " .:
" + get_lang('Subject') + " .:
" + get_lang('Message body') + " .:
"; 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); } ttree.make_tree(folders,"div_folders_search","_folders_tree_search","","","",""); } // Monta Resultado no Box searchE.prototype.mount_result_box = function(data){ draw_box(new Array(), "_search"); draw_paging(0); // alternate_border(0); } // Form resultado; searchE.prototype.mount_result = function(data){ //This func returns the most recent date function date_comp(a,b) { var data1 = a.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g); data1 = data1[0].substr(0, data1[0].indexOf('--')) with ( data1 ) data1 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g); data2 = data2[0].substr(0, data2[0].indexOf('--')) with ( data2 ) data2 = Date.UTC(substr(6), substr(3, 2), substr(0, 2)); return data2 - data1; } var nw_array = new Array; data = data.substr(2, data.length - 4); var var_tmp = data.split("####"); var cont = parseInt(0); var_tmp.sort(date_comp); for(var i=0; i < var_tmp.length; i++){ if(var_tmp[i] != ""){ nw_array[cont] = var_tmp[i]; cont++; } } var table = document.createElement("TABLE"); table.id = "table_result"; table.width = "100%"; /* if(is_ie){ table.cellPadding = '0'; table.cellSpacing = '0'; table.setAttribute("border","1"); }else{ table.setAttribute( "cellspacing", "0"); table.setAttribute( "cellpadding", "0"); table.setAttribute( "border", "1"); }*/ var tbody = document.createElement("TBODY"); if(nw_array.length > 0){ write_msg(nw_array.length + get_lang(' search results')); } for( var i=0; i < nw_array.length; i++){ var tr = document.createElement("TR"); //var color = "#F0F0F0"; //tr.style.background = color; tr.className = 'tr_msg_read'; if (nw_array[i].match(/.*--.*--\w*--\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g) == null) //subject with "--" { var aux1 = nw_array[i].match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--\d*$/g); aux1 = aux1[0].split("--"); nw_array[i] = nw_array[i].substr(0, nw_array[i].indexOf(aux1[0])-2); var aux = []; aux[0] = nw_array[i].substr(0, nw_array[i].indexOf('--')); nw_array[i] = nw_array[i].substr(nw_array[i].indexOf('--')+2); aux[1] = nw_array[i].substr(0, nw_array[i].indexOf('--')); aux[2] = nw_array[i].substr(nw_array[i].indexOf('--')+2); aux = aux.concat(aux1); } else { var aux = nw_array[i].split("--"); } for(var j=0 ; j < aux.length ; j++){ var mailbox = aux[0]; var uid_msg = aux[5]; var td = document.createElement("TD"); if( j <= 4){ if( j == 0){ td.style.width = "20%"; var nm_box = aux[0].split(cyrus_delimiter); var td1 = nm_box.pop(); td.setAttribute("NoWrap","true"); td.style.overflow = "hidden"; if(td1 == "INBOX"){ var td1 = get_lang("Inbox"); } } if( j == 1){ var subject_encode = url_encode(aux[2]); td.width = "20%"; var td1 = '
'+aux[1]+"
"; } if( j == 2){ var subject_encode = url_encode(aux[2]); td.width = "40%"; var td1 = '
' + aux[2] +'
'; } if( j == 3){ td.width = "10%"; td.align = "center"; var td1 = aux[3]; } if( j == 4){ td.width = "10%"; td.align = "center"; var td1 = aux[4]; } td.innerHTML = td1; tr.appendChild(td); } } aux.splice(0,(aux.length)); tbody.appendChild(tr); } table.appendChild(tbody); search_tabs += 1; var border_id = create_border(get_lang("Search Results"), "search_" + search_tabs); var content = document.getElementById('content_id_' + "search_" + search_tabs); if(is_ie) Element("border_table").width = "99.5%"; /* Put header */ var table_element = document.createElement("TABLE"); var tbody_element = document.createElement("TBODY"); table_element.border = 1; 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", "20%"); td_element1.align = "left"; td_element1.innerHTML = get_lang("Folder"); td_element2 = document.createElement("TD"); td_element2.setAttribute("width", "20%"); td_element2.align = "left"; td_element2.innerHTML = get_lang("Who"); td_element3 = document.createElement("TD"); td_element3.setAttribute("width", "40%"); td_element3.align = "left"; td_element3.innerHTML = get_lang("Subject"); td_element4 = document.createElement("TD"); td_element4.setAttribute("width", "10%"); td_element4.align = "center"; td_element4.innerHTML = get_lang("Date"); td_element5 = document.createElement("TD"); td_element5.setAttribute("width", "10%"); td_element5.align = "center"; td_element5.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); tbody_element.appendChild(tr_element); table_element.appendChild(tbody_element); content.appendChild(table_element); /*end of "put header"*/ content.appendChild(table); } 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"));} } var args = "$this.imap_functions.get_info_msg"; var params = "msg_number=" + uid_msg + "&msg_folder=" + mailbox; cExecute(args,handler_get_msg,params); } // Adiciona caixas postais na busca; searchE.prototype.add_mailboxes = function(){ var sel = Element("sel_search_nm_box1"); 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"); } if( sel.length > 0){ for(var i=0; i < sel.options.length; i++){ if(sel.options[i].value == this.name_box_search){ alert(get_lang('This message is already selected!')); return false; } } } 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--; } } } } // 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; cont++; } }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(value) { fields = "##ALL " + "<=>" +url_encode(value) + " "; } fields += "##"; if(fields == "####"){ alert(get_lang("Define some search parameters!")); return false; } if(Element("check_all_msg").checked){ var nm_box = new Array; for(var i=0; i < EsearchE.all_boxes.length; i++){ nm_box[i] = EsearchE.all_boxes[i] + fields; } }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){ nm_box[nm_box.length] = sel_combo.options[i].value + fields; } } } var handler = function(data){ if(data == "none"){alert(get_lang("None result was found."));} else if(data == "many results"){alert(get_lang("More than %1 results. Please, try to refine your search.",50));} else{EsearchE.mount_result(data);} } var args = "$this.imap_functions.search_msg"; var params = "condition=" + nm_box; cExecute(args,handler,params); } // clean; searchE.prototype.func_clean = function(){ // Limpa os campos; for(var i=0; i < this.fields.length; i++){ if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";} } if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;} EsearchE.all_boxes.splice(0,(EsearchE.all_boxes.length)); EsearchE.del_mailboxes(); } // close searchE.prototype.func_close = function(type){ 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 = "660px"; div.style.height = "255px"; div.style.visibility = "hidden"; div.style.position = "absolute"; div.style.zIndex = "10003"; 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(); } // Cria o objeto var EsearchE; EsearchE = new searchE();