//<!-- -->
VerifiqueTAB=true;
function mostra(quem, tammax) {
	if ( (quem.value.length == tammax) && (VerifiqueTAB) ) {
		var i=0,j=0, indice=-1;
		for (i=0; i<document.forms.length; i++) {
			for (j=0; j<document.forms[i].elements.length; j++) {
				if (document.forms[i].elements[j].name == quem.name) {
					indice=i;
					break;
				}
			}
			if (indice != -1)
		         break;
		}
		// Se for o último elemento do form não faz nada
		for (i=0; i < document.forms[indice].elements.length - 1; i++) {
			if (document.forms[indice].elements[i].name == quem.name) {
				while ( (document.forms[indice].elements[(i+1)].type == "hidden" ||
 				         document.forms[indice].elements[(i+1)].disabled == true) &&
				       (i < document.forms[indice].elements.length) ) {
							i++;
				}
                                document.forms[indice].elements[(i+1)].focus();
				VerifiqueTAB=false;
				break;
			}
		}
	}
}

//<!-- -->

function pararTAB(quem)
{
   VerifiqueTAB=false;
}

//<!-- -->

function checarTAB()
{
   VerifiqueTAB=true;
}

//<!-- -->

function range(v,p1,p2)
{
   if (v>=p1 && v<=p2)
   {
      return true;
   }
   else
   {
      return false;
   }
}

//<!-- -->

function setaFocoInicial( campo ) {
   var k=0, l=0;
   var achou = false;
   for (l=0; l<document.forms.length; l++) {
      for (k=0; k<document.forms[l].elements.length; k++) {
        if ( document.forms[l].elements[k].type != 'hidden' && 
             document.forms[l].elements[k].disabled != true ){
          if ( campo == null || campo == '' || document.forms[l].elements[k].name == campo ){
            document.forms[l].elements[k].focus();
            achou = true;
            break;
          }
        }
      }
      if ( achou ){
        break;
      }
   }
}

// Indica se o valor informado é um número
function isNumerico ( valorCampo )  {
   var len = valorCampo.length
   for (var i=0; i<len; i++){
     if (valorCampo.charAt (i) < "0" || valorCampo.charAt (i) > "9"){
       return false;
     }
   }
   return true;
}

// Verifica se os campos informados foram preenchidos
// Informe a lista de campos separados por vírgula Ex.: campoPreenchido(document.formCliente, 'codCliente,codTipoLogr');
// ou coloque no onSubmit do formulário onSubmit="if(campoPreenchido(this, 'codCliente,codTipoLogr')==false)return false;"
// Para usar esta função deve chamar o script na página
// <script src="String.js" language="javascript"></script>
function campoPreenchido( form, listaCampo ){
  // Percorre todos os campos
  for (var i = 0; i < form.elements.length; i++) {
    if ( existeElementoLista(listaCampo, ',', form.elements[i].name) &&
         form.elements[i].value == ''){
      form.elements[i].focus();
      alert('Este campo deve ser informado');
      return false;
    }
  }
  return true;
}

// Verifica se todos os campos do form estão preenchidos
// Passe o form como parâmetro Ex.: tudoPreenchido(document.formLogin);
function formPreenchido( form ){
  if (tudoPreenchido(form.name) == false ){
    return false;
  }
  else{
    return true;
  }
}

// Verifica se todos os campos do form estão preenchidos
// Passe o nome do form como parâmetro Ex.: tudoPreenchido('formLogin');
function tudoPreenchido( nomeForm ){
  var k=0;
  for (k=0; k<document.forms[nomeForm].elements.length; k++) {
    if ( document.forms[nomeForm].elements[k].type != 'hidden' ){
      if ( document.forms[nomeForm].elements[k].value == '' ){
        alert('Este campo deve ser preenchido');
        document.forms[nomeForm].elements[k].focus();
        return false;
      }
    }
  }
  return true;
}

// Verifica se todos os campos do form são numéricos
function tudoNumerico( nomeForm ){
  var k=0;
  for (k=0; k<document.forms[nomeForm].elements.length; k++) {
    if ( document.forms[nomeForm].elements[k].type != 'hidden' ){
      if ( isNumerico(document.forms[nomeForm].elements[k].value) == false ){
        alert('Este campo deve ser um número');
        document.forms[nomeForm].elements[k].focus();
        return false;
      }
    }
  }
  return true;
}

function isDataPreenchidaOk( campoDia, // campo do dia da data
                             campoMes, // campo do mes da data
                             campoAno  // campo do ano da data
                            ){
  if ( campoDia.value != '' || campoMes.value != '' || campoAno.value != '' ){
    // Algum campo foi preenchido
  	if ( campoDia.value == '' || campoMes.value == '' || campoAno.value == '' ){
      // Não foram preenchidos todos os campos
      if ( campoAno.value == '' ){ campoAno.focus(); }
      if ( campoMes.value == '' ){ campoMes.focus(); }
      if ( campoDia.value == '' ){ campoDia.focus(); }
			alert('Preencha todos os campos da data');
			return false;
		}
		else{
      return true;
		}
	}
	else{
  	return true;
  }
}

