function validaData(str) {
    str = trim(str) 

    //Data nao preenchida
    if(str == "") {
        return 1
    }
    //Data em formato invalido (o formato correto e dd/mm/aaaa)
    var stt = str.split("/")
    if((stt.length != 3) || (stt[0].length != 2) || (stt[1].length != 2) || (stt[2].length != 4)) {
        return 2
    }
    //Verificacao da quantidade de meses ser maior q doze
    var m = parseInt(stt[1], 10)
    if(m > 12) {
        return 3
    }
    //Verificando os dias dos meses e a quantidade de dias q cada mes tem pra ver se ta ok
    var qtD = 0
    if((m == 1) || (m == 3) || (m == 5) || (m == 7) || (m == 8) || (m == 10) || (m == 12)) {
        qtD = 31
    } else if(m == 2) {
        qtD = ((parseInt(stt[2], 10) % 4) != 0 ? 28 : 29)
    } else {
        qtD = 30
    } 
    if(parseInt(stt[0], 10) > qtD) {
        return 4   //O numero de dias e maior do que aquele que o mes especificado possui
    }
    //Verificacao de que o dia nao seja zero
    if(parseInt(stt[0], 10) == 0) {
        return 5
    }
    //Verificacao de que o mes nao seja zero
    if(parseInt(stt[1], 10) == 0) {
        return 6
    }
    return 0
}

function trim(st) {
    st = st.replace(/^\s*(\w|\W)/,"$1") 
    st = st.replace(/(\w|\W)\s*$/,"$1") 
    /*Se a string estiver totalmente preenchida com espacos as operacoes acima 
     deixam a string como ' ' e nao ''. Isto e corrigido a seguir.
    */
    if(st == " ") {  
        st = ""
    }
    return st
}

function soData(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 47 || charCode > 57)) {
        status = "Este campo aceita apenas datas."
        return false
    }
    status = ""
    return true
}

function soNumero(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
      status = "Este campo aceita apenas números."
      return false
    }
    status = ""
    return true
}

function validaTxt(campo) {  
  campo.value = trim(campo.value)
  if (campo.value == "") {
     campo.focus()
     return false
  }
  return true
}

function soDouble(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if ((charCode > 31) && (charCode < 48 || charCode > 57) && (charCode != 46)) {
      status = "Este campo aceita apenas números."
      return false
    }
    status = ""
    return true
}

function validaDouble(campo) {
  campo.value = trim(campo.value)
  if (campo.value == "") {
     campo.focus()
     return 1
  }
  if(campo.value.indexOf('.') != campo.value.lastIndexOf('.')) {
    campo.focus()
    return 2
  }
  return 0
}

function valTxt(obj, nmField) {     
  if(!validaTxt(obj)) {
    alert("Obrigatório o preenchimento do campo \'" + nmField + "\'.")
    return false
  }
  return true
}

function valDat(obj, nmField) {
  switch(validaData(obj.value)) {
    case 1:
      alert("Obrigatório o preenchimento do campo  \'" + nmField + "\'.")
      obj.focus()
      return false
    case 2:
      alert("A data presente no campo \'" + nmField + "\' deve estar no formado \'dd/mm/aaaa\'.")
      obj.focus()
      return false
    case 3:
      alert("A data presente no campo \'" + nmField + "\' possui um número de mês inválido.")
      obj.focus()
      return false
    case 4:
      alert("A data presente no campo \'" + nmField + "\' possui um número de dia inválido.")
      obj.focus()
      return false
    case 5:
      alert("A data presente no campo \'" + nmField + "\' possui um número de dia inválido.")
      obj.focus()
      return false
    case 6:
      alert("A data presente no campo \'" + nmField + "\' possui um número de mês inválido.")
      obj.focus()
      return false
  }
  return true
}

function valDbl(obj, nmField) {
  if(validaDouble(obj) != 0) {
    obj.focus()
    alert("O campo \'" + nmField + "\' contém um número inválido ou está vazio.")
    return false
  }
  return true
}

