//Função para adicionar um evento a um objeto, independente do navegador.
function addEvent(obj, evType, fn){
	if (obj.addEventListener){						//Todos os demais navegadores
		obj.addEventListener(evType, fn, false);
	}
	else if (obj.attachEvent){						//IE
		obj.detachEvent('on'+evType, fn);
		obj.attachEvent('on'+evType, fn);
	}
}

//Adiciona a função jsInicializar ao evento load da página da página
addEvent(window,'load',jsInicializar)

// Função para inicializar as demais funções necessárias para o correto funcionamento do site
function jsInicializar() {
	jsMenu();
	jsExibirAjuda();
	jsAlteraCorGer();
	//jsFocaInput();
	jsInputs();
	jsTextAreas();
	//if (typeof jsOcultarCampoImg == 'function') jsOcultarCampoImg();
	if (typeof jsTipoPessoa == 'function') jsTipoPessoa();
	//if (typeof jsAtivaCamposHospedagem == 'function') jsAtivaCamposHospedagem();
	if (typeof jsProgramaBotoes == 'function') jsProgramaBotoes();
	if (typeof jsIniciarModelo == 'function') jsIniciarModelo();
	jsTrataImagem();
	
	if (typeof jsAbasEmbratel == 'function') jsAbasEmbratel();
	
}

//Função para formatar o menu. 
function jsMenu(){
	if (document.all && $Id("nav")){
		var navItems = $Id("nav").getElementsByTagName("li");

		for (var i=0; i<navItems.length; i++) {
			if(navItems[i].getElementsByTagName("ul").length > 0){
				navItems[i].onmouseover=function() { this.className += " over"; }
				navItems[i].onmouseout=function() { this.className = "submenu"; }
			}
		}
	}

	try{
		$Id('aAtual').parentNode.parentNode.parentNode.childNodes[1].className = 'spLinkAtual';
	}
	catch(e){
		if($Id('aAtual')) $Id('aAtual').parentNode.parentNode.parentNode.childNodes[0].className = 'spLinkAtual';
	}
}

//Função para exibir a menssagem de ajuda que está no title do objeto.
function jsExibirAjuda(){
	if ($Id('spDica')){							//Verifica se existe o objeto que exibirá a juda.
		var oForms = document.forms;				//Recupera todos os forms do documento.

		for (var i=0; i < oForms.length; i++){		//Percorre todos os objetos.
			var oForm = oForms[i];					//Recupera o form atual.

			for (var j=0; j < oForm.length; j++){	//Percorre todos os objetos.
				addEvent(oForm[j],'focus',jsElementoExibirAjuda);	//Adiciona a função ao evento do elemento
			}
		}
	}
}

//Exibe o title do elemento HTML no objeto 'spDica', caso ele possua.
function jsElementoExibirAjuda(e){
	var oElemento = jsRetornaObjetoDoEvento(e);

	if (oElemento.title){
		if ($Id('spDica')) $Id('spDica').innerHTML = oElemento.title;		//Coloca o texto no objeto
		if (oElemento.alt) oElemento.alt = oElemento.title; //Verifica se o bjeto também possue alt e refaz o precesso
	}
}

//Função para retornar o objeto que gerou o evento
function jsRetornaObjetoDoEvento(e){
	if (typeof(e)=='undefined')var e=window.event;	//Captura o evento no IE
	var obj = e.target?e.target:e.srcElement;		//Retorna o objeto para o IE e os demais
	if(obj.nodeType == 3)obj=obj.parentNode;	//Corrige bug no Safari

	return obj;
}

//Função para alternar as cosres nas tabelas dos gerenciadores. 
function jsAlteraCorGer(){
	var oTables = $Tag('table');	//Retorna todas as tabelas do documento

	for (var i=0; i<oTables.length; i++){		//Percorre todos os objetos.
		var oTRs = oTables[i].getElementsByTagName('tr');	//Recupera todas as TRs da tabela

		//Verifica se existe um checkbox na primeira linha da tabela e adiciona a função ao evento
		var oCheck = oTRs[0].getElementsByTagName('input')
		if (oCheck.length > 0){ addEvent(oCheck[0],'click',jsSelecionarTodosCheckBox) }

		for (var j=1; j<oTRs.length; j++) {		//Percorre todos os objetos
			var oTD = oTRs[j].getElementsByTagName('TD'); //Recupera todos os checkbox da TR
			var oCheckBoxs = oTRs[j].getElementsByTagName('input'); //Recupera todos os checkbox da TR

			for (var l=1; l<oTD.length-1; l++)		//Percorre todos os objetos
				if (oTD[l].className!='csAcao')addEvent(oTD[l],'click',jsSelecionarRegistro);

/*
			if(navigator.appName == 'Microsoft Internet Explorer'){
				addEvent(oTRs[j],'mouseover',jsTrOver);
				addEvent(oTRs[j],'mouseout',jsTrOut);
			}
*/
		}
	}
}

