/* verifica o navegador */
function objXMLHttp()
{
    if (window.XMLHttpRequest){ // verifica o navegador Mozilla, Safari, ...
        var objetoXMLHttp = new XMLHttpRequest();
        return objetoXMLHttp;
    }
    else if (window.ActiveXObject)  { // verifica as versoes do IE
        var versoes = [ "MSXML2.XMLHttp.5.0",
                        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
                        "MSXML2.XMLHttp","Microsoft.XMLHttp"];
        for (var i = 0; i < versoes.length; i++)
        {
            try {
                var objetoXMLHttp = new ActiveXObject(versoes[i]);
                return objetoXMLHttp;
            } catch (ex){
                //nada aqui
            }
        }
        return false;
    }
}

/* envia os dados do form ASSINAR */
function enviarForm(form_id, field) {
    var url;
    var xmlhttp;

    xmlhttp = objXMLHttp();

    /* Os par�metros que ser�o enviados */
	//var change = field.id.substring(field.id.length -1, field.id.length);
    var change = field.id.replace('periodo_id','');
	var fieldss = 'produto_id='+change+'&'+field.id+'='+field.value;	
	
    url = "index.php?c=assinaturas&action=recalc&"+fieldss+"&blank=true";
    
    xmlhttp.open("POST",url,true);

    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){
	        var resp = xmlhttp.responseText;
			//var change = field.id.substring(field.id.length -1, field.id.length);
		
			document.getElementById('assina_valor' + change).innerHTML = "R$ " + resp;
        }
    }
    /* Envia os dados contidos na variavel "campos" */
    xmlhttp.send(fieldss);
	return false;
}

///* envia os dados do form Proposta */
//function enviarFormProposta(form_id) {
//    var url, campos;
//    var xmlhttp;
//
//    xmlhttp = objXMLHttp();
//
//    /* Os par�metros que ser�o enviados */
//    campos = salvaPost(form_id);
//
//    url =   "index.php?c=propostas&action=lista_produtos&"+campos+"&blank=true";
//
//    xmlhttp.open("POST",url,true);
//
//    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
//
//    xmlhttp.onreadystatechange = function() {
//        if (xmlhttp.readyState == 4){
//                var campos = xmlhttp.responseText;
//
//                /* Desfaz o urlencode */
//                campos = campos.replace(/\+/g," ");
//                campos = unescape(campos);
//        }
//    }
//    /* Envia os dados contidos na variavel "campos" */
//    xmlhttp.send(campos);
//    return false;
//}



function ValidaSalvaProposta(field)
{
    
    var fieldbasemsg_val = 'msg_val_';
    var field_id = (field.id) ? field.id : field.name;
    var vlr = field.value;
      
    var fieldss = 'field='+field_id+'&vlr='+vlr;  
    
    if( field_id.indexOf('nome_prod') == 0 ){
        var url = "index.php?c=propostas&action=validaSalvaQtde&"+fieldss+"&blank=true"; 
    }else{
        var url = "index.php?c=propostas&action=validaSalvaField&"+fieldss+"&blank=true";       
    }
   
    var xmlhttp = objXMLHttp();

    xmlhttp.open("POST",url,true);

    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){
            if(field.name == 'ddd' || field.name == 'tel') field_id = 'dddtel';
            document.getElementById(fieldbasemsg_val + field_id).innerHTML = xmlhttp.responseText;
            enviarFormProposta();
        }
    }
    /* Envia os dados contidos na variavel "campos" */
    xmlhttp.send(fieldss);

    return false;   
}

function enviarFormProposta()
{
    var form =  document.getElementById('form_propor');
    var i, fieldName, show_msg_val, msgName, msgTextVal, msg_val_aviso;

    var val_fileds = true;
    var show_msg_val = true;
    for( i=0; val_fileds && i < form.length; i++ ){
        fieldName = form[i].name;
        if(fieldName == 'ddd' || fieldName == 'tel') fieldName = 'dddtel';
        msgTextVal = document.getElementById('msg_val_'+fieldName).innerHTML;
        if ( msgTextVal.indexOf('Ok') == -1 ) val_fileds =  false;
        if( !form[i].value )  show_msg_val = false;       
    }
    
    if(show_msg_val) msg_val_aviso = msgValidacaoForm(val_fileds);
    else msg_val_aviso = '';

    document.getElementById('msg_val_aviso').innerHTML = msg_val_aviso;
    
//    TB DEVE SER ALTERADO  PARA EVITAR UM POST DESNECESSARIO!!!
//    var validacao = 1;
//    var confirmacao = 0;
//    if(val_fileds) val_fileds = envioProposta(validacao,confirmacao);
    
    return val_fileds;
}