function valCbo(cbo, nmField) {
  if (cbo.selectedIndex == 0) {
    alert("Obrigatório o preenchimento do campo \'" + nmField + "\'.")
    cbo.focus()
    return false
  }
  return true
}

function valRadio(radio, nmRadio) {
  for (var i = 0; i < radio.length; i++) {
    if (radio[i].checked) {
      return true
    }
  }
  alert("Obrigatório o preenchimento do campo \'"  + nmRadio + "\'.")
  radio[0].focus()
  return false
}

function valTA(ta, nmField) {
  ta.value = trim(ta.value)
  if(ta.value == "") {
    alert("Obrigatório o preenchimento do campo \'" + nmField + "\'.")
    ta.focus()
    return false
  }
  return true
}

/*
  Recebe duas datas em strings no formato 'dd/mm/aaaa' e retorna falso se a 
  segunda data for menor que a primeira

  Weslei A. de T. Marinho 21/11/2003 19:38
*/
function isMajorDate(dtStart, dtEnd) {
  var ds = dtStart.split("/")
  var de = dtEnd.split("/")
  if (parseInt(de[2], 10) < parseInt(ds[2], 10)) { //ano da final menor -> final menor
    return false
  } else if (parseInt(de[2], 10) == parseInt(ds[2], 10)) { // anos iguais
    //anos iguais e mes da final menor que inicial -> final menor
    if (parseInt(de[1], 10) < parseInt(ds[1], 10)) { 
      return false
    } else if (parseInt(de[1], 10) == parseInt(ds[1], 10)) { //anos iguais e meses iguais
      //anos e meses iguais, mas dia da final menor que inicial -> final menor
      if (parseInt(de[0], 10) < parseInt(ds[0], 10)) {
        return false
      }
    }
  }
  return true // a primeira e maior que a segunda
}

/*
  Esta funçao utiliza a funçao isMajorDate para verificar se uma data presente 
  em um objeto de texto de um formulário html é maior que outra presente no 
  segundo objeto recebido. Os outros dois parametros são os nomes dos campos 
  ser efetuada um alerta ao usuário em caso de data menor.

  Weslei A. de T. Marinho 21/11/2003 20:02
*/
function valMajorDate(dtStartObj, dtEndObj, nmDtStartField, nmDtEndField) {
  if (!isMajorDate(dtStartObj.value, dtEndObj.value)) {
    var str = "A data presente no campo '" + nmDtStartField + "' deve ser menor\n"
    str += "ou igual à presente no campo '" + nmDtEndField + "'."
    dtStartObj.focus()
    alert(str)
    return false
  }
  return true
}
/*
Função para validar CPF.
*/

function validaCPF(objCpf,nmCpf) {
    var cpf = objCpf;
    cpf1 = cpf.value

	cpf1 = cpf1.replace( /\./, "" );
	cpf1 = cpf1.replace( /\./, "" );
	cpf1 = cpf1.replace( "-", "" );
	cpf1 = cpf1.replace(/\D/,"");	
		
    var rcpf1;
    var rcpf2;
	
	if(cpf1.length > 11){
		alert("O número do CPF informado não é válido.");
		return false;
	}
	
    if(ehNumero(cpf1)) {
        if(cpf1 != 0) {            
            if( cpf1.length < 11 ) {
                cpf1 = preencheZerosCPF(cpf1);
            }
            else if(cpf1.length > 11) {
                var quantZeros = cpf1.length - 11;
                var zeros = cpf1.substring(0,quantZeros);
                for(var k=0;k<zeros.length;k++) {
                    if(escape(zeros.charAt(k)) != "0")
                        return false;
                }
                cpf1 = tiraZerosCPF(cpf1,quantZeros);   
            }    
                
            rcpf2 = cpf1.substring(9,11);
            rcpf1 = cpf1.substring(0,9);
        
            cpf2 = "";
            var controle = rcpf2;
            var contini = 10;
            for (var j=1; j<=2; j++) {
                var soma = 0;
                var i = 1;
                while (i < contini) {
                    soma = soma + (parseInt(cpf1.substring(i-1,i), 10)*(contini+1-i));
                    i++;
                }
                var digito=(soma*10)%11;
                if (digito==10) digito = 0;
                    cpf2 = cpf2 + digito;
                    contini++;
            }
            if (controle == cpf2) {
                return true;
            } else  {
          	    alert("O número do CPF informado não é válido.");
   	            cpf.focus();
   	            cpf.select();
                return false;                
            }
        } else {
       	    alert("O número do CPF informado não é válido.");
            cpf.focus();
            cpf.select();           
            return false;
        }
    } else {
		alert("O número do CPF informado não é válido.");
        return false;
	}
}


