/*Função para tornar o texto maiusculo
* Autor: Sérgo Carlos
* Exemplo de uso
* onKeyUp="Upper(this)*/
function Upper(obj){
	var texto = obj.value;
	obj.value = texto.toUpperCase();
}


/*Função para validar o valor do campo
* Autor: Sérgo Carlos
* Exemplo de uso
* onClick="validaExpressaoRegular(document.form1.campo,'email')"*/
function validaExpressaoRegular(obj, tipoEr){
	erEmail = /^[\w\.]+\@[\w\.-]+[\w\.-]+\.[a-z]{2,4}$/;
	erTel = /^[0-9]{2} [0-9]{4}\-[0-9]{4}$/;//81 3421-7128	
	
	if (obj.value != ""){ 
		if (tipoEr == 'email'){  //Valida e-mail.
			if(!erEmail.test(obj.value)){
				alert('O e-mail digitado não é valido.');
				obj.focus();
			}
		}
		
		if (tipoEr=='telefone' ){ //Valida telefone.
			if(!erTel.test(obj.value)){
				alert('O telefone digitado não é valido.');
				obj.focus();
			}
		}
	}
}


/*Função para formatar o valor do campo
* Autor: Sérgo Carlos
* Exemplo de uso
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
* Observação: As máscaras podem ser representadas como os exemplos abaixo: 
* CEP -> 99.999-999 
* CPF -> 999.999.999-99 
* CNPJ -> 99.999.999/9999-99 
* Data -> 99/99/9999 
* Tel Resid -> (99) 999-9999 
* Tel Cel -> (99) 9999-9999 
* Processo -> 99.999999999/999-99 
* C/C -> 999999-! */

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
     var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;


     if(document.all) { // Internet Explorer
	nTecla = evtKeyPress.keyCode; }
     else if(document.layers) { // Nestcape
	nTecla = evtKeyPress.which;
     } else if(document.getElementById) { // FireFox
	nTecla = evtKeyPress.which;
     }

     sValue = objForm[strField].value;

     // Limpa todos os caracteres de formatação que
     // já estiverem no campo.
     sValue = sValue.toString().replace( "-", "" );
     sValue = sValue.toString().replace( "-", "" );
     sValue = sValue.toString().replace( ".", "" );
     sValue = sValue.toString().replace( ".", "" );
     sValue = sValue.toString().replace( "/", "" );
     sValue = sValue.toString().replace( "/", "" );
     sValue = sValue.toString().replace( "(", "" );
     sValue = sValue.toString().replace( "(", "" );
     sValue = sValue.toString().replace( ")", "" );
     sValue = sValue.toString().replace( ")", "" );
     sValue = sValue.toString().replace( " ", "" );
     sValue = sValue.toString().replace( " ", "" );
     fldLen = sValue.length;
     mskLen = sMask.length;

     i = 0;
     nCount = 0;
     sCod = "";
     mskLen = fldLen;

     while (i <= mskLen) {
       bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
       bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

       if (bolMask) {
         sCod += sMask.charAt(i);
         mskLen++; }
       else {
         sCod += sValue.charAt(nCount);
         nCount++;
       }

       i++;
     }

     objForm[strField].value = sCod;

     if (nTecla != 8) { // backspace
       if (sMask.charAt(i-1) == "9") { // apenas números...
         return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
       else { // qualquer caracter...
         return true;
       } }
     else {
       return true;
     }
}


/*Função para só permitir números no campo
* Autor: Sérgo Carlos
* Exemplo de uso
* onkeypress="return soNumeros(this.value)" */
function soNumeros(valor){
	erNumeros = /^[0-9]{3}$/;
	alert('');
	if(!erNumeros.test(valor)){
		return false;
		alert('erro');
	}else{
		alert('ok');	
		return true;
	}
	
}


/*Função para verificar o cpf informado.
* Autor: Sérgo Carlos
* Exemplo de uso
* onClick="validaCPF(this)" */
function validaCPF(obj){
  var CPF = obj.value; // Recebe o valor digitado no campo
  CPF= CPF.replace(".","");
  CPF= CPF.replace(".","");
  CPF= CPF.replace("-","");

  if (CPF !=''){	
	  var posicao, i, soma, dv, dv_informado;
	  var digito = new Array(10); //Cria uma array de 11 posições para armazenar o CPF
	  dv_informado = CPF.substr(9, 2); // Armazena os dois últimos dígito do CPF
	  for (i=0; i<=8; i++) { // Desmembra o número do CPF na array digito
		digito[i] = CPF.substr( i, 1);
	  }
	  // Calcula o valor do 10° dígito da 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° dígito da 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 os dígitos verificadores conferem
	  dv = digito[9] * 10 + digito[10];
	  if (dv != dv_informado || CPF == 00000000000 ||
					CPF == 11111111111 || 
					CPF == 22222222222 || 
					CPF == 33333333333 || 
					CPF == 44444444444 || 
					CPF == 55555555555 || 
					CPF == 66666666666 || 
					CPF == 77777777777 || 
					CPF == 88888888888 || 
					CPF == 99999999999) {
		alert("O CPF informado não é válido");
		obj.value='';
		obj.focus();
		return false;
	  }else{
		//CPF válido;
		return true;
	  }
  }else{
  	return true;
  }
}		


function validaInstituicao(obj, objRef){
	objRef.disabled= obj.checked;
	if (obj.checked==true){
		objRef.value='';
	}
	
}