function validaTudo(form,tipov,nomenc,descr){

form = document[form]

switch (tipov){

case "nomec": //nome completo

var tchars = "*|,\":<>[]{}`\'';()&$#%";
campov = form[nomenc].value
if (campov.length < 10  || campov.indexOf(" ") < 0){alert("Preencha o " + descr + ".");form[nomenc].focus();return false;}
if (fBadChars(tchars,campov) == false){alert("Caracteres inválidos em " + descr + ".");form[nomenc].focus();return false;}
break;

case "cnpj":
CNPJ =  form[nomenc].value;

                erro = new String;
                if (CNPJ.length < 14) erro += "Preencha corretamente o número do CNPJ. \n\n"; 
               // if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
               // if (erro.length == 0) erro += "Preencha corretamente o número do CNPJ \n\n";
               // }
                //substituir os caracteres que não são números
               if(document.layers && parseInt(navigator.appVersion) == 4){
                       x = CNPJ.substring(0,2);
                       x += CNPJ. substring (3,6);
                       x += CNPJ. substring (7,10);
                       x += CNPJ. substring (11,15);
                       x += CNPJ. substring (16,18);
                       CNPJ = x; 
               } else {
                       CNPJ = CNPJ. replace (".","");
                       CNPJ = CNPJ. replace (".","");
                       CNPJ = CNPJ. replace ("-","");
                       CNPJ = CNPJ. replace ("/","");
               }
               var nonNumbers = /\D/;
               if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n"; 
              var a = [];
               var b = new Number;
               var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
               for (i=0; i<12; i++){
                       a[i] = CNPJ.charAt(i);
                       b += a[i] * c[i+1];
 }
               if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               b = 0;
               for (y=0; y<13; y++) {
                       b += (a[y] * c[y]); 
               }
               if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
               if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
                      erro +="Dígito verificador com problema!";
               }
               if (erro.length > 0){
                       alert(erro);
                       return false;
               } else {
                      // alert("CNPJ valido!");
               }
               return true;

case "cpf":
cpf = form[nomenc].value
 var soma1, soma2, s1, s2;
 var str_cpf = "";
 var verifzero = 0;
 var v = 0;

 for (i = 0; i <= cpf.length - 1; i++)
   if ((cpf.charAt(i)).match(/\d/)) {
     str_cpf += cpf.charAt(i);
	 verifzero+=cpf.charAt(i);
   }
   else if (!(cpf.charAt(i)).match(/[\.\-]/)) {
     alert ("O campo 'CPF' apresenta caracteres inválidos");
   return false;
   }

 if (str_cpf.length != 11) {
	alert ("O campo 'CPF' está incorreto.")
	return false;
 }

if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
	 alert ("O 'CPF' "+cpf+" está incorreto.");
	 return false;
 }

 soma1 = soma2 = 0;
 for (i = 0; i <= 8; i++) {
   soma1 += str_cpf.charAt(i) * (10-i);
   soma2 += str_cpf.charAt(i) * (11-i);
 }

 s1 = ((soma1 * 10) % 11) % 10;
 s2 = (((soma2 + (s1 * 2)) * 10) % 11) % 10;

 if ((s1 != str_cpf.charAt(9)) || (s2 != str_cpf.charAt(10))) {
	alert("O CPF '"+cpf+"' não é válido");
	return false;
 }
break;

case "ssn":
ssn = form[nomenc].value
vr = / /g;
ssn = ssn.replace(vr,"")
var matchArr = ssn.match(/^(\d{3})-?\d{2}-?\d{4}$/);
var numDashes = ssn.split('-').length - 1;
if (matchArr == null || numDashes == 1) {alert('SSN Inválido.');return false;
}else{
if (parseInt(matchArr[1],10)==0) {alert("SSN: SSN's can't start with 000.");return false;}
}