function ehNumero(campo, texto) {
    for (var i = 0; i < campo.value.length; i++) {        
        caracter = campo.value.charAt( i );        
        if ((escape(caracter) < "0" ) || (escape(caracter) > "9" )) {            
            alert("O campo \'" + texto + "\' contém um número inválido.");
            campo.focus();
            campo.select();
            return false;        
        }    
    }    
    return true;
}

function ehNumero(str) {
    for (var i = 0; i < str.length; i++) {        
        caracter = str.charAt( i );        
        if ((escape(caracter) < "0" ) || (escape(caracter) > "9" )) {
            return false;        
        }
    }
    return true;
}

function preencheZerosCPF(cpf1) {
    var tamanho = cpf1.length;
    var quantZeros = 11 - tamanho;
    for(var i=quantZeros; i>0; i--) {
        cpf1 = "0" + cpf1;
    }
    return cpf1;
}


function tiraZerosCPF(cpf1,quantZeros) {
    var tamanho = cpf1.length;
    cpf1 = cpf1.substring(quantZeros,tamanho);
    return cpf1;
}


/* Verifica se o objeto é do tamanho do campo

     Giuliano F Figueira 19/05/2004
*/
function valTamObj(obj, nmField, tamanho) {
  obj.value = trim(obj.value)
  if (obj.value.length < tamanho) {
     alert("Obrigatório o preenchimento de " + tamanho + " dígitos no campo \'" + nmField + "\'.")
     obj.focus()
     return false
  }
  return true
}

/* Valida o tamanho máximo de um textarea
WARING:::::ESTA FUNCAO DEPENDE AINDA DE ALGUNS PASSOS A SEREM REALIZADOS NA MGR
PARA UTILIZACAO TOTALMENTE FUNCIONAL.
     Lauro Duarte do Carmo 07/06/2004
*/
function valTASize(obj, tamanho, evt) {
    var tmp = obj.value
    var expReg = /\r/g
    tmp = tmp.replace(expReg, "_")
    expReg = /\n/g
    tmp = tmp.replace(expReg, "_")
    tmp = tmp.length
    if((evt.keyCode != 8 && evt.keyCode != 46 && evt.keyCode != 37 && evt.keyCode != 39 && evt.keyCode != 38 && evt.keyCode != 40) && tmp >= tamanho){   
            return false
    }
    return true 
}

/** 
	Muda o valor do objeto para o seguinte formato:
	valor: são joão DEL ReY  formato: São João Del Rey
 */
function toUpper (objeto){
    var valor
    var vetor
    var j
    var aux
    var aux2
    var retorno
    var auxString
    valor = objeto.value;
    vetor = valor.split(" ");
    retorno = "";
    for(var i = 0; i <= vetor.length - 1; i++){
        if(i > 0 ){
            retorno += " ";
        }
        aux = vetor[i];
        aux2 = aux.charAt(0);
        retorno = retorno + aux2.toUpperCase();
        j = aux.length;
        auxString = aux.substring(1,j + 1);
        auxString = auxString.toLowerCase();
        retorno = retorno + auxString;
    }
    objeto.value = retorno;
}

function toUpperCaseAll(objeto){
    var valor
    var retorno
    valor = objeto.value;
    retorno = valor.toUpperCase();
    objeto.value = retorno;
}

function toLowerCaseAll (objeto)
{
	var retorno 
	var valor        
	valor = objeto.value;
        retorno = valor.toLowerCase();
	objeto.value = retorno;
}

