function validaForm() {

	if(document.meucadastro.shp_des_name.value=="" && document.meucadastro.shp_des_name2.value=="") {
		alert("O campo Nome é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_name.focus();
		return false;
	}

	if(document.meucadastro.shp_des_sex[0].checked==false && document.meucadastro.shp_des_sex[1].checked==false) {
		alert("Por favor, selecione uma opção para o campo Sexo.");
		document.meucadastro.shp_des_sex[0].focus();
		return false;
	}

	if(!isMail(document.meucadastro.shp_des_email.value)) {
		alert("O campo E-mail é obrigatório. Por favor, preencha-o com um email válido.");
		document.meucadastro.shp_des_email.focus();
		return false;
	}
	
	if(!isCPF(document.meucadastro.shp_des_cpf.value)) {
		alert("O campo CPF é obrigatório. Por favor, preencha-o com um número de CPF válido.");
		document.meucadastro.shp_des_cpf.focus();
		return false;
	}

	if( (document.meucadastro.shp_dat_birthdate_dd.value=="") || (document.meucadastro.shp_dat_birthdate_mm.value=="") || (document.meucadastro.shp_dat_birthdate_aaaa.value=="") ) {
		alert("O campo Data de Nascimento é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_dat_birthdate_dd.focus();
		return false;
	}

	// Validação se a data está ok
	if(parseInt(document.meucadastro.shp_dat_birthdate_dd.value, 10)<=0 || parseInt(document.meucadastro.shp_dat_birthdate_dd.value, 10)>31) {
		alert("O campo dia preenchido está incorreto. Por favor, revise-o.");
		document.meucadastro.shp_dat_birthdate_dd.focus();
		return false;
	}

	if(parseInt(document.meucadastro.shp_dat_birthdate_mm.value, 10)<=0 || parseInt(document.meucadastro.shp_dat_birthdate_mm.value, 10)>12) {
		alert("O campo mês preenchido está incorreto. Por favor, revise-o.");
		document.meucadastro.shp_dat_birthdate_mm.focus();
		return false;
	}

	var anoCorrente;
	anoCorrente = new Date();
	anoCorrente = anoCorrente.getFullYear();

	if(parseInt(document.meucadastro.shp_dat_birthdate_aaaa.value, 10)<=1900 || parseInt(document.meucadastro.shp_dat_birthdate_aaaa.value, 10)>anoCorrente) {
		alert("O campo ano preenchido está incorreto. Por favor, revise-o.");
		document.meucadastro.shp_dat_birthdate_mm.focus();
		return false;
	}

	if(document.meucadastro.shp_des_loginname.value=="") {
		alert("O campo Login é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_loginname.focus();
		return false;
	}

	if(document.meucadastro.shp_des_password.value=="") {
		alert("O campo Senha é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_password.focus();
		return false;
	}

	if(document.meucadastro.shp_des_password.value!=document.meucadastro.shp_des_password2.value) {
		alert("O campo Senha precisa ser confirmado no campo 'Repita a senha' para ser cadastrado.");
		document.meucadastro.shp_des_password2.focus();
		return false;
	}

	if(document.meucadastro.shp_des_zipcode.value=="") {
		alert("O campo CEP é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_zipcode.focus();
		return false;
	}

	if(document.meucadastro.shp_des_county.value=="") {
		alert("O campo Bairro é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_county.focus();
		return false;
	}

	if(document.meucadastro.shp_des_city.value=="") {
		alert("O campo Cidade é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_city.focus();
		return false;
	}

	if(document.meucadastro.shp_des_address.value=="") {
		alert("O campo Endereço é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_address.focus();
		return false;
	}

	if(document.meucadastro.shp_des_number.value=="") {
		alert("O campo Número é obrigatório. Por favor, preencha.");
		document.meucadastro.shp_des_number.focus();
		return false;
	}

	return true;
}

function isCPF(cpf)
{
	var 
	    char_valido = 0, 
	    char_invalido = 0, 
	    digito1, 
	    digito2,
	    soma_digito1 = 0,
	    soma_digito2 = 0;
	
	if (cpf == '00000000000' || cpf == '11111111111' ||	cpf == '22222222222' || cpf == '33333333333' ||	cpf == '44444444444' || cpf == '55555555555' ||	cpf == '66666666666' || cpf == '77777777777' || cpf == '99999999999'){
		return false;
	}
			  	    
	if (cpf.length == 11)
	{	
		for (var i = 0; i <= cpf.length - 1; i++)
		{	
			if (cpf.charAt(i) >= '0' && cpf.charAt(i) <= '9')
			{
				char_valido = char_valido + 1;
			}
			else
			{
				char_invalido = char_invalido + 1;
			}
		}
		    
		if (char_valido == cpf.length)
		{
			for (i = 0; i < 9; i++)
			{
				soma_digito1 += (10 - i) * (eval(cpf.charAt(i)));
			}
			digito1 = 11 - (soma_digito1 % 11);
			        
			for (i = 0; i < 9; i++)
			{
				soma_digito2 += (11 - i) * (eval(cpf.charAt(i)));
			}
			soma_digito2 += 2 * (eval(cpf.charAt(9)));
			digito2 = 11 - (soma_digito2 % 11);
			        
			if ((soma_digito1 % 11) < 2)
			{
				digito1 = 0;
			}
			        
			if ((soma_digito2 % 11) < 2)
			{
				digito2 = 0;
			}
		        
			if (eval(cpf.charAt(9) != digito1) || eval(cpf.charAt(10) != digito2))
			{
				return false;
			}
		}
		else
		{
			return false;
		}	      
	}
	else
	{
		return false;
	}
	return true;
}

function isMail(str) {
    var oRegexp = new RegExp(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$/);
    if(!oRegexp.test(str)){
        return false;
    }
    
    return true;
}
