function validarForm(){
    var f = document.formCadastro;

	// dados pessoais
	if(f.nome.value.length < 2){
		alert("Por favor preencha o campo \"Nome\".");
		f.nome.focus();
		return false;
	}
	if(f.sobrenome.value.length < 2){
		alert("Por favor preencha o campo \"Sobrenome\".");
		f.sobrenome.focus();
		return false;
	}	

	if((f.sexo[0].checked == false) && 
		(f.sexo[1].checked == false)){
		alert("Por favor, informe o seu sexo.");
		return false;
	}
	

	if(f.dt_nascimento.value.length < 2){
		alert("Por favor preencha o campo \"Data de Nascimento\".");
		f.dt_nascimento.focus();
		return false;
	} else {
		if(!validarDataFormato(f.dt_nascimento.value)){
			alert("Por favor preencha corretamente o campo \"Data de Nascimento\".");
			f.dt_nascimento.focus();
			return false;
		} 
	}	
	
	// DDD
	if(f.ddd.value.length < 2){
		alert("Por favor preencha o campo \"DDD\".");
		f.ddd.focus();
		return false;
	}		
	if(f.telefone.value.length < 6){
		alert("Por favor preencha o campo \"Telefone\".");
		f.telefone.focus();
		return false;
	}	
	

	if(f.cidade.value.length < 2){
		alert("Por favor preencha o campo \"Cidade\".");
		f.cidade.focus();
		return false;
	}	
	if(f.bairro.value.length < 2){
		alert("Por favor preencha o campo \"bairro\".");
		f.bairro.focus();
		return false;
	}	

	if(f.estado.options[f.estado.selectedIndex].value == ""){
		alert("Por favor selecione o \"Estado\".");
		f.estado.focus();
		return false;
	}


	// email
	if(f.email.value.length < 2){
		f.email.focus();
		alert("Por favor preencha o campo \"E-mail\".");
		return false;
	} else {
		// valida endereco de email
		var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
		if(!(er.test(f.email.value))){
		   alert ("Por favor preencha corretamente o campo e-mail.");
		   f.email.focus();
		   return false;			
		}
	}

	if(f.email2.value.length < 2){
		f.email2.focus();
		alert("Por favor preencha o campo \"Confirmação de e-mail\".");
		return false;
	} else {
		// valida endereco de email
		var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
		if(!(er.test(f.email2.value))){
		   alert ("Por favor preencha corretamente o campo \"Confirmação de e-mail\".");
		   f.email2.focus();
		   return false;			
		}

	}

	if(f.email.value != f.email2.value){
		f.email.focus();
		alert("O endereço de e-mail não confirma.");
		return false;
	}

	return true;
}

// -----------------------------------------------------------------------------------------------
// rotinas genericas

function validarDataFormato(d){
	var reData = /(\d{2})\/(\d{2})\/(\d{4})/;
	var datePart = d.match(reData); // datePartconterá [0]=dia, [1]=mes e [2]=ano

	if(datePart == null){
		//alert("Data Invalida");
		return false;
	}
	// passando as partes da data para variáveis mais "amigáveis":
	var dd = datePart[1], mm = datePart[2], yy = datePart[3];

	//condições de datas inválidas:
	// dia menor que 1 ou maior que 31
	if (dd<1) { return false;}

	// mes fora dos limites
	if (mm<1 || mm>12) { return false;}

	// validacoes com o ano

	if(yy < 1) { return false;}
	if(yy.length != 4) { return false; }


	// meses 4,6,9,11 nao possuem mais de 30 dias
	if ((dd > 30) && (mm == 4)) {return false;}
	if ((dd > 30) && (mm == 6)) {return false;}
	if ((dd > 30) && (mm == 9)) {return false;}
	if ((dd > 30) && (mm == 11)) {return false;}

	if ((dd > 31) && (mm == 1)) {return false;}
	if ((dd > 31) && (mm == 3)) {return false;}
	if ((dd > 31) && (mm == 5)) {return false;}
	if ((dd > 31) && (mm == 7)) {return false;}
	if ((dd > 31) && (mm == 8)) {return false;}
	if ((dd > 31) && (mm == 10)) {return false;}
	if ((dd > 31) && (mm == 12)) {return false;}

	// fevereiro não tem mais de 28 dias, exceto em ano bissexto
	if ((dd > 29) && (mm == 2) && (anobissexto(yy) )) {return false;}
	if ((dd > 28) && (mm == 2) && (!anobissexto(yy) )) {return false;}

	// se passou pelos testes acima, então a data é considerada válida.
	return true;
}

/**
 * formata campo de data
 *
 * @param: event
 * @param: object
 * @return: data formatada
 */
function validaData(evt,obj){
	data = obj.value;
	var charCode = (evt.which) ? evt.which : evt.keyCode

	//if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 45) {
    //    return(data);
	//} else {
		if(charCode != 8){
			if((data.length == 2) || (data.length == 5)){
				data+="/";
			} else if(data.length == 3){
				if (data.indexOf("/") == -1){
					data = data.substring(0,2) + "/" + data.substring(2,3);
				}
			} else if(data.length == 6){
				if(data.substring(5,6) != "/"){
					data = data.substring(0,5) + "/" + data.substring(5,6);
				}
			}
		}
	//}
	return(data);
}

/**
 * checa se esta sendo digitado somente numeros
 *
 * @param: event
 * @return:
 */
function somenteNumero(evt){
	evt = (evt) ? evt : window.event
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 45) {
		status = "Este campo aceita somente números."
		return false
	}
	status = ""
	return true
}

// -----------------------------------------------------------------------------------------------