function LIMP(c)
	 {         
         var cx;
          while((cx=c.indexOf("-"))!=-1) 
	  {           
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf("/"))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf(","))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf("."))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf("("))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf(")"))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 while((cx=c.indexOf(" "))!=-1) 
	  { 
	  c = c.substring(0,cx)+c.substring(cx+1); 
	  } 
	 return(c); 
	 }

//verifica se o email eh valido
function ehEmailValido(campo,msg) {
	if (campo != null) {
		var email = campo.value;
		var valido = false;
		var posArroba = email.indexOf("@");
		var primeiroPonto = email.indexOf(".",posArroba+1);
		var tamanhoDominio = email.substring(posArroba+1,primeiroPonto).length;
		if (email != "") {
			if ((posArroba == -1 && email != "")
					|| email.indexOf("@",posArroba+1) != -1
					|| email.indexOf("@") == email.length-1
					|| email.indexOf(".") == email.length-1
					|| email.indexOf("@@") != -1
					|| email.indexOf("..") != -1
					|| email.indexOf(".@") != -1
					|| email.indexOf("@.") != -1
					|| email.substring(posArroba+1,email.length).indexOf(".") == -1
					|| email.charAt(0) == '@'
					|| email.charAt(0) == '.'
					|| posArroba < 2
					|| tamanhoDominio < 2
					|| tamanhoDominio > 26)
                                        {                                
                                alert(""+msg)        
                                campo.focus()
				return false
			} else {
			   return true
			}
		}
	}	
}

function valCnpj(obj,nmField){        
    if(ehCNPJValido(obj.value)){        
        return true
    }else{       
        alert("O \'" + nmField + "\' está inválido.")
        obj.focus()
        return false
    }

}

/*
  Valida CNPJ
  CNPJ = document.getElementById("cnpj").value
*/
	function ehCNPJValido(CNPJ) 
	 {                 
		CNPJ = LIMP(CNPJ); 
		if(CNPJ == 0) 
		{ 
			return false; 
		} 
		else 
		{ 
			g = CNPJ.length-2; 
			if(RealTestaCNPJ(CNPJ,g) == 1) 
			{ 
				g=CNPJ.length-1; 
				if(RealTestaCNPJ(CNPJ,g) == 1) 
					return true; 
	      
				else 
					return false;
			}
                        return false;
		} 
	 }
	 
	  
	function RealTestaCNPJ(CNPJ,g) 
	 { 
	 var VerCNPJ=0; 
	 var ind=2; 
	 var tam; 
	 for(var f=g;f>0;f--) 
	  { 
	  VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind; 
	  if(ind>8) 
	   { 
	   ind=2; 
	   } 
	  else 
	   { 
	   ind++; 
	   } 
	  } 
	  VerCNPJ%=11; 
	  if(VerCNPJ==0 || VerCNPJ==1) 
	   { 
	   VerCNPJ=0; 
	   } 
	  else 
	   { 
	   VerCNPJ=11-VerCNPJ; 
	   } 
	 if(VerCNPJ!=parseInt(CNPJ.charAt(g))) 
	  { 
	  return(0); 
	  } 
	 else 
	  { 
	  return(1); 
	  } 
	 }  

function apagar(){
        for (var i = 0; i < document.forms.length; i++){
                for (var j = 0; j < document.forms[i].elements.length; j++){
                        var element = document.forms[i].elements[j];
                        if(element.nodeName == "INPUT" && element.type == "text"){
                            element.value="";
                        }if(element.nodeName == "TEXTAREA"){
                            element.value="";
                        }if(element.nodeName == "SELECT"){
                            element.selectedIndex=0;
                        }if(element.nodeName=="INPUT" && (element.type=="radio" ||element.type=="RADIO")){
                            element.checked = false
                        }if(element.nodeName == "INPUT" && element.type == "password"){
                            element.value="";
                        }

                }
       }
}