function salvaPost(form_id){
    var form =  document.getElementById(form_id);
    var i,param;

    param = form[0].name + '=' + form[0].value;
    for( i=1; i < form.length; i++ ){
       if(form[i].name.indexOf('contrato') == -1)
        param += '&' + form[i].name + '=' + form[i].value;
    }
    
    return param;
}

/* mostra a msg de erro no preenchimento do campo */
function msgValidadeDoCampoForm(msgId)
{
    document.getElementById(msgId).innerHTML = '<span class="verdana_999999">verificando...</span>';

    var url = 'index.php?c=propostas&action=msg_validacao_campo&campo='+msgId+'&blank=true';
    var myAjax = new Ajax.Updater(msgId, url, {method: 'get'});

    msgValidadeDoForm(msgId);
}

/* mostra a msg de erro no preenchimento do formulario */
function msgValidadeDoForm()
{
    var val = true;
    var form = document.getElementById('form_propor');

    for( var i=0; i < form.length; i++ ){
       if( form[i].value == 0 ) val = false;
    }

    if(val){
        var id = 'msg_val_aviso';
        var url = 'index.php?c=propostas&action=msg_validacao_form&blank=true';
        var myAjax = new Ajax.Updater(id, url, {method: 'get'});
    }
}


function getCep() {
    var url;
    var xmlhttp;

    xmlhttp = objXMLHttp();

	var cep = document.getElementById('CEP').value;
    url =  "/cep.php?q="+cep;
		
    xmlhttp.open("GET", url, true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){
	        var msg_val = campo_Ok();
	        var resp = xmlhttp.responseText;
			if (resp != '' && resp != 'null') {
				var lala = eval(resp);
				for ( key in lala[0] ) {
					if ( document.getElementById(key) ) {
						if(key != 'CEP') document.getElementById(key).value = eval( "lala[0]." + key );
						//if (key != 'CEP') document.getElementById(key).readOnly  = true;
					} 
				}
				document.getElementById('LOG_NO_SEM_ACENTO').value = eval( "lala[0].LOG_TIPO_LOGRADOURO" ) + ' ' + eval( "lala[0].LOG_NO_SEM_ACENTO" ) ;
			}
        }else{
        	var msg_val = campo_carregando();
        }	
        document.getElementById('msg_val_cep').innerHTML = msg_val;
        document.getElementById('msg_val_logr').innerHTML = msg_val;
        document.getElementById('msg_val_bairro').innerHTML = msg_val;   
        document.getElementById('msg_val_estado').innerHTML = msg_val;       
    }
	xmlhttp.send(null);
	return false;
}

/*
 * Validacao de Form Newsletter
 */