//Função para selecionar todos os checkbox de uma tabela de gerenciador
function jsSelecionarTodosCheckBox(e){
	var oCheck	= jsRetornaObjetoDoEvento(e);
	var oChecks	= $Name('cdRegistro');	//Retorna todos os objetos input
	
	for ( var i=0; i<oChecks.length; i++ )
		oChecks[i].checked=oCheck.checked;
}

//Função para alterar a cor das TR no evento mouseover.
function jsTrOver(e){
	var oTR = jsRetornaObjetoDoEvento(e);
	while (oTR.tagName != 'TR') oTR = oTR.parentNode;

	oTR.lang = oTR.style.background;
	oTR.className = 'csHover';
}

//Função para retornar a cor das TR ao original no evento mouseuot.
function jsTrOut(e){
	var oTR = jsRetornaObjetoDoEvento(e);
	while (oTR.tagName != 'TR') oTR = oTR.parentNode;

	oTR.className = oTR.lang;
}

//Função para alterar a cor das TR no evento mouseover.
function jsSelecionarRegistro(e){
	var oTR = jsRetornaObjetoDoEvento(e);
	while (oTR.tagName != 'TR') oTR = oTR.parentNode;
	
	var oInputs	= oTR.getElementsByTagName('INPUT');	//Retorna todos os objetos input
	if(oInputs.length>0) oInputs[0].click();
}

//Foca o primeiro input/text ou select do documento.
function jsFocaInput(){
	var oInputs = $Tag('input');	//Retorna todos os inputs
	var oSelects = $Tag('select');	//Retorna todos os selects

	for (var i=0; i<oInputs.length; i++){		//Percorre todos os inputs
		if (oInputs[i].type != 'hidden' && oInputs[i].id){	//Verifica se não é um objeto hidden
			try{
				$Id(oInputs[i].id).focus();		//Cria a função para focar o objeto
			}
			catch(e){}
			return;
		}
	}

	if (oSelects.length && oSelects[0].id)		//Caso não encontre um input, procura um select.
		$Id(oSelects[0].id).focus();		//Cria a função para focar o objeto
}

// Função para formatar o conteúdo do input/text para formato data, prefixo, telefone, hora e monetário,
// de acordo com a classe CSS.
function jsInputs(){
	var oInputs = $Tag('input');	//Retorna todos os objetos input

	for (var i=0; i<oInputs.length; i++){		//Percorre todos os objetos
		//Formata os elementos do tipo data, hora, prefixo de telefone, telefone e ramal.
		if (oInputs[i].className == 'csTelefonePre' ||
			oInputs[i].className == 'csTelefone' ||	
			oInputs[i].className == 'csCEP' ||	
			oInputs[i].className == 'csCPF' ||
			oInputs[i].className == 'csCNPJ' ||
			oInputs[i].className == 'csData' ||
			oInputs[i].className == 'csHora' ||
			oInputs[i].className == 'csNumero3'){
			addEvent(oInputs[i],'keypress',jsFormatacao)
		}

		//Formata os elementos do tipo monetário.
		else if (oInputs[i].className == 'csMonetario'){
			addEvent(oInputs[i],'keypress',jsFormatarInputMonetario)
			addEvent(oInputs[i],'blur',PreencherPreco)
			addEvent(oInputs[i],'focus',ApagarPreco)
			
		}
		
		//Formata os elementos do tipo formatação de texto, usados no editor.
		else if (oInputs[i].className == 'csFormatacao'){
			oInputs[i].readOnly=true;
			addEvent(oInputs[i],'mouseover',jsSelecionarInput);
		}
		
		//Atribui a propriedade readOnly para determinadas classes de inputs
		else if (oInputs[i].className.search(/(csArquivo)|(csTamanho)|(csReadOnly)/) != -1){
			oInputs[i].readOnly=true;
		}
		
		// Se o bjeto é readOnly, não recebe foco.
		if(oInputs[i].readOnly)
			oInputs[i].tabIndex = -1;
	}
}