//Recebe o campo que será validado e o número de casas decimais
function formataNumeroDigitado(Campo, intCasas) {
	var sMensagem = "Valor digitado inválido";
	var strNumeroIn = Campo.value
	if (strNumeroIn == ""){
		return true;
	}

	strNumeroIn = strNumeroIn.toString();
	strNumeroIn	= trim(strNumeroIn);

	var intSizeInteiro	= 0;
	var strInteiroOut	= "";
	var strNumeroOut	= "";
	var strCasas	= "";

	strNumeroIn	= trim(strNumeroIn.replace(/\./,""));							
	strNumeroIn	= strNumeroIn.replace(",", ".");

	for(var ii = 0; ii < intCasas; ii++) strCasas = strCasas + "0";

	strNumeroOut =  "0," + strCasas;

	if(parseFloat(strNumeroIn) == 0 || strNumeroIn.length ==0) {
		Campo.value = "";
		return false;
	}

	if(isNaN(strNumeroIn)){
		alert(sMensagem);
		Campo.value = "";
		return false;
	}

	var pos0 = strNumeroIn.indexOf(".");
	if(pos0 < 0) {
		strNumeroIn = strNumeroIn + "." + strCasas;
		pos0 = strNumeroIn.indexOf(".");
	}
	var strInteiro	= strNumeroIn.substr(0, pos0);
	intSizeInteiro	= strInteiro.length;
	for(ii = 0; ii < intSizeInteiro; ii++) {
		if(ii%3 == 0 && ii > 0) strInteiroOut = "." + strInteiroOut;
		strInteiroOut = strInteiro.charAt(intSizeInteiro - ii - 1) + strInteiroOut;
		}
	strDecimal	= strNumeroIn.substr(pos0 + 1) + strCasas;
	strNumeroOut	= strInteiroOut + "," + strDecimal.substr(0, intCasas);
	Campo.value = strNumeroOut;

	return strNumeroOut;
}

function formataCPF(Campo,teclapres)
{	
	//Chamado no evento ONKEYPRESS
	if(!soNumero(teclapres)){
            return false
        }
	var tecla = teclapres.keyCode;
	var vr;	
		
	vr = Campo.value;		
			
	vr = vr.replace( /\./, "" );
	vr = vr.replace( /\./, "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace(/\D/,"");
	
	var tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{
		if ( tam > 3 && tam < 7 )
			Campo.value = vr.substr( 0, tam - 1  ) + '.' + vr.substr( tam - 1, tam );
		if ( tam >= 7 && tam < 10 )
			Campo.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ); 
		if ( tam >= 10 && tam < 12 )
			Campo.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, 2 ); 
	}
}