function validaFieldsNewsLetter(objField)
{
	var val_field;
	var fieldName = replaceFieldName(objField.name);
	var msg_val_id = 'msg_val_'+fieldName;
	var fieldValue = objField.value;
    fieldValue = fieldValue.replace(/^(\s)*|(\s)*$/g, "");
    if(fieldName == 'nome' || fieldName == 'empresa') fieldValue = fieldValue.replace(/(\s)+/g, " ");
    else fieldValue = fieldValue.replace(/(\s)+/g, "");
	document.getElementsByName(objField.name)[0].value = fieldValue;
	
	switch(fieldName){
        case 'empresa':      
            val_field = fieldValue ? 1 : 2;//campo nao obrigatorio
            break;
		case 'nome':      
			var reNome = /^([a-zA-Z]([a-zA-Z. ])*){1,40}$/;
			val_field = fieldValue ? (reNome.test(fieldValue) ? 1 : 0) : 2;//campo nao obrigatorio
			break;
		case 'ddd':    
			var reDDD = /[0-9]{2}/;
			var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
			var tel = document.getElementsByName('newsletter[tel]')[0].value;
			val_field = (tel && fieldValue) ? (reTel.test(tel) ? 1 : 0) : ( (tel || fieldValue) ? -1 : 2 ); //campo nao obrigatorio
			val_field = (fieldValue) ? (reDDD.test(fieldValue) ? val_field : 0) : val_field; 
			msg_val_id = 'msg_val_dddtel';
			break;
		case 'tel':    
			var reDDD = /[0-9]{2}/;
			var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
			var ddd = document.getElementsByName('newsletter[ddd]')[0].value;
			val_field = (ddd && fieldValue) ? (reDDD.test(ddd) ? 1 : 0) : ( (ddd || fieldValue) ? -1 : 2 );//campo nao obrigatorio
			val_field = fieldValue ? (reTel.test(fieldValue) ? val_field : 0) : val_field; 
			msg_val_id =  'msg_val_dddtel';
			break;       
		case 'email':     
			var reEmail = /^([_0-9a-zA-Z-]+(\.?[_0-9a-zA-Z-]+)*@[0-9a-zA-Z]+[0-9a-zA-Z_-]*[.]{1}[a-zA-Z]{2,4}([.]{1}[a-zA-Z]{2,4})?)$/;
			val_field = fieldValue ? (reEmail.test(fieldValue) ? 1 : 0) : -1;//campo obrigatorio
			break;
		default: return;
	}
	msgValidacaoField(msg_val_id, val_field);
	validaFormNewsLetter(false);
}    

function validaFormNewsLetter(enviarForm){
    var fieldOk = 0;
    var fieldObligator = 0;
    var fieldInvalidate = 0;
    var urlparam = '';
    var val_form = true;
    
    var objForm = document.getElementById('FormCadastroNewsLetter');
    for( var i=0; i < objForm.length; i++ ){
        var fieldName = replaceFieldName(objForm[i].name);
        if(!urlparam) urlparam = fieldName+'='+objForm[i].value;
        else urlparam = urlparam +'&'+fieldName+'='+objForm[i].value;
        var valFieldName = fieldName;
        if(valFieldName == 'ddd' || valFieldName == 'tel') valFieldName = 'dddtel';
        var msgTextVal = document.getElementById('msg_val_'+valFieldName).innerHTML;
        if( msgTextVal.indexOf('Ok') == -1 && campoObrigNewsLetter(fieldName, objForm[i].value) ) val_form = false;
    }
    var msgDeAviso = document.getElementById('msgDeAvisoFormCadastroNewsLetter').innerHTML;
    if( enviarForm || msgDeAviso) msgValidacaoFormNewsLetter(val_form);    
    if(enviarForm && val_form) enviaFormNewsLetter(urlparam);
}

function campoObrigNewsLetter(fieldname, fieldValue){
	var val_field = (fieldValue) ? true : false;//Se campo nao for vazio ele passa a ser obrigatorio a validacao
	if(fieldname == 'email') val_field = true;
	return val_field;
}

function msgValidacaoFormNewsLetter(val_field){
   var msg_erro, msg_ok, msg_EmailVazio;
   
   //MENSAGENS DE AVISO
   msg_ok = 'Preenchimento correto, clique em Continuar.';
   msg_erro = 'Verifique o preenchimento dos campos!';

   //DEFINE COR DA MENSAGEM DE AVISO
   msg_erro = "<span class=\"form_invalido\">"+ msg_erro +"</span>";
   msg_ok = "<span class=\"form_valido\">" + msg_ok + "</span>";

   var msgValForm = "";
   if( val_field === false) msgValForm = msg_erro;
   if( val_field === true) msgValForm = msg_ok;
   document.getElementById('msgDeAvisoFormCadastroNewsLetter').innerHTML = msgValForm;
}

