function cpf_valido(p)
{
	if (p.length == 14)
		return true;

        if (p.length != 11)
                return false;

	// Tive que usar charAt() ao inves de slit() por causa que o konqueror
	// nao manipula slit() corretamente
        soma1 = ((p.charAt(0) * 10) + (p.charAt(1) * 9) + (p.charAt(2) * 8) +
                (p.charAt(3) * 7) + (p.charAt(4) * 6) + (p.charAt(5) * 5) +
                (p.charAt(6) * 4) + (p.charAt(7) * 3) + (p.charAt(8) * 2));

        resto = soma1 % 11;
        digito1 = (resto < 2) ? 0 : (11 - resto);

        soma2 = ((p.charAt(0) * 11) + (p.charAt(1) * 10) + (p.charAt(2) * 9) +
                (p.charAt(3) * 8) + (p.charAt(4) * 7) + (p.charAt(5) * 6) +
                (p.charAt(6) * 5) + (p.charAt(7) * 4) + (p.charAt(8) * 3) + (p.charAt(9) * 2));

        resto = soma2 % 11;
        digito2 = (resto < 2) ? 0 : (11 - resto);

        return ((p.charAt(9) == digito1) && (p.charAt(10) == digito2));
}

function email_valido(email)
{
	if (email.indexOf("@") == -1) {
		return false;
	}

	if (email.indexOf(".") == -1) {
		return false;
	}

	return true;
}

function valida_form_cadastro(form) {
	if (form.nome.value == "") {
		alert("É necessário informar o seu nome");
		form.nome.focus();
		return false;
	}

	if (form.email.value == "") {
		alert("É necessário informar o seu endereço de e-mail");
		form.email.focus();
		return false;
	}

	if (!email_valido(form.email.value)) {
		alert("O e-mail informado está incorreto");
		form.email.focus();
		return false;
	}

	if (form.email.value != form.confirma_email.value) {
		alert("O e-mail não confere com o campo confirmação do e-mail");
		form.confirma_email.focus();
		return false;
	}

	if (form.sexo.value == "") {
		alert("É necessário informar o seu sexo");
		form.sexo.focus();
		return false;
	}
/*
	if (form.endereco.value == "") {
		alert("É necessário informar o seu endereço");
		form.endereco.focus();
		return false;
	}
*/
	if (form.pais.selectedIndex == 0) {
		alert("É necessário informar o Pais");
		form.pais.focus();
		return false;
	}

	if (form.estado.selectedIndex == 0) {
		alert("É necessário informar o Estado");
		form.estado.focus();
		return false;
	}

	if (form.cidade.value == "") {
		alert("É necessário informar o nome da cidade");
		form.cidade.focus();
		return false;
	}
/*
	if (form.cep.value == "") {
		alert("É necessário informar o CEP");
		form.cep.focus();
		return false;
	}

	if (form.cep.value.length != 8) {
		alert("Cep incorreto. Digite apenas os 8 DÍGITOS");
		form.cep.focus();
		return false;
	}
	
	if (form.ddd_telefone.value == "") {
		alert("É necessário informar o DDD do telefone da sua região");
		form.ddd_telefone.focus();
		return false;
	}

	if (form.telefone.value == "") {
		alert("É necessário informar o telefone");
		form.telefone.focus();
		return false;
	}

	if (form.cpf.value)	{
		if (!cpf_valido(form.cpf.value)) {
			alert("O número do CPF ou CNPJ não é válido. Por favor digite apenas números.");
			form.cpf.focus();
			return false;
		}
	}

	if (form.senha.value == "") {
		alert("É necessário informar uma senha");
		form.senha.focus();
		return false;
	}

	if (form.senha2.value == "") {
		alert("É necessário re-digitar a senha");
		form.senha2.focus();
		return false;
	}

	if (form.senha.value !=  form.senha2.value){
		alert("A confirmação da senha não é válida");
		form.senha2.focus();
		return false;
	}
	
	if (form.dia.value == "")
	{
		alert("Informe o dia do seu nascimento");
		return false;
	}
	
	if (form.mes.value == "")
	{
		alert("Informe o mes do seu nascimento");
		return false;
	}
	
	if (form.ano.value == "")
	{
		alert("Informe o ano do seu nascimento");
		return false;
	}
*/	
	return true;
}

