/**
* Script para pesquisas.
*
* Autor: José Filipe Lopes Santos
* Data de criação: 26-04-2010
* Data da últ. actualização: 26-04-2010
*/
/**
* Calendar Picker.
*
* Abre o popup com o calendário para picar a data.
* Se tiver data seleccionada, abre o popup com essa data.
* Senão abre o popup com a data actual.
*
* @param object f formulário em causa
* @param string str_fields string com os nomes dos campos
*/
function CalendarPicker(f,str_fields){
// obter um array com os nomes dos campos
fields = Array();
fields = str_fields.split(",");
// campos com os selects
listbox = Array();
for (i=0;i<fields.length;i++) // para cada campo
listbox[i] = eval("document."+f+"."+fields[i]);
// obter o valor do mês
var mes = "";
for (i=0;i<listbox[1].options.length;i++){
if (listbox[1].options[i].selected){
mes = listbox[1].options[i].value;
break;
}
}
// obter o valor do ano
var ano = "";
for (i=0;i<listbox[2].options.length;i++){
if (listbox[2].options[i].selected){
ano = listbox[2].options[i].value;
break;
}
}
var file = "calendar_picker.php?fields_form="+str_fields+"&form_src="+f+"&mes="+mes+"&ano="+ano;
open_window(file,220,260,"calendar_picker");
}
/**
* Guarda os valores de pesquisa no formulário de origem.
*
* Esta função, guarda os valores de pesquisa no formulário de origem.
*
* @param string formname nome do formulário de origem
* @param string str_fields string com os nomes dos campos
* @param string str_value string com os valores
* @param string str_types string com os tipos dos campos
*/
function save_search_values(formname,str_fields,str_values,str_types){
// obter os campos, valores e tipos
fields = Array();
fields = str_fields.split(",");
values = Array();
values = str_values.split(";");
types = Array();
types = str_types.split(";");
for (i=0;i<fields.length;i++){ // para cada campo
if (types[i] == "text" || types[i] == "hidden") // campo TEXT ou HIDDEN
// setar o valor para esse campo
eval("window.opener.document."+formname+"."+fields[i]+".value = '"+values[i]+"'");
else if (types[i] == "select"){ // campo SELECT
// campo com o select
var select = eval("window.opener.document."+formname+"."+fields[i]);
for (j=0;j<select.options.length;j++){ // para cada option
if (select.options[j].value == values[i]){ // encontrou o valor
select.options[j].selected = true; // seleccionar / destacar essa option
break;
}
}
} else
alert("Tipo "+types[i]+" não suportado ! ");
}
// fechar a janela
window.close();
}
/**
Esta função guarda os valores do popup de selecção de items, no form de origem.
parmetros:
str_fields - string com os nomes dos campos de origem
str_values - string com os valores dos campos de origem
index_nome - indíce do campo com os nomes
*/
function save_selected_values(str_fields,str_values,index_nome){
// obter os campos
fields = new Array();
fields = str_fields.split(",");
// obter os valores
values = new Array();
values = str_values.split("#");
// guardar os dados no formulrio de origem
for (i = 0; i < fields.length; i++){ // para cada campo
// guardar os valores nos respectivos campos
eval("window.opener.document.forms[0]."+fields[i]+".value = '"+values[i]+"'");
}
// descodificar o campo nome
eval("window.opener.document.forms[0]."+fields[index_nome]+".value = unescape(window.opener.document.forms[0]."+fields[index_nome]+".value)");
// fechar a janela
window.close();
}
/**
* Esta função muda o valor da checkbox ver todos, para 'yes' ou 'no', consoante esteja ou não checada.
*
* @param object f formulário em causa
* @param string fieldname nome do campo em causa
*/
function ChangeShowAll(f,fieldname){
var checked = f.elements[fieldname].checked;
var show_all_value = "";
// se a checkbox ver todos está checada (com visto) => o valor é yes, senão o valor é no.
show_all_value = (checked? "yes": "no");
// alterar o campo
f.elements[fieldname].value = show_all_value;
// submeter os dados
f.submit();
}
|