function enviaFormNewsLetter(urlparam)
{
    var url = "index.php?c=mandic&action=cadastroNewsLetter&blank=true"+urlparam; 
    
    var xmlhttp = objXMLHttp();
    xmlhttp.open("POST",url,true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    
    var textoJanela = document.getElementById('titulodajanela').innerHTML; 
    document.getElementById('titulodajanela').innerHTML = 'Aguarde....';
    document.getElementById('CadastroNewsLetter').innerHTML =  '<div class="conteudo_verdetalhe_load" align="center">'+ efeitoCarregando()+ '</div>';
    
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){
            document.getElementById('msgSucesso').style.display = 'block'; 
            document.getElementById('CadastroNewsLetter').style.display = 'none';
            document.getElementById('titulodajanela').innerHTML = textoJanela + '  >>  Cadastro enviado';
        }
    }
    xmlhttp.send(urlparam);
    return false;   
}

var MINIMO_DIGITOS_USERNAME = 3;
var MINIMO_DIGITOS_PASSWORD = 6;
function validaCadastroAssinar(field)
{
    //val_field com valor -1 para dados obrigatorios, 0 para dado invalidos, 1 para dados validos e 2 para dados nao obrigatorios  
    var val_field;
 
    var fieldName = field.name;
    var fieldValue = field.value;

    //Retira espacos em branco
    if( fieldName.indexOf('personalData') == 0 ){
	    fieldValue = fieldValue.replace(/^(\s)*|(\s)*$/g, "").replace(/(\s)+/g, " ");
	    document.getElementsByName(field.name)[0].value = fieldValue;
    }
    var fieldName = replaceFieldName(fieldName);
    var msg_val_id = 'msg_val_'+fieldName;
    
    switch(fieldName){
        //Cadastro
        case 'nome':      
						var reNome = /^([a-zA-Z]([a-zA-Z. ])*){1,40}$/;
						val_field = fieldValue ? (reNome.test(fieldValue) ? 1 : 0) : -1;
						break;

        case 'sobrenome': 
						var reNome = /^([a-zA-Z]([a-zA-Z. ])*){1,40}$/;
						val_field = fieldValue ? (reNome.test(fieldValue) ? 1 : 0) : -1;
						break;

        case 'cpf':       
						var regCpf = /^([0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}|[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2})$/;                            
						val_field = fieldValue ? (regCpf.test(fieldValue) ? valida_CPF_CNPJ(fieldValue) : 0) : -1;
						break;

        case 'cep':       
						var reCep = /^([0-9]{2}\.?[0-9]{3}\-?[0-9]{3})$/;
						val_field = fieldValue ? (reCep.test(fieldValue) ? 1 : 0) : -1;
						
						//Com o CEP valido preenche o endere�o
						if(val_field == 1){
							//val_field = 2;
							getCep();
						}

//                        //Apagar e retira somente leitura nos campos qdo o cep for vazio
//                        if(val_field == -1){
//
//                          var fieldId_clean = 'LOG_NO_SEM_ACENTO';
//                              document.getElementById(fieldId_clean).readOnly  = false;
//                              document.getElementById(fieldId_clean).value = '';
//                              msgValidacaoField('msg_val_logr',-1);
//
//                          var fieldId_clean = 'BAI_NO_ABREV';
//                              document.getElementById(fieldId_clean).readOnly  = false;
//                              document.getElementById(fieldId_clean).value = '';
//                              msgValidacaoField('msg_val_bairro',-1); 
//                          var fieldId_clean = 'UFE_SG';
//                              document.getElementById(fieldId_clean).readOnly  = false;
//                              document.getElementById(fieldId_clean).value = '';
//                              msgValidacaoField('msg_val_estado',-1);
//                        }
						break; 

        case 'logr':      
						val_field = fieldValue ? 1 : -1;
						break;
        
        case 'numero':    
//						var reNumero = /[0-9a-zA-Z]+[^a-zA-Z]/;
//						val_field = fieldValue ? (reNumero.test(fieldValue) ? 1 : 0) : -1;
						val_field = fieldValue ? 1 : -1;
						break;

        case 'compl':     
						val_field = fieldValue ? 1 : 2;//campo nao obrigatorio
						break;
        
        case 'bairro':    
						val_field = fieldValue ? 1: -1;
						break;
        
        case 'cidade':    
						val_field = fieldValue ? 1: -1;                
						break;
        
        case 'estado':    
						val_field = fieldValue ? 1 : -1;       
						break;
        
        case 'dddRes':    
						var reDDD = /[0-9]{2}/;
						var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
						var telRes = document.getElementsByName('personalData[telRes]')[0].value;
						val_field = (telRes && fieldValue) ? (reTel.test(telRes) ? 1 : 0) : -1; 
						val_field = (fieldValue) ? (reDDD.test(fieldValue) ? val_field : 0) : val_field; 
						msg_val_id = 'msg_val_dddtelRes';
						break;
 
        case 'telRes':    
						var reDDD = /[0-9]{2}/;
						var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
						var dddRes = document.getElementsByName('personalData[dddRes]')[0].value;
						val_field = (dddRes && fieldValue) ? (reDDD.test(dddRes) ? 1 : 0) : -1;
						val_field = fieldValue ? (reTel.test(fieldValue) ? val_field : 0) : val_field; 
						msg_val_id =  'msg_val_dddtelRes';
						break;       

        case 'dddCel':    
						var reDDD = /[0-9]{2}/;
						var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
						var telCel = document.getElementsByName('personalData[telCel]')[0].value;
						val_field = (telCel && fieldValue) ? (reTel.test(telCel) ? 1 : 0) : -1; 
						//campo nao obrigatorio
						val_field = (fieldValue) ? (reDDD.test(fieldValue) ? val_field : 0) : (telCel ? val_field : 2);
						msg_val_id = 'msg_val_dddtelCel';
						break;
 
        case 'telCel':    
						var reDDD = /[0-9]{2}/;
						var reTel = /^([0-9]{4}\-?[0-9]{4})$/;
						var dddCel = document.getElementsByName('personalData[dddCel]')[0].value;
						val_field = (dddCel && fieldValue) ? (reDDD.test(dddCel) ? 1 : 0) : -1;
						//campo nao obrigatorio
						val_field = fieldValue ? (reTel.test(fieldValue) ? val_field : 0) : (dddCel ? val_field : 2);
						msg_val_id =  'msg_val_dddtelCel';
						break;    

        case 'email':     
						var reEmail = /^([_0-9a-zA-Z-]+(\.?[_0-9a-zA-Z-]+)*@[0-9a-zA-Z]+[0-9a-zA-Z_-]*[.]{1}[a-zA-Z]{2,4}([.]{1}[a-zA-Z]{2,4})?)$/;
						val_field = fieldValue ? (reEmail.test(fieldValue) ? 1 : 0) : -1;
						break;

        //Dadoslogin 
        case 'username':  
						var reUsername = /^([_a-z0-9-]+)(\.?[_a-z0-9-]+){0,40}$/;
						var UsernameLength = fieldValue.length;
						val_field = fieldValue ? (reUsername.test(fieldValue) && (UsernameLength >= MINIMO_DIGITOS_USERNAME) ? 1 : 0) : -1;
						break;

        case 'senha':     
						var SenhaLength = fieldValue.length;
						val_field = fieldValue ? ( (SenhaLength >= MINIMO_DIGITOS_PASSWORD) ? 1 : 0) : -1;

						var senha_confValue = document.getElementsByName('loginData[senha_conf]')[0].value;
						if(senha_confValue){
						    var val_fieldSenha_conf = senha_confValue ? (senha_confValue == fieldValue ? 1 : 0) : -1; 
						    msgValidacaoField('msg_val_senha_conf', val_fieldSenha_conf);
						}
//			            //verifica vulnerabilidade da senha
//			            var reLetrasLower = /[a-z]/;
//			            var reLetrasUpper = /[A-Z]/;
//			            var reNumeros = /[0-9]/;
//			            var reCaracteres = /[^a-zA-Z0-9]/;           
//						//var reSenhaMenosVulneravel = /[0-9a-zA-Z]?[@#\$]+[0-9a-zA-Z]?/;
//
//			            var vulnerabilidade = 100;
//			            vulnerabilidade -= reLetrasLower.test(fieldValue) ? 20 : 0;
//			            vulnerabilidade -= reLetrasUpper.test(fieldValue) ? 20 : 0;
//			            vulnerabilidade -= reNumeros.test(fieldValue) ? 20 : 0;
//			            vulnerabilidade -= reCaracteres.test(fieldValue) ? 20 : 0;
//						
//						var styleDisplay = 'none';
//						if( vulnerabilidade > 20){
//						    styleDisplay = 'block';
//							var msgAvisoVulnerabilidade = 'A senha digitada &eacute; muito vulner&aacute;vel. Sugerimos que voc&ecirc; combine caracteres mai&uacute;sculos e min&uacute;sculos com n&uacute;meros'; 
//							msgAvisoVulnerabilidade = '<span style="color:red">'+msgAvisoVulnerabilidade+'</span>';
//							
//							document.getElementById('msgAvisoVulnerabilidade').innerHTML = msgAvisoVulnerabilidade;
//							document.getElementById('vulnerabilidade').style.width = vulnerabilidade+'%';
//							document.getElementById('vulnerabilidade_vlr').innerHTML = vulnerabilidade;
//                        } 
//                        val_field = (vulnerabilidade > 20) ? 0: 1;
//						  document.getElementById('combo_vulnerabilidade').style.display = styleDisplay;
						break;

        case 'senha_conf':
						var senhaValue = document.getElementsByName('loginData[senha]')[0].value;
						val_field = fieldValue ? (fieldValue == senhaValue ? 1 : 0) : -1;
						break;

        case 'pergunta':  
                        val_field = fieldValue ? 1 : -1;  
                        break;

        case 'resposta':  
                        val_field = fieldValue ? 1 : -1;  
						break;
        
        default: val_field = 2;//campo nao obrigatorio
    }
    var result = msgValidacaoField(msg_val_id, val_field);
    msgValidacaoFormCadastro(field.name);//Verifica msg de validacao do Form 
    return result;//Envia msg de validacao do campo
}