// Função para formatar o conteúdo do input/text para formato data, prefixo, telefone, hora e monetário,
// de acordo com a classe CSS.
function jsFormatacao(e){
	var oText	= jsRetornaObjetoDoEvento(e);		//Retorna o objeto para o IE e os demais
	var sValue	= oText.value;						//Retorna o valor atual do objeto
	var nTecla	= window.event?e.keyCode:e.which;	//Retorna o valor da tecla pressionada
	var oProxCampo = jsProximoCampo(oText.id);		//Retorna o próximo campo do formulário

	if (nTecla != 8 && nTecla != 13){				//se for "backspace" ou "enter" não faz nada
		var sRegExp = /[\.\,\:\/\-\(\) ]/gi;		//Expressão regular para limpar os caracteres de formatação
		sValue = sValue.toString().replace(sRegExp, '');	//Limpa ps caracteres

		var nLenO = sValue.length;					//Retorna a quantidade de caracteres do objeto
		var nLenM = nLenO;							//Inicia o tamanho da máscara com o tamanho da string
		var nCount = 0;								//Inicia o contador
		var sSaida = '';							//Limpa a saída
		var sMask = '';								//Limpa a máscara

		switch (oText.className){					//Verifica o tipo de máscara que deverá ser aplicada
			case 'csData':							//Máscara de data
				sMask = '99/99/9999'; break;
			case 'csHora':							//Máscara de hora
				sMask = '99:99'; break;
			case 'csTelefonePre':					//Máscara de prefixo de telefone
				sMask = '99'; break;
			case 'csTelefone':						//Máscara de telefone
				sMask = '99999999'; break;
			case 'csCEP':							//Máscara de CEP
				sMask = '99999-999'; break;
			case 'csRamal':							//Máscara de ramal
				sMask = '9999'; break;
			case 'csNumero3':						//Máscara de entrada de 3 números 
				sMask = '999'; break;
			case 'csCPF':							//Máscara de CPF
				sMask = '999999999-99'; break;
			case 'csCNPJ':							//Máscara de CNPJ
				sMask = '99999999/9999-99'; break;
		}

		for (var i=0; i <= nLenM; i++) {			//Percorre o total de caracteres da máscara
			var bMask = (sMask.charAt(i).search(sRegExp)!=-1);	//Procura o caracter atual dentro da máscara

			if (bMask) {							//O caracter é da máscara
				sSaida += sMask.charAt(i);			//Adiciona a máscara à saída
				nLenM++;							//Incrementa o contador da máscara
			} else {								//O caracter não é da máscara
				sSaida += sValue.charAt(nCount);	//Adiciona o caracter à saída
				nCount++;							//Incrementa o contador da string
			}
		}

		oText.value = sSaida;						//Devolve o valor formatado para o objeto

		if (sMask.charAt(i-1) == '9')				//Permite apenas números
			if (!(nTecla>47 && nTecla<58))			//Só retorna se for um números de 0 a 9
				return false;

		if (oProxCampo && oText.value.length == (sMask.length)-1){	//Foca o próximo campo se for a hora
			if (document.all)
				setTimeout ('$Id(\'' + oProxCampo.id + '\').focus();', 50);
			else
				oProxCampo.focus();
		}
	}else
		return true;
	
}

//Localiza o próximo campo no formulário, que deverá receber o foco.
function jsProximoCampo(sNome){
	var oForms = document.forms;				//Retorna todos o forms do documento

	for (var i=0; i < oForms.length; i++){		//Navega entre todos os formulários do documento.
		var oForm = oForms[i];					//Retorna o form atual

		for (var j=0; j < oForm.length; j++){	//Navega entre todos os objetos do formulário.
			if (oForm[j].id == sNome) {			//Verifica se o objeto é o que foi passado como parâmetro.
				if (oForm[j+1].id)				//Verifica se existe outro objeto após o objeto atual.
					return oForm[j+1];			//Retorna o objeto que deverá receber o foco.
			}
		}
	}
}

