/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : AutoTab
Descrição  : Esta função destina-se a saltar de um campo para outro quando o
			 tamanho máximo do campo atual for atingido
Parâmetros : Campo1  	- Campo atual
			 Campo2  	- Próximo Campo
Exemplo	   : OnKeyPress(this,form.txtCampo)
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função não funciona em Netscape devido a não existir o envento
			 onKeyPress no mesmo
------------------------------------------------------------------------------*/
function AutoTab(Campo1,Campo2)
{
	if (Campo1.value.length == (Campo1.maxLength))
	{
		Campo2.focus();
	}
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Seletudo
Descrição  : Esta função destina-se a selecionar todo o conteúdo de um campo
			 texto ou password
Parâmetros : Campo   	- Campo a ser selecionado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função so esta disponível para browsers IE4 e superiores
------------------------------------------------------------------------------*/
function Seletudo(Campo)
{
	if((Campo.type == "text")||(Campo.type == "password"))
	{
		Campo.select();
	}
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Seletudo
Descrição  : Esta função destina-se a completar o conteúdo de um campo com zeros a esquerda
			 texto ou password
Parâmetros : Campo   	- Campo a ser selecionado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função so esta disponível para browsers IE4 e superiores
------------------------------------------------------------------------------*/
function CompleCampo(Campo)
{
	while (!(eval(Campo.value.length)==eval(Campo.maxLength)))
	{
		Campo.value = "0" + Campo.value;
	}
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : valCNPJ
Descrição  : Esta função destina-se a validar CNPJ
Parâmetros : objCampo - campo a ser validado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/

function valCNPJ(objCampo)
{
	var CampoLimpo = LimpaCampo(objCampo.value,'./-')
	var Numero = CampoLimpo.substring(0,12);
	var Digito = CampoLimpo.substring(12,14);
	var CGC = Numero;
	var peso1 = '543298765432';
	var peso2 = '654329876543';
	var soma1 = 0;
	var soma2 = 0;
	var digito1 = 0;
	var digito2 = 0;
	
	for (i = 1; i < 12 - Numero.length+1; i++) {
    	CGC = eval("'" + 0 + CGC + "'")
    }
    for (i = 1; i < CGC.length+1; i++) {
    	soma1 += CGC.substring(i, i-1) * peso1.substring(i, i-1);
    }  
    soma1 %= 11;
    if (soma1  < 2) 
    {
       digito1 = 0;}
    else 
    {
       digito1 = 11 - soma1; }
	for (i = 1; i < CGC.length+1; i++) 
	{
    	soma2 += CGC.substring(i, i-1) * peso2.substring(i, i-1);
    } 
    soma2 += digito1 * 2 
    soma2 %= 11;
    if (soma2  < 2) 
    {
       digito2 = 0;}
    else 
    {
       digito2 = 11 - soma2; }
	if (eval("'" + digito1 + digito2 + "'") != Digito)
	{
    	return false;
    	alert("false");
    }
	else 
	{
    	return true;
    	alert("true");
    }

}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : valCPF
Descrição  : Esta função destina-se a validar CPF
Parâmetros : objCampo - campo a ser validado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/

function valCPF(objCampo)
{ 
	var CampoLimpo = LimpaCampo(objCampo.value,'.-')
	var Numero = CampoLimpo.substring(0,9);
	var Digito = CampoLimpo.substring(9,11);
	var j = -1;
	var CPF = Numero;
	var peso1 = '100908070605040302';
	var peso2 = '111009080706050403';
	var soma1 = 0;
	var soma2 = 0;
	var digito1 = 0;
	var digito2 = 0;
	    
	for (i = 1; i < 9 - Numero.length+1; i++) 
	{
	    CPF = eval("'" + 0 + CPF + "'")
	}
	    
	for (i = 1; i < CPF.length+1; i++) 
	{
	    j = j + 2;
	    soma1 += CPF.substring(i, i-1) * peso1.substring(j-1, j+1);
	    } 
	    soma1 %= 11;
	
	    if (soma1  < 2) {
	       digito1 = 0;}
	    else {
	       digito1 = 11 - soma1; 
	}
	
	j = -1; 
	for (i = 1; i < CPF.length+1; i++)
	{
	    j = j + 2;
	    soma2 += CPF.substring(i, i-1) * peso2.substring(j-1, j+1);
	} 
	soma2 += digito1 * 2 
	soma2 %= 11;
	
	if (soma2  < 2) 
	{
		digito2 = 0;}
	else 
	{
		digito2 = 11 - soma2; 
	}
	
	if (eval("'" + digito1 + digito2 + "'") != Digito)
	{
	    return false;
	}
	else
	{
	    return true;
	}
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaCPFCGC
Descrição  : Esta função destina-se a validar CPF e/ou CNPJ
Parâmetros : objCampo - campo a ser validado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função depende das funções validaCNPJ e validaCPF.
			 Se o tamanho do campo for = 14 ele valida CNPJ se = 11 valida CPF
------------------------------------------------------------------------------*/
function ValidaCPFCGC(objCampo)
{
	if(objCampo.value!='')
	{
		if(LimpaCampo(objCampo.value,'.-/').length>11)
		{
			if(!valCNPJ(objCampo))
			{
				alert('O CNPJ '+ objCampo.value +' não é válido');
				return(false);
			}
		}
		else if(LimpaCampo(objCampo.value,'.-/').length<=11)
		{
			if(!valCPF(objCampo))
			{
				alert('O CPF '+ objCampo.value +' não é válido');
				return(false);
			}
		}
	}
	return(true)
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : TxtObrigatorio
Descrição  : Verifica se o campo textbox foi digitado 
Parâmetros : Campo   	- Campo a ser verificado a obrigatoriedade
		     NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Nenhuma.
------------------------------------------------------------------------------*/
function TxtObrigatorio(Campo,NomeCampo)
{

   // Verifica se o campo foi digitado.
   if (Campo.value == ""){
      alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
      Campo.focus();
      return (false);
   }
	if (Campo.type == 'text')
	{
		// Verifica se existe alguma coisa digitada
		var checkOK = " ";
		var checkStr = Campo.value;
		var allValid = false;

		// Verifica se só existe dígitos no número digitado
		for (i = 0;  i < checkStr.length;  i++)
		{
		   ch = checkStr.charAt(i);
		   for (j = 0;  j < checkOK.length;  j++)
		      if (ch == checkOK.charAt(j))
		         break;
		      if (j == checkOK.length)
		      {
		         allValid = true;
		         break;
		      }
		}

		if (!allValid)
		{
		   alert("O campo " + NomeCampo + " é obrigatório, favor preencher.");
		   Campo.focus();
		   Campo.select();
	
		   return (false);
		}
	}
   return (true);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Numerico
Descrição  : Somente aceita numeros
Parâmetros : 
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Nenhuma.
------------------------------------------------------------------------------*/
function Numerico()
{
	if ((event.keyCode > 47) && (event.keyCode < 58))
	{
		event.returnValue=true;
	}
	else
	{
		event.returnValue=false;
	}
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaCaracter
Descrição  : Verifica se existe algum caracter inválido no campo 
Parâmetros : Campo   	- Campo a ser verificado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função verifica se existe os caracteres (' " ` ´ ~ ^ ¨)
------------------------------------------------------------------------------*/
function ValidaCaracter(Campo)
{
	if((Campo.value.indexOf('\'')!=-1)||(Campo.value.indexOf('\"')!=-1)||(Campo.value.indexOf('\ ')!=-1)||(Campo.value.indexOf('\¨')!=-1)||(Campo.value.indexOf('\^')!=-1)||(Campo.value.indexOf('\´')!=-1)||(Campo.value.indexOf('\`')!=-1)||(Campo.value.indexOf('\~')!=-1))
	{
		alert('Caracter inválido');
		Campo.focus()
		return(false);
	}
	return(true)
}


/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaData
Descrição  : Verifica se a data digitado está correta
Parâmetros : Data     	 - Campo contendo a data a ser verificada
			 NomeCampo   - Nome do campo a ser apresentado nas mensagens de erro
		     Obrigatório - Indica se a digitação da data é obrigatória ou não 
       	   			       1 - Obrigatória  0 - Opcional
Auxiliares : DataOk()
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função valida a data no formato dd/mm/aaaa verificando a sua
             correta digitação   
------------------------------------------------------------------------------*/
function ValidaData(Data, NomeCampo, Obrigatorio){

   // Verifica em caso de obrigatoriedade do campo se ele foi digitado.
   if ((Data.value == "" || Data.value == "dd/mm/aaaa") && Obrigatorio == 1){
      alert("Favor preencher o campo " + NomeCampo + ".");
      Data.focus();
      return (false);
   }
   else{

      // Seta a máscara default da data se o campo for opcional e não for digitado 
      if (Data.value == "" && Obrigatorio == 0){  
         Data.value = "";
         return (true);
	  }
   }
   
   // Verifica o tamanho máximo da data e se existe barras no campo
   if (Data.value.length < 10 || Data.value.indexOf("/", 0)!= 2 || Data.value.indexOf("/", 3)!= 5){
      alert("Favor preencher o " + NomeCampo + " no formato dd/mm/aaaa.");
      Data.focus();
	  Data.select();
      return (false);
   }
  
   // Verifica se só existe dígitos e barras na data digitada
   var checkOK = "0123456789/";
   var checkStr = Data.value;
   var allValid = true;

   for (i = 0;  i < checkStr.length;  i++){
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
         if (ch == checkOK.charAt(j))
            break;
         if (j == checkOK.length){
            allValid = false;
            break;
         } 
   }

   if (!allValid){
      alert("Preencha " + NomeCampo + " com números e barras.");
      Data.focus();
	  Data.select();
      return (false);
   }
  
   // Verifica se o campo data informado é válido
   var iDia = Data.value.substr(0, 2);
   var iMes = Data.value.substr(3, 2);
   var iAno = Data.value.substr(6, 4);

   if (!DataOk(iDia,iMes,iAno)){
      alert(NomeCampo + " inválida.");
      Data.focus();
      Data.select();
      return (false);
   }

   return (true);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaNumerico
Descrição  : Verifica se o valor digitado no campo é numerico
Parâmetros : objCampo     	- Campo a ser verificado
			 strNomeCampo	- Nome do campo
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/

function ValidaNumerico(objCampo,strNomeCampo)
{
	var blnStatus = true;
	for(i=0;i<objCampo.value.length;i++)
	{
		if(isNaN((objCampo.value.replace('.','').replace(',','')).substr(i,1)))
		{
			blnStatus = false
		}
	}
	
	if(blnStatus)
	{
		var fltValor = parseFloat(objCampo.value.replace('.','').replace(',','.'))
										
		if((isNaN(fltValor))&&(objCampo.value!=''))
		{
			objCampo.value='';
			objCampo.focus();
			objCampo.select();
			alert('O campo '+ strNomeCampo +' deve ser preenchido somente com numeros');
			return (false);
		}
	}
	else
	{
		objCampo.value='';
		objCampo.focus();
		objCampo.select();
		alert('O campo '+ strNomeCampo +' deve ser preenchido somente com numeros');
		return (false);
	}
	return (true)
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : VerificaMarcados
Descrição  : Verifica se existe pelo menos uma opção marcada em toda a 
			 coleção de checkbox
Parâmetros : chkBox     	- CheckBox a ser verificada
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function VerificaMarcados(strForm,chkBox)
{
	var intVerifica = 0;
	var intTotChkBox = 0;
	for(i=0;i<strForm.elements.length;i++)
	{
		if(strForm.elements[i].type=='checkbox')
		{
			intTotChkBox = intTotChkBox + 1;
		}
	}
	if (intTotChkBox != 1)
	{
		for(i=0;i<chkBox.length;i++)
		{
			if(chkBox[i].checked == true)
			{
				intVerifica = intVerifica + 1;
			}
		}
	}
	else
	{
		if(chkBox.checked == true)
		{
			intVerifica = intVerifica + 1;
		}
	}
	if(intVerifica==0)
	{
		alert('Selecione pelo menos uma opção');
		return(false);
	}
	return(true);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Trim
Descrição  : Este função funciona do mesmo jeito que a função Trim() do VBScript
Parâmetros : chkBox     	- CheckBox a ser verificada
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/

function Trim(P_str)
{
var left = 0;
var rigth = P_str.length;
  for(var i=0;i <= P_str.length;i++)
  {
    if (P_str.charAt(i) != " ")
    {
        left = i;
        break;
     }
   }
  for(var i=P_str.length-1;i >= 0;i--)
  {
    if (P_str.charAt(i) != " ")
    {
        rigth = i+1;
        break;
    }
  }
  return(P_str.substring(left,rigth));
}

/*------------------------------------------------------------------------------
 O Ponto Web Planejamento e Desenvolvimento
 Função     : DataJuliana
 Descrição  : Transforma a data informada em data juliana
 Parâmetros : iDia - Dia a ser transformado
              iMes - Mes a ser transformado
              iAno - Ano a ser transformado
 Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/
function DataJuliana(iDia, iMes, iAno){

	var iTemp = (iMes - 14) / 12;

	return (iDia - 32075 + (1461 * (iAno + 4800 + iTemp) / 4) +
		(367 * (iMes - 2 - iTemp * 12) / 12) -
		(3 * ((iAno + 4900 + iTemp) / 100) / 4));
}
/*------------------------------------------------------------------------------
 O Ponto Web Planejamento e Desenvolvimento
 Função     : DataOk
 Descrição  : Valida a data digitada pelos valores
 Parâmetros : iDia  - Dia a ser verificado
 			    iMes  - Mês a ser verificado
			    iAno  - Ano a ser verificado 
 Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/
function DataOk(iDia, iMes, iAno){

	if ((iAno - "1980" < 0) && (iAno - "2080" > 0))
		return (false);
	if (iMes - "12" > 0)
		return (false);
	if ((iMes == "01") || (iMes == "03") || (iMes == "05") || 
       (iMes == "07") || (iMes == "08") || (iMes == "10") || 
       (iMes == "12"))
		return ((iDia - "01" >= 0) && (iDia - "31" <= 0));
	if ((iMes == "04") || (iMes == "06") || (iMes == "09") || 
       (iMes == 11))
		return ((iDia - "01" >= 0) && (iDia - "30" <= 0));
	if (iMes == "02")
	{
		return (((iDia - "01" >= 0) && (iDia - "28" <= 0)) ||
					((iDia == "29") && (parseFloat(iAno) % 4 == 0)));
	}

	return (false);  
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : MarcaDesmarca
Descrição  : Esta função é destinada a marcar de desmarcar todos os checks do form
Parâmetros : objCheckBox     	- CheckBox a ser marcada/desmarcada
			 blnMarcar			- true : marcar
								  false: desmarcar 
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Esta função pode ser chamada em qualquer envento de qualquer objeto
------------------------------------------------------------------------------*/
function MarcaDesmarca(objCheckBox,blnMarcar)
{
	var intTotChkBox = 0;

	for(i=0;i<document.forms[0].elements.length;i++)
	{
		if(document.forms[0].elements[i].type=='checkbox')
		{
			intTotChkBox = intTotChkBox + 1;
		}
	}

	if (intTotChkBox>1)
	{
		for(i=0;i<objCheckBox.length;i++)
		{

			if(blnMarcar)
			{
				objCheckBox[i].checked=true;
			}
			else
			{
				objCheckBox[i].checked=false;
			}
		}
	}
	else
	{
		if(blnMarcar)
		{
			objCheckBox.checked=true;
		}
		else
		{
			objCheckBox.checked=false;
		}	
	}
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaInteiro
Descrição  : Esta função é destinada a validar campos interios que vai de 0 à 32767
Parâmetros : Campo     	- Campo a ser verificado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/

function ValidaInteiro(Campo)
{
	var lngValor = parseFloat(Campo.value)
	if((lngValor > 32767)||(lngValor == 0))
	{
		alert('O Valor do Código tem que estar entre 1 e 32767');
		Campo.focus();
		Campo.select();
		return(false);
	}
	return(true);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaSenha
Descrição  : Esta função é destinada a validar alteração de senha
Parâmetros : strSenhaAtual     	- Senha Atual
			 strNovaSenha		- Nova Senha
			 strConfirmaSenha	- Confirmação da Nova Senha
			 strNome			- Nome do usuário
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function ValidaSenha(strSenhaAtual,strNovaSenha,strConfirmaSenha,strNome)
{	
	if(strSenhaAtual.value==strNovaSenha.value)
	{
		alert('A Nova Senha não pode ser igual a senha anterior.');
		//strSenhaAtual.value='';
		strNovaSenha.value='';
		strConfirmaSenha.value='';
		//strSenhaAtual.focus();
		strNovaSenha.focus();	
		return(false);
	}
	else if ((strNovaSenha.value.length>8)&&(strNovaSenha.value.length<2))
	{
		alert('A nova senha deve ter no mínimo 2 e no máximo 8 caracteres.')
		//strSenhaAtual.value='';
		strNovaSenha.value='';
		strConfirmaSenha.value='';
		//strSenhaAtual.focus();
		strNovaSenha.focus();	
		return(false);
	}
	else if(strNovaSenha.value!=strConfirmaSenha.value)
	{
		alert('Confirme a Nova Senha Corretamente.')
		//strSenhaAtual.value='';
		strNovaSenha.value='';
		strConfirmaSenha.value='';
		//strSenhaAtual.focus();
		strNovaSenha.focus();
		return(false);
	}
	else if(strNovaSenha.value.toLowerCase()==strNome.value.toLowerCase())
	{
		alert('A Senha não pode ser igual ao nome do Usuário.')
		//strSenhaAtual.value='';
		strNovaSenha.value='';
		strConfirmaSenha.value='';
		strNovaSenha.focus();
		//strSenhaAtual.focus();
		return(false);
	}
	return(true);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : VerificaTexto
Descrição  : Esta função é destinada a validar se o texto contém letras e numeros,
			 se existem caracteres repetidos em sequência ou se existem caracteres
			 branco (espaços) no mesmo
Parâmetros : strTexto     	- Texto a ser virificado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilizando expressão regular
------------------------------------------------------------------------------*/

function VerificaTexto(strTexto)
{
	var blnStatus
	blnStatus = (strTexto.match(/\s/) == null);
	
	if (!blnStatus)
	{
		alert('A senha não pode conter espaços');
		return(blnStatus);
	}
	else
	{
		blnStatus = ((strTexto.match(/[a-z]/ig)!= null)&&(strTexto.match(/\d/) != null));
		if(!blnStatus)
		{
			alert('A senha deve conter letras e números');
			return(false);
		}
		else
		{
			var str2 = "";
			var chr;
		
			// Eliminação das repetições.
			for (var i = 0; i < strTexto.length; i++)
			{
				chr = strTexto.charAt(i);
				if (str2.indexOf(chr) == -1)
					str2 += chr;
			}
			
			// Verificando se há algum caracter repetido mais de 2 vezes
			for (var i = 0; i < str2.length; i++)
			{
				chr = str2.charAt(i);
				if (strTexto.indexOf(chr + chr + chr) != -1)
				{
					alert('A senha não pode conter caracteres repetidos');
					return(false)
					break;
				}
			}
		}
	}
	return(true);
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : MaiorMenor
Descrição  : Esta função é destinada a validar se o valor de um campo "menor" é
			 maior que o valor de um campo "maior".
Parâmetros : CampoMenor     	- Campo Menor
			 NomeCampoMenor		- Nome do Campo Menor
			 CampoMaior			- Campo Maior
			 NomeCampoMaior		- Valor do Campo Maior
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function MaiorMenor(CampoMenor,NomeCampoMenor,CampoMaior,NomeCampoMaior)
{
	var dblMaiorValor = CampoMenor.value;
	var dblMenorValor = CampoMaior.value;
	
	dblMaiorValor = dblMaiorValor.replace('.','');
	dblMaiorValor = dblMaiorValor.replace(',','.');
	
	dblMenorValor = dblMenorValor.replace('.','');
	dblMenorValor = dblMenorValor.replace(',','.');
	
	if(parseFloat(dblMaiorValor) > parseFloat(dblMenorValor))
	{
		alert('O valor do Campo '+ NomeCampoMenor +' não pode ser maior que o valor do campo '+ NomeCampoMaior);
		CampoMenor.focus();
		return(false);
	}
	return(true);
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : TamanhoMinimo
Descrição  : Esta função é destinada a verificar se a quantidade de caracteres
			 no campo está de acordo com a quantidade mínima.
Parâmetros : Campo		   	- Campo Menor
			 NomeCampo		- Nome do Campo
			 Tamanho		- Quantidade mínima de caracteres
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function TamanhoMinimo(Campo,NomeCampo,Tamanho)
{
	if(Campo.value.length < Tamanho)
		{
			alert('O campo '+ NomeCampo + ' deve ter no mínimo '+ (Tamanho) +' caracteres');
			Campo.focus();
			return(false)
		}
	return(true)

}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ZeraCampo
Descrição  : Esta função é destinada a zerar campos numéricos se não existir caracteres no campo.
Parâmetros : objCampo		- Campo a ser Zerado
			 blnMonetario	- se true o campo é zerado com virgula se falso zera sem virgula
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function ZeraCampo(objCampo,blnMonetario)
{
	if(Trim(objCampo.value)=='')
	{
		if(!blnMonetario)
		{
			objCampo.value = '0';
		}
		else
		{
			objCampo.value = '0,00';
		}
	}
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : OnOff
Descrição  : Esta função é destinada a abilitar ou desabilitar campos.
Parâmetros : objCampo  	- Campo a ser desabilitado/abilitado
			 blnEstado  - true/false
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function OnOff(objCampo,blnEstado)
{
	if(blnEstado)
	{
		objCampo.value='';
	}
	objCampo.disabled=blnEstado;
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ValidaEmail
Descrição  : Esta função é destinada a validar campos no formato de email.
Parâmetros : objCampo  	- Campo a ser validado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function ValidaEmail(objCampo)
{
	var intPosArroba = objCampo.value.indexOf('@');
	var intPosPonto = objCampo.value.substr(intPosArroba+1,objCampo.value.length).indexOf('.')
	var strMensagem = 'Endereço Eletrônico inválido'
	
	if(objCampo.value!='')
	{
		if((intPosArroba==-1)||(intPosArroba==0))
		{
			alert(strMensagem);
			objCampo.focus();
			return(false);
		}
		else
		{
			if((Trim(objCampo.value).substr(intPosArroba+1,objCampo.value.length)).length < 2)
			{
				alert(strMensagem);
				objCampo.focus();
				return(false);
			}
			else
			{
				if((intPosPonto==0)||(intPosPonto==-1))
				{
					alert(strMensagem);
					objCampo.focus();
					return(false);
				}
				else
				{
					if((Trim(objCampo.value).substr(intPosArroba+1,objCampo.value.length)).substr(intPosPonto+1).length < 1)
					{
						alert(strMensagem);
						objCampo.focus();
						return(false);
					}
				}
			}
		}
	}
	return(true);
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : LimpaCampo
Descrição  : Esta função é destinada a retirar caracteres indesejados do campo.
Parâmetros : strValor  	   - Valor a ser limpo
			 strCaracteres - Caracteres que deseja retirar
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : 
------------------------------------------------------------------------------*/
function LimpaCampo(strValor,strCaracteres)
{
	var strResultado = Trim(strValor)
	
	for(i=0;i<strResultado.length;i++)
	{
		for(j=0;j<strCaracteres.length;j++)
		{
			strResultado = strResultado.replace(strCaracteres.charAt(j),'')
		}
	}
	return(strResultado)
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : MascaraCnpjCpf
Descrição  : Esta função é destinada a retirar caracteres indesejados do campo.
Parâmetros : objCampo  	   - Campo a ser mascarado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onblur" do campo
------------------------------------------------------------------------------*/
function MascaraCnpjCpf(objCampo)
{
	var strCampo = objCampo.value;
	var strCampoNovo = '';

	strCampo = LimpaCampo(objCampo.value,'.-/ ,\'\"|_')
	
	if(strCampo.length<=11)
	{
		for(j=0;j<strCampo.length;j++)
		{
			if(j==2)
			{
				strCampoNovo = strCampo.substr(0,3) + '.';
				
			}
			if(j==5)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(3,3) + '.';
				
			}
			if(j==5)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(6,3) + '-';
				
			}
			if(j==5)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(9,2)
				
			}

		}
	}
	else
	{
		for(i=0;i<strCampo.length;i++)
		{
			if(i==1)
			{
				strCampoNovo = strCampo.substr(0,2) + '.';
			}
			if(i==4)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(2,3) + '.';
			}
			if(i==7)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(5,3) + '/';
			}
			if(i==11)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(8,4) + '-';
			}
			if(i==13)
			{
				strCampoNovo = strCampoNovo + strCampo.substr(12,2)
			}

		}
	}
	objCampo.value = strCampoNovo
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Formata_Data
Descrição  : Esta função é destinada mascarar campos no formato Data.
Parâmetros : Campo  	   - Campo a ser mascarado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onkeypress" do campo
------------------------------------------------------------------------------*/
function Formata_Data(Campo) {
	if(Campo.value.length==2)
	{
		Campo.value=Campo.value + '/'
	}
	if(Campo.value.length==5)
	{
		Campo.value=Campo.value + '/'
	}
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : Formata_Valor
Descrição  : Esta função é destinada mascarar campos no formato Monetário.
Parâmetros : campo  	   - Campo a ser mascarado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onkeypress" do campo
------------------------------------------------------------------------------*/
function Formata_Valor(campo) {
	var tecla = event.keyCode;
	vr = LimpaCampo(campo.value,'/,.');
	var tammax = campo.maxLength
	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 ){ 
	 		campo.value = vr ; }
	 	if ( (tam > 2) && (tam <= 5) ){
	 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 6) && (tam <= 8) ){
	 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 9) && (tam <= 11) ){
	 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 12) && (tam <= 14) ){
	 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
	}		
	
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : mascaraCPF
Descrição  : Esta função é destinada mascarar campos no formato CPF.
Parâmetros : objCampo  	   - Campo a ser mascarado
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onkeypress" do campo
------------------------------------------------------------------------------*/
function mascaraCPF(objCampo)
{
	var tecla = event.keyCode;
	var strCPF = LimpaCampo(objCampo.value,'.-/ ,\'\"|_')
								
	tam = strCPF.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{

		if ( tam > 3 && tam < 6 )
		{
			objCampo.value = strCPF.substr( 0, tam -1  ) + '.' + strCPF.substr( tam - 1, tam );
		}
		if ( tam >= 6 && tam <= 10 )
		{
			objCampo.value = strCPF.substr( 0, 3 ) + '.' + strCPF.substr( 3, 3 ) + '.' + strCPF.substr( 6, 3 );
		}
		if ( tam >= 11 )
		{
			objCampo.value = strCPF.substr( 0, 3 ) + '.' + strCPF.substr( 3, 3 ) + '.' + strCPF.substr( 6, 3 )+'-' + strCPF.substr( 9, 2 );
		}
	}
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : UCase
Descrição  : Esta função é destinada colocar os caracteres em caixa alta.
Parâmetros : objCampo  	   - Campo a ser colocado em caixa alta
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onkeypress" para IE e no envento
			 "onblur" para NS.
------------------------------------------------------------------------------*/
function UCase(objCampo)
{
	var strTexto = objCampo.value 
									
	objCampo.value = strTexto.toUpperCase()
									
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : LCase
Descrição  : Esta função é destinada colocar os caracteres em caixa baixa.
Parâmetros : objCampo  	   - Campo a ser colocado em caixa alta
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observação : Utilize esta função no envento "onkeypress" para IE e no envento
			 "onblur" para NS.
------------------------------------------------------------------------------*/
function LCase(objCampo)
{
	var strTexto = objCampo.value 
									
	objCampo.value = strTexto.toLowerCase()
									
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : ComparaData
Descrição  : Verifica se a data 1 é maior do que a data 2
Parâmetros : Data1 - Data Maior
			 Data2 - Data Menor
			 Mensagem - Texto que aparecerá no alert
Auxiliares : DataJuliana()
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/
function ComparaData (Data1,Data2,Mensagem) {

   var hDia = Data2.substr(0, 2);
   var hMes = Data2.substr(3, 2);
   var hAno = Data2.substr(6, 4);
   var dDia = Data1.value.substr(0, 2);
   var dMes = Data1.value.substr(3, 2);
   var dAno = Data1.value.substr(6, 4);

   var iDia1 = parseFloat(dDia);
   var iMes1 = parseFloat(dMes);
   var iAno1 = parseFloat(dAno);
   var iDia2 = parseFloat(hDia);
   var iMes2 = parseFloat(hMes);
   var iAno2 = parseFloat(hAno);
   
   if ((DataJuliana(iDia1, iMes1, iAno1)-DataJuliana(iDia2, iMes2, iAno2))<0)
   {
		alert(Mensagem);
		Data1.focus();
		return (false);
   }
 
   return (true);
}


/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : PeriodoMaximo
Descrição  : Valida se a data inicial é maior que a data de final somada a
			 a quantidade de dias máximo
Parâmetros : DataInicial - Data a ser verificada
			 DataFinal - Data atual (lembrar de passar mm/dd/aaaa via ASP)
			 Dias - Quantidade de dias máximo
Auxiliares : DataJuliana()
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/
function PeriodoMaximo (DataInicial,DataFinal,Dias) {

   var hDia = DataFinal.value.substr(0, 2);
   var hMes = DataFinal.value.substr(3, 2);
   var hAno = DataFinal.value.substr(6, 4);
   var dDia = DataInicial.value.substr(0, 2);
   var dMes = DataInicial.value.substr(3, 2);
   var dAno = DataInicial.value.substr(6, 4);

   var iDia1 = parseFloat(dDia);
   var iMes1 = parseFloat(dMes);
   var iAno1 = parseFloat(dAno);
   var iDia2 = parseFloat(hDia);
   var iMes2 = parseFloat(hMes);
   var iAno2 = parseFloat(hAno);
   
   if ((DataJuliana(iDia2, iMes2, iAno2)-DataJuliana(iDia1, iMes1, iAno1)) > Dias)
   {
		alert('A Data Final não pode ser superior a '+ Dias +' dias da Data Inicial.');
		DataInicial.focus();
		return (false);
   }
 
   return (true);
}
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função     : MaiorQZero
Descrição  : Vefirica se o valor do campo é menor ou igual a zero
Parâmetros : objCampo - Campo a ser verificado
			 strNomeCampo - Nome do Campo para ser exibido na caixa de mensagem (alert)
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/
function MaiorQZero(objCampo,strNomeCampo)
{
	var intValorCampo
									
	intValorCampo = objCampo.value
	intValorCampo = intValorCampo.replace('.','');
	intValorCampo = intValorCampo.replace(',','.');
	intValorCampo = parseFloat(intValorCampo);
									
	if(intValorCampo == 0)
	{
		alert('O campo '+ strNomeCampo +' deve ser maior que Zero');
		objCampo.focus();
		objCampo.select();
		return(false)
	}
	return(true)
									
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função		: ZerosEsquerda
Descrição	: Utilizada para completar algum valor com zeros à esquerda
Parâmetros	: strValor - Valor a ser completado
			  intQuantidade - Quantidade de zeros à completar
Observação	: Utilize a função CompletarZeros passando como parâmetro o nome do campo
			  que deverá ser preenchido, caso queria preencher um campo com zeros.
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/

function ZerosEsquerda(strValor,intQuantidade)
{
	var x = intQuantidade-Trim(strValor).length
	if(strValor!='')
	{
		for(i=0;i<x;i++)
		{
			strValor = '0' + Trim(strValor);
		}
	}
	return(strValor);
}

function CompletarZeros(objCampo)
{
	objCampo.value = ZerosEsquerda(objCampo.value,objCampo.maxLength);
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função		: FormataHora
Descrição	: Utilizada para foramatar campos no formato HH:MM
Parâmetros	: strValor - Valor a ser formatado
Observação	: Esta função retorna o valor formatado.
Programador: Marcos Antonio Felisberto (marcos_felis@yahoo.com)
------------------------------------------------------------------------------*/

function FormataHora(strValor)
{
	if (strValor.length==2)
	{
		strValor += ':';
	}
	return strValor;
}

/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função		: ValidaHora
Descrição	: Utilizada para validar campos no formato HH:MM
Parâmetros	: strValor - Valor a ser validado
Observação	: Esta função retorna um boleano.
Programador : Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observações	: Função auxiliar: LimpaCampo()
------------------------------------------------------------------------------*/

function ValidaHora(strValor)
{
	var HHMM = new String(LimpaCampo(strValor,':'));
	return (((!isNaN(HHMM.substr(0,2)))&&
			(!isNaN(HHMM.substr(2,2))))&&
			(parseInt(HHMM.substr(0,2))>=0)&&
			(parseInt(HHMM.substr(0,2))<=23)&&
			(parseInt(HHMM.substr(2,2))>=0)&&
			(parseInt(HHMM.substr(2,2))<=59))
}

	
/*------------------------------------------------------------------------------
O Ponto Web Planejamento e Desenvolvimento
Função		: PosicionaCombo
Descrição	: Utilizada para posicionar Combos
Parâmetros	: strValor - Valor a ser validado
              objLista - Lista a ser reposicionada
Programador : Marcos Antonio Felisberto (marcos_felis@yahoo.com)
Observações	: ''
------------------------------------------------------------------------------*/
function PosicionaCombo(strValor, objLista)
{
	
	for(var intContador = objLista.length-1; intContador>=0 ;intContador--){
		if (strValor == objLista.options[intContador].value)
		{
			objLista.selectedIndex = intContador;
			return;
		}
	}
		
}