function replaceFieldName(fieldName){
    return fieldName.replace(/[a-zA-Z,0-9]*\D\[|\]/g, '');  
}





/*
 * Valida CPF e CNPJ
 * Esta funcao deve retorna 1 para true e 0 para false
*/
function valida_CPF_CNPJ(valor)
{
    //return true;
    var validacao = 0;
    var veralert = false;
    
    //Retira espa�os e deixa apenas numeros
    var valor = valor.replace(/\D/g, "").replace(/\s/, "");
    
    var n_digitos_valor = valor.length;
    var n_digitos_cpf = 11;
    var n_digitos_cnpj = 14;
    if( (n_digitos_valor != n_digitos_cpf) && (n_digitos_valor != n_digitos_cnpj) ){
         if(veralert) alert(n_digitos_valor + ' digitos, quantia invalida !!!');
        
        return 0;
    }
    
    //Verifica se � CPF ou CNPJ
    var isCPF = (n_digitos_valor == n_digitos_cpf);
    var isCNPJ = (n_digitos_valor == n_digitos_cnpj);
    var base_calculo_algUnico = isCPF ? n_digitos_cpf : 8;
    
	//Verifiaca se os digitos s�o iguais
    var algUnico = true;
    for (var i=1; algUnico && i < base_calculo_algUnico; i++)
    {
        algUnico = ( valor.charAt(i-1) == valor.charAt(i) );
    }
    if (algUnico){
        if(veralert) alert('digitos com algarismos unicos');
        return 0;    
    }
    
    //Calcula os valores dos dois digtos verificadores para o CPF
    if( isCPF ){
        var soma1 =  (valor.charAt(0) * 10) +
                 (valor.charAt(1) * 9) +
                 (valor.charAt(2) * 8) +
                 (valor.charAt(3) * 7) +
                 (valor.charAt(4) * 6) +
                 (valor.charAt(5) * 5) +
                 (valor.charAt(6) * 4) +
                 (valor.charAt(7) * 3) + 
                 (valor.charAt(8) * 2); 
        var resto = soma1 % 11; 
        var digito1 = resto < 2 ? 0 : 11 - resto; 
    
        var soma2 = (valor.charAt(0) * 11) + 
                (valor.charAt(1) * 10) + 
                (valor.charAt(2) * 9) + 
                (valor.charAt(3) * 8) + 
                (valor.charAt(4) * 7) + 
                (valor.charAt(5) * 6) + 
                (valor.charAt(6) * 5) + 
                (valor.charAt(7) * 4) + 
                (valor.charAt(8) * 3) +  
                (valor.charAt(9) * 2); 
        var resto = soma2 % 11; 
        var digito2 = resto < 2 ? 0 : 11 - resto;
        validacao = ((valor.charAt(9) == digito1) && (valor.charAt(10) == digito2)) ? 1 : 0;

        if(veralert){
            if(!validacao) alert('CPF Invalido !!!');
            else alert('CPF Valido !!!');  
        }    
        return  validacao;   
    }
    
    //Calcula os valores dos dois digtos verificadores para o CNPJ
    if ( isCNPJ ){
        soma1 = (valor.charAt(0) * 5) + 
                (valor.charAt(1) * 4) + 
                (valor.charAt(2) * 3) + 
                (valor.charAt(3) * 2) + 
                (valor.charAt(4) * 9) + 
                (valor.charAt(5) * 8) + 
                (valor.charAt(6) * 7) + 
                (valor.charAt(7) * 6) + 
                (valor.charAt(8) * 5) + 
                (valor.charAt(9) * 4) + 
                (valor.charAt(10) * 3) + 
                (valor.charAt(11) * 2); 
		
        resto = soma1 % 11; 
        digito1 = resto < 2 ? 0 : 11 - resto; 

        soma2 = (valor.charAt(0) * 6) + 
                (valor.charAt(1) * 5) + 
                (valor.charAt(2) * 4) + 
                (valor.charAt(3) * 3) + 
                (valor.charAt(4) * 2) + 
                (valor.charAt(5) * 9) + 
                (valor.charAt(6) * 8) + 
                (valor.charAt(7) * 7) + 
                (valor.charAt(8) * 6) + 
                (valor.charAt(9) * 5) + 
                (valor.charAt(10) * 4) + 
                (valor.charAt(11) * 3) + 
                (valor.charAt(12) * 2); 
        resto = soma2 % 11; 
        digito2 = resto < 2 ? 0 : 11 - resto; 
       
        validacao = ((valor.charAt(12) == digito1) && (valor.charAt(13) == digito2)) ? 1 : 0; 
        
        if(veralert){
            if(!validacao) alert('CNPJ Invalido !!!');
            else alert('CNPJ Valido !!!');  
        }        
        return  validacao;
    }
    return false;
}

