var tipoFuncao = typeof (function () {}); var tipoObjeto = typeof ({}); var tipoString = typeof (""); $(function () { $("textarea[maxlength]").bind('input propertychange', function () { var maxLength = $(this).attr('maxlength'); if ($(this).val().length > maxLength) { $(this).val($(this).val().substring(0, maxLength)); } }); /* $(".campo-data").calendario(); $(".campo-cpf").cpf(); $(".campo-cnpj").cnpj(); */ $('.btn-impressao-relatorio').click(function () { isRelatorioCall(); }); $().ajaxStart(function () { $("#bloquerBrowser").show(); }); $().ajaxComplete(function () { $("#bloquerBrowser").hide(); }); $().ajaxSuccess(function (evnt, request, settings) { $("#bloquerBrowser").hide(); }); $().ajaxError(function (request, settings, exception) { $("#bloquerBrowser").hide(); }); $("form").submit(function (eventObject) { $('#area-mensagens').remove(); //Solução encontrada para Corrigir problema ao fazer download de relatorios, etc. if ($('#isRelatorio') == undefined || $('#isRelatorio').attr('value') == undefined || $('#isRelatorio').attr('value') == 'false') { $("#bloquerBrowser").show(); } else { $('#isRelatorio').attr('value', 'false'); } //} }); $("input[type='submit']").click(function (eventObject) { if (($(this).attr('value').toUpperCase() == 'CONSULTAR') || ($(this).attr('value').toUpperCase() == 'CONSULTA')) { $("input[name='paginaAtual']").attr('value', '1'); } }); // Dialog exemplo $('#dialog-exemplo').dialog({ autoOpen: false, modal: true, width: 600, height: 400, resizable: false }); // Dialog exemplo link $('#dialog-exemplo-link').click(function () { $('#dialog-exemplo').dialog('open'); return false; }); // Dialog confirm $('#dialog-confirm').dialog({ autoOpen: false, modal: true, resizable: false, buttons: { "Não": function () { $(this).dialog("close"); }, "Sim": function () { $(this).dialog("close"); } } }); // Dialog confirm link $('#dialog-confirm-link').click(function () { $('#dialog-confirm').dialog('open'); return false; }); // Dialog fun��es gerais $('#dialog-funcoes').dialog({ autoOpen: false, modal: true, width: 600, height: 400, resizable: false }); // Dialog fiun��es gerais link $('#dialog-funcoes-link').click(function () { $('#dialog-funcoes').dialog('open'); return false; }); // Dialog fiun��es gerais link $('#dialog-situacao-link').click(function () { $('#dialog-situacao').dialog('open'); return false; }); // Datepicker $('#campo-data-de').datepicker({ changeMonth: true, changeYear: true, yearRange: '1900:2010' }); $('#campo-data-a').datepicker({ changeMonth: true, changeYear: true, yearRange: '1900:2010' }); $("input[name='paginaAtual']").keypress(function (e) { if (e.which == 13) { e.preventDefault(); } }); }); // Chamada protegida. Evita que submits saiam da página em caso de erro. function pcall(f) { var args = []; for (var i = 1; i < arguments.length; i += 1) { args.push(arguments[i]); } try { f.apply(this, args); } catch (e) { console.error(e); } } /** * Prepara os grids da tela que possuam campos selecionáveis, para que permitam seleção * de elementos clicando em qualquer lugar da linha, e "ativem" a linha juntamente com * o input (checkbox ou radio) selecionado. * A "ativação" da se dá pela simples adição da classe css "active". */ function prepararSelecaoGrid() { $(document).on('click', 'tr.linha-grid', function (e) { var input = $(this).find('input[type=radio], input[type=checkbox]').get(0); if (!input || input.disabled) { // Se não há input selecionável - ou o input está desabilitado - não é possível // selecionar a linha. // Nesse caso, simplesmente propagamos o evento normalmente. return true; } var tipo = input.type; if (tipo === 'radio') { // Para radio, é preciso limpar a linha atual antes de setar a nova. $(this).parent().find('tr.active').removeClass('active'); $(this).addClass('active'); if (!input.checked) { input.checked = true; $(input).trigger('change'); } } else { // Para checkbox, é preciso limpar ou ativar a linha de acordo com o novo estado, // Além de detectar se o clique não é no próprio checkbox, para evitar que o estado // do mesmo seja modificado duas vezes. if (e.target === input) { // O checkbox foi clicado, ao invés do resto da linha. // Não alterar o checkbox, apenas a cor da linha if (input.checked) { $(this).addClass('active'); } else { $(this).removeClass('active'); } } else { // Foi clicado na linha, mas não no próprio checkbox. // Alterar o estado do checkbox, juntamente com a própria linha. if (input.checked) { $(this).removeClass('active'); input.checked = false; } else { $(this).addClass('active'); input.checked = true; } $(input).trigger('change'); } } }) } function limitarTextArea(limitField, limitNum) { var length = 0; for (var i = 0; i < limitField.value.length; i++) { if (limitField.value[i] == '\r' || limitField.value[i] == '\n') { length += 2; if (i < limitNum) { limitNum = limitNum - 1; } } else { length++; } } if (length > limitNum) { limitField.value = limitField.value.substring(0, limitNum); } } function dwrErrorHandler(mensagem, exception) { if (exception.javaClassName == 'br.gov.mapa.arquitetura.exception.BusinessExceptionAlert') { desbloquearBrowser(); adicionarMensagem(mensagem, 'A'); } else if (exception.javaClassName == 'br.gov.mapa.arquitetura.exception.BusinessExceptionInfo') { desbloquearBrowser(); adicionarMensagem(mensagem, 'I'); } else { desbloquearBrowser(); adicionarMensagem(mensagem, 'E'); } } function erroInterno(e) { if (typeof (e) !== tipoString) { console.error(e); } $('#popup-detalhe-erro-interno').html(typeof (e) === tipoString ? e : _.escape(e.toString())); inicializarModalOkParametrizado('popup-detalhe-erro-interno', {largura: 800, altura: 600}, function () { }); adicionarMensagem('Ocorreu um erro interno. ', 'E'); desbloquearBrowser(); } function completeDwrErrorHandler(mensagem, exception) { if (!exception.javaClassName.match('BusinessException')) { desbloquearBrowser(); var trace = ''; trace += mensagem + '
'; exception.stackTrace.map(function (val) { trace += val.className + "." + val.methodName + "[" + val.lineNumber + "]" + '
' }) var cause = exception.cause; while (cause) { trace += "Caused by:
" cause.stackTrace.map(function (val) { trace += val.className + "." + val.methodName + "[" + val.lineNumber + "]" + '
' }) cause = cause.cause; } erroInterno(trace); } else { dwrErrorHandler(mensagem, exception); } } function removerAreaMensagem() { $('#area-mensagens').html(''); $('#areaMensagemDownload').html(''); } function adicionarMensagem(mensagem, tipo) { exibirMensagem("area-mensagens", mensagem, tipo); } /** * Método de baixo nível para exibir mensagem em qualquer localização necessária. * Para exibir mensagens na área de mensagens padrão, utilize a função {@code adicionarMensagem(mensagem, tipo)} * * @param id O id da div dentro da qual a mensagem será incluída. * @param mensagem O texto da mensagem a apresentar. * @param tipo O tipo de mensagem. 'S' para sucesso, 'A' para alerta e 'E' para erro. * @param contexto O objeto document que define o contexto da página.
* Ex.: Se um popup deseja exibir uma mensagem na janela pai, deverá passar o objeto {@code window.parent.document}.
* Importante: Não passar um objeto jquery, ou um contexto diferente de um objeto document, pois o comportamento será indefinido. */ function exibirMensagem(id, mensagem, tipo, contexto) { var mensagemFormatada = mensagem.replace(/~/g, "
").replace(/\$/, ''); var $div = $('#' + id, contexto); if (tipo == 'A') { $div.html( ""); } else if (tipo == 'S') { $div.html( ""); } else if (tipo == 'I') { $div.html( ""); } else { $div.html( ""); } $div.show(); var body = $('html, body'); if (contexto) { body = $(contexto.querySelectorAll('html, body')); window.parent.closeIframe(); } body.animate({ scrollTop: $div.parent().offset().top }, 'slow'); } function exibirNovaMensagem(msg, tipo) { limparMsgs(); exibirMensagem("area-mensagens", msg, tipo); } function inicializarModalOk(dialog, func) { inicializarModalOkParametrizado(dialog, {largura: 320, altura: 220}, func); } function inicializarModalOkParametrizado(dialog, opcoes, func) { $('#' + dialog).dialog({ autoOpen: false, modal: true, resizable: false, width: opcoes.largura, height: opcoes.altura, buttons: { "Ok": function () { $(this).dialog("close"); if (typeof (func) === tipoFuncao) { func(); } else if (typeof (func) === tipoObjeto && typeof (func.ok) === tipoFuncao) { func.ok(); } } }, close: function () { if (typeof (func) === tipoObjeto && typeof (func.close) === tipoFuncao) { func.close(); } }, open: function () { $(this).parent().find('button:nth-child(1)').focus(); } }); } function inicializarModalParametrizado(dialog, opcoes, func) { return $('#' + dialog).dialog({ autoOpen: false, modal: true, resizable: false, width: opcoes.largura, height: opcoes.altura, buttons: { "Não": function () { $(this).dialog("close"); if (typeof (func) !== tipoFuncao) { func.callbackNao(); } }, "Sim": function () { $(this).dialog("close"); if (opcoes.naoBloquearBrowser == undefined || opcoes.naoBloquearBrowser == false) { bloquearBrowser(); } if (typeof (func) === tipoFuncao) { func(); } else { func.callbackSim(); } } }, open: function () { $(this).parent().find('button:nth-child(1)').focus(); } }); } function inicializarModal(dialog, func) { return inicializarModalParametrizado(dialog, {largura: 320, altura: 220}, func); } /** * Registra um modal sem a necessidade de incluir uma div na página. * * @param opcoes * @returns */ function registrarModal(opcoes) { $('#area-popup').append(''); $('#' + opcoes.id).append('
#' + opcoes.msg + '
'); if (!opcoes.largura) opcoes.largura = 320; if (!opcoes.altura) opcoes.altura = 220; var func = typeof (opcoes.nao) === tipoFuncao ? {callbackSim: opcoes.sim, callbackNao: opcoes.nao} : opcoes.sim; return inicializarModalParametrizado(opcoes.id, opcoes, func); } function abrirModal(dialog) { $('#' + dialog).dialog('open'); } /* * Remover a div de mensagens da popup */ function removerBarraMensagens(popup) { $("#" + popup + " > div").remove(); } /*function resetarForm(formNumber, campos){ if (formNumber == null){ formNumber = 1; } $($('form').get(formNumber)).find('input:text,textarea').each(function(){ if($(campos).index($(this).attr('name')) == -1){ if($(this).attr('name') != 'paginaAtual'){ $(this).val(''); } } }); $($('form').get(formNumber)).find('select').each(function(){ if($(campos).index($(this).attr('name')) == -1){ $(this).find('option').removeAttr('selected'); } }); $($('form').get(formNumber)).find('input:radio').each(function(){ if($(campos).index($(this).attr('name')) == -1){ $(this).removeAttr('checked'); } }); $($('form').get(formNumber)).find('input:radio').each(function(){ if($(campos).index($(this).attr('name')) == -1){ $($($('form').get(formNumber)).find('input[name='+$(this).attr('name')+']:first')).attr('checked', 'checked'); } }); }*/ function bloquearBrowser() { $("#bloquerBrowser").show(); } function desbloquearBrowser() { $("#bloquerBrowser").hide(); } function sleep(ms) { var start = new Date().getTime(); var end = start; while (end < start + ms) { end = new Date().getTime(); } } /* * Bloquear ctrl + v * */ function noCopy(event) { var tecla = String.fromCharCode(event.keyCode).toLowerCase(); if (event.ctrlKey && (tecla == "c" || tecla == "v")) { window.event ? event.returnValue = false : event.preventDefault(); return false; } } function noSubmit(event) { var tecla = event.keyCode || event.witch; if (tecla == 13) { return false; } } function htmlFocus(elemento) { if (document.getElementById(elemento) != undefined) document.getElementById(elemento).focus(); } function isRelatorioCall() { $('#isRelatorio').attr('value', 'true'); removerAreaMensagem(); $("#bloquerBrowser").hide(); } function formataCPFCNPJ(campo, teclapres) { const valorSemMascara = String(campo.value).replace(/[^0-9]/g, ''); if (valorSemMascara.length > 11) { return FormataCNPJ(campo, teclapres) } else { return FormataCPF(campo, teclapres) } } function formataCpfCnpjPorTipo(campo, teclapres, tipo) { if (SomenteNumero(teclapres)) { if (tipo === '') { return formataCPFCNPJ(campo, teclapres); } else { if (tipo === 'J') { return FormataCNPJ(campo, teclapres) } else { return FormataCPF(campo, teclapres) } } } else { return false; } } function FormataCPF(campo, teclapres) { // Remove os caracteres que não sejam numéricos (0-9) const valorSemMascara = String(campo.value).replace(/[^0-9]/g, ''); const tamanho = valorSemMascara.length; const tecla = teclapres.keyCode; if (tecla !== 8 && tecla !== 9) { if (tamanho > 11) { return false; } else if (tamanho > 3 && tamanho < 7) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, tamanho); } else if (tamanho >= 7 && tamanho < 10) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, 3) + '.' + valorSemMascara.substr(6, tamanho - 6); } else if (tamanho >= 10 && tamanho < 12) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, 3) + '.' + valorSemMascara.substr(6, 3) + '-' + valorSemMascara.substr(9, tamanho - 9); } } } function FormataCNPJCPF(campo, teclapres) { // Remove os caracteres que não sejam numéricos (0-9) const valorSemMascara = String(campo.value).replace(/[^0-9]/g, ''); const tamanho = valorSemMascara.length; const tecla = teclapres.keyCode; if (tecla !== 8 && tecla !== 9) { if (tamanho > 11) { return FormataCNPJ(campo, teclapres); } else if (tamanho > 3 && tamanho < 7) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, tamanho); } else if (tamanho >= 7 && tamanho < 10) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, 3) + '.' + valorSemMascara.substr(6, tamanho - 6); } else if (tamanho >= 10 && tamanho < 12) { campo.value = valorSemMascara.substr(0, 3) + '.' + valorSemMascara.substr(3, 3) + '.' + valorSemMascara.substr(6, 3) + '-' + valorSemMascara.substr(9, tamanho - 9); } } } function FormataCNPJ(campo, teclapres) { // Remove os caracteres que não sejam numéricos (0-9) const valorSemMascara = campo.value.replace(/[^\d]+/g, ''); const tamanho = valorSemMascara.length; const tecla = teclapres.keyCode; if (tecla !== 8 && tecla !== 9) { if (tamanho > 14) { return false; } else if (tamanho > 2 && tamanho < 6) campo.value = valorSemMascara.substr(0, 2) + '.' + valorSemMascara.substr(2, tamanho); if (tamanho >= 6 && tamanho < 9) campo.value = valorSemMascara.substr(0, 2) + '.' + valorSemMascara.substr(2, 3) + '.' + valorSemMascara.substr(5, tamanho - 5); if (tamanho >= 9 && tamanho < 13) campo.value = valorSemMascara.substr(0, 2) + '.' + valorSemMascara.substr(2, 3) + '.' + valorSemMascara.substr(5, 3) + '/' + valorSemMascara.substr(8, tamanho - 8); if (tamanho >= 13 && tamanho < 15) campo.value = valorSemMascara.substr(0, 2) + '.' + valorSemMascara.substr(2, 3) + '.' + valorSemMascara.substr(5, 3) + '/' + valorSemMascara.substr(8, 4) + '-' + valorSemMascara.substr(12, tamanho - 12); } } function SomenteNumero(e) { var tecla = (window.event) ? event.keyCode : e.which; if ((tecla > 47 && tecla < 58) || tecla === 9) return true; else { if (tecla !== 8) return false; else return true; } } function campoNumeroDecimal(campo, evt) { // Remove os caracteres que não sejam numéricos (0-9) e '.' (ponto) campo.val(campo.val().replace(/[^0-9.-]/g, '')); // Caso o usuário digite mais de um '.' (ponto) ou '-' (traço) será removido if ((campo.val().split('.').length > 2) || (campo.val().split('-').length > 2)) { campo.val(campo.val().substring(0, campo.val().length - 1)); } // O sinal de '-' só é permitido na primeira posição if (campo.val().indexOf('-') !== -1 && campo.val().charAt(0) !== '-') { campo.val(campo.val().substring(0, campo.val().length - 1)); } } function somenteNumeral(campo) { var digits = "0123456789"; var campo_temp; for (var i = 0; i < campo.value.length; i++) { campo_temp = campo.value.substring(i, i + 1); if (digits.indexOf(campo_temp) == -1) { campo.value = campo.value.substring(0, i); } } } function selecionarTodosComboMultiple(idCombo) { $("#" + idCombo + " option").each(function () { $(this).attr('selected', true); }); } function adicionarItemCombo(select, value, text) { if (value != '') { var naoAchou = true; $("#" + select + " option").each(function () { if ($(this).attr("value") == value) { naoAchou = false; } }); if (naoAchou) { $("#" + select).append(""); } } } function preencherListaCombo(idSelect, idSelectDestino) { var select = document.getElementById(idSelect); for (var i = 0; i < select.length; i++) { if (select[i].selected) { adicionarItemCombo(idSelectDestino, select[i].value, select[i].text); } } $("#" + idSelect + " option:selected").remove(); $("#" + idSelectDestino).sortOptions(); } function preencherTodosListaCombo(idSelect, idSelectDestino) { var select = document.getElementById(idSelect); for (var i = 0; i < select.length; i++) { adicionarItemCombo(idSelectDestino, select[i].value, select[i].text); } $("#" + idSelect).attr("value", ''); $("#" + idSelect).empty(); $("#" + idSelectDestino).sortOptions(); } function removerTodosListaCombo(idSelect) { $('#' + idSelect).children().remove(); } //Opções de validação que existirão em cada formulário. // nome -> valor do atributo name do campo. // rotulo -> rótulo utilizado quando rótulo da mensagem é diferente do apresentado em tela. // dependencias -> funções que implementam lógica de dependência para obrigatoriedade. Retornam valor booleano. // Tag que indica que uma query de dependência aceita qualquer valor para o campo. var qualquerValor = {}; // Obtém o objeto jquery do campo. function obterObjetoJqueryDoCampo(campo) { var seletor = null; if (campo.id) { seletor = '#' + campo.id; } else { seletor = '[name="' + campo.nome + '"]'; } var isRadioCheckBox = $(seletor + '[type="radio"], ' + seletor + '[type="checkbox"]').length > 1; if (isRadioCheckBox) { // É um radio ou checkbox. Voltar apenas o(s) valor(es) marcado(s). return $(seletor + ':checked'); } else { return $(seletor); } } // Verifica se uma dependência está sendo cumprida. function dependenciaValida(dependencia) { var valor = obterObjetoJqueryDoCampo(dependencia.campo).val(); if (typeof (dependencia.query) === 'function') { return dependencia.query(valor); } if (dependencia.query === qualquerValor) { return valor !== ''; } return valor === dependencia.query; } // Verifica se todas as dependências estão sendo cumpridas. function dependenciasValidas(dependencias) { if (!dependencias) return true; for (var i = 0; i < dependencias.length; ++i) { if (!dependenciaValida(dependencias[i])) { return false; } } return true; } // Valida todos os campos como obrigatórios e apresenta mensagem caso não estejam preenchidos. function validarCamposObrigatorios(opcoes) { var mensagens = ''; if (!opcoes.areaMensagens) { opcoes.areaMensagens = "area-mensagens"; } if (opcoes && opcoes.campos) { var camposObrigatorios = opcoes.campos; for (var i = 0; i < camposObrigatorios.length; i++) { var campo = camposObrigatorios[i]; var obj = obterObjetoJqueryDoCampo(campo); if (dependenciasValidas(campo.dependencias)) { if ( (campo.queryCampoPreenchido && !campo.queryCampoPreenchido(obj.val())) || (!campo.queryCampoPreenchido && (obj.length < 1 || obj.val() === '' || (campo.notAllowZero && !isPreenchidoNaoPermiteZero(obj.val()))))) { var rotulo = campo.rotulo; if (!rotulo) { var idCampo = obj.prop("id"); rotulo = $('label[for="' + idCampo + '"]').text().trim().replace(":", ""); } if (campo.mensagem) { mensagens += campo.mensagem; } else { mensagens += 'O campo {0} é de preenchimento obrigatório!~'.replace("{0}", rotulo); } } } } } if (mensagens !== '') { limparMsgs(opcoes.areaMensagens); exibirMensagem(opcoes.areaMensagens, mensagens, 'A'); } return mensagens === ''; } function validaData(digData) { var bissexto = 0; var data = digData.value; var tam = data.length; if (tam === 10) { var dia = data.substr(0, 2); var mes = data.substr(3, 2); var ano = data.substr(6, 4); if ((ano > 1900) || (ano < 2100)) { switch (mes) { case '01': case '03': case '05': case '07': case '08': case '10': case '12': if (dia <= 31) { return true; } break case '04': case '06': case '09': case '11': if (dia <= 30) { return true; } break case '02': /* Validando ano Bissexto / fevereiro / dia */ if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) { bissexto = 1; } if ((bissexto == 1) && (dia <= 29)) { return true; } if ((bissexto != 1) && (dia <= 28)) { return true; } break } } digData.value = ''; } else { digData.value = ''; } return false; } function limpar() { limparFilhos(null); } function limparMsgs(id) { if (!id) id = 'area-mensagens'; $('#' + id).html(''); } function limparFilhos(elementoPai) { var prefixo = elementoPai ? (elementoPai + ' ') : ''; // Limpar todos os inputs, selects e radios; limparCampos(elementoPai); // Remover elementos opcionais $(prefixo + '.remover-ao-limpar').remove(); $(prefixo + '[type="hidden"].limpar').val(''); $(prefixo + '.desabilitar-ao-limpar').attr('disabled', 'disabled'); // Remover o grid e a barra de paginação. limparTabelas(elementoPai); } function limparTabelas(elementoPai) { var prefixo = elementoPai ? (elementoPai + ' ') : ''; $(prefixo + '.link-paginador+script').remove(); $(prefixo + '.link-paginador').remove(); $(prefixo + '.table-grid').remove(); } function limparCampos(elementoPai) { var prefixo = elementoPai ? (elementoPai + ' ') : '#conteudo '; $(prefixo + 'input').not('[type="radio"]').not('[type="submit"]').not('[type="checkbox"]').not('[type="hidden"]').not(':disabled').val(''); $(prefixo + 'input[type="radio"]').not(':disabled').removeAttr('checked'); $(prefixo + 'input[type="checkbox"]').not(':disabled').removeAttr('checked'); $(prefixo + 'select').not(':disabled').val(''); $(prefixo + 'textarea').not(':disabled').val(''); $('#area-mensagens').html(''); } function bloqueiaEnter() { $('input').keypress(function (e) { if (e.which == 13) { e.preventDefault(); } }); } function bloqueiaColar() { $('.form-text').bind("cut copy paste", function (e) { $(this).val(""); e.preventDefault(); }); } function bloqueiaArrastaSolta() { $('input').on('drop', function (event) { $(this).val(""); event.preventDefault(); }); } function desabilitarBotao(idBotao) { $('#' + idBotao).attr('disabled', 'disabled'); $('#' + idBotao).addClass('form-button-disabled'); } function habilitarBotao(idBotao) { $('#' + idBotao).removeAttr('disabled'); $('#' + idBotao).removeClass('form-button-disabled'); } function isPreenchido(valor) { return valor && valor != null && valor != '' && valor != undefined && valor != '[]' && valor != {}; } function isNaoPreenchido(valor) { return !isPreenchido(valor); } function isPreenchidoNaoPermiteZero(valor) { return valor !== null && valor !== '' && getFloat(valor) > 0; } function getMascaraDecimal() { return {thousands: '.', decimal: ',', allowZero: false}; } function getMascaraDecimalPermiteZero() { return {thousands: '.', decimal: ',', allowZero: true}; } function getHiddenTable(nmCampo, idRegistro) { return $('#' + idRegistro + '_' + nmCampo).val(); } function get(idCampo) { return $('#' + idCampo).val(); } function set(idCampo, valor) { return $('#' + idCampo).val(valor); } function getFloat(valorStr) { var valor = ''; if (isPreenchido(valorStr)) { valorStr = replaceAll(valorStr, '.', ''); valorStr = replaceAll(valorStr, ',', '.'); valor = parseFloat(valorStr); } return valor; } function replaceAll(valor, oldChar, newChar) { if (isPreenchido(valor)) { while (valor.indexOf(oldChar) >= 0) { valor = valor.replace(oldChar, newChar); } } return valor; } function getDate(dateStr) { var newDate; if (isPreenchido(dateStr)) { newDate = new Date(replaceAll(dateStr, '-', '/').replace(/(\d{2})\/(\d{2})\/(\d{4})/, '$2/$1/$3')); } return newDate; } function getDataFormatada(date) { return $.datepicker.formatDate('dd/mm/yy', date); } function isDataMaiorQueAtual(dataStr) { return isDataMaiorQue(dataStr, getDataFormatada(new Date())); } function isDataMaiorQue(dataStr1, dataStr2) { var date1 = getDate(dataStr1); var date2 = getDate(dataStr2); return date1 > date2; } function validateDate(dataStr) { var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02]) [\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/; if (!((dataStr.match(RegExPattern)) && (dataStr != ''))) { return false; } else return true; } function alterarCamposLinhaAlternada() { var i = 0; $('#table > tbody > tr').each(function () { if (i % 2) { $(this).addClass('linha-alternada'); } else { $(this).removeClass('linha-alternada'); } i++; }); } function tratarSubmitAoClicarNaTeclaEnter(idForm) { if (isPreenchido(idForm)) { $('#' + idForm).keypress(function (e) { if (e.which == 13 && e.target.type != 'submit') {//13 - Tecla 'enter' e input diferente de submit e.preventDefault(); } }); } } function getIdRadioButtonsSelecionado() { var qtdCamposMarcados = $('.radiobuttons:checked').length; if (qtdCamposMarcados !== 0) { var regSelecionado = $(".radiobuttons").getRadioCheck(); return regSelecionado.value; } return null; } function getValorHiddenPorName(linha, name) { var valor = $(linha).find('[name="' + name + '"]').val(); if (isPreenchido(valor)) { return valor; } else { return 'null'; } } function formatReal(valor) { var int = parseInt(valor.toFixed(2).toString().replace(/[^\d]+/g, '')); var tmp = int + ''; tmp = tmp.replace(/([0-9]{2})$/g, ",$1"); if (tmp.length > 6) tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2"); return tmp; } function formatarIdentificadorPropriedadeUF(campo, teclapres) { var tecla = teclapres.keyCode; if (tecla === 0) { tecla = teclapres.charCode; } var vr = String(campo.value); vr = vr.replace(".", ""); vr = vr.replace(".", ""); vr = vr.replace("-", ""); tam = vr.length + 1; if (tecla !== 8 && tecla !== 9) { //Se numero e já digitou 2 caracteres if ((tecla >= 48 && tecla <= 57)) { if (tam > 2) { if (tam < 5) campo.value = vr.substr(0, 2).toUpperCase() + '-' + vr.substr(2, tam); if (tam >= 5 && tam < 8) campo.value = vr.substr(0, 2).toUpperCase() + '-' + vr.substr(2, 3) + '.' + vr.substr(5, tam - 5); if (tam >= 8 && tam < 12) campo.value = vr.substr(0, 2).toUpperCase() + '-' + vr.substr(2, 3) + '.' + vr.substr(5, 3) + '.' + vr.substr(8, tam - 8); } else { return false; } } else if (tam > 2 && tecla !== 46) { return false; } } } var GeoUtil = { converterGrauSexagesimalParaDecimal: function (grau, minuto, segundo, orientacao) { var grauDecimal = parseFloat((grau + (minuto / 60) + (segundo / 3600)).toFixed(6)); if (orientacao === 'S' || orientacao === 'W') { grauDecimal = grauDecimal * -1; } return grauDecimal; }, converterGrauDecimalParaGrauSexagesimal: function (latitude, longitude) { // Função interna que faz a conversão function converter(grauDecimal) { var grauSexagesimal = { grau: 0, minuto: 0, segundo: 0 }; // Você tem graus decimais (-73.9874°) e quer converter para sexagesimal: graus, minutos e segundos (-73° 59’ 14.64 ") var numeroInteiro = Math.abs(Math.trunc(grauDecimal)); // 73 var numeroDecimal = Math.abs(grauDecimal) - numeroInteiro; // 0.9874 // As unidades inteiras de graus permanecerá o mesmo (-73.9874°) fica (73°) grauSexagesimal.grau = numeroInteiro; // Multiplique o decimal por 60 (0.9874 * 60 = 59.244). O número total torna-se o minuto (59’) grauSexagesimal.minuto = Math.trunc(numeroDecimal * 60); // Multiplique o restante decimal por 60 (0.244 * 60 = 14.64). O resultado será o segundo (14.64). Obs.: Os segundos podem permanecer como decimal. grauSexagesimal.segundo = ((numeroDecimal * 60) - grauSexagesimal.minuto) * 60; grauSexagesimal.segundo = parseFloat(grauSexagesimal.segundo.toFixed(3)); return grauSexagesimal; } var latitudeGMS = converter(parseFloat(latitude)); var longitudeGMS = converter(parseFloat(longitude)); return { latitudeGrau: latitudeGMS.grau, latitudeMinuto: latitudeGMS.minuto, latitudeSegundo: latitudeGMS.segundo, latitudeOrientacao: parseFloat(latitude) < 0.0 ? 'S' : 'N', longitudeGrau: longitudeGMS.grau, longitudeMinuto: longitudeGMS.minuto, longitudeSegundo: longitudeGMS.segundo, longitudeOrientacao: parseFloat(longitude) < 0.0 ? 'W' : 'E' } } };