/*
	:::Exemplo:::
	<!-- a formatação está no class -->
	<form id="frmValidacoes" name="frmValidacoes" method="post">
		<input id="txtCpf" name="txtCpf" type="text" size="30" class="val_cpf" />
		<input id="txtData" name="txtData" type="text" size="30" class="val_data" />
	</form>
	
	<script>
		//No lugar de um form pode utilizar uma div.
		SetarValidacoes("frmValidacoes");
	</script>
*/


function SetarValidacoes(idContainer, blnSetarBlur)
{

	// ***************** <VALIDACAO_CPF>
	// Exemplo: <input id="txtCpf" name="txtCpf" type="text" size="30" class="val_cpf" />
	var lstInputsCpf = $("#" + idContainer + " :input.val_cpf");
	
	$(lstInputsCpf).attr("maxlength", "14");
	
	$(lstInputsCpf).keypress(function(e){
		if(VerificarNumero(e) == false)
		{
			return false;
		}
        return formataCampo(this, '000.000.000-00', e);
	});
	
	$(lstInputsCpf).blur(function() {
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarCpf($(this).val().trim()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("CPF inv&aacute;lido", "Verifique o CPF digitado.<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_CPF>
	
	// ***************** <VALIDACAO_DATA>
	// Exemplo: <input id="txtData" name="txtData" type="text" size="30" class="val_data" />
	var lstInputsData = $("#" + idContainer + " :input.val_data");
	
	$(lstInputsData).attr("maxlength", "10");
	
	$(lstInputsData).keypress(function(e){
		if(VerificarNumero(e) == false){
			return false;
        }       
        return formataCampo(this, '00/00/0000', e);
	});
	
	$(lstInputsData).blur(function() {
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarData($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
			
				parent.MsgBox.Show("Data inválida", "Verifique a data digitada.<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_DATA>
	
	// ***************** <VALIDACAO_EMAIL>
	// Exemplo: <input id="txtEmail" name="txtEmail" type="text" size="30" class="val_email" />
	var lstInputsEmail = $("#" + idContainer + " :input.val_email");
	
	$(lstInputsEmail).blur(function() {
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			$(this).val($(this).val().toLowerCase());
			if (ValidarEmail($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("E-mail inv&aacute;lido", "Verifique o e-mail digitado.<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_EMAIL>
	
	// ***************** <VALIDACAO_CNPJ>
	// <input id="txtCnpj" name="txtCnpj" type="text" size="30" class="val_cnpj" />
	var lstInputsCnpj = $("#" + idContainer + " :input.val_cnpj");

	$(lstInputsCnpj).attr("maxlength", "18");
	
	$(lstInputsCnpj).keypress(function(e){
		if(VerificarNumero(e) == false)
		{
			return false;
		}
		return formataCampo(this, '00.000.000/0000-00', e);
	});

	$(lstInputsCnpj).blur(function(){
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length)
		{
	        if(ValidarCnpj($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("CNPJ inválido", "Verifique o CNPJ digitado.<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_CNPJ>
	
	// ***************** <VALIDACAO_SO_NUMEROS>
	// <input id="txtNumeros" name="txtNumeros" type="text" size="30" class="val_apenasnumeros" />
	var lstInputsNumeros = $("#" + idContainer + " :input.val_apenasnumeros");
	
	$(lstInputsNumeros).blur(function(e){
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarApenasNumeros($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).val("");
					$(inputThis).focus();
				}
				parent.MsgBox.Show("Atenção", "Apenas números para este campo.<br />", "alerta");
			}
		}
	});
	
	$(lstInputsNumeros).keypress(function(e){
		return VerificarNumero(e);
	});
	// ***************** </VALIDACAO_SO_NUMEROS>
	
	// ***************** <VALIDACAO_TELEFONE_COM_DDD>
	// <input id="txtTelefoneDDD" name="txtTelefoneDDD" type="text" size="30" class="val_telefoneddd" />
	var lstInputsTelefoneDDD = $("#" + idContainer + " :input.val_telefoneddd");
	
	$(lstInputsTelefoneDDD).attr("maxlength", "14");

	$(lstInputsTelefoneDDD).keypress(function(e){
		if(VerificarNumero(e) == false)
		{
			return false;
		}
		return formataCampo(this, "(00) 0000-0000", e);
	});
	
	$(lstInputsTelefoneDDD).blur(function(){
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarTelefoneDdd($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("Atenção", "Telefone inválido, verifique.<br />O formato correto é (xx) xxxx-xxxx<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_TELEFONE_COM_DDD>
	
	// ***************** <VALIDACAO_TELEFONE>
	// <input id="txtTelefone" name="txtTelefone" type="text" size="30" class="val_telefone" />
	var lstInputsTelefone = $("#" + idContainer + " :input.val_telefone");

	$(lstInputsTelefone).attr("maxlength", "9");

	$(lstInputsTelefone).keypress(function(e){
		if(VerificarNumero(e) == false)
		{
			return false;
		}
		return formataCampo(this, "0000-0000", e);
	});
	
	$(lstInputsTelefone).blur(function(){
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarTelefone($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("Atenção", "Telefone inválido, verifique.<br />O formato correto é xxxx-xxxx<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_TELEFONE_COM_DDD>
	
	// ***************** <VALIDACAO_CEP>
	// <input id="txtCep" name="txtCep" type="text" size="30" class="val_cep" />
	var lstInputsCep = $("#" + idContainer + " :input.val_cep");

	$(lstInputsCep).attr("maxlength", "9");

	$(lstInputsCep).keypress(function(e){
		if(VerificarNumero(e) == false)
		{
			return false;
		}
		return formataCampo(this, "00000-000", e);
	});
	
	$(lstInputsCep).blur(function(){
		if (blnSetarBlur == true ) { return true; }
		if ($(this).val().trim().length > 0)
		{
			if (ValidarCep($(this).val()) == false)
			{
				var inputThis = this;
				MsgBox.PressClose = function()
				{
					MsgBox.Close();
					$(inputThis).select();
				}
				parent.MsgBox.Show("CEP inválido", "Verifique o CEP digitado.<br />", "alerta");
			}
		}
	});
	// ***************** </VALIDACAO_TELEFONE_COM_DDD>
}

// Valida cpf e retorna true se cpf correto
function ValidarCpf(vlrEntrada)
{
	var strCPF = vlrEntrada;
    var Soma;
    var Resto;
    Soma = 0;
	exp = /\.|\-/g
	strCPF = strCPF.toString().replace( exp, "" );

	if (strCPF == "11111111111" || strCPF == "22222222222" || strCPF == "33333333333" || strCPF == "44444444444" ||
		strCPF == "55555555555" || strCPF == "66666666666" || strCPF == "77777777777" || strCPF == "88888888888" ||
		strCPF == "99999999999" || strCPF == "00000000000" )
		return false;
		
    for (i=1; i<=9; i++)
	Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i); 
    Resto = (Soma * 10) % 11;
    if ((Resto == 10) || (Resto == 11)) 
	Resto = 0;
    if (Resto != parseInt(strCPF.substring(9, 10)) )
	return false;
	Soma = 0;
    for (i = 1; i <= 10; i++)
       Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);
    Resto = (Soma * 10) % 11;
    if ((Resto == 10) || (Resto == 11)) 
	Resto = 0;
    if (Resto != parseInt(strCPF.substring(10, 11) ) )
        return false;
    return true;
}

// Valida data e retorna true se data correta
function ValidarData(vlrEntrada)
{
	var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
	var vdt = new Date();
	var vdia = vdt.getDay();
	var vmes = vdt.getMonth();
	var vano = vdt.getYear();
	
	if (!((vlrEntrada.match(expReg)) && (vlrEntrada != "")))
		return false;
	else
		return true;
}

// Valida e-mail e retorna true se e-mail válido
function ValidarEmail(vlrEntrada)
{
	var parametro = vlrEntrada.toLowerCase();
	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(parametro);
}

// Valida CNPJ e retorna true se válido
function ValidarCnpj(vlrEntrada)
{
	var cnpj = vlrEntrada;
	var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
	var dig1= new Number;
	var dig2= new Number;
	
	exp = /\.|\-|\//g
	cnpj = cnpj.toString().replace( exp, "" ); 
	var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
			
	for(i = 0; i<valida.length; i++)
	{
		dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
		dig2 += cnpj.charAt(i)*valida[i];
	}
	dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
	dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
	
	if(((dig1*10)+dig2) != digito)
		return false;
	else
		return true;
}

// Valida se existem apenas números no campo e retorna true válido
function ValidarApenasNumeros(vlrEntrada)
{
	var ValidChars = "0123456789";
	var IsNumber = true;
	var Char;

	for (i = 0; i < vlrEntrada.length && IsNumber == true; i++)
	{ 
		Char = vlrEntrada.charAt(i); 
		if (ValidChars.indexOf(Char) == -1)
			IsNumber = false;
	}
	return IsNumber;
}

// Valida se foi digitado um telefone com ddd corretamente e retorna true
function ValidarTelefoneDdd(vlrEntrada)
{
	exp = /\(\d{2}\)\ \d{4}\-\d{4}/
	return exp.test(vlrEntrada);
}

// Valida se foi digitado um telefone sem ddd corretamente e retorna true
function ValidarTelefone(vlrEntrada)
{
	exp = /\d{4}\-\d{4}/
	return exp.test(vlrEntrada);
}

// Valida se foi digitado um cep corretamente e retorna true
function ValidarCep (vlrEntrada)
{
	exp = /\d{5}\-\d{3}/
	return exp.test(vlrEntrada);
}

// Permite apenas números no campo
function VerificarNumero(tecla)
{
	var Digitado = tecla.which || tecla.keyCode;	
	if ((Digitado == 8 || Digitado == 13 || Digitado == 9 || Digitado == 71 ) || (Digitado >= 48 && Digitado <= 57)) {
		return true;
	}
	return false;
}

//Caracteres inválidos
function ValidarCaracter(idCampo)
{
	var strValid = " çÇáàãäâabcdéèëêefghìíïîijklmnòóõöôopqrstùúüûuvwxyzÁÀÃÄÂABCDÉÈËÊEFGHÍÌÏÎIJKLMNÓÒÔÖÔOPQRSTÚÙÜÛUVWXYZ0123456789)(&-."
	var strTemp;
	for (var i=0; i < idCampo.value.length; i++)
	{
		strTemp = "" + idCampo.value.substring(i, i+1);
		if (strValid.indexOf(strTemp) == "-1")
		{
			return false;
			return;
		}
	}
	return true;
}

//Calcula idade
function calculaIdade(dataNasc) { 
	var dataAtual = new Date();
	var anoAtual = dataAtual.getFullYear();
	var anoNascParts = dataNasc.split('/');
	var diaNasc =anoNascParts[0];
	var mesNasc =anoNascParts[1];
	var anoNasc =anoNascParts[2];
	var idade = anoAtual - anoNasc;
	var mesAtual = dataAtual.getMonth() + 1; 

	//se mês atual for menor que o nascimento, nao fez aniversario ainda; (26/10/2009) 
	if(mesAtual < mesNasc)
	{
		idade--; 
	}
	else
	{
		//se estiver no mes do nasc, verificar o dia
		if(mesAtual == mesNasc)
		{ 
			if(dataAtual.getDate() < diaNasc )
			{ 
			//se a data atual for menor que o dia de nascimento ele ainda nao fez aniversario
			idade--; 
			}
		}
	} 
	return idade; 
}


//Calcula quantidade de dias existentes até a data do evento
function calculaIntervaloDias(dataEvento) { 
	var dataAtual = new Date();
	var anoNascParts = dataEvento.split('/');
	var diaEvento = anoNascParts[0];
	var mesEvento =anoNascParts[1]-1;
	//alert('dia'+diaEvento+' mes'+mesEvento);
	//mesEvento = mesEvento--;
	//alert(mesEvento);
	var anoEvento = anoNascParts[2];
	var dtEvento = new Date(anoEvento, mesEvento, diaEvento)
    var calcdia = 1000*60*60*24;
    var dias = Math.ceil((dataAtual.getTime()-dtEvento.getTime())/(calcdia));
    dias = dias*(-1);
    return dias;
}


// Coloca mascara no campo.
function formataCampo(objInput, Mascara, tecla)
{ 
	var boleanoMascara;
	var Digitado = tecla.keyCode ? tecla.keyCode : tecla.which ? tecla.which : tecla.charCode;

	exp = /\-|\.|\/|\(|\)| /g
	campoSoNumeros = $(objInput).val().toString().replace( exp, "" ); 

	var posicaoCampo = 0;    
	var NovoValorCampo="";
	var TamanhoMascara = campoSoNumeros.length;; 

	if (Digitado != 8)
	{ // backspace 
		for(i = 0; i <= TamanhoMascara; i++)
		{ 
			boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/"));
			boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
			if (boleanoMascara)
			{ 
				NovoValorCampo += Mascara.charAt(i);
				TamanhoMascara++;
			}
			else
			{ 
				NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
				posicaoCampo++; 
			}
		}
		$(objInput).val(NovoValorCampo);
		return true; 
	}
	else
		return true;
}

//Retorna os campos de preenchimento obrigatório que estão vazios.
function RetornarRequeridos(idContainer)
{
	var lstInputRequeridos = $("#" + idContainer + " :input.val_requerido");
	var inputs = new Array();
	
	for (var i = 0; i < lstInputRequeridos.length; i++)
	{
		if ($(lstInputRequeridos[i]).attr("disabled") == "")
		{
			if ($(lstInputRequeridos[i]).val().trim().length == 0)
			{
				inputs.push(lstInputRequeridos[i]);
			}
			else
			{
				var classe = $(lstInputRequeridos[i]).attr("class");
				
				if (classe.search("val_cpf") == 0)
				{
					if (ValidarCpf($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_data") == 0)
				{
					if (ValidarData($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_email") == 0)
				{
					$(lstInputRequeridos[i]).val($(lstInputRequeridos[i]).val().toLowerCase());
					if (ValidarEmail($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_cnpj") == 0)
				{
					if (ValidarCnpj($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_apenasnumeros") == 0)
				{
					if (ValidarApenasNumeros($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_telefoneddd") == 0)
				{
					if (ValidarTelefoneDdd($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_telefone") == 0)
				{
					if (ValidarTelefone($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
				else if (classe.search("val_cep") == 0)
				{
					if (ValidarCep($(lstInputRequeridos[i]).val()) == false)
						inputs.push(lstInputRequeridos[i]);
				}
			}
		}
	}
	return inputs;
}

/*******************
* Método: mostraDica
* Finalidade: Mostra um balão com dicas para o usuário. 
*********************/
function mostraDica(objetoInput, distanciaLateral, textodica_balao, divFormato)
{

    //dicaFormExternoEsquerda
	var htmlMostrar = "";
	var objSpans = objetoInput.parentNode.getElementsByTagName("span");
	var objDica = null;
	for (i=0; i < objSpans.length; i++) {
		if (objSpans[i].className == "dica_balao") {
			objDica = objSpans[i];
		}
	}
	
	if (objDica != null) {
	    if(!document.getElementById(divFormato))
	        return;
		htmlMostrar = document.getElementById(divFormato).innerHTML;
		
		htmlMostrar = htmlMostrar.replace("##MENSAGEM##", textodica_balao);
		objDica.innerHTML = htmlMostrar;
		
		if (distanciaLateral > 0) {
			objDica.style.paddingLeft = "" + distanciaLateral + "px";
		}
		
		objDica.className = "dica_balao";
		objDica.style.display = "block";
	}
}

//Formata CPF
function FormataCPF(pCampo,pTamMax,pPos1,pPos2,pPosTraco,pTeclaPres)
{
	var wTecla, wVr, wTam;	
	var nerros=true;
	
    wTecla = pTeclaPres.keyCode;
    
	wVr = pCampo.value;
	wVr = wVr.toString().replace( "-", "" );
	wVr = wVr.toString().replace( ".", "" );
	wVr = wVr.toString().replace( ".", "" );
	wVr = wVr.toString().replace( "/", "" );
	wTam = wVr.length ;
	

	if (wTecla == 13) {
		nerros = true;
		return nerros;
	}

	if (wTam < pTamMax && wTecla != 8) 
	{ 
	   wTam = wVr.length + 1 ; 
	}

	if (wTecla == 8 ) 
	{ 
	   wTam = wTam - 1 ; 
	}
			
	if ( wTecla == 8 || wTecla == 88 || (wTecla >= 48 && wTecla <= 57) || (wTecla >= 96 && wTecla <= 105) )
	{
		if ( wTam <= 2 )
		{
	 		pCampo.value = wVr ;
		}
		if (wTam > pPosTraco && wTam <= pTamMax) 
		{
	       wVr = wVr.substr(0, wTam - pPosTraco) + '-' + wVr.substr(wTam - pPosTraco, wTam);
		}
		if ( wTam == pTamMax)
		{
		      wVr = wVr.substr( 0, wTam - pPos1 ) + '.' + wVr.substr(wTam - pPos1, 3) + '.' + wVr.substr(wTam - pPos2, wTam);
		}
		pCampo.value = wVr;
		pCampo.value = toInteger(pCampo.value);
		nerros=true;
	}
	else
	{
		
		pCampo.value = toInteger(pCampo.value);
		nerros = false;
		
		
	}

	if (wTecla == 9) nerros = true;
	return nerros;
	
}


function toInteger(checkString)
{
 var newString = "";    
 var count = 0;         
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if (ch >= "0" && ch <= "9") 
        {
            newString += ch;
        }
        else
        {
         if (ch == "-") newString += ch;
         if (ch == ".") newString += ch;
         if (ch == "/") newString += ch;
        }
    }
    
    return newString; //checkString;
}


//Valida CPF e CNPJ
function ClearStr(str, vchar)
{
  while((cx=str.indexOf(vchar))!=-1)
  {		
    str = str.substring(0,cx)+str.substring(cx+1);
  }
  return(str);
}

function ParseNumb(c)
{
  c=ClearStr(c,"-");
  c=ClearStr(c,"/");
  c=ClearStr(c,",");
  c=ClearStr(c,".");
  c=ClearStr(c,"(");
  c=ClearStr(c,")");
  c=ClearStr(c," ");
  if((parseFloat(c) / c != 1))
  {
    if(parseFloat(c) * c == 0)
    {
      return(c);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(c);
  }
  return(c);
}

function Verify(source, arguments)
{
	var CNUMB = arguments.Value
	var CTYPE='CPF';

  if (CNUMB.split('1').length > 9 ||
	  CNUMB.split('2').length > 9 ||
	  CNUMB.split('3').length > 9 ||
	  CNUMB.split('4').length > 9 ||
	  CNUMB.split('5').length > 9 ||
	  CNUMB.split('6').length > 9 ||
	  CNUMB.split('7').length > 9 ||
	  CNUMB.split('8').length > 9 ||
	  CNUMB.split('9').length > 9) {
    arguments.IsValid = false;
	return;
  }

  CNUMB=ParseNumb(CNUMB)
  if(CNUMB == 0)
  {
    arguments.IsValid = false;
	return;
  }
  else
  {
    g=CNUMB.length-2;
    if(TestDigit(CNUMB,CTYPE,g))
    {
      g=CNUMB.length-1;
      if(TestDigit(CNUMB,CTYPE,g))
      {	
		arguments.IsValid = true;
		return;

      }
      else
      {
		arguments.IsValid = false;
		return;
      }
    }
    else
    {
	    arguments.IsValid = false;
		return;
    }
  }
}

function TestDigit(CNUMB,CTYPE,g)
{
  var dig=0;
  var ind=2;
  for(f=g;f>0;f--)
  {
    dig+=parseInt(CNUMB.charAt(f-1))*ind;
    if (CTYPE=='CNPJ')
    { if(ind>8) {ind=2} else {ind++} }
        else
            { ind++ }
      }
        dig%=11;
          if(dig<2)
            {
                dig=0;
            }
          else
            {
                dig=11-dig;
            }
  if(dig!=parseInt(CNUMB.charAt(g)))
    {
    return(false);
      }
  else
  {
    return(true);
  }
}

function TESTA(CNUMB,CTYPE)
{
  if(Verify(CNUMB, CTYPE))
  {
    alert(CTYPE+" válido!");
  }
  else
  {
    alert(CTYPE+" inválido!");
  }
  return;
}


//Manter apenas números
var keyCodigo = 0;
function soNumeroPress(evento){

	if (keyCodigo == 0){
		keyCodigo = evento.keyCode;
	}
	if ((keyCodigo == 8 || keyCodigo == 13 || keyCodigo == 9 || keyCodigo == 71 || keyCodigo == 46 || keyCodigo  == 37  || keyCodigo  == 39) || (keyCodigo >= 48 && keyCodigo <= 57) || (keyCodigo >= 96 && keyCodigo <= 105)) 
	{
		VerifiqueTAB=true; 

		return true;

	} else 
	{
		   if (detectar('B')=="NP")
			{
			 return true;
			}	
		   else	 	
			return false;
	}
}

/*******************
* Método: escondeDica
* Finalidade: Esconde o balão com dicas para o usuário.
*********************/
function escondeDica(objetoInput) {
	var objSpans = objetoInput.parentNode.getElementsByTagName("span");
	var objDica = null;
	
	for (i=0; i < objSpans.length; i++) {
		if (objSpans[i].className == "dica_balao") {
			objDica = objSpans[i];
		}
	}
	if (objDica != null) {
		objDica.style.display = "none";
	}
}


function validaFormulario(arrayInput, arrayRadioButton,arrayDateField)
{      
    var retorno = true;
    if(arrayInput)
    {   
        
        for(var i=0;i<arrayInput.length;i++)
        {
            var input = document.getElementById('ctl00_ContentPlaceHolder1_'+arrayInput[i]);
            if(!input)
                input = document.getElementById(arrayInput[i]);
            var retornoAux = validaInput(input);
            if(retornoAux == false)
            {   
                
                retorno = retornoAux;
            }
        }
    }
    if(arrayDateField)
    {
        for(var i=0;i<arrayDateField.length;i++)
        {
            var input = document.getElementById('ctl00_ContentPlaceHolder1_'+arrayDateField[i]);
            if(!input)
                input = document.getElementById(arrayDateField[i]);
            var retornoAux = validaDateField(input);
            if(retornoAux == false)
                retorno = retornoAux;
        }
    }
    if(arrayRadioButton)
    {
        for(var i=0;i<arrayRadioButton.length;i++)
        {
            var retornoAux = validaRadio(arrayRadioButton[i]);
            if(retornoAux == false)
                retorno = retornoAux;
        }
    }
    var idDiv = 'FormAtencaoPreenchimento';
    var div = document.getElementById('ctl00_ContentPlaceHolder1_'+idDiv);
    if(!div)
        div = document.getElementById(idDiv);
    if(div)
    {
        div.style.display = retorno == false ? 'inline' : 'none';
        scroll(0,0);
    }
    return retorno;
}
function validaInput(input)
{
    if(input && ((input.id.indexOf('txt') >= 0 && input.value == '') || (input.id.indexOf('ddl') >= 0 && (input.value == '0' || input.value == ''))))
        {   
            var css = input.className;
            css += ' erro';
            var index = input.id.indexOf('txt');
            if(index < 0)
                index = input.id.indexOf('ddl');
            var id_span = input.id.substring(index);
            id_span = 'ctl00_ContentPlaceHolder1_span'+id_span.charAt(0).toUpperCase()+id_span.substring(1);
            input.setAttribute("class",css)
            var span = document.getElementById(id_span);
            if(span)
            {
                var cssSpan = span.className;
                cssSpan += ' pintaRoxo';
                span.setAttribute("class",cssSpan);
            }
            return false;
        }
        else if(input)
        {
            var css = input.className;
            css = css.replace('erro','');
            var index = input.id.indexOf('txt');
            if(index < 0)
                index = input.id.indexOf('ddl');
            var id_span = input.id.substring(index);
            id_span = 'ctl00_ContentPlaceHolder1_span'+id_span.charAt(0).toUpperCase()+id_span.substring(1);
            input.setAttribute("class",css)
            var span = document.getElementById(id_span);
            if(span)
            {
                var cssSpan = span.className;
                cssSpan = cssSpan.replace('pintaRoxo','');
                span.setAttribute("class",cssSpan);
            }
        }
        return true;
}

function validaRadio(id)
{
	var idRadio = 'ctl00_ContentPlaceHolder1_'+id + '_0';
    var radio = document.getElementById(idRadio);
    if(!radio)
        radio = document.getElementById(id+'_0');
    var possuiSelecao = false;
    if(radio)
    {
        var cont = 1;
        while(radio)
        {
            if(radio.checked)
                possuiSelecao = true;
            radio = document.getElementById('ctl00_ContentPlaceHolder1_'+id+'_'+cont);
            if(!radio)
                radio = document.getElementById(id+'_'+cont);
            cont++; 
        }
        var table = document.getElementById('ctl00_ContentPlaceHolder1_'+id);
        if(!table)
            table = document.getElementById(id);
		var css = table.className;
		var id_span = table.id.substring(table.id.indexOf('rb'));
        id_span = 'ctl00_ContentPlaceHolder1_span'+id_span.charAt(0).toUpperCase()+id_span.substring(1);
        var span = document.getElementById(id_span);
        if(!span)
            span = document.getElementById('span'+id_span.charAt(0).toUpperCase()+id_span.substring(1));
        if(!possuiSelecao)
        {
            css += ' erro';
            table.setAttribute("class",css);
            if(span)
            {
                var cssSpan = span.className;
                cssSpan += ' pintaRoxo';
                span.setAttribute("class",cssSpan);
            }
            return false;
        }
        else
        {
			css = css.replace(' erro','');
            table.setAttribute("class",css);
            var cssSpan = span.className;
            if(span)
            {
                var cssSpan = span.className;
                cssSpan = cssSpan.replace(' pintaRoxo','');
                span.setAttribute("class",cssSpan);
            }
        }
    }
    return true;
}
function validaDateField(input)
{
    if(input && input.id.indexOf('txt') >= 0 && input.value == '__/__/____')
    {
        var css = input.className;
        css += ' erro';
        var index = input.id.indexOf('txt');
        var id_span = input.id.substring(index);
        id_span = 'ctl00_ContentPlaceHolder1_span'+id_span.charAt(0).toUpperCase()+id_span.substring(1);
        input.setAttribute("class",css)
        var span = document.getElementById(id_span);
        if(span)
        {
            var cssSpan = span.className;
            cssSpan += ' pintaRoxo';
            span.setAttribute("class",cssSpan);
        }
        return false;
    }
    else if(input)
    {
        var css = input.className;
        css = css.replace('erro','');
        var index = input.id.indexOf('txt');
        var id_span = input.id.substring(index);
        id_span = 'ctl00_ContentPlaceHolder1_span'+id_span.charAt(0).toUpperCase()+id_span.substring(1);
        input.setAttribute("class",css)
        var span = document.getElementById(id_span);
        if(span)
        {
            var cssSpan = span.className;
            cssSpan = cssSpan.replace('pintaRoxo','');
            span.setAttribute("class",cssSpan);
        }
    }
    return true;
}
function validaIgualdadeCampos(cmp1,cmp2)
{
    var css1 = cmp1.className;
    var css2 = cmp2.className;
    var index1 = cmp1.id.indexOf('txt');
    var id_span1 = cmp1.id.substring(index1);
    id_span1 = 'span'+id_span1.charAt(0).toUpperCase()+id_span1.substring(1);
    var span1 = $cmp(id_span1);
    var index2 = cmp2.id.indexOf('txt');
    var id_span2 = cmp2.id.substring(index2);
    id_span2 = 'span'+id_span2.charAt(0).toUpperCase()+id_span2.substring(1);
    var span2 = $cmp(id_span2);
    var cssSpan2 = span2.className;
    var cssSpan1 = span1.className;
    var retorno = true;
    
    if(index1 < 0)
        index1 = cmp1.id.indexOf('ddl');
    if(index2 < 0)
        index2 = cmp2.id.indexOf('ddl');
    
    if(cmp1.value != cmp2.value && cmp1.value != '' && cmp2.value != '')
    {
        css1 += ' erro';
        if(span1)
            cssSpan1 += ' pintaRoxo';
        css2 += ' erro';
        if(span2)
            cssSpan2 += ' pintaRoxo';
        retorno = false;
    }
    else
    {
        css1 = css1.replace(' erro','');
        css2 = css2.replace(' erro','');
        cssSpan2 = cssSpan2.replace(' pintaRoxo','');
        cssSpan1 = cssSpan1.replace(' pintaRoxo','');
    }
    cmp2.setAttribute("class",css2);
    cmp1.setAttribute("class",css1);
    span1.setAttribute("class",cssSpan1);
    span2.setAttribute("class",cssSpan2);
    var div = $cmp('FormAtencaoPreenchimento');
    if(div)
    {
        div.style.display = retorno == false ? 'inline' : 'none';
        scroll(0,0);
    }
    return retorno;
}

