function isRadioNull(oEntrada,sCaption)
{
	for ( var iCount = 0 ;  ; iCount ++ )
	{
	  if ( typeof( oEntrada[iCount] ) == "undefined" )
	    break;
	  if ( oEntrada[iCount].checked )
	    return true
	}
	oEntrada[0].focus()
  if ( typeof(sCaption) == "undefined" )
  	alert("Favor selecionar um(a) " + oEntrada[0].name )
  else
    alert("Favor selecionar um(a) " + sCaption)
	return false
}

function isTextNull (oCampo, sNomeCampo)
{
	if(Trim(oCampo.value) == "") {
    alert(sNomeCampo + " é obrigatório.");
    oCampo.focus()
   	return 0;
	}
	
	return 1;
}

function isComboSelected(oCbo,sCaption)
{
  if ( oCbo[oCbo.selectedIndex].value == "" )
  {
    oCbo.focus()
    if ( typeof(sCaption) == "undefined" )
    	alert("Favor selecionar um(a) " + oCbo.name )
    else
      alert("Favor selecionar um(a) " + sCaption)
    return false
  }
  return true
}

function isEmail(oEntrada, sNomeCampo) 
{
  var str = oEntrada.value
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  if ( (!r1.test(str) && r2.test(str)) )
    return true
  oEntrada.focus();
	alert(sNomeCampo+" inválido.")
	return false
}

function isCPF(oInput, sNomeCampo){

var s = oInput.value
while(s.lenght < 11)
	s = "0" + s;

var i;
var c = s.substr(0,9);
var dv = s.substr(9,2);
var d1 = 0;
	for (i = 0; i < 9; i++){
    		d1 += c.charAt(i)*(10-i);
   	}
	if (d1 == 0)
	{
	  alert(sNomeCampo+" Inválido. Verifique se há somente números.");
	  oInput.focus();
	  return false;
	}
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1){
	  alert(sNomeCampo+" Inválido. Verifique se há somente números.");
	  oInput.focus();
	  return false;
    }
    
    d1 *= 2;
    for (i = 0; i < 9; i++){
    	d1 += c.charAt(i)*(11-i);
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1){
		alert(sNomeCampo+" Inválido. Verifique se há somente números.");
	  oInput.focus();
	  return false;
    }
    return true;
}

function isCNPJ(oInput, sNomeCampo){
	
	var CNPJ = oInput.value
	
	while(CNPJ.length<14)
		CNPJ = "0" + CNPJ
	
	if (CNPJ.length<14)
	{
	  alert(sNomeCampo+" Inválido. Verifique se há somente números.");
	  oInput.focus();
	  return false;
	}
		
	CNPJ1 = CNPJ.substr(0, 12);
	CNPJ2 = CNPJ.substr(12, 2);
	Mult = "543298765432";
	Controle = "";
	Digito = 0;
		
	for (j = 1; j <= 2; j++)
	{
		Soma = 0;
		for (i = 0; i <= 11; i++)
		{
			Soma = Soma + (parseInt(CNPJ1.substr(i, 1)) * parseInt(Mult.substr(i, 1)));
		}
		if (j == 2)
		{
			Soma = Soma + (2 * Digito);
		}
		Digito = (parseInt(Soma) * 10) % 11;
		if (Digito == 10)
		{
			Digito = 0;
		}
		Controle = Controle + Digito.toString();
		Mult = "654329876543";			
	}

	if (Controle!=CNPJ2){		
		alert(sNomeCampo+" Inválido. Verifique se há somente números.")
		oInput.focus()
		return false;
	}
	else
	{
	   return true
	}	
}

