262
| <![CDATA[<script>
// FUNÇÕES JS PARA LEGISLAÇÃO
$(document).ready(function() {
var $document = $(document);
var $window = $(window);
var $body = $("body");
/* =====================================================================================================
FUNÇÃO - BUSCA VERSÃO DO ATO
===================================================================================================== */
function leg_buscar_versao(id_vinculo, tipo_versao, id_lei)
{
if(!id_vinculo)
id_vinculo = null;
// VOLTAR BOTÕES BARRA PARA CONTEÚDO ORIGINAL
if(tipo_versao == "conteudo_compilado")
{
reset_botoes_barra_original($("#versao_original"), "N");
}
$.ajax({
url: "/portal/leis_decretos/acao/",
type: "POST",
data: "id_vinculo="+id_vinculo+"&acao=versoes&tipo_versao="+tipo_versao+"&id="+id_lei,
assync: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro == "" || data.erro == undefined || data.erro == null)
{
// ADICIONANDO CONTEÚDO
$("#conteudo_norma").html(data.conteudo);
// ATUALIZA CAMPOS DA MARCAÇÃO
$("#marcacao_lvCodigo").val(parseInt(id_vinculo));
$("#marcacao_leCodigo").val(parseInt(id_lei));
}
else
{
swal({
text: "Erro ao buscar informações, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
}
/* =====================================================================================================
FUNÇÃO - PROCURAR UM NÓ NO DOM
===================================================================================================== */
function f_procura_elemento(elemento_pai, elemento_busca, endereco_pai) {
let retorno_funcao = "";
let endereco = "";
NodeList.prototype.forEach = Array.prototype.forEach
if(endereco_pai == "0")
{
let elemento_first_child = elemento_pai.firstChild;
if(elemento_first_child.nodeType == 3)
{
elemento_pai.removeChild(elemento_first_child);
}
}
var lista_filhos = elemento_pai.childNodes;
lista_filhos.forEach(function(item, index){
if(item == elemento_busca)
{
endereco = endereco_pai + "/" + index;
retorno_funcao = endereco;
return retorno_funcao;
}
});
if(retorno_funcao == "" || retorno_funcao == undefined)
{
lista_filhos.forEach(function(item, index){
if(item.hasChildNodes() && (retorno_funcao == "" || retorno_funcao == undefined))
{
endereco = endereco_pai + "/" + index;
retorno_funcao = f_procura_elemento(item, elemento_busca, endereco);
}
});
}
if(retorno_funcao != "" && retorno_funcao != undefined)
{
return retorno_funcao;
}
}
/* =====================================================================================================
FUNÇÃO - PROCURAR E SUBTITUIR UM NÓ NO DOM
===================================================================================================== */
function f_find_replace(pai, procura, novo_elemento) {
let filhos = pai.childNodes;
if(filhos.length > 0)
{
for(let i = 0; i < filhos.length; i++)
{
if(filhos[i] == procura)
{
pai.replaceChild(novo_elemento, pai.childNodes[i]);
}
else
{
if(filhos[i].childNodes.length > 0)
{
f_find_replace(filhos[i], procura, novo_elemento);
}
}
}
}
}
/* =====================================================================================================
FUNÇÃO - MARCAR ELEMENTOS DE UM DOM NODE
===================================================================================================== */
function f_marca_obj(elemento_marcar) {
let classe_elemento = "";
if(elemento_marcar.nodeType != 3)
{
classe_elemento = elemento_marcar.className;
if(classe_elemento == classe_elemento.replace("marcacao_texto", ""))
{
if(classe_elemento != "")
{
elemento_marcar.className = classe_elemento + " marcacao_texto";
}
else
{
elemento_marcar.className = "marcacao_texto";
}
}
}
if(elemento_marcar.hasChildNodes())
{
NodeList.prototype.forEach = Array.prototype.forEach
var lista_filhos = elemento_marcar.childNodes;
lista_filhos.forEach(function(item, index){
f_marca_obj(item);
});
}
}
/* =====================================================================================================
FUNÇÃO - MARCAR TEXTO
===================================================================================================== */
function f_marca_texto() {
let conteudo_norma_html = $("#conteudo_norma").html();
// VALIDA SELEÇÃO
if (window.getSelection)
{
// COLETA RANGE DA SELEÇÃO
let html_range = window.getSelection().getRangeAt(0);
// PRIMEIRO ELEMENTO DA SELEÇÃO
let html_range_inicio = html_range.startContainer;
// ÚLTIMO ELEMENTO DA SELEÇÃO
let html_range_fim = html_range.endContainer;
// VALIDAÇÃO DA QUANTIDADE DE CARATERES
let valida_caracteres = html_range.toString().trim();
valida_caracteres = valida_caracteres.replaceAll(' ', "");
// VALIDA CONTEÚDO
if(valida_caracteres.length > 0)
{
// VALIDAÇÃO QUANTIDADE DE CARACTERES
if(valida_caracteres.length >= 50)
{
// VALIDAÇÃO DO ELEMENTO INICIAL E FINAL
if(html_range_inicio.nodeType != 3 || html_range_fim.nodeType != 3)
{
// REMOVE A SELEÇÃO
window.getSelection().empty();
if(html_range_inicio.nodeType != 3)
{
swal({
text: "Sua marcação deve iniciar em um elemento de texto, por favor tente novamente!",
icon: "warning",
});
}
else if(html_range_fim.nodeType != 3)
{
swal({
text: "Sua marcação deve finalizar em um elemento de texto, por favor tente novamente!",
icon: "warning",
});
}
}
else
{
// "DOM NODE" QUE CONTEM TODA A SELEÇÃO
let antecessor = html_range.commonAncestorContainer;
// COLETA PARENT NODE ATÉ SER A DIV ID CONTEUDO NORMA
if( antecessor.id != "conteudo_norma")
{
while(antecessor.id != "conteudo_norma")
{
antecessor = antecessor.parentNode;
}
}
// PARÂMETROS DO POST
let form_data = {};
// VERIFICA SE A SELEÇÃO É DENTRO DO MESMO ELEMENTO
if(html_range_inicio == html_range_fim)
{
form_data.tipo_selecao = "unico";
/*##################################################################################
HTML ORIGINAL DO ELEMENTO DA SELEÇÃO
##################################################################################*/
html_ini = html_range_inicio.parentNode;
// COLETA POSIÇÃO DO COMEÇO DA SELEÇÃO
let posicao_ini = f_procura_elemento(antecessor, html_ini, "0");
form_data.posicao_ini = posicao_ini;
let html_aux1 = new DocumentFragment();
let div_aux1 = document.createElement("div");
html_aux1.appendChild(div_aux1);
html_aux1.firstElementChild.appendChild(html_ini.cloneNode(true));
let html_post1 = html_aux1.children;
form_data.obj_pre = html_post1[0].innerHTML;
/*##################################################################################
HTML PROCESSADO DO ELEMENTO DA SELEÇÃO
##################################################################################*/
// NOVO RANGE DE SELEÇÃO DO ELEMENTO (COM O TEXTO NÃO SELECIONADO)
let novo_range_ini = document.createRange();
novo_range_ini.setStart(html_range_inicio, 0);
novo_range_ini.setEnd(html_range_inicio, html_range.startOffset);
// PRIMEIRA PARTE DO TEXTO (TEXTO NÃO SELECIONADO)
var span_ini = document.createElement("span");
span_ini.className = "marcacao_texto_nulo";
var texto_ini = document.createTextNode(novo_range_ini.toString());
span_ini.appendChild(texto_ini);
// TEXTO DENTRO DA SELEÇÃO
var span_meio = document.createElement("span");
span_meio.className = "marcacao_texto marcacao_texto_ultimo";
var texto_meio = document.createTextNode(html_range.toString());
span_meio.appendChild(texto_meio);
// BOTÃO DE EXCLUIR MARCAÇÃO
var span_excluir = document.createElement("span");
span_excluir.className = "marcacao_texto marcacao_texto_excluir fa fa-times";
span_excluir.title = "Remover Marcação";
span_meio.appendChild(span_excluir);
// NOVO RANGE DE SELEÇÃO DO ÚLTIMO ELEMENTO (COM O TEXTO SELECIONADO)
let novo_range_fim = document.createRange();
novo_range_fim.setStart(html_range_inicio, 0);
novo_range_fim.setEnd(html_range_inicio, html_range.endOffset);
// SEGUNDA PARTE DO TEXTO
var span_fim = document.createElement("span");
span_fim.className = "marcacao_texto_nulo";
var texto_fim = document.createTextNode(html_range_inicio.textContent.replace(novo_range_fim, ""));
span_fim.appendChild(texto_fim);
// TEXTO DO PRIMEIRO ELEMENTO DA SELEÇÃO (FORMATADO COM A NOVA CLASSE DE MARCAÇÃO)
var span_pos = document.createElement("span");
span_pos.appendChild(span_ini);
span_pos.appendChild(span_meio);
span_pos.appendChild(span_fim);
let html_fim = span_pos;
if(html_range_inicio.nodeType == 3)
{
html_fim = html_range_inicio.parentNode;
html_fim.replaceChild(span_pos, html_range_inicio);
}
// COLOCA O NOVO HMTL NOS PARÂMETROS DE POST
let html_aux2 = new DocumentFragment();
let div_aux2 = document.createElement("div");
html_aux2.appendChild(div_aux2);
html_aux2.firstElementChild.appendChild(html_fim.cloneNode(true));
let html_post2 = html_aux2.children;
form_data.obj_pos = html_post2[0].innerHTML;
}
else
{
form_data.tipo_selecao = "multiplo";
// COLETA POSIÇÃO DO COMEÇO DA SELEÇÃO
let posicao_ini_pre = f_procura_elemento(antecessor, html_range_inicio, "0");
form_data.posicao_ini_pre = posicao_ini_pre;
/*##################################################################################
HTML ORIGINAL DO PRIMEIRO ELEMENTO DA SELEÇÃO
##################################################################################*/
let html_aux1 = new DocumentFragment();
let div_aux1 = document.createElement("div");
html_aux1.appendChild(div_aux1);
html_aux1.firstElementChild.appendChild(html_range_inicio.cloneNode(true));
let html_post1 = html_aux1.children;
form_data.obj_inicial_pre = html_post1[0].innerHTML;
/*##################################################################################
HTML ORIGINAL DO ÚLTIMO ELEMENTO DA SELEÇÃO
##################################################################################*/
let html_aux2 = new DocumentFragment();
let div_aux2 = document.createElement("div");
html_aux2.appendChild(div_aux2);
html_aux2.firstElementChild.appendChild(html_range_fim.cloneNode(true));
let html_post2 = html_aux2.children;
form_data.obj_final_pre = html_post2[0].innerHTML;
/*##################################################################################
HTML PROCESSADO DO PRIMEIRO ELEMENTO DA SELEÇÃO
##################################################################################*/
if(html_range_inicio.nodeType == 3)
{
// NOVO RANGE DE SELEÇÃO DO PRIMEIRO ELEMENTO (COM O TEXTO NÃO SELECIONADO)
let novo_range_ini = document.createRange();
novo_range_ini.setStart(html_range_inicio, 0);
novo_range_ini.setEnd(html_range_inicio, html_range.startOffset);
// PRIMEIRA PARTE DO TEXTO
var span_ini_1 = document.createElement("span");
span_ini_1.className = "marcacao_texto_nulo";
var texto_1 = document.createTextNode(novo_range_ini.toString());
span_ini_1.appendChild(texto_1);
// SEGUNDA PARTE DO TEXTO
var span_ini_2 = document.createElement("span");
span_ini_2.className = "marcacao_texto";
var texto_2 = document.createTextNode(html_range_inicio.textContent.replace(novo_range_ini, ""));
span_ini_2.appendChild(texto_2);
// TEXTO DO PRIMEIRO ELEMENTO DA SELEÇÃO (FORMATADO COM A NOVA CLASSE DE MARCAÇÃO)
var obj_inicial_alterado = document.createElement("span");
obj_inicial_alterado.appendChild(span_ini_1);
obj_inicial_alterado.appendChild(span_ini_2);
}
else
{
f_marca_obj(html_range_inicio);
obj_inicial_alterado = html_range_inicio;
}
// COLOCA O NOVO HMTL NOS PARÂMETROS DE POST
let html_aux3 = new DocumentFragment();
let div_aux3 = document.createElement("div");
html_aux3.appendChild(div_aux3);
html_aux3.firstElementChild.appendChild(obj_inicial_alterado.cloneNode(true));
let html_post3 = html_aux3.children;
form_data.obj_inicial_pos = html_post3[0].innerHTML;
/*##################################################################################
HTML PROCESSADO DO ÚLTIMO ELEMENTO DA SELEÇÃO
##################################################################################*/
if(html_range_fim.nodeType == 3)
{
// NOVO RANGE DE SELEÇÃO DO ÚLTIMO ELEMENTO (COM O TEXTO SELECIONADO)
let novo_range_fim = document.createRange();
novo_range_fim.setStart(html_range_fim, 0);
novo_range_fim.setEnd(html_range_fim, html_range.endOffset);
// PRIMEIRA PARTE DO TEXTO
var span_fim_1 = document.createElement("span");
span_fim_1.className = "marcacao_texto marcacao_texto_ultimo";
var texto_4 = document.createTextNode(novo_range_fim.toString());
span_fim_1.appendChild(texto_4);
// BOTÃO DE EXCLUIR MARCAÇÃO
var span_excluir = document.createElement("span");
span_excluir.className = "marcacao_texto marcacao_texto_excluir fa fa-times";
span_excluir.title = "Remover Marcação";
span_fim_1.appendChild(span_excluir);
// SEGUNDA PARTE DO TEXTO
var span_fim_2 = document.createElement("span");
span_fim_2.className = "marcacao_texto_nulo";
var texto_5 = document.createTextNode(html_range_fim.textContent.replace(novo_range_fim, ""));
span_fim_2.appendChild(texto_5);
// TEXTO DO PRIMEIRO ELEMENTO DA SELEÇÃO (FORMATADO COM A NOVA CLASSE DE MARCAÇÃO)
var obj_final_alterado = document.createElement("span");
obj_final_alterado.appendChild(span_fim_1);
obj_final_alterado.appendChild(span_fim_2);
}
else
{
f_marca_obj(html_range_fim);
// BOTÃO DE EXCLUIR MARCAÇÃO
var span_excluir = document.createElement("span");
span_excluir.className = "marcacao_texto marcacao_texto_excluir fa fa-times";
span_excluir.title = "Remover Marcação";
html_range_fim.appendChild(span_excluir);
obj_final_alterado = html_range_fim;
}
// COLOCA O NOVO HMTL NOS PARÂMETROS DE POST
let html_aux4 = new DocumentFragment();
let div_aux4 = document.createElement("div");
html_aux4.appendChild(div_aux4);
html_aux4.firstElementChild.appendChild(obj_final_alterado.cloneNode(true));
let html_post4 = html_aux4.children;
form_data.obj_final_pos = html_post4[0].innerHTML;
// FORMATA UM FRAGMENTO DE DOCUMENTO COM A ALTERAÇÃO DO PRIMEIRO ELEMENTO, PARA LOCALIZAR O ULTIMO ELEMENTO
let fragmento_documento = new DocumentFragment();
let div_fragmento = document.createElement("div");
div_fragmento.appendChild(antecessor);
fragmento_documento.appendChild(div_fragmento);
f_find_replace(div_fragmento, html_range_inicio, obj_inicial_alterado);
// COLETA POSIÇÃO DO FIM DA SELEÇÃO
let posicao_fim_pre = f_procura_elemento(div_fragmento.firstChild, html_range_fim, "0");
form_data.posicao_fim_pre = posicao_fim_pre;
}
// PARÂMETROS DO POST
form_data.acao = "cadastrar";
form_data.leCodigo = parseInt($("#marcacao_leCodigo").val());
form_data.lvCodigo = parseInt($("#marcacao_lvCodigo").val());
let json = JSON.stringify(form_data);
// POST
$.ajax({
url: "/legislacao_marcacao.php",
type: "POST",
data: "data="+json,
assync: false,
beforeSend: function(){
// REMOVE A SELEÇÃO
window.getSelection().empty();
sw_carregando_fs("show");
},
complete: function() {
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
},
success: function(data) {
// VERIFICA SE RETORNO ESTA VAZIO
if(data.trim() != "" && data != false && data != undefined)
{
// FORMATA JSON DO RETORNO
var json = JSON.parse(data);
// VALIDAÇÃO CAMPO DE ERRO DO RETORNO
if(json.erro != "" && json.erro != undefined)
{
swal({
text: json.erro,
icon: "error",
});
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma marcacao_texto_ativa" id="conteudo_norma">'+ conteudo_norma_html +'</div>');
}
else if(json.sucesso != "" && json.sucesso != undefined)
{
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma marcacao_texto_ativa" id="conteudo_norma">'+ json.html +'</div>');
}
}
else
{
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma marcacao_texto_ativa" id="conteudo_norma">'+ conteudo_norma_html +'</div>');
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma marcacao_texto_ativa" id="conteudo_norma">'+ conteudo_norma_html +'</div>');
}
});
} // FIM VALIDAÇÃO ELEMENTO INICIAL E FINAL
} // FIM VALIDAÇÃO QUANTIDADE DE CARACTERES
else
{
// REMOVE A SELEÇÃO
window.getSelection().empty();
swal({
text: "Sua marcação tem " + valida_caracteres.length + " caracteres, o limite mínimo é 50, por favor tente novamente!",
icon: "warning",
});
}
} // FIM VALIDA CONTEÚDO
} // FIM VALIDA SELEÇÃO
}
/* =====================================================================================================
BOTÃO DE REALIZAR MARCAÇÃO
===================================================================================================== */
$(".btn_marcacao").click(function() {
if($("#conteudo_norma").hasClass("marcacao_texto_ativa"))
{
// COLOCA CLASSE DE SELEÇÃO NO CONTEÚDO
$("#conteudo_norma").removeClass("marcacao_texto_ativa");
// REMOVE CLASSE DE ITEM ATIVO
$(".leg_ferramenta_marcacao").removeClass("clicked manter_hover");
// HTML DO BOTÃO
$(".btn_marcacao").html('<span>Iniciar Marcação</span><span class="fa fa-align-center"></span>');
// FUNÇÃO DE SELECIONAR DENTRO DO CONTEÚDO
$(document.body).off("mouseup touchend", "#conteudo_norma", f_marca_texto);
// RESETANDO HIGHLIGHT NA ÁREA DE MARCAÇÃO
$body.removeClass("leg_highlight");
$body.off("keyup click", remove_highlight);
}
else
{
// COLOCA CLASSE DE SELEÇÃO NO CONTEÚDO
$("#conteudo_norma").addClass("marcacao_texto_ativa");
// ADICIONA CLASSE DE ITEM ATIVO
$(".leg_ferramenta_marcacao").addClass("clicked manter_hover");
// HTML DO BOTÃO
$(".btn_marcacao").html('<span>Encerrar Marcação</span><span class="fa fa-times-circle"></span>');
// SCROLL DA TELA ATÉ O ID DE SELEÇÃO
var topo_conteudo_norma = $("#conteudo_norma").offset().top;
var topo_tela = $(window).scrollTop();
if (topo_tela < topo_conteudo_norma)
{
$([document.documentElement, document.body]).animate({scrollTop: topo_conteudo_norma - 100 }, parseInt(500 + (topo_tela / 100)));
}
// FUNÇÃO DE SELECIONAR DENTRO DO CONTEÚDO
$(document.body).on("mouseup touchend", "#conteudo_norma", f_marca_texto);
// SETANDO HIGHLIGHT NA ÁREA DE MARCAÇÃO
$body.addClass("leg_highlight");
$body.on("keyup click", remove_highlight);
}
});
var remove_highlight = function(e) {
if (e.keyCode === 27 || e.target.id === "pre_conteudo_norma") {
// DISPARA CLICK DO BOTÃO
$(".btn_marcacao").trigger("click");
}
}
/* =====================================================================================================
BOTÃO DE EXCLUIR MARCAÇÃO
===================================================================================================== */
$(document.body).on('click','.marcacao_texto_excluir', function() {
// REMOVE A FUNÇÃO DE MARCAÇÃO DA PÁGINA AO CLICAR NO BOTÃO DE EXCLUIR MARCAÇÃO
// if($("#conteudo_norma").hasClass("marcacao_texto_ativa"))
// {
// // COLOCA CLASSE DE SELEÇÃO NO CONTEÚDO
// $("#conteudo_norma").removeClass("marcacao_texto_ativa");
// // REMOVE CLASSE DE ITEM ATIVO
// $(".leg_ferramenta_marcacao").removeClass("clicked");
// // HTML DO BOTÃO
// $(".btn_marcacao").html('<span>Iniciar Marcação</span><span class="fa fa-align-center"></span>');
// // FUNÇÃO DE SELECIONAR DENTRO DO CONTEÚDO
// $(document.body).off("mouseup touchend", "#conteudo_norma", f_marca_texto);
// }
let conteudo_norma_html = $("#conteudo_norma").html();
let codigo = $(this).attr("id");
codigo = codigo.replace("marcacao_", "");
// PARÂMETROS DO POST
let form_data = {};
form_data.acao = "excluir";
form_data.id = parseInt(codigo);
form_data.leCodigo = parseInt($("#marcacao_leCodigo").val());
form_data.lvCodigo = parseInt($("#marcacao_lvCodigo").val());
let json = JSON.stringify(form_data);
// POST
$.ajax({
url: "/legislacao_marcacao.php",
type: "POST",
data: "data="+json,
assync: false,
beforeSend: function(){
// REMOVE A SELEÇÃO
window.getSelection().empty();
sw_carregando_fs("show");
},
complete: function() {
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
},
success: function(data) {
// VERIFICA SE RETORNO ESTA VAZIO
if(data.trim() != "" && data != false && data != undefined)
{
// FORMATA JSON DO RETORNO
var json = JSON.parse(data);
// VALIDAÇÃO CAMPO DE ERRO DO RETORNO
if(json.erro != "" && json.erro != undefined)
{
swal({
text: json.erro,
icon: "error",
});
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma" id="conteudo_norma">'+ conteudo_norma_html +'</div>');
}
else if(json.sucesso != "" && json.sucesso != undefined)
{
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma" id="conteudo_norma">'+ json.html +'</div>');
// COLOCA CLASSE DE SELEÇÃO NO CONTEÚDO
$("#conteudo_norma").addClass("marcacao_texto_ativa");
// FUNÇÃO DE SELECIONAR DENTRO DO CONTEÚDO
$(document.body).on("mouseup touchend", "#conteudo_norma", f_marca_texto);
}
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
// ADICIONANDO CONTEÚDO
$("#pre_conteudo_norma").html('<div class="leg_area_txt_norma leg_txt_norma" id="conteudo_norma">'+ conteudo_norma_html +'</div>');
}
});
});
/* =====================================================================================================
TIMELINE
===================================================================================================== */
var timeline = $(".leg_cont_barra_timeline");
if (timeline.length) {
var clicked = false, clickX;
var scroll_left;
// EVENTOS
var mouseup = function() {
clicked = false;
timeline.css("cursor", "");
$window.off("mouseup", mouseup)
.off("mousemove", mousemove);
}
var mousemove = function(e) {
clicked && updateScrollPos(e);
}
timeline.on({
'mousedown': function(e) {
scroll_left = timeline.scrollLeft();
clicked = true;
clickX = e.clientX;
timeline.css("cursor", "grabbing");
timeline.stop();
$window.on("mouseup", mouseup)
.on("mousemove", mousemove)
},
});
var updateScrollPos = function(e) {
timeline.scrollLeft(scroll_left + (clickX - e.clientX));
}
timeline.on("mouseup click", function() {
clicked = false;
timeline.css("cursor", "");
});
// START POSITION
// $window.on("load", function() {
// });
var move_timeline = function() {
var window_height = $window.height();
var scroll_top = $window.scrollTop();
var top_timeline = timeline.offset().top - scroll_top;
var height_timeline = timeline.height();
if (window_height/2 >= top_timeline) {
// ANALISANDO POSIÇÃO
var position;
if (timeline.find(".leg_versao_atual").closest(".leg_item_timeline").length) {
position = timeline.find(".leg_versao_atual").closest(".leg_item_timeline").offset().left - timeline.offset().left;
}
else {
position = timeline.get(0).scrollWidth - timeline.get(0).clientWidth;
}
// SETANDO POSIÇÃO
timeline.animate({
scrollLeft: position
}, 1500);
// REMOVENDO EXECUÇÃO DA FUNÇÃO
$window.off("scroll", move_timeline);
}
}
// EXECUTANDO FUNÇÃO ON SCROLL
$window.on("scroll", move_timeline);
}
/* =====================================================================================================
DATATABLE
===================================================================================================== */
$.extend( $.fn.dataTableExt.oSort, {
"date-br-pre": function ( a ) {
var x;
if ( $.trim(a) !== '' ) {
var frDatea = $.trim(a).replace(/(<([^>]+)>)/gi, "").split(' ');
var frTimea = (undefined != frDatea[1]) ? frDatea[1].split(':') : [00,00,00];
var frDatea2 = frDatea[0].split('/');
x = (frDatea2[2] + frDatea2[1] + frDatea2[0] + frTimea[0] + frTimea[1] + frTimea[2]) * 1;
}
else {
x = Infinity;
}
return x;
},
"date-br-asc": function ( a, b ) {
return a - b;
},
"date-br-desc": function ( a, b ) {
return b - a;
}
} );
// SETANDO PARÂMETROS DA TABELA
$('.leg_datatable').DataTable({
responsive: true,
"paging": false,
"info": false,
"searching": false,
scrollY: "60vh",
scrollCollapse: true,
deferRender: true,
"aaSorting": [],
columns: [
{ 'width': '35%' },
{ 'width': '50%' },
{ 'width': '15%' },
],
columnDefs: [
{ type: 'date-br', targets: 2 }
]
});
/* =====================================================================================================
INTERAÇÃO TAGS
===================================================================================================== */
var modal_interacao = $("#leg_interacao_modal");
$(document.body).on('click','.leg_interacao', function() {
var titulo = $(this).attr("data-title");
var texto = $(this).attr("data-txt");
var classe = $(this).attr("class");
var icone = $(this).find(".fa").clone();
// ALTERANDO MODAL
modal_interacao.find(".leg_cont_interacao").removeClass("leg_comentario leg_atencao leg_informacao");
modal_interacao.find(".leg_cont_interacao").addClass(classe);
modal_interacao.find(".leg_cont_interacao").removeClass("leg_interacao");
modal_interacao.find(".leg_txt_titulo").text(titulo);
modal_interacao.find(".leg_descricao_interacao").text(texto);
modal_interacao.find(".leg_icone_modal").html(icone);
// ABRINDO MODAL
modal_interacao.addClass("show");
$body.css("overflow", "hidden");
// FECHAR COM ESC
$window.on("keydown", fechar_modal_esc);
});
// FECHAR MODAL
var fechar_modal = function() {
modal_interacao.removeClass("show");
$body.css("overflow", "");
$window.off("keydown", fechar_modal_esc);
}
// FECHAR COM ESC
var fechar_modal_esc = function(k) {
if (k.keyCode == 27) { fechar_modal(); }
}
modal_interacao.click(function(e) {
if (e.target == modal_interacao.get(0) || e.target.className == "leg_btn_fechar") { fechar_modal(); }
});
/* =====================================================================================================
BARRA DE FERRAMENTAS
===================================================================================================== */
var leg_barra_ferramentas = $("#leg_barra_ferramentas");
// PERCORRENDO MENUS E SETANDO DROPDOWN
var count_ferramentas = 0;
leg_barra_ferramentas.find(".leg_cont_ferramenta").each(function() {
count_ferramentas++;
$(this).attr("data-ferramenta", count_ferramentas);
if ($(this).find(".leg_dropdown_ferramenta").length) {
// MOVENDO DROPDOWN PARA CONTENT
$(this).find(".leg_dropdown_ferramenta").attr("data-dropdown", count_ferramentas).appendTo(leg_barra_ferramentas.find(".leg_dropdown_content"));
}
});
// FIXAR TOPO
var fixar_topo = function() {
window.scrollTo(0,0); // FIXAR NO TOPO PARA INICIAR CÁLCULOS
var posicao_inicial = leg_barra_ferramentas.offset().top;
$document.scroll(function() {
var posicao_scroll = $document.scrollTop();
if (posicao_inicial < posicao_scroll) { leg_barra_ferramentas.addClass("fixed"); }
else { leg_barra_ferramentas.removeClass("fixed"); }
});
}
$document.ready(fixar_topo);
// DROPDOWN
var width_dropdown = 200;
var dropdown_leis = function(e) {
var elemento = $(e.currentTarget);
var data_ferramenta = elemento.data("ferramenta");
var left_ferramenta = elemento.position().left;
var right_ferramenta = left_ferramenta + width_dropdown;
var border_radius = 20;
if ($window.width() <= 1000) { border_radius = 2; }
var right_area_ferramentas = leg_barra_ferramentas.find(".leg_cont_ferramentas").position().left + leg_barra_ferramentas.find(".leg_cont_ferramentas").width() - border_radius;
var position_dropdown = left_ferramenta;
// ANALISANDO SE A POSIÇÃO DO MENU ULTRAPASSA A LARGURA DA BARRA
if (right_ferramenta > right_area_ferramentas) { position_dropdown = right_area_ferramentas - width_dropdown; }
// SETANDO FERRAMENTA ATIVA
leg_barra_ferramentas.find(".leg_cont_ferramenta").removeClass("drop_ativo");
leg_barra_ferramentas.find(".leg_cont_ferramenta[data-ferramenta='"+data_ferramenta+"']").addClass("drop_ativo");
// SETANDO POSIÇÃO DO SUBMENU
leg_barra_ferramentas.find(".leg_dropdown_ferramenta").removeClass("drop_ativo");
leg_barra_ferramentas.find(".leg_dropdown_ferramenta[data-dropdown='"+data_ferramenta+"']").addClass("drop_ativo").css("left", position_dropdown);
}
// CLOSE DROPDOWN
var close_modal_clickout = function(e) {
if (!$(e.target).closest(".leg_barra_ferramentas").length) {
leg_barra_ferramentas.find(".drop_ativo").removeClass("drop_ativo");
$window.off("click", close_modal_clickout);
}
}
// MOUSEENTER DROPDOWN
leg_barra_ferramentas.find(".leg_cont_ferramenta").on("mouseenter", function(e) {
if ($window.innerWidth() > 1000) {
dropdown_leis(e);
}
});
// MOUSE LEAVE
$window.on("mouseleave", "#leg_barra_ferramentas", function(e) {
if ($window.innerWidth() > 1000) {
// ANALISANDO SE NÃO HÁ A CLASSE MANTER HOVER / DROPDOWN
if (!leg_barra_ferramentas.find(".manter_hover").hasClass("drop_ativo")) {
leg_barra_ferramentas.find(".drop_ativo").removeClass("drop_ativo");
}
else {
$window.on("click", close_modal_clickout);
}
}
});
// CLICK MOBILE
leg_barra_ferramentas.find(".leg_cont_ferramenta").on("click", function(e) {
if ($window.width() <= 1000) {
var elemento = $(e.currentTarget);
var width_barra_ferramentas = leg_barra_ferramentas.width();
var max_scroll = leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").get(0).scrollWidth - leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").get(0).clientWidth;
var left_ferramenta = elemento.position().left;
// ANALISANDO SE HÁ ESPAÇO PARA ABRIR O DROPDOWN && SE O SCROLL NÃO ESTÁ NO LIMITE
if ((width_dropdown + left_ferramenta >= width_barra_ferramentas) && (leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").scrollLeft() != max_scroll)) {
leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").animate({
scrollLeft: "+="+(left_ferramenta/2)
}, 200);
setTimeout(function() { dropdown_leis(e); }, 250);
}
// ANALISANDO SE A POSIÇÃO É NEGATIVA
else if (left_ferramenta < 0) {
leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").animate({
scrollLeft: "+="+left_ferramenta
}, 100);
setTimeout(function() { dropdown_leis(e); }, 150);
}
else { dropdown_leis(e); }
// SETANDO CLICKOUT
$window.off("click", close_modal_clickout);
$window.on("click", close_modal_clickout);
}
});
// CLOSE DROPDOWN ON SCROLL DA BARRA
leg_barra_ferramentas.find(".leg_cont_barra_ferramentas").scroll(function() {
leg_barra_ferramentas.find(".drop_ativo").removeClass("drop_ativo");
});
/* =====================================================================================================
AO SELECIONAR VERSÃO DO CONTEÚDO
===================================================================================================== */
$(".leg_versao_ato").click(function() {
// VERIFICA SE ESTA VERSÃO JÁ ESTA SENDO VISUALIZADA
if(!$(this).hasClass("leg_versao_atual"))
{
// RESET VERSÕES
$(".leg_versao_ato").removeClass("leg_versao_atual");
$(".leg_versao_ato").find(".fa").removeClass("fa-check").addClass("fa-search-plus");
$(".leg_versao_ato").find("div").text("visualizar versão");
// SET VERSÃO ATUAL
$(this).addClass("leg_versao_atual");
$(this).find(".fa").addClass("fa-check").removeClass("fa-search-plus");
$(this).find("div").text("versão visualizada");
// ACIONANDO FUNÇÃO DE BUSCA DE VERSÃO
var id = $(this).attr("data-id");
var id_lei = $(this).attr("data-lei");
leg_buscar_versao(id, "conteudo_compilado", id_lei);
}
});
// VOLTAR BOTÕES PARA CONTEÚDO ORIGINAL (ORIGEM DOS BOTÕES)
function reset_botoes_barra_original(elemento, timeline)
{
// TROCA DIZRERES PARA TEXTO ORIGINAL
elemento.find(".leg_texto").text("Ver Texto Original");
elemento.attr("data-versao", "original");
elemento.attr("title", "Exibir somente o texo original, sem nenhum tipo de alteração.");
var id_vinculo = "";
var versao = "";
// MARCA VERSÃO ATUAL NA TIMELINE
if(timeline == "S")
{
// BUSCA VERSÃO ATUAL DO VÍNCULO
$(".leg_item_timeline").each(function() {
var valor = $(this).find(".leg_situacao").find(".leg_versao_ato").attr("data-id");
if(valor != "" && valor != undefined && valor != 0)
{
id_vinculo = valor;
// PEGA ÚLTIMO ELEMENTO (VERSÃO ATUAL)
versao = $(this).find(".leg_situacao").find(".leg_versao_ato");
}
});
// RESET VERSÕES (MARCAR VERSÃO ATUAL)
versao.addClass("leg_versao_atual");
versao.find(".fa").removeClass("fa-search-plus").addClass("fa-check");
versao.find("div").text("versão visualizar");
}
// EXIBE OS BOTÕES DE COMPILAÇÃO
$(".leg_cont_ferramenta").each(function() {
var ferramenta = $(this).attr("data-ferramenta");
if(ferramenta == 1 || ferramenta == 2)
$(this).fadeIn();
if(ferramenta >= 2)
return false;
});
return id_vinculo;
}
/* =====================================================================================================
BOTÃO VERSÕES DO CONTEÚDO
===================================================================================================== */
$(".leg_versao_conteudo").click(function() {
var versao = $(this).attr("data-versao");
var texto_aviso = "";
if(versao == "compilada_sem_alteracao")
{
$("#conteudo_norma s").fadeOut();
$("#conteudo_norma strike").fadeOut();
$("#conteudo_norma .leg_revogado").fadeOut();
$("#conteudo_norma .leg_alterado").fadeOut();
$("#conteudo_norma .leg_incluido").fadeOut();
$("#conteudo_norma .leg_vinculado").fadeOut();
$("#conteudo_norma p[style*='text-decoration: line-through']").css({"text-decoration":"none"});
texto_aviso = "Você esta visualizando a versão compilada sem as alterações";
}
else if(versao == "compilada_com_alteracao")
{
$("#conteudo_norma s").fadeIn();
$("#conteudo_norma strike").fadeIn();
$("#conteudo_norma .leg_revogado").fadeIn();
$("#conteudo_norma .leg_alterado").fadeIn();
$("#conteudo_norma .leg_incluido").fadeIn();
$("#conteudo_norma .leg_vinculado").fadeIn();
$("#conteudo_norma p[style*='text-decoration: none']").css({"text-decoration":"line-through"});
texto_aviso = "Você esta visualizando a versão compilada com as alterações";
}
else if(versao == "original")
{
// TEXTO ORIGINAL
var id_lei = $(this).attr("data-lei");
leg_buscar_versao("", "conteudo_original", id_lei);
// TROCA DIZRERES PARA TEXTO COMPILADO
$(this).find(".leg_texto").text("Ver texto compilado atual");
$(this).attr("data-versao", "compilada_atual");
$(this).attr("title", "Exibir conteúdo compilado atual (versão atual).");
// RESET VERSÕES
$(".leg_versao_ato").removeClass("leg_versao_atual");
$(".leg_versao_ato").find(".fa").removeClass("fa-check").addClass("fa-search-plus");
$(".leg_versao_ato").find("div").text("visualizar versão");
// ESCONDE OS BOTÕES DE COMPILAÇÃO
$(".leg_cont_ferramenta").each(function() {
var ferramenta = $(this).attr("data-ferramenta");
if(ferramenta == 1 || ferramenta == 2)
$(this).fadeOut();
if(ferramenta >= 2)
return false;
});
texto_aviso = "Você esta visualizando a versão original";
}
else if(versao == "compilada_atual")
{
// COMPILADA ATUAL (VERSÃO ATUAL)
var id_vinculo = reset_botoes_barra_original($(this), "S");
// ACIONANDO FUNÇÃO DE BUSCA DE VERSÃO
var id_lei = $(this).attr("data-lei");
leg_buscar_versao(id_vinculo, "conteudo_compilado", id_lei);
texto_aviso = "Você esta visualizando a versão atual";
}
// AVISO
$("#leg_aviso").find('.leg_aviso_texto').text(texto_aviso);
$("#leg_aviso").fadeIn("slow");
setTimeout(function() {
$("#leg_aviso").fadeOut("slow");
}, 2500);
setTimeout(function() {
$("#leg_aviso").find('.leg_aviso_texto').text("");
}, 3000);
});
/* =====================================================================================================
BOTÃO VISUALIZAR ANEXOS
===================================================================================================== */
$(".leg_anexos_visualizar").click(function() {
var leg_area_anexos = $(".leg_area_anexos");
// VERIFICA SE EXISTE O ARTIGO DESEJADO
if(leg_area_anexos.length)
{
$('html, body').animate({scrollTop: leg_area_anexos.offset().top - 150}, 1000);
}
});
/* =====================================================================================================
BOTÃO VISUALIZAR ATOS RELACIONADOS
===================================================================================================== */
$(".leg_atos_relacionados_visualizar").click(function() {
var leg_area_normas_relacionadas = $(".leg_area_normas_relacionadas");
// VERIFICA SE EXISTE O ARTIGO DESEJADO
if(leg_area_normas_relacionadas.length)
{
$('html, body').animate({scrollTop: leg_area_normas_relacionadas.offset().top - 150}, 1000);
}
});
/* =====================================================================================================
BOTÃO FAVORITAR (CURTIR)
===================================================================================================== */
function leg_curtir(btn_curtir, id, id_favorito) {
var acao = "";
var dropdown = btn_curtir.closest(".leg_dropdown_ferramenta");
var data_ferramenta = dropdown.data("dropdown");
var ferramenta = leg_barra_ferramentas.find(".leg_cont_ferramenta[data-ferramenta='"+data_ferramenta+"']");
if (ferramenta.hasClass("clicked"))
{
acao = "remover";
}
else
{
acao = "cadastrar";
}
$.ajax({
url: "/favoritos_acoes.php",
type: "POST",
data: "id="+id+"&id_favorito="+id_favorito+"&acao="+acao+"&ferramenta=legislacao",
assync: false,
success: function(data) {
data = JSON.parse(data);
if(data.erro != "" && data.erro != undefined)
{
swal({
text: data.erro,
icon: "error",
});
}
else
{
if (ferramenta.hasClass("clicked"))
{
ferramenta.removeClass("clicked");
dropdown.find("span").first().text("Curtir");
}
else
{
ferramenta.addClass("clicked");
dropdown.find("span").first().text("Descurtir");
}
// DROPDOWN FERRAMENTAS
leg_barra_ferramentas.find(".drop_ativo").removeClass("drop_ativo");
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
if ($window.innerWidth() < 1000) { ferramenta.removeClass("drop_ativo"); }
}
// AO CLICAR EM CURTIR
var btn_curtir = $(".leg_favorito");
btn_curtir.click(function() {
var id = $(this).attr("data-id");
var id_favorito = $(this).attr("data-favorito");
leg_curtir($(this), id, id_favorito);
});
/* =====================================================================================================
ANOTAÇÕES
===================================================================================================== */
var area_anotacao = $(".leg_area_anotacao");
// FUNÇÃO MINIMIZAR
area_anotacao.find(".leg_btn_minimizar_anotacao").click(function() {
area_anotacao.addClass("min");
});
// FUNÇÃO MAXIMIZAR
area_anotacao.find(".leg_btn_maximizar_anotacao").click(function() {
area_anotacao.removeClass("min");
leg_barra_ferramentas.removeClass("show");
});
// FUNÇÃO FECHAR
area_anotacao.find(".leg_btn_fechar_anotacao").click(function() {
area_anotacao.removeClass("show");
});
// ABRIR ANOTAÇÃO
$(".leg_anotacoes").click(function() {
area_anotacao.addClass("show");
area_anotacao.removeClass("min");
leg_barra_ferramentas.removeClass("show");
});
// FUNÇÃO ANOTAR
function leg_anotar()
{
var anotacao = area_anotacao.find("#anAnotacao").val();
var id = area_anotacao.find("#anAnotacao").attr("data-id");
var id_anotacao = area_anotacao.find("#anAnotacao").attr("data-anotacao");
if(id_anotacao == undefined)
id_anotacao = "";
if(anotacao == "")
{
swal({
text: "Por favor, informe a descrição da sua anotação para continuar.",
icon: "warning",
});
return false;
}
$.ajax({
url: "/portal/leis_decretos/acao/",
type: "POST",
data: "id="+id+"&acao=anotacao_adicionar&anotacao="+anotacao+"&id_anotacao="+id_anotacao,
assync: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
},
success: function(data) {
data = JSON.parse(data);
if(data.erro == "" || data.erro == undefined || data.erro == null)
{
area_anotacao.find(".leg_btn_apagar_anotacao").fadeIn();
area_anotacao.find(".leg_data_anotacao").html('<span class="fa fa-clock-o"></span> Atualizado em: '+data.data);
area_anotacao.find("#anAnotacao").attr("data-anotacao", data.id);
// BARRA DE FERRAMENTAS
leg_barra_ferramentas.find(".leg_ferramenta_anotacao").addClass("clicked");
leg_barra_ferramentas.find(".leg_anotacoes").text("Ver minha Anotação");
location.reload();
}
else
{
swal({
text: data.erro,
icon: "error",
})
.then(function() {
location.reload(true);
});
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
}
// ANOTAR EVENTO ON CHANGE
area_anotacao.find("#anAnotacao").on("change", function() {
//if(e.which == 13) {
leg_anotar();
area_anotacao.find("#anAnotacao_pdf").text($(this).val());
});
// BOTÃO GRAVAR
area_anotacao.find(".leg_btn_salvar_anotacao").click(leg_anotar);
// EXCLUIR ANOTAÇÃO
area_anotacao.find(".leg_btn_apagar_anotacao").click(function() {
var btn_apagar_anotacao = $(this);
swal({
title: "Atenção!",
text: "Deseja realmente excluir sua anotação?",
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
var id_anotacao = btn_apagar_anotacao.attr("data-anotacao");
if(id_anotacao == "" || id_anotacao == undefined)
{
return false
}
$.ajax({
url: "/portal/leis_decretos/acao/",
type: "POST",
data: "acao=anotacao_excluir&id_anotacao="+id_anotacao,
assync: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro == "" || data.erro == undefined || data.erro == null)
{
area_anotacao.removeClass("show");
area_anotacao.find("#anAnotacao").val("");
area_anotacao.find("#anAnotacao_pdf").text("");
area_anotacao.find(".leg_data_anotacao").html("");
area_anotacao.find(".leg_btn_apagar_anotacao").fadeOut();
// BARRA DE FERRAMENTAS
leg_barra_ferramentas.find(".leg_ferramenta_anotacao").removeClass("clicked");
leg_barra_ferramentas.find(".leg_anotacoes").text("Fazer uma Anotação");
location.reload();
}
else
{
swal({
text: data.erro,
icon: "error",
})
.then(function() {
location.reload(true);
});
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
}
});
});
// INICIALIZANDO MINIMIZADO EM DISPOSITIVOS MÓVEIS
if (area_anotacao.hasClass("show") && $window.width() >= 1000) {
$window.on("load", function() { area_anotacao.removeClass("min"); });
}
/* =====================================================================================================
BOTÃO BUSCA POR EXPRESSÃO
===================================================================================================== */
//var timeout_opacity;
function leg_buscar_expressao()
{
// SALVA OS ELEMENTOS
var $resultados;
// ÍNDICE ATUAL DO ELEMENTO EM FOCO
var elemento_foco = 0;
var $prevBtn = $("#leg_busca_expressao_anterior");
var $nextBtn = $("#leg_busca_expressao_proximo");
// SALTA PARA O ELEMENTO CORRESPONDENTE AO elemento_foco
function elementoFoco()
{
// EXIBINDO NAVEGAÇÃO DE RESULTADOS
leg_barra_ferramentas.find(".leg_navegacao_buscar_expressao").fadeIn(200);
if ($resultados.length)
{
var position;
var $current = $resultados.eq(elemento_foco);
var info_resultados = + elemento_foco+1 + " de " +$resultados.length;
// EXIBINDO BOTÕES DE NAVEGAÇÃO DE RESULTADOS
leg_barra_ferramentas.find(".leg_navegacao_buscar_expressao .leg_btn_navegacao").show();
// SETANDO INFORMAÇÃO DE RESULTADOS
$("#leg_info_busca_expressao").text(info_resultados);
// REMOVENDO CLASSE ATUAL DE TODOS OS RESULTADOS
$resultados.removeClass("atual");
// INSERINDO CLASSE ATUAL AO RESULTADO ESPECÍFICO
if ($current.length)
{
$current.addClass("atual");
position = $current.offset().top - 300;
window.scrollTo(0, position);
}
}
else
{
// OCULTANDO BOTÕES DE NAVEGAÇÃO DE RESULTADOS
leg_barra_ferramentas.find(".leg_navegacao_buscar_expressao .leg_btn_navegacao").hide();
// SETANDO INFORMAÇÃO DE RESULTADOS
$("#leg_info_busca_expressao").text("Expressão não encontrada");
}
}
// BUSCAR ANTERIOR E PRÓXIMO
$nextBtn.add($prevBtn).on("click", function() {
if ($resultados.length)
{
elemento_foco += $(this).is($prevBtn) ? -1 : 1;
if (elemento_foco < 0)
{
elemento_foco = $resultados.length - 1;
}
if (elemento_foco > $resultados.length - 1)
{
elemento_foco = 0;
}
elementoFoco();
}
});
// BUSCAR PALAVRA NO CONTEÚDO
var busca = $("#leg_busca_expressao").val();
$("#conteudo_norma").unmark({
done: function() {
$("#conteudo_norma").mark(busca, {
separateWordSearch: true,
done: function() {
$resultados = $("#conteudo_norma").find("mark");
elemento_foco = 0;
elementoFoco();
}
});
}
});
}
// LIMPAR CAMPO DE BUSCA EXPRESSÃO
$("#leg_busca_expressao_limpar").on("click", function() {
$("#conteudo_norma").unmark();
$("#leg_busca_expressao").val("").focus();
// OCULTANDO NAVEGAÇÃO DE RESULTADOS
leg_barra_ferramentas.find(".leg_navegacao_buscar_expressao").fadeOut(200);
});
// PESQUISA A PALAVRA INFORMADA (ENTER)
$("#leg_busca_expressao").keypress(function(e) {
if(e.which == 13)
{
leg_buscar_expressao();
}
});
// PESQUISA A PALAVRA INFORMADA (BOTÃO)
$("#btn_busca_expressao").on("click", function() {
leg_buscar_expressao();
});
/* =====================================================================================================
BOTÃO BUSCAR POR ARTIGO
===================================================================================================== */
function leg_buscar_artigo()
{
var artigo = $("#leg_busca_artigo").val();
var artigo_tag = $("#a-"+artigo);
// VERIFICA SE EXISTE O ARTIGO DESEJADO
if(artigo_tag.length)
{
$('html, body').animate({scrollTop: artigo_tag.offset().top - 300}, 1000);
}
}
// BUSCAR POR ARTIGO (ENTER)
$("#leg_busca_artigo").keypress(function(e) {
if(e.which == 13)
{
leg_buscar_artigo();
}
});
// BUSCAR POR ARTIGO (BOTÃO)
$("#btn_busca_artigo").click(function() {
leg_buscar_artigo();
});
/* =====================================================================================================
BOTÃO GERAR CÓDIGO QR
===================================================================================================== */
$("#leg_gerar_codigo_qr").click(function() {
sw_popup("#leg_qrcode", "S");
});
/* =====================================================================================================
BOTÃO IMPRIMIR
===================================================================================================== */
$("#leg_btn_imprimir").click(function() {
window.print();
});
/* =====================================================================================================
BOTÃO REPORTAR ERRO
===================================================================================================== */
$("#leg_reportar_erro").click(function() {
sw_popup("#leg_reportar_erro_modal", "S");
});
// ENVIAR REPORTAÇÃO
$("#EnviarErro").click(function() {
var nome = $("#form_reportar_erro").find($("#form_nome")).val();
var email = $("#form_reportar_erro").find($("#form_email")).val();
var mensagem = $("#form_reportar_erro").find($("#form_mensagem")).val();
var id = $("#form_reportar_erro").find($("#id")).val();
var recaptcha = $(".captcha_reportar_erro").find("textarea.g-recaptcha-response").val();
if(nome == "" || nome == undefined || email == "" || email == undefined || mensagem == "" || mensagem == undefined || id == "" || id == undefined || recaptcha == "" || recaptcha == undefined)
{
swal({
text: "Por favor, preencha os campos obrigatórios para continuar.",
icon: "error",
});
return false;
}
$.ajax({
url: "/portal/leis_decretos/acao/",
dataType: 'html',
type: 'POST',
data: "acao=reportar_erro&nome="+nome+"&email="+email+"&mensagem="+mensagem+"&id="+id+"&captcha="+recaptcha,
beforeSend: function() {
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro == "" || data.erro == undefined || data.erro == null)
{
swal({
text: data.sucesso,
icon: "success",
});
}
else
{
swal({
text: data.erro,
icon: "error",
});
}
sw_fechar_popup($("#leg_reportar_erro_modal"));
},
error: function(xhr,er) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
});
/* =====================================================================================================
BOTÃO EXIBIR DETALHES SITUAÇÃO
===================================================================================================== */
$window.on("click", ".leg_link_processo_situacao", function() {
var id_vinculo = $(this).attr("data-vinculo");
// ABRIR MODAL
sw_popup("#leg_modal_situacoes", "S");
$.ajax({
url: "/portal/leis_decretos/acao/",
type: "POST",
data: "id_vinculo="+id_vinculo+"&acao=vinculos_situacao",
assync: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro == "" || data.erro == undefined || data.erro == null)
{
// ADICIONANDO CONTEÚDO
$("#leg_modal_situacoes").find(".modal_titulo").html(data.titulo);
$("#leg_modal_situacoes").find(".modal_descricao").html(data.descricao);
$("#leg_modal_situacoes").find('.modal_conteudo').html(data.conteudo);
}
else
{
swal({
text: "Erro ao buscar informações, tente novamente!",
icon: "error",
})
.then(function() {
sw_fechar_popup($("#leg_modal_situacoes"));
});
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
});
/* =====================================================================================================
FUNÇÕES 0N RESIZE
===================================================================================================== */
var window_width = $window.innerWidth();
$window.resize(function() {
if (window_width != $window.innerWidth()) {
// FIXAR TOPO
//fixar_topo();
// DROPDOWN FERRAMENTAS
leg_barra_ferramentas.find(".drop_ativo").removeClass("drop_ativo");
}
});
});
</script>]]>
|
2033
| <![CDATA[<script>
/* ============================================================================================
FUNÇÃO PARA VALIDAR CPF ENQUETE
============================================================================================ */
function validarCPF(cpf) {
cpf = cpf.replace(/[^\d]+/g,'');
if(cpf == '') return false;
//ELIMINA CPF'S INVALIDOS CONHECIDOS
if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false;
//VALIDA O PRIMEIRO DIGITO
add = 0;
for (i=0; i < 9; i ++)
add += parseInt(cpf.charAt(i)) * (10 - i);
rev = 11 - (add % 11);
if (rev == 10 || rev == 11)
rev = 0;
if (rev != parseInt(cpf.charAt(9)))
return false;
//VALIDA O SEGUNDO DIGITO
add = 0;
for (i = 0; i < 10; i ++)
add += parseInt(cpf.charAt(i)) * (11 - i);
rev = 11 - (add % 11);
if (rev == 10 || rev == 11)
rev = 0;
if (rev != parseInt(cpf.charAt(10)))
return false;
return true;
}
/* ============================================================================================
FUNÇÃO PARA VALIDAR E-MAIL ENQUETE
============================================================================================ */
function validarEmail(email) {
var regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return regex.test(email);
}
/* ============================================================================================
FUNÇÃO PARA RETORNO DA VOTAÇÃO DA ENQUETE
============================================================================================ */
function retorna_enquete(data){
if(data != '')
{
$('#votar').hide();
$("#e_cont_enquete").html(data);
}
}
$(document).ready(function() {
/* ============================================================================================
ENQUETE
============================================================================================ */
// CLICK DO BOTÃO COM ID VOTAR DA ENQUETE
$('#votar').click(function(){
var opcao = $("input[name=form_resposta]:checked").val();
opcao = parseInt(opcao);
var recaptcha = "";
//A CLASSE e_captcha_enquete DEVE SER INSERIDA NO HTMLQUE CONTER O CAPTCHA DA ENQUETE, PARA QUE O CÓDIGO CONSIGA LOCALIZAR O RESULTADO REFERENTE AO LOCAL CORRETO
recaptcha = $(".e_captcha_enquete").find("textarea.g-recaptcha-response").val();
//SE EXISTIR OS CAMPOS DE NOME E E-MAIL
if($('#form_nome_enquete').length || $('#form_email_enquete').length || $("#form_cpf_enquete").length || $("#form_data_enquete").length)
{
if(isNaN(opcao))
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
else
{
if($("#form_nome_enquete").val() == "" || $("#form_email_enquete").val() == "" || $("#form_cpf_enquete").val() == "" || $("#form_data_enquete").val() == "")
{
swal({
text: "Enquete: preencha os campos.",
icon: "warning"
});
}
else
{
var nome = $("#form_nome_enquete").val();
var email = $("#form_email_enquete").val();
var cpf = $("#form_cpf_enquete").val();
var data = $("#form_data_enquete").val();
var invalido = "";
if($("#form_cpf_enquete").val() != '' && $("#form_cpf_enquete").length)
{
if(validarCPF(cpf) == false)
{
swal({
text: "Enquete: CPF informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if($("#form_email_enquete").val() != '' && $("#form_email_enquete").length)
{
if(validarEmail(email) == false)
{
swal({
text: "Enquete: E-mail informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if(invalido != "S")
{
$.post('/enquete_votar.php',{ enviar: 's', form_resposta: opcao, form_nome: nome, form_email: email, form_cpf: cpf, form_data: data, captcha: recaptcha }, retorna_enquete);
}
}
}
}
else
{
if(!isNaN(opcao))
{
$.post('/enquete_votar.php',{ enviar: 's', form_resposta: opcao, captcha: recaptcha }, retorna_enquete);
}
else
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
}
});
/* ============================================================================================
ACESSIBILIDADE
============================================================================================ */
// BOTÃO DE AUMENTAR A FONTE
$(".aumentar").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) + 1;
if(size < 18)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE DIMINUIR A FONTE
$(".diminuir").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) - 1;
if(size > 10)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE CONTRASTE DE COR
$("#contraste").click(function () {
if($("body").hasClass("contraste"))
{
$("body").removeClass("contraste");
$("body").css("background","#FFFFFF");
$("#logo_branca").hide();
}
else
{
$("body").addClass("contraste");
$("#logo_branca").show();
}
});
// BOTÃO IR PARA BUSCA
$("#irbusca").click(function () {
$("#e_campo_busca").focus();
});
// VLIBRAS
$(".vlibras").click(function() {
$("#vlibras_include div[vw-access-button]").trigger("click");
});
/* ============================================================================================
TRATA LINK DA BUSCA
============================================================================================ */
$("#formulario_busca").bind('submit',function() {
var busca;
busca = $("#e_campo_busca").val();
if($("#e_campo_busca").val() == "")
{
busca = 0;
}
window.location.href = '/portal/busca/' + busca;
return false;
});
});
/* ============================================================================================
CARREGANDO
============================================================================================ */
// FUNÇÃO APPEND ELEMENTO CARREGANDO FULL SCREEN
function sw_carregando_fs(acao) {
var obj = $("body");
// ANALISANDO AÇÃO
if (acao == "show") {
var bloqueia_acoes = function() {
return false;
}
// INSERINDO CARREGANDO
obj.append("<div class=\"sw_carregando_fs\"><div><span class=\"sw_lato\">Carregando . . .</span></div></div>");
obj.addClass("ovfhidden");
$(document).on("click", bloqueia_acoes);
$(document).on("contextmenu", bloqueia_acoes);
$(document).on("keydown", bloqueia_acoes);
}
else {
// REMOVENDO CARREGANDO
obj.find(".sw_carregando_fs").fadeOut(150, function() {
$(this).remove();
obj.removeClass("ovfhidden");
$(document).off("click", bloqueia_acoes);
$(document).off("contextmenu", bloqueia_acoes);
$(document).off("keydown", bloqueia_acoes);
});
}
}
/* ============================================================================================
POPUP
============================================================================================ */
// FUNÇÃO ABRIR PÁGINA
function sw_abrir_janela(pagina, altura, largura) {
var a = (screen.height/2)-(altura/2);
var l = (screen.width/2)-(largura/2);
window.open(pagina,'senha','width='+largura+',height='+altura+',top='+a+',left='+l+',scrollbars=1');
}
// ABRIR POPUP
function sw_abrir_popup(elemento) {
elemento.fadeIn(200);
elemento.find(".sw_popup").animate({"top": "+20px"}, "fast");
$("body").css("overflow", "hidden");
}
// FECHAR POPUP
function sw_fechar_popup(elemento) {
elemento.fadeOut(200);
elemento.find(".sw_popup").animate({"top": "-20px"}, "fast", function() { $(".sw_popup_modal:visible").last().find("input, button").first().focus(); });
// if ($(".sw_popup_modal").is(":hidden")) {
setTimeout(function () {
$("body").css("overflow", "auto");
}, 300);
// }
}
// SW POPUP ( ".ELEMENTO / #ELEMENTO" , "SE MODAL PODE SER FECHADO OU NÃO")
function sw_popup(elemento, fechar) {
if (!fechar) { fechar = "S"; }
var id_elemento = elemento.substr(1); // REMOVE O PRIMEIRO CARACTERE (# OU .)
var elemento = $(""+elemento+"");
// ABRIR POPUP
sw_abrir_popup(elemento);
// FECHAR POPUP
elemento.find(".sw_btn_fechar_popup").click(function() { sw_fechar_popup(elemento); });
// ANALISANDO SE MODAL PODE SER FECHADO AO CLICAR FORA DA JANELA E AO TECLAR ESC
if (fechar == "S") {
elemento.addClass("keyupmodal")
// FECHAR AO CLICAR NA TELA ESCURA
elemento.click(function(e) {
if (e.target.id == id_elemento) {
sw_fechar_popup(elemento);
}
});
//elemento.click(function() { console.log("fechou!"); sw_fechar_popup(elemento); });
//elemento.find(".sw_popup").on("click", function() { event.stopPropagation(); });
// FECHAR AO CLICAR ESC
$(document).on("keyup", function(e) {
if (e.keyCode === 27) {
if ($(".sw_popup_modal:visible").last().hasClass("keyupmodal")) {
sw_fechar_popup($(".keyupmodal:visible").last());
}
}
});
}
}
</script>]]>
|
2428
| <![CDATA[<script>
// FUNÇÕES JS
$(document).ready(function() {
// FUNÇÃO PARA ACIONAR DROP DO LOGIN DO INTERNAUTA MOBILE
$(window).click(function() { $("#itn_area_botoes_internauta").removeClass("itn_area_botoes_internauta_show"); });
$(".itn_area_img_internauta").on("click", function() {
event.stopPropagation();
$("#itn_area_botoes_internauta").toggleClass("itn_area_botoes_internauta_show");
});
// ACIONANDO POPUP LOGIN
$(".itn_btn_login").click(function() {
sw_popup("#itn_login", "S");
// RECUPERAÇÃO DE SENHA
$("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) });
});
// SAIR
$("#sair_internauta").click(function() {
swal({
title: "Atenção!",
text: "Deseja realmente sair do portal?",
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
location.href = "/portal/internautas/sair";
}
});
});
});
// ABRIR POPUP INTERNAUTA
function abrir_popup_internautas(elemento) {
sw_abrir_popup(elemento);
$("#cpf_cnpj_email").focus();
}
// FECHAR POPUP INTERNAUTA
function fechar_popup_internautas(elemento) {
verifica_popups_termos();
sw_fechar_popup(elemento);
}
// TRANSFORMAR DADOS EM MAIÚSCULOS
function internautas_transformar_string(string)
{
if(string.value != "" && string.id != "")
{
$("#"+string.id).val(string.value.toUpperCase());
}
}
// FORMATA VALOR (CPF OU CNPJ)
function formata_cpf_cnpj(value)
{
const cnpjCpf = value.replace(/\D/g, '');
if (cnpjCpf.length === 11)
{
return cnpjCpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/g, "\$1.\$2.\$3-\$4");
}
else if (cnpjCpf.length === 14)
{
return cnpjCpf.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/g, "\$1.\$2.\$3/\$4-\$5");
}
}
// VALIDAR CPF
function validar_cpf(cpf)
{
cpf = cpf.replace(/[^\d]+/g,'');
if(cpf == '') return false;
// Elimina CPFs invalidos conhecidos
if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false;
// Valida 1o digito
add = 0;
for (i=0; i < 9; i ++)
add += parseInt(cpf.charAt(i)) * (10 - i);
rev = 11 - (add % 11);
if (rev == 10 || rev == 11)
rev = 0;
if (rev != parseInt(cpf.charAt(9)))
return false;
// Valida 2o digito
add = 0;
for (i = 0; i < 10; i ++)
add += parseInt(cpf.charAt(i)) * (11 - i);
rev = 11 - (add % 11);
if (rev == 10 || rev == 11)
rev = 0;
if (rev != parseInt(cpf.charAt(10)))
return false;
return true;
}
// VALIDAR CNPJ
function validar_cnpj(cnpj)
{
cnpj = cnpj.replace(/[^\d]+/g,'');
if(cnpj == '') return false;
if (cnpj.length != 14)
return false;
if (cnpj == "00000000000000" || cnpj == "11111111111111" || cnpj == "22222222222222" || cnpj == "33333333333333" || cnpj == "44444444444444" || cnpj == "55555555555555" || cnpj == "66666666666666" || cnpj == "77777777777777" || cnpj == "88888888888888" || cnpj == "99999999999999")
return false;
tamanho = cnpj.length - 2
numeros = cnpj.substring(0,tamanho);
digitos = cnpj.substring(tamanho);
soma = 0;
pos = tamanho - 7;
for(i = tamanho; i >= 1; i--)
{
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(0))
return false;
tamanho = tamanho + 1;
numeros = cnpj.substring(0,tamanho);
soma = 0;
pos = tamanho - 7;
for (i = tamanho; i >= 1; i--)
{
soma += numeros.charAt(tamanho - i) * pos--;
if (pos < 2)
pos = 9;
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado != digitos.charAt(1))
return false;
return true;
}
////
// VERIFICA SE ACABOU OS TERMOS PARA REDIRECIONAR INTERNAUTA
function verifica_popups_termos()
{
var contador = $('#cont_popup').val();
var link = $('#link').val();
if(contador - 1 == 0 || contador == "")
{
setTimeout(function() {
var elemento = ".itn_consentimentos";
elemento = $(""+elemento+"");
fechar_popup_internautas(elemento);
var elemento_link = ".itn_consentimentos_link";
elemento_link = $(""+elemento_link+"");
fechar_popup_internautas(elemento_link);
var url_atual = window.location.pathname;
// REDIRECIONA APENAS QUANDO LOGAR OU CADASTRAR
if(url_atual != "/portal/internautas/dados" && url_atual != "/portal/internautas/dados/consentimentos" && url_atual != "/portal/internautas/dados/preferencias")
{
if(link == "/portal/internautas/alterar")
{
location.href = link;
}
else if(link != "")
{
location.href = link;
}
else
{
location.href = '/portal/leis_decretos/105/';
}
}
$('#cont_popup').val("0");
}, 300);
}
else
{
contador = contador - 1;
$('#cont_popup').val(contador);
}
return contador;
}
// SE ESTIVER NA PÁGINA DE CONSENTIMENTOS (ACEITANDO, RECUSANDO OU REVOGANDO) A PÁGINA DEVERÁ SER RECARREGADA
function redireciona_internauta_consentimento()
{
setTimeout(function() {
if(window.location.pathname == "/portal/internautas/dados/consentimentos" || window.location.pathname == "/portal/internautas/dados")
{
location.href = window.location.pathname;
}
}, 800);
}
// CLICK DO BOTÃO OK (QUANDO ENTRAR EM UMA FERRAMENTA QUE TIVER TERMO DO TIPO EMITE AVISO QUE FOI ENVIADO UM E-MAIL PARA CONFIRMAÇÃO)
function btn_ok(id_consentimento)
{
if(id_consentimento != "")
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
fechar_popup_internautas(elemento);
}
}
// CLICK DO BOTÃO REENVIAR
function btn_reenviar_consentimento(id_consentimento)
{
if(id_consentimento != "")
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"reenviar_consentimento", consentimento:id_consentimento}, retorno);
function retorno(data)
{
fechar_popup_internautas(elemento);
}
}
}
// EXIBE MENSAGENS DE SUCESSO E ERRO
function int_msg_erro(mensagem)
{
$("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_erro" style="display:none;"><i class="fa fa-times-circle-o"></i><span>'+mensagem+'</span></div>');
$(".sw_aviso_suspenso_erro").fadeIn("slow");
setTimeout(function() {
$(".sw_aviso_suspenso_erro").fadeOut("slow");
}, 1500);
}
function int_msg_sucesso(mensagem)
{
$("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_sucesso" style="display:none;"><i class="fa fa-check-circle-o"></i><span>'+mensagem+'</span></div>');
$(".sw_aviso_suspenso_sucesso").fadeIn("slow");
setTimeout(function() {
$(".sw_aviso_suspenso_sucesso").fadeOut("slow");
}, 1500);
}
// CLICK DO BOTÃO "CONFIRMAR CÓDIGO"
function btn_confirmar_codigo_consentimento(id_consentimento)
{
var codigo = $("#form_codigo_confirmacao_consentimento").val();
if(id_consentimento != "" && codigo != "")
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"confirmar_codigo_consentimento", consentimento:id_consentimento, codigo:codigo}, retorno);
function retorno(data)
{
data = JSON.parse(data);
fechar_popup_internautas(elemento);
if(data.resultado == "sucesso")
{
int_msg_sucesso("Consentimento confirmado com sucesso!");
}
else
{
int_msg_erro("Erro ao confirmar consentimento!");
}
}
}
}
// EXIBE MENSAGEM DE ERRO NO PROCESSO (CASO FALTE ALGUM DADO)
function exibe_mensagem_erro_processo()
{
$(".sw_area_botoes_popup").hide();
$(".sw_conteudo_popup").html('<div class="sw_aviso sw_aviso_erro sw_lato"><i class="fa fa-exclamation-triangle"></i> <span>Ops, algo deu errado. Tente novamente mais tarde.</span></div>');
// setTimeout(function() {
// fechar_popup_internautas(elemento);
// }, 1000);
}
// CLICK DO BOTÃO ACEITAR
function btn_aceitar(id_consentimento, id_termo)
{
if(id_consentimento != "" && id_consentimento != undefined)
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"S"}, retorno);
function retorno(data)
{
data = JSON.parse(data);
fechar_popup_internautas(elemento);
if(data.resultado == "sucesso")
{
int_msg_sucesso("Consentimento aceito com sucesso!");
}
else
{
int_msg_erro("Erro ao aceitar consentimento!");
}
redireciona_internauta_consentimento();
}
}
else
{
exibe_mensagem_erro_processo();
}
}
// CLICK DO BOTÃO RECUSAR
function btn_recusar(id_consentimento, id_termo, obrigatorio)
{
// VERIFICA SE TERMO É OBRIGATÓRIO PARA SOLICITAR CONFIRMAÇÃO
if(obrigatorio == "S")
{
swal({
text: "Tem certeza que deseja recusar? É obrigatório a aceitação desse termo.",
icon: "warning",
buttons: ['Cancelar', 'OK']
})
.then(function(acao) {
if(acao == "OK")
{
if(id_consentimento != "" && id_consentimento != undefined)
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno);
function retorno(data)
{
data = JSON.parse(data);
elemento.find(".sw_area_botoes_popup").hide();
fechar_popup_internautas(elemento);
if(data.resultado == "sucesso")
{
int_msg_sucesso("Consentimento recusado com sucesso!");
}
else
{
int_msg_erro("Erro ao recusar consentimento!");
}
redireciona_internauta_consentimento();
}
}
else
{
exibe_mensagem_erro_processo();
}
}
});
}
else
{
if(id_consentimento != "" && id_consentimento != undefined)
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno);
function retorno(data)
{
data = JSON.parse(data);
elemento.find(".sw_area_botoes_popup").hide();
fechar_popup_internautas(elemento);
if(data.resultado == "sucesso")
{
int_msg_sucesso("Consentimento recusado com sucesso!");
}
else
{
int_msg_erro("Erro ao recusar consentimento!");
}
redireciona_internauta_consentimento();
}
}
else
{
exibe_mensagem_erro_processo();
}
}
}
// CLICK DO BOTÃO REVOGAR (ENVIAR - REVOGAR DE FATO)
function btn_revogar(id_consentimento)
{
var motivo = $("#motivo_revogar").val();
if(id_consentimento != "" && id_consentimento != undefined)
{
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
$.post('/internautas_acao.php', {acao:"revogar_consentimento", consentimento:id_consentimento, motivo:motivo}, retorno);
function retorno(data)
{
data = JSON.parse(data);
fechar_popup_internautas(elemento);
if(data.resultado == "sucesso")
{
int_msg_sucesso("Consentimento revogado com sucesso!");
}
else
{
int_msg_erro("Erro ao revogar consentimento!");
}
redireciona_internauta_consentimento();
}
}
else
{
exibe_mensagem_erro_processo();
}
}
// CLICK NO BOTÃO REVOGAR PARA EXIBIR CAMPO DO MOTIVO
function btn_revogar_motivo(id_consentimento)
{
// EXIBE CAMPO PARA INFORMAR MOTIVO
$(".itn_area_motivo").fadeIn();
// DESCE TELA
$(".sw_popup_modal").animate({ scrollTop: $(document).height() }, 1000);
// SETA NOVO ONCLICK PARA BOTÃO E REMOVE CLASSE
$(".itn_btn_revogar").attr("onClick", "btn_revogar("+id_consentimento+")");
$(".itn_btn_revogar").removeClass("itn_btn_revogar_cinza");
// ADICIONA FOCO NO CAMPO
$("#motivo_revogar").focus();
}
// CLICK DO BOTÃO ASSINAR
function btn_assinar(id_consentimento, id_termo, arquivo, diretorio, origem)
{
// DESABILITA BOTÃO
$("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").attr("disabled", "disabled");
$("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").fadeOut();
var elemento = "#itn_consentimentos_int_"+id_consentimento;
elemento = $(""+elemento+"");
// AUTORIZADO OK SIGNIFICA QUE TEM CREDITOS PARA GASTAR COM A OPERAÇÃO, SE NÃO HOUVER VAI RETORNAR MENSSAGEM DE ERRO AO USUÁRIO
if('ok' != 'ok')
{
swal({
text: "Você não possui créditos para assinar o documento, favor entrar em contato com Prefeitura Municipal de Guaiçara.",
icon: "error"
});
}
else
{
// EXTRAI EXTENSÃO DO ARQUIVO
var coleta_extensao = arquivo.split(".");
// VERIFICA SE O ARQUIVO É UM PDF
if (coleta_extensao[1] != "pdf")
{
swal({
text: "Extensão inválida, somente arquivos PDF podem ser assinados",
icon: "error"
});
}
else
{
// CARREGA SELECT E MENSAGEM
$("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="itn_area_assinatura"><div class="sw_aviso sw_aviso_alerta sw_lato"><i class="fa fa-exclamation-triangle"></i><span>Por favor, selecione o certificado digital desejado para assinar este documento logo abaixo.</span></div><select id="certificateSelect"><option value="0">Selecione seu certificado A3...</option></select></div>');
// EXIBE SELECT E MENSAGEM
$(".itn_area_assinatura").fadeIn();
// CRIA OBJETO PARA MANIPULAÇÃO DOAS CERTIFICADOS E ASSINATURAS
var pki = new LacunaWebPKI();
pki.init({
ready: onWebPkiReady,
notInstalled: onWebPkiNotInstalled,
defaultError: onWebPkiError,
restPkiUrl: 'https://pki.rest/'
});
// FUNÇÃO DE LISTAGEM DOS CERTIFICADOS
function onWebPkiReady () {
pki.listCertificates().success(function (certs) {
var selecao = $("#certificateSelect");
$.each(certs, function() {
// VERIFICA SE É PESSOA FÍSICA OU JURÍDICA
if(this.pkiBrazil.isPessoaFisica)
{
var doc = this.pkiBrazil.cpf;
var doc_internauta = "";
}
else
{
var doc = this.pkiBrazil.cnpj;
var doc_internauta = "";
}
var validadefim = this.validityEnd;
// VERIFICA DOCUMENTO
if(doc == doc_internauta)
{
selecao.append($('<option data-doc="'+doc+'" data-validadefim="'+validadefim+'" />').val(this.thumbprint)
.text(this.subjectName)
);
}
});
});
}
// FUNÇÃO SE O PLUGIN NÃO ESTIVER INSTALADO
function onWebPkiNotInstalled (status, message) {
swal({
text: "Plugin do Assinador não instalado, você será redirecionado para página de instalação.",
icon: "warning"
})
.then(function() {
pki.redirectToInstallPage();
});
}
// FUNÇÃO PARA IMPRIMIR O ERRO CASO OCORRA
function onWebPkiError(message, error, origin) {
swal({
text: "Erro ao assinador documento. Token/certificado não foi reconhecido. Tente conecta-lo em outra porta ou reinicie o navegador.",
icon: "error"
})
.then(function() {
$("#sw_carregando_dados").hide();
});
}
// CARREGA E EXIBE BOTÃO
$("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="sw_btn_popup sw_btn_aceitar itn_btn_aceitar" id="signPDFButton" style="display:none;"><i class="fa fa-check-circle-o" aria-hidden="true"></i><span>ASSINAR PDF</span></div>');
$("#signPDFButton").fadeIn();
// PASSA OS VALORES O BOTÃO "ASSINAR PDF" DENTRO DA SELEÇÃO DOS CERTIFICADOS
$('#signPDFButton').attr("data-arquivo", arquivo);
$('#signPDFButton').attr("data-diretorio", diretorio);
$('#signPDFButton').attr("data-origem", origem);
$('#signPDFButton').attr("data-codigo", id_consentimento);
// CLICK DO BOTÃO ASSINAR PDF
$('#signPDFButton').click(function(){
if(($('#certificateSelect').val() != null) && ($('#certificateSelect').val() != '0'))
{
// CARREGANDO
$("#sw_carregando_dados").show();
// VALOR DO CERTIFCADO SELECIONADO
var selectedCertThumb = $('#certificateSelect').val();
// VALOR COM ARQUIVO QUE SERÁ ASSINADO
var arquivo = $(this).attr("data-arquivo");
// VALOR COM O DIRETÓRIO DO ARQUIVO QUE SERÁ ASSINADO
var diretorio = $(this).attr("data-diretorio");
// MONTA DIRETÓRIO COMPLETO PARA O ARQUIVO QUE SERÁ ASSSINADO
var arquivo_completo = diretorio+arquivo;
// VALOR COM O NOME DO CERTIFICADO DIGITAL ESCOLHIDO
var emissor = $('#certificateSelect option:selected').text();
// VALOR COM O DOCUMENTO DO CERTIFICADO QUE FOI ESCOLHIDO
var documento = $('#certificateSelect option:selected').attr("data-doc");
// VALOR COM A VALIDADE DO CERTIFICADO ESCOLHIDO
var finalvalidade = $('#certificateSelect option:selected').attr("data-validadefim");
// VALOR COM A ORIGEM DA PAGINA ONDE O ARQUIVO ESTA SENDO ASSINADO
var origem = $(this).attr("data-origem");
// VALOR COM O ID DO ARQUIVO QUE ESTA SENDO ASSINADO
var codigo = $(this).attr("data-codigo");
// PRIMEIRO POST INICIA O PROCESSO DE ASSINATURA
$.post('/sg/assinador_a3.php', {arquivo:arquivo_completo, carimbo_tempo:'S', etapa:'1'}, retorno1);
function retorno1(data1)
{
// FUNÇÃO QUE ASSINA O ARQUIVO
pki.signWithRestPki({
token: data1,
thumbprint: selectedCertThumb
}).success(function () {
// SEGUNDO POST IRÁ MONTAR O ARQUIVO ASSINADO
$.post('/sg/assinador_a3.php', {token:data1, endereco:"../../tmp/", original:arquivo, origem:"Internautas", etapa: '2'}, retorno2);
function retorno2(data2)
{
// TERCEIRO POST IRÁ ATUALIZAR O BANCO DE DADOS, CONFORME OS ATRIBUTOS PASSADOS
$.post('/sg/assinador_a3.php', {origem: origem, codigo: codigo, titular: emissor, doc: documento, validade_cert:finalvalidade, pacote:'mensal', arquivo_completo:arquivo_completo, carimbo_tempo:'S', arquivo: arquivo, internauta: "", arquivo_assinado: data2, etapa: '3'}, retorno3);
function retorno3(data3)
{
data3 = JSON.parse(data3);
// CARREGANDO
$("#sw_carregando_dados").hide();
// FECHA POPUP E EXIBE MENSAGEM
fechar_popup_internautas(elemento);
if(data3.resultado == "sucesso")
{
int_msg_sucesso("Consentimento aceito com sucesso!");
}
else
{
int_msg_erro("Erro ao aceitar consentimento!");
}
}
}
});
}
}
else
{
alert ("Nenhum certificado selecionado.");
}
}); // FIM $('#signPDFButton').click(function()
} // FIM else verifica extensao do arquivo
} // FIM else verifica os créditos
}
</script>]]>
|