/* ---------------------------------------------------------------
'Nome........: funcoes.js
'Descricao...: contém varias funcoes Java
'Atualizacoes:[00] - Versao Inicial.
'
'contem......:  
 	        Focus_Link  - Foca link n determinado pelo item(n), o primeiro link da página é o 0 
 	        IsNumber    - Verifica se uma dada string é um número
	        IsDate      - Verifica se uma data está no formato DD/MM/AAAA
	    	AnoBissexto - Verifica se o ano dado e bissexto
		IsTime      - Verifica se a hora informada está no formato hh:mm
		fSoCaracter - Verifica na string passada, se existe somente o caracter informado
		IsString    - Verifica se uma dada string so contem letras
		sCalculaDigitoMod11 - 
		fTiraNaoNumericos - Tira caracteres nao numericos da string
		ContidoNoDominio(StrDado, Dominio) - Retorna True se a String dada só contiver 
                     					caracteres do domínio dado             
		ContemDominio(StrDado, Dominio) - Retorna True se a String dada contiver algum
					                  caractere do domínio dado
-----------------------------------------------------------------*/



/* ------------------------------------------------------------------------------
Nome: Focus_Link
Descricao: Foca no link n determinado pelo item(n), o primeiro link da página é o 0 
Parametros: n - integer indice do item(link) a ser focado , o primeiro é o zero.
---------------------------------------------------------------------------------*/
function Focus_Link(n) 
{
var saux;	
	if (navigator.appName.substring(0,9) == "Microsoft") 
	{
		if ('<% = Mid(Request.ServerVariables("HTTP_USER_AGENT"),31,1) %>' >= '5' )
		{			
			document.links.item(n).focus();
		}
	}
}


/*---------------------------------------------------------------------------
 Nome: IsNumber
 Descricao: Verifica se uma dada string é um número
 Parametros: string a ser verificada
 Retorno: Booleano
 Atualizacoes: [00] Versao Inicial    Data: 08/02/2000     Autor: AlexandreQ
-----------------------------------------------------------------------------*/
function IsNumber(Numero)
{
   var iIndice;
   for (iIndice=0;iIndice<Numero.length;iIndice++)
   {
      if (Numero.charAt(iIndice) < "0" || Numero.charAt(iIndice) > "9")
      {
	      return (false);
      }
   }
   return (true);
}


/*--------------------------------------------------------------------------
 Nome: IsDate
 Descricao: Verifica se uma data está no formato DD/MM/AAAA
 Parametros: data a ser verificada
 Retorno: Booleano
 Atualizacoes: [00] Versao Inicial    Data: 08/02/2000     Autor: AlexandreQ
----------------------------------------------------------------------------*/

function IsDate(Data)
{
   if (Data.length == 10)
   {
      if (Data.charAt(2)=="/" && Data.charAt(5)=="/")
      {
         sDia = Data.substring(0,2)
         sMes = Data.substring(3,5)
         sAno = Data.substring(6,10)
         if (IsNumber(sDia) && IsNumber(sMes) && IsNumber(sAno))
         {
            if (sDia>0 && sDia<32 && sMes>0 && sMes<13)
            {
               if (AnoBissexto(sAno))
               {
                  if (sMes == "02")
                  {
                     if (sDia > 29)
                        return (false)
                     else
                        return (true)
                  }
                  else if (sMes == "04" || sMes == "06" || sMes == "09" || sMes == "11")
                  {
                     if (sDia > 30)
                        return (false)
                     else
                        return (true)
                  }
                  else
                     return (true)
               }
               else
               {
                  if (sMes == "02")
                  {
                     if (sDia > 28)
                        return (false)
                     else
                        return (true)
                  }
                  else if (sMes == "04" || sMes == "06" || sMes == "09" || sMes == "11")
                  {
                     if (sDia > 30)
                        return (false)
                     else
                        return (true)
                  }
                  else
                     return (true)
               }
            }
            else
               return (false)
         }
         else
            return (false)
      }
   }
}


/* -------------------------------------------------------------------------
 Nome: AnoBissexto
 Descricao: Verifica se o ano dado e bissexto
 Parametros: Ano a ser verificado
 Retorno: Booleano
 Atualizacoes: [00] Versao Inicial    Data: 08/02/2000     Autor: AlexandreQ
----------------------------------------------------------------------------*/

function AnoBissexto(Ano)
{
   if (Ano.substring(Ano.length-2,Ano.length) == "00")
   {
      if (Ano.substring(0,Ano.length-2) % 4 == 0)
         return (true)
      else
         return (false)
   }
   else
   {
      if (Ano % 4 == 0)
         return(true)
      else
         return(false)
   }
}