// Função para formatar moeda
function jsFormatarInputMonetario(e) {
	var tammax = 10;
	var oText	= jsRetornaObjetoDoEvento(e);			//Retorna o objeto para o IE e os demais
	var tecla	= window.event?e.keyCode:e.which;		//Retorna o valor da tecla pressionada
	vr = oText.value;

	var sRegExp = /[\.\,\/]/gi;					//Expressão regular para limpar os caracteres de formatação
	vr = vr.toString().replace(sRegExp, '');	//Limpa ps caracteres

	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }

	if (tecla == 8 ){ tam = tam - 1 ; }

	if ( tecla == 8 || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) ){
		if ( tam <= 2 ){
			oText.value = vr ; }
		if ( (tam > 2) && (tam <= 5) ){
			oText.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
		if ( (tam >= 6) && (tam <= 8) ){
			oText.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
		if ( (tam >= 9) && (tam <= 11) ){
			oText.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	}
	return false;
}

//Função para selecionar o conteúdo de um input.
function jsSelecionarInput(e){
	var oInput = jsRetornaObjetoDoEvento(e);
	oInput.select();
}

//Função que apaga valor "0,00" onfocus
function ApagarPreco(e){
	if (this.value == '0,00'){
		this.value = '';
	}
}

//Função que preencher com "0,00" onblur
function PreencherPreco(e){
	if (this.value == ''){
		this.value = '0,00';
	}
}

//Função para formatar textarea.
function jsTextAreas(){
	var oTextAreas	= $Tag('textarea');

	for (var i=0; i<oTextAreas.length; i++){				//Percorre todos os textarea
		if (oTextAreas[i].className == 'csReadOnly') oTextAreas[i].readOnly=true;	//Desabilita o texatrea se o mesmo for apenas para visualização
		addEvent(oTextAreas[i],'keyup',jsFormatarTextArea);	//Adiciona a função ao evento do TextArea
		
		if (oCont = $Id(oTextAreas[i].id + 'Cont')){	//Atualiza o contador de strings.
			oCont.innerHTML = oTextAreas[i].value.length
		}
	}
}

//Função para formatar o tamanho dos textarea, e passar o tamanho dos mesmos para um input text.
function jsFormatarTextArea(e){
	var oTextArea = jsRetornaObjetoDoEvento(e);

	if (oCont = $Id(oTextArea.id + 'Cont')){				//Verifica se possui o contador de strings.
		if (oCont.title && oTextArea.value.length > oCont.title)//Verifica se ultrapassou o limite de caracteres
			oTextArea.value = oTextArea.value.substring(0, oCont.title);// Pega apenas o permitido.
				
		oCont.innerHTML = oTextArea.value.length;				//Passa o total de strings para o contador
	}
}

//Função para tratar as imagens do documento.
function jsTrataImagem(){
	var oImg = $Tag('img');	//Recupera todas as imagens do documento.
	
	//Percorre todas as imagens e atribui o alt ao title da mesma.
	for(i=0; i<oImg.length; i++){oImg[i].title = oImg[i].alt}
}









//Função para mostrar ou ocultrar todos os selects do documento. 
//bAcao: 1 = Abre, 0 = Fecha.
function jsManipulaSelect(bAcao){
	var oSelects = $Tag('select');	//Recupera todos os selects do documento

	if (bAcao)										//Testa a ação solicitada
		for (var i=0; i<oSelects.length; i++){oSelects[i].style.visibility = 'visible';}	//Exibe os selects
	else
		for (var i=0; i<oSelects.length; i++){oSelects[i].style.visibility = 'hidden';}		//Esconde os selects
}

//Função para gerar uma saudação, com data.
function jsSaudacao(sNome){
	var now = new Date();
	var mName = now.getMonth() + 1;
	var dName = now.getDay() + 1;
	var dayNr = now.getDate();
	var yearNr=now.getYear();
	var sSaudacao

	if (yearNr<2000){yearNr = yearNr+1900}

	if(mName==1) Month = 'Janeiro';
	if(mName==2) Month = 'Fevereiro';
	if(mName==3) Month = 'Março';
	if(mName==4) Month = 'Abril';
	if(mName==5) Month = 'Maio';
	if(mName==6) Month = 'Junho';
	if(mName==7) Month = 'Julho';
	if(mName==8) Month = 'Agosto';
	if(mName==9) Month = 'Setembro';
	if(mName==10) Month = 'Outubro';
	if(mName==11) Month = 'Novembro';
	if(mName==12) Month = 'Dezembro';

	sSaudacao = ' ' + dayNr + ' de ' + Month + ' de ' + yearNr;

	if (( now.getHours() >= 0 && now.getHours() <=3 ) || ( now.getHours() >= 18 && now.getHours() <=24 ))
		sSaudacao += ' - Boa noite';
	else if ( now.getHours() >= 4 && now.getHours() <= 11 )
		sSaudacao += ' - Bom dia';
	else if ( now.getHours() >= 12 && now.getHours() <= 17 )
		sSaudacao += ' - Boa tarde';

	if (sNome)
		document.write(sSaudacao + ', ' + sNome + '!');
	else
		document.write(sSaudacao + '!');
}

//Função PopUp criada em 11/08/2003 - Alencar
function PopUp(strUrl, strName, intWidth, intHeight, strRedim, strScroll, strToolBar, strMenuBar, strLocationBar, intTop, intLeft) {
	/*
	strUrl: Url que será aberta na janela pop up;
	strName: Nome da janela para casos dela ser utilizada como alvo (target);
	intWidth: Largura da janela que será criada;
	intHeight: Altura da janela que será criada;
	strRedim: Utilizar 'yes' ou 'no' informando se deseja que a janela seja redimensionável;
	strScroll: Utilizar 'yes' ou 'no' informando se deseja barras de rolagem;
	strMenuBar: Utilizar 'yes' ou 'no' informando se deseja barra de menu;
	strLocationBar: Utilizar 'yes' ou 'no' informando se deseja barra de endereço;
	intTop: Posição da janela em relação ao topo da tela;
	intLeft: Posição da janela em relação à esquerda da tela;
	*/

	if(isNaN(intTop)) intTop = ((screen.height - intHeight)/2);
	if(isNaN(intLeft)) intLeft = ((screen.width - intWidth)/2);
	if(strToolBar == 'yes') intHeight = intHeight - 25;
	if(strMenuBar == 'yes') intHeight = intHeight - 25;
	if(strLocationBar == 'yes') intHeight = intHeight - 25;

	janela = window.open(strUrl, strName, 'directories=no, menubar=' + strMenuBar + ', location=' + strLocationBar + ', toolbar=' + strToolBar + ', status=yes, width=' + intWidth + ', height=' + intHeight + ', scrollbars=' + strScroll + ', top=' + intTop + ', left=' + intLeft + ', resizable='+ strRedim);
}

//Envia o código e a descrição da imagem do Popup para a página que o chamou e fecha o Popup.
function EnviarImagem(Codigo, Descricao){
	opener.parent.window.document.getElementById('cdImagem').value=Codigo;
	opener.parent.window.document.getElementById('dsImagem').value=Descricao;
	setTimeout ('window.close();', 50);
}

//Envia o código e a descrição do banner do Popup para a página que o chamou e fecha o Popup.
function EnviarBanner(Codigo, Descricao){
	opener.parent.window.document.getElementById('cdBanner').value=Codigo;
	opener.parent.window.document.getElementById('dsBanner').value=Descricao;
	setTimeout ('window.close();', 50);
}


//Envia o código e a descrição da galeria do Popup para a página que o chamou e fecha o Popup.
function EnviarGaleriaFotos(Codigo, Descricao){
	opener.parent.window.document.getElementById('cdGaleria').value=Codigo;
	opener.parent.window.document.getElementById('dsGaleria').value=Descricao;
	setTimeout ('window.close();', 50);
}

//Envia o código e a descrição da multimídia do Popup para a página que o chamou e fecha o Popup.
function EnviarMultimidia(Codigo, Descricao){
	opener.parent.window.document.getElementById('cdMultimidia').value=Codigo;
	opener.parent.window.document.getElementById('dsMultimidia').value=Descricao;
	setTimeout ('window.close();', 50);
}

//Envia o código e a descrição do arquivo de download do Popup para a página que o chamou e fecha o Popup.
function EnviarDownload(Codigo, Descricao){
	opener.parent.window.document.getElementById('cdDownload').value=Codigo;
	opener.parent.window.document.getElementById('dsDownload').value=Descricao;
	setTimeout ('window.close();', 50);
}

//Função para substituir todos oa caracters inválidos por similares ou vazio ('').
//Obs.: Todos os campos de entrada de dados deve ter seu conteúdo validado por esta função.
function jsRCI(sString){
	sString	= sString.replace(/\n+/gi, '<br />');
	sString	= sString.replace(/[–-]+/gi, '-');
	sString = sString.replace(/[“”]+/gi, '"');
	sString = sString.replace(/[•]+/gi, '*');
	sString = sString.replace(/([çãõ])/gi, '\$1');
	
	sString = sString.replace(/(update)+/gi, '"UPDATE"');
	sString = sString.replace(/(insert)+/gi, '"INSERT"');
	sString = sString.replace(/(delete)+/gi, '"DELETE"');

	return sString;
}

//Função para substituir todos oa caracters inválidos por similares ou vazio ('').
//Obs.: Todos os campos de entrada de dados deve ter seu conteúdo validado por esta função.
function jsRCHTML(sString){
	sString	= sString.replace(/[–-]+/gi, '-');
	sString = sString.replace(/[“”]+/gi, '"');
	sString = sString.replace(/[•]+/gi, '*');
	sString = sString.replace(/[#]+/gi, '');
	sString = sString.replace(/([çãõ])/gi, '\$1');
	
	sString = sString.replace(/(update)+/gi, '"UPDATE"');
	sString = sString.replace(/(insert)+/gi, '"INSERT"');
	sString = sString.replace(/(delete)+/gi, '"DELETE"');

	return sString;
}

//Função para resetar todos os formulários do documento;
function jsLimparFormularios(){
	//Retorna um array com todos os formulários
	var oForms = $Tag('form');

	if (oForms){
		//Percorre todos os formulários, resetando os mesmos
		for (var i=0; i<oForms.length; i++){oForms[i].reset()}
	}
}

//Função para receber um registro XML e repassar os valores para os campos do formulário.
function jsCarregarCamposXML(oRegistro){
	var Descricao = '';
	if (!oRegistro) return false;

	//Percorre todos os campos do Registro
	for(var i=0; i<oRegistro.childNodes.length; i++){
		//Recebe o nome do campo
		var Campo = oRegistro.childNodes[i].tagName;

		//Recebe o valor do campo ou passa para o próximo, caso não tenha valor
		if (oRegistro.childNodes[i].childNodes[0])
			var Valor = oRegistro.childNodes[i].childNodes[0].nodeValue;
		else
			continue;
		
		//Desfaz o URLEncode aplicado sobre o valor do campo
		Valor = Valor.replace(/\+/g," ");
		Valor = unescape(Valor);

		//Se o campo existe, repassa o valor para o mesmo
		if (obj = $Id(Campo)){
			if (obj.type.search(/(checkbox)/) == -1)
				obj.value = Valor;
		}

		if (Campo.search(/dsMateria/) == 0){
			Campo == 'dsMateria1' ? Descricao = Valor : Descricao += Valor;
			$Id('dsMateria').value = Descricao;
		}

		if (Campo.search(/dsServico/) == 0){
			Campo == 'dsServico1' ? Descricao = Valor : Descricao += Valor;
			$Id('dsServico').value = Descricao;
		}

		if (Campo.search(/dsCurso/) == 0){
			Campo == 'dsCurso1' ? Descricao = Valor : Descricao += Valor;
			$Id('dsCurso').value = Descricao;
		}

		/* === Formatação exclusiva do módulo: 'Módulos do Sistema' === */
		if (Campo == 'stAcesso') $Id(Campo).checked = (Valor == 'True' ? true : false);
		if (Campo == 'cdAtividade'){
			var oArray = $Name('cdAtividade');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}

		/* === Formatação exclusiva do módulo: 'Profissionais do Sistema' === */
		if (Campo == 'cdGrupo'){
			var oArray = $Name('cdGrupo');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}

		/* === Formatação exclusiva do módulo: 'Temas' === */
		if (Campo == 'cdTipoTema'){
			var oArray = $Name('cdTipoTema');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}

		/* === Formatação exclusiva do módulo: 'Matérias' e 'Produto' === */
		if (Campo == 'stDestaque') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stHTML') $Id(Campo).checked = (Valor == 1 ? true : false);

		/* === Formatação exclusiva do módulo: 'Questionário respondido' === */
		if (Campo.search(/ResCheck/) == 0) $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo.search(/ResOpt/) == 0) $Id(Campo).checked = (Valor == 1 ? true : false);
		

		/* === Formatação exclusiva do módulo: 'Visitas' === */
		if (Campo == 'stAprovacao') $Id(Campo).checked = (Valor == 1 ? true : false);


		/* === Formatação exclusiva do módulo: 'Questionário' === */
		if (Campo == 'stObrigatorio') $Id(Campo).checked = (Valor == 1 ? true : false);		


		/* === Formatação exclusiva do módulo: 'Imovel' === */
		if (Campo == 'stCondominio') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stEstacionamento') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stPiscina') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stSauna') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stPlayground') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stQuadra') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stCampo') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stSalaoJogos') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stRestaurante') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stSalaoEventos') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stPreparoTerreno') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stFundacao') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stEstrutura') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stAcabamento') $Id(Campo).checked = (Valor == 1 ? true : false);

		/* === Formatação exclusiva do módulo: 'Produto' === */
		if (Campo == 'stPromocao') $Id(Campo).checked = (Valor == 1 ? true : false);

		/* === Formatação exclusiva do módulo: 'ClienteClasseA' === */
		if (Campo == 'stDestaque2') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stMasterCard') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stVisa') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stBigCard') $Id(Campo).checked = (Valor == 1 ? true : false);


		/* === Formatação exclusiva do módulo: 'Download' === */
		if (Campo == 'stBiblioteca') $Id(Campo).checked = (Valor == 1 ? true : false);

		/* === Formatação exclusiva do módulo: 'Modelo' === */
		if (Campo.search(/(stInfantil)|(stNewFace)/) == 0)
			$Id(Campo).checked = (Valor == 1 ? true : false);

		/* === Formatação exclusiva do módulo: 'Professores' === */
		if (Campo == 'stMatutino') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stVespertino') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'stNoturno') $Id(Campo).checked = (Valor == 1 ? true : false);
		if (Campo == 'cdDisciplina'){
			var oArray = $Name('cdDisciplina');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}
		if (Campo == 'cdCargo'){
			var oArray = $Name('cdCargo');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}
		if (Campo == 'cdCliente'){
			var oArray = $Name('cdCliente');
			for (var j=0; j<oArray.length; j++){
				oArray[j].checked = eval('Valor.search(/,'+oArray[j].value+',/)==-1?false:true');
			}
		}
		/* === Formatação exclusiva do módulo: 'Logradouro' === */
		if (Campo.search(/(cdBairro)/) == 0)
			$Id(Campo).title = Valor;

		/* === Formatação exclusiva do módulo: 'ClienteClasseA' === */
		if (Campo.search(/(cdSubTema)/) == 0)
			$Id(Campo).title = Valor;

		/* === Formatação exclusiva do módulo: 'ClienteClasseA' === */
		if (Campo.search(/(SubTema)/) == 0)
			$Id(Campo).title = Valor;


	}

	//Se existir algum campo textarea, atualiza o contador do mesmo, se possuir um contador.
	jsTextAreas();
}

