//*********Função para completar a data com barras ****************************************
function completaData(campo){
         qtdcaracteres = (campo.value).length;
         if(qtdcaracteres == 2 || qtdcaracteres == 5)
        campo.value = campo.value + "/";
        }

function validaCampos(){

  var numero       = document.novatarefa.nr_documento.value;
  var data         = document.novatarefa.data_documento.value;
  var assunto      = document.novatarefa.assunto.value;
  var descricao    = document.novatarefa.descricao.value;
  var nsolicitante = document.novatarefa.nsolicitante.value;
  
  if (numero == ''|data==''|assunto == ''|descricao == ''|nsolicitante == ''){
  
    alert('Preencha todos os campos');
    return false;
  }

}

// Máscaras de entrada  ******************************************************************
function Mascara (formato, objeto)
{ 
	//campo = eval (objeto); 
	campo = objeto.value;
	if (formato=='XXXXX-X'){ 
		
		separador = '-'; 
		conjunto1 = 5; 
		if (window.event.keyCode >= 48 || window.event.keyCode <= 57){ 
			if (campo.length == conjunto1){ 
				objeto.value = campo + separador; 
			} 
		}
		else
		{ 
			window.event.keyCode = 0;
		} 
	} 	
}	
// Formata Data ****************************************************************************
function FormataData (formato, objeto)
{
  campo = objeto.value; 
  if (campo != '') 
  {	
	
	if (formato=='DDMMYYYY'){ 
		campo = campo.replace("/","");
		campo = campo.replace("/","");		
		tamanho = campo.length;
		separador = '/'; 

		if (tamanho == 8)
		{
			objeto.value = campo.substr(0,2) + '/' + campo.substr(2,2) + '/' + campo.substr(4, 4);	
		}
		else
		{
  			alert("O campo 'Vencimento' não está no formato 'dd/mm/aaaa'. Por favor, corrija-o. Em caso de dúvidas, consulte a Ajuda.");
  			objeto.focus();
		   return false;
	  	}	
	  	if (!isDateJS(objeto))
		{				  	
			return false;			
		}	
		return true;					
	}  	
	if (formato=='MMYYYY'){ 
		campo = campo.replace("/","");
		tamanho = campo.length;
		separador = '/'; 

		if (tamanho == 6)
		{
			objeto.value = campo.substr(0,2) + '/' + campo.substr(2,4); 
		}
		else
		{
  			alert("O campo 'Competência' não está no formato 'mm/aaaa'. Por favor, corrija-o. Em caso de dúvidas, consulte a Ajuda.");
  			objeto.focus();
		   return false;
	  	}	
	  	if (!isCompetencia(objeto))
		{				  	
			return false;			
		}	
		return true;			  		  	
	}  		
  } 	
} 
	
// Máscaras de entrada  *****************************************************************
function FormataValorTecla(campo, tammax, teclapres)
{   
	var tecla = teclapres.keyCode;
	if (tecla >=48 && tecla <= 57 || tecla >=96 && tecla <=105)
	{	
		if (CampoSelecionado==true)
		{
			CampoSelecionado = false;
			campo.value = "";
			return true;
		}	
	}
	else
		CampoSelecionado = false;
			
	vr = campo.value;
	vr = vr.replace("/", "");
	vr = vr.replace("/", "");
	vr = vr.replace(",", "");
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
			
	if (flagZero == 1) 
		vr = vr.replace("0","");
	if (flagZero == 2)
	{ 
		vr = vr.replace("0","");
		vr = vr.replace("0","");		
	}
	tam = vr.length;
	
	//alert ("tam=" + tam + ";flagZero=" + flagZero + ";vr=" + vr);
	
	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 == 1) {
			campo.value = '0,0' + vr;
			flagZero = 2;
		}
				
		if (tam == 2) {
			campo.value = '0,' + vr;
			flagZero = 1;
		}
			
		if (tam > 2)
			flagZero = 0;	
			
		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);	
	}		
	else
		return false;			
}	
// Tabulacao *******************************************************************
function SaltaCampo (campo, prox, tammax, teclapres)
{
	var tecla = teclapres.keyCode;
	vr = campo.value;
	tam = vr.length;	
	if( tecla == 109 || tecla == 188 || tecla == 110 || tecla == 111 || tecla == 223 || tecla == 108 ){
	  campo.value = vr.substr( 0, vr.length - 1 ); }
	//else{
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;
	if (tecla != 0 && tecla != 9 && tecla != 16 )
	   if (tam == tammax )	
		  prox.focus() ;	
}

