function validaInteiro(x){
	s = new String(x);
	ok = true;
	for (i = 0; i < s.length; i++){
		r = (s.charAt(i) == "0"
		|| s.charAt(i) == "1" 
		|| s.charAt(i) == "2" 
		|| s.charAt(i) == "3" 
		|| s.charAt(i) == "4" 
		|| s.charAt(i) == "5" 
		|| s.charAt(i) == "6"  
		|| s.charAt(i) == "7" 
		|| s.charAt(i) == "8" 
		|| s.charAt(i) == "9");
		if(!r){
			ok = false;
			break;
		}
	}
	return ok;
}

function validaCampoVazio(s){
    return ((s== null) || (s.length == 0));
}


function validaEmail(email){
    var ExpReg = /^\w+([\.-]?\w)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    var result = ExpReg.test(email);
    if (!result){
       return false;
    } else {
       return true;
    }     
}


// *** limita o numero de caracteres no campo ***
// Pmax = número máximo de caracteres desejados
// Pcampo = nome do campo a ser limitado
function countChars(Pmax,Pcampo) {
	campo = eval("document.form1." + Pcampo);
  if(campo.value.length > Pmax){
  	campo.value = campo.value.substring(0, Pmax);
  	alert("O texto não pode ultrapassar " + Pmax + " caracteres.");
		campo.focus();
  }
}

function validaHora(intHora,intMin,intSeg){
	bolOk = true;
	if(validaCampoVazio(intHora) || validaCampoVazio(intMin) || validaCampoVazio(intSeg)){
		bolOk = false;
	}
	else{
		if(!validaInteiro(intHora) || !validaInteiro(intMin) || !validaInteiro(intSeg)){
			bolOk = false;
		}
		else{
			if(intHora > 23 || intMin > 59 || intSeg > 59){
				bolOk = false;
			}
		}
	}
	return bolOk;
}

function validaData(Data){
	var dma = -1;
	var data = Array(3);
	var ch = Data.charAt(0); 
	for(i=0; i < Data.length && (( ch >= '0' && ch <= '9' ) || ( ch == '/' && i != 0 ) ); ){
   		data[++dma] = '';
		if(ch!='/' && i != 0) return false;
		if(i != 0 ) ch = Data.charAt(++i);
		if(ch=='0') ch = Data.charAt(++i);
   		while( ch >= '0' && ch <= '9' ){
    		data[dma] += ch;
    		ch = Data.charAt(++i);
   		} 
  	}
	  if(ch!='') return false;
	  if(data[0] == '' || isNaN(data[0]) || parseInt(data[0]) < 1) return false;
	  if(data[1] == '' || isNaN(data[1]) || parseInt(data[1]) < 1 || parseInt(data[1]) > 12) return false;
	  if(data[2] == '' || isNaN(data[2]) || ((parseInt(data[2]) < 1900 || parseInt(data[2]) > 9999))) return false;
  	  switch(parseInt(data[1])){
   		case 2: { if(((parseInt(data[2])%4!=0 || (parseInt(data[2])%100==0 && parseInt(data[2])%400!=0)) && parseInt(data[0]) > 28) || parseInt(data[0]) > 29 ) return false; break; }
   	    case 4: case 6: case 9: case 11: { if(parseInt(data[0]) > 30) return false; break;}
   		default: { if(parseInt(data[0]) > 31) return false;}
  	  }
  return true; 
}

function autoTab(strCampo,intMax,strProxCampo){
	if(strCampo.value.length == intMax) eval(strProxCampo + ".focus();");
}