function msgValidacaoField(msg_val_field_id,val_field){
    switch(val_field){ 
        case -1: msg = campo_Obrigatorio(); break;
        case  0: msg = campo_Invalido();break;
        case  1: msg = campo_Ok(); break;
        case  2: msg = campo_naoObrigatorio();break;
    } 
    document.getElementById(msg_val_field_id).innerHTML = msg;
    return val_field > 0 ? true : false;
}

function campo_Ok(){
    var msg = 'Ok';
    return "<span class=\"form_valido\">"+msg+"</span>";
}
function campo_Vazio(){
    var msg = 'Campo vazio';
    return "<span class=\"form_vazio\">"+msg+"</span>";
}
function campo_Obrigatorio(){
    var msg = '*';
    return "<span class=\"verdana_FC8200\">"+msg+"</span>";
}

function campo_Invalido(){
    var msg = 'Dado Inv&aacute;lido';
    return "<span class=\"form_invalido\">"+msg+"</span>";
}
function campo_naoObrigatorio(){
    var msg = '';
    return msg;
}
function campo_carregando(){
    var msg = 'carregando...';
    return msg;
}

//VERIFICA MENSAGEM DA VALIDACAO DO FORMULARIO
function msgValidacaoForm(val){
    var msg_erro, msg_ok;
   
    //MENSAGENS DE AVISO
    msg_erro = 'Verifique o preenchimento dos campos !';
    msg_ok = 'Seus dados foram preenchidos corretamente. ';

    //DEFINE COR DA MENSAGEM DE AVISO
    msg_erro = "<span class=\"form_invalido\">"+ msg_erro +"</span>";
    msg_ok = "<span class=\"form_valido\">" + msg_ok + "</span>";

    return val ? msg_ok : msg_erro;
}

