// fold < creditos & copyright >
/* +++++++ CREDITOS & COPYRIGHT +++++++ 

   Funções de Javascript com várias ferramentas (Tools) para o interface dos sites
   É instanciada pela classe _coreTmpl e usa classes/métodos da superClasse Prototype.js
   
   Criadas por alvaro Saraiva @ glups.pt @ fevereiro 2007
   
   Glups - Atelier de Novas Tecnologias, Lda
   Rua Jaime Campos, Bloco D, Piso 3 Esq., 5000-431 Vila Real | Portugal
   Tel. [351] 259 322 183 | E-mail: info@glups.pt | URL: www.glups.pt

   Se utilizarem estas funções para os vossos trabalhos,
   a Glups agradece que ao menos no retirem estas linhas de cdigo,
   por respeito e agradecimento ao trabalho das pessoas que a criaram
   e ao trabalho que vocs pouparam. Keep Cool. Peace ;)

*/
// endfold

/*	+++++++++++++++++++++++++++++++++++++++++++++++
			DECLARAÇÃO DE VARIÁVEIS GERAIS 
	+++++++++++++++++++++++++++++++++++++++++++++++ */

// criamos a classe
var coreTools = Class.create();

/*
*	@desc			Método 'prototype' da classe coreTools que define quais os métodos que torna público e disponíveis 
*					a quem instanciar esta classe
*	@retutn void
*/
coreTools.prototype = {
	
	/*
	*	@desc			Método constructor 'prototype' da classe coreTools
	*	@param string	nomeCanal: nome do canal onde estamos a executar a classe
	*	@param string	idioma: código do idioma do user, qd se inicializa a clase
	*	@retutn void
	*/
	initialize: function(){ 
		// toDo se for preciso
	},
	
	/*	+++++++++++++++++++++++++++++++++++++++++++++++
			SETTERS E GETTERS DE CONFIGS DA CLASSE 
		+++++++++++++++++++++++++++++++++++++++++++++++*/
	
	/*	+++++++++++++++++++++++++++++++++++++++++++++++
			MÉTODOS PÚBLICO PARA ALTERAR INTERFACE 
		+++++++++++++++++++++++++++++++++++++++++++++++*/
		
	/*
	*	@desc			Método que devolve o ano actual
	*	@return	String	Ano no formato aaaa
	*/
	getAnoActual: function(){
		var tempo	= new Date();
		var ano		= tempo.getFullYear();
		return ano;
	},

	/*
	*	@desc			Método para dar foco a um campo no template de HTML
	*	@param String	nomeObj: nome do elemento de HTML para dar focus
	*	@retun void		Não devolve nada
	*/
	setFocusCampo: function(nomeObj){
		$(nomeObj).focus();
	},
	
	/*
	*	@desc			Método para adicionar o site aos favoritos
						Funciona com IE, Firefox, Opera 
	*	@return void
	*/
	addFavoritos: function(){
		// apanhamos as variáveis definidas no _init_JS_crc.js
		var URLSite 	= urlBaseSite;
		var tituloSite 	= nomeSite;
		if(window.sidebar){
			window.sidebar.addPanel(tituloSite, URLSite,"");
		}
		else if( window.opera && window.print ){
			var mbm = document.createElement('a');
			mbm.setAttribute('rel','sidebar');
			mbm.setAttribute('href',URLSite);
			mbm.setAttribute('title',tituloSite);
			mbm.click();
		}
		else if(document.all){
			window.external.AddFavorite(URLSite, tituloSite);
		}
	},
	
	/*
	*	@desc			Método para abrir pop-ups
	*	@param string	URL: Endereço para abrir na janelas
	*	@param string	nomeJanela: Nome para dar à Janela de HTML
	*	@param object	propriedades: Objecto com várias propriedades para definir o pop-up
		@retun void
	*/
	abrirJanela: function(URL,nomeJanela,propriedades) { 
		window.open(URL,nomeJanela,propriedades);
	},
	
	/*
	*	@desc			Método para limpar um campo de texto qd tem um texto por defeito
	*	@param mixed	obj: Tanto pode ser refª ao obj, como o id do elemento
	*	@param string	txt: Taexto para verificar se é igual. Se for, limpa o campo
	*	@retun void
	*/
	_limpaCampo: function(obj,txt){
		$(obj).value = ($(obj).value==txt) ? '' : $(obj).value; 
	},
	
	/*
	*	@desc			Método que Limita o tamanho de um campo de texto (text area, por exemplo)
	*	@param mixed	obj: Tanto pode ser refª ao obj, como o id do elemento
	*	@param string	limiteMaximo: limite máximo de carateres permitidos
	*	@param string	nomeCampo: nome do campo para aparecer no alerta
	*	@retun void
	*/
	_limitaCaracteres: function(obj, limiteMaximo, nomeCampo){
		conteudo = obj.value;
		if (conteudo.length > limiteMaximo) {
			alert('Alerta:\n- O campo "' + ((nomeCampo!="") ? nomeCampo : obj.id) + '" não pode exceder os ' + limiteMaximo + ' caracteres, incluíndo espaços e pontuação!');
			novoConteudo = conteudo.substr(0, limiteMaximo);
			obj.value = novoConteudo;
		}
	}	

}