//Função de validação de data *******************************************
function isDateJS(campo){

	Data = campo.value;

	if (Data == ""){
	 return false }

	Data_valida = true
 
	if (Data.length > 10){
	 Data_valida = false
	}
 
	//Se a Data for apenas números retorna inválido
	if (!isNaN(Data)){
	 Data_valida = false
	}

	for (i=0;i<=Data.length;i++){
 		if (isNaN(Data.charAt(i))){
  			Separador = Data.charAt(i) 
  
  		//SE O SEPARADOR FOR DIRERENTE DE "/" , RETORNA DATA INVALIDA.
  		if (Separador != "/"){
   			Data_valida = false;
   
   		}
     
   		Dia = Data.substring(0,Data.indexOf(Separador)) 
   		Mes = Data.substring(eval(Data.indexOf(Separador) + 1),Data.lastIndexOf(Separador)) 
   		Ano = Data.substring(eval(Data.lastIndexOf(Separador) + 1),Data.length) 
 		} //End if
	} // End For


	if (isNaN(Dia)){
	 Data_valida = false  }
 
	if (Dia.length < 1 || Dia.length > 2){ 
	 Data_valida = false }
 
	if (isNaN(Mes)){
	 Data_valida = false }
 
	if (Mes.length < 1 || Mes.length > 2 ){ 
	 Data_valida = false }
 
	if (isNaN(Ano)){
	 Data_valida = false }
 
	if (Ano.length < 2 || Ano.length > 4){ 
	 Data_valida = false } 
 
	if (Dia < 1 || Dia > 31 || Mes < 1 || Mes > 12){
	 Data_valida = false }
 
	if (Dia == 31 && (Mes == 2 || Mes == 4 || Mes == 6 || Mes == 9 || Mes == 11)){
	 Data_valida = false }

	if (Mes == 2)
	  {
	  var ano
	  var bissexto = (Ano % 4 == 0 && (Ano % 100 != 0 || Ano % 400 == 0));
	  if (Dia>29 || (Dia==29 && !bissexto))
	   {
	   alert("Fevereiro não possui "+Dia+" dias para o ano indicado.");
	   Data_valida = false;
	      }
	  }
	
	if (Data_valida) {
	return true
	

	}else {

	alert("Por favor, entre com uma data válida, no formato 'dd/mm/aaaa'.");
	campo.value="";
	campo.focus();
	}

}//Fim da função de validação de data ************************************************

