/**************************************************************************\
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");
}
//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 = document.createElement("DIV");
table_layer.id = "table_layer";
table_layer.innerHTML = "
"+
""+
"Pasta | "+
"Quem | "+
"Assunto | "+
"Data | "+
"Tamanho | "+
"
"+
"
";
table_layer.style.position = "absolute";
table_layer.style.left = "10px";
table_layer.style.top = "238px";
table_layer.style.width = "638px";
form_search.appendChild(table_layer);
}
// Resultado
if(!Element("div_form_result")){
var div_form_result = document.createElement("DIV");
div_form_result.id = "div_form_result";
div_form_result.style.position = "absolute";
div_form_result.style.left = "10px";
div_form_result.style.top = "270px";
div_form_result.style.width = "635px";
div_form_result.style.height = "120px";
div_form_result.style.borderStyle = "outset";
div_form_result.style.borderColor = "black";
div_form_result.style.borderWidth = "1px";
div_form_result.style.overflow = "auto";
div_form_result.innerHTML = "";
form_search.appendChild(div_form_result);
}
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 = "";
return form_sch;
}
// Pastas;
searchE.prototype.mount_folders = function(){
connector.loadScript("TreeS");
if( document.getElementById("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 = document.getElementById("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){
var label = "Resultado da Pesquisa";
Element("border_id_0").innerHTML = " " + label + ' [ / 0]';
draw_box(new Array(), "_search");
draw_paging(0);
// alternate_border(0);
}
// Form resultado;
searchE.prototype.mount_result = function(data){
//this.func_clean();
var nw_array = new Array;
var var_tmp = data.split("##");
var cont = parseInt(0);
var div_form = document.getElementById("div_form_result");
var_tmp.sort();
for(var i=0; i < var_tmp.length; i++){
if(var_tmp[i] != ""){
nw_array[cont] = var_tmp[i];
cont++;
}
}
if(document.getElementById("table_result") != null){
var cl = document.getElementById("table_result");
cl.parentNode.removeChild(cl);
}
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){
Element('num_search_results').innerHTML = " "+nw_array.length +" mensagens encontradas.";
}
else
Element('num_search_results').innerHTML = '';
for( var i=0; i < nw_array.length; i++){
var tr = document.createElement("TR");
var color = "#F7F7F7";
tr.style.background = color;
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.width = "20%";
var nm_box = aux[0].split(cyrus_delimiter);
var td1 = nm_box.pop();
if(td1 == "INBOX"){
var td1 = "Caixa de Entrada";
}
}
if( j == 1){
td.width = "30%";
var td1 = aux[1];
}
if( j == 2){
var subject_encode = url_encode(aux[2]);
td.width = "30%";
var td1 = '' + aux[2].substr(0,25) + '...';
}
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);
div_form.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 = document.getElementById("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 = "Caixa de Entrada";
}
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(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 = document.getElementById("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 = document.getElementById("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(document.getElementById("txt_ass").value != "" && trim(document.getElementById("txt_ass").value) != ""){
fields += "SUBJECT " + "<=>" +url_encode(document.getElementById("txt_ass").value) + " ";
}
if(document.getElementById("txt_body").value != "" && trim(document.getElementById("txt_body").value) != ""){
fields += "BODY " + "<=>" + url_encode(document.getElementById("txt_body").value) + " ";
}
if(document.getElementById("txt_de").value != "" && trim(document.getElementById("txt_de").value) != ""){
fields += "FROM " + "<=>" + url_encode(document.getElementById("txt_de").value) + " ";
}
if(document.getElementById("txt_para").value != "" && trim(document.getElementById("txt_para").value) != ""){
fields += "TO " + "<=>" + url_encode(document.getElementById("txt_para").value) + " ";
}
if(document.getElementById("txt_cc").value != "" && trim(document.getElementById("txt_cc").value) != ""){
fields += "CC " + "<=>" + url_encode(document.getElementById("txt_cc").value) + " ";
}
if(value) {
fields += "ALL " + "<=>" + url_encode(value) + " ";
}
/*if(document.getElementById("txt_cco").value != "" && trim(document.getElementById("txt_cco").value) != ""){
fields += "BCC " + "<=>" + url_encode(document.getElementById("txt_cco").value) + " ";
}*/
fields += "##";
if(fields == "####"){
alert(get_lang("Define some parameters to search!"));
return false;
}
if(document.getElementById("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 = document.getElementById("sel_search_nm_box1");
if( sel_combo.options.length <= 0){
alert("Defina quais as caixas para busca!");
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_box(data);}
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(){
Element('num_search_results').innerHTML = '';
// 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));
// Limpa a select;
if(document.getElementById("sel_search_nm_box1") != null){
var sel = document.getElementById("sel_search_nm_box1");
if(sel.length > 0){
for(var i=0; i< sel.options.length; i++){
sel.options[i] = null;
i--;
}
}
}
if(document.getElementById("table_result") != null){
var cl = document.getElementById("table_result");
cl.parentNode.removeChild(cl);
}
}
// close
searchE.prototype.func_close = function(type){
Element('num_search_results').innerHTML = '';
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 = "400px";
div.style.visibility = "hidden";
div.style.position = "absolute";
div.style.zIndex = "10003";
var title = ':: Pesquisar ::';
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();