case "cep": 
campov = form[nomenc].value
var tchars = "*|,\":<>[]{}`\'';()&$#%abcdefghijklmnopqrstuvxzwv";
if (campov.length < 5){alert("Preencha o  " + descr + ".");form[nomenc].focus();return false;}
if (fBadChars(tchars,campov) == false){alert("Caracteres inválidos em  " + descr + ".");form[nomenc].focus();return false;}
break;

case "databr": 
break;

case "dataus":
break;

case "email":
campov = form[nomenc].value
if (campov.length < 2){alert("Preencha o campo E-mail.");form[nomenc].focus(); return false;}
if (campov.length < 7){alert("O e-mail preenchido está incorreto.");form[nomenc].focus(); return false;}
if((campov.indexOf(".") <= 0) || (campov.indexOf("@") <= 0)) {alert("O e-mail preenchido está incorreto.");form[nomenc].focus(); return false;}
if ((campov.indexOf("@",0)<=0)||(campov.indexOf(".",0)<=0)){alert("E-mail inválido.");form[nomenc].focus();return false}
if (campov.lastIndexOf('@') > campov.lastIndexOf('.')) //Não tem ponto depois do arroba
{alert("E-mail inválido.");form[nomenc].focus();return false}
var BadChars = "*|,\":<>[]{}`\'';()&$#% ";
for (var i = 0; i < campov.length; i++){
if (BadChars.indexOf(campov.charAt(i)) != -1){alert("O e-mail digitado contém caracteres inválidos.");news.email.focus();return false}
}
break;

case "select":
campoa = form[nomenc]
campov = campoa[campoa.selectedIndex].value
vr = / /g;
campov = campov.replace(" ","")
if (campov == ''){alert("Selecione " + descr + "."); return false;}
break;

case "telefone":
campov = form[nomenc].value.replace(" ","")
if (campov.length < 6){alert("Preencha corretamente o " + descr + ".");form[nomenc].focus(); return false;}
var tchars = "*|,\":<>[]{}`\'';()&$#%";
if (fBadChars(tchars,campov) == false){alert("Caracteres inválidos em  " + descr + ".");form[nomenc].focus();return false;}
break;

case "endereco":
campov = form[nomenc].value
if (campov.length < 5){alert("Preencha corretamente o " + descr + ".");form[nomenc].focus(); return false;}
var tchars = "*|\":<>[]{}`\'';()&$#%";
if (fBadChars(tchars,campov) == false){alert("Caracteres inválidos em  " + descr + ".");form[nomenc].focus();return false;}
break;

case "nome":
campov = form[nomenc].value.replace(" ","")
if (campov.length < 2){alert("Preencha o " + descr + ".");form[nomenc].focus(); return false;}
var tchars = "*|,\":<>[]{}`\'';()&$#%";
if (fBadChars(tchars,campov) == false){alert("Caracteres inválidos em  " + descr + ".");form[nomenc].focus();return false;}
break;

case "radio":
vob = form[nomenc]; ach = false;
for(var i= 0; i < vob.length; i++){if (vob[i].checked == true){ach = true}} 
if (ach == false){alert("Selecione " + descr + ".");return false;}
break;

case "senha":

} //switch

return true
}


function fBadChars(tchars,strval){
ach = false
for (var i = 0; i < strval.length; i++){if (tchars.indexOf(strval.charAt(i)) > -1){ach = true}}
if (ach == true) {return false}}


var dtCh= "/";

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}


function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this
}


var dtCh= "/";
var minYear=1900;
var maxYear=2100;
function isDate2(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(0,pos1)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("O formato da data deve ser : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Por favor preencha um mês válido")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Preencha um dia válido.")
		return false
	}
	//if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	//	alert("Digite um ano  "+minYear+" and "+maxYear)
		//return false
	//}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Digite uma data válida.")
		return false
	}
return true
}

function checradio(campo,valor){
vob = document.form[campo]
for(var i= 0; i < vob.length; i++){
if (vob[i].value == valor){vob[i].checked=true}else{vob[i].checked=false}
}
}