// verifica se a data informada é válida
function isData(oInput, campo)
{
	if (!isTextNull(oInput, campo)) 
	{
		return false;
	}
	else if(oInput.value.substring(0,10).length != 10)
	{
		alert("Preencha o campo " + campo + " no formato dd/mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	else if((oInput.value.substr(2,1) != "/") || (oInput.value.substr(5,1) != "/"))
	{
		alert("Preencha o campo " + campo + " no formato dd/mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	else if(!isNaN(parseInt(oInput.value.substr(0,2))) && !isNaN(parseInt(oInput.value.substr(3,2))) && !isNaN(parseInt(oInput.value.substr(6,4))))
	{
		var iDia,iMes,iAno;
		var dData;
		iDia = oInput.value.substr(0,2);
		iMes = oInput.value.substr(3,2);
		iAno = oInput.value.substr(6,4);
		dData = new Date(iAno,iMes - 1,iDia);
		if(iDia != dData.getDate())
		{
			alert("Preencha o campo " + campo + " com uma data válida.");
			oInput.select();
			oInput.focus();
			return false;
		}
		else if(iMes != (dData.getMonth()+1))
		{
			alert("Preencha o campo " + campo + " com uma data válida.");
			oInput.select();
			oInput.focus();
			return false;
		}
		else if(iAno != dData.getFullYear())
		{
			alert("Preencha o campo " + campo + " com uma data válida.");
			oInput.select();
			oInput.focus();
			return false;
		}			
	}
	else
	{
		alert("Preencha o campo " + campo + " no formato dd/mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	return true;

}

// verifica se a data informada é válida
function isDataMes(oInput, campo)
{
	if (!isTextNull(oInput, campo)) 
	{
		return false;
	}
	else if(oInput.value.substring(0,7).length != 7)
	{
		alert("Preencha o campo " + campo + " no formato mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	else if (oInput.value.substr(2,1) != "/")
	{
		alert("Preencha o campo " + campo + " no formato mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	else if(!isNaN(parseInt(oInput.value.substr(0,2))) && !isNaN(parseInt(oInput.value.substr(3,4))) )
	{
		var iDia,iMes,iAno;
		var dData;
		iDia = "01";
		iMes = oInput.value.substr(0,2);
		iAno = oInput.value.substr(3,4);
		dData = new Date(iAno,iMes - 1,iDia);
		if(iMes != (dData.getMonth()+1))
		{
			alert("Preencha o campo " + campo + " com um mês válido.");
			oInput.select();
			oInput.focus();
			return false;
		}
		else if(iAno != dData.getFullYear())
		{
			alert("Preencha o campo " + campo + " com um ano válido.");
			oInput.select();
			oInput.focus();
			return false;
		}			
	}
	else
	{
		alert("Preencha o campo " + campo + " no formato mm/aaaa.");
		oInput.select();
		oInput.focus();
		return false;
	}
	return true;

}

function isNumber(oInput, sNomeCampo)
{

  var sInput = oInput.value

  while ( sInput.charAt(0) == "0" )
  {
    sInput = sInput.substring(1);
  }

  if ( !isNaN(sInput) )
    if ( String(new Number(sInput)) == String(sInput) )
    {

      if ( typeof(iMaxValue) != "undefined" )
      {
        if ( parseInt(oInput.value) > iMaxValue ) {
          alert("Esse campo não deve ser maior que " + String(iMaxValue))
          return false
        }
      }
      return true;
    }

	if(sNomeCampo != "")
		alert(sNomeCampo + " não é numérico")
		
  return false;
}

function Trim(sEntrada)
{
	sString = new String(sEntrada)
	for ( var iCount2 = 0;  iCount2 < sString.length ; iCount2++ )
		if ( sString.charAt(iCount2) != " ")
			break;
	for ( var iCount = sString.length - 1;  iCount > 0 ; iCount-- )
		if ( sString.charAt(iCount) != " ")
			break;
	if ( iCount2 > iCount ) 
		return ""
	return sString.substring(iCount2,iCount+1)
}

function atualizaCodBanco (oForm)
{
    if (oForm.banco.options [oForm.banco.selectedIndex].value == "999")
    {
			oForm.VAR082.focus ();
    	alert ("Nro. do banco inválido");
			return 0;
    }
    else
        oForm.VAR082.value = oForm.banco.options [oForm.banco.selectedIndex].value;

    return 1;
}

function atualizaNomeBanco (oForm)
{
    var achou;
    var i;

    achou = false;

    if (oForm.VAR082.value != "")
    {
        if (isNumber(oForm.VAR082))
        {
            if (oForm.VAR082.value != 999)
            {
              i = 0;
    	            
            	while (((!(achou)            )   &&
                   		(i < oForm.banco.length)))
              {
    	            if (parseInt (oForm.VAR082.value, 10) == oForm.banco.options[i].value)
                    	achou = true;
    	            else
                    	i++;
    	        }

              if (achou)
            	    oForm.banco.selectedIndex = i;
           	}
        }
	    	else
	    	{
	      		oForm.VAR082.focus ();
       	    return 0;
        }
		}

    if (!achou)
		{
   	   oForm.banco.selectedIndex = 0;
       
       if (oForm.VAR082.value != "")
   	   {
           oForm.VAR082.value = "";
   	       
           oForm.VAR082.focus ();
   	       alert ("Nro. do banco inválido");
           return 0;
   	   }
    }
    return 1;
}

function isCheckBoxNotNullCampo( checkb, nomeCampo )
{
  var index=0;

  if ( typeof( checkb[index] ) != 'undefined' )
  {
    while ( typeof( checkb[index] ) != 'undefined' )
    {
      if ( checkb[index].checked )
      {
        return true;
      }
      index ++;
    }

    checkb[0].focus();
  }
  else
  {
    if (checkb.checked)
    {
      return true;
    }
    else
    {
      checkb.focus();
    }
  }

  alert(nomeCampo);
  return false;
}



function checkCPFCNPJ(cnpfj) {
	if (cnpfj.value.length < 11 ) {
		alert('CPF/CNPJ inválido');
		return false;
	}
	else if (cnpfj.value.length > 11 ) {
		if ( isCNPJ(cnpfj, "CNPJ") ) {
			return true;
		}
	}
	else {
		if ( isCPF(cnpfj, "CPF") ) {
			return true;
		}
	}
	return false;
}

// colocar no evento onKeyUp passando o objeto como parametro
// Exemplo: <input type="text" name="data" onKeyUp="formataMascaraData(this);">
function formataMascaraData(val) {
   	var pass = val.value;
	var expr = /[0123456789]/;
	for(i=0; i<pass.length; i++){
		// charAt -> retorna o caractere posicionado no índice especificado
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
		if(i==0){
		   // search -> retorna um valor inteiro, indicando a posição do inicio da primeira
		   // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
		   // instStr.search(expReg);
		   if ((lchar.search(expr) != 0) || (lchar>3)){
			  val.value = "";
		   }
		} else if(i==1){
			   if(lchar.search(expr) != 0){
				  // substring(indice1,indice2)
				  // indice1, indice2 -> será usado para delimitar a string
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
					val.value = tst1 + '/' + tst2;
			   }
		 }else if(i==4){
				if(lchar.search(expr) != 0){
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;
					continue;			
				}
				if	((nchar != '/') && (nchar != '')){
					var tst1 = val.value.substring(0, (i)+1);
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
					val.value = tst1 + '/' + tst2;
				}
   		  }
		  if(i>=6){
			  if(lchar.search(expr) != 0) {
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;			
			  }
		  }
	 }
     if(pass.length>10)
		val.value = val.value.substring(0, 10);
	 	return true;
}


// retira caracteres invalidos da string
function LimparMascara(valor, validos) {
	var result = "";
	var aux;
	for (var i=0; i < valor.length; i++) {
		aux = validos.indexOf(valor.substring(i, i+1));
		if (aux>=0) {
			result += aux;
		}
	}
	return result;
}

//Formata número tipo moeda usando o evento onKeyDown
//Exemplo: <input type="text" name="price" onKeydown="Formata(this,20,event,2)">
function FormataMascaraMoeda(campo,tammax,teclapres,decimal) {
	var tecla = teclapres.keyCode;
	vr = LimparMascara(campo.value,"0123456789");
	tam = vr.length;
	dec=decimal
	
	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 <= dec )
			{ campo.value = vr ; }
		
		if ( (tam > dec) && (tam <= 5) ){
			campo.value = vr.substr( 0, tam - 2 ) + "," + vr.substr( tam - dec, tam ) ; }
		if ( (tam >= 6) && (tam <= 8) ){
			campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "," + vr.substr( tam - dec, 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 - dec, 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 - dec, 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 NomeCompleto(sEntrada)
{
	var encontrouEspaco = false;
	
	sString = new String(sEntrada.value)
	for ( var iCount2 = 0;  iCount2 < sString.length ; iCount2++ ) {
		if (encontrouEspaco == true && sString.charAt(iCount2) != " ")
			return true;
		if ( sString.charAt(iCount2) == " ")
			encontrouEspaco = true;
	}
	
	alert("Preencha com seu nome completo")
	sEntrada.select();
	sEntrada.focus();
	return false;
}

function minCarac(oInput, sNomeCampo, tam){
	var s = oInput.value
	if (s.length < tam) {
		  alert(sNomeCampo+" deve conter no mínimo " + tam + " caracteres.");
		  oInput.focus();
		  return false;
	}
	return true;
}


function minCaracGeral(oInput, sNomeCampo, tam){
	var s = oInput.value
	if (s.length < tam) {
		  alert(sNomeCampo+" inválido. Preencha novamente");
		  oInput.focus();
		  return false;
	}
	return true;
}