//var val_cadastro = new Array();
function enviaFormIdentificacao(objForm){
    var formId = objForm.id;
    var field = new Array();
    var form =  document.getElementById(formId);
    var val_form = true;
    var regexField;
   
    switch(formId){
	    case 'FormCadastro'  : regexField = /personalData/; break;
        case 'FormDadosLogin': regexField = /loginData/; break;
    }
    for( var i=0; val_form && i < form.length; i++ ){
        if( regexField.test(form[i].name) ){
	        var fieldName = replaceFieldName(form[i].name);
	        var valFieldName = fieldName;
	        if(valFieldName == 'dddRes' || valFieldName == 'telRes') valFieldName = 'dddtelRes';
	        if(valFieldName == 'dddCel' || valFieldName == 'telCel') valFieldName = 'dddtelCel';
	        var msgTextVal = document.getElementById('msg_val_'+valFieldName).innerHTML;
            if( msgTextVal.indexOf('Ok') == -1 && CampoObrigatorioCadastro(fieldName, form[i].value) ) val_form =  false;
        }	        
    }
    document.getElementById('msgDeAviso'+formId).innerHTML = msgValidacaoForm(val_form);
    return val_form;
}

/* seta msg de boas vindas no CADASTRO*/
function msgBoasVindasCadastro(){
    var url = "index.php?c=assinaturas&action=msgBoasVindasCadastro&blank=true";
    var xmlhttp;
    xmlhttp = objXMLHttp();
    xmlhttp.open("GET",url,true);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4){
            document.getElementById('assina_boasvindas').style.display= 'none';
            document.getElementById('assina_cadastro').style.display= 'block';
        }
    }
    xmlhttp.send(null);
    return false;
}