function formataCEP(Campo,teclapres)
{	
	//Chamado no evento ONKEYUP
        if(!soNumero(teclapres)){
            return false
        }	
	var tecla = teclapres.keyCode;
	var vr;	
		
       
	vr = Campo.value;		
			
	vr = vr.replace( /\./, "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace(/\D/,"");
	
	var tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{		
                if ( tam >= 5 && tam <= 10 )Campo.value = vr.substr( 0, 2 ) + vr.substr( 2, 3 ) + '-' + vr.substr( 5, 3 ); 
	}
}

function formataTel(Campo,teclapres)
{	
	//Chamado no evento ONKEYPRESS
	if(!soNumero(teclapres)){
            return false
        }
	var tecla = teclapres.keyCode;
	var vr;	
		
	vr = Campo.value;		
			
	vr = vr.replace( /\./, "" );
	vr = vr.replace( "-", "" );
        vr = vr.replace( "(", "" );
        vr = vr.replace( ")", "" );
	vr = vr.replace(/\D/,"");
	
	var tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{	
            if(tam>0 && tam < 3)	
                Campo.value = '(' + vr.substr( 0, 2 ) + ')'
            if(tam>=3 && tam < 7)
                Campo.value = '(' + vr.substr( 0, 2 ) + ')' + vr.substr( 2, 4 ) + '-'
            if(tam>=7 && tam < 11 )
                Campo.value = '(' + vr.substr( 0, 2 ) + ')' + vr.substr( 2, 4 ) + '-' + vr.substr( 6, 4 )
	}

}
function formataTelMenor(Campo,teclapres)
{	
	//Chamado no evento ONKEYPRESS
	
	var tecla = teclapres.keyCode;
	var vr;
	
	vr = Campo.value;		
			
	vr = vr.replace( /\./, "" );
	vr = vr.replace( "-", "" );
        vr = vr.replace( "(", "" );
        vr = vr.replace( ")", "" );
	vr = vr.replace(/\D/,"");
	
	var tam = vr.length + 1;
        
	if(tam < 11){
                    Campo.value = '(' + vr.substr( 0, 2 ) + ')' + vr.substr( 2, 3 ) + '-' + vr.substr( 5, 4 )                   
        }
        if(Campo.value == "()-")Campo.value=""
	
}

function formataCPFCNPJ(Campo,teclapres){
	//Chamado no evento ONKEYPRESS
        if(!soNumero(teclapres)){
            return false
        }
        var tecla = teclapres.keyCode;
	var vr;	
		
	vr = Campo.value;				
			
	vr = vr.replace( /\./, "" );
	vr = vr.replace( /\./, "" );
	vr = vr.replace( "-", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace(/\D/,"");
	var tam = vr.length + 1;
  
        if(tam<12){
            formataCPF(Campo,teclapres)
        }else if(tam>12){
            formataCNPJ(Campo,teclapres)
        }


}
function formataCNPJ(Campo,teclapres)
{	
	//Chamado no evento ONKEYPRESS	
    if(!soNumero(teclapres)){
            return false
     }
       
    var tecla = teclapres.keyCode;     
    var vr; 
    var tam; 
    var TamanhoMaximo = 14;   
 
    vr = Campo.value; 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace(",", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    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 (tam < TamanhoMaximo && 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 <= 6)) 
       { 
         Campo.value = vr.substr(0, tam - 2) + '-' + vr.substr(tam - 2, tam); 
       } 
       if ((tam >= 7) && (tam <= 9)) 
       { 
         Campo.value = vr.substr(0, tam - 6) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 10) && (tam <= 12)) 
       { 
         Campo.value = vr.substr(0, tam - 9) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 13) && (tam <= 14)) 
       { 
         Campo.value = vr.substr(0, tam - 12) + '.' + vr.substr(tam - 12, 3) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + 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); 
      } 
    } 
}

function formataNC(Campo,teclapres) 
{
	//Chamado no evento ONKEYUP
	
	var tecla = teclapres.keyCode;
	var vr;	
		
	vr = Campo.value;		
		
	vr = vr.replace( "NC", "" );
	
	var tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 ){
		if ( tam > 4 && tam < 12 )
			Campo.value = vr.substr( 0, 4  ) + 'NC' + vr.substr( 4, tam );
	}
}
/*
    Valida o campo para inteiro, se ele não for vazio;
    Recebe o objeto.
*/
function ifNotEmptyEhInteiro(obj, nomeCampo){
    obj.value = trim(obj.value)
    if(obj.value != ""){
        if(!ehNumero(obj.value)){
            alert("O campo '" + nomeCampo + "' deverá ser preenchido com um número inteiro.")
            return false;
        }
     }
     return true;
}