/* ------------------------------------------------------------------
 Nome: IsTime
 Descricao: Verifica se a hora informada está no formato hh:mm
 Parametros: Hora a ser verificada
 Retorno: Booleano
 Atualizacoes: [00] Versao Inicial    Data: 23/02/2000     Autor: Cristiane Marçola
-----------------------------------------------------------------*/
function IsTime(Hora)
{
   if (Hora.length == 5)
   {
      if (Hora.charAt(2)==":")
      {
         
	 sHora = Hora.substring(0,2)
         sMinuto= Hora.substring(3,5)

         if (IsNumber(sHora) && IsNumber(sMinuto))
         {
            if (((sHora >= 0) && (sHora <= 23)) && ((sMinuto >=0) && (sMinuto <= 59)))

            	return (true);
            else
               return (false);
         }
         else
            return (false);
      }
   }
}



/* -----------------------------------------------------------------
 Nome: fSoCaracter
 Descricao: Verifica na string passada, se existe somente o caracter informado
 Parametros: string,caracter
 Retorno: boolean
 Atualizacoes: [00] Versao Inicial    Data: 24/02/2000     Autor: Ulisses(Fábrica)
-----------------------------------------------------------------*/
function fSoCaracter(_string,carac)
{
for(i=0;i<_string.length;i++)
{
	if(_string.charAt(i)!=carac)
		return false;	
}
return true;
}



/* -----------------------------------------------------------------
 Nome: IsString
 Descricao: Verifica se uma dada string so contem letras
 Parametros: _string ( string a ser verificada )
 Retorno: Booleano ( true se a string so contiver letras ) 
 Atualizacoes: [00] Versao Inicial    Data: 24/03/2000     Autor: Michel - Fabrica
-----------------------------------------------------------------*/

function IsString(_string)
{
   var iIndice;


	for ( iIndice = 0 ; iIndice < _string.length ; iIndice++ )
   {
      if ( ( ( _string.charAt(iIndice) < "a" ) || ( _string.charAt(iIndice) > "z" ) ) && ( ( _string.charAt(iIndice) < "A" ) || ( _string.charAt(iIndice) > "Z" ) ) )
		{
			return ( false ) ;
		}
	}
	return ( true ) ;
}

/* -----------------------------------------------------------------
 Nome........: sCalculaDigitoMod11
 Descricao...: 
 Paramentros.: 
 Retorno.....: 
 Atualizacoes: [00] Versao Inicial     Data: 08/02/2000     Autor: Marcelo - Fabrica
 -----------------------------------------------------------------*/
function sCalculaDigitoMod11(sValor,iDigSaida,sTipoValidacao)
{
  if (sTipoValidacao == 1) iCod = 12  
  if (sTipoValidacao == 2) iCod = 9   
  if (sTipoValidacao == 3) iCod = 10   

  for (t=1;t<=iDigSaida;t++)
    {
      soma = 0
      mult = 2
      for (j=sValor.length;j>0;j--)
      {
        soma = soma + (mult * parseInt(sValor.substring(j,j-1),10))
        mult++
        if (mult > iCod) mult = 2
      }
      soma = (soma * 10) % 11
      if (soma == 10) sValor = sValor + "0"
      else sValor = sValor + soma
    }
  	return sValor.substring(sValor.length-iDigSaida,sValor.length)
}

/*  -----------------------------------------------------------------
 Nome........: fTiraNaoNumericos
 Descricao...: Tira caracteres nao numericos da string
 Paramentros.: string
 Retorno.....: string sem caracteres nao numericos
 Atualizacoes: [00] Versao Inicial     Data: 25/05/2000     Autor: Fabrica
 ----------------------------------------------------------------- */
function fTiraNaoNumericos(sStr)
{
	var sAux = '';
	for(i=0;i<sStr.length;i++)
	{
		if(sStr.charAt(i)>='0' && sStr.charAt(i)<='9')
		{
			sAux = sAux + sStr.charAt(i);
		}
	}
	return sAux;
}

/*-----------------------------------------------------------------*
 | ContidoNoDominio    Retorna True se a String dada só contiver   |
 |                     caracteres do domínio dado                  |
 *-----------------------------------------------------------------*/
function ContidoNoDominio(StrDado, Dominio)
	{
	var i, j;
	
	if (StrDado == "") return false;
	
	for (i=0; i<StrDado.length; i++)
		{
		for (j=0; j<Dominio.length; j++)
			{
			if (StrDado.substr(i,1) == Dominio.substr(j,1)) break;
			}
		if (j >= Dominio.length) return false;
		}
	return true
	}

/*-----------------------------------------------------------------*
 | ContemDominio    Retorna True se a String dada contiver algum   |
 |                  caractere do domínio dado                      |
 *-----------------------------------------------------------------*/
function ContemDominio(StrDado, Dominio)
	{
	var i, j;
	
	if (StrDado != "")
		{
		for (i=0; i<StrDado.length; i++)
			{
			for (j=0; j<Dominio.length; j++)
				{
				if (StrDado.substr(i,1) == Dominio.substr(j,1)) return true;
				}
			}
		}
		
	return false;
	}