//Função de validação de competência  ************************************************
function isCompetencia(){

	Data = document.frm.competencia.value;

	if (Data == ""){
	 return false }

	Data_valida = true
 
	if (Data.length > 7){
	 Data_valida = false
	}
 
	//Se a Data for apenas números retorna inválido
	if (!isNaN(Data)){
	 Data_valida = false
	}

	for (i=0;i<=Data.length;i++){
 		if (isNaN(Data.charAt(i))){
  			Separador = Data.charAt(i) 
  
  		//SE O SEPARADOR FOR DIRERENTE DE "/" , RETORNA DATA INVALIDA.
  		if (Separador != "/"){
   			Data_valida = false;
   
   		}
     
   		Mes = Data.substring(0,Data.indexOf(Separador)) 
   		Ano = Data.substring(eval(Data.indexOf(Separador) + 1),Data.length) 
 		} //End if
	} // End For
 
	if (isNaN(Mes)){
	 Data_valida = false }
 
	if (Mes.length < 1 || Mes.length > 2 ){ 
	 Data_valida = false }
 
	if (isNaN(Ano)){
	 Data_valida = false }
 
	if (Ano.length < 2 || Ano.length > 4){ 
	 Data_valida = false } 
 
	if (Mes < 1 || Mes > 12){
	 Data_valida = false }
 	
	if (Data_valida) {
	return true
	

	}else {

	alert("Por favor, entre com um mês e ano válidos, no formato 'mm/aaaa'.");
	campo.value="";
	campo.focus();
	}

}//Fim da função de validação de data   *********************************************
// Retira caracteres invalidos ******************************************************
function RetiraCaracteresInvalidos(strCampo,tam) {
	nTamanho = strCampo.length;
	szCampo = "";
	j=0;
	for (i = nTamanho-1;i>=0;i--) 
	{
		if ((strCampo.charAt(i) >= "0") && (strCampo.charAt(i) <= "9"))	{
			szCampo = strCampo.charAt(i) + szCampo;
			j++;
			if (j > tam) break;
		}
	}
	if (szCampo.length < tam) {
		for (i = szCampo.length;i<tam;i++) 
		{
			szCampo = "0" + szCampo;
		}
	}
    return szCampo;
}
// ************************************************************************************
function ConfirmaAntes(campoAnt,rotulo) {
        if (campoAnt.value.length == 0) 
        {
		   alert ("Por favor, preencha antes o campo '" + rotulo + "'."); 
		   campoAnt.focus();
		   return false;
		 }  
        return true;
}
// *************************************************************************************
function ConfirmaDepois(rotuloUGR,campoUGR) {
	if (rotuloUGR == 'Código Favorecido' || rotuloUGR == 'Gestão') {
        if (campoUGR.value.length > 0) 
        {
        if (isNaN(campoUGR.value))
        {
		   alert (rotuloUGR + " pode receber apenas caracteres numéricos. Por favor, corrija-o."); 
		   campoUGR.focus();
		   return false;
		 }
		 }  
        return true;
   }	     
	if (rotuloUGR == 'Código Recolhimento') {   
		 var UGR = campoUGR.value;
		 UGR = UGR.replace('-','');
        if (UGR.length > 0) 
        {
        if (isNaN(UGR))
        {
		   alert (rotuloUGR + " pode receber apenas caracteres numéricos. Por favor, corrija-o."); 
		   campoUGR.focus();
		   return false;
		 }
		 }  
        return true;	
   }
}
// ******************************************************************************
function confirmaReferencia(campo) {
        var valor = campo.value;
      
        if (campo.value.length > 0) 
        {
        if (isNaN(valor))
        {
		   alert ("Referência pode receber apenas caracteres numéricos. Por favor, corrija-o."); 
		   campo.focus();
		   return false;
		 }
        }  		 
        return true;
}
// *****************************************************************************
function ConfirmaNumero(rotulo,campo) {
        var valor = campo.value;
      
        valor = valor.replace(".","");
		 valor = valor.replace(".","");
		 valor = valor.replace("-","");
		 valor = valor.replace("/","");

        if (campo.value.length > 0) 
        {
        if (isNaN(valor))
        {
		   alert (rotulo + " pode receber apenas caracteres numéricos. Por favor, corrija-o."); 
		   campo.focus();
		   return false;
		 }		 
        if (ValidarCpfCnpj(valor,campo) == false)
        {
            alert("O CNPJ/CPF não é válido. Por favor, corrija-o.");
    		  campo.focus();
            campo.value = "";
    		  return false;
        }
        }  		 
        return true;
}
// *****************************************************************************
function ValidarCpfCnpj (campo,objeto) {
	if (campo.length == 11)
	{
		var CPFaux = RetiraCaracteresInvalidos(campo,11);
		NR_CPF = CPFaux.substr(0,9);
		var rcpf2 = CPFaux.substr(9,2);
		
		if ((NR_CPF == null || NR_CPF == 0)) {
     		return false;
		}

  		if( CPFaux == "00000000000" || CPFaux == "00000000191" || CPFaux == "99999999999")
     		return false;

	  	d1 = 0;
  		for (i=0;i<9;i++)
    		d1 += NR_CPF.charAt(i)*(10-i);
  		d1 = 11 - (d1 % 11);
  		if (d1>9) d1 = 0;

  		if (rcpf2.charAt(0) != d1)
    		return false;

  		d1 *= 2;
  		for (i=0;i<9;i++)
    		d1 += NR_CPF.charAt(i)*(11-i);
  		d1 = 11 - (d1 % 11);
  		if (d1>9) d1 = 0;

  		if (rcpf2.charAt(1) != d1)
    		return false;

		objeto.value = CPFaux.substr(0, 3) + '.' + CPFaux.substr(3, 3) + '.' + CPFaux.substr(6, 3) + '-' + rcpf2;    
  		return true;
	}
	else if (campo.length == 14)
	{
		    var CGC1, CGC2, Matriz; 
		    var Soma, Digito;
		    var i , j; 
		    var ContIni , ContFim;
		    var controle;
			 campo  = RetiraCaracteresInvalidos(campo,14);
			 if  (campo == "00000000000000") 
				return false;	 
    		CGC1 = campo.substring(0,12);
    		CGC2 = campo.substring(12,14);
    		controle = "";
    		ContIni = 1;
    		ContFim = 12;
    		K = 0;
    		for (j = 1; j <= 2; j++)
    		{
				Soma = 0;
        		for (i = ContIni; i <=ContFim; i++)
				{
					Mult = (ContFim + 1 + j - i);
		 			if (Mult > 9) Mult = Mult - 8;
          		 	Soma = Soma + (parseInt(CGC1.substring(i - j, i-K)) * Mult);
        		}
        	 	if (j == 2) Soma = Soma + (2 * Digito);
	 			Digito = (Soma * 10) % 11;
       	 	if (Digito == 10) Digito = 0;
        	 	controle = controle + Digito;
         	 	ContIni = 2;
	 			K=1;
        	 	ContFim = 13;
      		} 
      		if (controle != CGC2) return false; 
      		objeto.value = CGC1.substr(0, 2) + '.' + CGC1.substr(2, 3) + '.' + CGC1.substr(5, 3) + '/' + CGC1.substr(8, 4) + '-' + CGC2;    
      		return true;
	}
	else
	{
		return false;
	}
}