/*
    Valida o campo para ponto flutuante, se ele não for vazio;
    Recebe o objeto.
*/
function ifNotEmptyEhDouble(obj, nomeCampo){
    obj.value = trim(obj.value)
    if(obj.value != ""){
        if(obj.value.indexOf('.') != obj.value.lastIndexOf('.')) {
            alert("O campo '" + nomeCampo + "' deverá ser preenchido com um valor decimal inteiro.")
            return false;
        }
     }
     return true;
}
/**
Esta função formata a data 
*/
function formataData(Campo,teclapres) 
{
	//Chamado no evento ONKEYUP
       if(soData(teclapres)){       
	
            var tecla = teclapres.keyCode;
            var vr;	

            vr = Campo.value;		

            vr = vr.replace( /\./, "" );
            vr = vr.replace( "/", "" );
            vr = vr.replace( "/", "" );
            vr = vr.replace(/\D/,"");

            var tam = vr.length + 1;

            if ( tecla != 9 && tecla != 8 ){
                    if ( tam > 2 && tam < 5 )
                            Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
                    if ( tam >= 5 && tam <= 10 )
                            Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
            }
    }else{
        return false
    }
}
/**
* Esta função servirá para aceitar um numero com o seguinte formato:
  10.11 ou 10,11 quando for passado 10.11 ira transformar para 10,11 e quando 
  for passado 10,11 continuará a 10,11
  Autor : Antonio Elizeu da Rocha Neto 18 - 11 - 2004
*/
function soValor(obj,evt,casas){
   //Chamada no ONKEYPRESS
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    var tmp = obj.value
    var aux = tmp.charAt(tmp.length-1)
    obj.value = obj.value.replace( ".", "," );
    var existV = 0 
    var existP = 0 
   if(tmp.indexOf(',') != -1){
	if( (tmp.length - tmp.indexOf(','))>casas){
	    return false
	}
   } 
   if( (charCode>47 && charCode<58) || charCode == 44 || charCode == 46) {
	if(charCode == 44 || charCode == 46){
		for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)==','){
		      existV++;                      
		   }
		}
                for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)=='.'){
		      existP++;                      
		   }
		}
	  if((existV>0)||(existP>0)){                
		return false
          }else{
                return true
          }
	}
   }else{
     return false
   }
}
/**
* Esta função servirá para aceitar um numero com o seguinte formato:
  10.11 ou 10,11 quando for passado 10.11 ira transformar para 10.11 e quando 
  for passado 10,11 continuará a 10.11
  Autor : Antonio Elizeu da Rocha Neto 03 - 01 - 2005
*/
function soValorNumerico(obj,evt,casas){
   //Chamada no ONKEYPRESS
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    var tmp = obj.value
    var aux = tmp.charAt(tmp.length-1)
    obj.value = obj.value.replace( ",", "." );
    var existV = 0 
    var existP = 0 
   if(tmp.indexOf('.') != -1){
	if( (tmp.length - tmp.indexOf('.'))>casas){
	    return false
	}
   } 
   if( (charCode>47 && charCode<58) || charCode == 44 || charCode == 46) {
	if(charCode == 44 || charCode == 46){
		for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)==','){
		      existV++;                      
		   }
		}
                for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)=='.'){
		      existP++;                      
		   }
		}
	  if((existV>0)||(existP>0)){                
		return false
          }else{
                return true
          }
	}
   }else{
     return false
   }
}
/*
  Esta função ira aceitar apenas valores de percentagem com um numero 
  de casas decimais predefinidas ou seja 
  10,12 ou 10.12 ou 0.1221
  Autor : Antonio Elizeu da Rocha Neto - 03 - 01 - 2005
*/
function soPercentagem(obj,evt,casas){
   //Chamada no ONKEYPRESS
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    var tmp = obj.value    
    var aux = tmp.charAt(tmp.length-1)
    obj.value = obj.value.replace( ",", "." );
    var existV = 0 
    var existP = 0 
   if(tmp.indexOf('.') != -1){
	if( (tmp.length - tmp.indexOf('.'))>casas){            
	    return false
	}
   } 
    if(parseInt(tmp,10)>100){
        obj.value = tmp.charAt(0)+""+tmp.charAt(1)
        return false
    }
   if( (charCode>47 && charCode<58) || charCode == 44 || charCode == 46) {
	if(charCode == 44 || charCode == 46){
		for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)==','){
		      existV++;                      
		   }
		}
                for(var i = 0 ; i < tmp.length ; i++){
		   if(tmp.charAt(i)=='.'){
		      existP++;                      
		   }
		}
	  if((existV>0)||(existP>0)){                
		return false
          }else{
                if(parseInt(tmp,10)>100){
                    return false
                }else{                
                    return true
                }
          }
	}
   }else{
     return false
   }
}
//Esta função aceita apenas letras a-zA-Z
function soLetra(evt){
    //Chamada no ONKEYPRESS
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode    
    if(!( ( (charCode>64)&&(charCode<91) ) || ( (charCode>96) && (charCode<123) ) ) ){
        return false
    }
}