Publicador de Conteúdos e Mídias

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> isEMED  [in template "20102#20129#438394" at line 4097, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if !isEMED  [in template "20102#20129#438394" at line 4097, column 9]
----
1<#assign 
2  isEditMode = themeDisplay.getURLCurrent()?contains('p_l_mode=edit') 
3/> 
4<!-- Essa verificação é necessária para que não encaminhe erros de freemarker ao KIBANA ao acessar a página de edição dos componentes --> 
5<#if isEditMode > 
6  <h3>Modo de edição identificado</h3> 
7<#else> 
8 
9<style> 
10 
11  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card { 
12      background: white; 
13      width: 100%; 
14      padding: 32px 52px; 
15      box-shadow: 2px 5px 12px #00000040; 
16      border-radius: 20px; 
17      display: flex; 
18      flex-wrap: nowrap; 
19      justify-content: space-between; 
20      align-items: center; 
21
22 
23  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone { 
24      max-width: 100%; 
25      height: 72px; 
26      margin-bottom: 10px; 
27
28 
29  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section { 
30      background: #472247; 
31      border-top: 18px solid #792F7A; 
32      text-align: center; 
33      padding-bottom: 60px; 
34
35 
36  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after { 
37       
38      
39      display: none; 
40      
41       
42
43   
44  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white { 
45      color: white; 
46      font-size: 44px !important; 
47      margin-bottom: 32px !important; 
48      text-align:unset; 
49
50   
51  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title { 
52      font-size: 28px; 
53      color: #B767C2; 
54      font-weight: bold; 
55      line-height: 28px; 
56      margin: 0; 
57      margin-bottom:.5rem; 
58
59   
60 
61.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after { 
62     
63  font-size: 18px; 
64     
65
66 
67.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after { 
68    
69  font-size: 18px; 
70   
71
72 
73.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header { 
74  align-items:center; 
75  color:#454F63; 
76
77 
78.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after { 
79    font-family: "Font Awesome 6 Pro"; 
80    font-weight: normal; 
81    content: "\f00d"; 
82    font-style: normal; 
83    font-size:30px; 
84    cursor: pointer; 
85
86 
87.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body { 
88     
89  padding:0 15px; 
90
91 
92.ssp-card-modal-forma-pagamento__tipos-content p { 
93 
94  color: #454F63!important; 
95  font-size: 14px!important; 
96
97 
98.ssp-card-modal-forma-pagamento__tipos-content strong { 
99 
100  font-weight: bold!important; 
101
102 
103.txt-desconto-oito{ 
104 
105  font-weight: 600!important; 
106  border: 1px solid #f2f2f2; 
107  border-right: 0; 
108  border-left: 0; 
109  padding: 10px 0; 
110
111 
112.next-mobile{ 
113    color: white; 
114    display: flex; 
115    align-items: center; 
116    text-decoration: none!important; 
117
118 
119.next-mobile:hover{ 
120    color: white; 
121    font-weight: normal!important; 
122
123 
124.next-mobile::before{ 
125    font-family: "Montserrat", sans-serif; 
126    content: "Próxima"; 
127    font-size: 14px; 
128    font-weight: 600; 
129    display: block; 
130    margin-right: 9px; 
131    color: white; 
132
133 
134.next-mobile.slick-arrow.slick-disabled{ 
135    opacity: 0.4; 
136
137 
138 
139/* Prev Mobile button */ 
140 
141 
142.prev-mobile{ 
143    color: white; 
144    display: flex; 
145    align-items: center; 
146    text-decoration: none; 
147    text-decoration: none!important; 
148
149 
150.prev-mobile:hover{ 
151    color: white; 
152    font-weight: normal!important; 
153
154 
155.prev-mobile::after{ 
156    font-family: "Montserrat", sans-serif; 
157    content: "Anterior"; 
158    font-weight: 600; 
159    font-size: 14px; 
160    display: block; 
161    margin-left: 9px; 
162    color: white; 
163
164 
165.prev-mobile.slick-arrow.slick-disabled{ 
166    opacity: 0.4; 
167
168 
169 
170.icon-ao-vivo{ 
171  font-size: 15px!important; 
172  margin: 0 3px; 
173
174 
175.ssp-card-detalhe-curso__tag-ao-vivo{ 
176  font-family: "Montserrat"; 
177  font-size: 19px; 
178  letter-spacing: 0px; 
179  color: #F77A3B; 
180
181 
182.selecione-unidade-title-custom{ 
183     
184  width:100%!important; 
185 
186
187 
188.recalcular{ 
189  background:#F6921E!important; 
190  border: solid 1px #F6921E!important; 
191
192 
193.ssp-card-detalhe-curso__description{ 
194 
195  font-family: "Montserrat"; 
196  max-width: 800px; 
197  font-size: 20px; 
198  font-weight: 500; 
199  font-stretch: normal; 
200  font-style: normal; 
201  line-height: 1.23; 
202  letter-spacing: normal; 
203  margin: 10px 0; 
204  text-align: left; 
205  color: #4f596f; 
206 
207
208 
209/* nova formatação para registro de interesse */ 
210.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content { 
211    display: flex; 
212    flex-wrap: nowrap; 
213    justify-content: center; 
214    align-items: center; 
215    padding: 10px 0; 
216
217 
218/* Novas tags para formato de curso */ 
219 
220.ssp-card-detalhe-curso__tag-formato{ 
221   
222  font-size:18px; 
223  font-weight:600; 
224   
225
226 
227.icon-formato{ 
228  margin-right:7px; 
229
230 
231.online-aovivo{ 
232  position:relative; 
233   
234
235 
236.icon-small-wifi { 
237    font-size: 13px; 
238    position: absolute; 
239    left: -12px; 
240    top: -5px; 
241
242 
243.ssp-desconto-2022 .modal-extensao_txteconomiza { 
244  font-size: 14px !important; 
245  font-weight: 100 !important; 
246
247.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto { 
248  font-weight: 100 !important; 
249
250.ssp-desconto-2022 .modal-extensao-btn-conheca { 
251  border: 1px solid #474F61 !important; 
252  border-radius: 4px; 
253  color: #474F61 !important; 
254  font-size: 15px; 
255  height: 50px; 
256  margin-left: 0; 
257  display: flex; 
258  align-items: center; 
259  justify-content: center; 
260
261 
262.ssp-card-modal-forma-pagamento.ssp-desconto-2022 { 
263  color: #454F63; 
264
265.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 { 
266  font-size: 22px !important; 
267
268.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span { 
269  font-size: 13px !important; 
270
271.ssp-desconto-2022 span { 
272  padding: 0 !important; 
273
274 
275.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select { 
276  appearance: none !important; 
277  -webkit-appearance: none !important; 
278  -moz-appearance: none !important; 
279 
280  background-size: 25px 25px !important; 
281  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==); 
282  background-repeat: no-repeat !important; 
283  background-position-x: 99% !important; 
284  background-position-y: 50% !important; 
285
286 
287@media only screen and (max-width: 768px){ 
288 
289  .ssp-card-detalhe-curso__tag-ao-vivo{ 
290    font-size: 14px; 
291    display: none; 
292
293  .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content { 
294     
295    flex-wrap: wrap!important; 
296     
297
298.ssp-card-modal-forma-pagamento__tipos-content p { 
299   
300  font-size: 12px!important; 
301
302     
303  
304  .ssp:not(.liferay-instance) .ssp-section-selecione-unidade { 
305      padding: 30px 0!important; 
306      padding-bottom: 30px !important; 
307      background-color: #2a2e43; 
308
309   
310  .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title { 
311      padding-bottom: 1.25rem !important; 
312
313 
314  .selecione-unidade-title-custom{ 
315    width:100%!important; 
316 
317  }  
318   
319  .ssp-card-detalhe-curso__description{ 
320    width: 100%; 
321    font-size: 15px; 
322 
323
324  .ssp-como-me-matricular__passo-passo-card {     
325    padding: 30px 24px!important; 
326     
327
328 
329  .emed-select-group { 
330        box-shadow: none!important; 
331        border: none !important; 
332        border-bottom: 1px solid #6E6E6E!important; 
333        border-radius: 0 !important; 
334        padding: 0 !important; 
335        margin: 1rem 0 !important; 
336
337 
338    .emed .ssp-card-registro-interesse__title-modal{ 
339      font-size: 20px!important; 
340
341    .emed .ssp-card-registro-interesse__title-section-itens { 
342      font-size: 15px!important; 
343      margin-top: 0px!important; 
344      margin-bottom: 0px!important; 
345      color: #2a2e43; 
346
347    .ssp-card-registro-interesse.emed [type="checkbox"] { 
348        transform: scale(0.6); 
349        margin-left: 2px; 
350
351 
352    .ssp-card-registro-interesse.emed label { 
353      margin-left: 0px; 
354      margin-right: 3px; 
355
356
357 
358.ssp-card-oferta-curso__local-realizacao-content__title { 
359  font-family: "Open Sans", sans-serif; 
360    font-size: 10pt; 
361    font-weight: normal; 
362    color: #00488c; 
363    font-weight: bold; 
364    text-decoration: none!important; 
365    padding-left: 10px; 
366
367 
368 @media screen and (min-width: 767px){ 
369   
370  .ssp-modal-local-realizacao{ 
371      width: 480px!important; 
372
373   .ssp-card-modal-forma-pagamento__header {     
374    margin-bottom: 20px; 
375
376    
377   .ssp-modal-local-realizacao__title{ 
378    color:#01488C !important; 
379    text-align: center!important; 
380        margin-left: -23px!important; 
381
382   
383  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title { 
384      font-size: 14pt; 
385
386  .ssp:not(.liferay-instance) [data-info="data-para-matricula"] { 
387    font-size: 14px !important; 
388    text-align: left;    
389
390  .ssp-modal-emed-txt-desconto-oito { 
391    padding: 10px 0 0px!important; 
392
393  .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula { 
394    color: #4F596F; 
395    font-size: 15px!important; 
396    text-align: center; 
397    font-weight: 500!important; 
398
399
400  
401@media screen and (max-width: 767px){ 
402  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao { 
403      width: 347px; 
404      padding: 22px; 
405
406  .ssp-modal {     
407    padding-top: 72px!important; 
408  }   
409  .ssp-card-modal-forma-pagamento { 
410    max-width: 335px!important; 
411
412  .ssp-card-modal-forma-pagamento__body { 
413    padding: 0px!important; 
414
415  .ssp-modal-emed-txt-desconto-oito { 
416    font-size: 12px !important; 
417
418  .ssp-card-modal-forma-pagamento__header { 
419    margin-bottom: 20px!important; 
420
421  .txt-desconto-oito i { 
422    font-size: 12px!important; 
423    padding-top: 3px; 
424
425  .txt-pague-vista { 
426    font-size: 12px!important; 
427
428  .txt-ganhe-mais { 
429    font-size: 12px!important; 
430
431  .ssp-modal-emed-info-valor-matricula { 
432    color: #2A2E43!important; 
433    font-size: 12px!important; 
434    font-weight: 500!important; 
435  }   
436  .ssp:not(.liferay-instance) [data-info="data-para-matricula"] { 
437    font-size: 12px !important; 
438    line-height: 1.5; 
439    text-align: left; 
440
441   
442  .ssp-desconto-2022 .txt-desconto-oito { 
443    font-size: 14px !important; 
444
445
446 
447@media screen and (max-width: 767px){ 
448  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title { 
449      font-size: 16pt; 
450
451
452 
453.container-local-realizacao{ 
454  padding: 6px; 
455    border: 0.5pt solid #cdd0d8; 
456    border-radius: 5px; 
457    width: 260px; 
458    margin: 10px auto; 
459    box-shadow: 1px 1px 1px #0000000F; 
460
461 
462.idioma-online{ 
463  border:0!important; 
464  box-shadow:none!important; 
465
466 
467.btn-idiomas__aula-online .fa-wifi{ 
468  margin-right: 7px 
469
470 
471.ssp-modal-local-realizacao__title{ 
472  color:#01488C !important; 
473  text-align: center!important; 
474
475 
476h6.ssp-modal-local-realizacao__title::after { 
477    content: ""; 
478    display: block; 
479    width: 20%; 
480    padding-top: 10px; 
481    border-bottom: 1px solid #01488C; 
482    transition: .5s; 
483    margin:auto; 
484
485 
486.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after { 
487  font-family: "Font Awesome 5 Free"; 
488    content: '\f1eb'; 
489    font-weight: 600; 
490    color: #00488c; 
491    font-size: 8px; 
492    font-style: normal; 
493    margin-left: 2px; 
494
495 
496.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after { 
497    font-family: "Font Awesome 5 Free"; 
498    content: '\f51c'; 
499    font-weight: 600; 
500    color: #00488c; 
501    font-size: 13px; 
502    font-style: normal; 
503
504 
505.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{ 
506    display: flex; 
507    margin-top: 0px; 
508    margin-bottom: -10px; 
509
510 
511.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after { 
512  font-family: "Font Awesome 5 Free"; 
513    content: '\f1eb'; 
514    font-weight: 600; 
515    color: #00488c; 
516    font-size: 9pt; 
517    font-style: normal; 
518    margin-right: 10px; 
519
520 
521.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after { 
522    font-family: "Font Awesome 5 Free"; 
523    content: '\f51c'; 
524    font-weight: 600; 
525    color: #00488c; 
526    font-size: 16pt; 
527    font-style: normal; 
528    margin-left: -16px; 
529
530 
531.ssp-modal__local-realizacao-content__icon-wifi{ 
532    display: flex; 
533    margin-right: 2px 
534
535 
536.ssp-modal-local-realizacao__texto{ 
537  text-align:center!important; 
538
539 
540.texto-modal-emed{ 
541	text-align:left; 
542
543 
544.nextPrevOpacity{ 
545  opacity: 0.3; 
546
547 
548   
549   .modal-extensao { 
550              display: block; 
551              position: fixed; 
552              z-index: 2000; 
553              padding-top: 100px; 
554              left: 0; 
555              top: 0; 
556              width: 100%; 
557              height: 100%; 
558              overflow: auto; 
559              background-color: black; 
560              background-color: rgba(0, 0, 0, 0.6); 
561              font-family: Montserrat; 
562
563          .modal-extensao_content { 
564              max-width: 700px; 
565              width: 100%; 
566              background: white; 
567              border-radius: 12px; 
568              padding: 30px 60px; 
569              position: relative; 
570              text-align: center; 
571              margin: auto; 
572              -webkit-animation-name: animatetop; 
573              -webkit-animation-duration: 0.4s; 
574              animation-name: animatetop; 
575              animation-duration: 0.4s; 
576          }     
577          .modal-extensao-condicoes__title { 
578              color: #000!important; 
579              text-transform: uppercase!important; 
580              font-size: 18px!important; 
581   
582
583          .modal-extensao-condicoes__subtitle { 
584              color: #000!important;             
585              font-size: 18px!important; 
586              margin-bottom: 0px!important; 
587   
588
589          .modal-extensao__btn { 
590              background-color: #5ACC75!important; 
591              font-size: 14px; 
592              float: right; 
593              color: #ffffff; 
594              min-width: 165px; 
595
596          .modal-extensao__btn:hover { 
597              background-color: #3fb25c!important; 
598              border-color: transparent; 
599              color: #ffffff; 
600          }     
601          .modal-extensao_subtitle { 
602              font-size: 13.7px!important; 
603              color: #2A2E43!important; 
604              font-family: Montserrat, semi-bold!important; 
605              font-weight: 600!important; 
606
607          .modal-extensao_subtitle::after { 
608              content: " "; 
609              display: block; 
610              width: 126px; 
611              height: 2px; 
612              background: #707070; 
613              margin: 0 auto; 
614              margin-top: 5px;  
615
616          .modal-extensao_preco { 
617              color: #454F63; 
618              font-size: 25px; 
619              font-family: Montserrat;             
620              font-weight: bold; 
621
622          .modal-extensao_ctboleto { 
623              width: 50%; 
624              float: left; 
625              border-color: #D7D7DB; 
626              border-style: solid; 
627              border-width: 1px; 
628              border-left: none; 
629              font-size: 21px; 
630              color: #454F63 
631                               
632
633          .modal-extensao_ctcard { 
634              width: 50%; 
635              float: left; 
636              border-color: #D7D7DB; 
637              border-style: solid; 
638              border-width: 1px; 
639              border-right: none;  
640              border-left: none; 
641              font-size: 21px;   
642              color: #454F63; 
643          }  
644          
645          .modal-extensao_txtPag { 
646              color:#2A2E43;   
647              font-size: 9px;  
648              font-family: Montserrat; 
649              font-weight: 600; 
650              display: block; 
651
652          .modal-extensao_txteconomiza { 
653              display: block; 
654              font-size: 12px; 
655
656          .modal-extensao_txtverde { 
657              color: #5ACC75; 
658
659          .modal-extensao_txtParcela { 
660              color:#2A2E43;   
661              font-size: 12px;  
662              font-family: Montserrat; 
663              font-weight: normal; 
664              display: block; 
665
666          .modal-extensao_txtporcent{ 
667              font-size: 9px; 
668              color: #5ACC75; 
669              font-weight: 600; 
670
671          .modal-extensao-btn-conheca { 
672              color: #2967F4 !important; 
673              background-color: transparent; 
674              border-color: #2967F4 !important; 
675              box-shadow: none !important; 
676              font-size: 14px !important; 
677              margin-left: 10px; 
678              transition: 0.3s; 
679              float: left; 
680
681           .modal-extensao-btn-conferir { 
682              color: #2967F4 !important; 
683              background-color: transparent; 
684              border-color: #2967F4 !important; 
685              box-shadow: none !important; 
686              font-size: 14px !important; 
687              margin-left: 10px; 
688              transition: 0.3s; 
689              min-width: 330px; 
690              min-height: 50px;             
691
692            .modal-extensao-btn-conferir:hover { 
693              color: #ffffff!important; 
694
695             
696           .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus { 
697              color: #ffffff!important; 
698           }  
699           .modal-extensao-btn-aluno-sim-nao { 
700              color: #000000; 
701              background-color: transparent; 
702              border-color: #000000 !important; 
703              box-shadow: none !important; 
704              font-size: 14px !important; 
705              margin-left: 10px; 
706              transition: 0.3s;  
707              min-width: 95px;            
708
709           .modal-extensao-btn-aluno-sim-ativo { 
710              color: #ffffff!important; 
711              background-color: #3969EB!important; 
712              border-color: #3969EB !important; 
713           }  
714           .modal-extensao-btn-aluno-sim-nao:hover { 
715              background-color: transparent; 
716              border-color: #3969EB !important; 
717              color: #3969EB!important;         }    
718           .modal-extensao-voltar-icon,.modal-extensao-fechar { 
719              font-size: 13px; 
720              position: absolute; 
721              top: 30px; 
722              right: 20px; 
723              cursor: pointer; 
724              color: #000; 
725
726  
727           .modal-extensao-voltar-txticon { 
728              color: #000; 
729              font-size: 9px; 
730              font-family: Montserrat; 
731              font-weight: 600; 
732              padding-left: 5px; 
733
734           .modal-extensao-ico-check { 
735              color: #5ACC75; 
736              font-size: 65px; 
737
738           .modal-extensao-aluno_txtcontent { 
739              font-size: 18px!important; 
740              color: #000; 
741
742           .modal-extensao-aluno__btn { 
743              background-color: #5ACC75!important; 
744              font-size: 14px;             
745              color: #ffffff; 
746              min-width: 330px; 
747              text-transform: uppercase; 
748              min-height: 50px; 
749           }  
750           .modal-extensao-aluno__btn:hover { 
751              color: #fff; 
752              background-color: #3fb25c!important; 
753              border-color: transparent; 
754              color: #ffffff;     
755
756           .modal-extensao-ico-percent { 
757              background-color: blue; 
758              color: #fff; 
759              font-size: 48px; 
760              border-radius: 50%; 
761              padding: 10px 18px;      
762
763   
764          .btn-preco-ex-aluno,.btn-preco-padrao{ 
765   
766            background:none; 
767            border: none; 
768            width: 100%; 
769            display: flex; 
770            align-items: center; 
771            justify-content: space-between; 
772            text-align: left; 
773            font-size: 14px; 
774
775   
776          .custom-icon-right{ 
777            transform: rotate(0); 
778            transition: all 0.5s; 
779
780   
781          .custom-icon-right-active{ 
782          transform: rotate(90deg);             
783
784   
785          .ssp-divisor{ 
786            width: 100%; 
787            color: #D7D7DB; 
788            margin: 15px 0; 
789
790   
791   
792          @media only screen and (max-width: 768px){ 
793   
794              .modal-extensao_content{ 
795                width:336px; 
796                padding: 60px 20px 20px 20px; 
797
798   
799              .modal-extensao__btn{ 
800                width: 100%; 
801
802   
803              .modal-extensao-modal-extensao__btn { 
804                  float: initial; 
805                  width: 234px; 
806
807              .modal-extensao-btn-conheca { 
808                  float: initial; 
809                  width: 100%; 
810                  margin-left: 0px; 
811
812              .modal-extensao-aluno__btn { 
813                  min-width: 234px; 
814
815              .modal-extensao-btn-conferir{ 
816                  min-width: 234px; 
817                  margin-left: 0px; 
818
819          }     
820 
821 
822/* Emed */ 
823.ssp-btn-emed__voltar-curso { 
824  border: 1px solid #474F61; 
825  color: #474F61; 
826  max-width: 372px; 
827  margin-left: 60px; 
828  height: 50px; 
829  padding: 12px!important; 
830
831 
832@media (max-width: 768px) { 
833  .ssp-btn-emed__voltar-curso { 
834    font-size: 14px; 
835    margin-left: 0px!important; 
836
837
838 
839@media only screen and (max-width: 767px){ 
840  .ssp:not(.liferay-instance) .ssp-emed-visita-text { 
841      margin: 0; 
842      transform: none; 
843      margin-left: 10px; 
844
845
846 
847.ssp:not(.liferay-instance) .icon-map-adress::after { 
848  padding: 0 8px 0 0; 
849
850 
851.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal { 
852    margin: 5px 0; 
853
854 
855.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento { 
856    width: 100%; 
857    color: white !important; 
858    font-size: 15px; 
859    font-weight: 600; 
860    margin: 10px 0; 
861
862 
863.ssp-modal-emed-info-txt-matricula { 
864  display: inline-block; 
865
866.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao { 
867    background: #BFC3C9 !important; 
868    color: #454F63!important; 
869    opacity: 1!important; 
870    font-size: 14px; 
871    border:none; 
872
873 
874.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled { 
875    background: #E5E8ED; 
876    color: #454F63!important; 
877    opacity: 1; 
878    font-size: 14px; 
879
880 
881.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se { 
882    background-color: #5acc75; 
883    text-transform: none; 
884
885 
886.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos { 
887    font-weight: 600; 
888
889 
890.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title { 
891    margin: 0; 
892
893 
894.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container { 
895 
896  padding: 0; 
897 
898
899 
900.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content { 
901    padding: 40px 0; 
902
903 
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao { 
905    text-align: center; 
906
907.ssp-card-modal-emed-lineou { 
908height: 1px; 
909    background-color: #FC7834; 
910    text-align: center;     
911    width: 50%;     
912    margin: 0px auto; 
913    margin-bottom: 15px; 
914
915.ssp-card-modal-emed-lineou span { 
916background-color: white; 
917    position: relative; 
918    top: -0.8em; 
919    padding: 0 19px; 
920    font-weight: bold; 
921    color: #2A2E43; 
922    font-size: 15px; 
923
924.ssp-modal-emed-txtValor { 
925    font-size: 16px; 
926    color: #04488C; 
927    font-weight: bold; 
928
929.ssp-card-modal-emed-centralizaPagtos{ 
930max-width: 285px;margin:0 auto; margin-top: 18px!important; 
931
932.ssp-card-modal-forma-pagamento__tipos-content p { 
933  font-weight: 500!important; 
934
935.textoCartoesAceitos { 
936  font-weight: 500!important; 
937
938.ssp-card-modal-emed-valorObs { 
939    color: #004A8C; 
940    display: flex;     
941    justify-content: center; 
942    font-weight: 500; 
943    padding-top: 11px; 
944    font-size: 14px; 
945
946.ssp-card-modal-emed-boxDesconto{ 
947    border: 0!important; 
948    font-weight: 500!important; 
949    background-color: #F7F7F7; 
950    border-radius: 13px; 
951    padding: 20px 40px!important; 
952    margin-bottom: 0!important; 
953
954.ssp-modal-emed-boxoito { 
955    padding: 5px 45px!important; 
956    text-align: center;  
957    border-bottom: 0px!important; 
958
959.ssp-modal-emed-btfechar { 
960    position: absolute; 
961    right: 0; 
962    display: flex; 
963    flex-direction: column; 
964    text-align: center; 
965    line-height: 0.9; 
966    top: -48px; 
967    color: #E4E8F0; 
968    font-weight: 500; 
969    font-size: 14px; 
970
971.ssp-card-modal-forma-pagamento__btn-close:hover { 
972    opacity: .6; 
973
974.ssp-card-modal-emed-ano { 
975    font-weight: 500; 
976    font-size: 22px; 
977    color: #454F63; 
978}  
979.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {  
980    font-weight: 500!important; 
981 
982}  
983.ssp-card-modal-emed-valorObs i { 
984    padding-top: 2px; 
985    padding-right: 3px; 
986}   
987button[id^="btnComprarEmedModal_"] { 
988    height: 50px; 
989    font-weight: 600; 
990    max-width: 372px; 
991    width: 100%;     
992    margin: 0 auto; 
993    /* margin-left: 60px; */ 
994    display: block; 
995    height: 50px; 
996    padding: 12px !important; 
997 
998
999.obsspan { 
1000    justify-content: left; 
1001    padding-bottom: 10px; 
1002
1003 
1004.emed_transferencia_texto{ 
1005	font-size:20px!important;; 
1006
1007 
1008 
1009@media only screen and (max-width: 767px){ 
1010 
1011    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal { 
1012      width: 100%; 
1013
1014 
1015    .ssp-card-modal-emed-valorObs { 
1016      font-size: 12px; 
1017    }  
1018    .obsspan { 
1019    justify-content: left; 
1020    margin-left: -14px!important; 
1021
1022    .ssp-modal-emed-boxoito { 
1023    padding: 5px 0px!important; 
1024
1025    .ssp-modal-emed-info-txt-matricula { 
1026    display: inherit; 
1027
1028    .ssp-card-modal-emed-boxDesconto{ 
1029      padding: 20px 20px!important; 
1030      font-size: 12px!important; 
1031   }   
1032   .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] { 
1033    font-size: 12px !important; 
1034    font-weight: 500!important; 
1035  }  
1036  .ssp-modal-emed-btfechar { 
1037    font-size: 12px; 
1038 
1039  }   
1040  button[id^="btnComprarEmedModal_"] { 
1041    height: 50px;     
1042    padding: 10px; 
1043    border-radius: 4px; 
1044    margin-left: 0px!important 
1045
1046  button[id^="btnComprarEmedModal_"] span { 
1047    font-size: 15px; 
1048    font-weight: 600; 
1049
1050  .ssp-btn-emed__voltar-curso_0 { 
1051    font-weight: 600!important; 
1052    height: 50px; 
1053    border-radius: 4px!important; 
1054    padding: 14px!important; 
1055
1056   
1057  .emed_transferencia_texto{ 
1058	font-size:16px!important; 
1059	}   
1060 
1061}   
1062 
1063@media screen and (min-width: 1200px){ 
1064  .ssp-col-lg-without { 
1065    flex: unset; 
1066    width: unset; 
1067
1068
1069@media screen and (max-width: 1199px){ 
1070  .ssp-desconto-2022 .modal-extensao_txteconomiza { 
1071    font-size: 12px !important; 
1072
1073  .ssp-filters-px { 
1074    padding: 0 !important; 
1075
1076  .ssp-switch-label { 
1077    margin: auto 0 !important; 
1078
1079  .ssp-switch-label-message { 
1080    margin-top: 10px; 
1081    margin-bottom: 10px; 
1082    padding-right: 0 !important; 
1083    padding-left: 0 !important; 
1084
1085  .ssp-container-selecione-unidade [name="unidades-ofertas"] { 
1086    max-width: 316px!important; 
1087
1088  .ssp-detalhe-curso-titulo-filter { 
1089    font-size: 16px !important; 
1090
1091
1092 
1093 
1094.ssp-filters-px { 
1095  padding: 0 80px; 
1096
1097/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ 
1098/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */ 
1099/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ 
1100.ssp-switch { 
1101  position: relative; 
1102  display: inline-block; 
1103  width: 63px; 
1104  height: 32px; 
1105
1106 
1107.ssp-switch input {  
1108  opacity: 0; 
1109  width: 0; 
1110  height: 0; 
1111
1112 
1113.ssp-switch-label { 
1114  margin: auto 15px; 
1115  font: normal normal 600 16px/19px Montserrat; 
1116  letter-spacing: 0px; 
1117  color: #FFFFFF; 
1118  white-space: nowrap; 
1119
1120 
1121.ssp-switch-label-section { 
1122  font: normal normal 600 18px/22px Montserrat; 
1123  margin-bottom: 11px; 
1124
1125 
1126.ssp-switch-label-message { 
1127  font: normal normal medium 16px/19px Montserrat !important; 
1128  letter-spacing: 0px; 
1129  color: #FFFFFF; 
1130  margin-top: 16px; 
1131  padding-left: 25px; 
1132  padding-right: 25px; 
1133
1134 
1135.ssp-switch-divider { 
1136  border-bottom: 1px solid #4a4d5f; 
1137  width: 100%; 
1138
1139 
1140.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter { 
1141  font-size: 21px; 
1142
1143 
1144.ssp-switch-slider { 
1145  position: absolute; 
1146  cursor: pointer; 
1147  top: 0; 
1148  left: 0; 
1149  right: 0; 
1150  bottom: 0; 
1151  background-color: #00000000; 
1152  border: 1px solid #FFFFFF; 
1153  -webkit-transition: .4s; 
1154  transition: .4s; 
1155
1156 
1157.ssp-switch-slider:before { 
1158  position: absolute; 
1159  content: ""; 
1160  height: 21px; 
1161  width: 21px; 
1162  left: 4px; 
1163  bottom: 4px; 
1164  background-color: white; 
1165  -webkit-transition: .4s; 
1166  transition: .4s; 
1167
1168 
1169input:checked + .ssp-switch-slider { 
1170  background-color: #5ACC75; 
1171  border: 1px solid #5ACC75; 
1172
1173input:checked + .ssp-switch-slider-secondary { 
1174  background-color: #2967F4; 
1175  border: 1px solid #2967F4; 
1176
1177 
1178input:focus + .ssp-switch-slider { 
1179  box-shadow: 0 0 1px #5ACC75; 
1180
1181input:focus + .ssp-switch-slider-secondary { 
1182  box-shadow: 0 0 1px #2967F4; 
1183
1184 
1185input:checked + .ssp-switch-slider:before { 
1186  -webkit-transform: translateX(33px); 
1187  -ms-transform: translateX(33px); 
1188  transform: translateX(33px); 
1189
1190 
1191/* Rounded sliders */ 
1192.ssp-switch-slider.round { 
1193  border-radius: 34px; 
1194
1195 
1196.ssp-switch-slider.round:before { 
1197  border-radius: 50%; 
1198
1199 
1200/*Utilizado no modal de registro de interesse #9309*/ 
1201option[value=""][disabled] { 
1202  display: none; 
1203
1204/* Css para botao de idiomas online */ 
1205 
1206.btn-idiomas__aula-online{ 
1207  background:#5382FF; 
1208  color:white!important; 
1209  text-decoration:none!important; 
1210  padding:11px 14px; 
1211  border-radius:4px; 
1212  font-size:13px; 
1213  font-weight:600; 
1214  transition:.3s; 
1215
1216 
1217.btn-idiomas__aula-online:hover{ 
1218  background:#5275D1; 
1219  font-weight:600!important; 
1220
1221 
1222.title-idioma-online__modal,.icon-wifi-title__modal{ 
1223  color:#5382FF!important; 
1224  font-size:25px!important; 
1225  margin:0!important; 
1226  margin-right:5px!important; 
1227
1228 
1229.btn-modal-entendi__idioma-online{ 
1230  font-size:16px!important; 
1231  font-weight:600!important; 
1232  color:#5382FF!important; 
1233  border:#5382FF 1px solid!important; 
1234  padding:15px 142px; 
1235  width:auto!important; 
1236
1237 
1238.btn-modal-entendi__idioma-online:hover{ 
1239  font-size:16px!important; 
1240  font-weight:600!important; 
1241  color:#5382FF!important; 
1242  border:#5382FF 1px solid!important; 
1243  background:white!important; 
1244
1245 
1246@media only screen and (max-width: 768px){ 
1247   
1248  .title-idioma-online__modal,.icon-wifi-title__modal{ 
1249    color:#5382FF!important; 
1250    font-size:21px!important; 
1251    margin:0!important; 
1252    margin-right:5px!important; 
1253
1254   
1255  .btn-modal-entendi__idioma-online{ 
1256    font-size:16px!important; 
1257    font-weight:600!important; 
1258    color:#5382FF!important; 
1259    border:#5382FF 1px solid!important; 
1260    padding:12px 30%; 
1261    width:auto!important; 
1262
1263     
1264
1265 
1266.btn-emed-lista-espera{ 
1267  background-color:#C560C7!important; 
1268
1269 
1270.ssp:not(.liferay-instance) .ssp-container__form-select { 
1271    max-width: 430px; 
1272    width:100%; 
1273
1274 
1275 
1276@media (max-width: 768px){ 
1277  .ssp:not(.liferay-instance) .ssp-ofertas-emed__card { 
1278    margin: 10px 20px; 
1279    max-width: 335px; 
1280
1281
1282 
1283/* css EMED Registro de interesse */ 
1284 
1285.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{ 
1286 
1287  display: flex; 
1288  align-items: center; 
1289  padding: 0.625rem 0; 
1290  width: 85%; 
1291  justify-content: space-between; 
1292  margin: 0 auto; 
1293 
1294
1295 
1296.ssp-card-registro-interesse__title-section-itens{ 
1297  margin: 10px 0 11.5px 0 !important; 
1298  font-size: 20px; 
1299  flex-basis: 120px; 
1300
1301 
1302.ssp-card-registro-interesse__check-itens-content { 
1303  display: flex!important; 
1304  justify-content: center!important; 
1305  flex: 0 1 90%!important; 
1306
1307.ssp-card-registro-interesse__check-item { 
1308  display: flex; 
1309  align-items: center; 
1310  flex-basis: 100px; 
1311
1312 
1313.ssp-card-registro-interesse label { 
1314  margin-right: 0!important; 
1315
1316 
1317.ssp-card-registro-interesse [type="checkbox"] { 
1318box-shadow: 0px 0px 6px #00000029; 
1319
1320 
1321#cursos-registro-interesse,#unidades-registro-interesse{ 
1322padding: 10px 0; 
1323
1324 
1325.emed-select-group{ 
1326 
1327box-shadow: 0px 0px 12px #00000010; 
1328border: 1px solid #6E6E6E; 
1329border-radius: 4px; 
1330padding: 1.0rem 1.125rem; 
1331margin: 1rem 0; 
1332 
1333
1334 
1335.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a { 
1336      color: #457eff !important; 
1337
1338 
1339.emed .ssp-card-registro-interesse__btn-enviar { 
1340background-color: #C560C7 !important; 
1341
1342 
1343.ssp-card-registro-interesse__title-modal{ 
1344color:#C560C7 !important; 
1345font-size: 35px !important; 
1346font-weight: bold !important; 
1347margin: 0 !important; 
1348
1349 
1350#msg-transferencia-emed{ 
1351display: flex; 
1352justify-content: center; 
1353flex: wrap; 
1354flex-direction: column; 
1355align-items: center; 
1356padding: 1rem 0; 
1357
1358 
1359.transferencia-emed-title { 
1360  color: #d266d4; 
1361  display: flex; 
1362  gap: 10px; 
1363  font-size: 16px; 
1364  font-weight: bold; 
1365  align-items:center; 
1366
1367 
1368.transferencia-emed-title p { 
1369  margin: 0 !important; 
1370  font-weight: bold !important; 
1371  font-size: 16px!important; 
1372
1373 
1374.transferencia-emed-link a{ 
1375  font-size: 15px; 
1376  font-weight: 500!important; 
1377  color: #792F7A; 
1378  display: block; 
1379  text-align: center; 
1380
1381 
1382.transferencia-emed-link a:hover { 
1383  font-weight: 500!important; 
1384  color: #792F7A; 
1385
1386 
1387.emed .ssp-card-registro-interesse__label-curso-selecionado{ 
1388color:#2A2E43!important; 
1389font-weight: bold!important; 
1390font-size: 28px; 
1391
1392 
1393 
1394/* css para registro de interesse atual */ 
1395 
1396#periodo-registro-interesse,#dias-registro-interesse{ 
1397padding: .625rem 0; 
1398
1399 
1400/* css card sem turma e registro de interesse emed*/ 
1401 
1402.slick-area-emed { 
1403    display: -webkit-box !important; 
1404    display: -ms-flexbox !important; 
1405    display: flex !important; 
1406    -webkit-box-align: center; 
1407    -ms-flex-align: center; 
1408    align-items: center; 
1409    -webkit-box-pack: center; 
1410        -ms-flex-pack: center; 
1411            justify-content: center; 
1412    font-size: 0; 
1413    -ms-flex-wrap: nowrap; 
1414        flex-wrap: nowrap; 
1415
1416   
1417  .slick-area-emed .slick-track, .slick-area-emed .slick-list { 
1418    width: 100%; 
1419
1420 
1421  @media only screen and (max-width: 1199px) and (min-width: 768px) { 
1422    .slick-area-emed--md-bleed { 
1423      width: 100vw; 
1424      left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important; 
1425
1426    .slick-area-emed--md-bleed .slick-list { 
1427      padding-left: calc(calc(50vw - (768px / 2) + 37px)); 
1428      padding-right: calc(calc(50vw - (768px / 2) + 37px)); 
1429
1430    .slick-area-emed--md-bleed .slick-arrow { 
1431      display: none !important; 
1432
1433
1434   
1435  @media only screen and (min-width: 376px) and (max-width: 1024px) { 
1436    .slick-area-emed--md-bleed { 
1437      width: 100vw; 
1438      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1439
1440    .slick-area-emed--md-bleed .slick-list { 
1441      padding-left: 2px; 
1442
1443    .slick-area-emed--md-bleed .slick-arrow { 
1444      display: none !important; 
1445
1446
1447   
1448  @media only screen and (max-width: 375px) { 
1449     
1450    .ssp-emed__card-slider-body { 
1451    padding: 25px 30px; 
1452
1453    
1454     
1455    .slick-area-emed--md-bleed { 
1456      width: 100vw; 
1457      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1458
1459    /* .slick-area-emed--md-bleed .slick-list { 
1460      padding-left: 20px; 
1461 
1462    } */ 
1463    .slick-area-emed--md-bleed .slick-arrow { 
1464      display: none !important; 
1465
1466
1467 
1468  .slick-area__item { 
1469    display: flex; 
1470    flex-basis: auto; 
1471
1472 
1473  .ssp-emed__section__textCard { 
1474  margin: 20px 0 0 0; 
1475
1476 
1477  .ssp-emed__card-slider-body { 
1478    padding: 25px 50px; 
1479    min-height: 350px; 
1480    display: flex; 
1481    flex-direction: column; 
1482
1483 
1484  .slick-area__item { 
1485    display: flex; 
1486    flex-basis: auto; 
1487
1488 
1489  .ssp-emed__card-slider-body a { 
1490    text-decoration: none!important; 
1491    font-weight: normal; 
1492    color: #78849E 
1493
1494 
1495  .ssp-emed__card-slider-body a:hover {   
1496    font-weight: bold!important; 
1497    color: #2a2e43 
1498
1499 
1500  .ssp-emed__card-slider { 
1501      border-radius: 12px; 
1502      background: transparent; 
1503      -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%); 
1504      box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%); 
1505      margin: 12px; 
1506      position: relative; 
1507      overflow: hidden; 
1508      color: #ffffff!important; 
1509      border: 1px solid #fff; 
1510      min-height: 350px; 
1511
1512 
1513  .slick-initialized .slick-track { 
1514      display: flex; 
1515
1516 
1517    .slick-initialized .slick-slide { 
1518      height: inherit!important; 
1519      display: flex; 
1520
1521 
1522  .ssp-emed__section__titleCard { 
1523  font-size: 28px !important; 
1524  color: #ffffff !important; 
1525  margin: 0 !important; 
1526  display: flex !important; 
1527  justify-content: flex-start !important; 
1528  flex-direction: row !important; 
1529  align-items: start !important; 
1530  flex-basis: 60px; 
1531
1532 
1533.ssp-emed__section__titleCard i { 
1534  font-size: 28px; 
1535  color: #ffffff; 
1536  margin: 0 0.85rem 0 0; 
1537  line-height: 30px; 
1538
1539 
1540.ssp-emed__section__titleCard i.fa-envelope { 
1541  margin-top: 0px;   
1542
1543 
1544.ssp-emed__section__titleCard i.fa-users-class { 
1545  margin-top:2px; 
1546
1547 
1548.ssp-emed__section__titleCard div { 
1549  text-decoration: underline; 
1550  font-size: 28px !important; 
1551  font-weight: bold; 
1552  margin: 0!important; 
1553  transform:translateY(-2px) 
1554
1555 
1556  .ssp-emed__section__introCard { 
1557    display: block; 
1558    font: 28px/30px 'Montserrat'; 
1559    font-weight: 600; 
1560    margin: 20px 0; 
1561    color: #ffffff;  
1562
1563 
1564  .ssp-emed__section__introCardCTA { 
1565    font: 34px/36px 'Montserrat'; 
1566    font-weight: bold; 
1567    display: block; 
1568    margin: 20px 0; 
1569    color: #ffffff;  
1570
1571 
1572  .ssp-emed__section__textCard { 
1573    font: 22px/30px 'Montserrat'; 
1574    color: #ffffff;  
1575    display: block; 
1576    margin: 20px 0 0 0; 
1577    position: relative; 
1578
1579 
1580  .ssp-emed__iconWrapper { 
1581    display: inline-block; 
1582    width: 50px; 
1583    color: #B053B2; 
1584    position: absolute; 
1585    bottom: 0; 
1586    right: 0; 
1587
1588 
1589  .ssp-emed__btn { 
1590    background-color: #B053B2 ; 
1591      color: #fff!important; 
1592      font: normal normal 600 18px/22px Montserrat; 
1593      box-shadow: 0px 4px 16px #455B6314; 
1594      width: 100%; 
1595      transition: .3s; 
1596      padding:10px!important; 
1597
1598 
1599  .ssp-emed__btn:hover { 
1600      opacity: 0.7; 
1601  }     
1602 
1603  /*mobile emed*/ 
1604  @media only screen and (max-width: 1024px) { 
1605    .slick-area-emed .slick-dots li.slick-active button:before { 
1606      opacity: .75; 
1607      color: #707070; 
1608
1609   
1610    .slick-area-emed .slick-dots li button:before { 
1611      color: blue; 
1612
1613 
1614    .ssp-card-detalhe-curso__secundary-info-carga-horaria { 
1615      min-width: 35%; 
1616      text-align: end; 
1617
1618
1619   
1620  @media only screen and (max-width: 1199px) and (min-width: 768px) { 
1621    .slick-area-emed--md-bleed { 
1622      width: 100vw; 
1623      left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important; 
1624
1625    .slick-area-emed--md-bleed .slick-list { 
1626      padding-left: calc(calc(50vw - (768px / 2) + 37px)); 
1627      padding-right: calc(calc(50vw - (768px / 2) + 37px)); 
1628
1629    .slick-area-emed--md-bleed .slick-arrow { 
1630      display: none !important; 
1631
1632
1633   
1634  @media only screen and (min-width: 375px) and (max-width: 1024px) { 
1635      .slick-area-emed--md-bleed { 
1636        width: 100vw; 
1637        left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1638
1639      .slick-area-emed--md-bleed .slick-list { 
1640        padding-left: 2px; 
1641
1642      .slick-area-emed--md-bleed .slick-arrow { 
1643        display: none !important; 
1644
1645      .ssp-emed__section__titleCard { 
1646      align-items: start !important; 
1647
1648 
1649    .ssp-emed__section__titleCard div { 
1650      font-weight: bold !important; 
1651
1652 
1653    .ssp-emed__section__titleCard i { 
1654      font-weight: 300 !important; 
1655      font-size: 28px !important; 
1656      margin: 3px 0.85rem 0 0; 
1657
1658 
1659    .transferencia-emed-title { 
1660      font-size: 12px; 
1661
1662 
1663    .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select { 
1664      background-size: 15px 15px !important; 
1665      padding: 0 10px; 
1666
1667
1668   
1669  @media only screen and (max-width: 550px) { 
1670 
1671    .ssp-emed__section__introCardCTA{ 
1672      font-size: 28px; 
1673
1674 
1675    #msg-transferencia-emed{ 
1676    gap:12px; 
1677
1678     
1679    
1680     
1681    .ssp-emed__card-slider { 
1682      width:335px; 
1683      min-height: 440px; 
1684
1685 
1686    .slick-initialized .slick-track { 
1687      display: flex; 
1688
1689 
1690    .slick-initialized .slick-slide { 
1691      height: inherit!important; 
1692      display: flex; 
1693      min-height: 440px; 
1694
1695 
1696  .ssp-emed__card-slider-body { 
1697    padding: 25px 30px; 
1698
1699 
1700  .ssp-emed__section__titleCard div { 
1701      transform: translateY(-5%); 
1702      font-size: 24px!important; 
1703
1704     
1705    .slick-area-emed--md-bleed { 
1706      width: 100vw; 
1707      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1708
1709    .slick-area-emed--md-bleed .slick-list { 
1710      padding-left: 20px; 
1711
1712    .slick-area-emed--md-bleed .slick-arrow { 
1713      display: none !important; 
1714
1715 
1716    .ssp-card-registro-interesse__title-section-itens { 
1717    flex-basis: 80px; 
1718
1719 
1720  .emed #periodo-registro-interesse, .emed #turmas-registro-interesse { 
1721    width: 95%; 
1722
1723 
1724  .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label { 
1725    margin: 0!important; 
1726
1727 
1728  .emed .ssp-card-registro-interesse.emed [type="checkbox"] { 
1729    margin-left: 0!important; 
1730
1731 
1732  .emed .ssp-card-registro-interesse__check-item { 
1733    flex-basis: 100px; 
1734
1735
1736 
1737  .emed-select-group { 
1738    box-shadow: 0px 0px 12px #00000010; 
1739    border: 1px solid #6E6E6E; 
1740    border-radius: 4px; 
1741    margin: 1rem 0; 
1742
1743 
1744.emed-select-group h4 { 
1745    margin: 15px 0 10px 0; 
1746
1747.ssp-emed__section__textCard { 
1748  margin: 20px 0 0 0; 
1749
1750 
1751.ssp-card-msg-sucesso__btn{ 
1752  font-size: 20px; 
1753
1754 
1755.ssp:not(.liferay-instance) .ssp-card-oferta-curso { 
1756  height:fit-content; 
1757
1758 
1759.ssp-card-duvida__bolsa-estudo{ 
1760 
1761background:#DCE8FF; 
1762padding: 30px; 
1763max-width: 683px; 
1764width: 100%; 
1765border-radius: 14px; 
1766display:flex; 
1767justify-content:center; 
1768align-items: center; 
1769gap: 20px;  
1770margin: 1rem auto; 
1771 
1772
1773 
1774.ssp-card-duvida__bolsa-estudo p{ 
1775 
1776font-size: 16px!important; 
1777font-weight: bold!important; 
1778color: #2967F4!important; 
1779margin: 0!important;; 
1780 
1781
1782 
1783.ssp-card-duvida__bolsa-estudo a{ 
1784 
1785border:1px solid #2967F4!important; 
1786font-size: 14px!important; 
1787font-weight: 600; 
1788text-decoration: none!important; 
1789color: #2967F4!important; 
1790padding:14px 27px; 
1791border-radius:6px; 
1792transition: .3s; 
1793 
1794
1795 
1796.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{ 
1797 
1798font-size: 14px!important; 
1799font-weight: 600!important; 
1800background: #2967F4!important; 
1801color:white !important; 
1802opacity:1!important; 
1803 
1804
1805 
1806@media only screen and (max-width: 768px){ 
1807 
1808.ssp-card-duvida__bolsa-estudo{ 
1809 
1810    background:#DCE8FF; 
1811    padding: 20px; 
1812    flex-flow: column; 
1813    width:90%; 
1814 
1815
1816 
1817.ssp-card-duvida__bolsa-estudo p{ 
1818 
1819    max-width:200px; 
1820    text-align: center; 
1821 
1822
1823 
1824.ssp-card-duvida__bolsa-estudo a{ 
1825 
1826    padding:16px 27px;          
1827 
1828
1829 
1830
1831 
1832/* Novo Card de Oferta */ 
1833 
1834  /* ajustes no card existente */ 
1835 
1836  .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{ 
1837    margin-bottom: 30px; 
1838
1839 
1840  .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content { 
1841      margin-bottom: 5px; 
1842
1843 
1844  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{ 
1845    margin: 5px 0 10px 0; 
1846
1847 
1848  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item { 
1849      border-radius: 0; 
1850      background-color: unset; 
1851      padding: 0; 
1852      max-width: 100%; 
1853      width: 100%; 
1854      margin: 0; 
1855
1856 
1857  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{ 
1858      margin:0; 
1859      opacity: 0; 
1860      transition: 0.3s; 
1861
1862 
1863  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia { 
1864      margin: 0; 
1865      font-size: 17px; 
1866      font-weight: bold; 
1867      font-stretch: normal; 
1868      font-style: normal; 
1869      line-height: 1.23; 
1870      letter-spacing: normal; 
1871      text-align: center; 
1872
1873 
1874  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora { 
1875      margin: 0; 
1876      font-size: 17px; 
1877      font-weight: bold; 
1878      font-stretch: normal; 
1879      font-style: normal; 
1880      line-height: 1.3; 
1881      letter-spacing: normal; 
1882      text-align: center; 
1883
1884 
1885  .modal-extensao_txteconomiza{ 
1886      font-size: 14px; 
1887      color: #454F63; 
1888      font-weight: 400; 
1889
1890 
1891  .btn.btn-lg { 
1892      padding:.7rem; 
1893 
1894
1895 
1896  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{ 
1897    font-size: 17px; 
1898
1899 
1900  .ssp-card-oferta-curso__item-valor-investimento{ 
1901    font-size: 38px; 
1902
1903 
1904  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{ 
1905    color: #454F63; 
1906    font-weight: bold!important; 
1907    font-size: 14px; 
1908
1909 
1910.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{ 
1911    color: #454F63!important; 
1912    font-size: 14px; 
1913
1914 
1915.ssp-card-modal-forma-pagamento__icon-boleto-e-cartao{ 
1916    font-size: 18px!important; 
1917    margin-right: 15px!important; 
1918
1919 
1920 
1921.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{ 
1922    color:#454F63; 
1923    font-size: 14px; 
1924    font-weight: 400; 
1925
1926 
1927.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content { 
1928    padding-bottom: 0; 
1929
1930 
1931  /* local realizacao */ 
1932 
1933  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title { 
1934    font-size: 13px; 
1935    color: #00488C; 
1936    font-weight: 600; 
1937    text-decoration: none!important; 
1938    border: 1px solid #00488C; 
1939    padding: 11px 14px; 
1940    transition:.3s; 
1941    border-radius: 4px; 
1942    display: flex; 
1943    gap: 5px; 
1944    align-items: center; 
1945
1946   
1947  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover { 
1948      color: white; 
1949      font-weight: 600!important; 
1950      background: #08488C; 
1951  }  
1952     
1953  .container-local-realizacao { 
1954      padding:0; 
1955      border:0; 
1956      border-radius: unset; 
1957      width: 100%; 
1958      margin: 10px 0 0 0; 
1959      box-shadow: none; 
1960      display: flex; 
1961      justify-content:center; 
1962      align-items: flex-end; 
1963
1964 
1965  .icon-local-realizacao{ 
1966      color: #00488C; 
1967      font-size: 13px; 
1968  }  
1969   
1970   
1971  @media only screen and (max-width: 768px){ 
1972 
1973    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {  
1974        font-size: 16px; 
1975
1976 
1977    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item { 
1978        font-size: 14px!important; 
1979
1980 
1981    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{ 
1982        font-size: 15px; 
1983
1984 
1985    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento { 
1986      font-size: 33px; 
1987
1988 
1989    .icon-local-realizacao { 
1990        font-size: 12px; 
1991
1992 
1993    .modal-extensao_txteconomiza { 
1994        font-size: 12px; 
1995
1996 
1997    .content-valores-descontos { 
1998        padding-bottom: 8px!important; 
1999
2000 
2001    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{ 
2002        font-size: 14px!important; 
2003
2004 
2005 
2006
2007 
2008     
2009     
2010 
2011/* final ajustes no card existente */ 
2012 
2013 
2014/* Novos elementos */ 
2015 
2016.content-data-dias{ 
2017    padding:20px; 
2018    padding-top:0; 
2019    border-bottom: none !important; 
2020
2021 
2022.content-valores-descontos{ 
2023    padding:20px 0 0 0; 
2024    opacity: 1; 
2025    height:auto; 
2026    transition: 0.3s; 
2027    overflow: hidden; 
2028    border-top: 1px #E4E8F0 solid;     
2029
2030 
2031.content-valores-descontos.hide-price{ 
2032     
2033    padding:0; 
2034    opacity: 0; 
2035    height:0; 
2036     
2037
2038 
2039.content-btn-bolsa{ 
2040 
2041    border-top: 1px #E4E8F0 solid; 
2042    padding-top:20px;     
2043 
2044
2045 
2046.content-btn-bolsa.modifier-content-show{ 
2047 
2048    padding-bottom: 20px; 
2049 
2050
2051 
2052.content-btn-bolsa.modifier-content-show .ou-separator-desconto{ 
2053    display:none; 
2054
2055 
2056.content-btn-bolsa.modifier-content-show .btn-show-price{ 
2057    display:none; 
2058
2059 
2060.content-buttons{ 
2061 
2062    padding:20px 0 0 0; 
2063 
2064
2065 
2066.block-valor-desconto{ 
2067 
2068  background-color:#F2F6FF; 
2069  padding: 30px 10px 15px 10px; 
2070  border-radius:12px; 
2071  position: relative; 
2072 
2073
2074 
2075.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span { 
2076  font-size: 18px; 
2077
2078 
2079.block-valor-total{ 
2080 
2081  background-color:#F2F6FF; 
2082  padding:15px 10px; 
2083  border-radius:12px; 
2084  position: relative; 
2085 
2086
2087 
2088.block-valor-total .ssp-card-oferta-curso__title-item{ 
2089  font-size: 16px!important; 
2090  color: #454F63!important; 
2091  font-weight:500!important; 
2092
2093 
2094.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{ 
2095  font-size:22px; 
2096
2097 
2098.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{ 
2099    font-size:11px; 
2100
2101 
2102.block-valor-total .ssp-card-oferta-curso__desconto-content p{ 
2103    font-size:14px; 
2104    font-weight: 500; 
2105
2106 
2107.tag-label-desconto{ 
2108 
2109background-color:#B6FDCF; 
2110border-radius: 15px; 
2111padding:5px; 
2112margin: -50px 20px 10px 20px; 
2113 
2114
2115 
2116.tag-label-desconto span, .tag-label-desconto small{ 
2117font-size: 16px!important; 
2118font-weight: bold!important; 
2119color: #454F63!important; 
2120
2121 
2122 
2123 
2124.ou-separator-desconto{ 
2125    font-size: 16px; 
2126    color: #454F63; 
2127    font-weight: bold; 
2128    display:flex; 
2129    flex-wrap: nowrap; 
2130    align-items: center; 
2131    justify-content:space-between; 
2132    gap: 15px; 
2133    padding:20px 0; 
2134
2135 
2136.ou-separator-desconto::after{ 
2137    content: ""; 
2138    height:2px; 
2139    background-color:#E4E8F0; 
2140    width: 100%; 
2141    display: block; 
2142
2143 
2144.ou-separator-desconto::before{ 
2145  content: ""; 
2146  height:2px; 
2147  background-color:#E4E8F0; 
2148  width: 100%; 
2149  display: block; 
2150
2151 
2152.btn-show-price{ 
2153 
2154  background: unset; 
2155  border: 0; 
2156  font-size: 14px!important; 
2157  color: #454F63!important; 
2158 
2159
2160 
2161.btn-show-price p{ 
2162  margin: 0 !important; 
2163
2164 
2165.btn-show-price span{ 
2166  text-decoration: underline; 
2167  font-weight: bold; 
2168
2169 
2170@media only screen and (max-width: 768px){ 
2171 
2172  .content-data-dias{ 
2173 
2174    padding:20px 0; 
2175 
2176
2177 
2178  .ssp-card-oferta-curso__local-realizacao-content__title { 
2179 
2180      font-size: 14px; 
2181      display:flex; 
2182      align-items: center; 
2183      gap: 5px; 
2184      padding: 10px 13px; 
2185
2186 
2187  .ssp-card-oferta-curso__local-realizacao-content__title i{ 
2188 
2189      font-size: 11px; 
2190
2191 
2192  .tag-label-desconto span, .tag-label-desconto small { 
2193      font-size: 13px!important; 
2194
2195 
2196  .tag-label-desconto { 
2197      padding: 5px; 
2198      margin: -50px 12px 10px 12px; 
2199
2200 
2201  .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span { 
2202      font-size: 18px; 
2203
2204 
2205  .content-buttons { 
2206      padding: 10px 0 0 0; 
2207
2208 
2209 
2210
2211 
2212/*final Novo card de ofertas*/ 
2213 
2214/* form aprendizagem */ 
2215 
2216[data-modal="modal"]{ 
2217  background-color: rgba(0,0,0,0.7); 
2218  backdrop-filter: blur(10px); 
2219  display:none; 
2220
2221 
2222[data-modal="close-form-modal"]{ 
2223   
2224  font-size: 22px; 
2225  background: unset!important; 
2226  color: white!important; 
2227  display: flex; 
2228  align-items: center; 
2229  margin: 0; 
2230  padding: 0; 
2231  position:absolute; 
2232  right:0; 
2233  border:0; 
2234  gap:5px; 
2235  right: 2%; 
2236  top: -2%; 
2237   
2238
2239 
2240[data-modal="close-form-modal"] i{ 
2241   
2242  font-size:43px; 
2243  height:fit-content; 
2244   
2245
2246 
2247.open-modal-form{ 
2248  position: fixed; 
2249  top: 0; 
2250  width: 100%; 
2251  height: 100%; 
2252  z-index: 100; 
2253  display: flex; 
2254  justify-content: center; 
2255  align-items: center; 
2256  overflow:auto; 
2257 
2258
2259 
2260.open-modal-form .ssp_ct_form_programe{ 
2261    animation-name: animatetop; 
2262    animation-duration: .4s; 
2263    position:relative; 
2264
2265 
2266label .reference-mark { 
2267color:#78849e; 
2268
2269.lexicon-icon-asterisk { 
2270  color:#78849e; 
2271
2272.lexicon-icon-reload { 
2273  margin-left:10px; 
2274
2275.ssp_title_form_programe{ 
2276    font-size: 42px!important; 
2277    color: #ffffff!important; 
2278    font-family: "Montserrat",sans-serif; 
2279    font-weight:600; 
2280    text-align:left; 
2281
2282.ssp_subtitle_form_programe { 
2283  margin-top:0px!important; 
2284   
2285
2286.ssp_subtitle_form_programe{ 
2287  font-size: 20px!important; 
2288    color: #ffffff!important; 
2289    font-family: "Montserrat",sans-serif; 
2290    font-weight:600; 
2291    text-align:left; 
2292
2293.lfr-ddm-form-page { 
2294background-color: #fff; 
2295border-radius: 12px 12px 0px 0px; 
2296padding: 35px 15px!important; 
2297
2298.ssp:not(.liferay-instance) .form-group label { 
2299 color: #78849E; 
2300 font: normal normal 600 16px/19px Montserrat; 
2301 padding-bottom: 10px; 
2302
2303.lfr-ddm-form-page-description {  
2304display: none!important; 
2305
2306.lfr-ddm-form-page-title { 
2307display: none!important; 
2308
2309.lfr-ddm-form-submit { 
2310background-color: #0380F0; 
2311    text-align: center; 
2312    float: none!important; 
2313    border: 1px solid #0380F0; 
2314    border-radius: 6px; 
2315    font-size: 16px; 
2316    width: 245px; 
2317    height: 50px; 
2318
2319.lfr-ddm-form-pagination-controls { 
2320background-color: #fff; 
2321    text-align: center; 
2322    border-radius: 0px 0px 12px 12px; 
2323    padding-bottom: 25px; 
2324
2325.ddm-form-name { 
2326display: none!important; 
2327
2328.ddm-form-description { 
2329display: none!important; 
2330
2331.ddm-form-builder-app { 
2332margin-top:35px; 
2333
2334.taglib-captcha { 
2335  display: flex; 
2336
2337.input-text-wrapper { 
2338  left: 20px; 
2339
2340.lfr-ddm-form-pagination-controls { 
2341  padding-top:0px!important; 
2342  display:flex; 
2343  justify-content:center; 
2344  align-items: center; 
2345  flex-flow:column; 
2346
2347@media only screen and (max-width: 1024px) { 
2348   
2349.open-modal-form{ 
2350   
2351  align-items: flex-start; 
2352   
2353}   
2354 
2355.ddm-form-builder-app { 
2356    margin-top: 15px; 
2357
2358   
2359.ssp_title_form_programe{ 
2360font-size: 34px!important; 
2361line-height: 1.2!important; 
2362
2363.ssp_subtitle_form_programe{ 
2364font-size:18px!important; 
2365
2366.taglib-captcha { 
2367  display:block; 
2368
2369.input-text-wrapper { 
2370  left:0; 
2371
2372.ssp_ct_form_programe { 
2373  padding:0px; 
2374  max-width:100%; 
2375  padding:40px 20px; 
2376
2377 
2378[data-modal="close-form-modal"]{ 
2379   
2380  right: 20px; 
2381  top: 0; 
2382   
2383
2384 
2385
2386 
2387.ssp:not(.liferay-instance) a.btn.btn-success.disabled{ 
2388	pointer-events: none; 
2389	opacity: 0.5 !important; 
2390	color: #FFF !important; 
2391	background-color: #4CBF69 !important; 
2392	cursor: not-allowed; 
2393	border: none !important; 
2394	font-size: 0.9rem !important; 
2395
2396 
2397.slick-list.draggable { 
2398  height: auto !important; 
2399
2400 
2401.ssp:not(.liferay-instance) .ssp-image-opacity { 
2402 
2403  opacity: 1; 
2404  object-fit: cover; 
2405  object-position: center; 
2406 
2407
2408 
2409.ssp-option-group { 
2410  text-align: left; 
2411  font: normal normal 600 15px/19px Montserrat; 
2412  letter-spacing: 0px; 
2413  color: #004A8C; 
2414
2415.ssp-option { 
2416  text-align: left; 
2417  font: normal normal normal 15px/19px Montserrat; 
2418  letter-spacing: 0px; 
2419  color: #656565; 
2420
2421@media only screen and (max-width: 768px){ 
2422  .ssp-option-group { 
2423    font: normal normal 600 15px/19px Montserrat; 
2424
2425  .ssp-option { 
2426    font: normal normal normal 15px/19px Montserrat; 
2427
2428
2429 
2430.open-modal-form.lfr-ddm__default-page-header{ 
2431    display:none; 
2432
2433 
2434/* css para funcionalidade de híbrido */ 
2435 
2436.ssp-emed__vantagens-content.livre span{ 
2437  color: #FF9057!important; 
2438
2439.ssp-emed__vantagens-content.livre a:hover { 
2440    color: white; 
2441    background-color: #FF9057!important;; 
2442    border: 1px solid #FF9057!important;; 
2443
2444.ssp-emed__vantagens-content.tecnico span{ 
2445  color: #F7BD23!important; 
2446
2447.ssp-emed__vantagens-content.tecnico a:hover { 
2448    color: white; 
2449    background-color: #F7BD23!important;; 
2450    border: 1px solid #F7BD23!important;; 
2451
2452.ssp-emed__vantagens-content.ensino-medio-tecnico span{ 
2453  color: #C761CB!important; 
2454
2455.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{ 
2456    color: white; 
2457    background-color: #C761CB!important;; 
2458    border: 1px solid #C761CB!important;; 
2459
2460.ssp-emed__vantagens-content.extensao span{ 
2461  color: #3ECCA6!important; 
2462
2463.ssp-emed__vantagens-content.extensao a:hover{ 
2464    color: white; 
2465    background-color: #3ECCA6!important; 
2466    border: 1px solid #3ECCA6!important; 
2467
2468 
2469/* Transferencias EMED */ 
2470 
2471.emed-transferencias-space{ 
2472  max-width: 772px; 
2473
2474 
2475.card-transferencias-emed { 
2476  text-align: left; 
2477
2478 
2479.card-transferencias-emed .ssp-emed__card-slider-body{ 
2480  padding: 30px; 
2481
2482 
2483.card-pre-inscricao { 
2484  text-align: center; 
2485
2486 
2487.card-pre-inscricao .ssp-emed__card-slider-body{ 
2488  justify-content: space-evenly; 
2489
2490 
2491.footer-card-card-pre-inscricao{ 
2492      margin-top: 48px; 
2493
2494 
2495.card-transferencias-emed, .card-pre-inscricao{ 
2496  span, strong{ 
2497    font-size: 24px; 
2498
2499  span{ 
2500    font-weight: 500; 
2501
2502  strong{ 
2503    font-weight: 700; 
2504
2505  .transferencias-emed-rodape{ 
2506    margin-top:25px; 
2507    span{ 
2508      font-size:0.9rem; 
2509      font-weight: 400; 
2510
2511
2512
2513 
2514@media only screen and (max-width: 768px){ 
2515  .card-pre-inscricao { 
2516    text-align: left; 
2517
2518 
2519  .footer-card-card-pre-inscricao{ 
2520      margin-top: 24px; 
2521
2522 
2523  .footer-card-card-pre-inscricao strong{ 
2524      margin-top: 24px; 
2525      font-size: 24px!important; 
2526
2527 
2528  .card-pre-inscricao .ssp-emed__card-slider { 
2529        width: 100%; 
2530        max-width: 329px; 
2531        min-height: 390px; 
2532        margin: 0; 
2533
2534 
2535  .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){ 
2536        margin: 12px; 
2537
2538 
2539  .card-transferencias-emed, .card-pre-inscricao{ 
2540    span, strong{ 
2541      font-size: 16px; 
2542
2543    .ssp-emed__section__titleCard{ 
2544      flex-basis: 0; 
2545      margin-bottom: 24px!important; 
2546      align-items: center!important; 
2547    }  
2548 
2549    .ssp-emed__section__titleCard i{ 
2550      font-size: 24px!important; 
2551
2552 
2553    .ssp-emed__section__titleCard div{ 
2554      font-size: 20px !important; 
2555
2556
2557 
2558  .slick-area__item.card-pre-inscricao{ 
2559    min-height: 390px!important; 
2560
2561 
2562  .card-transferencias-emed .ssp-emed__card-slider{ 
2563    margin: 0; 
2564
2565 
2566  .card-transferencias-emed .ssp-emed__card-slider{ 
2567    margin: 0; 
2568    min-height: 300px; 
2569
2570 
2571  .card-transferencias-emed .col-md-12{ 
2572    padding: 0; 
2573
2574 
2575  .card-transferencias-emed .transferencias-emed-rodape span{ 
2576    font-size: 12px; 
2577
2578 
2579  .ssp-ofertas-emed__filtro-content .btn-filtro{ 
2580    width:156px !important; 
2581    font-size:14px !important; 
2582
2583 
2584  #titulo-emed{ 
2585    text-transform: uppercase; 
2586
2587 
2588  .emed-transferencias-space div:nth-child(n+2){ 
2589    padding-left:0; 
2590
2591 
2592  .emed-transferencias-space .slick-area-emed--md-bleed{ 
2593    position: inherit; 
2594
2595 
2596
2597 
2598</style> 
2599                
2600	 
2601  <#assign 
2602     
2603    prefix = "ssp" 
2604    nomeVocabularioTipoCurso = 'tipo-de-curso' 
2605     
2606   
2607    nomeVocabularioUnidades = 'unidades' 
2608     
2609    nomeVocabularioFormato = 'formato' 
2610     
2611    nomeFormato = ""   
2612    nomeVocabularioModalidade = 'modalidade' 
2613     
2614    nomeModalidade = ""   
2615     
2616    normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer") 
2617   
2618    journalArticle = getJournalArticle() 
2619  /> 
2620   
2621  <#if journalArticle?contains("#erro#")> 
2622    erro 
2623  <#else> 
2624   
2625    <#assign 
2626   
2627      categories = getCategorias(journalArticle.getResourcePrimKey()) 
2628  
2629      document = saxReaderUtil.read(journalArticle.getContent()).getRootElement() 
2630   
2631      xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']") 
2632			dataEfetivaFTFieldSet	= xPathSelector.selectSingleNode(document) 
2633        
2634		  xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']") 
2635			dataEfetiva = xPathSelector.selectSingleNode(document) 
2636						  
2637			dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string 
2638   
2639      articleId = journalArticle.getArticleId() 
2640   
2641      codigoFT = getStringValue(document,'codigoFT') 
2642   
2643      tituloComercial = journalArticle.getTitle() 
2644   
2645      objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial') 
2646       
2647      cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT') 
2648   
2649      oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial') 
2650   
2651      comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial') 
2652			 
2653			possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial') 
2654						  
2655      tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial') 
2656   
2657      tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial') 
2658   
2659      precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial') 
2660   
2661      comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial') 
2662   
2663      oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial') 
2664       
2665      normalizedModalidadeName  = "" 
2666   
2667    /> 
2668	 
2669    <div style="display: none;">ElasticSearchNaoRetornarFiltro </div> 
2670    <input type="hidden" name="codigoFT" value="${codigoFT}" /> 
2671    <input type="hidden" name="articleId" value="${articleId}" /> 
2672   
2673    <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" /> 
2674     
2675    <input type="hidden" name="codUnidadeSelecionada" value="" /> 
2676   
2677    <#list categories as category> 
2678       
2679      <#assign 
2680        vocabulary = getVocabulary(category.getVocabularyId()) 
2681      /> 
2682   
2683      <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso> 
2684   
2685        <#assign 
2686          categoriaTipoCurso = category 
2687          normalizedCategoryName = normalizer.normalize(category.getName()) 
2688        /> 
2689         
2690        <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" /> 
2691         
2692      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades> 
2693   
2694        <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" /> 
2695       
2696      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade> 
2697     
2698      <#assign 
2699          categoriaModalidade = category 
2700          normalizedModalidadeName = normalizer.normalize(category.getName()) 
2701           
2702        /> 
2703        <input type="hidden" name="modalidadeName" value="${normalizedModalidadeName}" /> 
2704        <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" /> 
2705         
2706      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato> 
2707      <#assign 
2708        nomeFormato = category.getName() 
2709      /> 
2710        
2711        
2712       <#assign idFormato = category.getCategoryId() /> 
2713        <#if nomeFormato == "Presencial + EAD" > 
2714            <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" /> 
2715        <#else> 
2716        	<input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" /> 
2717        </#if> 
2718      </#if> 
2719    </#list> 
2720   
2721    <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")> 
2722   
2723    <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? > 
2724   
2725      <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()> 
2726      <#if imagemStr?contains("{") > 
2727      <#attempt>   
2728        <#assign 
2729            imagemJson = jsonFactoryUtil.createJSONObject(imagemStr) 
2730            imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId')) 
2731            dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") 
2732            dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper") 
2733            fileEntry = dl.getFileEntry(imagemId) 
2734            imagemAlt = imagemJson.get('alt') 
2735            imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null) 
2736          /> 
2737      <#recover> 
2738        <#assign 
2739          imagemAlt = "" 
2740          imagemUrl = ""  
2741        /> 
2742      </#attempt> 
2743      <#else> 
2744        <#assign imagemUrl = ""> 
2745      </#if>   
2746   
2747    <#else> 
2748      <#assign imagemUrl = ""> 
2749    </#if> 
2750    
2751    
2752    <#assign  
2753          
2754        URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]  
2755        HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]  
2756       StringPool = staticUtil["com.liferay.petra.string.StringPool"]  
2757       dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")  
2758        
2759         xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']") 
2760         quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue() 
2761     /> 
2762	 
2763    <#if quaisMateriaisComercialPDFStr?contains('classPK') > 
2764     
2765      <#assign  
2766         
2767       PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr) 
2768       classPKNumber = PDFJson.classPK?number 
2769       fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber) 
2770       folderId = fileEntry.getFolderId() 
2771       title = fileEntry.getTitle() 
2772        
2773       quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId +  StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title)) 
2774       /> 
2775     
2776    <#else> 
2777      <#assign quaisMateriaisComercialPDFUrl = ""> 
2778    </#if> 
2779     
2780    <#function getFirstArticleStructure categoryId structureName> 
2781                <#attempt> 
2782                        <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")> 
2783                        <#assign companyId = themeDisplay.getCompanyId()> 
2784                        <#assign groupId = themeDisplay.getScopeGroupId()> 
2785                        <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)> 
2786                        <#if articles?size gt 0> 
2787                                <#return articles?first> 
2788                        </#if> 
2789                        <#return ''> 
2790                <#recover> 
2791                                <#return ''> 
2792                </#attempt> 
2793        </#function> 
2794 
2795  
2796  <#assign  
2797    nomeTipoCurso = categoriaTipoCurso.getName() 
2798    nomeCategoriaTipoCurso = categoriaTipoCurso.getName() 
2799    idTipoCurso = categoriaTipoCurso.getCategoryId() 
2800         /> 
2801         <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" /> 
2802 
2803      <#if nomeTipoCurso?contains("Ensino Médio Técnico")> 
2804 
2805        <#assign  
2806        nomeTipoCurso = categoriaTipoCurso.getName() 
2807        />  
2808         
2809        <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" /> 
2810 
2811        <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") > 
2812 
2813        <#assign  
2814         nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s" 
2815        /> 
2816 
2817      <#else> 
2818          <#assign  
2819              nomeTipoCurso = categoriaTipoCurso.getName() 
2820          />  
2821        <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>  
2822    
2823    </#if> 
2824     
2825    <#--  Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido  --> 
2826    <#if nomeFormato == "Presencial + EAD"> 
2827        <#assign 
2828                hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido") 
2829                documentHibrido = saxReaderUtil.read(hibridoStructure.getContent()) 
2830                rootElement = documentHibrido.getRootElement() 
2831                xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']") 
2832        /> 
2833        <#if xPathSelector.selectSingleNode(rootElement)?? > 
2834              <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2835              <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/> 
2836        </#if>               
2837  	</#if>               
2838     
2839     
2840    <#--  dados de compartilhamento  --> 
2841    <@liferay_util["html-top"]> 
2842        <meta name="image" property="og:image" content="${imagemUrl}"> 
2843        <meta property="og:image:width" content="1024"> 
2844    </@> 
2845    <#--  dados de compartilhamento  --> 
2846       
2847     
2848    <#assign  
2849      webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil") 
2850 
2851      temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle) 
2852      categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma")) 
2853      hasIdiomas = categoriesIdiomas?has_content 
2854      hasEMED = normalizedModalidadeName?contains("ensino-medio") 
2855    /> 
2856 
2857    <#function getManutencao> 
2858 
2859      <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") /> 
2860      <#if manutencaoStructure == ""> 
2861        <#return {"bolsa":"", "compra":"", "rodape":""} /> 
2862      </#if> 
2863      <#assign  
2864        txtBolsa = "" 
2865        txtCompra = "" 
2866        txtRodape = "" 
2867        content = saxReaderUtil.read(manutencaoStructure.getContent()) 
2868        rootElement = content.getRootElement() 
2869      /> 
2870      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") /> 
2871      <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" > 
2872        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") /> 
2873        <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2874      </#if> 
2875      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") /> 
2876      <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" > 
2877        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") /> 
2878        <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2879      </#if> 
2880      <#if txtCompra != "" || txtBolsa != ""> 
2881        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />   
2882        <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2883      </#if> 
2884 
2885      <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} /> 
2886 
2887    </#function> 
2888 
2889    <#assign manutencao = getManutencao() /> 
2890    <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" /> 
2891    <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" /> 
2892     
2893    <div class="${prefix}-header-curso__image"> 
2894      <#if imagemUrl?contains(".webp")> 
2895        <#-- Remove midias adaptaveis --> 
2896        <picture> 
2897          <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy"> 
2898        </picture> 
2899      <#else> 
2900        <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy"> 
2901      </#if> 
2902      <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}"> 
2903        <#if hasIdiomas> 
2904          <span>${nomeTipoCurso}</span> 
2905        <#else> 
2906          <span>${nomeTipoCurso} | ${nomeFormato}</span> 
2907        </#if> 
2908      </div> 
2909    </div> 
2910   
2911    <section id="curso-info"> 
2912      <div class="ssp-card-detalhe-curso__container"> 
2913   
2914          <div class="ssp-card-detalhe-curso"> 
2915   
2916          <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div> 
2917   
2918            <div class="container"> 
2919            
2920              <#if nomeFormato?contains("ao-vivo") > 
2921                  <span class="ssp-card-detalhe-curso__tag-ao-vivo">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</span> 
2922                   
2923              </#if> 
2924 
2925              <div class="ssp-card-detalhe-curso__content"> 
2926                <div> 
2927 
2928                    <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")> 
2929 
2930                     <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p> 
2931 
2932                    </#if> --> 
2933 
2934                    <!-- rever a lógica da chama de inscricoes abertas --> 
2935 
2936                    <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1> 
2937                    <input type="hidden" name="tituloComercial" value="${tituloComercial}" /> 
2938 
2939                    <div class="ssp-card-detalhe-curso__description">${objetivo}</div> 
2940                </div> 
2941                <div class="ssp-card-detalhe-curso__secunday-info-content"> 
2942 
2943                  <#if nomeFormato?contains("ao-vivo") > 
2944                    <span class="d-md-none"> 
2945                      <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a> 
2946                      <#if !hasIdiomas> 
2947                        <span> | ${nomeFormato}</span> 
2948                      </#if> 
2949                    </span> 
2950 
2951                  <#else> 
2952                    <span class="d-md-none"> 
2953                      <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>  
2954                      <#if !hasIdiomas> 
2955                        <span> | ${nomeFormato}</span> 
2956                      </#if> 
2957                    </span> 
2958 
2959                  </#if> 
2960 
2961                  <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p> 
2962                </div> 
2963              </div> 
2964              <div class="ssp-saiba-mais-curso-accordion"> 
2965   
2966                  <#if (possoFazerEsteCursoComercial?length > 0)> 
2967                    <div class="ssp-saiba-mais-curso-accordion__body"> 
2968                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div> 
2969                        <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div> 
2970                    </div> 
2971									 
2972                  </#if> 
2973   
2974                   <#if (oQueVouAprenderComercial?length > 0) > 
2975                    <div class="ssp-saiba-mais-curso-accordion__body"> 
2976                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div> 
2977                        <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div> 
2978                    </div> 
2979                  </#if> 
2980   
2981                  <#if (comoVouAprenderComercial?length > 0)> 
2982                    <div class="ssp-saiba-mais-curso-accordion__body"> 
2983                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div> 
2984                        <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div> 
2985                    </div> 
2986                  </#if> 
2987                   
2988                                  
2989                  <div class="ssp-saiba-mais-curso-accordion__body"> 
2990                      <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div> 
2991                      <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
2992                        <div class="ssp-saiba-mais-curso-accordion__contents"> 
2993                          Desenvolvemos os materiais e disponibilizamos tudo para você!<br/><br/>Também temos bibliotecas físicas e virtuais, além de parceria com a Microsoft, que garante acesso à plataforma Teams para conferir aulas, avisos e materiais da sua turma. 
2994                        </div> 
2995                      <#else> 
2996                        <#if (quaisMateriaisComercialPDFUrl?length > 0)> 
2997                          <div class="ssp-saiba-mais-curso-accordion__contents"> 
2998                            <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a> 
2999                          </div> 
3000                        <#else> 
3001                          <div class="ssp-saiba-mais-curso-accordion__contents">Inicialmente, não há lista de materiais para este curso. Mas confirme em aula se será necessário comprar algum item.</div> 
3002                        </#if> 
3003                    </#if> 
3004                  </div> 
3005   
3006                  <#if (tereiDiplomaComercial?length > 0)> 
3007                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3008                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div> 
3009                        <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div> 
3010                    </div> 
3011                  </#if> 
3012                   
3013                  <#if (tereiCertificadoComercial?length > 0)> 
3014                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3015                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div> 
3016                        <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div> 
3017                    </div> 
3018                  </#if> 
3019   
3020                  <#if (comoMeMatricularComercial?length > 0)> 
3021                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3022                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div> 
3023                        <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div> 
3024                    </div> 
3025                  </#if> 
3026   
3027                  <#if (precisoEstagiarComercial?length > 0)> 
3028                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3029                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div> 
3030                        <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div> 
3031                    </div> 
3032                  </#if> 
3033   
3034   
3035                  <#if (oQueMaisPrecisoSaberComercial?length > 0)> 
3036                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3037                    <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
3038                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div> 
3039                    <#else> 
3040                      <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div> 
3041                    </#if> 
3042                        <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div> 
3043                    </div> 
3044                  </#if> 
3045 
3046                  <!-- Info para EMED --> 
3047 
3048                  <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
3049 
3050                    <div class="ssp-emed__vantagens-content"> 
3051                                                                                                         
3052                      <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p> 
3053                      <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a> 
3054                   
3055                    </div> 
3056   
3057                  <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")> 
3058   
3059                    <!-- Info para híbrido --> 
3060   
3061                    <div class="ssp-emed__vantagens-content ${normalizedCategoryName}"> 
3062                                                                                                         
3063                      <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p> 
3064                      <a href="/presencial-ead" class="btn">Saiba mais</a> 
3065                   
3066                    </div> 
3067                     
3068                  <#else> 
3069                     
3070                    <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}"> 
3071                                                                                                         
3072                      <p>Conheça <span>mais vantagens</span>?</p> 
3073                      <a href="#" class="btn">Saiba mais</a> 
3074                   
3075                    </div> --> 
3076                     
3077                  </#if> 
3078                                    
3079   
3080                  <!-- Slider para cursos de Cozinheiro e Garçom --> 
3081       
3082                  <#if codigoFT=="14125"> 
3083       
3084                    <div> 
3085   
3086                      <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6> 
3087   
3088           
3089                      <div class="slider-passo-passo__cursos-cozinha"> 
3090           
3091                          <div class="ssp-passo-passo-cozinheiro_card"> 
3092                           
3093                              <div> 
3094   
3095                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6> 
3096   
3097                                  <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p> 
3098               
3099                              </div> 
3100                             
3101               
3102                          </div> 
3103               
3104                          <div class="ssp-passo-passo-cozinheiro_card"> 
3105               
3106                              <div> 
3107               
3108                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6> 
3109               
3110                                  <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p> 
3111               
3112                              </div> 
3113                                   
3114                          </div> 
3115           
3116                          <div class="ssp-passo-passo-cozinheiro_card"> 
3117               
3118                              <div> 
3119               
3120                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6> 
3121               
3122                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3123                                    Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários. 
3124                                  </p> 
3125                                 
3126               
3127                              </div> 
3128                                   
3129                          </div> 
3130   
3131                          <div class="ssp-passo-passo-cozinheiro_card"> 
3132               
3133                            <div> 
3134             
3135                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6> 
3136             
3137                                <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários. 
3138                                    </p> 
3139                               
3140             
3141                            </div> 
3142                                 
3143                        </div> 
3144           
3145                          <div class="ssp-passo-passo-cozinheiro_card"> 
3146               
3147                              <div> 
3148               
3149                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6> 
3150               
3151                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3152                                    Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.  
3153                                  </p> 
3154               
3155                              </div> 
3156                                   
3157                          </div> 
3158               
3159                          <div class="ssp-passo-passo-cozinheiro_card"> 
3160               
3161                              <div> 
3162               
3163                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6> 
3164               
3165                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3166                                    Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.                            
3167                                  </p> 
3168               
3169                              </div> 
3170                                   
3171                          </div> 
3172           
3173                          <div class="ssp-passo-passo-cozinheiro_card"> 
3174               
3175                              <div> 
3176               
3177                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6> 
3178               
3179                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3180                                    Teve aprovação em todas as etapas? Parabéns! 
3181   
3182                                    Sua jornada de transformação profissional 
3183                                     
3184                                    começará com o início das aulas. Mas se não 
3185                                     
3186                                    conseguiu dessa vez, não desanime. Sempre estamos com 
3187                                     
3188                                    vagas abertas para diversos cursos.                                                           
3189                                  </p> 
3190               
3191                              </div> 
3192                                   
3193                          </div> 
3194               
3195                           
3196                      </div> 
3197           
3198                    </div> 
3199   
3200                    <#elseif codigoFT=="15390" > 
3201   
3202                    <div> 
3203   
3204                      <h6 style="font-family: Montserrat;font-size: 20px;font-weight: 600;color: #2a2e43;padding: 15px;border-top: 1px solid #e7e7e7;">Quer participar do processo seletivo? Confira todas as etapas:</h6> 
3205           
3206                      <div class="slider-passo-passo__cursos-cozinha"> 
3207           
3208                        <div class="ssp-passo-passo-cozinheiro_card"> 
3209                         
3210                          <div> 
3211   
3212                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6> 
3213   
3214                                  <p class="ssp-passo-passo-cozinheiro_card-txt">Primeiro, confirme se você atende aos pré-requisitos para se inscrever em <a class="ssp-passo-passo-cozinheiro_card-link" href="/bolsas-de-estudo">bolsas de estudo</a>. Depois, confira no campo "Como me matricular?" o cronograma de abertura das inscrições do processo seletivo. </p> 
3215               
3216                              </div> 
3217                           
3218             
3219                        </div> 
3220             
3221                        <div class="ssp-passo-passo-cozinheiro_card"> 
3222             
3223                              <div> 
3224               
3225                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6> 
3226               
3227                                  <p class="ssp-passo-passo-cozinheiro_card-txt">Quando o processo seletivo abrir, faça login no site, acesse a página do curso, selecione a unidade e realize a inscrição, que é gratuita. As inscrições podem ser encerradas antes da data divulgada, quando alcançarmos 10 inscrições por vaga.</p> 
3228               
3229                              </div> 
3230                                 
3231                        </div> 
3232         
3233                        <div class="ssp-passo-passo-cozinheiro_card"> 
3234             
3235                              <div> 
3236               
3237                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6> 
3238               
3239                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3240                                    Ao finalizar sua inscrição no processo seletivo, você receberá uma confirmação no e-mail que cadastrou no nosso site. Também vamos enviar para o seu e-mail o convite para a entrevista e as orientações sobre envio dos documentos necessários. 
3241                                  </p> 
3242                                 
3243               
3244                              </div> 
3245                                 
3246                        </div> 
3247   
3248                        <div class="ssp-passo-passo-cozinheiro_card"> 
3249             
3250                            <div> 
3251             
3252                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6> 
3253             
3254                                <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista será realizada presencialmente nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Lembre-se: antes da entrevista, envie por e-mail os documentos necessários. 
3255                                    </p> 
3256                               
3257             
3258                            </div> 
3259                               
3260                      </div> 
3261         
3262                        <div class="ssp-passo-passo-cozinheiro_card"> 
3263             
3264                            <div> 
3265             
3266                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6> 
3267             
3268                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3269                                  Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.  
3270                                </p> 
3271             
3272                            </div> 
3273                                 
3274                        </div> 
3275             
3276                        <div class="ssp-passo-passo-cozinheiro_card"> 
3277             
3278                            <div> 
3279             
3280                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6> 
3281             
3282                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3283                                  Se receber a aprovação, a próxima etapa é fazer a matrícula. Lembre-se de enviar os documentos, inclusive os exames solicitados no e-mail.                            
3284                                </p> 
3285             
3286                            </div> 
3287                                 
3288                        </div> 
3289         
3290                        <div class="ssp-passo-passo-cozinheiro_card"> 
3291             
3292                            <div> 
3293             
3294                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6> 
3295             
3296                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3297                                  Teve aprovação em todas as etapas? Parabéns! 
3298   
3299                                  Sua jornada de transformação profissional 
3300                                   
3301                                  começará com o início das aulas. Mas se não 
3302                                   
3303                                  conseguiu dessa vez, não desanime. Sempre estamos com 
3304                                   
3305                                  vagas abertas para diversos cursos.                                                           
3306                                </p> 
3307             
3308                            </div> 
3309                                 
3310                        </div> 
3311             
3312                         
3313                    </div> 
3314   
3315                  </div> 
3316   
3317                  </#if> 
3318                   
3319                  <!-- Final Slider para cursos de Cozinheiro e Garçom --> 
3320   
3321              </div> 
3322            </div> 
3323          </div> 
3324      </div> 
3325    </section> 
3326  <#assign  
3327    dNoneSelectUnidade = ''  
3328    mostrarUnidades = !nomeFormato?contains("ao-vivo") 
3329    isEMED = normalizedCategoryName?contains("ensino-medio-tecnico") 
3330    isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz") 
3331  /> 
3332 
3333  <#if nomeFormato?contains("ao-vivo") > 
3334     <#assign dNoneSelectUnidade = 'd-none' /> 
3335  </#if> 
3336 
3337  <#-- Obter data matricula emed --> 
3338  <#if isEMED> 
3339    <#function getMatriculaEMED > 
3340      <#assign emedTags = getFirstArticleStructure(0,"emed-tags") 
3341        document = saxReaderUtil.read(emedTags.getContent()) 
3342        rootElement = document.getRootElement() 
3343        xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") /> 
3344      <#if xPathSelector.selectSingleNode(rootElement)?? > 
3345        <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
3346      </#if> 
3347      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") /> 
3348      <#if xPathSelector.selectSingleNode(rootElement)?? > 
3349        <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
3350      </#if> 
3351 
3352      <#setting time_zone="America/Sao_Paulo"> 
3353      <#assign today = .now?datetime /> 
3354      <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] /> 
3355      <#assign matriculaAberta = today gt emeddatetime />     
3356 
3357      <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}> 
3358    </#function> 
3359 
3360    <#assign matriculaEMED = getMatriculaEMED() /> 
3361 
3362  </#if> 
3363 
3364  <#if isEMED || isAprendizagem> 
3365    <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41"> 
3366      <div class="container"> 
3367 
3368        <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;"> 
3369          <div class="ssp-container_ofertas__title"> 
3370            <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom"> 
3371               
3372              Selecione uma unidade para conhecer as próximas turmas: 
3373 
3374            </h3> 
3375          </div> 
3376 
3377          <div class="ssp-container__form-select"> 
3378            <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"> 
3379              <option value="">Selecione uma unidade</option> 
3380            </select> 
3381          </div> 
3382 
3383        </div> 
3384 
3385        <div class="ssp-ofertas__box-endereco-unidade"> 
3386          <i class="icon-map-adress"></i> 
3387          <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a> 
3388        </div> 
3389 
3390      </div> 
3391 
3392    </section> 
3393  <#else> 
3394    <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41"> 
3395        <div class="container"> 
3396          <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8"> 
3397            <div class="ssp-container_ofertas__title"> 
3398              <h2 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom ssp-detalhe-curso-titulo-filter">Escolha a unidade e conheça as turmas disponíveis:</h2> 
3399            </div> 
3400          </div> 
3401          <div class="row ssp-filters-px justify-content-center"> 
3402            <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1"> 
3403              <div class="ssp-container-selecione-unidade row no-gutters"> 
3404                <div class="col-12"> 
3405                  <div class="ssp-container__form-select mx-auto"> 
3406                    <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>   
3407                    <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select> 
3408                  </div> 
3409                </div> 
3410              </div> 
3411            </div> 
3412             
3413            <div id="ssp-alternadores" class="col mt-5 mt-lg-0 ${(isEMED || isAprendizagem)?then('d-none', '')} px-md-0 order-3 order-lg-2" style="max-width: 480px; display: none;"> 
3414              <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div> 
3415              <div class="row no-gutters mt-4"> 
3416                <#assign 
3417                  mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão") 
3418                  mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || (nomeTipoCurso?contains("Livre") && !normalizedModalidadeName?contains("acoes-educ.-curta-duracao")) 
3419                  textoFiltroCompra = (nomeTipoCurso?contains("Livre") && normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))?then("Matrículas abertas", "Comprar agora")  
3420               />                  
3421                 
3422                 
3423                <#if mostrarFiltroInscricao && mostrarFiltroBolsa> 
3424                  <div class="ssp-switch-divider d-md-none my-4"></div> 
3425                </#if> 
3426                 
3427                <#if mostrarFiltroInscricao> 
3428                  <div class="col-12 col-lg"> 
3429                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3430                      <label class="ssp-switch order-2 order-lg-1"> 
3431                        <input type="checkbox" id="chkInscricao"> 
3432                        <span class="ssp-switch-slider round"></span> 
3433                      </label> 
3434                      <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">${textoFiltroCompra}</label>   
3435                    </div> 
3436                  </div> 
3437                </#if> 
3438                 
3439 
3440                <#if mostrarFiltroBolsa> 
3441                  <div class="col-12 col-lg"> 
3442                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3443                      <label class="ssp-switch order-2 order-lg-1">             
3444                        <input type="checkbox" id="chkBolsa"> 
3445                        <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span> 
3446                      </label> 
3447                      <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label> 
3448                    </div> 
3449                  </div> 
3450                </#if> 
3451              </div> 
3452            </div> 
3453 
3454            <div class="col-12 order-2 order-lg-3"> 
3455              <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}"> 
3456                <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;"> 
3457                  <div class="row no-gutters"> 
3458                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso.&nbsp;</span> 
3459                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span> 
3460                  </div> 
3461                </div> 
3462              </div> 
3463            </div> 
3464          </div>      
3465             
3466          <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}"> 
3467            <i class="icon-map-adress"></i> 
3468            <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a> 
3469          </div> 
3470     
3471        </div> 
3472     
3473      </section> 
3474    </#if> 
3475   
3476     
3477      <!--  EMED	 --> 
3478      <section class="ssp-ofertas-emed__section d-none"> 
3479 
3480        <h2 class="title-section-white" id="titulo-emed"></h2> 
3481 
3482        <div class="ssp-ofertas-emed__filtro-content container"> 
3483 
3484            <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button> 
3485 
3486            <button type="button" value="0" class="btn btn-filtro">Transferências</button> 
3487 
3488        </div> 
3489         
3490        <div class="ssp-ofertas-emed__card-container"> 
3491 
3492          <div class="ssp-slick-ofertas-emed"> 
3493           
3494          </div> 
3495         
3496        </div> 
3497       
3498      </section> 
3499       
3500      <!-- FIM EMED -->	 
3501   
3502    <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;"> 
3503   
3504      <div id="turmas-container" class="container"> 
3505   
3506        <div id="informe-novas-turmas"> 
3507          <div style="display: flex; flex-wrap: nowrap;"> 
3508   
3509            <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" > 
3510              <i class="fas fa-chevron-left"></i> 
3511            </a> 
3512   
3513            <h2 id="ssp-h3-turmas" class="ssp-section-title ssp-card-oferta-curso__section-title text-capitalize" style="font-weight: bold;text-transform: uppercase; display: none;">Turmas</h2> 
3514   
3515            <a href="#" class="next-mobile d-lg-none d-xl-none" > 
3516              <i class="fas fa-chevron-right"></i> 
3517            </a> 
3518   
3519          </div> 
3520           
3521       
3522          <div  class="oferta-slick-area oferta-slick-area--md-bleed slider-container"> 
3523     
3524          </div> 
3525        </div> 
3526          
3527        <#if !isEMED> 
3528            <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;"> 
3529       
3530              <h2 class="ssp-card-oferta-curso__sem-vaga-title"> 
3531                Estude com a gente na próxima turma! 
3532              </h2> 
3533           
3534              <p class="ssp-card-oferta-curso__sem-vaga-description"> 
3535                Registre seu interesse e avisaremos você quando surgirem novas vagas. 
3536              </p> 
3537            </div> 
3538        <#else> 
3539 
3540          <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space"> 
3541            <div> 
3542              <div class="col-md-12 col-xs-12 pb-10"> 
3543                <div> 
3544                  <div class="slick-area__item"> 
3545           
3546                    <div class="ssp-emed__card-slider"> 
3547       
3548                      <div class="ssp-emed__card-slider-body"> 
3549                        <h2 class="ssp-emed__section__titleCard"> 
3550                          <i class="fal fa-users-class"></i> 
3551                          <div>Turmas</div> 
3552                        </h2> 
3553                        <div style="display:grid;gap:20px;"> 
3554                              <span class="emed_transferencia_texto">Para saber mais sobre vagas de transferências para 1º e 2º ano para estudantes do Senac e de outras escolas, entre em contato com a unidade de interesse para checar a disponibilidade.</span> 
3555                              <span></span> 
3556                            </div> 
3557                      </div> 
3558       
3559                    </div> 
3560       
3561                  </div> 
3562                </div> 
3563              </div> 
3564            </div> 
3565          </div> 
3566 
3567          <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none"> 
3568          <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space"> 
3569          </#if> 
3570              <div> 
3571                <div class="col-md-12 col-xs-12 pb-10"> 
3572         
3573                  <!--slick slider--> 
3574                  <div class="slick-area-emed slick-area-emed--md-bleed"> 
3575                     
3576                    <#if matriculaEMED.aberta> 
3577                      <div class="slick-area__item"> 
3578           
3579                        <div class="ssp-emed__card-slider"> 
3580           
3581                          <div class="ssp-emed__card-slider-body"> 
3582                            <h2 class="ssp-emed__section__titleCard"> 
3583                              <i class="fal fa-users-class"></i> 
3584                              <div><lfr-editable type="rich-text">Turmas</lfr-editable></div> 
3585                            </h2> 
3586                            <lfr-editable type="rich-text"> 
3587                              <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div> 
3588                              <div class="ssp-emed__section__textCard"> 
3589                                <span class="texto"> 
3590                                  Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano. 
3591                                </span> 
3592                                <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i 
3593                                    class="fas fa-chevron-right"></i></span> 
3594                              </div> 
3595                            </lfr-editable> 
3596                            </a> 
3597                          </div> 
3598           
3599                        </div> 
3600           
3601                      </div> 
3602         
3603                      <div class="slick-area__item"> 
3604           
3605                        <div class="ssp-emed__card-slider"> 
3606                          <div class="ssp-emed__card-slider-body"> 
3607           
3608                            <h2 class="ssp-emed__section__titleCard"> 
3609                              <i class="far fa-envelope"></i> 
3610                              <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div> 
3611                            </h2> 
3612                            <lfr-editable id="txt_emed_boleto" type="rich-text"> 
3613                              <div class="ssp-emed__section__introCardCTA"> 
3614                                Quer receber um aviso sobre as turmas do próximo ano? 
3615                              </div> 
3616                            </lfr-editable> 
3617                            </a> 
3618                            <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10" 
3619                              id="btnOptin" href="javascript:;">Sim, me avise.</a> 
3620                          </div> 
3621                        </div> 
3622                      </div> 
3623                    <#else> 
3624                      <#-- pre inscricao emed --> 
3625                      <div class="slick-area__item card-pre-inscricao"> 
3626           
3627                        <div class="ssp-emed__card-slider"> 
3628           
3629                          <div class="ssp-emed__card-slider-body"> 
3630                            <h2 class="ssp-emed__section__titleCard"> 
3631                              <i class="fal fa-users-class"></i> 
3632                              <div><h4 class="ssp-h4" data-lfr-editable-id="ssp-transf-text" data-lfr-editable-type="rich-text">Confira as datas das próximas turmas</h4></div> 
3633                            </h2> 
3634                            <lfr-editable type="rich-text" style="text-align: left;"> 
3635                              <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Inscrições para bolsas</strong></div> 
3636                              <div class="ssp-emed__section__textCard" style="margin: 0!important;"> 
3637                                <span class="ssp-p-g texto"> 
3638                                  A partir de 4/8, às 12h 
3639                                </span> 
3640                            </lfr-editable> 
3641                            <hr style="margin: 24px 0; background: #FFF;"/> 
3642                            <lfr-editable type="rich-text" style="text-align: left;"> 
3643                              <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Matrículas</strong></div> 
3644                              <div class="ssp-emed__section__textCard" style="margin: 0!important;"> 
3645                                <span class="ssp-p-g texto"> 
3646                                  A partir de 18/8, às 12h 
3647                                </span> 
3648                              </div> 
3649                            </lfr-editable> 
3650                            </a> 
3651                          </div> 
3652           
3653                        </div> 
3654                        <!-- <div class="ssp-emed__card-slider"> 
3655           
3656                          <div class="ssp-emed__card-slider-body"> 
3657                            <h2 class="ssp-emed__section__titleCard"> 
3658                              <i class="fal fa-users-class"></i> 
3659                              <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div> 
3660                            </h2> 
3661                            <lfr-editable id="txt_emed_aulas" type="rich-text"> 
3662                              <div> 
3663                                <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/> 
3664                                <span style="font-weight: 400;"> 
3665                                  a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas 
3666                                  <#if matriculaEMED.horaInicio?split(":")?last != "00"> 
3667                                    e ${matriculaEMED.horaInicio?split(":")?last} minutos 
3668                                  </#if> 
3669                                </span> 
3670                              </div> 
3671 
3672                              <div class="footer-card-card-pre-inscricao"> 
3673                                <strong> 
3674                                  Estude com a gente na próxima turma!<br/> 
3675                                  Esperamos por você! 
3676                                </strong> 
3677                              </div> 
3678                            </lfr-editable> 
3679                            </a> 
3680                          </div> --> 
3681           
3682                        </div> 
3683           
3684                      </div> 
3685 
3686                    </#if> 
3687         
3688                  </div> 
3689                  <!--/slick slider--> 
3690         
3691                </div> 
3692              </div> 
3693            </div> 
3694 
3695        </#if> 
3696        <div class="oferta-slick-area_modal"> 
3697        </div> 
3698         
3699        <#if manutencao.rodape != ""> 
3700          <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p> 
3701        <#else> 
3702            <#if isEMED> 
3703              <p class="ssp-card-oferta-curso__mensagem-legal">O Senac reserva-se o direito de alterar o número de vagas, datas, horários ou cancelar o programa.</p> 
3704            <#else> 
3705              <p class="ssp-card-oferta-curso__mensagem-legal">A turma pode ser cancelada ou ter alterações do número de vagas, datas e horários.</p> 
3706            </#if> 
3707        </#if> 
3708   
3709      </div> 
3710   
3711      <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;"> 
3712 
3713        <p>Tem dúvidas sobre bolsas de estudo?</p> 
3714        <a href="/bolsas-de-estudo">Saiba como funciona</a> 
3715						 
3716    </div> 
3717                       
3718   
3719      </section> 
3720 
3721      <section id="section-registro-interesse" class="ssp-section-novas-turmas"> 
3722   
3723          <div class="container"> 
3724   
3725              <div class="ssp-aviso-novas-turmas__content"> 
3726   
3727                  <!-- <div class="pb-sm-5 pb-md-5" > --> 
3728                  <div> 
3729   
3730                      <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p> 
3731                      <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p --> 
3732   
3733                  </div> 
3734   
3735          <!--  
3736                  <div class="ssp-container__form-select"> 
3737   
3738                      <select class="form-control select-large select-registro-interesse" id="select-registro-interesse"> 
3739                          <option value="">Selecione uma unidade</option> 
3740                      </select> 
3741   
3742                  </div> 
3743          --> 
3744                  <div class="ssp-btn-group__content-teste"> 
3745   
3746                      <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button> 
3747   
3748                  </div> 
3749   
3750   
3751   
3752              </div> 
3753   
3754   
3755          </div> 
3756   
3757   
3758      </section> 
3759       
3760      <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none"> 
3761   
3762          <div class="ssp-card-msg-erro"> 
3763   
3764              <div class="ssp-card-msg-sucesso__content"> 
3765                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
3766                   <p>Houve um erro ao inserir curso na mochila!</p> 
3767                   <p>Por favor, tente novamente!</p> 
3768              </div> 
3769   
3770              <div> 
3771                  <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button> 
3772              </div> 
3773   
3774          </div> 
3775   
3776      </section> 
3777       
3778	<section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none"> 
3779	 
3780		<div class="ssp-modal-mochila-curso"> 
3781	 
3782			<div class="ssp-modal-mochila-curso__header"> 
3783	 
3784				<button class="modal-btn-close" type="button"> 
3785	 
3786					<i class="fal fa-times"></i> 
3787	 
3788				</button> 
3789	 
3790				<h2 class="modal-title">Curso adicionado à mochila!</h2> 
3791				<p class="modal-subtitle">Você incluiu na sua mochila de compras o curso 
3792					<span id="modal-backpack-success__nome-curso"></span> 
3793				</p> 
3794	 
3795			</div> 
3796	 
3797			<div class="ssp-modal-mochila-curso__body"> 
3798	 
3799				<p>A sua vaga só é garantida nesta turma quando você finaliza a 
3800					compra. Deseja concluir agora?</p> 
3801	 
3802			</div> 
3803	 
3804			<div class="ssp-modal-mochila-curso__block-btn-items block-btn-items"> 
3805 
3806				<a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#"> 
3807                    Finalizar compra 
3808                </a> 
3809	 
3810				<button class="btn-continuar-site btn-mochila-continuar-site-success"> 
3811					Continuar no site 
3812				</button>				 
3813	 
3814			</div> 
3815	 
3816	 
3817		</div> 
3818	 
3819	</section> 
3820      
3821</#if> 
3822 
3823<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") > 
3824  <!-- Agende a sua visita -->     
3825  <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") /> 
3826  <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) /> 
3827 
3828  <section id="ssp-emed-visita-sector"> 
3829    <div class="container py-5 pt-lg-0" style="display:none;"> 
3830      <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper"> 
3831        <#list articles![] as article> 
3832          <#assign document = saxReaderUtil.read(article.getContent()) /> 
3833          <#assign rootElement = document.getRootElement() /> 
3834 
3835          <#assign 
3836              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']") 
3837              textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3838                 
3839              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']") 
3840              linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3841 
3842              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']") 
3843              ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()                 
3844          /> 
3845 
3846          <#if ativarBotao?trim == "true"> 
3847            <script>$('#ssp-emed-visita-sector').children().show()</script> 
3848            <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text"> 
3849                 
3850                <a href="${linkBotao}">${textoDoBotao}</a> 
3851                 
3852            </div> 
3853            <div class="ssp-emed-visita-icon"> 
3854                <i class="fas fa-route"></i> 
3855            </div> 
3856          </#if> 
3857        </#list> 
3858      </div> 
3859    </div> 
3860  </section> 
3861 
3862 
3863    <!-- Como me matricular EMED --> 
3864 
3865    <section class="ssp-como-me-matricular__section"> 
3866 
3867      <h2 class="title-section-white">Como me matricular?</h2> 
3868 
3869      <div class="container"> 
3870 
3871          <div class="ssp-como-me-matricular__passo-passo-card"> 
3872 
3873              <div class="item-passo"> 
3874                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt=""> 
3875                  <p class="item-passo-title">Escolha o curso</p> 
3876                  <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span> 
3877              </div> 
3878 
3879              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3880 
3881              <div class="item-passo"> 
3882                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt=""> 
3883                  <p class="item-passo-title">Adicione à Mochila</p> 
3884                  <span>Faça login ou crie uma conta em nosso site e continue a compra.</span> 
3885              </div> 
3886 
3887              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3888 
3889              <div class="item-passo"> 
3890                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt=""> 
3891                  <p class="item-passo-title">Faça a matrícula</p> 
3892                  <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span> 
3893              </div> 
3894 
3895          </div> 
3896 
3897 
3898      </div> 
3899 
3900    </section> 
3901 
3902  </#if> 
3903 
3904   
3905  <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2"> 
3906    <div class="container"> 
3907        <h2 class="ssp-section-title"> 
3908          <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text"> 
3909              Cursos que você pode gostar 
3910          </lfr-editable> 
3911        </h2> 
3912 
3913        <div id="slider-curso"> 
3914 
3915        </div> 
3916 
3917    </div> 
3918  </div> 
3919 
3920 
3921   
3922   
3923  <#-- Section para o item de curso--> 
3924  <div id="curso-item-template"  class="d-none slick-area__item"> 
3925   
3926    <div class="ssp-card-curso" style="height: 288px;"> 
3927   
3928      <a class="ssp-absolute-link ck-curso" href="#a"></a> 
3929   
3930      <div class="ssp-card-curso__image"> 
3931   
3932        <div class="ssp-image-container"> 
3933            <img src="" /> 
3934   
3935        </div> 
3936   
3937      </div> 
3938   
3939      <div class="ssp-card-curso__body"> 
3940   
3941        <div class="ssp-card-curso__color-tag-modalidade"></div> 
3942   
3943        <div class="ssp-card-curso__tags"> 
3944   
3945          <span class="ssp-card-curso__tag-formato-title"></span> 
3946           
3947          <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span> 
3948   
3949        </div> 
3950   
3951        <h6 class="ssp-card-curso__title"> 
3952   
3953        </h6> 
3954   
3955        <div class="ssp-card-curso__info"> 
3956   
3957          <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span> 
3958          <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span> 
3959   
3960        </div> 
3961   
3962      </div> 
3963   
3964    </div> 
3965   
3966  </div> 
3967   
3968  <#function getJournalArticle> 
3969   
3970     
3971    <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3972    <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first> 
3973    <#assign groupId = themeDisplay.getSiteGroupId()> 
3974    <#attempt> 
3975   
3976      <#if !friendlyURL?contains("fragment_collections") > 
3977         
3978        <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)> 
3979      <#else> 
3980         
3981        <#return '#erro#'> 
3982      </#if> 
3983       
3984    <#recover> 
3985         
3986      <#return '#erro#'> 
3987    </#attempt> 
3988  </#function> 
3989   
3990  <#function getCategorias primaryKey> 
3991   
3992    <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
3993    <#attempt> 
3994   
3995        <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)> 
3996   
3997    <#recover> 
3998       
3999      <#return '#erro#'> 
4000    </#attempt> 
4001  </#function> 
4002   
4003  <#function getVocabulary vocabularyId> 
4004   
4005    <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") /> 
4006    <#attempt> 
4007   
4008        <#return vocabularyService.getVocabulary(vocabularyId)> 
4009   
4010    <#recover> 
4011       
4012      <#return '#erro#'> 
4013    </#attempt> 
4014  </#function> 
4015   
4016  <#function getStringValue dom name> 
4017    <#assign 
4018      seletorSTR = "dynamic-element[@field-reference='"+name+"']" 
4019      xPathSelector = saxReaderUtil.createXPath(seletorSTR) 
4020    /> 
4021    <#if xPathSelector.selectSingleNode(dom)?? > 
4022      <#assign 
4023        valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim 
4024      /> 
4025      <#return valueSTR> 
4026    </#if> 
4027    <#return ''> 
4028  </#function> 
4029   
4030      <!--Modal de Login --> 
4031           
4032      <section id="modal-login" class="ssp-modal-registro-interesse d-none"> 
4033   
4034          <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;"> 
4035   
4036              <div class="px-5"> 
4037                  <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i> 
4038                  <div class="text-darker-gray py-3">Faça login na sua conta</div> 
4039              </div> 
4040         
4041              <div class="dropdown-divider"></div> 
4042   
4043              <div class="dropdown-menu-arrow"></div> 
4044   
4045              <form id="login_form" class="px-5 py-4" method="post"> 
4046               
4047              <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div> 
4048         
4049                  <div class="form-group"> 
4050                       
4051                      <label for="login-email">E-mail</label> 
4052                      <div class="input-group mb-2"> 
4053                          <div class="input-group-prepend"> 
4054                              <span class="input-group-text"><i class="icon-envelope"></i></span> 
4055                          </div> 
4056                          <input type="text" class="form-control" id="login-email-modal" name="_com_liferay_login_web_portlet_LoginPortlet_login" placeholder="Digite seu e-mail" aria-label="Email" aria-describedby="login-email"> 
4057                      </div> 
4058   
4059                  </div> 
4060   
4061                  <div class="form-group"> 
4062   
4063                      <label for="login-password">Senha</label> 
4064                      <div class="input-group mb-2"> 
4065                          <div class="input-group-prepend"> 
4066                              <span class="input-group-text"><i class="icon-key"></i></span> 
4067                          </div> 
4068                          <input type="password" class="form-control" id="login-password-modal" name="_com_liferay_login_web_portlet_LoginPortlet_password" placeholder="Digite sua senha" aria-label="Password" aria-describedby="login-password"> 
4069                      </div> 
4070   
4071                  </div> 
4072                   
4073                  <div class="pt-1 pb-3"> 
4074                  <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small> 
4075                  </div> 
4076                 
4077                  <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button> 
4078              </form> 
4079               
4080              <div class="dropdown-divider"></div> 
4081   
4082              <div class="px-5 pb-4"> 
4083                  <div class="text-darker-gray py-3">Não tem cadastro?</div> 
4084                  <a href="https://www.sp.senac.br/usuario-unico/InsertUser?destino=${themeDisplay.getPortalURL()+themeDisplay.getURLCurrent()}" target="_blank" class="btn bg-btn-cadastre btn-nivel-livre text-white w-100 ">Cadastre-se</a> 
4085              </div> 
4086   
4087               
4088          </div> 
4089   
4090      </section> 
4091   
4092    <!-- modal registro interesse --> 
4093   
4094 
4095      <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none"> 
4096         
4097        <#if !isEMED> 
4098            <div class="ssp-card-registro-interesse"> 
4099       
4100              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4101 
4102              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4103              <h3 class="ssp-card-registro-interesse__nome-curso"></h3> 
4104 
4105              <div id="unidades-registro-interesse"> 
4106 
4107                  <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4> 
4108         
4109            <div id="select-unidades-registro-interesse"> 
4110                    <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4111                  </div> 
4112 
4113                  <div class="ssp-card-registro-interesse__add-mais"> 
4114                      <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4115                       
4116                      &nbsp; 
4117                       
4118                      <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4119                  </div> 
4120 
4121              </div> 
4122 
4123              <div id="dias-registro-interesse"> 
4124                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4> 
4125 
4126                  <div class="ssp-card-registro-interesse__week-content"> 
4127                      <span id="todosDias" class="ssp-week-day">Todos</span> 
4128                      <span class="ssp-week-day">Seg</span> 
4129                      <span class="ssp-week-day">Ter</span> 
4130                      <span class="ssp-week-day">Qua</span> 
4131                      <span class="ssp-week-day">Qui</span> 
4132                      <span class="ssp-week-day">Sex</span> 
4133                      <span class="ssp-week-day">Sab</span> 
4134                  </div> 
4135 
4136              </div> 
4137 
4138              <div id="periodo-registro-interesse"> 
4139 
4140                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4> 
4141 
4142                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">  
4143 
4144                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4145                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4146                          <label for="check-todos-periodos">Todos</label> 
4147                      </div> 
4148 
4149                      <div class="ssp-card-registro-interesse__check-item"> 
4150                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4151                          <label for="periodo-m">Manhã</label> 
4152                      </div> 
4153 
4154                      <div class="ssp-card-registro-interesse__check-item"> 
4155                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4156                          <label for="periodo-t">Tarde</label> 
4157                      </div> 
4158 
4159                      <div class="ssp-card-registro-interesse__check-item"> 
4160                          <input type="checkbox" name="" value="N" id="periodo-n"> 
4161                          <label for="periodo-n" "="">Noite</label> 
4162                      </div> 
4163 
4164 
4165                  </div> 
4166 
4167              </div> 
4168 
4169              <div class="ssp-card-registro-interesse__card-politica"> 
4170 
4171               
4172                <p class="ssp-card-registro-interesse__card-politica-title"> 
4173                  <strong>Política de Privacidade do Senac São Paulo </strong> 
4174              </p> 
4175           
4176              <p>Data de publicação 06/08/2024</p> 
4177           
4178              <p class="ssp-card-registro-interesse__card-politica-text"> 
4179                  O Serviço Nacional de Aprendizagem Comercial - Senac, 
4180                  Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles 
4181                  com quem se relaciona. 
4182              </p> 
4183               
4184              <p class="ssp-card-registro-interesse__card-politica-text"> 
4185           
4186                  A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são 
4187                  coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as 
4188                  medidas de segurança que adotamos; e quais os direitos que você tem. 
4189                  <br><br> 
4190                  É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis 
4191                  alterações no que diz respeito ao tratamento de seus dados pessoais. 
4192                  <br><br> 
4193                  Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento. 
4194                  <br><br> 
4195                  <b>1. Quem somos nós?</b><br> 
4196                  O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº 
4197                  03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para 
4198                  fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é 
4199                  controlador dos dados pessoais. 
4200                  <br><br> 
4201                  <b>2. O que você precisa saber antes de ler esta política?</b> 
4202                  <br> 
4203                  Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF, 
4204                  e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados 
4205                  pessoais sensíveis, conforme definição a seguir: 
4206                  <br><br> 
4207                  Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica, 
4208                  convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou 
4209                  político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico. 
4210                  <br><br> 
4211                  Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se 
4212                  você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por 
4213                  nós, é ele quem vai ajudar. 
4214                  <br><br> 
4215                  Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento. 
4216                  <br><br> 
4217                  Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação, 
4218                  utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre 
4219                  outros. 
4220                  <br><br> 
4221                  Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição 
4222                  descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos 
4223                  referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada, 
4224                  candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi. 
4225                  <br><br> 
4226                  <b>3. Quais dados pessoais são tratados e por quê?</b> 
4227                  <br> 
4228                  O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para 
4229                  atendimento às finalidades ora descritas, conforme aplicável: 
4230                  <br><br> 
4231                  <b>Visitante / Interessado</b> 
4232                  <br> 
4233                  <b>Atividade: Navegação</b> 
4234                  <br> 
4235                  Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de 
4236                  navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem 
4237                  do tráfego. 
4238                  <br><br> 
4239                  Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o 
4240                  envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; 
4241                  aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo 
4242                  ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais. 
4243                  <br><br> 
4244              </p> 
4245           
4246              <hr> 
4247           
4248              <p class="ssp-card-registro-interesse__card-politica-text"> 
4249                  <br> 
4250                  <b>Atividade: Cadastro</b><br> 
4251                  Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço, 
4252                  telefone. 
4253                  <br><br> 
4254                  Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do 
4255                  cadastro por duplo fator de autenticação. 
4256                  <br> 
4257              </p> 
4258           
4259              <hr> 
4260           
4261              <p class="ssp-card-registro-interesse__card-politica-text">     
4262                  <br> 
4263                  <b>Atividade: Inscrição em eventos</b><br> 
4264                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento 
4265                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional. 
4266                  <br><br> 
4267                  Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo 
4268                  Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos. 
4269                  <br> 
4270              </p> 
4271           
4272              <hr> 
4273           
4274              <p class="ssp-card-registro-interesse__card-politica-text"> 
4275                  <br> 
4276                  <b>Atividade: Comunicação e Marketing</b><br> 
4277                  Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente 
4278                  em mensagens nos nossos canais de atendimento e redes sociais. 
4279                  <br><br> 
4280                  Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações; 
4281                  realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de 
4282                  anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses. 
4283                  <br> 
4284              </p> 
4285           
4286              <hr> 
4287               
4288              <p class="ssp-card-registro-interesse__card-politica-text"> 
4289                  <br> 
4290                  <b>Candidato a aluno</b><br> 
4291                  <b>Atividade: Processo seletivo</b><br> 
4292                  Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, 
4293                  número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação 
4294                  sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e 
4295                  Lattes, dentre outros, conforme exigido a depender do processo seletivo. 
4296                  <br><br> 
4297                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno 
4298                  menor de idade. 
4299                  <br><br> 
4300                  Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de 
4301                  viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios 
4302                  previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo 
4303                  seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação; 
4304                  responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre 
4305                  cursos, eventos e/ou benefícios de acordo com seus interesses. 
4306                  <br> 
4307              </p> 
4308           
4309                  <hr> 
4310               
4311              <p class="ssp-card-registro-interesse__card-politica-text"> 
4312                  <br> 
4313                  <b>Atividade: Bolsas de estudo</b><br> 
4314                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso 
4315                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo 
4316                  renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome). 
4317                  <br><br> 
4318                  Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em 
4319                  particular do Programa Senac de Gratuidade (PSG). 
4320                  <br> 
4321              </p> 
4322           
4323              <hr> 
4324           
4325              <p class="ssp-card-registro-interesse__card-politica-text"> 
4326                  <br> 
4327                  <b>Aluno</b><br> 
4328                  <b>Atividade: Matrícula</b><br> 
4329                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4330                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4331                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4332                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4333                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4334                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4335                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4336                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4337                  <br><br> 
4338                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4339                  responsáveis legais do aluno se menor de idade. 
4340                  <br><br> 
4341                  Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente, 
4342                  a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu 
4343                  contrato conosco; e outras finalidades relacionadas. 
4344                  <br> 
4345              </p> 
4346           
4347              <hr> 
4348           
4349              <p class="ssp-card-registro-interesse__card-politica-text"> 
4350                  <br> 
4351               
4352                  <b>Atividade: Jornada Acadêmica</b><br> 
4353                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4354                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4355                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4356                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4357                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4358                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4359                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4360                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4361                  <br><br> 
4362                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4363                  responsáveis legais do aluno se menor de idade. 
4364                  <br><br> 
4365                  Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional 
4366                  do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico; 
4367                  responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por 
4368                  exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a 
4369                  realização de intercâmbio acadêmico. 
4370                  <br> 
4371              </p> 
4372               
4373              <hr> 
4374           
4375              <p class="ssp-card-registro-interesse__card-politica-text"> 
4376                  <br> 
4377                  <b>Atividade: Bolsas de estudo</b><br> 
4378                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4379                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4380                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4381                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4382                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4383                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4384                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4385                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4386                  <br><br> 
4387                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4388                  responsáveis legais do aluno se menor de idade. 
4389                  <br><br> 
4390                  Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o 
4391                  fornecimento de bolsas de estudo. 
4392                  <br> 
4393              </p> 
4394           
4395              <hr> 
4396           
4397              <p class="ssp-card-registro-interesse__card-politica-text"> 
4398                  <br> 
4399               
4400               
4401                  <b>Atividade: Benefícios</b><br> 
4402                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4403                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4404                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4405                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4406                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4407                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4408                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4409                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4410                  <br><br> 
4411                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4412                  responsáveis legais do aluno se menor de idade. 
4413                  <br><br> 
4414                  Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato 
4415                  educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente 
4416                  licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre 
4417                  outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus 
4418                  interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios, 
4419                  inclusive para aperfeiçoamento das nossas parcerias comerciais. 
4420                  <br> 
4421              </p> 
4422               
4423              <hr> 
4424               
4425              <p class="ssp-card-registro-interesse__card-politica-text"> 
4426                  <br> 
4427                  <b>Atividade: Procedimentos internos</b><br> 
4428                  Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços 
4429                  prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e 
4430                  presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos 
4431                  nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou 
4432                  cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o 
4433                  diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de 
4434                  pesquisa. 
4435                  <br> 
4436              </p> 
4437           
4438              <hr> 
4439           
4440              <p class="ssp-card-registro-interesse__card-politica-text"> 
4441                  <br> 
4442               
4443               
4444                  <b>Atividade: Obrigações legais e exercícios de direito</b><br> 
4445                  Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte 
4446                  escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse 
4447                  do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por 
4448                  exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem 
4449                  judicial, de autoridade competente ou de órgão fiscalizador. 
4450                  <br> 
4451              </p> 
4452           
4453              <hr> 
4454           
4455              <p class="ssp-card-registro-interesse__card-politica-text"> 
4456                  <br> 
4457               
4458                  <b>Atividade: Pesquisas e desenvolvimento</b><br> 
4459                  Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar 
4460                  pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do 
4461                  programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o 
4462                  Senac SP está sujeito. 
4463                  <br> 
4464              </p> 
4465               
4466              <hr> 
4467           
4468              <p class="ssp-card-registro-interesse__card-politica-text"> 
4469                  <br> 
4470               
4471                  <b>Atividade: Monitoramento</b><br> 
4472                  Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e 
4473                  aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por 
4474                  exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014. 
4475                  <br> 
4476              </p> 
4477               
4478              <hr> 
4479           
4480              <p class="ssp-card-registro-interesse__card-politica-text"> 
4481                  <br> 
4482               
4483                  <b>Ex-aluno</b><br> 
4484                  <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br> 
4485                  Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico, 
4486                  fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP. 
4487                  <br><br> 
4488                  Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros 
4489                  escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da 
4490                  formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou 
4491                  informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir 
4492                  pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para 
4493                  conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de 
4494                  obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais, 
4495                  administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar 
4496                  com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de 
4497                  fornecimento de dados sobre você no caso de, por exemplo, concursos públicos. 
4498                  <br> 
4499              </p> 
4500           
4501              <hr> 
4502           
4503              <p class="ssp-card-registro-interesse__card-politica-text"> 
4504                  <br> 
4505                  <b>Terceiros relacionados a candidatos e/ou alunos</b><br> 
4506                  <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br> 
4507                  Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com 
4508                  aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login). 
4509                  <br><br> 
4510                  Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida 
4511                  escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de 
4512                  candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo 
4513                  Senac SP. 
4514                  <br> 
4515              </p> 
4516           
4517                  <hr> 
4518               
4519              <p class="ssp-card-registro-interesse__card-politica-text"> 
4520                  <br><br> 
4521                  <b>Usuário Wi-Fi</b><br> 
4522                  <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br> 
4523                  Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a 
4524                  navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo. 
4525                  <br><br> 
4526                  Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e 
4527                  outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar 
4528                  desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou 
4529                  outras informações relevantes; proteger você, terceiros e o Senac. 
4530                  <br><br> 
4531               
4532               
4533                  Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você 
4534                  ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas 
4535                  de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa 
4536                  responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas. 
4537                  <br><br> 
4538                  Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de 
4539                  obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo 
4540                  interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu 
4541                  responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da 
4542                  autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão. 
4543                  <br><br> 
4544                  O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre 
4545                  que entender haver base legal para o tratamento posterior nos termos da LGPD. 
4546                  <br><br> 
4547               
4548               
4549                  <b>4. Com quem compartilhamos os seus dados pessoais?</b><br> 
4550                  Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional 
4551                  (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de 
4552                  relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros 
4553                  comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de 
4554                  crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser 
4555                  compartilhados para finalidades legítimas da seguinte maneira: 
4556                  <br><br> 
4557                  - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu 
4558                  relacionamento e contrato de prestação de serviços conosco; 
4559                  <br><br> 
4560                  - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada, 
4561                  conforme aplicável; 
4562                  <br><br> 
4563                  - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou 
4564                  administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos 
4565                  legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou 
4566                  concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em 
4567                  contratos, órgãos judiciais e governamentais; 
4568                  <br><br> 
4569                  - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou 
4570                  ameaça a direito; 
4571                  <br><br> 
4572                  - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros; 
4573                  <br><br> 
4574                  - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou 
4575                  em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou 
4576                  comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o 
4577                  atingimento da aludida finalidade; 
4578                  <br><br> 
4579                  - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer 
4580                  consequência adversa de sua decisão que negar ou revogar o seu consentimento. 
4581                  <br><br> 
4582               
4583               
4584                  Informações agregadas e anonimizadas poderão ser livremente compartilhadas. 
4585                  <br><br> 
4586                  Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros 
4587                  que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos. 
4588                  <br><br> 
4589                  Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus 
4590                  dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação 
4591                  brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável. 
4592                  <br><br> 
4593                  Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de 
4594                  requisição específica, conforme indicado no tópico que trata sobre os seus direitos. 
4595                  <br><br> 
4596               
4597               
4598                  <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br> 
4599                  Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram 
4600                  coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver 
4601                  disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais. 
4602                  <br><br> 
4603                  Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos 
4604                  seguintes critérios: 
4605                  <br><br> 
4606                  - Existência de uma obrigação legal ou contratual de reter os dados pessoais; 
4607                  <br><br> 
4608                  - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos 
4609                  judiciais, administrativos ou arbitrais; 
4610                  <br><br> 
4611                  - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e 
4612                  educacionais. 
4613                  <br><br> 
4614                  Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente, 
4615                  para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal. 
4616                  <br><br> 
4617               
4618               
4619                  <b>6. Como mantemos seus dados pessoais seguros?</b><br> 
4620                  Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços 
4621                  tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados 
4622                  e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de 
4623                  tratamento inadequado ou ilícito. 
4624                  <br><br> 
4625                  Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como: 
4626                  <br><br> 
4627                  - Controle restrito de acesso interno; 
4628                  <br><br> 
4629                  - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves; 
4630                  <br><br> 
4631                  - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados 
4632                  acessados. 
4633                  <br><br> 
4634                  Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de 
4635                  disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas 
4636                  adequadamente às autoridades competentes e aos titulares afetados. 
4637                  <br><br> 
4638               
4639               
4640                  <b>7. Quais são os seus direitos?</b><br> 
4641                  Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais: 
4642                  <br><br> 
4643                  <b>Direito X Explicação</b><br> 
4644                  1. Confirmação da existência de tratamento de seus dados pessoais<br> 
4645                  Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais. 
4646                  <br><br> 
4647                  2. Acesso aos dados pessoais<br> 
4648                  Esse direito permite que você solicite uma cópia dos seus dados pessoais. 
4649                  <br><br> 
4650                  3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br> 
4651                  Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que 
4652                  estão incompletos, inexatos ou desatualizados. 
4653                  <br><br> 
4654                  4. Anonimização, bloqueio ou eliminação de dados pessoais<br> 
4655                  Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se 
4656                  desnecessários, excessivos ou tratados de forma incorreta. 
4657                  <br><br> 
4658                  É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que 
4659                  ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser 
4660                  por nós atendida. 
4661                  <br><br> 
4662                  <br><br> 
4663                  O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido. 
4664                  <br><br> 
4665                  <b>5. Portabilidade dos dados pessoais</b><br> 
4666                  Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja 
4667                  violação da nossa propriedade intelectual. 
4668                  <br><br> 
4669                  A requisição de exercício desse direito não implica na eliminação de dados pessoais. 
4670                  <br><br> 
4671                  <b>6. Não fornecimento ou revogação do consentimento</b><br> 
4672                  Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer 
4673                  tratamento de dados pessoais anteriormente. 
4674                  <br><br> 
4675                  Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as 
4676                  quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da 
4677                  legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e; 
4678                  (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais 
4679                  (ANPD). 
4680                  <br><br> 
4681                  Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui. 
4682                  <br><br> 
4683                  Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura. 
4684                  <br><br> 
4685               
4686               
4687                  <b>8. Políticas de terceiros e atualizações desta política</b><br> 
4688                  Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a 
4689                  outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de 
4690                  terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade, 
4691                  entrando diretamente em contato com o terceiro responsável em caso de dúvidas. 
4692                  <br><br> 
4693                  Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material 
4694                  significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do 
4695                  tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações. 
4696                  <br><br> 
4697               
4698               
4699                  <b>9. Dúvidas?</b><br> 
4700                  Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo 
4701                  e-mail privacidade@sp.senac.br. 
4702                  <br><br> 
4703                  <b>Encarregado de Dados do Senac (DPO):</b><br> 
4704                  Fernando Sátiro Pereira<br> 
4705                  Gerente de Tecnologia da Informação do Senac São Paulo<br> 
4706                  Contato: privacidade@sp.senac.br 
4707                  <br><br> 
4708                  <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a> 
4709                  <br><br> 
4710               
4711              </p> 
4712 
4713 
4714              </div> 
4715 
4716              <div class="ssp-card-registro-interesse__check-item"> 
4717                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
4718                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
4719              </div> 
4720 
4721              <div class="text-center mt-5"> 
4722 
4723                  <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button> 
4724 
4725                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
4726 
4727              </div> 
4728 
4729          </div>     
4730   
4731        <#else> 
4732 
4733            <div class="ssp-card-registro-interesse emed"> 
4734 
4735              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4736 
4737              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4738 
4739              <div class="emed-select-group"> 
4740 
4741                  <h3 class="ssp-card-registro-interesse__title-modal"></h3> 
4742                   
4743                  <div id="unidades-registro-interesse"> 
4744       
4745                      <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4> 
4746             
4747                      <div id="select-unidades-registro-interesse"> 
4748                        <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4749                      </div> 
4750       
4751                      <div class="ssp-card-registro-interesse__add-mais"> 
4752                          <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4753                           
4754                          &nbsp; 
4755                           
4756                          <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4757                      </div> 
4758       
4759                  </div> 
4760 
4761              </div> 
4762 
4763               
4764              <div id="periodo-registro-interesse"> 
4765 
4766                  <p class="ssp-card-registro-interesse__title-section-itens">Período:</p> 
4767 
4768                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">                   
4769                      <div class="ssp-card-registro-interesse__check-item"> 
4770                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4771                          <label for="periodo-m">Manhã</label> 
4772                      </div> 
4773                       
4774                      <div class="ssp-card-registro-interesse__check-item"> 
4775                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4776                          <label for="periodo-t">Tarde</label> 
4777                      </div> 
4778                       
4779                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4780                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4781                          <label for="check-todos-periodos">Todos</label> 
4782                      </div> 
4783 
4784                  </div> 
4785 
4786              </div> 
4787 
4788              <div id="turmas-registro-interesse"> 
4789 
4790                  <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p> 
4791 
4792                  <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">  
4793 
4794                      <div class="ssp-card-registro-interesse__check-item"> 
4795                          <input type="checkbox" name="" value="1" id="primeiro"> 
4796                          <label for="primeiro">1º ano</label> 
4797                      </div> 
4798 
4799                      <div class="ssp-card-registro-interesse__check-item"> 
4800                          <input type="checkbox" name="" value="2" id="segundo"> 
4801                          <label for="segundo">2º ano</label> 
4802                      </div> 
4803 
4804                      <div class="ssp-card-registro-interesse__check-item"> 
4805                          <input type="checkbox" name="" value="3" id="terceiro"> 
4806                          <label for="terceiro">3º ano</label> 
4807                      </div> 
4808 
4809                  </div> 
4810 
4811              </div> 
4812 
4813              <div id="msg-transferencia-emed"> 
4814 
4815                  <div class="transferencia-emed-title"> 
4816                      <i class="fas fa-comment-exclamation"></i> 
4817                      <p>Quer se transferir de escola?</p> 
4818                  </div> 
4819 
4820                  <div class="transferencia-emed-link"> 
4821                      <a href="#">Fale direto com a unidade de interesse.</a> 
4822                  </div> 
4823 
4824              </div> 
4825 
4826              <div class="ssp-card-registro-interesse__card-politica"> 
4827 
4828                <p class="ssp-card-registro-interesse__card-politica-title"> 
4829                  <strong>Política de Privacidade do Senac São Paulo </strong> 
4830              </p> 
4831           
4832              <p>Data de publicação 06/08/2024</p> 
4833           
4834              <p class="ssp-card-registro-interesse__card-politica-text"> 
4835                  O Serviço Nacional de Aprendizagem Comercial - Senac, 
4836                  Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles 
4837                  com quem se relaciona. 
4838              </p> 
4839               
4840              <p class="ssp-card-registro-interesse__card-politica-text"> 
4841           
4842                  A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são 
4843                  coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as 
4844                  medidas de segurança que adotamos; e quais os direitos que você tem. 
4845                  <br><br> 
4846                  É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis 
4847                  alterações no que diz respeito ao tratamento de seus dados pessoais. 
4848                  <br><br> 
4849                  Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento. 
4850                  <br><br> 
4851                  <b>1. Quem somos nós?</b><br> 
4852                  O Senac SP é a Administração Regional do Senac no Estado de São Paulo. O Senac SP está inscrito no CNPJ sob o nº 
4853                  03.709.814/0001-98 e tem sede à Rua Dr. Vila Nova, 228, 7º andar, na cidade de São Paulo, Estado de São Paulo. Para 
4854                  fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é 
4855                  controlador dos dados pessoais. 
4856                  <br><br> 
4857                  <b>2. O que você precisa saber antes de ler esta política?</b> 
4858                  <br> 
4859                  Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF, 
4860                  e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados 
4861                  pessoais sensíveis, conforme definição a seguir: 
4862                  <br><br> 
4863                  Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica, 
4864                  convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou 
4865                  político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico. 
4866                  <br><br> 
4867                  Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se 
4868                  você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por 
4869                  nós, é ele quem vai ajudar. 
4870                  <br><br> 
4871                  Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento. 
4872                  <br><br> 
4873                  Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação, 
4874                  utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre 
4875                  outros. 
4876                  <br><br> 
4877                  Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição 
4878                  descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos 
4879                  referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada, 
4880                  candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi. 
4881                  <br><br> 
4882                  <b>3. Quais dados pessoais são tratados e por quê?</b> 
4883                  <br> 
4884                  O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para 
4885                  atendimento às finalidades ora descritas, conforme aplicável: 
4886                  <br><br> 
4887                  <b>Visitante / Interessado</b> 
4888                  <br> 
4889                  <b>Atividade: Navegação</b> 
4890                  <br> 
4891                  Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de 
4892                  navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem 
4893                  do tráfego. 
4894                  <br><br> 
4895                  Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o 
4896                  envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; 
4897                  aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo 
4898                  ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais. 
4899                  <br><br> 
4900              </p> 
4901           
4902              <hr> 
4903           
4904              <p class="ssp-card-registro-interesse__card-politica-text"> 
4905                  <br> 
4906                  <b>Atividade: Cadastro</b><br> 
4907                  Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço, 
4908                  telefone. 
4909                  <br><br> 
4910                  Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do 
4911                  cadastro por duplo fator de autenticação. 
4912                  <br> 
4913              </p> 
4914           
4915              <hr> 
4916           
4917              <p class="ssp-card-registro-interesse__card-politica-text">     
4918                  <br> 
4919                  <b>Atividade: Inscrição em eventos</b><br> 
4920                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento 
4921                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional. 
4922                  <br><br> 
4923                  Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo 
4924                  Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos. 
4925                  <br> 
4926              </p> 
4927           
4928              <hr> 
4929           
4930              <p class="ssp-card-registro-interesse__card-politica-text"> 
4931                  <br> 
4932                  <b>Atividade: Comunicação e Marketing</b><br> 
4933                  Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente 
4934                  em mensagens nos nossos canais de atendimento e redes sociais. 
4935                  <br><br> 
4936                  Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações; 
4937                  realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de 
4938                  anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses. 
4939                  <br> 
4940              </p> 
4941           
4942              <hr> 
4943               
4944              <p class="ssp-card-registro-interesse__card-politica-text"> 
4945                  <br> 
4946                  <b>Candidato a aluno</b><br> 
4947                  <b>Atividade: Processo seletivo</b><br> 
4948                  Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, 
4949                  número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação 
4950                  sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e 
4951                  Lattes, dentre outros, conforme exigido a depender do processo seletivo. 
4952                  <br><br> 
4953                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno 
4954                  menor de idade. 
4955                  <br><br> 
4956                  Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de 
4957                  viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios 
4958                  previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo 
4959                  seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação; 
4960                  responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre 
4961                  cursos, eventos e/ou benefícios de acordo com seus interesses. 
4962                  <br> 
4963              </p> 
4964           
4965                  <hr> 
4966               
4967              <p class="ssp-card-registro-interesse__card-politica-text"> 
4968                  <br> 
4969                  <b>Atividade: Bolsas de estudo</b><br> 
4970                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso 
4971                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo 
4972                  renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome). 
4973                  <br><br> 
4974                  Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em 
4975                  particular do Programa Senac de Gratuidade (PSG). 
4976                  <br> 
4977              </p> 
4978           
4979              <hr> 
4980           
4981              <p class="ssp-card-registro-interesse__card-politica-text"> 
4982                  <br> 
4983                  <b>Aluno</b><br> 
4984                  <b>Atividade: Matrícula</b><br> 
4985                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4986                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4987                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4988                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4989                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4990                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4991                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4992                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4993                  <br><br> 
4994                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4995                  responsáveis legais do aluno se menor de idade. 
4996                  <br><br> 
4997                  Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente, 
4998                  a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu 
4999                  contrato conosco; e outras finalidades relacionadas. 
5000                  <br> 
5001              </p> 
5002           
5003              <hr> 
5004           
5005              <p class="ssp-card-registro-interesse__card-politica-text"> 
5006                  <br> 
5007               
5008                  <b>Atividade: Jornada Acadêmica</b><br> 
5009                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
5010                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
5011                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
5012                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
5013                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
5014                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
5015                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
5016                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
5017                  <br><br> 
5018                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
5019                  responsáveis legais do aluno se menor de idade. 
5020                  <br><br> 
5021                  Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional 
5022                  do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico; 
5023                  responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por 
5024                  exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a 
5025                  realização de intercâmbio acadêmico. 
5026                  <br> 
5027              </p> 
5028               
5029              <hr> 
5030           
5031              <p class="ssp-card-registro-interesse__card-politica-text"> 
5032                  <br> 
5033                  <b>Atividade: Bolsas de estudo</b><br> 
5034                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
5035                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
5036                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
5037                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
5038                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
5039                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
5040                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
5041                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
5042                  <br><br> 
5043                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
5044                  responsáveis legais do aluno se menor de idade. 
5045                  <br><br> 
5046                  Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o 
5047                  fornecimento de bolsas de estudo. 
5048                  <br> 
5049              </p> 
5050           
5051              <hr> 
5052           
5053              <p class="ssp-card-registro-interesse__card-politica-text"> 
5054                  <br> 
5055               
5056               
5057                  <b>Atividade: Benefícios</b><br> 
5058                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
5059                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
5060                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
5061                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
5062                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
5063                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
5064                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
5065                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
5066                  <br><br> 
5067                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
5068                  responsáveis legais do aluno se menor de idade. 
5069                  <br><br> 
5070                  Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato 
5071                  educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente 
5072                  licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre 
5073                  outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus 
5074                  interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios, 
5075                  inclusive para aperfeiçoamento das nossas parcerias comerciais. 
5076                  <br> 
5077              </p> 
5078               
5079              <hr> 
5080               
5081              <p class="ssp-card-registro-interesse__card-politica-text"> 
5082                  <br> 
5083                  <b>Atividade: Procedimentos internos</b><br> 
5084                  Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços 
5085                  prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e 
5086                  presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos 
5087                  nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou 
5088                  cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o 
5089                  diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de 
5090                  pesquisa. 
5091                  <br> 
5092              </p> 
5093           
5094              <hr> 
5095           
5096              <p class="ssp-card-registro-interesse__card-politica-text"> 
5097                  <br> 
5098               
5099               
5100                  <b>Atividade: Obrigações legais e exercícios de direito</b><br> 
5101                  Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte 
5102                  escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse 
5103                  do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por 
5104                  exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem 
5105                  judicial, de autoridade competente ou de órgão fiscalizador. 
5106                  <br> 
5107              </p> 
5108           
5109              <hr> 
5110           
5111              <p class="ssp-card-registro-interesse__card-politica-text"> 
5112                  <br> 
5113               
5114                  <b>Atividade: Pesquisas e desenvolvimento</b><br> 
5115                  Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar 
5116                  pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do 
5117                  programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o 
5118                  Senac SP está sujeito. 
5119                  <br> 
5120              </p> 
5121               
5122              <hr> 
5123           
5124              <p class="ssp-card-registro-interesse__card-politica-text"> 
5125                  <br> 
5126               
5127                  <b>Atividade: Monitoramento</b><br> 
5128                  Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e 
5129                  aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por 
5130                  exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014. 
5131                  <br> 
5132              </p> 
5133               
5134              <hr> 
5135           
5136              <p class="ssp-card-registro-interesse__card-politica-text"> 
5137                  <br> 
5138               
5139                  <b>Ex-aluno</b><br> 
5140                  <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br> 
5141                  Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico, 
5142                  fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP. 
5143                  <br><br> 
5144                  Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros 
5145                  escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da 
5146                  formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou 
5147                  informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir 
5148                  pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para 
5149                  conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de 
5150                  obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais, 
5151                  administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar 
5152                  com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de 
5153                  fornecimento de dados sobre você no caso de, por exemplo, concursos públicos. 
5154                  <br> 
5155              </p> 
5156           
5157              <hr> 
5158           
5159              <p class="ssp-card-registro-interesse__card-politica-text"> 
5160                  <br> 
5161                  <b>Terceiros relacionados a candidatos e/ou alunos</b><br> 
5162                  <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br> 
5163                  Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com 
5164                  aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login). 
5165                  <br><br> 
5166                  Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida 
5167                  escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de 
5168                  candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo 
5169                  Senac SP. 
5170                  <br> 
5171              </p> 
5172           
5173                  <hr> 
5174               
5175              <p class="ssp-card-registro-interesse__card-politica-text"> 
5176                  <br><br> 
5177                  <b>Usuário Wi-Fi</b><br> 
5178                  <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br> 
5179                  Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a 
5180                  navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo. 
5181                  <br><br> 
5182                  Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e 
5183                  outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar 
5184                  desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou 
5185                  outras informações relevantes; proteger você, terceiros e o Senac. 
5186                  <br><br> 
5187               
5188               
5189                  Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você 
5190                  ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas 
5191                  de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa 
5192                  responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas. 
5193                  <br><br> 
5194                  Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de 
5195                  obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo 
5196                  interesse do Senac SP ou de terceiros. Para os casos em que a lei exija a obtenção de seu consentimento e/ou de seu 
5197                  responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da 
5198                  autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão. 
5199                  <br><br> 
5200                  O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre 
5201                  que entender haver base legal para o tratamento posterior nos termos da LGPD. 
5202                  <br><br> 
5203               
5204               
5205                  <b>4. Com quem compartilhamos os seus dados pessoais?</b><br> 
5206                  Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional 
5207                  (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de 
5208                  relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros 
5209                  comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de 
5210                  crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser 
5211                  compartilhados para finalidades legítimas da seguinte maneira: 
5212                  <br><br> 
5213                  - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu 
5214                  relacionamento e contrato de prestação de serviços conosco; 
5215                  <br><br> 
5216                  - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada, 
5217                  conforme aplicável; 
5218                  <br><br> 
5219                  - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou 
5220                  administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos 
5221                  legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou 
5222                  concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em 
5223                  contratos, órgãos judiciais e governamentais; 
5224                  <br><br> 
5225                  - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou 
5226                  ameaça a direito; 
5227                  <br><br> 
5228                  - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros; 
5229                  <br><br> 
5230                  - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou 
5231                  em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou 
5232                  comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o 
5233                  atingimento da aludida finalidade; 
5234                  <br><br> 
5235                  - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer 
5236                  consequência adversa de sua decisão que negar ou revogar o seu consentimento. 
5237                  <br><br> 
5238               
5239               
5240                  Informações agregadas e anonimizadas poderão ser livremente compartilhadas. 
5241                  <br><br> 
5242                  Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros 
5243                  que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos. 
5244                  <br><br> 
5245                  Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus 
5246                  dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação 
5247                  brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável. 
5248                  <br><br> 
5249                  Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de 
5250                  requisição específica, conforme indicado no tópico que trata sobre os seus direitos. 
5251                  <br><br> 
5252               
5253               
5254                  <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br> 
5255                  Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram 
5256                  coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver 
5257                  disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais. 
5258                  <br><br> 
5259                  Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos 
5260                  seguintes critérios: 
5261                  <br><br> 
5262                  - Existência de uma obrigação legal ou contratual de reter os dados pessoais; 
5263                  <br><br> 
5264                  - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos 
5265                  judiciais, administrativos ou arbitrais; 
5266                  <br><br> 
5267                  - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e 
5268                  educacionais. 
5269                  <br><br> 
5270                  Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente, 
5271                  para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal. 
5272                  <br><br> 
5273               
5274               
5275                  <b>6. Como mantemos seus dados pessoais seguros?</b><br> 
5276                  Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços 
5277                  tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados 
5278                  e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de 
5279                  tratamento inadequado ou ilícito. 
5280                  <br><br> 
5281                  Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como: 
5282                  <br><br> 
5283                  - Controle restrito de acesso interno; 
5284                  <br><br> 
5285                  - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves; 
5286                  <br><br> 
5287                  - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados 
5288                  acessados. 
5289                  <br><br> 
5290                  Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de 
5291                  disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas 
5292                  adequadamente às autoridades competentes e aos titulares afetados. 
5293                  <br><br> 
5294               
5295               
5296                  <b>7. Quais são os seus direitos?</b><br> 
5297                  Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais: 
5298                  <br><br> 
5299                  <b>Direito X Explicação</b><br> 
5300                  1. Confirmação da existência de tratamento de seus dados pessoais<br> 
5301                  Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais. 
5302                  <br><br> 
5303                  2. Acesso aos dados pessoais<br> 
5304                  Esse direito permite que você solicite uma cópia dos seus dados pessoais. 
5305                  <br><br> 
5306                  3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br> 
5307                  Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que 
5308                  estão incompletos, inexatos ou desatualizados. 
5309                  <br><br> 
5310                  4. Anonimização, bloqueio ou eliminação de dados pessoais<br> 
5311                  Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se 
5312                  desnecessários, excessivos ou tratados de forma incorreta. 
5313                  <br><br> 
5314                  É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que 
5315                  ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser 
5316                  por nós atendida. 
5317                  <br><br> 
5318                  <br><br> 
5319                  O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido. 
5320                  <br><br> 
5321                  <b>5. Portabilidade dos dados pessoais</b><br> 
5322                  Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja 
5323                  violação da nossa propriedade intelectual. 
5324                  <br><br> 
5325                  A requisição de exercício desse direito não implica na eliminação de dados pessoais. 
5326                  <br><br> 
5327                  <b>6. Não fornecimento ou revogação do consentimento</b><br> 
5328                  Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer 
5329                  tratamento de dados pessoais anteriormente. 
5330                  <br><br> 
5331                  Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as 
5332                  quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da 
5333                  legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e; 
5334                  (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais 
5335                  (ANPD). 
5336                  <br><br> 
5337                  Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui. 
5338                  <br><br> 
5339                  Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura. 
5340                  <br><br> 
5341               
5342               
5343                  <b>8. Políticas de terceiros e atualizações desta política</b><br> 
5344                  Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a 
5345                  outro domínio que não o Portal Senac SP e/ou tenha acesso, em decorrência de sua relação conosco, a serviços de 
5346                  terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade, 
5347                  entrando diretamente em contato com o terceiro responsável em caso de dúvidas. 
5348                  <br><br> 
5349                  Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material 
5350                  significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do 
5351                  tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações. 
5352                  <br><br> 
5353               
5354               
5355                  <b>9. Dúvidas?</b><br> 
5356                  Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo 
5357                  e-mail privacidade@sp.senac.br. 
5358                  <br><br> 
5359                  <b>Encarregado de Dados do Senac (DPO):</b><br> 
5360                  Fernando Sátiro Pereira<br> 
5361                  Gerente de Tecnologia da Informação do Senac São Paulo<br> 
5362                  Contato: privacidade@sp.senac.br 
5363                  <br><br> 
5364                  <a href="https://www.sp.senac.br/documents/d/guest/politica_de_privacidade_senac_sp_julho2020_site" target="_blank">Confira a versão anterior da nossa política</a> 
5365                  <br><br> 
5366               
5367              </p> 
5368 
5369              </div> 
5370 
5371              <div class="ssp-card-registro-interesse__check-item"> 
5372                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
5373                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
5374              </div> 
5375 
5376              <div class="text-center mt-5"> 
5377 
5378                  <button class="btn btn-nivel ssp-card-registro-interesse__btn-enviar btn-with-loading" href="#a" id="enviar-registro-interesse-btn" disabled="disabled">Enviar</button> 
5379 
5380                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
5381 
5382              </div> 
5383 
5384            </div>    
5385 
5386        </#if> 
5387      </section> 
5388 
5389      <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none"> 
5390   
5391          <div class="ssp-card-msg-sucesso"> 
5392   
5393              <div class="ssp-card-msg-sucesso__content"> 
5394                  <i class="fas fa-exclamation-circle"></i> 
5395                  <p>Obrigado por registrar seu interesse!</p> 
5396                  <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p> 
5397              </div> 
5398   
5399              <div> 
5400                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a> 
5401              </div> 
5402   
5403          </div> 
5404   
5405      </section> 
5406   
5407    <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none"> 
5408   
5409          <div class="ssp-card-msg-erro"> 
5410   
5411              <div class="ssp-card-msg-sucesso__content"> 
5412                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
5413                  <p>Houve um erro ao registrar seu interesse!</p> 
5414                  <p>Por favor, tente novamente!</p> 
5415              </div> 
5416   
5417              <div> 
5418                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a> 
5419              </div> 
5420   
5421          </div> 
5422   
5423      </section> 
5424       
5425      <!-- Aviso para curso de aprendizagem --> 
5426   
5427    <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;"> 
5428                     
5429        <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i> 
5430     
5431        <div class="ssp-bolsa-formulario__card-aviso-texto"> 
5432          <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p> 
5433        </div> 
5434     
5435     </div> 
5436 
5437     <!-- modal form de aprendizagem --> 
5438 
5439    <#if isAprendizagem> 
5440     
5441      <#assign formId = 48097883 /> 
5442      <!-- formInstanceId é variável de acordo com o ID do formulário --> 
5443      <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/> 
5444 
5445      <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal"> 
5446     
5447        <div class="container ssp_ct_form_programe"> 
5448 
5449          <button type="button" data-modal="close-form-modal"> 
5450            fechar 
5451            <i class="fas fa-times"></i> 
5452          </button> 
5453         
5454          <@liferay_portlet["runtime"] 
5455            portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet" 
5456            defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences) 
5457          />   
5458               
5459        </div>    
5460 
5461      </section> 
5462 
5463    </#if> 
5464   
5465    <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">                   
5466         <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>   
5467         <div class="ssp-bolsa-formulario__card-aviso-texto"><p>Para informações sobre preço do curso e matrícula, entre em contato a unidade.</p> 
5468         </div> 
5469 
5470       </div> 
5471          
5472         
5473         <!--modal forma pagto extensao-->   
5474        <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal"> 
5475         <div class="modal-extensao_content"> 
5476            <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i> 
5477            <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1> 
5478            <div class="row"> 
5479   
5480              <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
5481                Preço Padrão 
5482                <i class="fas fa-chevron-right custom-icon-right"></i> 
5483              </button> --> 
5484   
5485             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5486   
5487                <h2 class="modal-extensao_subtitle">Investimento</h2> 
5488   
5489                <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span> 
5490                <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span> 
5491                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
5492                   <i class="fas fa-barcode" aria-hidden="true"></i>   
5493                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
5494                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>         
5495                   <span class="modal-extensao_txtParcela">sem juros</span> 
5496                </div> 
5497                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
5498                   <i class="far fa-credit-card" aria-hidden="true"></i> 
5499                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
5500                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>         
5501                   <span class="modal-extensao_txtParcela">sem juros</span> 
5502                </div> 
5503                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
5504             </div> 
5505   
5506             <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> --> 
5507   
5508             <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
5509              Preço para Contribuintes,<br>alunos e ex-alunos* 
5510              <i class="fas fa-chevron-right custom-icon-right"></i> 
5511            </button> --> 
5512   
5513             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5514                <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2> 
5515                <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span> 
5516                <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span> 
5517                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
5518                   <i class="fas fa-barcode" aria-hidden="true"></i>   
5519                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
5520                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>         
5521                   <span class="modal-extensao_txtParcela">sem juros</span>     
5522                </div> 
5523                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
5524                   <i class="far fa-credit-card" aria-hidden="true"></i> 
5525                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
5526                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>         
5527                   <span class="modal-extensao_txtParcela">sem juros</span> 
5528                </div> 
5529                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
5530             </div> 
5531             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5532                <a target="_blank" href="#"> 
5533                <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button> 
5534                </a> 
5535             </div> 
5536             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5537                <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button> 
5538             </div> 
5539          </div> 
5540         </div> 
5541 
5542         <div class="modal-extensao_content modal-pergunta-aluno-ext d-none"> 
5543            
5544            <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i> 
5545            <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1> 
5546            <div class="row"> 
5547               <div class="col-6 text-right"> 
5548                   
5549                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button> 
5550           
5551	</div> 
5552               <div class="col-6 text-left"> 
5553                   
5554                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button> 
5555                   
5556               </div> 
5557            </div> 
5558            <div class="row d-none msg-alunoSim"> 
5559               <div class="col-12 text-center mt-10"> 
5560                  <i class="fas fa-check-circle modal-extensao-ico-check"></i> 
5561                  <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2> 
5562                  <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p> 
5563                  <p class="mb-0"> 
5564                     <a target="_blank" href="#"> 
5565                     <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button> 
5566                     </a> 
5567                  </p> 
5568                  <p class="mt-0"> 
5569                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
5570                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
5571                     </a> 
5572                  </p> 
5573               </div> 
5574            </div> 
5575            <div class="row d-none msg-alunoNao"> 
5576               <div class="col-12 text-center mt-10"> 
5577                  <i class="fas fa-percentage modal-extensao-ico-percent"></i> 
5578                  <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2> 
5579                  <p class="modal-extensao-aluno_txtcontent">Você não tem direito ao desconto de 20% neste curso. Mas você tem direito ao desconto de pontualidade (melhorar texto)</p> 
5580                  <p class="mb-0"> 
5581                     <a target="_blank" href="#"> 
5582                     <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button> 
5583                     </a> 
5584                  </p> 
5585                  <p class="mt-0"> 
5586                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
5587                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
5588                     </a> 
5589                  </p> 
5590               </div> 
5591            </div> 
5592         </div> 
5593      </section> 
5594     	 
5595	 
5596	<!-- Modal Descontos e Parcelamento EMED --> 
5597	<div id="modalPagtoEmed" class="ssp-modal"> 
5598	 
5599	        <div class="ssp-card-modal-forma-pagamento"> 
5600 
5601            <div class="ssp-card-modal-forma-pagamento__header"> 
5602               <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6> 
5603               <div class="ssp-modal-emed-btfechar"> 
5604               <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i> 
5605               <span>Fechar</span> 
5606              </div> 
5607            </div> 
5608 
5609            <div class="ssp-card-modal-forma-pagamento__body"> 
5610 
5611              <p class="ssp-modal-emed-info-valor-matricula"><span class="ssp-modal-emed-info-txt-matricula">1ª parcela de R$ <span class="precoParcelaEmedModal"></span> <span>+ <span class="numParcelaEmedModal"></span> mensalidades de R$ <span class="precoParcelaEmedModal"></span></span></p>          
5612 
5613               <p class="ssp-card-modal-forma-pagamento__valor-desconto ssp-modal-emed-valor-total-txt"> <span class="ssp-modal-emed-txtValor">Valor total:</span> <span class="precoVendaOferta ssp-modal-emed-valor-total">R$ 414,40</span> 
5614                <span class="ssp-card-modal-emed-ano">/ano</span></p> 
5615 
5616               <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito text-center" style="border-bottom: 0px;"><i class="fas fa-badge-percent"></i> <span class="txt-pague-vista">Pague à vista e</span> <span class="txt-ganhe-mais" style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
5617               <div class="ssp-card-modal-emed-lineou"><span>ou</span></div> 
5618 
5619               <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:14px;text-align: center;">Ganhe fôlego: parcele seu curso!</small> 
5620 
5621               <div class="ssp-card-modal-forma-pagamento__tipos"> 
5622                
5623               <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
5624                     <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i> 
5625                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5626                        <p><strong>Cartão de Crédito +</strong></p> 
5627                        <p><strong>Boleto Bancário</strong></p> 
5628                        <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> --> 
5629                        <p>1ª parcela no cartão</p> 
5630                        <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>                        
5631                     </div> 
5632                  </div> 
5633                
5634 
5635                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
5636                     <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
5637                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5638                        <p><strong>Cartão de Crédito</strong></p> 
5639                        <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p> 
5640                        <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p> 
5641                     </div> 
5642                  </div> 
5643 
5644                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4 ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" id="content_boleto_0"> 
5645                     <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
5646                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5647                        <p><strong>Boleto Bancário</strong></p> 
5648                        <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p> 
5649                     </div> 
5650                  </div> 
5651                   
5652                  <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-modal-emed-boxoito" data-info="data-para-matricula"><span class="ssp-card-modal-emed-valorObs obsspan"><i class="fas fa-exclamation-circle"></i>As vagas são limitadas e por ordem de chegada!</span>Garanta seu lugar! Matricule-se agora.</p> 
5653 
5654                  <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-card-modal-emed-boxDesconto" data-info="msg-20-desconto"><strong>E você ainda tem</strong><span style="color:#FC7834;font-weight:bold"> 20% desconto na mensalidade se:</span><br> 
5655                    - Estuda ou estudou no Senac<br>  
5656                    - É dependente de quem trabalha em empresa contribuinte do Senac<br>  
5657                    - Estuda ou estudou na rede pública de ensino 
5658                </p> 
5659 
5660               </div> 
5661 
5662            </div> 
5663             
5664 
5665            <a href="#a" class="btn btn-lg w-100 ssp-btn-emed__voltar-curso" style="margin-top: 20px;font-weight:600" id="" data-espaco-ex="true" data-unidade="" data-evento="" data-destino-compra="" data-index=""><span class="">Voltar para página do curso</span></a> 
5666 
5667             
5668             
5669    </div> 
5670  </div> 
5671 
5672  <#if isEMED> 
5673    <div id="modalAntesCompraEmed" class="ssp-modal"> 
5674      <div class="ssp-modal-local-realizacao"> 
5675        <div class="ssp-modal-local-realizacao__title-content"> 
5676          <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6> 
5677            <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i> 
5678        </div> 
5679        <div class="ssp-modal-local-realizacao__texto"> 
5680          <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none"> 
5681           
5682            Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/> 
5683           
5684          </p> 
5685          <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none"> 
5686           
5687            Saiba como funciona a inscrição para a lista de espera:<br/><br/> 
5688            - É válida somente para a <b>compra do curso</b><br/> 
5689            - Não garante vaga para o estudante<br/> 
5690            - É válida apenas para o curso, horário e escola selecionados<br/> 
5691            - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/> 
5692           
5693          </p> 
5694          <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none"> 
5695                       
5696            - Essa inscrição é para uma lista de espera de transferência para 2º ou 3º ano do Ensino Médio Técnico, por isso, ao realizá-la não garantimos a vaga<br/><br/> 
5697            - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/> 
5698            - Se a turma escolhida tiver vagas, você receberá um e-mail com orientações sobre a entrega de documentos e as formas de pagamento para efetivar a transferência 
5699                       
5700          </p> 
5701          <div class="btn ssp-modal-local-realizacao__btn-content"> 
5702            <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button> 
5703            <a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close" href="#a">Voltar para o curso</a> 
5704          </div> 
5705        </div> 
5706      </div> 
5707    </div> 
5708         
5709  </#if> 
5710 
5711   
5712   
5713           
5714   <script> 
5715     let showedFilters = false 
5716     var groupId = themeDisplay.getScopeGroupId(); 
5717 
5718   var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}'; 
5719    
5720   var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId 
5721 
5722   var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}'; 
5723   var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}'; 
5724   var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}'; 
5725   var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}'; 
5726   var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/'; 
5727   var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/'; 
5728   var cntSelectUnidades = 1; 
5729   var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html'; 
5730   var urlGetServerT = '/o/senac-content-services/getServerTime';  
5731   var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}'; 
5732   var todayG = ''; 
5733   var codigoFTCursoAprendizagem = 18984; 
5734   var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId(); 
5735   var isAoVivo = 0; 
5736   var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo'; 
5737   var ofertaUnidadeMap = new Map(); 
5738   var ultimaUnidade = 0; 
5739   var regIndex = new RegExp('\{index\}', 'g'); 
5740   var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}'; 
5741   var carregouUltimaOferta = false; 
5742   var ofertasMap = new Map(); 
5743   var codUnidadeSenacAoVivo = '108'; 
5744   var ofertasComBolsa = false; 
5745 
5746    //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546 
5747    function getServiceEnvironmentHost(){ 
5748      if(!isAmbienteTeste()) 
5749        return window.location.origin 
5750      else 
5751        return 'https://gesportal.sp.senac.br' 
5752
5753 
5754    var hostBolsa = getServiceEnvironmentHost() 
5755 
5756   // Montar object push - google tag manager - 1 
5757   let itensEcommerce = null;  
5758   let ofertaSelecionada = null; 
5759 
5760   const today = new Date; 
5761    
5762   //categoryId -> cod unidade 
5763   var mapUnidadesIds = new Map(); 
5764   var objsTela = { 
5765     unidades: [], 
5766     unidadesRegistroInteresse: [], 
5767     categoriesIds:[], 
5768     ofertasAoVivoTodasUnidades: [], 
5769     primeiroChange: true 
5770   }; 
5771   var startOfertaParam = 0; 
5772   var endOfertaParam = 25; 
5773    
5774   var ehCursoTrampolim = false; 
5775    
5776   const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD'; 
5777   
5778   var textoFormatoHibrido = ""; 
5779   var temTextoParaFormatoHibrido = false; 
5780   
5781   //Validar se o campo textoFormatoHibrido existe e se não está vazio 
5782   if(isHibrido){ 
5783                textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val(); 
5784                if(typeof textoFormatoHibrido !== 'undefined'){ 
5785                           if (textoFormatoHibrido.trim() !== '' ) { 
5786                                temTextoParaFormatoHibrido = true; 
5787                                textoFormatoHibrido += '<br>'; 
5788
5789
5790
5791    
5792   const HOST = window.location.origin; 
5793   const URLGeral = window.location.href; 
5794    
5795   //EMED 
5796   const anoTurmaEmed = '2026'; 
5797 
5798   const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); } 
5799    
5800   const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1); 
5801 
5802   const statusEmed = Object.freeze({ 
5803		NAO_ENCONTRADA: 0, 
5804    INSCRICAO: 1, 
5805		ESPERA: 2, 
5806		ESGOTADO: 3 
5807	}); 
5808    
5809   let unidadesToURL = [] 
5810    
5811   const localLivreOnline = function(textoLocal){  
5812     textoLocal = textoLocal || '' 
5813     textoLocal = textoLocal.replaceAll('online', 'on-line') 
5814 
5815     const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams'; 
5816      
5817     return textoLocal.toUpperCase().includes(textoOnline.toUpperCase()); 
5818
5819    
5820   const linkBolsa = function(oferta){ 
5821	    
5822      let tiposCurso = new Map(); 
5823      tiposCurso.set('livre', 'L'); 
5824      tiposCurso.set('tecnico', 'T'); 
5825      tiposCurso.set('aprendizagem', 'A'); 
5826      let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || ''; 
5827  
5828      // verifica o campo destinoBolsa da oferta - 9546 
5829      var destinoBolsa = "" 
5830      if(oferta.destinoBolsa){ 
5831        destinoBolsa = parseInt(oferta.destinoBolsa,10)  
5832
5833      	 
5834      return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+ 
5835	      $('[name="codigoFT"]').val()+ 
5836	      '&cod_evento='+ 
5837	      oferta.codigoOferta+ 
5838	      '&cod_u='+ 
5839	      codigoUnidade+ 
5840	      '&nvg='+ 
5841	      oferta.qtdeTotalVagasPSG+ 
5842	      '&type='+ 
5843	      letraTipoCurso+ 
5844	      '&sel_unit=&ft=y'+ 
5845	      (destinoBolsa ? '&destino='+destinoBolsa : '');      
5846
5847    
5848    
5849   $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){ 
5850      
5851     var classAtivo = 'btn--filtro-ativo'; 
5852      
5853     if(!$(this).hasClass(classAtivo)){ 
5854      
5855       $(this).siblings().removeClass(classAtivo); 
5856        
5857       $(this).addClass(classAtivo); 
5858 
5859       const $cardTransferencias = $('.card-transferencias-emed'); 
5860        
5861       if($(this).val() == '0'){ 
5862        hideCardSemTurmas(true); 
5863        $('.ssp-slick-ofertas-emed').empty(); 
5864        if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none'); 
5865        $('.prev-mobile, .next-mobile').addClass('d-none'); 
5866        $cardTransferencias.removeClass('d-none'); 
5867       } else{ 
5868        if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none'); 
5869        $('.ssp-slick-ofertas-emed').removeClass('d-none'); 
5870        populaOfertas(objsTela.ofertas); 
5871
5872        
5873
5874      
5875   }); 
5876    
5877   //Cronometro 
5878	var hidden, visibilityChange; 
5879	var restartTimeout = null; 
5880	var interval01, interval15; 
5881	 
5882	if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support 
5883		hidden = "hidden"; 
5884		visibilityChange = "visibilitychange"; 
5885	} else if (typeof document.msHidden !== "undefined") { 
5886		hidden = "msHidden"; 
5887		visibilityChange = "msvisibilitychange"; 
5888	} else if (typeof document.webkitHidden !== "undefined") { 
5889		hidden = "webkitHidden"; 
5890		visibilityChange = "webkitvisibilitychange"; 
5891
5892	 
5893	// Verifica suporte a Visibility API 
5894	if (typeof document.addEventListener === "undefined" || hidden === undefined) { 
5895		console.log("Navegador incompativel com page visibility api"); 
5896	} else { 
5897		// Evento para quando a visibilidade da pagina mudar 
5898		document.addEventListener(visibilityChange, handleVisibilityChange, false); 
5899
5900    
5901   $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() { 
5902   
5903       $(this).toggleClass("active").next().slideToggle(); 
5904   
5905       $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300); 
5906   
5907       $(this).siblings().removeClass("active"); 
5908   }); 
5909   
5910  function loadUnidadesRegistroInteresse(urlCursoInfo) { 
5911    if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length) 
5912      return 
5913 
5914    let urlUnidades = new URL(window.location.origin + urlCursoInfo) 
5915    let paramsUnidades = new URLSearchParams(urlUnidades.search) 
5916    paramsUnidades.delete('inscricaoAberta') 
5917    paramsUnidades.delete('bolsaAberta') 
5918    paramsUnidades.delete('buscarUnidadesComOferta') 
5919    urlUnidades.search = '?' + paramsUnidades.toString() 
5920    urlUnidades = urlUnidades.href 
5921 
5922    $.ajax({ 
5923      url: urlUnidades, 
5924      method:'get', 
5925      async: false 
5926    }).done(function(data){ 
5927      if(data.length > 0){ 
5928        const cursoInfo = JSON.parse(data); 
5929        const unidadesOfertantes = cursoInfo.unidadesOfertantes; 
5930         
5931        $.each(unidadesOfertantes, function(k,item){ 
5932          var unidade = {}; 
5933          unidade['categoryId'] = item['categoryId']; 
5934          unidade['codigoUnidade'] = item['codigoUnidade']; 
5935          unidade['nome'] = item['nomeUnidade']; 
5936          unidade['enderecoUnidade'] =item['enderecoUnidade']; 
5937          unidade['numero'] =item['numEnderecoUnidade']; 
5938          unidade['complemento'] = item['complementoEnderecoUnidade']; 
5939          unidade['bairro'] = item['bairroUnidade']; 
5940          unidade['googlemapsUnidade'] = item['googlemapsUnidade']; 
5941          unidade['friendlyURL'] = item['friendlyURL']; 
5942          unidade['selecionado'] = false; 
5943          unidade['selectSelecionado'] = ""; 
5944          unidade['ofertas'] = []; 
5945               
5946          if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length) 
5947            objsTela.unidadesRegistroInteresse.push(unidade) 
5948          }); 
5949
5950    }); 
5951
5952   
5953   function loadUnidades(showOptions, unidadeValue){ 
5954     //Busca as unidades do curso 
5955     let buscarUnidadesComOferta = false; 
5956      
5957     if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))) 
5958    	 buscarUnidadesComOferta = true; 
5959      
5960    const urlCursoInfo = urlSearchCursoInfo 
5961      .replace('\{groupId\}', groupId) 
5962      .replace('\{cursosInfo\}', $('[name="articleId"]').val()) 
5963      .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked')) 
5964      .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked')) 
5965      .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta); 
5966 
5967      loadUnidadesRegistroInteresse(urlCursoInfo) 
5968 
5969      $.ajax({ 
5970          url:urlCursoInfo, 
5971          method:'get', 
5972          async: false, 
5973        beforeSend: function () { 
5974          loading('.oferta-slick-area'); 
5975
5976        }).done( 
5977          function(data){ 
5978             
5979            if(data.length > 0){ 
5980               
5981              const cursoInfo = JSON.parse(data); 
5982                                
5983              const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes; 
5984               
5985              if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0)) 
5986                $('.ssp-container-selecione-unidade').removeClass('d-none') 
5987 
5988              objsTela.unidades = [] 
5989              mapUnidadesIds = new Map(); 
5990               
5991              $.each(unidades, function(k,item){ 
5992                   
5993                  var unidade = cloneObj(item) 
5994                  unidade['nome'] = item['nomeUnidade']; 
5995                  unidade['numero'] =item['numEnderecoUnidade']; 
5996                  unidade['complemento'] = item['complementoEnderecoUnidade']; 
5997                  unidade['bairro'] = item['bairroUnidade']; 
5998                  unidade['ofertas'] = []; 
5999                       
6000                    objsTela.unidades.push(unidade); 
6001                       
6002                      mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']); 
6003 
6004                    objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade)) 
6005                }); 
6006                       
6007                             
6008              populaSelectUnidades(undefined, showOptions, unidadeValue);  
6009    
6010
6011      }); 
6012       
6013
6014   
6015function getOfertaObjectFromJson(ofertaJSON,index){ 
6016   
6017 
6018  var oferta =  {}; 
6019        var xml =  $($.parseXML(ofertaJSON.content)); 
6020          oferta['ordenar'] = paramOrdem(xml); 
6021          oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim(); 
6022          var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-'); 
6023          var dataFim =xml.find('[name="dataFimOferta"]').text().split('-'); 
6024          oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim(); 
6025          oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim(); 
6026          oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text(); 
6027          oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim(); 
6028          var dias = []; 
6029          oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim(); 
6030          xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){ 
6031            dias.push($(dia).text()); 
6032          }); 
6033          oferta['diasDaSemanaOferta'] = dias; 
6034          oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim(); 
6035          oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim(); 
6036          oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim(); 
6037          oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim(); 
6038           
6039          oferta['textoCartoesAceitos'] =  pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6040          oferta['numParcelaCartoes'] =  pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6041          oferta['precoParcelaCartoes'] =  pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6042          oferta['numParcelaBoleto'] =  pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
6043          oferta['precoParcelaBoleto'] =  pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
6044           
6045          oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim(); 
6046          oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim(); 
6047          oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim(); 
6048          oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim(); 
6049          oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim(); 
6050          oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim(); 
6051          oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim(); 
6052          oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim(); 
6053          oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim(); 
6054          oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim(); 
6055          oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim(); 
6056          oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim(); 
6057          oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim(); 
6058          oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim(); 
6059          oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim(); 
6060          oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim(); 
6061          oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim(); 
6062          oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim(); 
6063          oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim(); 
6064          oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim(); 
6065          oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim(); 
6066          oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim(); 
6067          oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim(); 
6068          oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim(); 
6069          oferta['etapa'] = xml.find('[name="etapa"]').text().trim(); 
6070          oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();  
6071          //adicao do destinoBolsa na oferta - 9546 - 11/07/2022 
6072          oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim(); 
6073 
6074          	// 18/07/2025 - Removido o  dataAberturaBolsaOferta recebendo o dataAberturaMatricula  
6075          	// devido a mudança de regra que recebemos da área 
6076          	           
6077         return oferta;  
6078
6079   
6080  const getStatusEmed = (oferta) => { 
6081 
6082	    const urlStatusEsperaEmed = () => { 
6083	  		let url = (isAmbienteTeste()) ?  
6084		  		'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/' 
6085			    : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/'; 
6086	  		 
6087  	  		return url + oferta.codigoOferta; 
6088
6089  	  	 
6090  	  const callTl = async () => { 
6091	  		if(getCookie('tl') == null){ 
6092	  			return await $.ajax({ 
6093	  				url: '/o/senac-content-services/geraTokenServicosSenac', 
6094	  				method: 'GET' 
6095	  			}); 
6096
6097	  		return getCookie('tl'); 
6098
6099 
6100      const callListaEspera = async () => { 
6101  	    	var tl = ''; 
6102	    	  try{ 
6103  	    		tl = await callTl(); 
6104  	    		if(getCookie('tl') == null){ 
6105  	    			tl = JSON.parse(tl).token; 
6106  	    			writeCookie('tl', tl, 6, ''); 
6107
6108  	    	}catch(err){ 
6109  	    		console.error(err); 
6110  	    		return {}; 
6111
6112  	    	 
6113  	    	return $.ajax({ 
6114              url: urlStatusEsperaEmed(), 
6115              method: 'GET', 
6116  	        	beforeSend: function (xhr) { 
6117  	        		xhr.setRequestHeader("Authorization", tl); 
6118
6119  			  }) 
6120
6121 
6122      return new Promise(async function (resolve, reject) { 
6123        const resp = await callListaEspera(); 
6124        if(typeof resp !== 'object') resp = JSON.parse(resp); 
6125        let status = resp.STATUS; 
6126        resolve(status); 
6127      }); 
6128	  	 
6129
6130   
6131 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){ 
6132       
6133  if(categoryIds && categoryIds.length) { 
6134    var params = new URLSearchParams(); 
6135    params.set('codigoFTOferta',codigoFT) 
6136    params.set('dataEfetivaOferta',dataEfetivaOferta) 
6137    params.set('categoryIds',categoryIds) 
6138    params.set('start',startOfertaParam) 
6139    params.set('end',endOfertaParam) 
6140    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
6141    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
6142    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
6143 
6144    if($('#chkBolsa').prop('checked')){ 
6145    	params.set('considerarDataBolsaFutura', true) 
6146
6147    const url = urlSearchOferta + '?' + params.toString() 
6148       
6149    $.ajax({ 
6150      url:url, 
6151      method:'get', 
6152      dataType:'json', 
6153      async: false 
6154    }).done( 
6155      function(data){ 
6156         
6157        if(data.length > 0){ 
6158         $('#ssp-alternadores').show() 
6159         showedFilters = true 
6160   
6161         objsTela.ofertasAoVivoTodasUnidades = [] 
6162           
6163          data.forEach(function(ofertaJSON,index){ 
6164   
6165            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
6166             
6167            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
6168            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));                
6169            objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
6170   
6171          }); 
6172        } else { 
6173         loadAlternadores(data) 
6174
6175   
6176        populaOfertas(objsTela.ofertasAoVivoTodasUnidades); 
6177        addEventBolsa() 
6178
6179    ).fail(function(e) { 
6180      console.error(e) 
6181      populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []); 
6182    }) 
6183  } else { 
6184    loadAlternadores([]) 
6185    populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []) 
6186
6187 
6188  if(isAoVivo) { 
6189     if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length) 
6190       hideCardSemTurmas(true) 
6191     else 
6192       hideCardSemTurmas(false) 
6193
6194
6195    
6196  function mudouToggleOferta(ofertas) { 
6197    const oferta = ofertas && ofertas[0] 
6198    if(!oferta) 
6199      return true 
6200 
6201    const selecaoInscricao = $('#chkInscricao').prop('checked') 
6202    const selecaoBolsa = $('#chkBolsa').prop('checked') 
6203 
6204    return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa 
6205
6206 
6207  function loadAlternadores(ofertas) { 
6208    if(showedFilters) { 
6209      $('#ssp-alternadores').show() 
6210      return 
6211
6212 
6213    if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) { 
6214      if(isAoVivo) { 
6215        if(ofertas && ofertas.length) 
6216          $('#ssp-alternadores').show() 
6217        else { 
6218          if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
6219            $('#ssp-alternadores').hide() 
6220          else 
6221            $('#ssp-alternadores').show() 
6222
6223      } else { 
6224        if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
6225          $('#ssp-alternadores').hide() 
6226        else 
6227          $('#ssp-alternadores').show() 
6228
6229    } else 
6230      $('#ssp-alternadores').show() 
6231 
6232    showedFilters = showedFilters || $('#ssp-alternadores').is(":visible") 
6233
6234 
6235  function getOfertas(codigoFT, dataEfetivaOferta, categoryId){ 
6236       
6237    var indiceUnidade = -1; 
6238    const selecaoInscricao = $('#chkInscricao').prop('checked') 
6239    const selecaoBolsa = $('#chkBolsa').prop('checked') 
6240      
6241     for(var i = 0; i < objsTela.unidades.length; i++) 
6242         if(objsTela.unidades[i].categoryId == categoryId) 
6243           indiceUnidade = i; 
6244      
6245    ultimaUnidade = indiceUnidade; 
6246           
6247     if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){ 
6248       objsTela.unidades[indiceUnidade]['ofertas'] = [] 
6249        
6250        var params = new URLSearchParams(); 
6251        params.set('codigoFTOferta',codigoFT) 
6252        params.set('dataEfetivaOferta',dataEfetivaOferta) 
6253        params.set('categoryIds',categoryId) 
6254        params.set('start',startOfertaParam) 
6255        params.set('end',endOfertaParam) 
6256        params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
6257        params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
6258        params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
6259 
6260        if($('#chkBolsa').prop('checked')){ 
6261        	params.set('considerarDataBolsaFutura', true) 
6262
6263         
6264        const url = urlSearchOferta + '?' + params.toString() 
6265   
6266       $.ajax({ 
6267         url:url, 
6268         method:'get', 
6269         dataType:'json', 
6270         async: false 
6271       }).done( 
6272         function(data){ 
6273            
6274           if(data.length > 0){ 
6275             $('#ssp-alternadores').show() 
6276             showedFilters = true 
6277              
6278             $('.ssp-container-selecione-unidade').show(); 
6279             
6280             data.forEach(function(ofertaJSON,index){ 
6281   
6282               var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
6283                
6284               //Preenche as ofertas da unidade              
6285               objsTela.unidades[indiceUnidade]['ofertas'].push(oferta); 
6286               objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => { 
6287                 o.selecaoInscricao = selecaoInscricao 
6288                 o.selecaoBolsa = selecaoBolsa 
6289               }) 
6290   
6291             }); 
6292           } else { 
6293              loadAlternadores() 
6294
6295           objsTela.categoriesIds.push(categoryId); 
6296           populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
6297           addEventBolsa() 
6298
6299
6300   
6301       //Se estiver na cache, valida as ofertas 
6302     }else{ 
6303        
6304       populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
6305        
6306
6307
6308       
6309   function populaSelectUnidades(unidades, showOptions, unidadeValue){       
6310    var unidadePreSelecionada = false; 
6311    var categoryIdUnidadePreSelecionada = ''; 
6312     
6313    //Oredenacao 
6314    objsTela.unidades.sort(function (a, b) { 
6315    	return ordenar(a, b, 'nome'); 
6316    }); 
6317     
6318    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
6319    	return ordenar(a, b, 'nome'); 
6320      }); 
6321     
6322    //console.log(objsTela.unidades); 
6323     
6324    $.each(objsTela.unidades, function(k,item){ 
6325       
6326      if(getURLData().includes('/'+item.friendlyURL+'/')){ 
6327        unidadePreSelecionada= true; 
6328        categoryIdUnidadePreSelecionada = item['categoryId']; 
6329
6330    }); 
6331     
6332    //console.log('Unidade Pre '+unidadePreSelecionada); 
6333     
6334    if(objsTela.unidades.length == 0){ 
6335      if(!showOptions) 
6336        $('.ssp-container-selecione-unidade').addClass('d-none'); 
6337      $('.oferta-slick-area').empty(); 
6338      $('.prev-mobile').addClass('d-none'); 
6339      $('.next-mobile').addClass('d-none'); 
6340      //EMED remove msg registro interesse 
6341      //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none'); 
6342
6343     
6344    if(isAoVivo){ 
6345       
6346        const codigoFT = $('[name="codigoFT"]').val(); 
6347    	const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
6348 
6349    	var unidadesCategoryAll = ''; 
6350     
6351    	$.each(objsTela.unidades, function(k,unidade){ 
6352      		unidadesCategoryAll += unidade['categoryId']+','; 
6353        }); 
6354       
6355    //tirando ultima virgula 
6356    unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1); 
6357     
6358    getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);            
6359       
6360    }else{ 
6361      $('#unidades-ofertas').empty() 
6362 
6363      if(objsTela.unidades && objsTela.unidades.length){  
6364        if(isEmed) 
6365          $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>')) 
6366        else 
6367          $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>')) 
6368 
6369      } else 
6370        $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>')) 
6371 
6372      let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades) 
6373       
6374      //Dispara o evento para primeira unidade ou pela friendlyURl da unidade 
6375      if(unidadeValue) { 
6376        $('#unidades-ofertas').val(unidadeValue); 
6377        $('#unidades-ofertas').change(); 
6378      } else if(unidadeFounded){	             
6379        $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']); 
6380        $('#unidades-ofertas').change(); 
6381      } else if(!unidadePreSelecionada) { 
6382        $('#unidades-ofertas').change(); 
6383
6384       
6385      $('.ssp-card-registro-interesse__select.unidades').empty() 
6386      $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>') 
6387      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
6388         
6389        $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
6390      }); 
6391
6392     
6393
6394	 
6395   function excecaoCursoGratuito(oferta){ 
6396	  return $('[name="modalidadeName"]').val() == 'acoes-educ.-curta-duracao' && $('[name="tipoCurso"]').val() == 'livre' && (strToFloat(oferta.precoVendaOferta) == 0); 
6397
6398 
6399   
6400   function mudarUnidade(ev){      
6401     startOfertaParam = 0; 
6402     endOfertaParam = 25; 
6403     carregouUltimaOferta = false; 
6404 
6405     var elem = $(ev.target); 
6406     var unidades = objsTela.unidades; 
6407      
6408     //verifica se selecionou alguma unidade 
6409     if(!elem.val()){ 
6410       $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none'); 
6411 
6412       if(isEmed) 
6413        $('#ssp-section-response').addClass('d-none') 
6414 
6415        hideCardSemTurmas($('#unidades-ofertas option').length > 1)        
6416 
6417        elem.val('') 
6418        habilitarRegistroInteresse(false) 
6419        //Zera variável que controla existência de ofertas com bolsa 
6420        ofertasComBolsa = false; 
6421        controlaPaginaBolsa(); 
6422        
6423       return; 
6424
6425      
6426     $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none'); 
6427     hideCardSemTurmas(true) 
6428     if(isEmed){ 
6429        $('.ssp-ofertas-emed__section').removeClass('d-none'); 
6430        $('#ssp-section-response').removeClass('d-none') 
6431        $('.ssp-card-oferta-curso__section-title').addClass('d-none'); 
6432        $('.prev-mobile, .next-mobile').addClass('d-none'); 
6433        var nomeUnidade = $('#unidades-ofertas option:selected').text(); 
6434        let tamScreen = $(window).width(); 
6435 
6436        if(tamScreen < 1024) 
6437	    	  $('#titulo-emed').text('Turmas ' + anoTurmaEmed ); 
6438        else 
6439        	$('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade); 
6440 
6441
6442      
6443     const codigoFT = $('[name="codigoFT"]').val(); 
6444     const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
6445      
6446     //colocamos dentro do option categoryId@codUnidade 
6447     splitted = elem.val().split("@"); 
6448     var categoryIdUnidade = splitted[0]; 
6449     var codUnidade = splitted[1]; 
6450           
6451     for(var i = 0; unidades.length > i ; i++){ 
6452        
6453       if(unidades[i].categoryId == categoryIdUnidade){ 
6454   
6455           var unidade = unidades[i]; 
6456            
6457           //Exibe o endereco da unidade 
6458           const urlBuscaUnidade = urlUnidadeInfoDetalhe 
6459         .replace('\{companyId\}',themeDisplay.getCompanyId()) 
6460         .replace('\{codigoUnidade\}', unidade.codigoUnidade); 
6461            
6462           $.ajax({ 
6463                 url :  urlBuscaUnidade, 
6464                 type : 'get', 
6465                 dataType: 'json', 
6466                 success: function( unidadeInfo ) { 
6467                   if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){ 
6468                       
6469                       var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', '); 
6470                         endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - '); 
6471                         endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - '); 
6472                 
6473                         $('.ssp-ofertas__endereco-unidade').text(endereco); 
6474                         $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade); 
6475
6476                 }, 
6477                 error: function(data){ 
6478                   $('.ssp-ofertas__endereco-unidade').text(''); 
6479                   $('.ssp-ofertas__endereco-unidade').attr('href','#a'); 
6480                     console.log('Unidade não encontrada'); 
6481
6482             }) 
6483           
6484          getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId); 
6485            
6486          habilitarRegistroInteresse(!!(unidades && unidades.length)); 
6487            
6488
6489     }   
6490
6491     
6492   function pegarTextoCartoesAceitos(campo){ 
6493      indice = campo.indexOf(' em até '); 
6494      inicio = 0; 
6495      fim = indice; 
6496       
6497      return campo.substring(inicio, fim); 
6498
6499    
6500   function pegaNumParcela(campo){ 
6501    
6502      indice = campo.indexOf('até '); 
6503      inicio = indice + 4; 
6504      fim = indice +  6; 
6505       
6506      return campo.substring(inicio, fim); 
6507       
6508
6509    
6510   function pegaValorParcela(campo){ 
6511      
6512      indice = campo.indexOf('R$'); 
6513      inicio = indice+2;     
6514      valorAmericano = campo.substring(inicio) 
6515       
6516      return formataValor(valorAmericano); 
6517       
6518
6519    
6520   function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){ 
6521	    
6522    var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta); 
6523    diasSemanaHTML = ""; 
6524	      
6525    for(var diaDaOferta of retornoDiasHorarios){ 
6526          diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias); 
6527          diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario) 
6528		      }    
6529		       
6530    var ofertaHTML = ""; 
6531		 
6532		if(isEmed){ 
6533			 
6534      ofertaHTML = htmlSlickAreaEmed(oferta); 
6535			$('[name="codUnidadeSelecionada"]').val(codigoUnidade); 
6536			 
6537			if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML) 
6538			else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML); 
6539		}else{ 
6540 
6541 
6542      ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) 
6543       
6544      if(!posLoad) 
6545        $('.oferta-slick-area').append(ofertaHTML); 
6546      else 
6547        $('.oferta-slick-area').slick('slickAdd', ofertaHTML); 
6548       
6549      ajustaTextoDiasHorarioOferta(oferta.codigoOferta); 
6550 
6551
6552 
6553    if(turmasIniciadas(oferta.dataInicio)) 
6554    	$("#aviso-turma-iniciada-"+index).show(); 
6555 
6556	//remove os botões/itens de compra/bolsa caso seja preciso 
6557    $('.oferta-slick-area').find('.d-none-btn').remove(); 
6558
6559 
6560 
6561  	//RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS 
6562	//@horariosAllOferta String com os dias da semana em sigla seguido do horario da aula e separados por virgula EX: "Qui 12h às 13, Sex 12h às 13h"  
6563	function processaDiasHorariosOferta(horariosAllOferta){ 
6564 
6565   		var dias = horariosAllOferta.trim().split(','); 
6566   		let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}] 
6567 
6568   		var arrayDia = []; 
6569   	   	if(dias.length >= 1){ 
6570   		    for(var k=0; dias.length > k; k++){ 
6571   		 		var diasSplit = dias[k].trim().split(' '); 
6572   	          	var diasSemana = diasSplit.shift() 
6573   		      	var ultimaPos = diasSplit.length-1; 
6574   	          	var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]  
6575   	         	arrayDia.push({horasStr,diasSemana}); 
6576
6577
6578 
6579   		arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana'); 
6580   		arrayDia = orderByArray(arrayDia,arrayDiasSemana); 
6581   		 
6582   		var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana); 
6583			return ret; 
6584
6585 
6586   //cria um array de objetos Agrupando de acordo ao campo informado como chave.  
6587   //@arr = Array multidimensional que tenha os campos key e valueAdd 
6588   //@key = campo que será chave nesse array 
6589   //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key 
6590   const groupByArray = (arr, key,valueAdd) => { 
6591   		const initialValue = []; 
6592   		const retornoValue = []; 
6593   		arr.forEach((acc, cval) => { 
6594   			const myAttribute = cval[key]; 
6595   			acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]]; 
6596   			return acc; 
6597     		}, initialValue); 
6598   	return retornoValue; 
6599   }; 
6600 
6601 
6602   //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.  
6603   //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados 
6604   //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua 
6605   const orderByArray = (arrayOrdena, ordem) => { 
6606 
6607   	let diasSem = []; 
6608   	const arrayOrdenado = []; 
6609   	let controle; 
6610   	 
6611   	//percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado 
6612   	for(let campo of ordem){	 
6613   		Object.entries(arrayOrdena).forEach(([key, value]) => { 
6614   			for(let diaOferta of value){ 
6615   				if(diaOferta===Object.keys(campo)[0]){ 
6616   					arrayOrdenado[key]=arrayOrdena[key]; 
6617
6618
6619   	    }) 
6620
6621   	return arrayOrdenado; 
6622   }; 
6623 
6624   //retorna o valor de um objeto dentro de um array 
6625   //@objetoBusca = array de objetos que sera buscado o valor 
6626   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
6627   function findValueInObject(objetoBusca, keyBusca){ 
6628   	var retorno = ""; 
6629   	Object.entries(objetoBusca).forEach(([horario, dias]) => { 
6630   		Object.entries(dias).forEach(([key,val]) => { 
6631   			if(key.trim()==keyBusca.trim()){ 
6632   				retorno = val; 
6633
6634   		}); 
6635   	}); 
6636   	return retorno; 
6637
6638 
6639   //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.  
6640   //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex'] 
6641   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
6642   function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){ 
6643   	 
6644   	let arrayValidador = []; 
6645   	 
6646   	//cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom] 
6647   	for(let diaOferta of arrayComDiasDaSemana){ 
6648   		for(let i = 0; i < arrayDiasDaSemana.length; i++){ 
6649   			if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){ 
6650   				arrayValidador[i] = true; 
6651   			}				 
6652
6653
6654 
6655   	let keyCompair = 99; 
6656   	var sequencial = true; 
6657 
6658   	//verifica quais posições foram criadas no array, e se os valores delas estão em sequencia. 
6659   	for(let keyValidator of Object.keys(arrayValidador)){ 
6660   		keyValidator = parseInt(keyValidator); 
6661   		if(keyCompair!==99){ 
6662   			if(keyValidator===keyCompair){ 
6663   				sequencial = true; 
6664   			}else{ 
6665   				sequencial = false; 
6666   				break; 
6667
6668
6669   		keyCompair = keyValidator+1; 
6670
6671   	return sequencial; 
6672
6673 
6674 
6675   //Exibe as informações de dia e horario de oferta de acordo a sua estrutura 
6676   //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta  
6677   //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula  Ex: Segunda, terça, sexta e domingo 
6678   //@arrayAgrupadoEOrdenado = array de objetos que sera exibido 
6679   //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta) 
6680   function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){ 
6681 
6682   	var stringAux = "";		 
6683   	var listRetorno = []; 
6684   		 
6685   	Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {		 
6686 
6687   		var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana); 
6688   		var stringAux = "";		 
6689   		var diaOferta = {}; 
6690 
6691   		if(sequencial){ 
6692   			switch (value.length) { 
6693       			case 1: 
6694   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": "; 
6695   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6696   					diaOferta.horario = key; 
6697   				break; 
6698   				case 2: 
6699   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6700   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6701   					diaOferta.horario = key; 
6702   				break; 
6703   				default: 
6704          				stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6705   					 
6706   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6707   					diaOferta.horario = key; 
6708   				break; 
6709   			}	 
6710   		}else{ 
6711   			switch (value.length) { 
6712       			case 2: 
6713   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6714   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6715   					diaOferta.horario = key; 
6716   				break; 
6717   				default: 
6718   					var ct = 0; 
6719   					var stringDias=""; 
6720   					for(let v of value){ 
6721       					ct++; 
6722   						ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", "; 
6723
6724          				stringAux = stringAux+stringDias+": "; 
6725   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6726   					diaOferta.horario = key; 
6727   				break; 
6728
6729
6730 
6731   		listRetorno.push(diaOferta); 
6732   	}) 
6733   	return listRetorno; 
6734   }; 
6735 
6736 
6737   //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string 
6738   function ajustaTextoDiasHorarioOferta(codOferta){ 
6739 
6740	   var classOferta = ".codigoOferta_"+codOferta;  
6741	   let oferta = $(classOferta); 
6742 
6743	   let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]'); 
6744 
6745	   let widthDevice = window.screen.width; 
6746	   let tamLimDesktop = 185; 
6747	 
6748	   if(widthDevice <= 1024){ 
6749	       tamLimDesktop = 180; 
6750
6751	  
6752	   ofertaDiasSemana.each(function(index){ 
6753 
6754		   		   	 
6755	       let widthDiaSemana = $(this).width(); 
6756	 
6757	       let contentDiaHora = $(this).parent().parent().parent(); 
6758	   	 
6759	       if(!(widthDiaSemana <= tamLimDesktop)){ 
6760			   $(this).css("display","block"); 
6761
6762	 
6763		   if(ofertaDiasSemana.length == parseInt(index+1)){ 
6764		       contentDiaHora.css("opacity","1"); 
6765
6766 
6767   		})  
6768
6769 
6770   function getObjBtnComprar(oferta){ 
6771      let obj = {}; 
6772      obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false'; 
6773      if($('#manutencao-compra').val()){ 
6774        obj['classeBotao'] = 'disabled manutencao'; 
6775        obj['textoBotao'] = $('#manutencao-compra').val(); 
6776      }  
6777      else{ 
6778        obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn'; 
6779        obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra'; 
6780
6781      return obj; 
6782
6783    
6784     function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){ 
6785        
6786       var formaPagtoObj = {}; 
6787	    
6788	     var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g'); 
6789         var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g') 
6790 
6791       formaPagtoObj['regIndex']  = index; 
6792       formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta); 
6793       formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos; 
6794 
6795       formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes; 
6796       formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes; 
6797       formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto; 
6798       formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto; 
6799       formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta); 
6800        
6801       formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2)); 
6802       formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false'; 
6803       formaPagtoObj['dataUnidade'] = codigoUnidade; 
6804       formaPagtoObj['dataEvento'] = oferta.codigoOferta; 
6805       formaPagtoObj['destinoCompra '] = oferta.destinoCompra; 
6806        
6807       //EMED nao restringe o botao 
6808       if(isEmed){ 
6809          let manutencao = $('#manutencao-compra').val();  
6810          formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR'; 
6811           formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : ''; 
6812       }else{ 
6813          let btnComprar = getObjBtnComprar(oferta);  
6814          formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao; 
6815           formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao; 
6816
6817 
6818       formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta; 
6819       formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta); 
6820        
6821       //valores extensao - como o modal de livre e tec nao tem as classes especificas de extensao, nao há problema criar os valores abaixo para qualquer tipo de curso  
6822       formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta); 
6823       var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2); 
6824       formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao); 
6825       formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao); 
6826       formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2)); 
6827       formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2)); 
6828       formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2)); 
6829          
6830       return formaPagtoObj; 
6831
6832      
6833     function calculaPrecoAvista(precoVendaOferta){ 
6834      return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2); 
6835
6836 
6837     function getParcelasEntradaCartao(dataInicioCurso){ 
6838       
6839      const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-")); 
6840      const dHoje = new Date(); 
6841 
6842      let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear(); 
6843      let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth(); 
6844      diffMeses = diffAnos * 12 + diffMeses; 
6845 
6846      return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses); 
6847       
6848
6849 
6850    function createModalFormaPagto(formaPagtoObj, oferta, index) { 
6851      let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
6852      temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta)       
6853       
6854      result = ` 
6855        <div id="modalFormaPagto" class="ssp-modal"> 
6856          <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
6857            <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;"> 
6858              <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6> 
6859              <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i> 
6860            </div> 
6861
6862        + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') + 
6863
6864            <div class="ssp-card-modal-forma-pagamento__body">               
6865      `       
6866      if(temDesconto) { 
6867        result = result + ` 
6868             <div> 
6869                <p class="my-0"><strong>Valor com </strong> 
6870                  <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>                   
6871                </p> 
6872              </div> 
6873              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `*</h6>` 
6874               
6875        if($('[name="tipoCurso"]').val() == 'extensao') { 
6876          result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p>` 
6877        } else { 
6878          result = result + `<p class="modal-extensao_txteconomiza my-0">*Desconto válido para quem tem ou trabalha em empresa do setor de comércio e serviços.</p>` 
6879
6880               
6881         
6882        result = result + ` 
6883              <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div> 
6884              <p class="my-0"><strong>Valor:</strong></p> 
6885              <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
6886              <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p> 
6887              <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div> 
6888              <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p> 
6889
6890      } else { 
6891        if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) { 
6892          result = result + ` 
6893              <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
6894              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
6895              <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small> 
6896            </div> 
6897
6898        } else { 
6899          const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:' 
6900           
6901          result = result + ` 
6902              <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small> 
6903              <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p> 
6904              <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
6905              <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p> 
6906              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
6907              <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px">Se preferir, parcele e garanta muito mais tempo para pagar:</small> 
6908            </div> 
6909
6910
6911
6912 
6913      let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto    
6914      if(temDesconto) { 
6915        const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2)) 
6916        const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2)) 
6917 
6918        if(formaPagtoObj.numParcelaCartoes) 
6919          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>` 
6920 
6921        if(formaPagtoObj.numParcelaBoleto) 
6922          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>` 
6923 
6924      } else { 
6925        if(formaPagtoObj.numParcelaCartoes) 
6926          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>` 
6927         
6928        if(formaPagtoObj.numParcelaBoleto) 
6929          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>` 
6930 
6931
6932	   
6933	  if(formaPagtoObj.numParcelaBoleto){ 
6934		  textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor </p>`; 
6935          textoParcelaCartaoComBoleto += `<p>restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário </p>`; 
6936
6937 
6938      if(temDesconto) {  
6939        result = result + ` 
6940              <div class="ssp-card-modal-forma-pagamento__tipos">` 
6941 
6942        if(textoParcelaBoleto) 
6943          result = result + ` 
6944                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6945                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
6946                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6947                      <p><strong>Boleto Bancário</strong></p>` 
6948                      + textoParcelaBoleto +    
6949                  `</div> 
6950                </div>` 
6951 
6952        if(textoParcelaCartoes) 
6953          result = result + ` 
6954                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
6955                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
6956                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6957                      <p><strong>Cartões</strong></p> 
6958                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
6959                      + textoParcelaCartoes +    
6960                  `</div> 
6961                </div> 
6962              </div> 
6963
6964        if(textoParcelaCartaoComBoleto) 
6965          result = result + ` 
6966                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6967                  <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i> 
6968                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6969                      <p><strong>Cartão + boleto bancário</strong></p>` 
6970                      + textoParcelaCartaoComBoleto +    
6971                  `</div> 
6972                </div>` 
6973      } else { 
6974        result = result + ` 
6975              <div class="ssp-card-modal-forma-pagamento__tipos">` 
6976 
6977        if(textoParcelaCartoes) 
6978          result = result + ` 
6979                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6980                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
6981                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6982                      <p><strong>Cartões</strong></p> 
6983                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
6984                      + textoParcelaCartoes +    
6985                  `</div> 
6986                </div>` 
6987 
6988        if(textoParcelaBoleto) 
6989          result = result + ` 
6990                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
6991                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
6992                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6993                      <p><strong>Boleto Bancário</strong></p>` 
6994                      + textoParcelaBoleto +    
6995                  `</div> 
6996                </div> 
6997              </div> 
6998
6999 
7000        if(textoParcelaCartaoComBoleto) 
7001          result = result + ` 
7002                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
7003                  <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i> 
7004                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
7005                      <p><strong>Cartão + boleto bancário</strong></p>` 
7006                      + textoParcelaCartaoComBoleto +    
7007                  `</div> 
7008                </div>` 
7009
7010 
7011       
7012 
7013      if(temDesconto) {  
7014        result = result + ` 
7015            <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p> 
7016
7017
7018 
7019      result = result + ` 
7020            <a href="#a" class="btn btn-lg btn-success w-100" style="margin-top: 20px;font-weight:600"><span class="textoBotaoComprar">` + formaPagtoObj.textoBotaoComprar + `</span></a>` 
7021     
7022      if(temDesconto) {  
7023        result = result + ` 
7024            <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a> 
7025
7026
7027           
7028      result = result + ` 
7029         </div> 
7030        </div> 
7031
7032 
7033      return result; 
7034
7035      
7036     function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){ 
7037        
7038       var tipoCurso = $('[name="tipoCurso"]').val(); 
7039        
7040       var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade); 
7041        
7042       var modalFormaPagto 
7043       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) { 
7044          modalFormaPagto = $('#modalFormaPagtoExt').clone(); 
7045 
7046          $.each(formaPagtoObj, function(k,v){ 
7047            if(modalFormaPagto.find('.'+k).length > 0) 
7048              modalFormaPagto.find('.'+k).text(v); 
7049          }) 
7050        } else if(isEmed) { 
7051          modalFormaPagto = $('#modalPagtoEmed').clone(); 
7052 
7053          $.each(formaPagtoObj, function(k,v){ 
7054            if(modalFormaPagto.find('.'+k).length > 0) 
7055              modalFormaPagto.find('.'+k).text(v); 
7056          }) 
7057        } else 
7058           modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index)); 
7059          
7060       modalFormaPagto.removeAttr('id'); 
7061       modalFormaPagto.removeClass('d-none'); 
7062       modalFormaPagto.attr('id','myModal_'+index); 
7063        
7064       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){ 
7065          
7066         var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok'); 
7067         botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index); 
7068          
7069         botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7070         botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade); 
7071         botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento); 
7072         botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7073         botoaoCompraOk.attr('data-index', index); 
7074         botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar); 
7075          
7076         var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not'); 
7077         botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index); 
7078          
7079         botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7080         botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade); 
7081         botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento); 
7082         botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7083         botoaoCompraNot.attr('data-index', index); 
7084         botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar); 
7085          
7086         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index); 
7087         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index); 
7088          
7089         modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
7090          
7091         modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index); 
7092          
7093         modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index); 
7094          
7095         modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index); 
7096         modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index); 
7097          
7098         var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');  
7099      
7100       }else{ 
7101   
7102         modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index); 
7103         modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
7104          
7105         var botaoCompra = modalFormaPagto.find('.btn.w-100'); 
7106   
7107
7108        
7109       if(isEmed){ 
7110          
7111    	   	var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento'); 
7112	    		  
7113          //Cria botao inscreva-se ajustado ao modal 
7114          var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta); 
7115          if($('#manutencao-compra').val()){ 
7116            textoBotao = $('#manutencao-compra').val(); 
7117            classeBotao = 'disabled manutencao'; 
7118          }else{ 
7119            if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){ 
7120              textoBotao = 'Lista de espera'; 
7121              classeBotao = 'btn-emed-lista-espera'; 
7122            }else{ 
7123                if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaMatricula || oferta.dataAberturaMatricula == ''){ 
7124                  if(oferta.etapa == '0020' || oferta.etapa == '0030'){ 
7125                    textoBotao = 'Lista de espera'; 
7126                    classeBotao = 'btn-emed-lista-espera'; 
7127                  }else{ 
7128                    textoBotao = 'Fazer matrícula'; 
7129                    classeBotao = ''; 
7130
7131                }else{ 
7132                  textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta); 
7133                  classeBotao = 'disabled'; 
7134
7135
7136
7137          criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index); 
7138          preencheDadosEmedModal(oferta, modalFormaPagto); 
7139          
7140       }else{ 
7141	       botaoCompra.attr('id', "btnComprarFormaPgto_"+index); 
7142	       botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7143	       botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade); 
7144	       botaoCompra.attr('data-evento', formaPagtoObj.dataEvento); 
7145	       botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7146	       botaoCompra.attr('data-index', index); 
7147		   botaoCompra.addClass(formaPagtoObj.classeBotaoComprar); 
7148
7149        
7150       $('.oferta-slick-area_modal').append(modalFormaPagto); 
7151       $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7152        
7153       //Evita o erro de exibição de Nan 
7154       if(oferta.numParcelaBoleto.length == 0){ 
7155    	   $('#content_boleto_'+index).remove(); 
7156
7157
7158 
7159   function verificaTerminoDia(dataInicio, dataFim){ 
7160    if (dataInicio === dataFim) { 
7161      return true; 
7162
7163    return false; 
7164
7165 
7166    
7167   function montaHTMLModalLocalRealizacao(oferta, index){ 
7168 
7169    // Lógica para decidir o texto (Singular ou Plural) 
7170    // Assume que oferta.dataInicio e oferta.dataFim existem 
7171    var textoTitulo = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
7172        "ONDE A AULA IRÁ ACONTECER?" :     // True: Mesmo dia (Singular) 
7173        "ONDE AS AULAS VÃO ACONTECER?";    // False: Dias diferentes (Plural) 
7174      
7175     var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ? 
7176          '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>' 
7177           : '<i class="ssp-modal__local-realizacao-content__icon-wifi"></i> <i class="ssp-modal__local-realizacao-content__icon-chalkboard-teacher"></i> <h6 class="ssp-modal-local-realizacao__title">' + textoTitulo + '</h6>'; 
7178      
7179     if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true") 
7180             textoFormatoHibrido += '</br>'; 
7181                        
7182     var localRealizacaoHTMLModal = htmlModalLocalRealizacao 
7183         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
7184         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
7185         .replace('\{localEspacoExterno\}',  oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" ) 
7186         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
7187         .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7188         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
7189         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
7190         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
7191         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7192         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
7193         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7194         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
7195         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7196         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
7197        .replace(regIndex, index) 
7198        .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao) 
7199        .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : ""); 
7200 
7201        $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal); 
7202        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7203 
7204        if(oferta.ruaEspacoExterno == "") 
7205           $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle'); 
7206
7207    
7208   function  montaHTMLModalAntesCompra(oferta, index, codigoUnidade){ 
7209 
7210    if(isEmed){ 
7211              
7212      $('#modalAntesCompraEmed_' + oferta.indice).remove(); 
7213      const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone(); 
7214      antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice); 
7215      antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice); 
7216      antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice); 
7217      antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed'); 
7218       
7219      if(oferta.etapa == '0010'){ 
7220        if(oferta.permiteListaEspera == statusEmed.ESPERA){ 
7221          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none'); 
7222          antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera'); 
7223        }else{ 
7224          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none'); 
7225
7226      }else{ 
7227    	  antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none'); 
7228
7229 
7230      const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed'); 
7231      btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice); 
7232      btnCompra.attr('offercode', oferta.codigoOferta); 
7233 
7234      btnCompra.on('click', function(ev){ 
7235        ev.preventDefault(); 
7236        execCompraEmed(oferta); 
7237      }); 
7238 
7239    }else{ 
7240    	 
7241   	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
7242 
7243   	 
7244     var antesCompraHTMLModal = htmlModalAntesCompra 
7245         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
7246         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
7247         .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" ) 
7248         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
7249         .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != ""  ? "" : "d-none") 
7250         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
7251         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
7252         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
7253         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7254         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
7255         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7256         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
7257         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7258         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
7259         .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat)) 
7260         .replace('\{linkBtnBolsa\}', linkBolsa(oferta)) 
7261        .replace(regIndex, index);   
7262 
7263        $('.oferta-slick-area_modal').append(antesCompraHTMLModal); 
7264        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7265
7266
7267    
7268   async function populaOfertas(ofertas){ 
7269     
7270     //Zera variável que controla existência de ofertas com bolsa 
7271    ofertasComBolsa = false; 
7272 
7273    objsTela.ofertas = ofertas; 
7274 
7275    if(ofertas && ofertas.length)  
7276      $('#ssp-h3-turmas').show() 
7277    else  
7278      $('#ssp-h3-turmas').hide() 
7279 
7280      if(ofertas && ofertas.length > 1){ 
7281        //remove dupl 
7282        const ofertasDistintas = []; 
7283        ofertas.forEach(oferta => { 
7284          if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){ 
7285            ofertasDistintas.push(oferta); 
7286
7287        }); 
7288        ofertas = ofertasDistintas; 
7289
7290        
7291     if(isEmed){ 
7292 
7293      $('.btn-filtro[value="0"]').attr('disabled',''); 
7294      $('.ssp-slick-ofertas-emed').empty(); 
7295      // executa a class do slick slider 
7296      $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted'); 
7297      ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas); 
7298       
7299
7300 
7301     if(ofertas.length == 0){ 
7302        
7303      if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked')) 
7304        hideCardSemTurmas(false) 
7305        
7306       $('.oferta-slick-area').empty(); 
7307       $('.prev-mobile, .next-mobile').addClass('d-none'); 
7308        
7309       //Mostrar section registro interesse quando nao tiver oferta 
7310       habilitarRegistroInteresse(true); 
7311 
7312        controlaPaginaBolsa() 
7313        if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled'); 
7314       return; 
7315
7316      hideCardSemTurmas(true) 
7317      if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none'); 
7318      habilitarRegistroInteresse(false);     
7319     
7320     $('.oferta-slick-area').empty(); 
7321     $('.oferta-slick-area_modal').empty(); 
7322     ofertas = ofertas.sort(function(a, b){ 
7323       return ordenar(a, b, 'ordenar'); 
7324     }); 
7325     // executa a class do slick slider 
7326     $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted'); 
7327      
7328     //busca o codigoUnidade para o link do ecommerce 
7329     if(!isAoVivo){ 
7330      var selectedUnidade = $('#unidades-ofertas').val().split('@')[0]; 
7331      for(var i=0;objsTela.unidades.length > i ;i++){ 
7332        if(selectedUnidade == objsTela.unidades[i].categoryId) 
7333          codigoUnidade = objsTela.unidades[i].codigoUnidade; 
7334
7335
7336      
7337    // Montar object push - google tag manager - 2 
7338    itensEcommerce = criaItensEcommerce(ofertas); 
7339    sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values())); 
7340 
7341     for(var i=0;ofertas.length > i ;i++){ 
7342  	    
7343       var oferta = ofertas[i]; 
7344  	   var ofertaGratuita = excecaoCursoGratuito(oferta); 
7345        
7346       //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real 
7347       oferta['indice'] = i; 
7348       ofertasMap.set(oferta.codigoOferta, oferta); 
7349        
7350       if(isAoVivo) 
7351          codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
7352 
7353      if(isEmed && oferta.etapa == '0010'){ 
7354          try{ 
7355            let status = await getStatusEmed(oferta); 
7356            oferta['permiteListaEspera'] = status; 
7357          }catch(err){ 
7358            console.log(err); 
7359
7360
7361       montaHTMLOferta(oferta, i, codigoUnidade, false);  
7362        
7363       if(!ofertaGratuita) 
7364       	montaHTMLModalFormaPgto(oferta, i, codigoUnidade); 
7365               
7366       montaHTMLModalLocalRealizacao(oferta, i);  
7367       montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
7368        
7369       if(!ofertaGratuita) 
7370       	verificaBotaoBolsaSS(oferta); 
7371               
7372       verificaCursoAprendizagem(i); 
7373       verificaCursoTrampolim(i, oferta.codigoOferta); 
7374        
7375       if(!ofertaGratuita) 
7376       	associaEventoBtnFormaPagamento(i); 
7377             
7378       associaEventoBtnComprar(i);  
7379        
7380       if(!ofertaGratuita) 
7381       	associaEventoBtnComprarDentroFormaPgto(i); 
7382             
7383       associaEventoBtnLocalRealizacao(i); 
7384       associaEventosFecharModal(i); 
7385       
7386         if($('[name="tipoCurso"]').val() == 'extensao'){ 
7387             associaEventoBtnConheca(i);	 
7388             associaEventoBtnComprarConhecaDescontoOk(i); 
7389             associaEventoBtnComprarConhecaDescontoNot(i); 
7390             associaEventoBtnAlunoNao(i); 
7391             associaEventoBtnAlunoSim(i); 
7392
7393         
7394
7395   
7396     if(isEmed){ 
7397      sliderOfertasEmed(); 
7398      $('.btn-filtro[value="0"]').removeAttr('disabled'); 
7399
7400     else sliderOfertas(); 
7401 
7402     controlaPaginaBolsa() 
7403      
7404
7405 
7406   function hideCardSemTurmas(hide){ 
7407    if(!isEmed){ 
7408      if(hide) 
7409        $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none'); 
7410      else 
7411        $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none'); 
7412    } else { 
7413      
7414 
7415      if(hide || getEtapaSelecionadaEmed() == "0"){ 
7416        $('.sem-vaga-emed').addClass('d-none'); 
7417      }else{ 
7418        $('.sem-vaga-emed').removeClass('d-none'); 
7419        if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return; 
7420        var tamScreen = $(window).width(); 
7421        if(tamScreen < 768){ 
7422            $('.slick-area-emed').slick({ 
7423            slidesToShow: 2, 
7424            slidesToScroll: 2, 
7425            autoplay: false, 
7426            infinite: false, 
7427            dots: false, 
7428            arrows: false, 
7429            centerPadding: 0, 
7430                        centerMode: false, 
7431            responsive: [ 
7432
7433                    breakpoint: 768, 
7434                    settings: { 
7435                        slidesToShow: 1, 
7436                        slidesToScroll: 1, 
7437                        variableWidth: false, 
7438                        infinite: false, 
7439                        centerPadding: 0, 
7440                        centerMode: false, 
7441                        dots: true, 
7442
7443
7444
7445        }); 
7446
7447
7448
7449
7450    
7451   function verificaCursoAprendizagem(i){ 
7452 
7453      //Esconde elementsos quando o curso é aprendizagem 
7454      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
7455         $('#btnComprar_'+i).remove(); 
7456         $('#container_investimento_'+i).remove(); 
7457         $('#container_forma_pgto_'+i).remove(); 
7458          
7459         var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone(); 
7460         let btnFormAprendizagem = '<button class="btn btn-lg btn-success w-100 mt-3 btnModalAprendizagem" data-modal="open-modal" style="font-size:16px;background:#1FC923;font-weight: 600;">Preencher formulário</button>' 
7461         avisoAprendizagem.removeAttr('id'); 
7462         avisoAprendizagem.removeClass('d-none'); 
7463         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem); 
7464         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem); 
7465
7466
7467    
7468   function verificaCursoTrampolim(i, codOferta){ 
7469     if(ehCursoTrampolim){ 
7470          $('#btnComprar_'+i).remove(); 
7471          $('#container_investimento_'+i).remove(); 
7472          $('#container_forma_pgto_'+i).remove(); 
7473          $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide(); 
7474           
7475          var avisoTrampolim = $('#avisoTrampolim').clone(); 
7476          avisoTrampolim.removeAttr('id'); 
7477          avisoTrampolim.removeClass('d-none'); 
7478          $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim); 
7479
7480
7481    
7482  function verificaBotoesEmed(dadosOferta, verificaBolsa) { 
7483 
7484    var elementoPai = $('.codigoOferta_' + dadosOferta.codigoOferta + ' .ssp-ofertas-emed__card-info-investimento'); 
7485 
7486    //INICIO - Logica para Matricula 
7487 
7488    //adicionamos uma nova variável em 18/07/2025 quando surgiu a necessidade de uma data diferente de matricula em relação a data de bolsa 
7489    var dadosAberturaMatricula = calculaTempoAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta); 
7490 
7491    var textoBotaoMatricula = ''; 
7492    var exibirBotaoMatricula = true; 
7493    var classeBotaoMatricula = ''; 
7494    var htmlBotaoMatricula = ''; 
7495 
7496    if (dadosAberturaMatricula.exibirContador) { 
7497        textoBotaoMatricula = dadosAberturaMatricula.textoContador; 
7498        exibirBotaoMatricula = false; 
7499
7500 
7501    //exibe o botão sem cronômetro 
7502    if (exibirBotaoMatricula) { 
7503        if ($('#manutencao-compra').val()) { 
7504            textoBotaoMatricula = $('#manutencao-compra').val(); 
7505            classeBotaoMatricula = 'disabled manutencao'; 
7506        } else { 
7507 
7508            if (dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAberturaMatricula.bolsaJaAberta) { 
7509                textoBotaoMatricula = 'Lista de espera'; 
7510                classeBotaoMatricula = 'btn-emed-lista-espera'; 
7511            } else { 
7512                classeBotaoMatricula = ''; 
7513                if (dadosAberturaMatricula.bolsaJaAberta || !dadosOferta.dataAberturaMatricula || dadosOferta.dataAberturaMatricula == '') { 
7514                    textoBotaoMatricula = 'Fazer matrícula'; 
7515 
7516                    if (dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030') { 
7517                        textoBotaoMatricula = 'Lista de espera'; 
7518                        classeBotaoMatricula = 'btn-emed-lista-espera'; 
7519
7520                } else { 
7521                    textoBotaoMatricula = 'Matrícula em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta); 
7522
7523                if (!dadosAberturaMatricula.bolsaJaAberta) 
7524                    classeBotaoMatricula = 'disabled'; 
7525
7526
7527 
7528        criaBotaoInscreverEmed(dadosOferta, textoBotaoMatricula, classeBotaoMatricula, 'btnComprarEmed_' + dadosOferta.indice, elementoPai); 
7529 
7530    } else { //exibe o cronometro para matricula 
7531 
7532        //codigoOferta como index para usar o ofertasMap 
7533        htmlBotaoMatricula = '<button id="btnContadorComprar_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>' + textoBotaoMatricula + '</span></button>'; 
7534        elementoPai.append(htmlBotaoMatricula); 
7535
7536 
7537    //INICIO - Logica para Botão Bolsa 
7538 
7539    if (!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == '') { 
7540        dadosOferta.vagasBolsaOferta = false; 
7541        dadosOferta.botaoBolsaOferta = false; 
7542
7543 
7544    //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
7545    var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7546 
7547    var textoBotaoBolsa = ''; 
7548    var classeBotaoBolsa = ''; 
7549    var exibirBotaoBolsa = false; 
7550    var exibirContadorBolsa = false; 
7551    var htmlBotaoBolsa = ''; 
7552 
7553    //verifica se o botão de concorrer a bolsa deve aparecer 
7554    //Oferta EMED possui bolsa apenas no 1o ano 
7555    if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAberturaBolsa.exibirContador) { 
7556        exibirBotaoBolsa = true; 
7557        if ($('#manutencao-bolsa').val()) { 
7558            classeBotaoBolsa = 'disabled manutencao'; 
7559            textoBotaoBolsa = $('#manutencao-bolsa').val(); 
7560        } else { 
7561            if (dadosOferta.vagasBolsaOferta) { 
7562                classeBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? '' : 'disabled'; 
7563                textoBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7564            } else { 
7565                classeBotaoBolsa = 'disabled'; 
7566                textoBotaoBolsa = 'Bolsas de Estudo Esgotadas'; 
7567
7568
7569
7570 
7571    //Verifica se o botão do cronômetro deve aparecer 
7572    if (dadosAberturaBolsa.exibirContador) { 
7573        textoBotao = dadosAberturaBolsa.textoContador; 
7574        textoBotaoBolsa = dadosAberturaBolsa.textoContador; 
7575        exibirContadorBolsa = true; 
7576        exibirBotaoBolsa = false; 
7577
7578 
7579    if (exibirBotaoBolsa) { 
7580 
7581        if (!ofertasComBolsa) ofertasComBolsa = true; 
7582 
7583        criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa); 
7584 
7585    } else if (exibirContadorBolsa) { 
7586 
7587        if (!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true; 
7588 
7589        if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta) { 
7590            htmlBotaoBolsa = '<button id="btnContadorBolsa_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --bolsas">Bolsa em <span>' + textoBotaoBolsa + '</span></button>'; 
7591            elementoPai.append(htmlBotaoBolsa); 
7592
7593
7594
7595    
7596   function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){ 
7597     criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai); 
7598     var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index); 
7599     btnInscr.removeClass(btnInscr.classList); 
7600     btnInscr.addClass('btn btn-lg btn-success w-100'); 
7601     btnInscr.attr('style', 'margin-top: 20px;font-weight:600'); 
7602      
7603     //Reposiciona o botao voltar 
7604     var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso'); 
7605     elementoPai.find('.ssp-btn-emed__voltar-curso').remove(); 
7606     elementoPai.append(btnVoltar); 
7607     btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index); 
7608     btnVoltar.click(() => { 
7609    	 $('[id^="myModal_"]').each(function(index,modal){ 
7610			modal.style.display = "none"; 
7611		}) 
7612	}); 
7613
7614    
7615   function preencheDadosEmedModal(oferta,$modal){ 
7616	   const parcelaEntrada = 1; 
7617	   $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
7618	   $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
7619	   $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
7620	   $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
7621
7622 
7623    
7624   function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){ 
7625      if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return; 
7626       var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>'; 
7627      elementoPai.append(htmlBotao); 
7628              
7629      if(!classeBotao.includes('disabled')){ 
7630       
7631        elementoPai.on("click", '#'+ idBotao, function(ev){ 
7632          ev.preventDefault(); 
7633          const _modal = $('#modalAntesCompraEmed_'+$(this).data('index')); 
7634          _modal.css('display','flex'); 
7635           
7636           
7637        }); 
7638         
7639
7640 
7641
7642    
7643   function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
7644      
7645     var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>'; 
7646     $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao); 
7647       
7648     if(!classeBotaoBolsa.includes('disabled')){ 
7649       // Associa o evento de clique no botão de bolsa 
7650       $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta)); 
7651       $('#btnBolsa_'+oferta.indice).attr('target', '_blank'); 
7652       //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;'); 
7653 
7654
7655
7656    
7657   function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
7658	    
7659	   const botao = $('<a>'+ textoBotaoBolsa +'</a>'); 
7660	   botao.attr('id', 'btnBolsa_' + oferta.indice); 
7661	   botao.attr('data-index', oferta.indice); 
7662	   botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || '')); 
7663	   botao.css('font-size', '14px'); 
7664	   botao.css('font-weight', '600'); 
7665	   botao.css('background-color', '#004EFF'); 
7666	   if(!classeBotaoBolsa.includes('disabled')){ 
7667		   if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){ 
7668			   botao.attr('data-espaco-ex', 'true'); 
7669			   botao.click((ev)=>{  
7670					 ev.preventDefault();  
7671			         $('#btnCompraLocal_'+oferta.indice).hide(); 
7672			         $('#btnBolsaLocal_'+oferta.indice).show(); 
7673			         const _modal = $('#modalAntesCompra_'+oferta.indice); 
7674			         _modal.css('display','flex'); 
7675				}); 
7676		   }else{ 
7677		   botao.attr('href', linkBolsa(oferta)); 
7678		   botao.attr('target', '_blank'); 
7679
7680
7681	    
7682	   return botao; 
7683    
7684
7685 
7686   function verificaBotaoBolsaSS(oferta, codigoUnidade){ 
7687 
7688      
7689     if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return; 
7690      
7691     if(!ehCursoTrampolim){ 
7692       $.ajax({ 
7693             url :  getUrlConsultaBolsa(oferta), 
7694             type : 'get', 
7695             dataType: 'json', 
7696             beforeSend: function (xhr) { 
7697             xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww=="); 
7698             }, 
7699         }) 
7700         .done(function(infosBolsa){ 
7701 
7702            
7703           if(infosBolsa != null && typeof infosBolsa !== 'undefined'){ 
7704        	    
7705             var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO; 
7706             var retornoOfertaBolsaSenac = infosBolsa.DATA[0]; 
7707			  
7708			 //Sobrescreve as flags de bolsa com o retorno do serviço SS 
7709             ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA; 
7710             ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA; 
7711			  
7712             var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa); 
7713              
7714             //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
7715             var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta); 
7716             var textoBotaoBolsa = ''; 
7717             var classeBotaoBolsa = ''; 
7718             var textoBotaoContadorBolsa = ''; 
7719             var exibirBotaoBolsa = false; 
7720             var exibirContadorBolsa = false; 
7721              
7722             //EMED 
7723           if(isEmed){ 
7724             verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true); 
7725             return; 
7726
7727              
7728             //Verifica o texto do botão de bolsa 
7729            if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val(); 
7730            else{ 
7731 
7732              if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){ 
7733                             
7734                if(dadosAberturaBolsa.bolsaJaAberta) 
7735                  textoBotaoBolsa = "Inscrever para bolsa de estudo"; 
7736                   
7737                else 
7738                  textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7739 
7740                  if(!ofertasComBolsa){ ofertasComBolsa = true; 
7741
7742              }else 
7743                textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo"; 
7744
7745                 
7746             //verifica se o botão de concorrer a bolsa deve aparecer 
7747             if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){ 
7748                
7749               exibirBotaoBolsa = true; 
7750 
7751               if(!ofertasComBolsa) ofertasComBolsa = true; 
7752                
7753               if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){ 
7754                   classeBotaoBolsa = ''; 
7755               }else{ 
7756                   classeBotaoBolsa = 'disabled'; 
7757
7758
7759              
7760             //Verifica se o botão do cronômetro deve aparecer 
7761             if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){ 
7762               textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador; 
7763               exibirContadorBolsa = true; 
7764
7765              
7766             if(exibirBotaoBolsa) 
7767                $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) ) 
7768             else if(exibirContadorBolsa) 
7769                $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append('<a id="btnContadorBolsa_'+dadosOferta.indice+'" data-index="'+dadosOferta.indice+'"  class="btn btn-lg btn-info w-100 mt-3" >Você poderá se inscrever para bolsa em <span>'+textoBotaoContadorBolsa+'</span></a>') 
7770             else { 
7771                $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide() 
7772                $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
7773             }      
7774                                   
7775           }else{ 
7776             //EMED 
7777              if(isEmed){ 
7778                verificaBotoesEmed(oferta, false); 
7779
7780
7781 
7782           controlaPaginaBolsa() 
7783         }) 
7784         .fail(function(){  
7785           $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide() 
7786           $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
7787 
7788             //EMED 
7789           if(isEmed){ 
7790             verificaBotoesEmed(oferta, false); 
7791
7792         }); 
7793          
7794          
7795
7796      
7797
7798 
7799   function controlaPaginaBolsa(){ 
7800    if(ofertasComBolsa) 
7801      $("#ssp-abrir-pagina-bolsa").removeClass("d-none") 
7802    else 
7803      $("#ssp-abrir-pagina-bolsa").addClass("d-none") 
7804
7805 
7806   function associaEventoBtnFormaPagamento(i){ 
7807      var modal = document.getElementById("myModal_"+i); 
7808 
7809      var btn = document.getElementById("myBtn_"+i); 
7810 
7811      if(btn!=null){ 
7812         btn.onclick = function(ev) { 
7813             event.preventDefault() 
7814               
7815               $('#modalExtAluno_'+i).addClass('d-none'); 
7816                
7817             var elem = $(ev.target); 
7818             var _modal = document.getElementById( 
7819                 'myModal_'+elem.data('index')); 
7820             _modal.style.display = "block"; 
7821               $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none'); 
7822                
7823
7824
7825      
7826       
7827      
7828       
7829
7830    
7831  	    
7832   function actionBtnComprar(elem){ 
7833            
7834        // Montar object push - google tag manager - 3 
7835        ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento')) 
7836        sendEventEcommerce("select_item", ofertaSelecionada); 
7837        sendEventEcommerce("view_item", ofertaSelecionada); 
7838                
7839               //Verifica se deve exibir o modal com a localização 
7840               if(elem.attr('data-espaco-ex') == 'true'){ 
7841         $('#btnCompraLocal_'+elem.data('index')).show(); 
7842 
7843         //Limpa onclicks para nao repetir execucao 
7844         $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index')) 
7845         $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () { 
7846          // Montar object push - google tag manager - 4 
7847          sendEventEcommerce("add_to_cart", ofertaSelecionada); 
7848          if( elem.attr('data-destino-compra') != '2' ) 
7849            sendEventEcommerce("begin_checkout", ofertaSelecionada); 
7850         }) 
7851         $('#btnBolsaLocal_'+elem.data('index')).hide(); 
7852         const _modal = $('#modalAntesCompra_'+elem.data('index')); 
7853         _modal.css('display','flex'); 
7854               }else{ 
7855                 var urlCompra  = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento')); 
7856     
7857                 if( elem.attr('data-destino-compra') == '2' ){ 
7858                	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
7859	                  	 
7860                	 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);    
7861    
7862                 }else{ 
7863                	 window.open(urlCompra, '_blank'); 
7864
7865
7866 
7867        
7868                  
7869
7870    
7871   function associaEventoBtnComprar(i){ 
7872	   var btnComprar = document.getElementById("btnComprar_"+i); 
7873	    
7874	   if(btnComprar != null && !btnComprar.classList.contains('disabled')){ 
7875         btnComprar.onclick = function(ev) { 
7876            
7877               ev.preventDefault() 
7878               var elem = $(ev.target); 
7879               actionBtnComprar(elem); 
7880                
7881
7882
7883
7884    
7885   function associaEventoBtnComprarDentroFormaPgto(i){ 
7886	   var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i); 
7887	    
7888	   if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){ 
7889         btnComprarFormaPgto.onclick = function(ev) { 
7890               event.preventDefault() 
7891                 var elem =  $('#btnComprarFormaPgto_'+i); 
7892               actionBtnComprar(elem); 
7893
7894
7895
7896      
7897     function associaEventoBtnComprarConhecaDescontoOk(i){ 
7898       var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i); 
7899        
7900       if(btnComprarConhecaDescontoOk != null){ 
7901         btnComprarConhecaDescontoOk.onclick = function(ev) { 
7902                 event.preventDefault() 
7903               var elem = $(ev.target); 
7904                 actionBtnComprar(elem); 
7905
7906
7907
7908    
7909     function associaEventoBtnComprarConhecaDescontoNot(i){ 
7910       var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i); 
7911        
7912       if(btnComprarConhecaDescontoNot != null){ 
7913         btnComprarConhecaDescontoNot.onclick = function(ev) { 
7914                 event.preventDefault() 
7915                 var elem =  $(ev.target); 
7916                 actionBtnComprar(elem); 
7917
7918
7919
7920      
7921     function associaEventoBtnAlunoNao(i){ 
7922       var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i); 
7923        
7924       if(btnAlunoNao != null){ 
7925         btnAlunoNao.onclick = function(ev) { 
7926                 event.preventDefault() 
7927                 var elem =  $(ev.target); 
7928                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
7929                 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7930                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
7931                 $('#msg-alunoNao_'+i).removeClass('d-none'); 
7932                 $('#msg-alunoSim_'+i).addClass('d-none');      
7933
7934
7935
7936        
7937     function associaEventoBtnAlunoSim(i){ 
7938       var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i); 
7939        
7940       if(btnAlunoSim != null){ 
7941         btnAlunoSim.onclick = function(ev) { 
7942                 event.preventDefault() 
7943                 var elem =  $(ev.target); 
7944                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
7945                 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7946                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
7947                 $('#msg-alunoSim_'+i).removeClass('d-none'); 
7948                 $('#msg-alunoNao_'+i).addClass('d-none');              
7949                  
7950
7951
7952     }	    
7953      
7954     function associaEventoBtnConheca(i){ 
7955       var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i); 
7956        
7957       if(btnModalExtConheca != null){ 
7958         btnModalExtConheca.onclick = function(ev) { 
7959                 event.preventDefault(); 
7960                 var elem =  $(ev.target); 
7961                 elem.closest('.modal-extensao_content').addClass('d-none'); 
7962                 $('#modalExtAluno_'+i).removeClass('d-none'); 
7963                 $('#msg-alunoSim_'+i).addClass('d-none'); 
7964                 $('#msg-alunoNao_'+i).addClass('d-none'); 
7965                 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7966                 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7967 
7968
7969
7970
7971      
7972   function associaEventoBtnLocalRealizacao(i){ 
7973	   var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i); 
7974	    
7975	   if(btnLocalRealizacao!=null){ 
7976         btnLocalRealizacao.onclick = function(ev) { 
7977                 event.preventDefault(); 
7978               var elem = $(ev.target); 
7979               var _modal = document.getElementById( 
7980                   'modalLocalRealizacao_'+elem.data('index')); 
7981               _modal.style.display = "flex"; 
7982
7983
7984
7985 
7986   function associaEventosFecharModal(i){ 
7987 
7988      var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i); 
7989      var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0]; 
7990       var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0]; 
7991       var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0]; 
7992       var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0]; 
7993       var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i) 
7994 
7995       if(isEmed){ 
7996    	   var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i); 
7997   	      for (const val of closeModalFormaPagamento) {  
7998 
7999   	    	  val.onclick = function() { 
8000   	        	 $('[id^="myModal_"]').each(function(index,modal){ 
8001   	           	 	modal.style.display = "none"; 
8002   	        	 }); 
8003
8004   	      }; 
8005
8006        
8007	  //event close modal 
8008      for (const val of span) {  
8009 
8010    	  val.onclick = function() { 
8011        	 $('[id^="myModal_"]').each(function(index,modal){ 
8012           	 	modal.style.display = "none"; 
8013        	 }); 
8014
8015      }; 
8016   
8017      closeModalLocalRealizacao.onclick = function() { 
8018   
8019           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
8020             modal.style.display = "none"; 
8021              
8022           }); 
8023
8024 
8025       closeModalAntesCompra.onclick = function() { 
8026          
8027           $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
8028             modal.style.display = "none"; 
8029           }); 
8030
8031 
8032       closeModalSelecionarOutro.onclick = function() { 
8033          
8034      $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
8035          modal.style.display = "none"; 
8036        }); 
8037
8038          
8039       btnEntendiLocalRealizacao.onclick = function() { 
8040          
8041           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
8042             modal.style.display = "none"; 
8043           }); 
8044
8045		 
8046       if(closeModalBotaoBolsa != null){ 
8047	       closeModalBotaoBolsa.onclick = function() { 
8048	          
8049	         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
8050	             modal.style.display = "none"; 
8051	           }); 
8052
8053
8054 
8055       // When the user clicks anywhere outside of the modal, close it 
8056       window.onclick = function(event) { 
8057   
8058         $('[id^="myModal_"]').each(function(index,_modal){ 
8059             if (event.target == _modal)  
8060              _modal.style.display = "none"; 
8061         }); 
8062         $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){ 
8063             if (event.target == _modal)  
8064              _modal.style.display = "none"; 
8065         }); 
8066          
8067         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){ 
8068             if (event.target == _modal)  
8069              _modal.style.display = "none"; 
8070         }); 
8071
8072
8073    
8074   function turmasIniciadas(dataInicioCurso){ 
8075     
8076      var hoje = new Date();  
8077      var dataInicioPartes = dataInicioCurso.split('/');  
8078      var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds()); 
8079 
8080      return dataInicioCursoOferta.getTime() <= hoje.getTime(); 
8081
8082    
8083 
8084   function concatSTR(str1, str2, separador){ 
8085   
8086     if(str2){ 
8087   
8088       return str1+separador+str2; 
8089
8090     return str1; 
8091
8092    
8093   //Formata exibicao de datas conforme especificacao GCR 
8094   function formataPeriodo(dataInicio, dataFim){ 
8095           
8096    // Se as datas são iguais, retornar apenas a data final 
8097    if (dataInicio === dataFim) { 
8098      return dataFim; 
8099
8100 
8101    var dtInicioPartes = dataInicio.split('/'); 
8102    var dtFimPartes = dataFim.split('/'); 
8103       
8104    //Não exibir o número zero antes dos números e o dia 1 como 1º 
8105    var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim(); 
8106    var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim(); 
8107 
8108    //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020 
8109    if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){ 
8110        
8111      dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim()); 
8112         
8113    //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020 
8114    if(dtInicioPartes[1].trim() == dtFimPartes[1].trim()) 
8115      dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())); 
8116
8117     
8118    return dInicioFormatada + ' a ' + dFimFormatada; 
8119
8120    
8121  //Decrementa os contadores de abertudas de bolsa 
8122   function atualizaTempoAberturasBolsas() { 
8123   
8124	  var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]'); 
8125	   
8126    btnsContador.each(function() { 
8127       
8128      var index = $(this).data('index'); 
8129      var elId = $(this).attr('id'); 
8130      var btnContent = $(this).parent('.ssp-btn-group__content'); 
8131       
8132      if(isEmed){ 
8133     		//EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas 
8134    	  var dadosAberturaBolsa = calculaTempoAberturaBolsa((elId.indexOf('btnContadorBolsa') >= 0) ? ofertasMap.get('' +index).dataAberturaBolsaOferta : ofertasMap.get('' +index).dataAberturaMatricula, ofertasMap.get('' + index).horaAberturaBolsaOferta); 
8135      }else{ 
8136          	//calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
8137      var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta); 
8138
8139       
8140      $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds); 
8141       
8142      //Se esgotou o contador 
8143      if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){ 
8144         
8145        //remove o contador 
8146        $(this).remove(); 
8147         
8148        //Habilitar inscrição EMED 
8149        if(isEmed){ 
8150          var ofertaEmed = ofertasMap.get('' +index); 
8151          var btnIndex = elId.slice(elId.indexOf('_')+1); 
8152          var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento'); 
8153         
8154          if(elId.indexOf('btnContadorBolsa') >= 0){ 
8155              if($('#manutencao-bolsa').val())   
8156                criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao'); 
8157              else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true") 
8158                criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', ''); 
8159              else 
8160                criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled'); 
8161          }else if(elId.indexOf('btnContadorComprar') >= 0){ 
8162	       		 
8163            var textoBotao, classeBotao; 
8164           
8165            textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula'; 
8166            classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : ''; 
8167 
8168            //Garante a ordenação dos botoes (matricula depois bolsa) 
8169            const botaoBolsa = document.getElementById('btnBolsa_' + btnIndex) || document.getElementById('btnContadorBolsa_' + btnIndex); 
8170             
8171            botaoBolsa?.remove(); // Remove se existir 
8172 
8173            criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai); 
8174             
8175            if (botaoBolsa) { 
8176              elementoPai.append(botaoBolsa); 
8177
8178             
8179            //Altera o botao do modal de pagamento 
8180            var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento'); 
8181            var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex); 
8182            if(btnModal){ 
8183              btnModal.remove();					   
8184              criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex); 
8185              preencheDadosEmedModal(ofertaEmed,modal); 
8186
8187 
8188 
8189          }	         
8190           
8191        }else{ 
8192         
8193	        //Checa as condições das vagas do botão de bolsa 
8194          var btnBolsaHTML = null; 
8195          if($('#manutencao-bolsa').val())   
8196            btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao'); 
8197	        else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true") 
8198        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo'); 
8199	        else 
8200        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled'); 
8201	         
8202            $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML); 
8203	         
8204 
8205
8206
8207       
8208    }); 
8209    
8210
8211    
8212   // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos 
8213    function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){ 
8214       
8215        var dadosAberturaBolsa = { 
8216              days : '', 
8217            hours : '', 
8218            minutes : '', 
8219            seconds : '', 
8220            bolsaJaAberta: false, 
8221            exibirContador: false, 
8222            textoContador: '' 
8223          }; 
8224       
8225      if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0) 
8226         return dadosAberturaBolsa; 
8227       
8228      var now = todayG; 
8229      var dia = now.getDate(); 
8230      var horarioDia = now.getHours(); 
8231         
8232      var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa); 
8233       
8234      //console.log('tempo restante '+tempoRestante); 
8235       
8236      var diaAberturaBolsa = dataAberturaBolsa.split('-')[2]; 
8237     
8238      var delta = tempoRestante / 1000; 
8239       
8240      var days = Math.floor(delta / 86400); 
8241       
8242      delta -= days * 86400; 
8243       
8244      var hours = Math.floor(delta / 3600) % 24; 
8245      delta -= hours * 3600; 
8246       
8247      var minutes = Math.floor(delta / 60) % 60; 
8248      delta -= minutes * 60; 
8249       
8250      var seconds = Math.floor(delta % 60); 
8251       
8252      //Zerar contador para data que ja passou 
8253      if(days < 0){ 
8254          dadosAberturaBolsa.days = 0; 
8255          dadosAberturaBolsa.hours = '00'; 
8256          dadosAberturaBolsa.minutes = '00'; 
8257          dadosAberturaBolsa.seconds = '00'; 
8258      }else{ 
8259          dadosAberturaBolsa.days = days; 
8260          dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours; 
8261          dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes; 
8262          dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds; 
8263
8264 
8265      dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0; 
8266      var horaExibeContador = 8; 
8267      if(!isEmed && botaoBolsa == false){ 
8268    	  dadosAberturaBolsa.exibirContador = false; 
8269      }else{ 
8270          dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia); 
8271          dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds; 
8272
8273      dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0; 
8274       
8275      return dadosAberturaBolsa; 
8276   
8277
8278    
8279   // Verifica se uma oferrta já chegou sua data de abertura 
8280   function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
8281     // console.log(dataAberturaBolsa); 
8282     // console.log(horaAberturaBolsa); 
8283       
8284      //var today = new Date(); 
8285       
8286       
8287      //console.log( "TodayG "+ todayG); 
8288       
8289      //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30 
8290      var partesHora = horaAberturaBolsa.split('h'); 
8291       
8292      var partesHora = partesHora.filter(function (el) { 
8293        return el != ""; 
8294      }); 
8295       
8296      //formato 9h 
8297      if(partesHora.length == 1) 
8298        var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00"); 
8299   
8300      else{ 
8301         
8302        //format 9h3 
8303        if(partesHora[1].length == 1) 
8304          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0'); 
8305           
8306        //formato 9h30 
8307        else 
8308          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]); 
8309
8310        
8311     // console.log(aberturaBolsa); 
8312      return aberturaBolsa - todayG; 
8313
8314    
8315   function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
8316      var dataPartes = dataAberturaBolsa.split('-'); 
8317       
8318      return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas'; 
8319       
8320
8321   
8322   function formataValor(valor){ 
8323       
8324      if(!valor.toString().includes(".")){ 
8325        valor = parseFloat(valor).toLocaleString('pt-BR')+",00"; 
8326      }else{ 
8327         valor = parseFloat(valor).toLocaleString('pt-BR'); 
8328          
8329         if(valor.split(",").length == 2){ 
8330            
8331           if(valor.split(",")[1].length == 1) 
8332              valor += "0"; 
8333            
8334         }else 
8335           valor += ",00"; 
8336
8337       
8338      return valor; 
8339
8340 
8341  function ajustarCasasDecimaisSemArredondar(numero, casas) { 
8342    const str = numero + '' 
8343    const arr = str.split('.') 
8344    return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0')) 
8345
8346 
8347  function possuiCriteriosDesconto2022(dt) { 
8348    return dt.substring(dt.lastIndexOf('/') + 1) >= 2022 
8349      && ( 
8350        $('[name="tipoCurso"]').val() == 'livre' 
8351        || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
8352        || $('[name="tipoCurso"]').val() == 'extensao' 
8353
8354
8355 
8356  function strToFloat(str) { 
8357    const separator = str.includes(',') ? ',' : '.' 
8358 
8359    const numArr = str.split(separator) 
8360    const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.') 
8361    const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : '' 
8362    return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0')) 
8363
8364 
8365      /** 
8366     * Compare date formatted as "YYYY-MM-DD" with the current date 
8367     * Return: 
8368     *  -1  if dateStr < today 
8369     *   0  if dateStr == today 
8370     *   1  if dateStr > today 
8371     */ 
8372    function compareDates(dateStr1, dateStr2) { 
8373 
8374      const convertDate = (dateStr) => { 
8375        if (typeof dateStr !== 'string') throw new TypeError('dateStr must be a string with format YYYY-MM-DD'); 
8376        const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/); 
8377        if (!match) throw new Error('invalid format. Use YYYY-MM-DD'); 
8378        const [, yy, mm, dd] = match; 
8379        return Date.UTC(Number(yy), Number(mm) - 1, Number(dd)); 
8380
8381 
8382      const date1 = convertDate(dateStr1); 
8383      const date2 = convertDate(dateStr2); 
8384      if (date1 < date2) return -1; 
8385      if (date1 > date2) return 1; 
8386      return 0; 
8387
8388 
8389 
8390  function possuiMensalidadeCampanha(oferta) { 
8391     
8392    const dataInicio = oferta.dataInicio.split('/').reverse().join('-'); 
8393    const precoParcelaCartoes = parseFloat(oferta.precoParcelaCartoes.replace(',','.')); 
8394    const precoParcelaBoleto = parseFloat(oferta.precoParcelaBoleto.replace(',','.')); 
8395     
8396    if(!oferta.precoVendaMaxParcelaOferta  
8397    || (oferta.precoVendaMaxParcelaOferta != 99 && precoParcelaCartoes != 99 && precoParcelaBoleto != 99 && compareDates(dataInicio, '2025-12-31') <= 0) 
8398    || (oferta.precoVendaMaxParcelaOferta != 109 && precoParcelaCartoes != 109 && precoParcelaBoleto != 109 && compareDates(dataInicio, '2026-01-01') >= 0) 
8399
8400      return false 
8401 
8402    if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio') 
8403      return true 
8404 
8405    if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
8406      return true 
8407 
8408    if($('[name="modalidades"]').val() == 'qualificacao-profissional') 
8409      return true 
8410     
8411    return false 
8412
8413    
8414  function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) { 
8415    let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
8416    temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta) 
8417 
8418    // Define o texto singular ou plural 
8419    var textoHorario = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
8420        "Horário e dia da aula:" : 
8421        "Horário e dias das aulas:"; 
8422     
8423    const btnLocalReal = function(oferta){ 
8424 
8425      // NOVA LÓGICA: Define o texto (Singular/Plural) 
8426      var textoOndeAcontece = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
8427            "Onde a aula irá acontecer?" : 
8428            "Onde as aulas vão acontecer?"; 
8429       
8430          var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido))  ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`; 
8431       
8432      btn += (localLivreOnline(oferta.localEspacoExterno)) ? 
8433            `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#"> 
8434            <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>` 
8435            : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#"> 
8436            <i class="fas fa-user"></i>` + textoOndeAcontece + `</a>`; 
8437       
8438        btn += `</div>`; 
8439         
8440      return btn; 
8441     
8442
8443 
8444    // Card Oferta 
8445     
8446    let result = ` 
8447        <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
8448 
8449          <div class="ssp-card-oferta-curso"> 
8450 
8451            <div class="content-data-dias"> 
8452 
8453              <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none"> 
8454                <h6 style="color:white;background-color:#ff7157;border-radius: 5px;padding: 8px 0px;width: 60%;font-size: 12px;margin-top: 0;"><strong>Turma iniciada, comece já!</strong></h6> 
8455              </div> 
8456 
8457 
8458              <div> 
8459                <small class="ssp-card-oferta-curso__title-item">Período:</small> 
8460                <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6> 
8461	          </div> 
8462	 
8463              <div class="content-horario-dias-semana"> 
8464	 
8465                <div class="horario"> 
8466                  <small class="ssp-card-oferta-curso__title-item">` + textoHorario + `</small> 
8467                </div> ` + 
8468	 
8469                `<div class="ssp-card-oferta-curso__dia-hora_content"> 
8470                  ` + diasSemanaHTML + ` 
8471	              </div> 
8472	 
8473	          </div> 
8474	 
8475      ` + btnLocalReal(oferta); 
8476 
8477      result = result + ` 
8478        </div> 
8479
8480      
8481      if(excecaoCursoGratuito(oferta)){ 
8482        result += montaRestanteHTMLexcecaoCursoGratuito(index,oferta); 
8483   	  	return result; 
8484
8485       
8486      //Regra adicionada em 04/01/22 devido aos cursos de Garçon e Cozinheiro. Definimos como regra geral que caso botaoCompra seja falso, não faz sentido mostrar os valores 
8487      //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498 
8488      const estaSemValorOferta =   oferta.botaoCompraOferta == ''  
8489                          || oferta.botaoCompraOferta == 'false'  
8490                          || !oferta.precoVendaOferta  
8491                          || !oferta.precoCheioOferta  
8492                          || !oferta.precoVendaMaxParcelaOferta 
8493                          || strToFloat(oferta.precoVendaOferta) == 0 
8494                          || strToFloat(oferta.precoCheioOferta)  == 0 
8495                          || strToFloat(oferta.precoVendaMaxParcelaOferta)  == 0 
8496      
8497      //Trecho inicial do Bolsa de estudo 
8498      result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `"> 
8499                  <div class="ssp-card-oferta__info-turma-content"> 
8500                    <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6> 
8501                  </div> 
8502                  <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>    
8503                </div>                
8504
8505     
8506    if(estaSemValorOferta) { 
8507      result = result + ` 
8508      		<div class="content-buttons hide"> 
8509			  </div> 
8510
8511      return result; 
8512
8513 
8514	 
8515    //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra" 
8516    result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `"> 
8517                  <div class="ou-separator-desconto">Ou</div> 
8518                  <button type="button" class="btn-show-price"> 
8519                    <p>Saiba mais sobre:</p> 
8520                    <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')"> 
8521                      <i class="fas fa-money-bill"></i> 
8522                      <span>Valores para compra</span> 
8523                    </div> 
8524                  </button> 
8525                </div> 
8526
8527 
8528    result = result + ` 
8529          <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `"> 
8530
8531         
8532    if( temDesconto && !ehCursoTrampolim ) { 
8533      result = result + ` 
8534            <div class="ssp-card-oferta__info-turma-content"> 
8535              <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6> 
8536            </div> 
8537	 
8538            <div class="block-valor-desconto"> 
8539	          	 
8540            <div class="tag-label-desconto"> 
8541              <small class="ssp-card-oferta-curso__title-item">Valor com </small> 
8542              <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span> 
8543	      </div> 
8544	 
8545            <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar((strToFloat(oferta.precoVendaOferta)/strToFloat(oferta.numeroMaxParcelasOferta))/2, 2)) + `</h6> 
8546 
8547            <div class="ssp-card-oferta-curso__desconto-content"> 
8548              <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p> 
8549              <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p> 
8550            </div> 
8551
8552           
8553      if($('[name="tipoCurso"]').val() == 'extensao') { 
8554        result = result + `<p class="modal-extensao_txteconomiza my-2">* Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços, estudantes ou ex-estudantes de cursos técnicos no Senac ou para quem já finalizou o Ensino Médio Técnico no Senac.</p></div>` 
8555      } else { 
8556        result = result + `<p class="modal-extensao_txteconomiza my-2">*Válido para quem trabalha ou tem sua própria empresa no setor de comércio e serviços.</p></div>` 
8557
8558   
8559      result = result + ` 
8560          <div class="ou-separator-desconto">Ou</div> 
8561       
8562          <div class="block-valor-total"> 
8563 
8564            <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small> 
8565 
8566            <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8567 
8568            <div class="ssp-card-oferta-curso__desconto-content"> 
8569              <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p> 
8570            </div> 
8571             
8572          </div> 
8573
8574                 		 }else{ 
8575                 			 
8576      // itens que são diferentes entre técnico e livres comprado a extensão 
8577      if($('[name="tipoCurso"]').val() == 'extensao'){ 
8578        result = result + ` 
8579 
8580          <div class="block-valor-total"> 
8581 
8582            <div class="investimento" id="container_investimento_` + index + `"> 
8583 
8584              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
8585 
8586              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6> 
8587 
8588              <div class="ssp-card-oferta-curso__desconto-content"> 
8589                <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p> 
8590              </div> 
8591 
8592            </div>   
8593 
8594          </div> 
8595
8596      } else { 
8597        result = result + ` 
8598          <div class="block-valor-total"> 
8599            <div class="investimento" id="container_investimento_` + index + `"> 
8600
8601   
8602        // Não mostrar mensagem de 30% de desconto em casos especificos 
8603        if(temDesconto){ 
8604          result = result + ` 
8605              <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small> 
8606
8607
8608   
8609        if(oferta.precoCheioOferta == oferta.precoVendaOferta) {        
8610          result = result + ` 
8611              <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small> 
8612              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8613 
8614              <div class="ssp-card-oferta-curso__desconto-content"> 
8615                <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
8616              </div> 
8617            </div> 
8618            </div> 
8619          `   
8620        } else { 
8621          result = result + ` 
8622              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
8623              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8624 
8625              <div class="ssp-card-oferta-curso__desconto-content"> 
8626                <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p> 
8627                <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
8628              </div> 
8629            </div> 
8630            </div> 
8631          `    
8632
8633
8634
8635 
8636    let dataBtnComprar = getObjBtnComprar(oferta); 
8637     
8638    // itens que são diferentes entre técnico e livres comprado a extensão   
8639    result = result + ` 
8640 
8641              <div class="ssp-card-oferta-curso__formas-pagamento-content"  id="container_forma_pgto_` + index + `"> 
8642                 
8643                <span>Saiba mais sobre:</span> 
8644 
8645                <div> 
8646                  <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i> 
8647                  <a id="myBtn_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__formas-pagamento-content__title" style="font-weight: 600;" href="#">` + (temDesconto ? 'Descontos e pagamento' : 'Descontos e parcelamento') + `</a> 
8648                </div> 
8649 
8650              </div> 
8651 
8652            <div class="content-buttons"> 
8653 
8654              <div class="ssp-btn-group__content botoes-oferta-container_` + index + `"> 
8655 
8656				<a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprar.dataEspacoEx + `" data-unidade="` + codigoUnidade + `" data-evento="` + oferta.codigoOferta + `" data-destino-compra="` + oferta.destinoCompra + `" data-index="` + index + `"  class="btn btn-lg btn-success w-100 mt-3 ` + dataBtnComprar.classeBotao + `" style="font-size:16px;font-weight: 600;">` + dataBtnComprar.textoBotao + `</a> 
8657 
8658              </div> 
8659 
8660            </div> 
8661 
8662          </div> 
8663 
8664        </div> 
8665
8666 
8667    return result 
8668
8669   
8670   function montaRestanteHTMLexcecaoCursoGratuito(index, oferta){ 
8671  		  
8672	  	  let dataBtnComprarExcecao = getObjBtnComprar(oferta);	   
8673	  	  let resultModalidade =  
8674
8675	  	      <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `"> 
8676	  	      <div class="ssp-card-oferta__info-turma-content"> 
8677	           	 <h6 class="ssp-card-oferta__info-turma">Curso gratuito</h6> 
8678	        	  </div> 
8679	  	       <div class="block-valor-total"> 
8680	  	        <div class="investimento" id="container_investimento_` + index + `"> 
8681	  	           <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>R$ 0,00</h6> 
8682	  	        </div> 
8683	  	        </div> 
8684	  	        <div class="content-buttons"> 
8685	  	 
8686	  	          <div class="ssp-btn-group__content botoes-oferta-container_` + index + `"> 
8687	  	 
8688	  	            <a href="#a" id="btnComprar_` + index + `" data-espaco-ex="` + dataBtnComprarExcecao.dataEspacoEx + `" data-unidade="` + codigoUnidade + `" data-evento="` + oferta.codigoOferta + `" data-destino-compra="` + oferta.destinoCompra + `" data-index="` + index + `"  class="btn btn-lg btn-success w-100 mt-3 ` + dataBtnComprarExcecao.classeBotao + `" style="font-size:16px;font-weight: 600;">FAZER MATRÍCULA</a> 
8689	  	 
8690	  	          </div> 
8691	  	 
8692	  	        </div> 
8693	  	        </div> 
8694	  	        </div> 
8695
8696
8697	  	return resultModalidade;	   
8698  	   
8699
8700 
8701   
8702  var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">' 
8703     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">' 
8704     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">' 
8705 
8706    htmlModalLocalRealizacao += '{tituloLocalRealizacao}' 
8707          
8708    htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
8709    htmlModalLocalRealizacao += '</div>' 
8710    htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">' 
8711    htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
8712    htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
8713    htmlModalLocalRealizacao += '<address>' 
8714    htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
8715    htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
8716    htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
8717    htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
8718    htmlModalLocalRealizacao += '</address>' 
8719    htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
8720    htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>' 
8721    htmlModalLocalRealizacao +='</div>' 
8722    htmlModalLocalRealizacao +='</div>' 
8723    htmlModalLocalRealizacao +='</div>' 
8724    htmlModalLocalRealizacao +='</div>'; 
8725   
8726    var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">' 
8727      htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">' 
8728    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">' 
8729    htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>' 
8730    htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
8731    htmlModalAntesCompra += '</div>' 
8732    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">' 
8733    htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
8734    htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
8735    htmlModalAntesCompra += '<address>' 
8736    htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
8737    htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
8738    htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
8739    htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
8740    htmlModalAntesCompra += '</address>' 
8741    htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
8742    htmlModalAntesCompra += '{componentBuyConfirmation}' 
8743    htmlModalAntesCompra += '<a id="btnBolsaLocal_{index}" class="btn btn-lg btn-info w-100 mt-3" href="{linkBtnBolsa}" target="_blank" style="display:none;">OK, inscrever para bolsa</a>' 
8744    htmlModalAntesCompra += '<a class="ssp-modal-local-realizacao__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_{index}" href="#a" >Selecionar outra turma</a>' 
8745    htmlModalAntesCompra +='</div>' 
8746    htmlModalAntesCompra +='</div>' 
8747    htmlModalAntesCompra +='</div>' 
8748    htmlModalAntesCompra +='</div>'; 
8749          
8750   var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">' 
8751   	 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'  
8752     htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>' 
8753     htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>' 
8754     htmlSlickAreaDiasSemana += '</p>' 
8755   	 htmlSlickAreaDiasSemana += '</div>'; 
8756    	         
8757      
8758  //Montar object push - google tag manager - 5 
8759  function criaItensEcommerce(ofertas){ 
8760 
8761    let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome 
8762 
8763    let dadosCurso = { 
8764      //Pegar do freemarker  
8765        tituloComercial : $('[name="tituloComercial"]').val(), 
8766        tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(), 
8767        formato : $('[name="formato"]').data("formato") 
8768
8769 
8770    let ecommerceObject = { 
8771 
8772      item_id: "", //codOferta - oferta, 
8773			item_name: "", //Nome do curso - curso, 
8774			affiliation: "", //nome da unidade - oferta, 
8775			currency: "BRL", //Moeda - "BRL", 
8776			discount: "", //desconto - oferta, 
8777			index: "", //indice da lista - i, 
8778			item_brand: "Senac SP", //"Senac SP", 
8779			item_category: "", //categoria do curso - curso, 
8780			item_list_id: "", //"60", 
8781			item_list_name: "", //"São Carlos" - Oferta, 
8782			item_variant: "", //modalidade - curso, 
8783			price: "", //preco cheio - oferta, 
8784			quantity: 1 
8785 
8786
8787 
8788    let itensEcommerce = new Map(); 
8789 
8790    for(var i = 0; i < ofertas.length; i++){ 
8791 
8792      itensEcommerce.set(ofertas[i].codigoOferta, { 
8793 
8794            item_id: ofertas[i].codigoOferta, //codOferta - oferta, 
8795            item_name: dadosCurso.tituloComercial, //Nome do curso - curso, 
8796            affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta, 
8797            currency: "BRL", //Moeda - "BRL", 
8798            discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta, 
8799            index: i, //indice da lista - i, 
8800            item_brand: "Senac SP", //"Senac SP", 
8801            item_category: dadosCurso.tipoCurso, //categoria do curso - curso, 
8802            item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60", 
8803            item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta, 
8804            item_variant: dadosCurso.formato, //modalidade - curso, 
8805            price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta, 
8806            quantity: 1 
8807 
8808
8809
8810
8811 
8812    return itensEcommerce; 
8813
8814   
8815  //EMED - ELEMENTOS DINAMICOS 
8816  const htmlSlickAreaEmed = function(oferta){ 
8817    var btnid = 'myBtn_' + oferta.indice; 
8818    const diasHorarios = function(oferta){ 
8819      return oferta.diasDaSemanaOferta.join(', ').toLowerCase();  
8820       
8821
8822 
8823 
8824    return ` 
8825        <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `"> 
8826   
8827        <div class="ssp-ofertas-emed__card-info-turma"> 
8828   
8829            <div class="item-content"> 
8830                <i class="fas fa-calendar-alt calendar-icon-turma"></i> 
8831                <p class="title-turma">`+ oferta.titulo +`</p> 
8832                <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span> 
8833            </div> 
8834   
8835            <div class="content-previsao-inicio-termino"> 
8836   
8837                <div class="item-content"> 
8838                    <span class="text-default">Previsão de início:</span> 
8839                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span> 
8840                </div> 
8841   
8842                <div class="item-divisor"></div> 
8843   
8844                <div class="item-content"> 
8845                    <span class="text-default">Previsão de término:</span> 
8846                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span> 
8847                </div> 
8848   
8849            </div> 
8850   
8851   
8852            <div class="item-divisor"></div> 
8853   
8854            <div class="item-content"> 
8855                <span class="text-default">Dias e horários das aulas:</span> 
8856                <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span> 
8857                <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span> 
8858            </div> 
8859             
8860        </div> 
8861   
8862        <div class="ssp-ofertas-emed__card-info-investimento"> 
8863            <p class="title-investimento">Investimento anual:</p> 
8864   
8865            <div class="item-content-investimento"> 
8866                <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span> 
8867                <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span> 
8868            </div> 
8869   
8870            <div class="item-content-investimento"> 
8871                <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p> 
8872            </div> 
8873   
8874            <div class="item-content-investimento"> 
8875                <i class="fas fa-credit-card icon-cartao-credito"></i> 
8876                <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a> 
8877            </div> 
8878               
8879        </div> 
8880   
8881    </div> 
8882 
8883    `; 
8884
8885   
8886    
8887   function loadCursosVocePodeGostar(){ 
8888       
8889    if(isEmed){ 
8890      var url = urlSearchCursosPodeGostarEmed 
8891        .replace('\{groupId\}', groupId) 
8892        .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val()) 
8893        .replace('\{limit\}', 12) 
8894        .replace('\{articleId\}', $('[name="articleId"]').val()); 
8895    }else{ 
8896      var url = urlSearchCursosPodeGostar 
8897        .replace('\{companyId\}',themeDisplay.getCompanyId()) 
8898        .replace('\{groupId\}', groupId) 
8899        .replace('\{userId\}',themeDisplay.getUserId()) 
8900        .replace('\{articleId\}',$('[name="articleId"]').val()) 
8901        .replace('\{limit\}', 12); 
8902
8903 
8904   
8905       $.ajax({ 
8906           url :  url, 
8907           type : 'get', 
8908           beforeSend: function(){ 
8909             loading('#slider-curso'); 
8910
8911       }) 
8912       .done(function(cursos){ 
8913          
8914         if(cursos.length > 0){ 
8915   
8916           cursos = JSON.parse(cursos); 
8917            
8918           if(isEmed) cursos = cursos['cursos']; 
8919            
8920           if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none'); 
8921           else { 
8922             $('#section-cursos-voce-pode-gostar').addClass('d-none'); 
8923             return; 
8924
8925            
8926           var articles = []; 
8927            
8928            $.each(cursos, function(k, c){ 
8929             articles.push(c.articleId); 
8930            }); 
8931             
8932           //Verifica a situação dos botoes de inscrições e bolsa 
8933          $.ajax({ 
8934                url :  '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','), 
8935                type : 'get' 
8936            })  
8937            .done(function(infoBotoes){ 
8938               
8939              if(infoBotoes.length > 0) { 
8940                 
8941                  infoBotoes = JSON.parse(infoBotoes); 
8942                   
8943                  $('#slider-curso').empty(); 
8944   
8945                      $.each(cursos, function(k, c){ 
8946                    	  $('#slider-curso').append(buildCardCurso(c, infoBotoes)); 
8947         
8948                      }); 
8949         
8950                      $('#slider-curso').addClass( 
8951                      'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar'); 
8952         
8953                      sliderCurso('.slick-area-cursos-pode-gostar'); 
8954
8955            }); 
8956
8957   
8958        }) 
8959        .fail(function(jqXHR, textStatus, msg){ 
8960            // alert(msg); 
8961        }); 
8962   
8963
8964   
8965   /* 
8966    * Armazena a navegação em cookies, se habilitado 
8967    */ 
8968  $(document).on("click", ".ck-curso", function() { 
8969      
8970  //Verifica se o cookie está habilitado 
8971   if(getCookie('portalSenacCookie') != null){ 
8972      
8973    var articleId = $(this).data('ck'); 
8974    manageCookieArray('ck-cursos', articleId); 
8975        
8976
8977   
8978   }); 
8979   
8980   
8981 
8982   
8983   
8984  $(function(){ 
8985   
8986   if($('#unidades-ofertas').find('option').length ==0){ 
8987   
8988     $('.ssp-container-selecione-unidade').addClass('d-none') 
8989   
8990
8991   
8992  }); 
8993   
8994     function avisoNovasTurmas(){ 
8995        
8996       
8997       window.event.preventDefault() 
8998         
8999       //var unidadeSelecionada = $('#select-registro-interesse').val(); 
9000       //este select tem 2 valores separados por @ -> categoryId@codUnidade 
9001      //  var unidadeSelecionada = $('#unidades-ofertas').val(); 
9002        
9003       //Código fixo quando Senac Ao Vivo 
9004       var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1]; 
9005         
9006      //  if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){ 
9007          
9008         //Se ja tiver logado , redireciona para o registro 
9009         if(getCookie('ticket') == null){ 
9010            
9011           //Abre modal login 
9012               $('#modal-login').removeClass('d-none'); 
9013            
9014         }else{ 
9015            
9016          abrirModalRegistroInteresse(codUnidadeSelectRegInt); 
9017                  
9018            verificaBtnEnviarRegistroInteresseAtivo(); 
9019
9020          
9021         window.onclick = function(event) { 
9022            $('[id="modal-registro-interesse"]').each(function(index,_modal){ 
9023                if (event.target == _modal) { 
9024                   $('#modal-registro-interesse').addClass('d-none'); 
9025                   $("body").removeClass("overflow-hidden") 
9026
9027            }); 
9028
9029              
9030      //  } 
9031
9032     function login(){ 
9033      var unidadeSelecionada 
9034      var codUnidadeSelectRegInt 
9035      doLogin({ 
9036        user: $('#login-email-modal').val(), 
9037        pass: $('#login-password-modal').val(), 
9038        btnLoadingSelector: '#btnLogin', 
9039        before: () => { 
9040          $('#mensagem-erro-login').addClass('d-none') 
9041           
9042          unidadeSelecionada = $('#unidades-ofertas').val(); 
9043          codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1]; 
9044        }, 
9045        done: (data) => { 
9046          var loginData = JSON.parse(data); 
9047           
9048          if(loginData.status == 200 || loginData.status == 201){				 
9049            //Após logar-se, exibe o modal p/registro de interesse 
9050            abrirModalRegistroInteresse(codUnidadeSelectRegInt); 
9051            verificaBtnEnviarRegistroInteresseAtivo(); 
9052            //esconde o modal de login 
9053            $('#modal-login').addClass('d-none'); 
9054          }  
9055        }, 
9056        errorMessageSelector: '#mensagem-erro-login', 
9057        error: (err) => console.error(err) 
9058      }) 
9059
9060   
9061  function registroSelecionaTodosDias(){ 
9062     
9063    if($(this).hasClass('ssp-week-day-active')){ 
9064      $(this).removeClass('ssp-week-day-active') 
9065       $('.ssp-week-day').removeClass('ssp-week-day-active') 
9066    }else{ 
9067      $(this).addClass('ssp-week-day-active') 
9068      $('.ssp-week-day').addClass('ssp-week-day-active') 
9069
9070        
9071    verificaBtnEnviarRegistroInteresseAtivo(); 
9072
9073   
9074  function registroSelecionaTodosPeriodos(){ 
9075     
9076    if($(this).is(':checked')){ 
9077      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true); 
9078    }else{ 
9079      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false); 
9080
9081     
9082    verificaBtnEnviarRegistroInteresseAtivo(); 
9083
9084  $('.turmas-registro-interesse input[type=checkbox]').on('click', function() { 
9085    var $selecionado = $(this); 
9086    if ($selecionado.is(":checked")) { 
9087      $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false); 
9088      $selecionado.prop("checked", true); 
9089    } else { 
9090      $selecionado.prop("checked", false); 
9091
9092}); 
9093     function enviarRegistroInteresse(){ 
9094       
9095	  const codigoUsr = getCookie('codigo'); 
9096	   
9097	  if(codigoUsr == null){ 
9098		  //Sem o cookie refaz o login 
9099		  $('#modal-registro-interesse').addClass('d-none'); 
9100	      $('body').removeClass('overflow-hidden'); 
9101	      $('#modal-login').removeClass('d-none'); 
9102	      return; 
9103
9104	   
9105      var codigoFT = $('[name="codigoFT"]').val(); 
9106       
9107      var unidades = new Set(); 
9108       
9109      var diasSemana = ''; 
9110       
9111      //Senac ao vivo nao tem opçao de dias da semana nem unidades 
9112      if(isAoVivo){ 
9113        unidades.add(codUnidadeSenacAoVivo); 
9114      }else{ 
9115          $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
9116              if($(this).hasClass('ssp-week-day-active')){ 
9117                diasSemana += $(this).text()+','; 
9118
9119          }); 
9120             
9121          if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1); 
9122           
9123          $.each($('.ssp-card-registro-interesse__select'), function(k,item){ 
9124               
9125            unidades.add(item.value); 
9126          }); 
9127
9128 
9129       
9130      var periodos = ''; 
9131       
9132      $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
9133        if($(this).is(':checked')){ 
9134          periodos += $(this).val()+','; 
9135
9136      }); 
9137 
9138      var turmas = ''; 
9139 
9140      $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) { 
9141          if ($(this).is(':checked')) { 
9142              turmas += $(this).val() + ','; 
9143
9144      }); 
9145 
9146      if (periodos.length > 0) periodos = periodos.slice(0, -1); 
9147      if (turmas.length > 0) turmas = turmas.slice(0, -1); 
9148 
9149      var usuarioNotificado = false; 
9150       
9151      loadingSubmitButton('#enviar-registro-interesse-btn'); 
9152 
9153      unidades.forEach(function(codigoUnidade) { 
9154          var data = { 
9155              codigoFT: codigoFT, 
9156              codigo: codigoUsr, 
9157              diasSemana: diasSemana, 
9158              periodos: periodos, 
9159              turmas, turmas, 
9160              codigoUnidade: codigoUnidade, 
9161              interesseBolsa: 'N', 
9162              isEmed: isEmed ? 'S' : 'N' 
9163          }; 
9164 
9165          const url = urlRegistroInteresse; 
9166 
9167          $.ajax({ 
9168              url: url, 
9169              method: 'POST', 
9170              data: JSON.stringify(data), 
9171              headers: { 
9172                  'Accept': 'application/json', 
9173                  'Content-Type': 'application/json' 
9174              }, 
9175          }).done( 
9176              function(retornoData) { 
9177 
9178                  var retornoData = JSON.stringify(retornoData); 
9179 
9180                  if (retornoData.length > 0) { 
9181             
9182                    cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
9183                     
9184                      var retorno = JSON.parse(retornoData); 
9185 
9186                      if (retorno.status == 200 || retorno.status == 201) { 
9187               
9188                        //Evita que o usuário recebe um email para cada unidade de interesse 
9189                        if(usuarioNotificado) return; 
9190                         
9191                          //Mensagem de sucesso registro interesse 
9192                          $('#modal-registro-interesse-sucesso').removeClass('d-none'); 
9193 
9194                          var prefixUrl = themeDisplay.getLayoutRelativeURL(); 
9195 
9196                          if (prefixUrl.indexOf('staging/') > 1) 
9197                              prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8); 
9198                          else 
9199                              prefixUrl = HOST; 
9200 
9201                          $('#btn-voltar-home').attr('href', prefixUrl); 
9202 
9203                          //Busca os dados do nome do usuário logado 
9204                          var username = getCookie('name').split(' ')[0]; 
9205 
9206                          //Prioridade para nomeSocial 
9207                          if (getCookie('nome_social') != null) { 
9208                              var nomeSocial = getCookie('nome_social').replace(/['"]+/g, ''); 
9209 
9210                              if (nomeSocial.length > 0) username = getCookie('nome_social'); 
9211 
9212
9213 
9214                          username = username.replace(/['"]+/g, ''); 
9215						   
9216                          var unidadesSel = getUnidadesSelecionadasRI(); 
9217                           
9218                          //Disara um email para o usuário interessado              
9219                          var data = { 
9220                              emailInteressado: getCookie('email'), 
9221                              nomeInteressado: username, 
9222                              tituloCurso: $('.ssp-card-detalhe-curso__title').text(), 
9223                              unidades: unidadesSel.unidades, 
9224                              unidadesPrefix: unidadesSel.unidadesPrefix 
9225                          }; 
9226 
9227                          $.ajax({ 
9228                              url: urlRegistroInteresseEmailInteressado, 
9229                              method: 'POST', 
9230                              data: JSON.stringify(data), 
9231                              headers: { 
9232                                  'Accept': 'application/json', 
9233                                  'Content-Type': 'application/json' 
9234                              }, 
9235                          }).done(function(retornoData) {}); 
9236 
9237              				usuarioNotificado = true; 
9238               
9239                          window.onclick = function(event) { 
9240                              $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) { 
9241                                  if (event.target == _modal){ 
9242                                    $('#modal-registro-interesse-sucesso').addClass('d-none'); 
9243                                    $('#modal-registro-interesse').addClass('d-none'); 
9244                                    $("body").removeClass("overflow-hidden"); 
9245
9246                              }); 
9247
9248 
9249                      } else { 
9250                          //Mensagem de erro registro interesse 
9251                          $('#modal-registro-interesse-erro').removeClass('d-none'); 
9252
9253                  } else { 
9254                      //Mensagem de erro registro interesse 
9255                      $('#modal-registro-interesse-erro').removeClass('d-none'); 
9256
9257              }).fail(function(){ 
9258				  cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
9259				  $('#modal-registro-interesse-erro').removeClass('d-none'); 
9260			  }); 
9261      }); 
9262
9263   
9264  function verificaBtnEnviarRegistroInteresseAtivo(){ 
9265     
9266    var diasSemanaSelecionado = false; 
9267    var periodoSelecionado = false; 
9268    var turmaSelecionada = false; 
9269    var politicaPrivacidadeSelecionado = false; 
9270     
9271     
9272    $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
9273      if($(this).is(':checked')) 
9274        periodoSelecionado = true; 
9275    }); 
9276 
9277    $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
9278      if($(this).is(':checked')) 
9279        turmaSelecionada = true; 
9280    }); 
9281     
9282    if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true; 
9283     
9284    var ativo = true 
9285     
9286    //Caso tenha algum dos selects de unidade sem uma opção válida selecionada 
9287    if(!isAoVivo) 
9288      ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length 
9289     
9290    ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado; 
9291     
9292    if(!isAoVivo && !isEmed){ 
9293       
9294        $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
9295            if($(this).hasClass('ssp-week-day-active')) 
9296              diasSemanaSelecionado = true; 
9297          }); 
9298      ativo = ativo && diasSemanaSelecionado; 
9299       
9300
9301 
9302    if(isEmed) 
9303      ativo = ativo && turmaSelecionada; 
9304     
9305    if(ativo) 
9306        $('#enviar-registro-interesse-btn').attr("disabled", false); 
9307    else 
9308        $('#enviar-registro-interesse-btn').attr("disabled", true); 
9309
9310   
9311    function loadPlanoCurso(){ 
9312       
9313      const urlGetPlanoCurso = urlPlanoCurso 
9314											 
9315      .replace('\{codigoFT\}',  $('[name="codigoFT"]').val()) 
9316      .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val()); 
9317   
9318        $.ajax({ 
9319            url:urlGetPlanoCurso, 
9320            method:'get', 
9321            crossDomain: true, 
9322            dataType: 'html', 
9323            success: function( data ) { 
9324   
9325   
9326              //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto) 
9327              $('#plano-curso').append('<br/>'+data);  
9328            }, 
9329            error: function(data){ 
9330               
9331              console.log('Não existe a URL do plano de curso'); 
9332								 
9333
9334         
9335          }); 
9336
9337     
9338  function checkCursoTrampolim(){ 
9339    return $('[name="codigoFT"]').val() == "24493";  
9340
9341   
9342  /*function verificaOfertaValida(oferta){ 
9343       
9344    if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta']  == '') 
9345      return false; 
9346     
9347    var atual = new Date(); 
9348   
9349    var dataOfertaPartes = oferta['dataInicio'].split('/'); 
9350     
9351    var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]); 
9352     
9353    var dataLimiteMatriculaOfertaPartes = ""; 
9354    var dataLimiteMatriculaOferta = ""; 
9355     
9356    if(oferta['dtLimiteMatricula'] != ""){ 
9357    dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-'); 
9358      dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());  
9359     
9360
9361     
9362     
9363    //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje  
9364    if(dataOferta <= atual) 
9365      if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" &&  atual.getTime() > dataLimiteMatriculaOferta.getTime())) 
9366        return false; 
9367     
9368    return true; 
9369  }*/ 
9370   
9371   
9372  function loadServerDate(){ 
9373   
9374    $.ajax({ 
9375      url:urlGetServerT, 
9376      method:'get', 
9377      dataType: 'json', 
9378      cache: 'false', 
9379      headers: { 
9380      'Cache-Control': 'no-store, no-cache, max-age=0', 
9381      'Expires': '0', 
9382      'Pragma': 'no-cache' 
9383      }, 
9384      success: function( data ) { 
9385        todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds); 
9386        startTimer(); 
9387
9388    }); 
9389     
9390
9391   
9392   function handleVisibilityChange() { 
9393     
9394     if (!document[hidden] ){ 
9395      restartTimer(); 
9396
9397     
9398
9399   
9400  function restartTimer(){ 
9401     
9402    if(restartTimeout == null){ 
9403      loadServerDate(); 
9404      restartTimeout = setTimeout(function(){ 
9405        restartTimeout = null; 
9406      }, 5000); 
9407
9408     
9409
9410    
9411	 function startTimer(){ 
9412		 
9413		var mSeconds = todayG.getTime(); 
9414		if(interval01 != null){ 
9415			clearInterval(interval01); 
9416
9417		interval01 = setInterval(function(){ 
9418			todayG.setTime(todayG.getTime() + 1000); 
9419		}, 1000); 
9420		 
9421		if(interval15 != null){ 
9422			clearInterval(interval15); 
9423
9424		interval15 = setInterval(function(){ 
9425			mSeconds = mSeconds + 15000; 
9426			todayG.setTime(mSeconds); 
9427		}, 15000); 
9428		 
9429
9430   
9431  function checkIsAoVivo(){ 
9432    isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp; 
9433
9434   
9435   
9436  //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta 
9437  function buscaProximaOferta(){ 
9438    //Zera variável que controla existência de ofertas com bolsa 
9439    //ofertasComBolsa = false; 
9440  	  
9441     //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas 
9442     if(carregouUltimaOferta)  
9443        return; 
9444 
9445     //Fazemos o cálculo do que está sendo exibido, para verificar se existe apenas um card 'escondido'. Caso tenha apenas um, a busca deve ser executada, caso contrário não.	 
9446     var totalOfertasSlick = $('#turmas-container .slick-area__item').length; 
9447     //Pegamos o índice da oferta do meio (central) 
9448     var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index')); 
9449 
9450     var totalOfertasADireita = totalOfertasSlick - currentSliderIndex; 
9451 
9452     //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca 
9453     if(totalOfertasADireita > 2)  
9454        return; 
9455 
9456	 startOfertaParam = endOfertaParam; 
9457	 endOfertaParam += 16; 
9458	  
9459     const codigoFT = $('[name="codigoFT"]').val(); 
9460  	 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
9461	 
9462  	 var unidadeCategoryId = ''; 
9463     var unidadeCodigoSelect = ''; 
9464  	 
9465  	if(isAoVivo){ 
9466  	   
9467  		$.each(objsTela.unidades, function(k,unidade){ 
9468  			unidadeCategoryId += unidade['categoryId']+','; 
9469      	}); 
9470  		 
9471  		//tirando ultima virgula 
9472  	    unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1); 
9473  	   
9474  	}else{ 
9475  		 var splitted = $('#unidades-ofertas').val().split("@"); 
9476  		 unidadeCategoryId = splitted[0]; 
9477       unidadeCodigoSelect = splitted[1]; 
9478
9479     
9480    var params = new URLSearchParams(); 
9481    params.set('codigoFTOferta',codigoFT) 
9482    params.set('dataEfetivaOferta',dataEfetivaOferta) 
9483    params.set('categoryIds',unidadeCategoryId) 
9484    params.set('start',startOfertaParam) 
9485    params.set('end',endOfertaParam) 
9486    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
9487    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
9488    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
9489 
9490    if($('#chkBolsa').prop('checked')){ 
9491    	params.set('considerarDataBolsaFutura', true) 
9492
9493     
9494    const url = urlSearchOferta + '?' + params.toString() 
9495 
9496    $.ajax({ 
9497      url:url, 
9498      method:'get', 
9499      dataType:'json' 
9500    }).done( 
9501      function(data){ 
9502         
9503        if(data.length > 0){ 
9504          var indiceOferta = startOfertaParam; 
9505 
9506        	for (var index = 0; index < data.length; index++) { 
9507        		 
9508				var ofertaJSON = data[index]; 
9509	            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
9510				             
9511	            //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta) 
9512	            if($('.codigoOferta_'+oferta.codigoOferta).length > 0){ 
9513	              console.log('Ja tem a oferta '+oferta.codigoOferta); 
9514	              carregouUltimaOferta = true; 
9515	              break; 
9516
9517	 
9518	            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
9519	            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds))); 
9520	      
9521	            ofertasMap.set(oferta.codigoOferta, oferta); 
9522	 
9523	            if(isAoVivo) 
9524	            	objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
9525	 
9526	             //O indice é igual ao ultimo elemento buscado - 1 
9527	             var i = indiceOferta; 
9528	             oferta['indice'] = i; 
9529	 
9530	             if(isAoVivo) 
9531	                codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
9532	             else codigoUnidade = unidadeCodigoSelect; 
9533	 
9534	              
9535	             montaHTMLOferta(oferta, i, codigoUnidade, true);  
9536	             montaHTMLModalFormaPgto(oferta, i, codigoUnidade);  
9537 
9538	             montaHTMLModalLocalRealizacao(oferta, i);  
9539	             montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
9540	             verificaBotaoBolsaSS(oferta); 
9541	             verificaCursoAprendizagem(i); 
9542	             verificaCursoTrampolim(i); 
9543	              
9544	             associaEventoBtnFormaPagamento(i); 
9545	             associaEventoBtnComprar(i);  
9546	             associaEventoBtnComprarDentroFormaPgto(i); 
9547	             associaEventoBtnLocalRealizacao(i); 
9548	             associaEventosFecharModal(i); 
9549 
9550                 if($('[name="tipoCurso"]').val() == 'extensao'){ 
9551                   associaEventoBtnConheca(i); 
9552                   associaEventoBtnComprarConhecaDescontoOk(i); 
9553                   associaEventoBtnComprarConhecaDescontoNot(i); 
9554                   associaEventoBtnAlunoNao(i); 
9555                   associaEventoBtnAlunoSim(i); 
9556                    
9557
9558                  
9559               indiceOferta++; 
9560
9561           
9562          controlaPaginaBolsa(); 
9563
9564
9565    ); 
9566     
9567
9568 
9569  function setUrlParam(key, value) { 
9570    const url = new URL(window.location.href) 
9571 
9572    if(value) 
9573      url.searchParams.set(key, value); 
9574    else 
9575      url.searchParams.delete(key); 
9576 
9577    window.history.pushState({}, '', url.toString()) 
9578
9579   
9580   function selectFilter(paramkey, el) { 
9581    setUrlParam(paramkey, el.prop("checked")) 
9582    const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url') 
9583    loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val()) 
9584 
9585    if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show() 
9586    else $('#msgFiltroAplicado').hide() 
9587
9588    
9589  function defineCurrentUrl(ev) { 
9590    const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url') 
9591 
9592    const hasPathWeb = window.location.pathname.includes('/web') 
9593    const hasPathGuest = window.location.pathname.includes('/guest') 
9594 
9595    let currentPath = window.location.pathname 
9596    currentPath = hasPathWeb ? currentPath.substring(4) : currentPath 
9597    currentPath = hasPathGuest ? currentPath.substring(6) : currentPath 
9598 
9599    objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, '')) 
9600 
9601    currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath 
9602    currentPath = hasPathGuest ? '/guest' + currentPath : currentPath 
9603    currentPath = hasPathWeb ? '/web' + currentPath : currentPath 
9604 
9605    if(keepURL()) 
9606    window.history.replaceState(window.history.state, '', currentPath + window.location.search) 
9607
9608   
9609  let isKeepURL = true   
9610  /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */ 
9611  function keepURL() { 
9612    const aux = isKeepURL 
9613    isKeepURL = false 
9614    return !aux 
9615
9616   
9617  loadServerDate(); 
9618  $(document).ready(function(){ 
9619 
9620    if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){ 
9621      document.location.href = '/erro-404' 
9622
9623     
9624    ehCursoTrampolim = checkCursoTrampolim(); 
9625    checkIsAoVivo(); 
9626    loadPlanoCurso(); 
9627    loadCursosVocePodeGostar(); 
9628 
9629    if(!isAoVivo) { 
9630      $('#unidades-ofertas').change(ev => { 
9631        mudarUnidade(ev) 
9632        defineCurrentUrl(ev) 
9633      }); 
9634
9635 
9636    const urlParams = new URLSearchParams(window.location.search) 
9637    $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true') 
9638    $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) ) 
9639     
9640    if($('#chkBolsa').length) { 
9641      $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true') 
9642      $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) ) 
9643      loadUnidades(!isAoVivo); 
9644    } else { 
9645      selectFilter('bolsa', $('#chkBolsa')) 
9646
9647           
9648      //Função para Montar breadcrumb Mobile 
9649   
9650      function breadcrumbMobile(){ 
9651   
9652		const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');   	  
9653    	   
9654        if ( $.trim(linkEl.html()) === 'Técnico'){ 
9655   
9656        	linkEl.attr("href", "/cursos-tecnicos"); 
9657   
9658        } else if ( $.trim(linkEl.html()) === 'Livre'){ 
9659       
9660           if(isAoVivo){ 
9661        	   	linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo') 
9662             	linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo"); 
9663           }else{ 
9664        	   	linkEl.attr("href", "/cursos-livres"); 
9665
9666        } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){ 
9667   
9668        	linkEl.attr("href", "/jovem-aprendiz"); 
9669   
9670        }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){ 
9671   
9672        	linkEl.attr("href", "/extensao-universitaria"); 
9673         
9674        }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){ 
9675        		   
9676            	linkEl.attr("href", "/ensino-medio-tecnico");	 
9677
9678   
9679
9680   
9681      breadcrumbMobile() 
9682       
9683    //Esconde elementos quando o curso é aprendizagem 
9684      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
9685        $('.ssp-section-novas-turmas').remove(); 
9686        $("div[class^='botoes-oferta-container_']").remove(); 
9687
9688   
9689     //retira os itens de dentro do container 
9690      $('.bg-').css('background-color','#e4e4e4') 
9691     $('.container.py-3').removeClass('container py-3') 
9692     //ajuste para versao 7.4 
9693     $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass() 
9694 
9695   
9696     //Fecha modal registro de interesse 
9697   
9698     $('#btn-close-Modal-registro-interesse').click(function(){ 
9699   
9700       $('#modal-registro-interesse').addClass('d-none') 
9701       $("body").removeClass("overflow-hidden") 
9702   
9703     }) 
9704   
9705      $( "#modal-registro-interesse" ).click( function(event) { 
9706   
9707         if(event.target.id==$('#modal-registro-interesse')[0].id){ 
9708               $(this).addClass('d-none') 
9709
9710   
9711      }); 
9712   
9713       
9714      //Aviso sobre interesse em turmas 
9715      $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse); 
9716      if(!isEmed){ 
9717        $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas); 
9718        $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias); 
9719      } else { 
9720        $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas) 
9721      }  
9722      $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos); 
9723   
9724      $('#btnLogin').click(function(){ 
9725        
9726        login() 
9727         
9728       }); 
9729       
9730       $('#btn-close-loginModal').click(function(){ 
9731           $('#modal-login').addClass('d-none') 
9732       }); 
9733        
9734       $('.ssp-week-day').not('#todosDias').click(function(){ 
9735   
9736           $(this).toggleClass('ssp-week-day-active'); 
9737           verificaBtnEnviarRegistroInteresseAtivo(); 
9738            
9739       }); 
9740        
9741       $('#add-unidade-regsitro-interesse').click(function(e){ 
9742           var element = $('.ssp-card-registro-interesse__select.unidades').first().clone(); 
9743           element.empty(); 
9744            element.append('<option value="" disabled selected>Selecione uma unidade</option>') 
9745                $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9746 
9747                    if(!unidade['selecionado']){      
9748                        element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
9749
9750 
9751                }); 
9752            element.change(changeSelectUnidades) 
9753 
9754   
9755           element.css('margin-top', '10px'); 
9756            
9757           if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
9758              element.attr("id", "select_" + cntSelectUnidades++) 
9759              $('#select-unidades-registro-interesse').append(element); 
9760          }    
9761 
9762          if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){ 
9763              $('#add-unidade-regsitro-interesse').addClass("d-none") 
9764
9765   
9766           verificaBtnEnviarRegistroInteresseAtivo(); 
9767       }); 
9768        
9769       $('#remove-unidade-regsitro-interesse').click(function(e){ 
9770          
9771         if($('.ssp-card-registro-interesse__select').length > 1){ 
9772          
9773              var element = $('.ssp-card-registro-interesse__select').last(); 
9774     
9775              var valueSelecionado = element.val(); 
9776 
9777              $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9778 
9779                  if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
9780                      unidade['selecionado'] = false; 
9781                      unidade['selectSelecionado'] = ""; 
9782
9783 
9784              }); 
9785              element.val(""); 
9786              cntSelectUnidades--; 
9787              element.change() 
9788 
9789              element.remove(); 
9790
9791   
9792         if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
9793              $('#add-unidade-regsitro-interesse').removeClass("d-none") 
9794
9795 
9796          verificaBtnEnviarRegistroInteresseAtivo(); 
9797       }) 
9798        
9799       $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){ 
9800         verificaBtnEnviarRegistroInteresseAtivo(); 
9801       }); 
9802   
9803       //Contador em ofertas de bolsas proximas 
9804       var cancel = setInterval(atualizaTempoAberturasBolsas, 1000); 
9805        
9806        // Manipua o breadcrumb para as regras do Senac 
9807          
9808        if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai") 
9809          $('ol.breadcrumb').find('li:first').remove(); 
9810         
9811        var li = $('ol.breadcrumb').find('li:first'); 
9812   
9813        if(li.text().trim() == 'Cursos'){ 
9814       
9815          var primeiro = li.clone(); 
9816          primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home')); 
9817          li.parent().prepend(primeiro); 
9818       
9819          var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim(); 
9820          var tipoBreadcrumb = ''; 
9821           
9822          const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead")) 
9823           
9824          if(tipoCurso.includes("Cursos Livres")){ 
9825            if(isPresencialEad) { 
9826              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso); 
9827            } else { 
9828              tipoBreadcrumb = htmlBreadcrumb( 
9829                    isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',  
9830                  isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso); 
9831            }         
9832          }else if(tipoCurso.includes("Extensão")){ 
9833            if(isPresencialEad) { 
9834              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso); 
9835            } else { 
9836        	  	tipoBreadcrumb =  htmlBreadcrumb('/extensao-universitaria', tipoCurso); 
9837            }           
9838          }else if(tipoCurso.includes("Ensino Médio Técnico")){ 
9839            if(isPresencialEad) { 
9840              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso); 
9841            } else { 
9842              tipoBreadcrumb =  htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso); 
9843
9844          }else if(tipoCurso.includes("Jovem Aprendiz")){ 
9845            if(isPresencialEad) { 
9846              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso); 
9847            } else { 
9848              tipoBreadcrumb =  htmlBreadcrumb('/jovem-aprendiz', tipoCurso); 
9849
9850          }else{ 
9851            if(isPresencialEad) { 
9852              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso); 
9853            } else { 
9854              tipoBreadcrumb =  htmlBreadcrumb('/cursos-tecnicos', tipoCurso); 
9855
9856
9857           
9858          li.html(tipoBreadcrumb); 
9859         
9860          if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove(); 
9861        	 
9862
9863         
9864        $('#turmas-container').on('click', 'a.slick-next', function(e){ 
9865				 
9866        	 	e.preventDefault(); 
9867			    buscaProximaOferta(); 
9868			 
9869        }); 
9870 
9871        $('#turmas-container').on('click', 'button.slick-dots', function(){ 
9872 
9873             
9874       
9875        }); 
9876		 
9877        $(".next-mobile").on("click",function(e){  
9878        	 e.preventDefault();  
9879       	 	 
9880        	 acoesMobileSliderOfertas("left"); 
9881       	}); 
9882         
9883        $(".prev-mobile").on("click",function(e){  
9884        	e.preventDefault();  
9885	        
9886        	acoesMobileSliderOfertas("right");	 
9887      	}); 
9888         
9889        //ação de drag do card de ofertas no mobile 
9890        $('.oferta-slick-area').on('swipe', function(event, slick, direction){ 
9891           	acoesMobileSliderOfertas(direction); 
9892        }); 
9893         
9894        loadAlternadores() 
9895        let modalFormAprendizagem = document.querySelector('[data-modal="modal"]') 
9896        if(modalFormAprendizagem){ 
9897          // Create dinamic close buttom form 
9898          let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]') 
9899         
9900          btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem) 
9901         
9902
9903    
9904        $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){ 
9905           openModalFormAprendizagem(); 
9906         }) 
9907         
9908     }); 
9909   
9910  function htmlBreadcrumb(link, title, display){ 
9911	   
9912	  return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>'; 
9913	   
9914
9915   
9916  function acoesMobileSliderOfertas(direcao){ 
9917	   
9918       	if(direcao == "right"){ 
9919       		$("a.slick-prev").click();  
9920	       	 
9921        	if($('.slick-current').attr('data-slick-index') == "0") 
9922	       		 $('.prev-mobile').addClass('nextPrevOpacity'); 
9923	       	 
9924        	if($(".next-mobile").hasClass('nextPrevOpacity')) 
9925        		 $('.next-mobile').removeClass('nextPrevOpacity'); 
9926
9927       	 
9928       	 
9929		if(direcao == "left"){ 
9930	      	 $("a.slick-next").click(); 
9931	   	  
9932	   	  	if($(".prev-mobile").hasClass('nextPrevOpacity')) 
9933	     		 $('.prev-mobile').removeClass('nextPrevOpacity'); 
9934	   	   
9935	   	 	if(carregouUltimaOferta){ 
9936	   	 		var totalCardOfertas = $('#turmas-container .slick-area__item').length; 
9937	   	 		var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));   
9938	 
9939	   	 		//o card do meio é o último	 
9940				if(totalCardOfertas == (currentSliderIndex + 1)) 
9941					$('.next-mobile').addClass('nextPrevOpacity'); 
9942
9943
9944
9945   
9946  //habilitar/desabilitar registro de interesse 
9947  function habilitarRegistroInteresse(habilitar){ 
9948    var sectionRI = $('#section-registro-interesse') 
9949 
9950    if(isEmed) { 
9951      sectionRI.hide() 
9952      return; 
9953
9954 
9955    //Redmine #9309 - sempre irá mostrar 
9956    habilitar = true 
9957       
9958    if(habilitar) sectionRI.show() 
9959    else sectionRI.hide() 
9960
9961   
9962  function abrirModalRegistroInteresse(codUnidadeSelect){ 
9963	    $('#modal-registro-interesse').removeClass('d-none'); 
9964      $("body").addClass("overflow-hidden") 
9965      if(!isEmed){ 
9966	    $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text()); 
9967      } else { 
9968        $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar") 
9969        $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text()); 
9970
9971       
9972      $('.ssp-card-registro-interesse__select:not(#select_0)').remove(); 
9973      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9974        if(unidade['codigoUnidade'] == codUnidadeSelect){ 
9975            unidade['selecionado'] = true; 
9976            unidade['selectSelecionado'] = 'select_0'; 
9977        } else { 
9978            unidade['selecionado'] = false; 
9979            unidade['selectSelecionado'] = ""; 
9980
9981 
9982    }); 
9983    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
9984        return ordenar(a, b, 'nome'); 
9985    }); 
9986 
9987    $('#select_0').empty(); 
9988    $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>') 
9989        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9990 
9991          $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
9992             
9993        }); 
9994    $('#select_0').val(codUnidadeSelect); 
9995 
9996	 	if(isAoVivo){ 
9997	 		$('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none'); 
9998
9999     if(objsTela.unidadesRegistroInteresse.length > 1) { 
10000        $('#add-unidade-regsitro-interesse').removeClass("d-none") 
10001        $('#add-unidade-regsitro-interesse').show() 
10002        $('#remove-unidade-regsitro-interesse').show() 
10003      } else { 
10004        $('#add-unidade-regsitro-interesse').hide() 
10005        $('#remove-unidade-regsitro-interesse').hide() 
10006
10007
10008 
10009  $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades) 
10010  
10011 function changeSelectUnidades() { 
10012   var codUnidadeSelecionada = $(this).val(); 
10013   var idSelectSelecionado = $(this).attr('id') 
10014   $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
10015        if(unidade['codigoUnidade'] == codUnidadeSelecionada){ 
10016            unidade['selecionado'] = true; 
10017            unidade['selectSelecionado'] = idSelectSelecionado; 
10018        } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){ 
10019            unidade['selecionado'] = false; 
10020            unidade['selectSelecionado'] = ""; 
10021
10022 
10023    }); 
10024     
10025    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
10026        return ordenar(a, b, 'nome'); 
10027    }); 
10028 
10029    $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() { 
10030        var valueSelecionado = $(this).val(); 
10031        var idActualSelect = $(this).attr('id'); 
10032        $(this).empty(); 
10033        $(this).append('<option value="" disabled>Selecione uma unidade</option>') 
10034        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
10035 
10036            if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
10037                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
10038            }else if(!unidade['selecionado']){      
10039                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
10040
10041 
10042        }); 
10043        $(this).val(valueSelecionado) 
10044    }); 
10045     
10046   verificaBtnEnviarRegistroInteresseAtivo(); 
10047
10048 
10049   
10050 function ordenar(objA, objB, nomeAtributo){ 
10051	 	let a = (nomeAtributo) ? objA[nomeAtributo] : objA; 
10052	 	let b = (nomeAtributo) ? objB[nomeAtributo] : objB; 
10053	 
10054	 	return a.toString().localeCompare(b.toString()); 
10055
10056  
10057 function paramOrdem(xml){ 
10058	 	if(isEmed){ 
10059	 		var ordemPeriodo = ['MA', 'TA', 'NO']; 
10060	 		return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo); 
10061	 	}else{ 
10062	 		return xml.find('[name="dataInicioOferta"]').text(); 
10063
10064
10065  
10066 function getEtapaSelecionadaEmed(){ 
10067		var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo'); 
10068		 if(!btnEtapa) return ''; 
10069		 return btnEtapa.val(); 
10070
10071  
10072 function filtraOfertasEtapa(etapa, ofertas){ 
10073    if(!etapa) return []; 
10074    var ofertasEtapa = []; 
10075    var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; 
10076    var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'}; 
10077    var ultimoPeriodo = null, indexPeriodo; 
10078    ofertas = ofertas.sort(function(a, b){ 
10079       return ordenar(a, b, 'periodoDiaOferta'); 
10080    }); 
10081 
10082    $.each(ofertas, async (index, oferta)=> { 
10083      if(oferta['etapa'] == etapa){ 
10084        if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0; 
10085        ultimoPeriodo = oferta['periodoDiaOferta']; 
10086        oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || ''); 
10087        ofertasEtapa.push(oferta); 
10088
10089    }); 
10090      
10091     return ofertasEtapa; 
10092
10093  
10094 function formatarDataEmed(data, etapa, isDataFim){ 
10095	  
10096 	try{ 
10097 
10098 		var splitdata = data.split('/'); 
10099 		var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']; 
10100 	 	var mes = meses[parseInt(splitdata[1])-1]; 
10101 	 	 
10102 	 	var ano = splitdata[2]; 
10103 	 	 
10104 	 	if(isDataFim){ 
10105 	 		ano = parseInt(splitdata[2]); 
10106
10107 	 	 
10108 	 	return mes + '/' + ano; 
10109 	}catch(err){  
10110 		return data;  
10111
10112   
10113
10114  
10115 //EMED Mobile 
10116 function sliderOfertasEmed(){ 
10117	  
10118	 var tamScreen = $(window).width(); 
10119	 if(tamScreen < 1024){ 
10120	     $('.ssp-slick-ofertas-emed').slick({ 
10121	         slidesToShow: 1, 
10122	         slidesToScroll: 1, 
10123	         dots: false, 
10124	         infinite: false, 
10125	         adaptiveHeight: true, 
10126	         prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>', 
10127	         nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>', 
10128	         responsive: [ 
10129	 
10130
10131	                 breakpoint: 1200, 
10132	                 settings: { 
10133	                     slidesToShow: 1, 
10134	                     slidesToScroll: 1, 
10135	                     prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>', 
10136	                     nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>', 
10137	 
10138
10139	             }, 
10140
10141	                 breakpoint: 768, 
10142	                 settings: { 
10143	                     slidesToShow: 1, 
10144	                     slidesToScroll: 1, 
10145	                     prevArrow: '<button class="btn slick-prev ssp-slider-control-mobile__item-prev"><i class="fal fa-chevron-left mr-1"></i><span>Anterior</span></button>', 
10146	                     nextArrow: '<button class="btn slick-next ssp-slider-control-mobile__item-next"><span>Próximo</span><i class="fal fa-chevron-right ml-1"></i></button>', 
10147
10148
10149	 
10150
10151	 
10152	     }); 
10153 
10154
10155 
10156
10157 
10158function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){ 
10159	 
10160	let backpackPostRequest = {}; 
10161	backpackPostRequest.codOferta = codOferta; 
10162	backpackPostRequest.codUnidade = codUnidade; 
10163	backpackPostRequest.dt_efetiva = dataEfetiva; 
10164 
10165	 
10166	mochila.requestAccess(function(backpackPostRequest){ 
10167		 
10168		let urlMochila = '/o/senac-backpack-services/backpack'; 
10169		 
10170		if(getCookie("codMochila") != null){ 
10171			backpackPostRequest.codMochila = getCookie("codMochila"); 
10172			urlMochila = '/o/senac-backpack-services/updateBackpack';	 
10173		}	 
10174		$.ajax({ 
10175		    type: 'POST', 
10176		    url: urlMochila, 
10177		    headers: { 
10178		        "Content-Type":"application/json" 
10179		    }, 
10180            beforeSend: function(xhr){ 
10181            	xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila")); 
10182            	loadingSubmitButton(originElemSelector); 
10183            	$(originElemSelector + ' .loading-icon-button').css('height', 'unset'); 
10184            	if($(window).width() < 1024){ 
10185            		$(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%'); 
10186
10187            }, 
10188		    data : JSON.stringify(backpackPostRequest) 
10189		}).done(function(data) {  
10190			 
10191			let domain = ''; 
10192			if(getAmbiente() == 'hom' || getAmbiente() == 'prod') 
10193				domain = '.sp.senac.br'; 
10194			 
10195			writeCookie( 
10196					'codMochila',  
10197					(getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,  
10198					24, 
10199					domain 
10200			); 
10201			addItemSuccessMochila(); 
10202			 
10203		}).fail(function(xhr, status, error) { 
10204			 
10205			$('#modal-backpack-error').removeClass('d-none'); 
10206			 
10207	 	}).always(function(){ 
10208	 		 
10209	 		cleanLoadingSubmitButton( 
10210	 				originElemSelector,  
10211	 				originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR' 
10212	 		); 
10213	 		$('[id^="modalAntesCompra_"]').each(function(index, modal) { 
10214	 			modal.style.display = "none"; 
10215	 		}); 
10216	 		 
10217	 	}); 
10218		 
10219	}, backpackPostRequest); 
10220	 
10221
10222 
10223function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){ 
10224  
10225	var comp = null; 
10226		 
10227	if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2" && !excecaoCursoGratuito(oferta)){	 
10228		 
10229		comp = $("<button>") 
10230		.addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack") 
10231		.attr("offerCode",oferta.codigoOferta) 
10232		.attr("unitCode",codigoUnidade) 
10233		.attr("effectiveDate",dataEfetiva) 
10234		.text("OK, desejo comprar"); 
10235	 
10236	}else { 
10237		var textoBotaoConfirmacao = "OK, desejo comprar"; 
10238		 
10239		if(excecaoCursoGratuito(oferta)) 
10240			textoBotaoConfirmacao = "Ok, desejo fazer a matrícula"; 
10241					 
10242		comp = $("<a>") 
10243		.addClass("btn btn-lg btn-success w-100 mt-3") 
10244		.text(textoBotaoConfirmacao) 
10245		.attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta)) 
10246		.attr("target","_blank"); 
10247
10248	 
10249	comp.attr('id', 'btnCompraLocal_' + oferta.indice); 
10250	 
10251    return comp[0].outerHTML; 
10252     
10253
10254 
10255function getUnidadesSelecionadasRI(){ 
10256		var unidadesRI = []; 
10257		 
10258		try{ 
10259			 
10260			$('#select-unidades-registro-interesse').find('select').each((i,select) =>{ 
10261				var unidadeSel = select.selectedOptions[0].innerText; 
10262				if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel); 
10263			}); 
10264			 
10265			var unidadesExt = unidadesRI.join(', '); 
10266			 
10267			const lastIndex = unidadesExt.lastIndexOf(','); 
10268			 
10269			if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1); 
10270			 
10271			return { 
10272				'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')), 
10273				'unidades' : unidadesExt 
10274			}; 
10275			 
10276		}catch(err){ 
10277			 
10278			return { 
10279				'unidadesPrefix' : '', 
10280				'unidades' : '' 
10281			}; 
10282			 
10283
10284		 
10285
10286 
10287 
10288 
10289 
10290function addItemSuccessMochila(){ 
10291	 
10292	mochila.check(); 
10293	$('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text()); 
10294	$('#modal-backpack-success').removeClass('d-none'); 
10295	 
10296
10297 
10298$(document).on('click', '.btn-backpack', function(e){  
10299     
10300	addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate")); 
10301	 
10302}); 
10303 
10304$('#btn-voltar-modal-backpack-error').click(function () { 
10305    $('#modal-backpack-error').addClass('d-none'); 
10306}); 
10307 
10308$('#btn-voltar-modal-backpack-error').click(function () { 
10309    $('#modal-backpack-error').addClass('d-none'); 
10310}); 
10311 
10312$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () { 
10313    $('#modal-backpack-success').addClass('d-none'); 
10314}); 
10315 
10316$('.btn-mochila-finalizar-compra-success').click(function () { 
10317  // Montar object push - google tag manager - 6 
10318  sendEventEcommerce("begin_checkout", ofertaSelecionada); 
10319 
10320	mochila.verificaLogin(); 
10321	$('#modal-backpack-success').addClass('d-none'); 
10322	$('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none"); 
10323}); 
10324 
10325   function closeModalFormAprendizagem(){ 
10326           let modal = document.querySelector('[data-modal="modal"]') 
10327            
10328       modal.classList.remove('open-modal-form') 
10329      
10330
10331      
10332      
10333   function openModalFormAprendizagem(){ 
10334           let modal = document.querySelector('[data-modal="modal"]') 
10335            
10336       modal.classList.add('open-modal-form') 
10337      
10338
10339 
10340  function addEventBolsa() { 
10341    // Mostra o preco 
10342    const btnShowPrices = document.querySelectorAll('.btn-show-price') 
10343 
10344    btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard)) 
10345     
10346    if(!$('#chkBolsa').prop('checked')) 
10347      togglePriceCard() 
10348
10349 
10350  function togglePriceCard(selector){ 
10351    if(selector instanceof PointerEvent) return 
10352 
10353    if(!selector) selector = '' 
10354    else selector = '.' + selector 
10355     
10356    const btnPrices = document.querySelectorAll('.show-price-content'+selector) 
10357    const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector) 
10358    const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector) 
10359     
10360    btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide')) 
10361    contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show')) 
10362    contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))       
10363
10364   
10365  function getRegiaoName(key) { 
10366	  switch (key) { 
10367	    case "C": 
10368	      return "Capital"; 
10369	    case "I":             
10370	      return "Interior"; 
10371	    case "GS": 
10372	      return "Grande São Paulo e Litoral"; 
10373	    default: 
10374	      return "Sem Região"; 
10375
10376
10377 
10378	function criarOptionUnidadesPorRegiao(unidades) { 
10379	  let regioes = {} 
10380	  let unidadeFounded 
10381 
10382	  unidades.forEach(unidade => { 
10383	    if(!regioes[unidade.codRegiaoUnidade || 'N']) 
10384	      regioes[unidade.codRegiaoUnidade || 'N'] = [] 
10385 
10386	    regioes[unidade.codRegiaoUnidade || 'N'].push(unidade) 
10387	  }) 
10388 
10389	  Array.from(['C', 'I', 'GS', 'N']) 
10390	  .filter(key => Object.keys(regioes).includes(key)) 
10391	  .forEach(key => { 
10392	    const unidadesDaRegiao = regioes[key] 
10393 
10394	    const optionDisabled = $('<option>') 
10395	    optionDisabled.attr('label', getRegiaoName(key)) 
10396	    optionDisabled.text(getRegiaoName(key)); 
10397	    optionDisabled.attr('disabled', true) 
10398	    optionDisabled.addClass('ssp-option-group') 
10399	    $('#unidades-ofertas').append(optionDisabled) 
10400 
10401	    $.each(unidadesDaRegiao, function(k,unidade){       
10402	      if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){         
10403	        var option = $('<option>'); 
10404	        option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']); 
10405	        option.text(unidade['nome']); 
10406	        option.attr('data-unidade-friendly-url', unidade.friendlyURL) 
10407	        option.addClass('ssp-option') 
10408	   
10409	        $('#unidades-ofertas').append(option); 
10410	     
10411	        unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded	           
10412
10413	    }) 
10414	  }) 
10415 
10416	  return unidadeFounded 
10417
10418 
10419	function getURLData() { 
10420	  return URLGeral.replace(HOST, '') 
10421
10422 
10423	/** 
10424	* Copia um objeto JSON 
10425	*/ 
10426	function cloneObj(original) { 
10427	  return JSON.parse(JSON.stringify(original)); 
10428
10429 
10430  function getUrlConsultaBolsa(oferta){ 
10431   
10432    let url = ''; 
10433    if (isAmbienteTeste()) { 
10434      if(oferta.destinoBolsa=='1') { 
10435        url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
10436      } else { 
10437        url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
10438
10439    }	else { 
10440      if(oferta.destinoBolsa=='1') { 
10441        url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
10442      } else { 
10443        url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
10444
10445       
10446
10447     
10448    return url; 
10449
10450 
10451  function execCompraEmed(oferta){ 
10452      let linkInscricaoEmed = '', linkInscricaoEmedHml = ''; 
10453      if(oferta.etapa == '0010'){ 
10454        linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}'; 
10455        linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}'; 
10456
10457 
10458      var ambTeste = ['localhost', 'hom', 'dev']; 
10459        var link = linkInscricaoEmed; 
10460        $.each(ambTeste, function(i, a){ 
10461          if(location.hostname.indexOf(a) >= 0){ 
10462            link = linkInscricaoEmedHml; 
10463            return false; 
10464
10465        }); 
10466 
10467        // Montar object push - google tag manager - 3 
10468        ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta) 
10469        sendEventEcommerce("select_item", ofertaSelecionada); 
10470        sendEventEcommerce("view_item", ofertaSelecionada); 
10471        sendEventEcommerce("add_to_cart", ofertaSelecionada); 
10472        sendEventEcommerce("begin_checkout", ofertaSelecionada); 
10473         
10474        var urlCompra  = link.replace('\{codOferta\}', oferta.codigoOferta); 
10475        window.open(urlCompra, '_blank'); 
10476
10477 
10478   function formataDataComBarra(dataInvertidaComTraco){ 
10479 		return dataInvertidaComTraco.split('-').reverse().join('/'); 
10480
10481 
10482    
10483    let ctrlPressed = false; 
10484    $(window).keydown(function (ev) { 
10485      if(ev.which == 17){ 
10486        ctrlPressed = true; 
10487        return false; 
10488      }    
10489      if(ev.which == 82 && ctrlPressed){ 
10490        return false; 
10491
10492      return (ev.which != 116); // F5  
10493    }).keyup(function(ev) { 
10494      if (ev.which == 17){ 
10495        ctrlPressed = false; 
10496
10497      return true; 
10498    }); 
10499 
10500 
10501   </script> 
10502 
10503</#if>