//******************************************************************************************
function checaCPF(obejto){
  
  var numero = objeto.value;
  var posicao, I, SOMA, DV, DV_INFORMADO;
  var DIGITO = new Array(10);
  
  /* Retira do número informado os dois últimos dígitos */
  
  DV_INFORMADO = 	numero.substr(9,2);
  
  /* Desmembra o número do CPF na matriz DIGITO */
 
  for (I=0;I<=8;I++){ 
       DIGITO[I] = numero.substr(I,1);  
  }
  
  /* Calcula o valor do 10º digito de verificação */
  
  POSICAO = 10;
  SOMA = 0;
  for(I=0;I<=8;I++){
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
  }
  
  DIGITO[9] = SOMA % 11;
  if(DIGITO[9] < 2){
     DIGITO[9] = 0;
  }
  else{
     DIGITO[9] = 11 - DIGITO[9];
  }
  
  /* Calcula o valor do 11º digito de verificação */
  
  POSICAO = 11;
  SOMA = 0;
  for(I=0;I<=9;I++){
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
  }
  
  DIGITO[10] = SOMA % 11;
  if(DIGITO[10] < 2){
     DIGITO[10] = 0;
  }
  else{
     DIGITO[10] = 11 - DIGITO[10];
  }

  /* Verifica se o DV calculado é igual ao informado */
  
  DV = DIGITO[9] * 10 + DIGITO[10];
  if(DV != DV_INFORMADO){
     alert("CPF inválido");
     objeto.value = "";
     objeto.focus;

  }
   
}
//---------------- Rotina para validar campos de formularios-------------
function validaForms(form){
 var qtdelementos = document.forms[0].length;
 for(var i=0;i<=((qtdelementos)-1);i++){
   
   if((document.forms[0].elements[i].value)==''||(document.forms[0].elements[i].value)=='0'){
      alert('O campo: '+document.forms[0].elements[i].name+' está vazio!');
      document.forms[0].elements[i].focus();
      return false;   

   }
  
 }
 return true;
}
//------------------- Rotina para confirmar exlcusao --------------------
function confirmaExclusao()
  {
    var RESPOSTA = confirm('Confirma  EXCLUSÃO DO REGISTRO');
    if (RESPOSTA == true)
    {
      return true;
    }
    else
    {
      return false;
    }
  }
// Apenas numeros *******************************************************
function apenasNumeros(objeto, evento) 
 {
  var tecla = evento.keyCode;
 
  if (((tecla < 48) || (tecla > 57)) && (((tecla < 96) || (tecla > 105))) && (tecla != 8) && (tecla != 9) && (tecla != 35) && (tecla != 36) && (tecla != 37) && (tecla != 38) && (tecla != 39) && (tecla != 40))
   {
    objeto.value = objeto.value.substr(0,objeto.value.length-1);
   }
  }

// Converte para maiusculas ********************************************

function converte(campo)
 {
   campo.value = campo.value.toUpperCase();
 }  
 
//-----------------------------------------------------
//Funcao: MascaraMoeda
//Sinopse: Mascara de preenchimento de moeda
//Parametro:
//   objTextBox : Objeto (TextBox)
//   SeparadorMilesimo : Caracter separador de milésimos
//   SeparadorDecimal : Caracter separador de decimais
//   e : Evento
//Retorno: Booleano
//Autor: Gabriel Fróes
//Data Criação: 15/02/2005
//-----------------------------------------------------
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida
    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}
//----- verifica se enter foi teclada
function CheckEnter(Key)
{
	var charCode = (Key.which) ? Key.which : event.keyCode
	if (charCode > 9 && charCode < 14)
		return false;
	return true;
}
//----- conta as letras existente no textarea e limita a uma quantidade passada por parametro -----
function LimitaTexto(obj, limit)
{
		var size = obj.value.length;
		div_atual.innerHTML = "Caracteres digitados: <font color='red'><b>" + parseInt(size) + "</font></b>";
		div_rest.innerHTML =  "Caracteres restantes: <font color='red'><b>" + parseInt(limit - size) + "</font></b>";

		if (size > limit)
			{
				temp = obj.value;
				obj.value = temp.substring(0, limit);
				div_atual.innerHTML = "Caracteres digitados: <font color='red'><b>" + parseInt(limit) + "</font></b>";
				div_rest.innerHTML =  "Caracteres restantes: <font color='red'><b>" + 0 + "</font></b>";
				alert("Máximo de " + limit + " caracteres para a este campo.");
				return false;
			}
		return true;
}
