// JS Geral | Site
$(document).ready(function(){
// Mascaras
// Data
if(!VerTypeHtml5('date')){
$("input[type=date]").mask("00/00/0000");
try{
$("input[type=date]").each(function(i,e){
var DatMasHtml5 = $(e).val().replace(/\//g, "");
if(DatMasHtml5.length){
$(e).val(DatMasHtml5.substr(6,2)+'/'+DatMasHtml5.substr(4,2)+'/'+DatMasHtml5.substr(0,4));
}
});
}catch(err){;}
}
// Hora
$("input[type=time]").mask("00:00:00");
$("[click-data-target]").click(function(){
$("[click-target~="+$(this).attr("click-data-target")+"]").prop('checked', $(this).prop('checked'));
});
$("input[alpha=yes]").bind('keydown blur',function(evento){
var node = $(this);
if(evento.type == 'keydown' && evento.key !== undefined && evento.key.match(/[0-9]/g)){
evento.preventDefault();
evento.stopPropagation();
return false;
}else if(evento.type == 'blur'){
node.val(node.val().replace(/[0-9]/g,'') );
}
});
$("input[type=number]").bind('keyup blur',function(){
$(this).val($(this).val().replace(/[^0-9]/g,'') );
});
$("input[date]").mask("00/00/0000");
$("input[time]").mask("00:00:00",{maxlength:false});
$("input[number]").bind('keyup blur',function(){
$(this).val($(this).val().replace(/[^0-9]/g,'') );
});
$("input[type=number]").bind('input',function(){
if(($(this).val().length > this.maxLength) && (this.maxLength > 0)){
$(this).val(this.value.slice(0, this.maxLength));
}
});
// Telefone
$("input[phone=yes]").mask(SPMaskBehavior, spOptions);
// Celular
$("input[celular=yes]").mask(SPMaskBehavior, spOptions);
$("input[celular=yes]").blur(function(){
let telefone = $(this).val()
var regex = new RegExp(/^\([1-9]{2}\) 9[6-9]{1}[0-9]{3}\-[0-9]{4}$/gm)
$(this).closest("form").unbind("submit")
$(this).closest("form").submit(function(e){
if(telefone.length > 0 && !regex.test(telefone)){
alert("Celular inv\u00e1lido")
e.preventDefault()
}else{
$(this).unbind("submit")
$(this).submit()
}
})
})
// Telefone sem DDD
$("input[phonenoddd=yes]").mask(SPMaskBehavior003, spOptions003);
$("input[phone002noddd=yes]").mask(SPMaskBehavior004, spOptions004);
// CEP
$("input[cep=yes]").mask("00.000-000");
$("input[cep002=yes]").mask("00000-000");
// CPF
$("input[cpf=yes]").mask("000.000.000-00");
// Password
$("input[type=password]").after('
');
$(".Ico_Mos_Sen").parent().css('display','flex').css('align-items','center')
$(".Ico_Mos_Sen").click(function(){
const icon = $(this).find('i')
// Transforma password para text
if(icon.hasClass('fa-eye')){
icon.removeClass('fa-eye')
icon.addClass('fa-eye-slash')
$(this).parent().find('input[type=password]').attr('type','text')
// Transforma text para Password
}else if(icon.hasClass('fa-eye-slash')){
icon.removeClass('fa-eye-slash')
icon.addClass('fa-eye')
$(this).parent().find('input[type=text]').attr('type','password')
}
})
// RG
$("input[rg=yes]").mask("##.###.###-##");
// Float
$("input[float=yes]").mask('000.000.000.000.000,00', {reverse: true,maxlength:false});
$(".clk_float").mask('000.000.000.000.000,00', {reverse: true,maxlength:false});
$("input[cnpj=yes]").mask("00.000.000/0000-00");
// Mensagem de Alerta caso o DDD nao seja encontrado
$("input[dddalert=yes]").focus((event) => {
$(event.target).parent().children('.errInp').remove();
});
$("input[dddalert=yes]").focusout((event) => {
element = event.target;
let dddTam = $(element).attr('dddtam') ? parseInt($(element).attr('dddtam')) : 13;
if ($(element).val().length <= dddTam) {
$(element).parent().append( `Campos de ${$(element)[0].placeholder} precisam ser completos` );
$(element).val('');
}
});
// End | Mensagem de Alerta caso o DDD nao seja encontrado
// Mascara CPF e CNPJ
$("input[cpfcnpj=yes]").mask(SPMaskBehavior002, spOptions002);
$("[click-open]").click(function(){
var ClkDisVal = $(this).attr("click-display") ? $(this).attr("click-display") : "block";
AddClassActive($(this));
FecharTodasTag($(this).attr("click-object"));
AbirEspecTag($(this).attr("click-open"),ClkDisVal);
});
// Arquivos
// input[file=yes]
var totalTamArquivos = 0;
// input[file=yes]
var totalTamMaximo = 30*1048576; // 30MB
// input[file=yes]
var formatosImagemFileYes = ["jpg","png","jpeg","pdf","zip"];
$("input[file=yes]").change(function(e) {
// Formato do Arquivo
var ext = $(this).val().split(".").pop().toLowerCase();
// Verifica se o formato é valido
if($.inArray(ext, formatosImagemFileYes) == -1){
alert(`Tipo de arquivo incorreto.\nSó pode os seguintes formatos: ${formatos}`);
$(this).val(null);// Limpa campo do input
return false;
}
// Verifica tamanho do arquivo
var tamArq = e.target.files[0].size;
if(tamArq > totalTamMaximo){
alert(`Tamanho do arquivo é maior que o permitido!\nLimite de ${totalTamMaximo / 1000000}MB`)
$(this).val(null);// Limpa campo do input
return false;
}
// Incrementa tamanho do arquivo
totalTamArquivos += tamArq;
// Tamanho de todos os inputs Files
if(totalTamArquivos > totalTamMaximo){
alert(`Total de arquivos ultrapassou o permitido!\nLimite de 30MB`)
totalTamArquivos -= tamArq; // Decrementa tamanho do arquivo
$(this).val(null);// Limpa campo do input
return false;
}
return false;
});
});
// Move para ID
function go(elem,margem=0){
window.scroll({
top: document.querySelector(elem).offsetTop+parseInt(margem),left: 0,behavior: 'smooth'
});
}
function VerTypeHtml5(typeinput){
var inptyp = document.createElement("input");
inptyp.setAttribute("type", typeinput);
return inptyp.type !== "text";
}
var SPMaskBehavior = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior.apply({}, arguments), options);
},autoclean: false
};
var SPMaskBehavior004 = function (val) {
return val.replace(/\D/g, '').length === 9 ? '00000-000' : '0000-0009';
},
spOptions004 = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior004.apply({}, arguments), options);
},autoclean: false
};
var SPMaskBehavior003 = function (val) {
return val.replace(/\D/g, '').length === 9 ? '00000-0000' : '0000-00009';
},
spOptions003 = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior003.apply({}, arguments), options);
},autoclean: false
};
var SPMaskBehavior002 = function (val) {
return val.replace(/\D/g, '').length <= 11 ? '000.000.000-00999' : '00.000.000/0000-00';
},
spOptions002 = {
onKeyPress: function(val, e, field, options) {
field.mask(SPMaskBehavior002.apply({}, arguments), options);
}};
function FecharTodasTag(AttrValor){
$("[click-object='"+AttrValor+"']").not("[click-open]").css({"display":"none"});
}
function AbirEspecTag(AttrValor,AttrDisplayValor){
$("."+AttrValor+"").css({"display":AttrDisplayValor});
}
function AddClassActive(ObjectAtual){
var AtcClassOpen = ObjectAtual.attr("click-object") + "_Active_open";
var AtcClassOpenClick = AtcClassOpen + "_click";
$("[click-object]").removeClass(AtcClassOpen);
$("[click-object]").removeClass(AtcClassOpenClick);
ObjectAtual.addClass(AtcClassOpenClick);
$("."+ObjectAtual.attr("click-open")+"").addClass(AtcClassOpen);
}
// valida CPF
String.prototype.validarCPF = function (hasMask=false) {
const cpf = hasMask ? this.replace(/[^\d]+/g,'') : this;
let Soma = 0;
let Resto;
if(cpf == '') return false;
if (cpf.length != 11) return false;
// Valida condicoes bases nao verificadas pelo algoritmo
if (cpf == "00000000000") return false;
if (cpf == "11111111111") return false;
if (cpf == "22222222222") return false;
if (cpf == "33333333333") return false;
if (cpf == "44444444444") return false;
if (cpf == "55555555555") return false;
if (cpf == "66666666666") return false;
if (cpf == "77777777777") return false;
if (cpf == "88888888888") return false;
if (cpf == "99999999999") return false;
// Algoritmo de Validacao
for (i=1; i<=9; i++) Soma = Soma + parseInt(cpf.substring(i-1, i)) * (11 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)) Resto = 0;
if (Resto != parseInt(cpf.substring(9, 10)) ) return false;
Soma = 0;
for (i = 1; i <= 10; i++) Soma = Soma + parseInt(cpf.substring(i-1, i)) * (12 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)) Resto = 0;
if (Resto != parseInt(cpf.substring(10, 11) ) ) return false;
return true;
}
// valida CNPJ
String.prototype.validarCNPJ = function (hasMask=false) {
const cnpj = hasMask ? this.replace(/[^\d]+/g,'') : this;
if(cnpj == '') return false;
if (cnpj.length != 14) return false;
// Elimina CNPJs invalidos conhecidos
if (cnpj == "00000000000") return false;
if (cnpj == "11111111111") return false;
if (cnpj == "22222222222") return false;
if (cnpj == "33333333333") return false;
if (cnpj == "44444444444") return false;
if (cnpj == "55555555555") return false;
if (cnpj == "66666666666") return false;
if (cnpj == "77777777777") return false;
if (cnpj == "88888888888") return false;
if (cnpj == "99999999999") return false;
// Valida DVs
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;
}
// Define se os inputs possuem mascara ou nao
const usaMascara = true;
var alerta = false;
$("button[cpf=yes]").click(function ( event ) {
if($("input[cpf=yes]").val().length > 0){
if (!$("input[cpf=yes]").val().validarCPF(usaMascara)){
event.preventDefault();
if(alerta){
alert("CPF inv\u00e1lido");
}
}
}
});
$("input[cpf=yes]").change(function (){
if($(this).val().length > 0){
if (!$(this).val().validarCPF(usaMascara)){
alert("CPF inv\u00e1lido");
alerta = true;
}
}
});
$("input[cnpj=yes]").change(function (){
if($(this).val().length > 1){
if (!$(this).val().validarCNPJ(usaMascara)) alert("CNPJ inv\u00e1lido");
}
});
// JS Ellipsis
$.getScript("/scripts/ftellipsis/ftellipsis.js", function() {
// Simplicando Nome de funcoes
const forEach = Array.prototype.forEach;
const slice = Array.prototype.slice;
// Array de Objetos
var els = [];
// Lista de Classes | Adiciona uma nova para aplicar.
const classes = [
'Not_Are_Des_Inf_Res',
'Not_Lis_Des_Res',
'Red_Soc_Ins_Are_Pos_Med_Ove_Con_Tex'
];
// Lista de Elementos a serem aplicados o FTELLIPSIS
forEach.call(classes, function(clss){
els = els.concat(slice.call(document.getElementsByClassName(clss), 0));
});
// Interando em cada Array
forEach.call(els, function(el) {
try { // # MXTera --
// Definindo Ellipsis
var ellipsis = new Ellipsis(el);
ellipsis.calc();
ellipsis.set();
} catch(e) {
console.log("Erro: Interando em cada Array | Definindo Ellipsis");
}
});
});
// Verifica se foi ativado o controle de astericos por inputs obrigatorios
function setaAsteriscoCamposRequiridos(){
// Identifica inputs obrigatorios visiveis
let arrInpReqVis = $(':input[required]:visible')
// intera sobre cada input
arrInpReqVis.each(function(idx, ele){
// Carrega componente no jquery
ele = $(ele);
// obtem input | OBS: Eh preciso atender determinada estrutura [Div>Label/Div>Input]
// Onde o Input sera identificado e ira alterar a Label 1 nivel acima dele
let field = $(ele.parent().parent().children()[0]);
// Concatena texto atual com asterisco
field.html(field.html().trim() + "*");
});
}
// Valida Email
function validaEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
// Valida Email | Msg Error
function validaEmailError(email) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(\s)|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(!re.test(String(email).toLowerCase())) alert("Email inv\u00e1lido");
return re.test(String(email).toLowerCase());
}
// Atrasa carregamento de imagem
function init() {
// Modelo - jQuery
// Imagem - SRC
$('img').each(function(i,e){
if($(e).attr('data-src') != undefined){
$(e).attr('src',$(e).attr('data-src'));
}
});
$('div').each(function(i,e){
if($(e).attr('bkg-src') != undefined){
$(e).attr('style',$(e).attr('bkg-src'));
}
});
}
window.addEventListener("DOMContentLoaded", function(){
setTimeout(function(){
init();
}, 1200);
});