//Função que retorna um determinado objeto HTML, pelo Id, se o mesmo existir
function $Id(sId){
	if (document.getElementById(sId)) return document.getElementById(sId);
}

//Função que retorna uma coleção de objetos HTML, pelo Name, se a mesma existir
function $Name(sName){
	if (document.getElementsByName(sName)) return document.getElementsByName(sName);
}

//Função que retorna uma coleção de objetos HTML, pela TagName, se a mesma existir
function $Tag(sTag){
	if (document.getElementsByTagName(sTag)) return document.getElementsByTagName(sTag);
}

// Função para capturar o tamanho da página
function getPageSize(){
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


/*  ===  FUNÇÕES DA PÁGINA DE LOGIN  ===  */
	// Função para centralizar o objeto dvLogin
	function jsCentralizar(sId, nWidth, nHeight){
		var ar		= getPageSize();
		var nTop	= document.documentElement.scrollTop;
		var left	= (ar[2]-nWidth) / 2;
		var top		= (ar[3]-nHeight) / 2;

		if (left < 0) left = 0;
		if (top < 0) top = 0;
		
		$Id(sId).style.left = left + 'px';
		$Id(sId).style.top = nTop + top + 'px';
	}

	// Função para o evento 'focus' do botão 'login'
	function jsLoginIn(obj){if(obj.value=='usuário')obj.value=''}

	// Função para o evento 'blur' do botão 'login'
	function jsLoginOut(obj){if(obj.value=='')obj.value='usuário'}

	// Função para o evento 'focus' do botão 'senha'
	function jsSenhaIn(obj){
		if(obj.value=='senha' && document.all){
			btNovo = document.createElement('input')
			btNovo.id = obj.id;
			btNovo.name = obj.name;
			btNovo.type = 'password';
			obj.parentNode.insertBefore(btNovo, obj)
			obj.parentNode.removeChild(obj);
			btNovo.focus();
		}
		else if(obj.value=='senha'){
			obj.value='';
			obj.type='password'}
		}

	// Função para o evento 'blur' do botão 'senha'
	function jsSenhaOut(obj){if(obj.value==''){obj.value='senha';obj.type='text'}}
/*  ===  FIM DE FUNÇÕES DA PÁGINA DE LOGIN  ===  */

function Convert(){
	 // Retorna a data no formato especificado
	 this.ToDate = function(str, format){
		 var MM = str.substring(0,2);
		 var dd = str.substring(3,5);
		 var yyyy = str.substring(6,10);
		 var hh = str.substring(11, 13);
		 var mm = str.substring(14, 16);
		 var output;
		 if(format == "dd/MM/yyyy hh:mm")
		 output = new Date(yyyy, dd-1, MM, hh, mm);
		 if(format == "dd/MM/yyyy")
		 output = new Date(yyyy, dd-1, MM);
		 return output;
	 }

	 // Retorna a string no formato especificado
	 this.ToString = function(exp, format) {
		//if(isDate(exp)) // converte a partir de uma data
		var MM = exp.getMonth() + 1;
		var dd = exp.getDate();
		var yyyy = exp.getFullYear();
		var hh = exp.getHours();
		var mm = exp.getMinutes();
		var output = '';

		if(format == 'dd/MM/yyyy')
			output = this.FormatLength(dd,2) + '/' + this.FormatLength(MM, 2) + '/' + yyyy;
		else if(format == 'hh:mm')
			output = this.FormatLength(hh,2) + ':' + this.FormatLength(mm,2);
		else if(format == 'dd/MM/yyyy hh:mm')
			output = this.FormatLength(dd,2) + '/' + this.FormatLength(MM, 2) + '/' + yyyy + ' ' + this.FormatLength(hh,2) + ':' + this.FormatLength(mm,2);

		return output;
	}

	 this.ToInt = function(exp){
		 var texto2 = exp.split('');
		 var texto3 = '';

		 for(x=0; x < texto2.length; x++)
		 {
			 if(isNumeric(texto2[x]) == false)
			 texto2[x] = null;
		 }
		 for(x=0; x < texto2.length; x++)
		 {
			 if(texto2[x] != null)
			 texto3 += texto2[x];
		 }
		return texto3;
	 }

	// Formata o nÃºmero de casas de um valor
	this.FormatLength = function(numero, casas)
	{
		numero = numero.toString();

		if(numero.length < casas)
		{
			for(var i = numero.length; i < casas; i++)
			numero = '0' + numero;
		}
		else
		{
			numero = numero.toString().substring(numero.length - 2);
		}
		return numero;
	}
}

var Convert = new Convert();
var data = new Date();
//alert(Convert.ToString(data, 'hh:mm'))


function jsURLAjaxDS(nmVar, dsTexto){
	var sSaida = '';

	//Substitui as quebras de linha por <BR>
	while (dsTexto.search(/\n/) != -1) (dsTexto = dsTexto.replace(/\n/, '<br />'));
	
	nuVar = Math.floor(dsTexto.length / 1000) + 1 //Retorna o número de variáveis necessárias

	for (i = 1; i <= nuVar; i++){
		sSaida += '&' + nmVar + i + '=' + dsTexto.substring( (i-1)*1000, i*1000);
		//alert(dsTexto.substring( (i-1)*1000, i*1000))
	}

	return sSaida;
}

//Faz o mesmo q a função Left do asp
function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

//Faz o mesmo q a função Right do asp
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function jsPlayer(cd){
	window.open('MidiaPlayer.asp?cd=' + cd, 'Player', 'menubar=no, location=no, toolbar=no, status=no, width=450, height=320, scrollbars=no, resizable=no');
}


