Login   Register  
PHP Classes
elePHPant
Icontem

File: javascript/search.js

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of José Filipe Lopes Santos  >  Calendar Picker  >  javascript/search.js  >  Download  
File: javascript/search.js
Role: Auxiliary data
Content type: text/plain
Description: search functions
Class: Calendar Picker
Calculate values for a given month of the year
Author: By
Last change:
Date: 2010-04-29 04:23
Size: 4,105 bytes
 

Contents

Class file image Download
/**
 * 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();
}