// Valida uma data
function validaData( campoDia,
                     campoMes,
                     campoAno
                   ){
  if ( isDataPreenchidaOk(campoDia, campoMes, campoAno ) == false ){
    return false;
  }
  if ( campoDia.value != '' || campoMes.value != '' || campoAno.value != '' ){
    // Preencheu algum valor
  	var valor = campoDia.value
    if ( valor < 1 || valor > 31 ){
  		  campoDia.focus();
  			alert('Informe um dia válido para a data');
  			return false;
    }
  		valor = campoMes.value
    if ( valor < 1 || valor > 12 ){
  		  campoMes.focus();
  			alert('Informe um mês válido para a data');
  			return false;
    }
  		valor = campoAno.value
    if ( valor < 1 || valor > 2050 ){
  		  campoAno.focus();
  			alert('Informe um ano válido para a data');
  			return false;
    }
  }
  return true;
}

// Valida uma data e hora
function validaDataHora( campoDia, // campo do dia da data
                         campoMes, // campo do mes da data
                         campoAno,  // campo do ano da data
                         campoHor,
                         campoMin
                       ){
  if ( validaData( campoDia, campoMes, campoAno ) == false ){
    return false;
  }
  var valor = campoHor.value;
  if ( valor < 0 || valor > 23 ){
	  campoHor.focus();
		alert('Informe uma hora válida entre 1 e 23');
		return false;
  }
  valor = campoMin.value;
  if ( valor < 0 || valor > 59 ){
	  campoMin.focus();
		alert('Informe um minuto válido entre 1 e 59');
		return false;
  }
  return true;
}

// Valida um período, ou seja, uma data inicial e uma data final
function validaPeriodo( nomeForm,    // Nome do formulário onde estão os campos
                        campoDiaIni, // Nome do campo do dia da data inicial
                        campoMesIni, // Nome do campo do mes da data inicial
                        campoAnoIni, // Nome do campo do ano da data inicial
                        campoDiaFim, // Nome do campo do dia da data final
                        campoMesFim, // Nome do campo do mes da data final
                        campoAnoFim, // Nome do campo do ano da data final
                        maxNroDias   // Número máximo de dias do período
                       ){
  if (tudoPreenchido(nomeForm) == false || tudoNumerico(nomeForm) == false){
    return false;
  }
  // document.formPeriodo.anoInicial.
  //validar se as campos são numéricos
  var dataInicial = new Date(document.forms[nomeForm].elements[campoAnoIni].value,
                             document.forms[nomeForm].elements[campoMesIni].value - 1,
                             document.forms[nomeForm].elements[campoDiaIni].value);
  var dataFinal   = new Date(document.forms[nomeForm].elements[campoAnoFim].value,
                             document.forms[nomeForm].elements[campoMesFim].value - 1,
                             document.forms[nomeForm].elements[campoDiaFim].value);
  var nroDias = ((dataFinal - dataInicial)/86400000);
  if (nroDias > maxNroDias ){
    document.forms[nomeForm].elements[campoDiaFim].focus();
    alert('O período deve ter no máximo ' + maxNroDias + ' dias');
    return false;
  }
  if (nroDias < 0 ){
    document.forms[nomeForm].elements[campoDiaFim].focus();
    alert('A data final deve ser maior que a inicial');
    return false;
  }
  return true;
}

// Não deixa digitar nada diferente de números no campo informado
function Numerico(Bflag)
{
  var Tecla = window.event.keyCode;
  event.cancelBubble = true;
  if(Bflag)
  {
  	if((Tecla > 47 && Tecla < 58)) // Somente numeros
    	event.returnValue = true;
    else
    	event.returnValue = false;
   }
   else
   {
	  if((Tecla > 57) || (Tecla == 32)) // Somente letras
		event.returnValue = true;
	  else
		event.returnValue = false;
   }
}

function upperCase( campo ){
  var Tecla = window.event.keyCode;

  if ((Tecla > 57) || (Tecla == 32)) // Somente letras
    campo.value = campo.value.toUpperCase();
}

function upperCaseKey( field, evt ){
  if (document.all) {
    var c = event.keyCode;
    var C = String.fromCharCode(c).toUpperCase().charCodeAt();
    event.keyCode = C;
    return true;
  }
  else if (document.layers) {
    var c = evt.which;
    var C = String.fromCharCode(c).toUpperCase().charCodeAt();
    netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
    evt.which = C;
    return true;
  }
  else
    return true;
}

function lowerCase( campo ){
  var Tecla = window.event.keyCode;
  if ((Tecla > 57) || (Tecla == 32)) // Somente letras
    campo.value = campo.value.toLowerCase();
}

function lowerCaseKey( field, evt ){
  if (document.all) {
    var c = event.keyCode;
    var C = String.fromCharCode(c).toLowerCase().charCodeAt();
    event.keyCode = C;
    return true;
  }
  else if (document.layers) {
    var c = evt.which;
    var C = String.fromCharCode(c).toLowerCase().charCodeAt();
    netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
    evt.which = C;
    return true;
  }
  else
    return true;
}


