/************************************************* SCRIPTS COMUNS A VARIAS PAGINAS **************************************************/ /** * Declaracao de constantes. */ var CODIGO_BRASIL = 3034; var MAIORIDADE_CIVIL = 18; $(function() { /** * Aumentar/dimuir tamanho da fonte (require store.js e rv-query-fontsize.min.js) */ $.rvFontsize({ targetSection: '#corpo', variations: 10, controllers: { store: true, apend: false } }); testarContrasteHabilitado(); /** * Colocar letras das caixas de texto em maiusculo. * Atencao: isso nao faz com que grave as informacoes com as letras maiusculas. */ $('input[type=text]').val(function() { return this.value.toUpperCase(); }); /** * Mascaras para inputs (require jquery.mask.min.js). */ //Funcao para telefone aceitar numeros com oito ou nove digitos var noveDigitos = function(val) { return val.replace(/\D/g, '').length === 9 ? '00000-0000' : '0000-00009'; }, noveDigitosOpcoes = { onKeyPress : function(val, e, field, options) { field.mask(noveDigitos.apply({}, arguments), options); } }; $('.date').mask("00/00/0000", {placeholder: "__/__/____"}); $('.cep').mask('00000-000', {placeholder: "_____-___"}); $('.telefone').mask(noveDigitos, noveDigitosOpcoes); $('.titulo').mask('#00/00', {reverse: true, placeholder: "___________-__"}); $('.cpf').mask('000.000.000-00', {reverse: true, placeholder: "___.___.___-__"}); $('.protocolo').mask('0.0000.0000000000', {reverse: false, placeholder: "_.____.__________"}); $('.passaporte').mask("AA000000", {'translation': { A: {pattern: /[A-Za-z]/} } }); /** * Esconde mensagem de erro se estiver em branco. */ if ($(".erro").length){ if ($(".erro").html().trim() == "") { $(".erro").hide(); } else { $(".erro").removeClass("hidden"); $(".erro").show(); } } if ($(".sucesso").length) { if ($(".sucesso").html().trim() == "") { $(".sucesso").hide(); } else { $(".sucesso").removeClass("hidden"); $(".sucesso").show(); } } /** * Todo campo que tem a classe obrigatorio, tera adicionada a propriedade Aria-required = true. * Isso e devido a limitacao do JSF que nao reconhece essa propriedade. */ if($(".obrigatorio")){ $(".obrigatorio").attr('aria-required', true); } $("#email2").hide(); $("#pote2").append(""); $("#pote2").append(""); }); function aplicarAltoContraste(){ constraste(); if ($("#corpo").hasClass("contraste")) { store.set('guardarContraste', 'true'); } else { store.set('guardarContraste', 'false'); } } function testarContrasteHabilitado() { if (store.get('guardarContraste') == 'true') { constraste(); } } function constraste() { $("body, body *").toggleClass('contraste'); $(".navbar, .navbar *").removeClass('contraste'); $(".nav, .nav *").removeClass('contraste'); $(".row, .row>*").removeClass('contraste'); $(".obrigatorio, .obrigatorio *").removeClass('contraste'); $(".popover, .popover *").css('background-color', '#000'); $(".popover, .popover *").css('color', '#FFF'); } /** * Foco no campo especificado no data-focus de cada aba. */ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { var target = $(e.target).attr('data-focus'); $(target).focus(); }); /** * Limpar todos os campos do form (limitado aos objetos exibidos na tela) * Inicializa as caixas de selecao de pais com "BRASIL" (class="listaPaises"). */ $('.limpar').click(function() { $(':input').not(':button, :submit, :reset, :hidden, .not-reset').removeAttr('checked').removeAttr('selected').not(':checkbox, :radio, .naoLimpar').val(''); $('#nomeCompletoMontado, #nomeInformado, #sobrenomeInformado, #dataNascimentoInformado, ' + '#filiacao1Informado, #filiacao2Informado, #sexoInformado, #cpfInformado, #naturalidadeInformado, #nacionalidadeInformado').text(''); $('.listaPaises').val(CODIGO_BRASIL).change(); $(".erro").hide(); $(':input').not(':button, :submit, :reset, :hidden, .not-reset').removeAttr('checked').removeClass("errocampo"); }); /** * Eliminar zeros. * @param s * @returns string sem os zeros */ function stripZeros(s){ return s.replace(/^0+/, ''); } function desabilita($campo) { $campo.prop("disabled", true); $campo.val(""); } /** * Converte uma string para data. * @param $stringData * @returns {Date} */ function parseToDate($stringData) { var arrayData = $stringData.val().split("/"); var dia = parseInt(stripZeros(arrayData[0])); var mes = parseInt(stripZeros(arrayData[1])); var ano = parseInt(stripZeros(arrayData[2])); var formatoData = new Date(ano, mes - 1, dia); return formatoData; } /** * Deixa o campo invisivel. * @param $campo */ function ocultarCampo($campo) { $campo.hide(); } function validaHumano(){ if ($("#email1").length){ defaultEmail1 = $("#email1").prop('defaultValue'); defaultEmail2 = $("#email2").prop('defaultValue'); defaultUrl = $("#url").prop('defaultValue'); valEmail1 = $("#email1").val(); valEmail2 = $("#email2").val(); valUrl = $("#url").val(); if (defaultEmail1 == "" && defaultEmail2 == "" && defaultUrl == ""){ if (valEmail1 == "" && valEmail2 == "" && valUrl == ""){ return true; } } } return false; } /** * Validacao do CPF. * @param cpf * @returns {Boolean} */ function valida_cpf(cpf) { var numeros, digitos, soma, i, resultado, digitos_iguais; digitos_iguais = 1; if (cpf.length < 11) return false; for (i = 0; i < cpf.length - 1; i++) if (cpf.charAt(i) != cpf.charAt(i + 1)) { digitos_iguais = 0; break; } if (!digitos_iguais) { numeros = cpf.substring(0,9); digitos = cpf.substring(9); soma = 0; for (i = 10; i > 1; i--) soma += numeros.charAt(10 - i) * i; resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(0)) return false; numeros = cpf.substring(0,10); soma = 0; for (i = 11; i > 1; i--) soma += numeros.charAt(11 - i) * i; resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(1)) return false; return true; } else return false; } /** * Verifica se a data possui a quantidade de caracteres minima e se e menor ou igual a data atual. * @param $data * @param label */ function validarData($data, label) { var dataConvertida = ""; var dataAtual = new Date(); if (!isCampoEmBranco($data) && $data.val().length < 10) { mensagem += "
" + frase + "
" + mensagem + "
"; $erro.html(conteudo); $erro.show(); if ($erro.hasClass("hidden")) { $erro.removeClass("hidden"); } return false; } $erro.hide(); return true; } /** * Salta a navegacao para uma ancora (acessibilidade). * @param nomeancora */ function irParaAncora(nomeancora){ var target_offset = $("#" + nomeancora).offset(); var target_top = target_offset.top; $('html, body').animate({ scrollTop: target_top }, 0); } /** * Voltar para a pagina anterior. * @returns {Boolean} */ function voltar(){ parent.history.back(); return false; } /** * Redireciona para determinado metodo definido no struts.xml. * @param nome do metodo (string) */ function setDispatcher(method){ $('#dispatcher').val(method); } /** * Seta a validacao. * @param validate */ function setValidate(validate){ $("#validate").val(validate); } /** * Imprimir o conteudo da tela. */ function imprimirTela() { window.print(); } /** * Imprimir PDF exibido na tela. * @param nomeFrame */ function imprimirPdf(nomeFrame) { zoomIframe(nomeFrame); frames[nomeFrame].focus(); frames[nomeFrame].print(); } function zoomIframe(nomeFrame){ $frame = $(nomeFrame); if($.browser.msie) { $frame.contents().find("body").css({ //IE 9 'msTransform' : 'scale(1.15, 1.15)', //IE Legace 'zoom' : '110%', //Ajuste de posicionamento 'position' : 'absolute', 'margin-left' : '-20px', 'margin-top' : '-20px' }); } else{ //da um 'zoom' na GRU para sair em um tamanho mais adequado para a impress�o. $frame.contents().find("body").css({ //Mozilla 'MozTransform' : 'scale(1.15, 1.15)', //Chrome 'WebkitTransform' : 'scale(1.15, 1.15)', //Ajuste de posicionamento 'position' : 'absolute', 'left' : '3%', 'top' : '4%' }); } } /** * Fechar janela. */ function fecharJanela() { window.close(); } /** * Tempo limite para a operacao atingido. * @param xmlhttp */ function timeout(xmlhttp){ xmlhttp.abort(); alert("O servidor demorou demais a responder, tente novamente."); } /** * Ajax. * @param url * @param retorno * @param ontimeout * @param assincrono */ function ajax(url, retorno, ontimeout, assincrono){ var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{// code for IE6, IE5