
// VALIDA TAMANHO DA STRING
function WSsize(obj,size){
    var stri = new String(obj.value);
         if ( stri.length < size ){
                 return false;
         }
         return true;
}

// VALIDA NÚMEROS NA STRING
function WSnum(obj){
     var str = new String(obj.value);
     var bOk = 1;
     for (i = 0; i < str.length; i++){
             if ( str.substring(i,i+1) < "0" ||  "9" < str.substring(i,i+1) ){
                     i = str.length;
                     bOk = 0;
             }
     }
     if (bOk == 0)        {
             return false;
     }
     return true;
}

// VALIDA E-MAIL
function WSemail(obj){
     var invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
     if ( obj.length == 0 )	{
     	return false;
     }
     if (invalid.test( obj ) == false) {
     	return false;
     }     
     return true;
}

function limpa_string(S){
	// Deixa so' os digitos no numero
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	} //for

	return temp
}
// fim da funcao


function valida_CGC(s)
{
	if ( s.length != 14){
		return false;
	}
	var i;
	s = limpa_string(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
	return true;
}


// VALIDA DADOS
function validaPJ( formulario ){
    d = formulario;
    // dados cadastrais
    
    // RAZAO SOCIAL
    if ( !WSsize(d.razao_social,4) ){
        alert("Você deve informar a Razão Social!");
        d.razao_social.focus();
        return false;
    }
    // NOME FANTASIA
    if ( !WSsize(d.nome_fantasia,4) ){
        alert("Você deve informar o Nome Fantasia!");
        d.nome_fantasia.focus();
        return false;
    }
    // RAMO ATIVIDADE
    if ( !WSsize(d.ramo,4) ){
        alert("Você deve informar o Ramo de Atividade!");
        d.ramo.focus();
        return false;
    }
    // CONTATO
    if ( !WSsize(d.contato,4) ){
        alert("Você deve informar a Pessoa para Contato!");
        d.contato.focus();
        return false;
    }
    // TRANSPORTADORA
    if ( !WSsize(d.transportadora,4) ){
        alert("Você deve informar a Transportadora e o telefone!");
        d.transportadora.focus();
        return false;
    }
    // ENDEREÇO
    if ( !WSsize(d.endereco,4) ){
        alert("Você deve informar o endereço!");
        d.endereco.focus();
        return false;
    }
    // BAIRRO
    if ( !WSsize(d.bairro,3) ){
        alert("Você deve informar o bairro!");
        d.bairro.focus();
        return false;
    }
    // CIDADE
    if ( !WSsize(d.cidade,2) ){
        alert("Você deve informar a Cidade!");
        d.cidade.focus();
        return false;
    }
    // ESTADO
    if( d.estado.value == "UF" ){
        alert("Você deve informar o Estado!");
        d.estado.focus();
        return false;
    }
    // CEP
    if ( !WSsize(d.cep,8) ){
        alert("Você deve informar o CEP!\nEx.: 99999000\nNão utilize '-'");
        d.cep.focus();
        return false;
    }
    if ( !WSnum(d.cep) ){
        alert("Você deve informar o CEP!\nEx.: 99999000\nNão utilize '-'");
        d.cep.focus();
        return false;
    }    
    // TELEFONE
    if ( !WSsize(d.telefone,9) ){
        alert("Você deve informar o DDD e o telefone!");
        d.telefone.focus();
        return false;
    }
    // CNPJ
    if ( !valida_CGC(d.cnpj.value) ){
        alert("CNPJ inválido!\nNão utilize pontuação");
        d.cnpj.focus();
        return false;
    }
    // INSC. EST.
    if ( !WSsize(d.insc_est,6) ){
        alert("Você deve informar a Inscrição Estadual");
        d.insc_est.focus();
        return false;
    }
    // E-MAIL
    if ( !WSemail(d.email.value) ){
        alert("Você deve informar o e-mail!");
        d.email.focus();
        return false;
    }
    // SENHA
    if ( !WSsize(d.senha,3) ){
        alert("Você deve informar a senha!");
        d.senha.focus();
        return false;
    }

    return true;

} // fim validaPJ()