function CampoObrigatorioCadastro(fieldname, fieldValue){
    var val_field;

	switch(fieldname){
		case 'compl' :  val_field = fieldValue ? true : false; break;
		case 'dddCel':  val_field = fieldValue ? true : false; break;
		case 'telCel':  val_field = fieldValue ? true : false; break;
		default: val_field = true;
	}//Se campo nao for vazio ele passa a ser obrigatorio a validacao
    return val_field;
}

function msgValidacaoFormCadastro(fieldName){
    var formId, fieldName, valFieldName, msgTextVal;
    switch(true){
        case fieldName.indexOf('personalData') > -1: formId = 'FormCadastro';break;
        case fieldName.indexOf('loginData') > -1: formId = 'FormDadosLogin'; break;
    }
    var fieldOk = 0;
    var fieldObligator = 0;
    var fieldInvalidate = 0;
    var val_form =  true;
    var objForm = document.getElementById(formId);
    for( var i=0; i < objForm.length; i++ ){
        fieldName = replaceFieldName(objForm[i].name);
        valFieldName = fieldName;
        if(valFieldName == 'dddRes' || valFieldName == 'telRes') valFieldName = 'dddtelRes';
        if(valFieldName == 'dddCel' || valFieldName == 'telCel') valFieldName = 'dddtelCel';        
		
		msgTextVal = document.getElementById('msg_val_'+valFieldName).innerHTML;
		if( msgTextVal.indexOf('Ok') == -1 && CampoObrigatorioCadastro(fieldName,objForm[i].value) ) val_form =  false;
		if( msgTextVal.indexOf('Ok') > 0 ) fieldOk = fieldOk + 1;
		if( msgTextVal.indexOf('Dado Inv') > 0 ) fieldInvalidate = fieldInvalidate + 1;
		if( CampoObrigatorioCadastro(fieldName, objForm[i].value) ) fieldObligator = fieldObligator + 1;
    }
    if( (fieldObligator == fieldOk) || (fieldInvalidate > 0) )
        document.getElementById('msgDeAviso'+formId).innerHTML = msgValidacaoForm(val_form);	
    else
       document.getElementById('msgDeAviso'+formId).innerHTML = '';
}
