<!--

/*****************************************************************************************************
 *              Biblioteca de Funções Genéricas                                                      *
 *                                                                                                   *
 * Funções neste arquivo:                                                                            *
 *                                                                                                   *
 * FUNÇÂO                                 RETORNO   DESCRIÇÂO                                        *
 * ------                                 -------   ---------                                        *
 * Popup(x,y,pagina,janela,w,h,scrolling) Janela    Gera uma Janela simples                          *
 * Janela(pagina,janela,w,h)              Janela    Gera uma Janela simples                          *
 * Saudacao()                             String    Gera uma saudação                                *
 * criaMascar(_RefObjeto, _Modelo)        String    Cria uma máscara                                 *
 *                           *
 *****************************************************************************************************/


/************************************************
* Function.: Popup(x,y,pagina,janela,w,h,scrolling)
* Função...: Gera uma Janela simples
* Input....: pagina,janela,w,h,scrolling
* Exemplo..: Popup(100,100,pop.htm,Pop,200,200)
************************************************/
function Popup(x,y,pagina,janela,w,h,scrolling)
{
	if (!scrolling) { scrolling='auto' }
	janela = window.open(pagina,janela,'width='+w+',height='+h+',left='+x+',top='+y+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no')
}

/************************************************
* Function.: Gera(pagina)
* Função...: Gera uma Janela simples
* Input....: pagina
************************************************/
function Gera(pagina)
{
	w = 360
	h = 200
	texto = "Confirmação"
	janela = window.open(pagina,texto,'width='+w+',height='+h+',left=10,top=10,scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no')
}

/************************************************
* Function.: Classificados(pagina,janela,w,h,scrolling)
* Função...: Gera uma Janela simples
* Input....: pagina,janela,w,h,scrolling
************************************************/
function Classificados(pagina,janela,w,h,scrolling)
{
	if (!scrolling) { scrolling='auto' }
	janela = window.open(pagina,janela,'width='+w+',height='+h+',left=10,top=10,scrollbars='+scrolling+',toolbar=no,location=no,status=no,menubar=no,resizable=no')
}

/************************************************
* Function.: Detalhes(pagina,janela,w,h,scrolling)
* Função...: Gera uma Janela simples
* Input....: pagina,janela,w,h,scrolling
************************************************/
function Detalhes(pagina,janela,w,h,scrolling)
{
	if (!scrolling) { scrolling='auto' }
	janela = window.open(pagina,janela,'width='+w+',height='+h+',left=100,top=100,scrollbars='+scrolling+',toolbar=no,location=no,status=no,menubar=no,resizable=no')
}

/************************************************
* Function.: Janela(pagina,janela,w,h)
* Função...: Gera uma Janela simples
* Input....: pagina,janela,w,h,scrolling
************************************************/
function Janela(pagina,janela,w,h)
{
	w = w + 5 
	h = h + 5	  
	janela = window.open(pagina,janela,'width='+w+',height='+h+',left=100,top=100,scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no')
}

/************************************************
* Function.: Saudacao()
* Função...: Gera uma saudação 
* Input....: Sem dados
* Exemplo..: Saudacao()
************************************************/
function Saudacao()
{
	var dias      = new Array ('Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado');
	var meses     = new Array ('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
	var saudacao  = new Array ('Bom Dia!','Boa Tarde!','Boa Noite!','Bem-vindo à bordo!');
	var now       = new Date();
	var day       = now.getDay();
	var month     = now.getMonth();
	var year      = now.getYear();
	var date      = now.getDate();	
	var horas     = now.getHours();
	year         += (year < 1900) ? 1900 : 0; // O problema do Bug do Mileno com Netscape
		
//	if (horas < 12) {document.write(saudacao[0])};
//	if ((horas >= 12) && (horas <18)) {document.write(saudacao[1])};
//	if (horas >= 18) {document.write(saudacao[2])};

	document.write(saudacao[3])
	document.write(" " + dias[day] + ", " + date + " de " + meses[month] + " de " + year);
}

/************************************************
* Function.: criaMascar(_RefObjeto, _Modelo)
* Função...: Cria uma máscara
* Input....: _RefObjeto, _Modelo
* Exemplo..: <input type="text" size="24" name="txt_telrs" 
              OnKeyUp="criaMascara(this, '(##) ####-####');">
************************************************/
 function criaMascara(_RefObjeto, _Modelo){
  
    var valorAtual = _RefObjeto.value;        
    var valorNumerico = '';
    var nIndexModelo = 0;
    var nIndexString = 0;
    var valorFinal = '';
    var adicionarValor = true;
     
    // Limpa a string valor atual para verificar 
    // se todos os caracteres são números
    for (i=0;i<_Modelo.length;i++){
      if (_Modelo.substr(i,1) != '#'){
        valorAtual = valorAtual.replace(_Modelo.substr(i,1),'');
    }}
      
    // verifica se todos os caracteres são números
    for (i=0;i<valorAtual.length;i++){
      if (!isNaN(parseFloat(valorAtual.substr(i,1)))){
        valorNumerico = valorNumerico + valorAtual.substr(i,1);
    }}
      
    // aplica a máscara ao campo informado usando
    // o modelo de máscara informado no script
    for (i=0;i<_Modelo.length;i++){
      if (_Modelo.substr(i,1) == '#'){
        if (valorNumerico.substr(nIndexModelo,1) != ''){
          valorFinal = valorFinal + valorNumerico.substr(nIndexModelo,1);
          nIndexModelo++;nIndexString++;
        } 
        else {
          adicionarValor = false;
				}
      }
      else {
        if (adicionarValor && valorNumerico.substr(nIndexModelo,1) != ''){
        valorFinal = valorFinal + _Modelo.substr(nIndexString,1)
        nIndexString++;
      }}
    }
    
    //alert(valorFinal)
    _RefObjeto.value = valorFinal
  }

/************************************************
* Function.: isInteger
* Função...: Verifica se um campo é inteiro, inclui dígitos de 0 a 9, vírgula, ponto, espaços e -
* Input....: campo a ser verificado
* Exemplo..: isInteger(Form.Numero.value)
************************************************/
function isInteger(s){
	var i;
	if (isEmpty(s)) 
		return false;
	for (i = 0; i < s.length; i++)
	{   
		var c = s.charAt(i);
		if (!isNumber(c)) return false;
	}
	return true;
}

/************************************************
* Function.: verificaData
* Função...: Verifica se um campo data é válido.
* Input....: Campo do formulário que contém a data
*            Esta função pega o campo diretamente, pois assim
*            pode dar uma resposta melhor ao usuário.
* Exemplo..: if (isEmpty(Form.Dia.value) || isEmpty(Form.Mes.value) ||isEmpty(Form.Ano.value) || 
*               !verificaData(Form.Dia.value + "/" + Form.Mes.value + "/" + Form.Ano.value)){
*                warnInvalid(Form.Dia,"O campo 'NASCIMENTO' está vazio ou é inválido!",1);
*                return false;
*             }
*************************************************/
function verificaData(argData){
var Data = new String(argData);
var DataAtual = new Date();
var AnoAtual = DataAtual.getYear();
var Dia = "";
var Mes = "";
var Ano = "";
var i = 0;

	for (i=0;((i < Data.length) && (Data.charAt(i) != "/"));i++)
    	Dia = Dia + Data.charAt(i);

    for (i=i+1;((i < Data.length) && (Data.charAt(i) != "/"));i++)
    	Mes = Mes + Data.charAt(i);

    for (i=i+1;(i < Data.length);i++)
        Ano = Ano + Data.charAt(i);
	
	for(i=0;i<Data.length;i++)
	{
		NroAsc = asc(Data.substring(i,i+1));
		if (!(NroAsc >= 47 && NroAsc <= 57)) 
				return false;
    }  
		
		if ((parseInt(Dia,10) > 31) || (parseInt(Dia,10) < 1))
		return false;
	
    if ((parseInt(Mes,10) == 2) && (parseInt(Dia,10) == 29) && (!anobissexto(parseInt(Ano,10))))
		return false;
	
	if ((parseInt(Mes,10) == 2) && (parseInt(Dia,10) > 29))
		return false;
	
	if ((parseInt(Mes,10) > 12) || (parseInt(Mes,10) < 1))
		return false;
	
    if (parseInt(AnoAtual,10)< 2000) 
		AnoAtual = AnoAtual + 1900;					
					
	if((parseInt(Ano,10) < 1900) || (parseInt(Ano,10) >= AnoAtual))
		return false;
			
    return true;
}

/************************************************
* Function.: isNumeric
* Função...: Verifica se um campo é numérico. Se contém apenas dígitos de 0 a 9
* Input....: campo a ser verificado
* Exemplo..: if (isEmpty(Form.DDD.value) || !isNumeric(Form.DDD.value)){
*               warnInvalid(Form.DDD,"O campo 'DDD' está vazio ou é inválido!",1);
*               return false;
*            }
************************************************/
function isNumeric(s)
{
        var i;
        if (isEmpty(s)) 
                return false;
        for (i = 0; i < s.length; i++)
        {   
                var c = s.charAt(i);
                if (!isDigit(c)) return false;
        }
        return true;
}

/****************************************************
* Function.: erro(campo, texto, complemento)
* Função...: Mostra mensagem de erro na tela
* input....: Campos a serem verificados
* Exemplo..: if (Form.Tipo.value == "Selecione"){
*								erro(Form.Tipo, "" , "Selecione o TIPO DE ACESSO!");
*								return false;
*							}
*							Ou
*							if (Form.Lembrete.value == ""){
*								erro(Form.Lembrete, "LEMBRETE PARA SENHA" , "");
*								return false;
*							}
****************************************************/
function erro(campo, texto, complemento) {
	
   if (complemento == "") {
      alert("O campo " + texto + " deve estar preenchido!");
   }
   else {
      alert(complemento);
   }
   campo.focus();
 	   return false;
}

/************************************************
* Function.: warnInvalid
* Função...: Gera um alert para o usuário e volta o foco para o campo que está com problema
* Input....: theField - campo do formulário com problema  
*            warnText - texto a ser mostrado no alert
* Exemplo..: if (!Form.leituracont.checked){
*               warnInvalid(Form.leituracont,"O campo referente à Leitura do Contrato não foi assinalado. Certifique-se de ter lido o contrato e assinale este campo !",0);
*               return false;
*            }
************************************************/
function warnInvalid (theField, warnText, temSelect)
{   
	theField.focus();
    if (temSelect) {
		theField.select();
	}
    alert(warnText);
    return false;
}

/************************************************
* Function.: isEmpty
* Função...: Verifica se um campo está vazio
* Input....: campo a ser verificado
* Exemplo..: if (isEmpty(Form.CEP.value) || !verificaCEP(Form.CEP.value)){
*                warnInvalid(Form.CEP,"O campo 'CEP' está vazio, não está completo ou contém caracteres inválidos!",1);
*                return false;
*            }
************************************************/               
function isEmpty(s) 
{
	return ((s == null) || (s.length == 0));
}

/****************************************************
* Function.: testatamenho(campo, tamanho)
* Função...: Mostra mensagem de erro na tela
* input....: Verifica o tamanho do dado do campo
* Exemplo..: if (!testatamanho(form.identificacao, 8)){
*                erro(form.identificacao, "Identificacao" , "O campo Identificação permite apenas 8 caracteres");
*                return false;
*            }
****************************************************/
function testatamanho(campo, tamanho){
	  if (campo.value.length < tamanho){
	  	return false;
	  }
	  return true;
	}

/************************************************
* Function.: verificaCEP
* Função...: Verifica se o CEP está no formato correto
* Input....: CEP a ser verificado
* Exemplo..: if (isEmpty(Form.CEP.value) || !verificaCEP(Form.CEP.value)){
*                warnInvalid(Form.CEP,"O campo 'CEP' está vazio, não está completo ou contém caracteres inválidos!",1);
*                return false;
*            }
************************************************/
function verificaCEP (cep) 
{
	s = new String(cep);
	if (s.length != 8)
	        return false;
	if (!isInteger(cep))
	        return false;
	return true;
}

/************************************************
* Function.: verificaCNPJ
* Função...: Verifica se um CNPJ é válido
* Input....: CNPJ a ser verificado
* Exemplo..: if (isEmpty(Form.CNPJ.value)   || 
*		            !isNumeric(Form.CNPJ.value) ||
*           		!verificaCNPJ(Form.CNPJ.value)){
*              	warnInvalid(Form.CNPJ,"O campo 'CNPJ' está vazio, possui conteúdo inválido ou contém caracteres inválidos!",1);
*               return false;
*             }
************************************************/
function verificaCNPJ(cnpj) {
	var erro = true; 
	var aux_cnpj = "";	
	var cnpj1=0,cnpj2=0;
	for(j=0;j<cnpj.length;j++)
		if(cnpj.substr(j,1)>="0" && cnpj.substr(j,1)<="9")
			aux_cnpj += cnpj.substr(j,1);
	if(aux_cnpj.length!=14)
		erro = false;
	else {
		cnpj1 = aux_cnpj.substr(0,12);
		cnpj2 = aux_cnpj.substr(aux_cnpj.length-2,2);
		fator = "543298765432";
		controle = "";
		for(j=0;j<2;j++) {
			soma = 0;
			for(i=0;i<12;i++) 
				soma += cnpj1.substr(i,1) * fator.substr(i,1);
			if(j==1) soma += digito * 2;
			digito = (soma * 10) % 11;
			if(digito==10) digito = 0;
			controle += digito;
			fator = "654329876543";
		} 
		if(controle!=cnpj2)
			erro = false;
	} 
	return erro;
}

/************************************************
* Function.: verificaCPF
* Função...: Verifica se um CPF é válido
* Input....: CPF a ser verificado
* Exemplo..: if (isEmpty(Form.CPFN.value)   || 
*                isEmpty(Form.CPFF.value)|| 
*		            !isNumeric(Form.CPFN.value + Form.CPFD.value) ||
*           		!verificaCPF(Form.CPFN.value + Form.CPFD.value)){
*              	warnInvalid(Form.CPFN,"O campo 'CPF' está vazio, possui conteúdo inválido ou contém caracteres inválidos!",1);
*               return false;
*             }
************************************************/
function verificaCPF(cpf)
{
        var dac = "", inicio = 2, fim = 10, soma, digito, i, j
        for (j=1;j<=2;j++) {
                soma = 0
                for (i=inicio;i<=fim;i++) {
                        soma += parseInt(cpf.substring(i-j-1,i-j))*(fim+1+j-i)
                }
                if (j == 2) { soma += 2*digito }
                digito = (10*soma) % 11
                if (digito == 10) { digito = 0 }
                dac += digito
                inicio = 3
                fim = 11
        }
		
		if ((cpf == '00000000000') || (cpf == '11111111111') || (cpf == '22222222222') || 
		            (cpf == '33333333333') || (cpf == '44444444444') || (cpf == '55555555555') || 
		            (cpf == '66666666666') || (cpf == '77777777777') || (cpf == '88888888888') || 
		            (cpf == '99999999999'))
		return false;
		
        return (dac == cpf.substring(cpf.length-2,cpf.length))
}

/************************************************
* Function.: verificaEmail (email)
* Função...: Verifica se um email é válido
* input....: E-mail a ser verificado
* Exemplo..: if (isEmpty(Form.Email.value) || !verificaEmail(Form.Email.value)){	
*                warnInvalid(Form.Email,"O campo 'E-MAIL' está vazio ou é inválido!",1);
*                return false;
*            }
************************************************/
function verificaEmail(email) {
		
	var s = new String(email);
       
     // { } ( ) < > [ ] | \ /
     if ((s.indexOf("{")>=0) || (s.indexOf("}")>=0)  || 
         (s.indexOf("(")>=0) || (s.indexOf(")")>=0)  || 
         (s.indexOf("<")>=0) || (s.indexOf(">")>=0)  || 
         (s.indexOf("[")>=0) || (s.indexOf("]")>=0)  || 
         (s.indexOf("|")>=0) || (s.indexOf("\"")>=0) || 
         (s.indexOf("/")>=0) )
         return false;
        
      if (vogalAcentuada(email))
          return false;
            
      // & * $ % ? ! ^ ~ ` ' "
      if ((s.indexOf("&")>=0) || (s.indexOf("*")>=0) || 
          (s.indexOf("$")>=0) || (s.indexOf("%")>=0) || 
          (s.indexOf("?")>=0) || (s.indexOf("!")>=0) || 
          (s.indexOf("^")>=0) || (s.indexOf("~")>=0) || 
          (s.indexOf("`")>=0) || (s.indexOf("'")>=0) )
          return false;
            
      // , ; : = #
      if ((s.indexOf(",")>=0) || (s.indexOf(";")>=0) || 
          (s.indexOf(":")>=0) || (s.indexOf("=")>=0) || 
          (s.indexOf("#")>=0) )
          return false;
            
      // procura se existe apenas um @
      if ((s.indexOf("@") < 0) || (s.indexOf("@") != s.lastIndexOf("@")) )
          return false;
            
      // verifica se tem pelo menos um ponto após o @
      if (s.lastIndexOf(".") < s.indexOf("@"))
          return false;
                
      return true;
}

/************************************************
* Function.: vogalAcentuada(s)
* Função...: Verifica se uma string tem vogais acentuadas
* input....: E-mail a ser verificado
************************************************/

	function vogalAcentuada(s) {
		ls = s.toLowerCase();
		if ((ls.indexOf("á")>=0) || (ls.indexOf("à")>=0) || 
		    (ls.indexOf("ã")>=0) || (ls.indexOf("â")>=0) || 
		    (ls.indexOf("é")>=0) || (ls.indexOf("ê")>=0) || 
		    (ls.indexOf("í")>=0) || (ls.indexOf("ó")>=0) || 
		    (ls.indexOf("õ")>=0) || (ls.indexOf("ô")>=0) || 
		    (ls.indexOf("ú")>=0) || (ls.indexOf("ü")>=0))
		return true;
	}

/************************************************
* Function.: verificaID (id)
* Função...: Verifica se um id é válido
* input....: Id a ser verificado
* Exemplo..: if (isEmpty(Form.ID.value) || !verificaID(Form.ID.value)){	
*                warnInvalid(Form.ID,"O campo 'IDENTIFICAÇÃO' está vazio ou é inválido!",1);
*                return false;
*            }
************************************************/
function verificaID(id) {
		
	var s = new String(id);
       
     // { } ( ) < > [ ] | \ /
     if ((s.indexOf("{")>=0) || (s.indexOf("}")>=0)  || 
         (s.indexOf("(")>=0) || (s.indexOf(")")>=0)  || 
         (s.indexOf("<")>=0) || (s.indexOf(">")>=0)  || 
         (s.indexOf("[")>=0) || (s.indexOf("]")>=0)  || 
         (s.indexOf("|")>=0) || (s.indexOf("\"")>=0) || 
         (s.indexOf("/")>=0) )
         return false;
            
      // & * $ % ? ! ^ ~ ` ' " 
      if ((s.indexOf("&")>=0) || (s.indexOf("*")>=0) || 
          (s.indexOf("$")>=0) || (s.indexOf("%")>=0) || 
          (s.indexOf("?")>=0) || (s.indexOf("!")>=0) || 
          (s.indexOf("^")>=0) || (s.indexOf("~")>=0) || 
          (s.indexOf("`")>=0) || (s.indexOf("'")>=0) )
          return false;
            
      // , ; : = # @ .
      if ((s.indexOf(",")>=0) || (s.indexOf(";")>=0) || 
          (s.indexOf(":")>=0) || (s.indexOf("=")>=0) || 
          (s.indexOf("#")>=0) || (s.indexOf("@")>=0) ||
          (s.indexOf(".")>=0) || (s.indexOf(" ")>=0) )
          return false;
            
      if (vogalAcentuada(id))
          return false;

      return true;
}

/************************************************
* Function..: checkField(s)
* Função....: Verificação básica de um campo de formulário por "coisas bobas": & < > | \ / ? ! @ # $ % ^ * ( ) - + _ = ; [ ] { } ` ' ~ . , "
* Input.....: Campo a ser verificado
* Exemplo...: if (isEmpty(Form.Nome.value) || !checkField(Form.Nome.value)){
*                 warnInvalid(Form.Nome,"O campo 'NOME' está vazio ou contém caracteres inválidos!",1);
*                 return false;
*             }
************************************************/
function checkField(s) 
{
 	if ((s.indexOf("&")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("|")>=0) ||
			(s.indexOf("\\")>=0)|| (s.indexOf("/")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) ||
			(s.indexOf("@")>=0) || (s.indexOf("#")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) ||
			(s.indexOf("^")>=0) || (s.indexOf("*")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) ||
			(s.indexOf("-")>=0) || (s.indexOf("+")>=0) || (s.indexOf("_")>=0) || (s.indexOf("=")>=0) ||
			(s.indexOf(";")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("{")>=0) ||
			(s.indexOf("}")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) || (s.indexOf("~")>=0) ||
			(s.indexOf(",")>=0) || (s.indexOf(".")>=0) || (s.indexOf("\"")>=0))
			return false;
    return true;
}


/************************************************
* Funções Auxiliares
* Conteúdo:
*  - function Trim(param).........: Elimina espaços em branco
*  - function isDigit(c)..........: Verifica se o caracter é um dígito de 0 a 9
*  - function isNumber(c).........: Verifica se o caracter pode fazer parte de um número: 0-9 , . ( ) - e espaço
*  - function makeCharsetString().: Gera uma string com os caracteres básicos na sequência de códigos ASC
*  - function asc(achar)..........: Retorna o código ASC do caracter passada por parâmetro
*  - function vogalAcentuada(s)...: Verifica se uma string tem vogais acentuadas 
*  - function anobissexto(argAno).: Verifica se o ano é bissexto
************************************************/
// Elimina espaços em branco
function Trim(param){
	var sFinal = "";
	
	for (x=0;x<param.length;x++)
	{
		if (param.charAt(x) != " ") 
			sFinal = sFinal + param.charAt(x);
	}
	
	return sFinal;
}

// Verifica se o caracter é um dígito de 0 a 9
function isDigit(c)
{ 
	return ((c >= "0") && (c <= "9")) 
}
		
// Verifica se o caracter pode fazer parte de um número: 0-9 , . ( ) - e espaço
function isNumber(c)
{ 
	return ((c >= "0") && (c <= "9") || (c=="-") || (c=="(") || (c==")") || (c==" ") || (c==".") || (c==",")) 
}
		
// Gera uma string com os caracteres básicos na sequência de códigos ASC
function makeCharsetString()
{
	var astr
	astr = ' !"#$%&\'()*+,-./0123456789:;<=>?@'
	astr+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	astr+= '[\]^_`abcdefghijklmnopqrstuvwxyz'
	astr+= '{|}~'
	return astr
}
		
// Retorna o código ASC do caracter passada por parâmetro
function asc(achar)
{
	var n=0;
	var ascstr = makeCharsetString()
	for(i=0;i<ascstr.length;i++){
		if(achar==ascstr.substring(i,i+1)){
			n=i;
			break;
		}
	}
	return n+32
}

// Verifica se uma string tem vogais acentuadas
function vogalAcentuada(s) 
{
	ls = s.toLowerCase();
	if ((ls.indexOf("á")>=0) || (ls.indexOf("à")>=0) || 
			(ls.indexOf("ã")>=0) || (ls.indexOf("â")>=0) || 
			(ls.indexOf("é")>=0) || (ls.indexOf("í")>=0) || 
			(ls.indexOf("ó")>=0) || (ls.indexOf("õ")>=0) || 
			(ls.indexOf("ô")>=0) || (ls.indexOf("ú")>=0) || 
			(ls.indexOf("ü")>=0))
		return true;
}

// Verifica se o ano é bissexto
function anobissexto(argAno) 
{
	if ((argAno % 4) == 0)
		if ((argAno % 100) == 0)
			if ((argAno % 400) == 0)
				return true;
			else
				return false;		
		else
			return true;
	else
		return false;
}
//-->
