PageSourceSearch

https://somoscooperativismo-ba.coop.br/assets/js/formulario-de-demandas-das-cooperativas.js

js somoscooperativismo-ba.coop.br collected 2026-10-08 11:00:53 UTC 24,995 bytes, 489 lines download raw bytes

1$ = jQuery.noConflict();
2
3$(document).ready(function () {
4    function chamarCSS() {
5        var protocolo = window.location.protocol;
6        var host = window.location.host;
7        var linkCss = protocolo + '//' + host + '/assets/css/formulario-de-demandas-das-cooperativas.css';
8        var jqueryUi = protocolo + '//' + host + '/assets/css/libs/jquery-ui-v1.12.1.css';
9
10        // Verifica se os CSS já foram adicionados
11        if (!$("link[href='" + linkCss + "']").length) {
12            $('head').append('<link rel="stylesheet" type="text/css" href="' + linkCss + '">');
13        }
14        if (!$("link[href='" + jqueryUi + "']").length) {
15            $('head').append('<link rel="stylesheet" type="text/css" href="' + jqueryUi + '">');
16        }
17    }
18
19    chamarCSS();
20
21    function criarSessao(numSessao, tituloSessao, camposPorLinha, textoAuxiliar = "") {
22        var sessao = $('<div>', {class: 'formulario-responsivo-sessao formulario-responsivo-sessao-' + numSessao});
23        sessao.append($('<div>', {class: 'titulo-sessao titulo-sessao-' + numSessao, text: tituloSessao}));
24        if (textoAuxiliar !== "") {
25            sessao.append($('<div>', {class: 'texto-auxiliar texto-auxiliar-sessao-' + numSessao, text: textoAuxiliar}));
26        }
27
28        camposPorLinha.forEach(function (campos, index) {
29            var linha = $('<div>', {class: 'formulario-responsivo-linha-' + (index + 1)});
30            campos.forEach(function (campo) {
31                linha.append(campo);
32            });
33            sessao.append(linha);
34        });
35
36        $('.formulario-responsivo').append(sessao);
37    }
38
39    function reorganizarCamposFormulario() {
40        $('.formulario-solicitacao').find('.cf-fields').append('<div class="formulario-responsivo"></div>');
41
42        // Sessão 1
43        var tituloSessao_1 = "Soluções de desenvolvimento humano, organizacional e promoção social das cooperativas";
44        var email = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="e_mail"]');
45        var nomeCompletoDoSolicitante = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="nome_completo_do_solicitante"]');
46        var nomeDaCooperativa = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="nome_da_cooperativa"]');
47        var cnpjDaCooperativa = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="cnpj_da_cooperativa"]');
48        var coordenadorResponsavelPelaAcaoNaCooperativa = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="coordenador_responsavel_pela_acao_na_cooperativa"]');
49        var emailDoCoordenadorResponsavelPelaAcao = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="e_mail_do_coordenador_responsavel_pela_acao"]');
50        var celularComWhatsappDoCoordenadorResponsavelPelaAcao = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="celular_do_coordenador_responsavel_pela_acao"]');
51
52        var camposSessao1 = [
53            [email, nomeCompletoDoSolicitante],
54            [nomeDaCooperativa, cnpjDaCooperativa],
55            [coordenadorResponsavelPelaAcaoNaCooperativa, emailDoCoordenadorResponsavelPelaAcao],
56            [celularComWhatsappDoCoordenadorResponsavelPelaAcao]
57        ];
58        criarSessao(1, tituloSessao_1, camposSessao1);
59
60        // Sessão 2
61        var tituloSessao_2 = "Dados da Ação";
62        var tituloDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="titulo_do_evento"]');
63        var tipologiaDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="tipologia_do_evento"]');
64        var modalidade = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="modalidade"]');
65
66        var camposSessao2 = [
67            [tituloDoEvento],
68            [tipologiaDoEvento, modalidade]
69        ];
70        criarSessao(2, tituloSessao_2, camposSessao2);
71
72        // Sessão 3
73        var tituloSessao_3 = "Presencial";
74        var localOndeOEventoSeraRealizadoPresencial = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="local_onde_o_evento_sera_realizado_presencial"]');
75
76        var camposSessao3 = [
77            [localOndeOEventoSeraRealizadoPresencial]
78        ];
79        criarSessao(3, tituloSessao_3, camposSessao3);
80
81        // Sessão 4
82        var tituloSessao_4 = "Semipresencial/Híbrido";
83        var localOndeOEventoSeraRealizadoHibrido = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="local_onde_o_evento_sera_realizado_hibrido"]');
84
85        var camposSessao4 = [
86            [localOndeOEventoSeraRealizadoHibrido]
87        ];
88        criarSessao(4, tituloSessao_4, camposSessao4);
89
90        // Sessão 5
91        var tituloSessao_5 = "Plataforma";
92        var plataformaEmQueSeraoRealizadosOsEncontrosOnline = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="plataforma_em_que_serao_realizados_os_encontros_online"]');
93        var transmissaoAoVivoPeloYoutube = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="transmissao_ao_vivo_pelo_youtube"]');
94        var oEventoSeraGravado = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="o_evento_sera_gravado"]');
95
96        var camposSessao5 = [
97            [plataformaEmQueSeraoRealizadosOsEncontrosOnline, transmissaoAoVivoPeloYoutube, oEventoSeraGravado]
98        ];
99        criarSessao(5, tituloSessao_5, camposSessao5);
100
101        // Sessão 6
102        var tituloSessao_6 = "Gravação";
103        var porQuantoTempoAGravacaoDeveraFicarDisponivelNoCanalDoYoutube = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="por_quanto_tempo_a_gravacao_devera_ficar_disponivel_no_canal_do_youtube"]');
104
105        var camposSessao6 = [
106            [porQuantoTempoAGravacaoDeveraFicarDisponivelNoCanalDoYoutube]
107        ];
108        criarSessao(6, tituloSessao_6, camposSessao6);
109
110        // Sessão 7
111        var tituloSessao_7 = "Data, horário e carga horária da ação";
112        var duracaoDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="duracao_do_evento"]');
113        var dataDeInicioDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="data_de_inicio_do_evento"]');
114        var horarioDeInicioDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="horario_de_inicio_do_evento"]');
115        var horarioDeEncerramentoDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="horario_de_encerramento_do_evento"]');
116        var dataDeEncerramentoDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="data_de_encerramento_do_evento"]');
117        var cargaHoraria = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="carga_horaria"]');
118        var programacaoDoEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="programacao_do_evento"]');
119        var observacoes = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="observacoes_data_hora_evento"]');
120
121        var camposSessao7 = [
122            [duracaoDoEvento, cargaHoraria],
123            [dataDeInicioDoEvento, horarioDeInicioDoEvento, dataDeEncerramentoDoEvento, horarioDeEncerramentoDoEvento],
124            [programacaoDoEvento],
125            [observacoes]
126        ];
127        criarSessao(7, tituloSessao_7, camposSessao7);
128
129        // Sessão 8
130        var tituloSessao_8 = "Público alvo e abrangência da ação";
131        var publicoAlvo = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="publico_alvo"]');
132        var quantidadeEstimadaDeParticipantes = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="quantidade_estimada_de_participantes"]');
133
134        var camposSessao8 = [
135            [publicoAlvo, quantidadeEstimadaDeParticipantes]
136        ];
137        criarSessao(8, tituloSessao_8, camposSessao8);
138
139        // Sessão 9
140        var tituloSessao_9 = "Objetivo";
141        var textoAuxiliar_9 = 'O objetivo é uma declaração clara e concisa que define o que a cooperativa espera alcançar com a ação. Para escrever um objetivo, use a estrutura "Eu quero/pretendo (verbo) (o que) até (data/prazo), para (razão/motivo)." Seu objetivo deve ser SMART, ou seja, específico, mensurável, atingível, relevante e temporal. Lembre-se de que seu objetivo é a base do seu projeto e deve ser claro e preciso.';
142        var objetivoGeral = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="objetivo_geral"]');
143        var objetivosEspecificos = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="objetivos_especificos"]');
144
145        var camposSessao9 = [
146            [objetivoGeral],
147            [objetivosEspecificos]
148        ];
149        criarSessao(9, tituloSessao_9, camposSessao9, textoAuxiliar_9);
150
151        // Sessão 10
152        var tituloSessao_10 = "Justificativa";
153        var textoAuxiliar_10 = 'A justificativa é uma breve explicação que mostra por que a ação é importante e necessária. Para escrever uma boa justificativa, responda a estas perguntas: qual é o problema que a ação está tentando resolver? Por que a ação é importante? Quais são os benefícios esperados? Lembre-se de manter sua justificativa clara, concisa e convincente.';
154        var oQueJustificaARealizacaoDessaAcao = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="o_que_justifica_a_realizacao_dessa_acao"]');
155
156        var camposSessao10 = [
157            [oQueJustificaARealizacaoDessaAcao]
158        ];
159        criarSessao(10, tituloSessao_10, camposSessao10, textoAuxiliar_10);
160
161        // Sessão 11
162        var tituloSessao_11 = "Resultados esperados";
163        var textoAuxiliar_11 = 'Os resultados esperados são as mudanças e benefícios que a ação deve gerar. Para escrever os resultados esperados, pense nas metas e objetivos do ação e nas mudanças que o projeto deve produzir. Liste os resultados de forma clara, mensurável e relevante. Certifique-se de que os resultados esperados estejam alinhados com a justificativa do projeto e com os recursos disponíveis.';
164        var quaisResultadosAlmejaAlcancarComARealizacaoDessaAcao = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="quais_resultados_almeja_alcancar_com_a_realizacao_dessa_acao"]');
165
166        var camposSessao11 = [
167            [quaisResultadosAlmejaAlcancarComARealizacaoDessaAcao]
168        ];
169        criarSessao(11, tituloSessao_11, camposSessao11, textoAuxiliar_11);
170
171        // Sessão 12
172        var tituloSessao_12 = "Meios de Verificação";
173        var textoAuxiliar_12 = 'Os meios de verificação são as evidências ou indicadores que serão usados para monitorar e avaliar o progresso do projeto. Para escrever os meios de verificação, liste os indicadores que serão usados para avaliar cada resultado esperado, definindo também a fonte de dados e a periodicidade da coleta. Certifique-se de que os meios de verificação estejam alinhados com os resultados esperados e com os recursos disponíveis.';
174        var meiosDeVerificacaoQueEvidenciamOAlcance = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="meios_de_verificacao_que_evidenciam_o_alcance"]');
175
176        var camposSessao12 = [
177            [meiosDeVerificacaoQueEvidenciamOAlcance]
178        ];
179        criarSessao(12, tituloSessao_12, camposSessao12, textoAuxiliar_12);
180
181        // Sessão 13
182        var tituloSessao_13 = "Orçamento";
183        var textoAuxiliar_13 = 'O que deseja da parceria com o SESCOOOP/BA?';
184        var apoioServicosDeInstrutoria = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="apoio_servicos_de_instrutoria"]');
185
186        var camposSessao13 = [
187            [apoioServicosDeInstrutoria]
188        ];
189        criarSessao(13, tituloSessao_13, camposSessao13, textoAuxiliar_13);
190
191        // Sessão 14
192        var tituloSessao_14 = "Indicação de profissional específico";
193        var justificativaIndicacaoDeUmProfissional = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="justificativa_indicacao_de_um_profissional"]');
194
195        var camposSessao14 = [
196            [justificativaIndicacaoDeUmProfissional]
197        ];
198        criarSessao(14, tituloSessao_14, camposSessao14);
199
200        // Sessão 15
201        var tituloSessao_15 = "Cotação";
202        var descricaoDoPerfilDoProfissionalDesejadoParaOEvento = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="descricao_do_perfil_do_profissional_desejado_para_o_evento"]');
203
204        var camposSessao15 = [
205            [descricaoDoPerfilDoProfissionalDesejadoParaOEvento]
206        ];
207        criarSessao(15, tituloSessao_15, camposSessao15);
208
209        // Sessão 16
210        var tituloSessao_16 = "Indicação Sescoop/BA";
211        var observacoesIndicacaoSescoop = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="observacoes_indicacao_sescoop"]');
212
213        var camposSessao16 = [
214            [observacoesIndicacaoSescoop]
215        ];
216        criarSessao(16, tituloSessao_16, camposSessao16);
217
218        // Sessão 17
219        var tituloSessao_17 = "Outras formas de apoio";
220        var outrasFormasDeApoioDoSescoop = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="outras_formas_de_apoio_do_sescoop"]');
221        var quantidadeEDescricaoDasOutrasFormasDeApoioSolicitadasAoSescoop = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="quantidade_e_descricao_das_outras_formas_de_apoio_solicitadas_ao_sescoop"]');
222
223        var camposSessao17 = [
224            [outrasFormasDeApoioDoSescoop],
225            [quantidadeEDescricaoDasOutrasFormasDeApoioSolicitadasAoSescoop]
226        ];
227        criarSessao(17, tituloSessao_17, camposSessao17);
228
229        // Sessão 18
230        var tituloSessao_18 = "Declaração";
231        var textoAuxiliar_18 = 'Sim, declaro em nome da Cooperativa que aqui represento a inexistência de qualquer débito de mora ou situação de inadimplência com a Receita Federal, Secretarias 
231Estadual e Municipal da Fazenda, Instituto da Seguridade Social e Sindicato e Organização das Cooperativas do Estado da Bahia.';
232        var naQualidadeDeProponente = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="na_qualidade_de_proponente"]');
233
234        var camposSessao18 = [
235            [naQualidadeDeProponente]
236        ];
237        criarSessao(18, tituloSessao_18, camposSessao18, textoAuxiliar_18);
238
239        // Sessão 19
240        var reCaptcha = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="recaptchaaio_82"]');
241
242        var camposSessao19 = [
243            [reCaptcha]
244        ];
245        criarSessao(19, "", camposSessao19);
246
247        // Sessão 20
248        var enviarFormulario = $('.formulario-solicitacao').find('.cf-fields').find('[data-name="submit_57"]');
249
250        var camposSessao20 = [
251            [enviarFormulario]
252        ];
253        criarSessao(20, "Enviar Formulário", camposSessao20);
254
255        // Definindo as sessões específicas como inicialmente ocultas
256        $('.formulario-responsivo-sessao-3').attr('hidden', true);  // Presencial
257        $('.formulario-responsivo-sessao-4').attr('hidden', true);  // Semipresencial/Híbrido
258        $('.formulario-responsivo-sessao-5').attr('hidden', true);  // Plataforma
259        $('.formulario-responsivo-sessao-6').attr('hidden', true);  // Gravação
260        $('.formulario-responsivo-sessao-14').attr('hidden', true); // Indicação de profissional específico
261        $('.formulario-responsivo-sessao-15').attr('hidden', true); // Cotação
262        $('.formulario-responsivo-sessao-16').attr('hidden', true); // Indicação Sescoop/BA
263    }
264
265    reorganizarCamposFormulario();
266
267    function reorganizarSessao17() {
268        var sessao17 = $('.formulario-responsivo-sessao-17').find('.formulario-responsivo-linha-1');
269
270        sessao17.find('.cf-checkbox-group').each(function (index) {
271            // Criar e organizar as áreas de checkbox e entrada de texto
272            $(this).append('<div class="checkbox-area"></div>')
273                .append('<div class="input-area" hidden></div>');
274
275            var checkboxInput = $(this).find('input');
276            var checkboxLabel = $(this).find('label');
277
278            // Mover os elementos de checkbox e label para dentro da 'checkbox-area'
279            $(this).find('.checkbox-area').append(checkboxInput, checkboxLabel);
280
281            // Adicionar os campos de comentário correspondentes
282            var nomeComentario = [
283                'alimentacao-hospedagem-e-translado-do-instrutor-comentario',
284                'materiais-de-treinamento-comentario',
285                'locacao-de-espaco-comentario',
286                'locacao-de-equipamentos-comentario',
287                'servicos-de-sala-comentario',
288                'coffee-break-comentario',
289                'almoco-dos-participantes-comentario',
290                'janta-dos-participantes-comentario',
291                'coquetel-comentario',
292                'translado-dos-participantes-comentario',
293                'hospedagem-dos-participantes-comentario',
294                'nao-se-aplica-comentario',
295                'outros-comentario'
296                // Adicione mais nomes de campos aqui, se necessário
297            ];
298
299            if (nomeComentario[index]) {
300                var campoComentario = $('[data-name="' + nomeComentario[index] + '"]');
301                $(this).find('.input-area').append(campoComentario);
302            }
303        });
304    }
305
306    reorganizarSessao17();
307
308    function alterarVisibilidadeCamposFormulario() {
309        var sessao2 = $('.formulario-responsivo-sessao-2');
310        var sessao3 = $('.formulario-responsivo-sessao-3');
311        var sessao4 = $('.formulario-responsivo-sessao-4');
312        var sessao5 = $('.formulario-responsivo-sessao-5');
313        var sessao6 = $('.formulario-responsivo-sessao-6');
314
315        sessao2.find('[data-name="modalidade"]').on('change', function () {
316            var modalidade = $("input[name='cf[modalidade][]']:checked").val();
317
318            sessao3.attr('hidden', modalidade !== 'Presencial');
319            sessao4.attr('hidden', modalidade !== 'Híbrido');
320            sessao5.attr('hidden', modalidade !== 'Online' && modalidade !== 'Híbrido');
321            sessao6.attr('hidden', true);
322
323            if (modalidade === 'Híbrido') {
324                sessao4.find('[data-name="local_onde_o_evento_sera_realizado_hibrido"]').attr('hidden', false);
325            }
326
327            // Limpar campos de texto nas sessões 3 e 4
328            sessao3.find('input[type=text]').val('');
329            sessao4.find('input[type=text]').val('');
330
331            // Desmarcar todos os checkboxes e radios nas sessões 5 e 6
332            sessao5.find('input[type=checkbox], input[type=radio]').prop('checked', false);
333            sessao6.find('input[type=checkbox], input[type=radio]').prop('checked', false);
334        });
335
336        sessao5.find('[data-name="o_evento_sera_gravado"]').on('change', function () {
337            var o_evento_sera_gravado = $("input[name='cf[o_evento_sera_gravado][]']:checked").val();
338
339            sessao6.attr('hidden', o_evento_sera_gravado !== 'Sim');
340        });
341
342        var sessao13 = $('.formulario-responsivo-sessao-13');
343        var sessao14 = $('.formulario-responsivo-sessao-14');
344        var sessao15 = $('.formulario-responsivo-sessao-15');
345        var sessao16 = $('.formulario-responsivo-sessao-16');
346
347        sessao13.find('[data-name="apoio_servicos_de_instrutoria"]').on('change', function () {
348            var opcaoSelecionada = $("input[name='cf[apoio_servicos_de_instrutoria][]']:checked").val();
349
350            sessao14.attr('hidden', opcaoSelecionada !== 'Indicação de um profissional específico');
351            sessao15.attr('hidden', opcaoSelecionada !== 'Indicação de, no mínimo, três profissionais com perfis similares');
352            sessao16.attr('hidden', opcaoSelecionada !== 'O Sescoop/BA indicará o profissional');
353
354            if (opcaoSelecionada === 'Não se aplica') {
355                sessao14.attr('hidden', true);
356                sessao15.attr('hidden', true);
357                sessao16.attr('hidden', true);
358            }
359
360            // Limpar campos de texto e textarea nas sessões 14, 15 e 16
361            sessao14.find('textarea').val('');
362            sessao15.find('textarea').val('');
363            sessao16.find('textarea').val('');
364        });
365
366    }
367
368    alterarVisibilidadeCamposFormulario();
369
370    function mascararCampos() {
371        var cnpjCooperativa = $('[name="cf[cnpj_da_cooperativa]"]');
372
373        if (cnpjCooperativa.length) {
374            cnpjCooperativa.mask('00.000.000/0000-00', {reverse: true});
375        }
376
377        var celularCoordenadorResponsavelAcao = $('[name="cf[celular_do_coordenador_responsavel_pela_acao]"]');
378
379        if (celularCoordenadorResponsavelAcao.length) {
380            celularCoordenadorResponsavelAcao.mask('(00) 00000-0000', {reverse: false});
381        }
382
383        var duracaoEvento = $('[name="cf[duracao_do_evento]"]');
384
385        if (duracaoEvento.length) {
386            duracaoEvento.mask('#0,0', {
387                reverse: true,
388                translation: {
389                    '#': {
390                        pattern: /-|\d/,
391                        recursive: true
392                    },
393                    '0': {
394                        pattern: /\d/
395                    }
396                },
397                onChange: function (value, e) {
398                    var target = e.target,
399                        position = target.selectionStart; // Salva a posição atual do cursor
400
401                    // Se o valor depois da vírgula for maior que 9, corrige para 9
402                    if (value.indexOf(',') !== -1) {
403                        var decimalPart = value.split(',')[1];
404                        if (parseInt(decimalPart, 10) > 9) {
405                            $(target).val(value.substring(0, value.indexOf(',') + 2));
406                        }
407                    }
408
409                    // Restaura a posição do cursor
410                    target.selectionStart = position;
411                    target.selectionEnd = position;
412                }
413            });
414        }
415
416        var horarioInicioEvento = $('[name="cf[horario_de_inicio_do_evento]"]');
417
418        if (horarioInicioEvento.length) {
419            horarioInicioEvento.mask('00:00', {reverse: false});
420        }
421
422        var horarioEncerramentoEvento = $('[name="cf[horario_de_encerramento_do_evento]"]'); // Corrigido o seletor aqui
423
424        if (horarioEncerramentoEvento.length) {
425            horarioEncerramentoEvento.mask('00:00', {reverse: false});
426        }
427    }
428
429    mascararCampos();
430
431    function incluirCampoComentarioOutrasFormasDeApoio() {
432        var sessao = $('.formulario-responsivo-sessao-17 .formulario-responsivo-linha-1 .cf-checkbox-group');
433
434        sessao.change(function () {
435            var inputArea = $(this).find('.input-area');
436            var isChecked = $(this).find('input').is(":checked");
437
438            if (isChecked) {
439                inputArea.removeAttr('hidden');
440            } else {
441                inputArea.attr('hidden', 'hidden');
442                inputArea.find('textarea').val('');
443            }
444        });
445    }
446
447    incluirCampoComentarioOutrasFormasDeApoio();
448
449    function validarCampoCelularDoCoordenadorResponsavelPelaAcao() {
450        var campoCelular = $('[name="cf[celular_do_coordenador_responsavel_pela_acao]"]');
451        var avisoCelular = $('.formulario-responsivo-sessao-1 .formulario-responsivo-linha-4 .valida-celular');
452        var botaoSubmit = $('.formulario-responsivo-sessao.formulario-responsivo-sessao-19 button');
453
454        campoCelular.on('blur', function () {
455            var numeroCelular = $(this).val();
456            var celularValido = validarCelular(numeroCelular);
457            var campoVazio = numeroCelular.trim() === '';
458
459            avisoCelular.css('display', celularValido || campoVazio ? 'none' : 'block');
460            botaoSubmit.prop('disabled', !celularValido && !campoVazio);
461        });
462    }
463
464    function validarCelular(numeroCelular) {
465        var regex = /^\(\d{2}\) \d{5}-\d{4}$/;
466        return regex.test(numeroCelular);
467    }
468
469    validarCampoCelularDoCoordenadorResponsavelPelaAcao();
470
471    function adicionarDatePicker() {
472        $('[name="cf[data_de_inicio_do_evento]"], [name="cf[data_de_encerramento_do_evento]"]').datepicker({
473            dateFormat: 'dd/mm/yy',
474            monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho',
475                'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'
476            ],
477            monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
478                'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'
479            ],
480            dayNames: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
481            dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'],
482            dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
483            weekHeader: 'Sem',
484            firstDay: 0
485        });
486    }
487
488    adicionarDatePicker();
489});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.