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 4101, 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 4101, 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<#assign resources = themeDisplay.getPortalURL() /> 
10<#assign contextPath = "/documents/d/global" /> 
11<#assign _rnd = .now?long > 
12 
13<style> 
14 
15  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card { 
16      background: white; 
17      width: 100%; 
18      padding: 32px 52px; 
19      box-shadow: 2px 5px 12px #00000040; 
20      border-radius: 20px; 
21      display: flex; 
22      flex-wrap: nowrap; 
23      justify-content: space-between; 
24      align-items: center; 
25
26 
27  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-icone { 
28      max-width: 100%; 
29      height: 72px; 
30      margin-bottom: 10px; 
31
32 
33  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section { 
34      background: #472247; 
35      border-top: 18px solid #792F7A; 
36      text-align: center; 
37      padding-bottom: 60px; 
38
39 
40  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white::after { 
41       
42      
43      display: none; 
44      
45       
46
47   
48  .ssp:not(.liferay-instance) .ssp-como-me-matricular__section .title-section-white { 
49      color: white; 
50      font-size: 44px !important; 
51      margin-bottom: 32px !important; 
52      text-align:unset; 
53
54   
55  .ssp:not(.liferay-instance) .ssp-como-me-matricular__passo-passo-card .item-passo-title { 
56      font-size: 28px; 
57      color: #B767C2; 
58      font-weight: bold; 
59      line-height: 28px; 
60      margin: 0; 
61      margin-bottom:.5rem; 
62
63   
64 
65.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-credit-card::after { 
66     
67  font-size: 18px; 
68     
69
70 
71.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__icon-boleto::after { 
72    
73  font-size: 18px; 
74   
75
76 
77.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__header { 
78  align-items:center; 
79  color:#454F63; 
80
81 
82.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__btn-close::after { 
83    font-family: "Font Awesome 6 Pro"; 
84    font-weight: normal; 
85    content: "\f00d"; 
86    font-style: normal; 
87    font-size:30px; 
88    cursor: pointer; 
89
90 
91.ssp:not(.liferay-instance) .ssp-card-modal-forma-pagamento__body { 
92     
93  padding:0 15px; 
94
95 
96.ssp-card-modal-forma-pagamento__tipos-content p { 
97 
98  color: #454F63!important; 
99  font-size: 14px!important; 
100
101 
102.ssp-card-modal-forma-pagamento__tipos-content strong { 
103 
104  font-weight: bold!important; 
105
106 
107.txt-desconto-oito{ 
108 
109  font-weight: 600!important; 
110  border: 1px solid #f2f2f2; 
111  border-right: 0; 
112  border-left: 0; 
113  padding: 10px 0; 
114
115 
116.next-mobile{ 
117    color: white; 
118    display: flex; 
119    align-items: center; 
120    text-decoration: none!important; 
121
122 
123.next-mobile:hover{ 
124    color: white; 
125    font-weight: normal!important; 
126
127 
128.next-mobile::before{ 
129    font-family: "Montserrat", sans-serif; 
130    content: "Próxima"; 
131    font-size: 14px; 
132    font-weight: 600; 
133    display: block; 
134    margin-right: 9px; 
135    color: white; 
136
137 
138.next-mobile.slick-arrow.slick-disabled{ 
139    opacity: 0.4; 
140
141 
142 
143/* Prev Mobile button */ 
144 
145 
146.prev-mobile{ 
147    color: white; 
148    display: flex; 
149    align-items: center; 
150    text-decoration: none; 
151    text-decoration: none!important; 
152
153 
154.prev-mobile:hover{ 
155    color: white; 
156    font-weight: normal!important; 
157
158 
159.prev-mobile::after{ 
160    font-family: "Montserrat", sans-serif; 
161    content: "Anterior"; 
162    font-weight: 600; 
163    font-size: 14px; 
164    display: block; 
165    margin-left: 9px; 
166    color: white; 
167
168 
169.prev-mobile.slick-arrow.slick-disabled{ 
170    opacity: 0.4; 
171
172 
173 
174.icon-ao-vivo{ 
175  font-size: 15px!important; 
176  margin: 0 3px; 
177
178 
179.ssp-card-detalhe-curso__tag-ao-vivo{ 
180  font-family: "Montserrat"; 
181  font-size: 19px; 
182  letter-spacing: 0px; 
183  color: #F77A3B; 
184
185 
186.selecione-unidade-title-custom{ 
187     
188  width:100%!important; 
189 
190
191 
192.recalcular{ 
193  background:#F6921E!important; 
194  border: solid 1px #F6921E!important; 
195
196 
197.ssp-card-detalhe-curso__description{ 
198 
199  font-family: "Montserrat"; 
200  max-width: 800px; 
201  font-size: 20px; 
202  font-weight: 500; 
203  font-stretch: normal; 
204  font-style: normal; 
205  line-height: 1.23; 
206  letter-spacing: normal; 
207  margin: 10px 0; 
208  text-align: left; 
209  color: #4f596f; 
210 
211
212 
213/* nova formatação para registro de interesse */ 
214.ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content { 
215    display: flex; 
216    flex-wrap: nowrap; 
217    justify-content: center; 
218    align-items: center; 
219    padding: 10px 0; 
220
221 
222/* Novas tags para formato de curso */ 
223 
224.ssp-card-detalhe-curso__tag-formato{ 
225   
226  font-size:18px; 
227  font-weight:600; 
228   
229
230 
231.icon-formato{ 
232  margin-right:7px; 
233
234 
235.online-aovivo{ 
236  position:relative; 
237   
238
239 
240.icon-small-wifi { 
241    font-size: 13px; 
242    position: absolute; 
243    left: -12px; 
244    top: -5px; 
245
246 
247.ssp-desconto-2022 .modal-extensao_txteconomiza { 
248  font-size: 14px !important; 
249  font-weight: 100 !important; 
250
251.ssp-desconto-2022 .ssp-card-oferta-curso__desconto-content .ssp-card-oferta-curso__valor-desconto { 
252  font-weight: 100 !important; 
253
254.ssp-desconto-2022 .modal-extensao-btn-conheca { 
255  border: 1px solid #474F61 !important; 
256  border-radius: 4px; 
257  color: #474F61 !important; 
258  font-size: 15px; 
259  height: 50px; 
260  margin-left: 0; 
261  display: flex; 
262  align-items: center; 
263  justify-content: center; 
264
265 
266.ssp-card-modal-forma-pagamento.ssp-desconto-2022 { 
267  color: #454F63; 
268
269.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 { 
270  font-size: 22px !important; 
271
272.ssp-card-oferta-curso__item-valor-investimento.ssp-desconto-2022 span { 
273  font-size: 13px !important; 
274
275.ssp-desconto-2022 span { 
276  padding: 0 !important; 
277
278 
279.ssp:not(.liferay-instance) .ssp-card-registro-interesse__select { 
280  appearance: none !important; 
281  -webkit-appearance: none !important; 
282  -moz-appearance: none !important; 
283 
284  background-size: 25px 25px !important; 
285  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTIgNTEyIj48IS0tIEZvbnQgQXdlc29tZSBQcm8gNS4xNS40IGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChDb21tZXJjaWFsIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik0xODcuOCAyNjQuNUw0MSA0MTIuNWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDQuMiAzOTIuN2MtNC43LTQuNy00LjctMTIuMyAwLTE3TDEyMi43IDI1NiA0LjIgMTM2LjNjLTQuNy00LjctNC43LTEyLjMgMC0xN0wyNCA5OS41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwxNDYuOCAxNDhjNC43IDQuNyA0LjcgMTIuMyAwIDE3eiIvPjwvc3ZnPg==); 
286  background-repeat: no-repeat !important; 
287  background-position-x: 99% !important; 
288  background-position-y: 50% !important; 
289
290 
291@media only screen and (max-width: 768px){ 
292 
293  .ssp-card-detalhe-curso__tag-ao-vivo{ 
294    font-size: 14px; 
295    display: none; 
296
297  .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__content { 
298     
299    flex-wrap: wrap!important; 
300     
301
302.ssp-card-modal-forma-pagamento__tipos-content p { 
303   
304  font-size: 12px!important; 
305
306     
307  
308  .ssp:not(.liferay-instance) .ssp-section-selecione-unidade { 
309      padding: 30px 0!important; 
310      padding-bottom: 30px !important; 
311      background-color: #2a2e43; 
312
313   
314  .ssp:not(.liferay-instance) .ssp-aviso-novas-turmas__title { 
315      padding-bottom: 1.25rem !important; 
316
317 
318  .selecione-unidade-title-custom{ 
319    width:100%!important; 
320 
321  }  
322   
323  .ssp-card-detalhe-curso__description{ 
324    width: 100%; 
325    font-size: 15px; 
326 
327
328  .ssp-como-me-matricular__passo-passo-card {     
329    padding: 30px 24px!important; 
330     
331
332 
333  .emed-select-group { 
334        box-shadow: none!important; 
335        border: none !important; 
336        border-bottom: 1px solid #6E6E6E!important; 
337        border-radius: 0 !important; 
338        padding: 0 !important; 
339        margin: 1rem 0 !important; 
340
341 
342    .emed .ssp-card-registro-interesse__title-modal{ 
343      font-size: 20px!important; 
344
345    .emed .ssp-card-registro-interesse__title-section-itens { 
346      font-size: 15px!important; 
347      margin-top: 0px!important; 
348      margin-bottom: 0px!important; 
349      color: #2a2e43; 
350
351    .ssp-card-registro-interesse.emed [type="checkbox"] { 
352        transform: scale(0.6); 
353        margin-left: 2px; 
354
355 
356    .ssp-card-registro-interesse.emed label { 
357      margin-left: 0px; 
358      margin-right: 3px; 
359
360
361 
362.ssp-card-oferta-curso__local-realizacao-content__title { 
363  font-family: "Open Sans", sans-serif; 
364    font-size: 10pt; 
365    font-weight: normal; 
366    color: #00488c; 
367    font-weight: bold; 
368    text-decoration: none!important; 
369    padding-left: 10px; 
370
371 
372 @media screen and (min-width: 767px){ 
373   
374  .ssp-modal-local-realizacao{ 
375      width: 480px!important; 
376
377   .ssp-card-modal-forma-pagamento__header {     
378    margin-bottom: 20px; 
379
380    
381   .ssp-modal-local-realizacao__title{ 
382    color:#01488C !important; 
383    text-align: center!important; 
384        margin-left: -23px!important; 
385
386   
387  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title { 
388      font-size: 14pt; 
389
390  .ssp:not(.liferay-instance) [data-info="data-para-matricula"] { 
391    font-size: 14px !important; 
392    text-align: left;    
393
394  .ssp-modal-emed-txt-desconto-oito { 
395    padding: 10px 0 0px!important; 
396
397  .ssp:not(.liferay-instance) .ssp-modal-emed-info-valor-matricula { 
398    color: #4F596F; 
399    font-size: 15px!important; 
400    text-align: center; 
401    font-weight: 500!important; 
402
403
404  
405@media screen and (max-width: 767px){ 
406  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao { 
407      width: 347px; 
408      padding: 22px; 
409
410  .ssp-modal {     
411    padding-top: 72px!important; 
412  }   
413  .ssp-card-modal-forma-pagamento { 
414    max-width: 335px!important; 
415
416  .ssp-card-modal-forma-pagamento__body { 
417    padding: 0px!important; 
418
419  .ssp-modal-emed-txt-desconto-oito { 
420    font-size: 12px !important; 
421
422  .ssp-card-modal-forma-pagamento__header { 
423    margin-bottom: 20px!important; 
424
425  .txt-desconto-oito i { 
426    font-size: 12px!important; 
427    padding-top: 3px; 
428
429  .txt-pague-vista { 
430    font-size: 12px!important; 
431
432  .txt-ganhe-mais { 
433    font-size: 12px!important; 
434
435  .ssp-modal-emed-info-valor-matricula { 
436    color: #2A2E43!important; 
437    font-size: 12px!important; 
438    font-weight: 500!important; 
439  }   
440  .ssp:not(.liferay-instance) [data-info="data-para-matricula"] { 
441    font-size: 12px !important; 
442    line-height: 1.5; 
443    text-align: left; 
444
445   
446  .ssp-desconto-2022 .txt-desconto-oito { 
447    font-size: 14px !important; 
448
449
450 
451@media screen and (max-width: 767px){ 
452  .ssp:not(.liferay-instance) .ssp-modal-local-realizacao__title { 
453      font-size: 16pt; 
454
455
456 
457.container-local-realizacao{ 
458  padding: 6px; 
459    border: 0.5pt solid #cdd0d8; 
460    border-radius: 5px; 
461    width: 260px; 
462    margin: 10px auto; 
463    box-shadow: 1px 1px 1px #0000000F; 
464
465 
466.idioma-online{ 
467  border:0!important; 
468  box-shadow:none!important; 
469
470 
471.btn-idiomas__aula-online .fa-wifi{ 
472  margin-right: 7px 
473
474 
475.ssp-modal-local-realizacao__title{ 
476  color:#01488C !important; 
477  text-align: center!important; 
478
479 
480h6.ssp-modal-local-realizacao__title::after { 
481    content: ""; 
482    display: block; 
483    width: 20%; 
484    padding-top: 10px; 
485    border-bottom: 1px solid #01488C; 
486    transition: .5s; 
487    margin:auto; 
488
489 
490.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-wifi::after { 
491  font-family: "Font Awesome 5 Free"; 
492    content: '\f1eb'; 
493    font-weight: 600; 
494    color: #00488c; 
495    font-size: 8px; 
496    font-style: normal; 
497    margin-left: 2px; 
498
499 
500.ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__icon-chalkboard-teacher::after { 
501    font-family: "Font Awesome 5 Free"; 
502    content: '\f51c'; 
503    font-weight: 600; 
504    color: #00488c; 
505    font-size: 13px; 
506    font-style: normal; 
507
508 
509.ssp-card-oferta-curso__local-realizacao-content__icon-wifi{ 
510    display: flex; 
511    margin-top: 0px; 
512    margin-bottom: -10px; 
513
514 
515.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-wifi::after { 
516  font-family: "Font Awesome 5 Free"; 
517    content: '\f1eb'; 
518    font-weight: 600; 
519    color: #00488c; 
520    font-size: 9pt; 
521    font-style: normal; 
522    margin-right: 10px; 
523
524 
525.ssp:not(.liferay-instance) .ssp-modal__local-realizacao-content__icon-chalkboard-teacher::after { 
526    font-family: "Font Awesome 5 Free"; 
527    content: '\f51c'; 
528    font-weight: 600; 
529    color: #00488c; 
530    font-size: 16pt; 
531    font-style: normal; 
532    margin-left: -16px; 
533
534 
535.ssp-modal__local-realizacao-content__icon-wifi{ 
536    display: flex; 
537    margin-right: 2px 
538
539 
540.ssp-modal-local-realizacao__texto{ 
541  text-align:center!important; 
542
543 
544.texto-modal-emed{ 
545	text-align:left; 
546
547 
548.nextPrevOpacity{ 
549  opacity: 0.3; 
550
551 
552   
553   .modal-extensao { 
554              display: block; 
555              position: fixed; 
556              z-index: 2000; 
557              padding-top: 100px; 
558              left: 0; 
559              top: 0; 
560              width: 100%; 
561              height: 100%; 
562              overflow: auto; 
563              background-color: black; 
564              background-color: rgba(0, 0, 0, 0.6); 
565              font-family: Montserrat; 
566
567          .modal-extensao_content { 
568              max-width: 700px; 
569              width: 100%; 
570              background: white; 
571              border-radius: 12px; 
572              padding: 30px 60px; 
573              position: relative; 
574              text-align: center; 
575              margin: auto; 
576              -webkit-animation-name: animatetop; 
577              -webkit-animation-duration: 0.4s; 
578              animation-name: animatetop; 
579              animation-duration: 0.4s; 
580          }     
581          .modal-extensao-condicoes__title { 
582              color: #000!important; 
583              text-transform: uppercase!important; 
584              font-size: 18px!important; 
585   
586
587          .modal-extensao-condicoes__subtitle { 
588              color: #000!important;             
589              font-size: 18px!important; 
590              margin-bottom: 0px!important; 
591   
592
593          .modal-extensao__btn { 
594              background-color: #5ACC75!important; 
595              font-size: 14px; 
596              float: right; 
597              color: #ffffff; 
598              min-width: 165px; 
599
600          .modal-extensao__btn:hover { 
601              background-color: #3fb25c!important; 
602              border-color: transparent; 
603              color: #ffffff; 
604          }     
605          .modal-extensao_subtitle { 
606              font-size: 13.7px!important; 
607              color: #2A2E43!important; 
608              font-family: Montserrat, semi-bold!important; 
609              font-weight: 600!important; 
610
611          .modal-extensao_subtitle::after { 
612              content: " "; 
613              display: block; 
614              width: 126px; 
615              height: 2px; 
616              background: #707070; 
617              margin: 0 auto; 
618              margin-top: 5px;  
619
620          .modal-extensao_preco { 
621              color: #454F63; 
622              font-size: 25px; 
623              font-family: Montserrat;             
624              font-weight: bold; 
625
626          .modal-extensao_ctboleto { 
627              width: 50%; 
628              float: left; 
629              border-color: #D7D7DB; 
630              border-style: solid; 
631              border-width: 1px; 
632              border-left: none; 
633              font-size: 21px; 
634              color: #454F63 
635                               
636
637          .modal-extensao_ctcard { 
638              width: 50%; 
639              float: left; 
640              border-color: #D7D7DB; 
641              border-style: solid; 
642              border-width: 1px; 
643              border-right: none;  
644              border-left: none; 
645              font-size: 21px;   
646              color: #454F63; 
647          }  
648          
649          .modal-extensao_txtPag { 
650              color:#2A2E43;   
651              font-size: 9px;  
652              font-family: Montserrat; 
653              font-weight: 600; 
654              display: block; 
655
656          .modal-extensao_txteconomiza { 
657              display: block; 
658              font-size: 12px; 
659
660          .modal-extensao_txtverde { 
661              color: #5ACC75; 
662
663          .modal-extensao_txtParcela { 
664              color:#2A2E43;   
665              font-size: 12px;  
666              font-family: Montserrat; 
667              font-weight: normal; 
668              display: block; 
669
670          .modal-extensao_txtporcent{ 
671              font-size: 9px; 
672              color: #5ACC75; 
673              font-weight: 600; 
674
675          .modal-extensao-btn-conheca { 
676              color: #2967F4 !important; 
677              background-color: transparent; 
678              border-color: #2967F4 !important; 
679              box-shadow: none !important; 
680              font-size: 14px !important; 
681              margin-left: 10px; 
682              transition: 0.3s; 
683              float: left; 
684
685           .modal-extensao-btn-conferir { 
686              color: #2967F4 !important; 
687              background-color: transparent; 
688              border-color: #2967F4 !important; 
689              box-shadow: none !important; 
690              font-size: 14px !important; 
691              margin-left: 10px; 
692              transition: 0.3s; 
693              min-width: 330px; 
694              min-height: 50px;             
695
696            .modal-extensao-btn-conferir:hover { 
697              color: #ffffff!important; 
698
699             
700           .modal-extensao-btn-conheca:hover, .modal-extensao-btn-conheca:focus { 
701              color: #ffffff!important; 
702           }  
703           .modal-extensao-btn-aluno-sim-nao { 
704              color: #000000; 
705              background-color: transparent; 
706              border-color: #000000 !important; 
707              box-shadow: none !important; 
708              font-size: 14px !important; 
709              margin-left: 10px; 
710              transition: 0.3s;  
711              min-width: 95px;            
712
713           .modal-extensao-btn-aluno-sim-ativo { 
714              color: #ffffff!important; 
715              background-color: #3969EB!important; 
716              border-color: #3969EB !important; 
717           }  
718           .modal-extensao-btn-aluno-sim-nao:hover { 
719              background-color: transparent; 
720              border-color: #3969EB !important; 
721              color: #3969EB!important;         }    
722           .modal-extensao-voltar-icon,.modal-extensao-fechar { 
723              font-size: 13px; 
724              position: absolute; 
725              top: 30px; 
726              right: 20px; 
727              cursor: pointer; 
728              color: #000; 
729
730  
731           .modal-extensao-voltar-txticon { 
732              color: #000; 
733              font-size: 9px; 
734              font-family: Montserrat; 
735              font-weight: 600; 
736              padding-left: 5px; 
737
738           .modal-extensao-ico-check { 
739              color: #5ACC75; 
740              font-size: 65px; 
741
742           .modal-extensao-aluno_txtcontent { 
743              font-size: 18px!important; 
744              color: #000; 
745
746           .modal-extensao-aluno__btn { 
747              background-color: #5ACC75!important; 
748              font-size: 14px;             
749              color: #ffffff; 
750              min-width: 330px; 
751              text-transform: uppercase; 
752              min-height: 50px; 
753           }  
754           .modal-extensao-aluno__btn:hover { 
755              color: #fff; 
756              background-color: #3fb25c!important; 
757              border-color: transparent; 
758              color: #ffffff;     
759
760           .modal-extensao-ico-percent { 
761              background-color: blue; 
762              color: #fff; 
763              font-size: 48px; 
764              border-radius: 50%; 
765              padding: 10px 18px;      
766
767   
768          .btn-preco-ex-aluno,.btn-preco-padrao{ 
769   
770            background:none; 
771            border: none; 
772            width: 100%; 
773            display: flex; 
774            align-items: center; 
775            justify-content: space-between; 
776            text-align: left; 
777            font-size: 14px; 
778
779   
780          .custom-icon-right{ 
781            transform: rotate(0); 
782            transition: all 0.5s; 
783
784   
785          .custom-icon-right-active{ 
786          transform: rotate(90deg);             
787
788   
789          .ssp-divisor{ 
790            width: 100%; 
791            color: #D7D7DB; 
792            margin: 15px 0; 
793
794   
795   
796          @media only screen and (max-width: 768px){ 
797   
798              .modal-extensao_content{ 
799                width:336px; 
800                padding: 60px 20px 20px 20px; 
801
802   
803              .modal-extensao__btn{ 
804                width: 100%; 
805
806   
807              .modal-extensao-modal-extensao__btn { 
808                  float: initial; 
809                  width: 234px; 
810
811              .modal-extensao-btn-conheca { 
812                  float: initial; 
813                  width: 100%; 
814                  margin-left: 0px; 
815
816              .modal-extensao-aluno__btn { 
817                  min-width: 234px; 
818
819              .modal-extensao-btn-conferir{ 
820                  min-width: 234px; 
821                  margin-left: 0px; 
822
823          }     
824 
825 
826/* Emed */ 
827.ssp-btn-emed__voltar-curso { 
828  border: 1px solid #474F61; 
829  color: #474F61; 
830  max-width: 372px; 
831  margin-left: 60px; 
832  height: 50px; 
833  padding: 12px!important; 
834
835 
836@media (max-width: 768px) { 
837  .ssp-btn-emed__voltar-curso { 
838    font-size: 14px; 
839    margin-left: 0px!important; 
840
841
842 
843@media only screen and (max-width: 767px){ 
844  .ssp:not(.liferay-instance) .ssp-emed-visita-text { 
845      margin: 0; 
846      transform: none; 
847      margin-left: 10px; 
848
849
850 
851.ssp:not(.liferay-instance) .icon-map-adress::after { 
852  padding: 0 8px 0 0; 
853
854 
855.ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal { 
856    margin: 5px 0; 
857
858 
859.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento { 
860    width: 100%; 
861    color: white !important; 
862    font-size: 15px; 
863    font-weight: 600; 
864    margin: 10px 0; 
865
866 
867.ssp-modal-emed-info-txt-matricula { 
868  display: inline-block; 
869
870.ssp:not(.liferay-instance) .btn-card-investimento.--inscreva-se.disabled, .ssp:not(.liferay-instance) a.btn.btn-success.disabled.manutencao { 
871    background: #BFC3C9 !important; 
872    color: #454F63!important; 
873    opacity: 1!important; 
874    font-size: 14px; 
875    border:none; 
876
877 
878.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--bolsas.disabled { 
879    background: #E5E8ED; 
880    color: #454F63!important; 
881    opacity: 1; 
882    font-size: 14px; 
883
884 
885.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .btn-card-investimento.--inscreva-se { 
886    background-color: #5acc75; 
887    text-transform: none; 
888
889 
890.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .link-descontos-parcelamentos { 
891    font-weight: 600; 
892
893 
894.ssp:not(.liferay-instance) .ssp-card-oferta-curso__sem-vaga-title { 
895    margin: 0; 
896
897 
898.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-container { 
899 
900  padding: 0; 
901 
902
903 
904.ssp:not(.liferay-instance) .ssp-ofertas-emed__filtro-content { 
905    padding: 40px 0; 
906
907 
908.ssp:not(.liferay-instance) .ssp-ofertas-emed__card-info-investimento .txt-boleto-cartao { 
909    text-align: center; 
910
911.ssp-card-modal-emed-lineou { 
912height: 1px; 
913    background-color: #FC7834; 
914    text-align: center;     
915    width: 50%;     
916    margin: 0px auto; 
917    margin-bottom: 15px; 
918
919.ssp-card-modal-emed-lineou span { 
920background-color: white; 
921    position: relative; 
922    top: -0.8em; 
923    padding: 0 19px; 
924    font-weight: bold; 
925    color: #2A2E43; 
926    font-size: 15px; 
927
928.ssp-modal-emed-txtValor { 
929    font-size: 16px; 
930    color: #04488C; 
931    font-weight: bold; 
932
933.ssp-card-modal-emed-centralizaPagtos{ 
934max-width: 285px;margin:0 auto; margin-top: 18px!important; 
935
936.ssp-card-modal-forma-pagamento__tipos-content p { 
937  font-weight: 500!important; 
938
939.textoCartoesAceitos { 
940  font-weight: 500!important; 
941
942.ssp-card-modal-emed-valorObs { 
943    color: #004A8C; 
944    display: flex;     
945    justify-content: center; 
946    font-weight: 500; 
947    padding-top: 11px; 
948    font-size: 14px; 
949
950.ssp-card-modal-emed-boxDesconto{ 
951    border: 0!important; 
952    font-weight: 500!important; 
953    background-color: #F7F7F7; 
954    border-radius: 13px; 
955    padding: 20px 40px!important; 
956    margin-bottom: 0!important; 
957
958.ssp-modal-emed-boxoito { 
959    padding: 5px 45px!important; 
960    text-align: center;  
961    border-bottom: 0px!important; 
962
963.ssp-modal-emed-btfechar { 
964    position: absolute; 
965    right: 0; 
966    display: flex; 
967    flex-direction: column; 
968    text-align: center; 
969    line-height: 0.9; 
970    top: -48px; 
971    color: #E4E8F0; 
972    font-weight: 500; 
973    font-size: 14px; 
974
975.ssp-card-modal-forma-pagamento__btn-close:hover { 
976    opacity: .6; 
977
978.ssp-card-modal-emed-ano { 
979    font-weight: 500; 
980    font-size: 22px; 
981    color: #454F63; 
982}  
983.ssp:not(.liferay-instance) [data-info="msg-20-desconto"] {  
984    font-weight: 500!important; 
985 
986}  
987.ssp-card-modal-emed-valorObs i { 
988    padding-top: 2px; 
989    padding-right: 3px; 
990}   
991button[id^="btnComprarEmedModal_"] { 
992    height: 50px; 
993    font-weight: 600; 
994    max-width: 372px; 
995    width: 100%;     
996    margin: 0 auto; 
997    /* margin-left: 60px; */ 
998    display: block; 
999    height: 50px; 
1000    padding: 12px !important; 
1001 
1002
1003.obsspan { 
1004    justify-content: left; 
1005    padding-bottom: 10px; 
1006
1007 
1008.emed_transferencia_texto{ 
1009	font-size:20px!important;; 
1010
1011 
1012 
1013@media only screen and (max-width: 767px){ 
1014 
1015    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__mensagem-legal { 
1016      width: 100%; 
1017
1018 
1019    .ssp-card-modal-emed-valorObs { 
1020      font-size: 12px; 
1021    }  
1022    .obsspan { 
1023    justify-content: left; 
1024    margin-left: -14px!important; 
1025
1026    .ssp-modal-emed-boxoito { 
1027    padding: 5px 0px!important; 
1028
1029    .ssp-modal-emed-info-txt-matricula { 
1030    display: inherit; 
1031
1032    .ssp-card-modal-emed-boxDesconto{ 
1033      padding: 20px 20px!important; 
1034      font-size: 12px!important; 
1035   }   
1036   .ssp:not(.liferay-instance) [data-info="msg-20-desconto"] { 
1037    font-size: 12px !important; 
1038    font-weight: 500!important; 
1039  }  
1040  .ssp-modal-emed-btfechar { 
1041    font-size: 12px; 
1042 
1043  }   
1044  button[id^="btnComprarEmedModal_"] { 
1045    height: 50px;     
1046    padding: 10px; 
1047    border-radius: 4px; 
1048    margin-left: 0px!important 
1049
1050  button[id^="btnComprarEmedModal_"] span { 
1051    font-size: 15px; 
1052    font-weight: 600; 
1053
1054  .ssp-btn-emed__voltar-curso_0 { 
1055    font-weight: 600!important; 
1056    height: 50px; 
1057    border-radius: 4px!important; 
1058    padding: 14px!important; 
1059
1060   
1061  .emed_transferencia_texto{ 
1062	font-size:16px!important; 
1063	}   
1064 
1065}   
1066 
1067@media screen and (min-width: 1200px){ 
1068  .ssp-col-lg-without { 
1069    flex: unset; 
1070    width: unset; 
1071
1072
1073@media screen and (max-width: 1199px){ 
1074  .ssp-desconto-2022 .modal-extensao_txteconomiza { 
1075    font-size: 12px !important; 
1076
1077  .ssp-filters-px { 
1078    padding: 0 !important; 
1079
1080  .ssp-switch-label { 
1081    margin: auto 0 !important; 
1082
1083  .ssp-switch-label-message { 
1084    margin-top: 10px; 
1085    margin-bottom: 10px; 
1086    padding-right: 0 !important; 
1087    padding-left: 0 !important; 
1088
1089  .ssp-container-selecione-unidade [name="unidades-ofertas"] { 
1090    max-width: 316px!important; 
1091
1092  .ssp-detalhe-curso-titulo-filter { 
1093    font-size: 16px !important; 
1094
1095
1096 
1097 
1098.ssp-filters-px { 
1099  padding: 0 80px; 
1100
1101/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ 
1102/* !!!!!!! CSS Destinado ao switch(toggle) !!!!!!! */ 
1103/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ 
1104.ssp-switch { 
1105  position: relative; 
1106  display: inline-block; 
1107  width: 63px; 
1108  height: 32px; 
1109
1110 
1111.ssp-switch input {  
1112  opacity: 0; 
1113  width: 0; 
1114  height: 0; 
1115
1116 
1117.ssp-switch-label { 
1118  margin: auto 15px; 
1119  font: normal normal 600 16px/19px Montserrat; 
1120  letter-spacing: 0px; 
1121  color: #FFFFFF; 
1122  white-space: nowrap; 
1123
1124 
1125.ssp-switch-label-section { 
1126  font: normal normal 600 18px/22px Montserrat; 
1127  margin-bottom: 11px; 
1128
1129 
1130.ssp-switch-label-message { 
1131  font: normal normal medium 16px/19px Montserrat !important; 
1132  letter-spacing: 0px; 
1133  color: #FFFFFF; 
1134  margin-top: 16px; 
1135  padding-left: 25px; 
1136  padding-right: 25px; 
1137
1138 
1139.ssp-switch-divider { 
1140  border-bottom: 1px solid #4a4d5f; 
1141  width: 100%; 
1142
1143 
1144.ssp:not(.liferay-instance) .ssp-detalhe-curso-titulo-filter.ssp-detalhe-curso-titulo-filter { 
1145  font-size: 21px; 
1146
1147 
1148.ssp-switch-slider { 
1149  position: absolute; 
1150  cursor: pointer; 
1151  top: 0; 
1152  left: 0; 
1153  right: 0; 
1154  bottom: 0; 
1155  background-color: #00000000; 
1156  border: 1px solid #FFFFFF; 
1157  -webkit-transition: .4s; 
1158  transition: .4s; 
1159
1160 
1161.ssp-switch-slider:before { 
1162  position: absolute; 
1163  content: ""; 
1164  height: 21px; 
1165  width: 21px; 
1166  left: 4px; 
1167  bottom: 4px; 
1168  background-color: white; 
1169  -webkit-transition: .4s; 
1170  transition: .4s; 
1171
1172 
1173input:checked + .ssp-switch-slider { 
1174  background-color: #5ACC75; 
1175  border: 1px solid #5ACC75; 
1176
1177input:checked + .ssp-switch-slider-secondary { 
1178  background-color: #2967F4; 
1179  border: 1px solid #2967F4; 
1180
1181 
1182input:focus + .ssp-switch-slider { 
1183  box-shadow: 0 0 1px #5ACC75; 
1184
1185input:focus + .ssp-switch-slider-secondary { 
1186  box-shadow: 0 0 1px #2967F4; 
1187
1188 
1189input:checked + .ssp-switch-slider:before { 
1190  -webkit-transform: translateX(33px); 
1191  -ms-transform: translateX(33px); 
1192  transform: translateX(33px); 
1193
1194 
1195/* Rounded sliders */ 
1196.ssp-switch-slider.round { 
1197  border-radius: 34px; 
1198
1199 
1200.ssp-switch-slider.round:before { 
1201  border-radius: 50%; 
1202
1203 
1204/*Utilizado no modal de registro de interesse #9309*/ 
1205option[value=""][disabled] { 
1206  display: none; 
1207
1208/* Css para botao de idiomas online */ 
1209 
1210.btn-idiomas__aula-online{ 
1211  background:#5382FF; 
1212  color:white!important; 
1213  text-decoration:none!important; 
1214  padding:11px 14px; 
1215  border-radius:4px; 
1216  font-size:13px; 
1217  font-weight:600; 
1218  transition:.3s; 
1219
1220 
1221.btn-idiomas__aula-online:hover{ 
1222  background:#5275D1; 
1223  font-weight:600!important; 
1224
1225 
1226.title-idioma-online__modal,.icon-wifi-title__modal{ 
1227  color:#5382FF!important; 
1228  font-size:25px!important; 
1229  margin:0!important; 
1230  margin-right:5px!important; 
1231
1232 
1233.btn-modal-entendi__idioma-online{ 
1234  font-size:16px!important; 
1235  font-weight:600!important; 
1236  color:#5382FF!important; 
1237  border:#5382FF 1px solid!important; 
1238  padding:15px 142px; 
1239  width:auto!important; 
1240
1241 
1242.btn-modal-entendi__idioma-online:hover{ 
1243  font-size:16px!important; 
1244  font-weight:600!important; 
1245  color:#5382FF!important; 
1246  border:#5382FF 1px solid!important; 
1247  background:white!important; 
1248
1249 
1250@media only screen and (max-width: 768px){ 
1251   
1252  .title-idioma-online__modal,.icon-wifi-title__modal{ 
1253    color:#5382FF!important; 
1254    font-size:21px!important; 
1255    margin:0!important; 
1256    margin-right:5px!important; 
1257
1258   
1259  .btn-modal-entendi__idioma-online{ 
1260    font-size:16px!important; 
1261    font-weight:600!important; 
1262    color:#5382FF!important; 
1263    border:#5382FF 1px solid!important; 
1264    padding:12px 30%; 
1265    width:auto!important; 
1266
1267     
1268
1269 
1270.btn-emed-lista-espera{ 
1271  background-color:#C560C7!important; 
1272
1273 
1274.ssp:not(.liferay-instance) .ssp-container__form-select { 
1275    max-width: 430px; 
1276    width:100%; 
1277
1278 
1279 
1280@media (max-width: 768px){ 
1281  .ssp:not(.liferay-instance) .ssp-ofertas-emed__card { 
1282    margin: 10px 20px; 
1283    max-width: 335px; 
1284
1285
1286 
1287/* css EMED Registro de interesse */ 
1288 
1289.emed #periodo-registro-interesse,.emed #turmas-registro-interesse{ 
1290 
1291  display: flex; 
1292  align-items: center; 
1293  padding: 0.625rem 0; 
1294  width: 85%; 
1295  justify-content: space-between; 
1296  margin: 0 auto; 
1297 
1298
1299 
1300.ssp-card-registro-interesse__title-section-itens{ 
1301  margin: 10px 0 11.5px 0 !important; 
1302  font-size: 20px; 
1303  flex-basis: 120px; 
1304
1305 
1306.ssp-card-registro-interesse__check-itens-content { 
1307  display: flex!important; 
1308  justify-content: center!important; 
1309  flex: 0 1 90%!important; 
1310
1311.ssp-card-registro-interesse__check-item { 
1312  display: flex; 
1313  align-items: center; 
1314  flex-basis: 100px; 
1315
1316 
1317.ssp-card-registro-interesse label { 
1318  margin-right: 0!important; 
1319
1320 
1321.ssp-card-registro-interesse [type="checkbox"] { 
1322box-shadow: 0px 0px 6px #00000029; 
1323
1324 
1325#cursos-registro-interesse,#unidades-registro-interesse{ 
1326padding: 10px 0; 
1327
1328 
1329.emed-select-group{ 
1330 
1331box-shadow: 0px 0px 12px #00000010; 
1332border: 1px solid #6E6E6E; 
1333border-radius: 4px; 
1334padding: 1.0rem 1.125rem; 
1335margin: 1rem 0; 
1336 
1337
1338 
1339.ssp:not(.liferay-instance) .ssp-card-registro-interesse__add-mais > a { 
1340      color: #457eff !important; 
1341
1342 
1343.emed .ssp-card-registro-interesse__btn-enviar { 
1344background-color: #C560C7 !important; 
1345
1346 
1347.ssp-card-registro-interesse__title-modal{ 
1348color:#C560C7 !important; 
1349font-size: 35px !important; 
1350font-weight: bold !important; 
1351margin: 0 !important; 
1352
1353 
1354#msg-transferencia-emed{ 
1355display: flex; 
1356justify-content: center; 
1357flex: wrap; 
1358flex-direction: column; 
1359align-items: center; 
1360padding: 1rem 0; 
1361
1362 
1363.transferencia-emed-title { 
1364  color: #d266d4; 
1365  display: flex; 
1366  gap: 10px; 
1367  font-size: 16px; 
1368  font-weight: bold; 
1369  align-items:center; 
1370
1371 
1372.transferencia-emed-title p { 
1373  margin: 0 !important; 
1374  font-weight: bold !important; 
1375  font-size: 16px!important; 
1376
1377 
1378.transferencia-emed-link a{ 
1379  font-size: 15px; 
1380  font-weight: 500!important; 
1381  color: #792F7A; 
1382  display: block; 
1383  text-align: center; 
1384
1385 
1386.transferencia-emed-link a:hover { 
1387  font-weight: 500!important; 
1388  color: #792F7A; 
1389
1390 
1391.emed .ssp-card-registro-interesse__label-curso-selecionado{ 
1392color:#2A2E43!important; 
1393font-weight: bold!important; 
1394font-size: 28px; 
1395
1396 
1397 
1398/* css para registro de interesse atual */ 
1399 
1400#periodo-registro-interesse,#dias-registro-interesse{ 
1401padding: .625rem 0; 
1402
1403 
1404/* css card sem turma e registro de interesse emed*/ 
1405 
1406.slick-area-emed { 
1407    display: -webkit-box !important; 
1408    display: -ms-flexbox !important; 
1409    display: flex !important; 
1410    -webkit-box-align: center; 
1411    -ms-flex-align: center; 
1412    align-items: center; 
1413    -webkit-box-pack: center; 
1414        -ms-flex-pack: center; 
1415            justify-content: center; 
1416    font-size: 0; 
1417    -ms-flex-wrap: nowrap; 
1418        flex-wrap: nowrap; 
1419
1420   
1421  .slick-area-emed .slick-track, .slick-area-emed .slick-list { 
1422    width: 100%; 
1423
1424 
1425  @media only screen and (max-width: 1199px) and (min-width: 768px) { 
1426    .slick-area-emed--md-bleed { 
1427      width: 100vw; 
1428      left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important; 
1429
1430    .slick-area-emed--md-bleed .slick-list { 
1431      padding-left: calc(calc(50vw - (768px / 2) + 37px)); 
1432      padding-right: calc(calc(50vw - (768px / 2) + 37px)); 
1433
1434    .slick-area-emed--md-bleed .slick-arrow { 
1435      display: none !important; 
1436
1437
1438   
1439  @media only screen and (min-width: 376px) and (max-width: 1024px) { 
1440    .slick-area-emed--md-bleed { 
1441      width: 100vw; 
1442      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1443
1444    .slick-area-emed--md-bleed .slick-list { 
1445      padding-left: 2px; 
1446
1447    .slick-area-emed--md-bleed .slick-arrow { 
1448      display: none !important; 
1449
1450
1451   
1452  @media only screen and (max-width: 375px) { 
1453     
1454    .ssp-emed__card-slider-body { 
1455    padding: 25px 30px; 
1456
1457    
1458     
1459    .slick-area-emed--md-bleed { 
1460      width: 100vw; 
1461      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1462
1463    /* .slick-area-emed--md-bleed .slick-list { 
1464      padding-left: 20px; 
1465 
1466    } */ 
1467    .slick-area-emed--md-bleed .slick-arrow { 
1468      display: none !important; 
1469
1470
1471 
1472  .slick-area__item { 
1473    display: flex; 
1474    flex-basis: auto; 
1475
1476 
1477  .ssp-emed__section__textCard { 
1478  margin: 20px 0 0 0; 
1479
1480 
1481  .ssp-emed__card-slider-body { 
1482    padding: 25px 50px; 
1483    min-height: 350px; 
1484    display: flex; 
1485    flex-direction: column; 
1486
1487 
1488  .slick-area__item { 
1489    display: flex; 
1490    flex-basis: auto; 
1491
1492 
1493  .ssp-emed__card-slider-body a { 
1494    text-decoration: none!important; 
1495    font-weight: normal; 
1496    color: #78849E 
1497
1498 
1499  .ssp-emed__card-slider-body a:hover {   
1500    font-weight: bold!important; 
1501    color: #2a2e43 
1502
1503 
1504  .ssp-emed__card-slider { 
1505      border-radius: 12px; 
1506      background: transparent; 
1507      -webkit-box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%); 
1508      box-shadow: 0 0 12px 0 rgb(0 0 0 / 16%); 
1509      margin: 12px; 
1510      position: relative; 
1511      overflow: hidden; 
1512      color: #ffffff!important; 
1513      border: 1px solid #fff; 
1514      min-height: 350px; 
1515
1516 
1517  .ssp-emed__card-slider-transferencias{ 
1518    border-radius: 12px; 
1519    background: var(--color-neutral-25); 
1520    max-width: 816px; 
1521    margin: 0 auto; 
1522    width:100%; 
1523    padding: 56px; 
1524    color: var(--color-neutral-800); 
1525 
1526    .ssp-h3,p{ 
1527      margin-bottom: 0; 
1528
1529 
1530    .card-slider-body{ 
1531      display: grid; 
1532      gap:16px; 
1533
1534 
1535    .btn-transferencia{ 
1536      padding: 16px 40px; 
1537      background: var(--marca-azulsenac-400); 
1538      color: var(--color-neutral-25); 
1539      width: fit-content; 
1540      margin: 0 auto; 
1541      margin-top: 16px; 
1542      text-decoration: none!important; 
1543      border-radius: 4px; 
1544      transition: .3s; 
1545 
1546      &:hover{ 
1547        background: var(--marca-azulsenac-500); 
1548
1549 
1550
1551 
1552
1553 
1554  .slick-initialized .slick-track { 
1555      display: flex; 
1556
1557 
1558    .slick-initialized .slick-slide { 
1559      height: inherit!important; 
1560      display: flex; 
1561
1562 
1563  .ssp-emed__section__titleCard { 
1564  font-size: 28px !important; 
1565  color: #ffffff !important; 
1566  margin: 0 !important; 
1567  display: flex !important; 
1568  justify-content: flex-start !important; 
1569  flex-direction: row !important; 
1570  align-items: start !important; 
1571  flex-basis: 60px; 
1572
1573 
1574.ssp-emed__section__titleCard i { 
1575  font-size: 28px; 
1576  color: #ffffff; 
1577  margin: 0 0.85rem 0 0; 
1578  line-height: 30px; 
1579
1580 
1581.ssp-emed__section__titleCard i.fa-envelope { 
1582  margin-top: 0px;   
1583
1584 
1585.ssp-emed__section__titleCard i.fa-users-class { 
1586  margin-top:2px; 
1587
1588 
1589.ssp-emed__section__titleCard div { 
1590  text-decoration: underline; 
1591  font-size: 28px !important; 
1592  font-weight: bold; 
1593  margin: 0!important; 
1594  transform:translateY(-2px) 
1595
1596 
1597  .ssp-emed__section__introCard { 
1598    display: block; 
1599    font: 28px/30px 'Montserrat'; 
1600    font-weight: 600; 
1601    margin: 20px 0; 
1602    color: #ffffff;  
1603
1604 
1605  .ssp-emed__section__introCardCTA { 
1606    font: 34px/36px 'Montserrat'; 
1607    font-weight: bold; 
1608    display: block; 
1609    margin: 20px 0; 
1610    color: #ffffff;  
1611
1612 
1613  .ssp-emed__section__textCard { 
1614    font: 22px/30px 'Montserrat'; 
1615    color: #ffffff;  
1616    display: block; 
1617    margin: 20px 0 0 0; 
1618    position: relative; 
1619
1620 
1621  .ssp-emed__iconWrapper { 
1622    display: inline-block; 
1623    width: 50px; 
1624    color: #B053B2; 
1625    position: absolute; 
1626    bottom: 0; 
1627    right: 0; 
1628
1629 
1630  .ssp-emed__btn { 
1631    background-color: #B053B2 ; 
1632      color: #fff!important; 
1633      font: normal normal 600 18px/22px Montserrat; 
1634      box-shadow: 0px 4px 16px #455B6314; 
1635      width: 100%; 
1636      transition: .3s; 
1637      padding:10px!important; 
1638
1639 
1640  .ssp-emed__btn:hover { 
1641      opacity: 0.7; 
1642  }     
1643 
1644  /*mobile emed*/ 
1645  @media only screen and (max-width: 1024px) { 
1646    .slick-area-emed .slick-dots li.slick-active button:before { 
1647      opacity: .75; 
1648      color: #707070; 
1649
1650   
1651    .slick-area-emed .slick-dots li button:before { 
1652      color: blue; 
1653
1654 
1655    .ssp-card-detalhe-curso__secundary-info-carga-horaria { 
1656      min-width: 35%; 
1657      text-align: end; 
1658
1659 
1660    .ssp-emed__card-slider-transferencias{ 
1661      padding: 56px 24px; 
1662      border-radius: 0; 
1663 
1664 
1665      .card-slider-body{ 
1666        display: grid; 
1667        gap:16px; 
1668
1669 
1670      .btn-transferencia{ 
1671        padding: 16px; 
1672        text-align: center; 
1673        width: 100%; 
1674
1675 
1676
1677 
1678
1679   
1680  @media only screen and (max-width: 1199px) and (min-width: 768px) { 
1681    .slick-area-emed--md-bleed { 
1682      width: 100vw; 
1683      left: calc(-1 * calc(50vw - (740px / 2) + 37px))!important; 
1684
1685    .slick-area-emed--md-bleed .slick-list { 
1686      padding-left: calc(calc(50vw - (768px / 2) + 37px)); 
1687      padding-right: calc(calc(50vw - (768px / 2) + 37px)); 
1688
1689    .slick-area-emed--md-bleed .slick-arrow { 
1690      display: none !important; 
1691
1692
1693   
1694  @media only screen and (min-width: 375px) and (max-width: 1024px) { 
1695      .slick-area-emed--md-bleed { 
1696        width: 100vw; 
1697        left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1698
1699      .slick-area-emed--md-bleed .slick-list { 
1700        padding-left: 2px; 
1701
1702      .slick-area-emed--md-bleed .slick-arrow { 
1703        display: none !important; 
1704
1705      .ssp-emed__section__titleCard { 
1706      align-items: start !important; 
1707
1708 
1709    .ssp-emed__section__titleCard div { 
1710      font-weight: bold !important; 
1711
1712 
1713    .ssp-emed__section__titleCard i { 
1714      font-weight: 300 !important; 
1715      font-size: 28px !important; 
1716      margin: 3px 0.85rem 0 0; 
1717
1718 
1719    .transferencia-emed-title { 
1720      font-size: 12px; 
1721
1722 
1723    .ssp:not(.liferay-instance) .ssp-card-registro-interesse__select { 
1724      background-size: 15px 15px !important; 
1725      padding: 0 10px; 
1726
1727
1728   
1729  @media only screen and (max-width: 550px) { 
1730 
1731    .ssp-emed__section__introCardCTA{ 
1732      font-size: 28px; 
1733
1734 
1735    #msg-transferencia-emed{ 
1736    gap:12px; 
1737
1738     
1739    
1740     
1741    .ssp-emed__card-slider { 
1742      width:335px; 
1743      min-height: 440px; 
1744
1745 
1746    .slick-initialized .slick-track { 
1747      display: flex; 
1748
1749 
1750    .slick-initialized .slick-slide { 
1751      height: inherit!important; 
1752      display: flex; 
1753      min-height: 440px; 
1754
1755 
1756  .ssp-emed__card-slider-body { 
1757    padding: 25px 30px; 
1758
1759 
1760  .ssp-emed__section__titleCard div { 
1761      transform: translateY(-5%); 
1762      font-size: 24px!important; 
1763
1764     
1765    .slick-area-emed--md-bleed { 
1766      width: 100vw; 
1767      left: calc(-1 * (calc(100vw / 2) - calc(310px / 2) - 3px)); 
1768
1769    .slick-area-emed--md-bleed .slick-list { 
1770      padding-left: 20px; 
1771
1772    .slick-area-emed--md-bleed .slick-arrow { 
1773      display: none !important; 
1774
1775 
1776    .ssp-card-registro-interesse__title-section-itens { 
1777    flex-basis: 80px; 
1778
1779 
1780  .emed #periodo-registro-interesse, .emed #turmas-registro-interesse { 
1781    width: 95%; 
1782
1783 
1784  .emed .ssp:not(.liferay-instance) .ssp-card-registro-interesse label { 
1785    margin: 0!important; 
1786
1787 
1788  .emed .ssp-card-registro-interesse.emed [type="checkbox"] { 
1789    margin-left: 0!important; 
1790
1791 
1792  .emed .ssp-card-registro-interesse__check-item { 
1793    flex-basis: 100px; 
1794
1795
1796 
1797  .emed-select-group { 
1798    box-shadow: 0px 0px 12px #00000010; 
1799    border: 1px solid #6E6E6E; 
1800    border-radius: 4px; 
1801    margin: 1rem 0; 
1802
1803 
1804.emed-select-group h4 { 
1805    margin: 15px 0 10px 0; 
1806
1807.ssp-emed__section__textCard { 
1808  margin: 20px 0 0 0; 
1809
1810 
1811.ssp-card-msg-sucesso__btn{ 
1812  font-size: 20px; 
1813
1814 
1815.ssp:not(.liferay-instance) .ssp-card-oferta-curso { 
1816  height:fit-content; 
1817
1818 
1819.ssp-card-duvida__bolsa-estudo{ 
1820 
1821background:#DCE8FF; 
1822padding: 30px; 
1823max-width: 683px; 
1824width: 100%; 
1825border-radius: 14px; 
1826display:flex; 
1827justify-content:center; 
1828align-items: center; 
1829gap: 20px;  
1830margin: 1rem auto; 
1831 
1832
1833 
1834.ssp-card-duvida__bolsa-estudo p{ 
1835 
1836font-size: 16px!important; 
1837font-weight: bold!important; 
1838color: #2967F4!important; 
1839margin: 0!important;; 
1840 
1841
1842 
1843.ssp-card-duvida__bolsa-estudo a{ 
1844 
1845border:1px solid #2967F4!important; 
1846font-size: 14px!important; 
1847font-weight: 600; 
1848text-decoration: none!important; 
1849color: #2967F4!important; 
1850padding:14px 27px; 
1851border-radius:6px; 
1852transition: .3s; 
1853 
1854
1855 
1856.ssp:not(.liferay-instance) .ssp-card-duvida__bolsa-estudo a:hover{ 
1857 
1858font-size: 14px!important; 
1859font-weight: 600!important; 
1860background: #2967F4!important; 
1861color:white !important; 
1862opacity:1!important; 
1863 
1864
1865 
1866@media only screen and (max-width: 768px){ 
1867 
1868.ssp-card-duvida__bolsa-estudo{ 
1869 
1870    background:#DCE8FF; 
1871    padding: 20px; 
1872    flex-flow: column; 
1873    width:90%; 
1874 
1875
1876 
1877.ssp-card-duvida__bolsa-estudo p{ 
1878 
1879    max-width:200px; 
1880    text-align: center; 
1881 
1882
1883 
1884.ssp-card-duvida__bolsa-estudo a{ 
1885 
1886    padding:16px 27px;          
1887 
1888
1889 
1890
1891 
1892/* Novo Card de Oferta */ 
1893 
1894  /* ajustes no card existente */ 
1895 
1896  .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma{ 
1897    margin-bottom: 30px; 
1898
1899 
1900  .ssp:not(.liferay-instance) .ssp-card-oferta__info-turma-content { 
1901      margin-bottom: 5px; 
1902
1903 
1904  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-data-periodo{ 
1905    margin: 5px 0 10px 0; 
1906
1907 
1908  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item { 
1909      border-radius: 0; 
1910      background-color: unset; 
1911      padding: 0; 
1912      max-width: 100%; 
1913      width: 100%; 
1914      margin: 0; 
1915
1916 
1917  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora_content{ 
1918      margin:0; 
1919      opacity: 0; 
1920      transition: 0.3s; 
1921
1922 
1923  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia { 
1924      margin: 0; 
1925      font-size: 17px; 
1926      font-weight: bold; 
1927      font-stretch: normal; 
1928      font-style: normal; 
1929      line-height: 1.23; 
1930      letter-spacing: normal; 
1931      text-align: center; 
1932
1933 
1934  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__hora { 
1935      margin: 0; 
1936      font-size: 17px; 
1937      font-weight: bold; 
1938      font-stretch: normal; 
1939      font-style: normal; 
1940      line-height: 1.3; 
1941      letter-spacing: normal; 
1942      text-align: center; 
1943
1944 
1945  .modal-extensao_txteconomiza{ 
1946      font-size: 14px; 
1947      color: #454F63; 
1948      font-weight: 400; 
1949
1950 
1951  .btn.btn-lg { 
1952      padding:.7rem; 
1953 
1954
1955 
1956  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{ 
1957    font-size: 17px; 
1958
1959 
1960  .ssp-card-oferta-curso__item-valor-investimento{ 
1961    font-size: 38px; 
1962
1963 
1964  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__title{ 
1965    color: #454F63; 
1966    font-weight: bold!important; 
1967    font-size: 14px; 
1968
1969 
1970.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content .ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card::after{ 
1971    color: #454F63!important; 
1972    font-size: 14px; 
1973
1974 
1975.ssp-card-modal-forma-pagamento__icon-boleto-e-cartao{ 
1976    font-size: 18px!important; 
1977    margin-right: 15px!important; 
1978
1979 
1980 
1981.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content span{ 
1982    color:#454F63; 
1983    font-size: 14px; 
1984    font-weight: 400; 
1985
1986 
1987.ssp:not(.liferay-instance) .ssp-card-oferta-curso__formas-pagamento-content { 
1988    padding-bottom: 0; 
1989
1990 
1991  /* local realizacao */ 
1992 
1993  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title { 
1994    font-size: 13px; 
1995    color: #00488C; 
1996    font-weight: 600; 
1997    text-decoration: none!important; 
1998    border: 1px solid #00488C; 
1999    padding: 11px 14px; 
2000    transition:.3s; 
2001    border-radius: 4px; 
2002    display: flex; 
2003    gap: 5px; 
2004    align-items: center; 
2005
2006   
2007  .ssp:not(.liferay-instance) .ssp-card-oferta-curso__local-realizacao-content__title:hover { 
2008      color: white; 
2009      font-weight: 600!important; 
2010      background: #08488C; 
2011  }  
2012     
2013  .container-local-realizacao { 
2014      padding:0; 
2015      border:0; 
2016      border-radius: unset; 
2017      width: 100%; 
2018      margin: 10px 0 0 0; 
2019      box-shadow: none; 
2020      display: flex; 
2021      justify-content:center; 
2022      align-items: flex-end; 
2023
2024 
2025  .icon-local-realizacao{ 
2026      color: #00488C; 
2027      font-size: 13px; 
2028  }  
2029   
2030   
2031  @media only screen and (max-width: 768px){ 
2032 
2033    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__dia-hora-item__dia {  
2034        font-size: 16px; 
2035
2036 
2037    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__title-item { 
2038        font-size: 14px!important; 
2039
2040 
2041    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__valor-desconto{ 
2042        font-size: 15px; 
2043
2044 
2045    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__item-valor-investimento { 
2046      font-size: 33px; 
2047
2048 
2049    .icon-local-realizacao { 
2050        font-size: 12px; 
2051
2052 
2053    .modal-extensao_txteconomiza { 
2054        font-size: 12px; 
2055
2056 
2057    .content-valores-descontos { 
2058        padding-bottom: 8px!important; 
2059
2060 
2061    .ssp:not(.liferay-instance) .ssp-card-oferta-curso__desconto-content p{ 
2062        font-size: 14px!important; 
2063
2064 
2065 
2066
2067 
2068     
2069     
2070 
2071/* final ajustes no card existente */ 
2072 
2073 
2074/* Novos elementos */ 
2075 
2076.content-data-dias{ 
2077    padding:20px; 
2078    padding-top:0; 
2079    border-bottom: none !important; 
2080
2081 
2082.content-valores-descontos{ 
2083    padding:20px 0 0 0; 
2084    opacity: 1; 
2085    height:auto; 
2086    transition: 0.3s; 
2087    overflow: hidden; 
2088    border-top: 1px #E4E8F0 solid;     
2089
2090 
2091.content-valores-descontos.hide-price{ 
2092     
2093    padding:0; 
2094    opacity: 0; 
2095    height:0; 
2096     
2097
2098 
2099.content-btn-bolsa{ 
2100 
2101    border-top: 1px #E4E8F0 solid; 
2102    padding-top:20px;     
2103 
2104
2105 
2106.content-btn-bolsa.modifier-content-show{ 
2107 
2108    padding-bottom: 20px; 
2109 
2110
2111 
2112.content-btn-bolsa.modifier-content-show .ou-separator-desconto{ 
2113    display:none; 
2114
2115 
2116.content-btn-bolsa.modifier-content-show .btn-show-price{ 
2117    display:none; 
2118
2119 
2120.content-buttons{ 
2121 
2122    padding:20px 0 0 0; 
2123 
2124
2125 
2126.block-valor-desconto{ 
2127 
2128  background-color:#F2F6FF; 
2129  padding: 30px 10px 15px 10px; 
2130  border-radius:12px; 
2131  position: relative; 
2132 
2133
2134 
2135.block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span { 
2136  font-size: 18px; 
2137
2138 
2139.block-valor-total{ 
2140 
2141  background-color:#F2F6FF; 
2142  padding:15px 10px; 
2143  border-radius:12px; 
2144  position: relative; 
2145 
2146
2147 
2148.block-valor-total .ssp-card-oferta-curso__title-item{ 
2149  font-size: 16px!important; 
2150  color: #454F63!important; 
2151  font-weight:500!important; 
2152
2153 
2154.block-valor-total .ssp-card-oferta-curso__item-valor-investimento{ 
2155  font-size:22px; 
2156
2157 
2158.block-valor-total .ssp-card-oferta-curso__item-valor-investimento span{ 
2159    font-size:11px; 
2160
2161 
2162.block-valor-total .ssp-card-oferta-curso__desconto-content p{ 
2163    font-size:14px; 
2164    font-weight: 500; 
2165
2166 
2167.tag-label-desconto{ 
2168 
2169background-color:#B6FDCF; 
2170border-radius: 15px; 
2171padding:5px; 
2172margin: -50px 20px 10px 20px; 
2173 
2174
2175 
2176.tag-label-desconto span, .tag-label-desconto small{ 
2177font-size: 16px!important; 
2178font-weight: bold!important; 
2179color: #454F63!important; 
2180
2181 
2182 
2183 
2184.ou-separator-desconto{ 
2185    font-size: 16px; 
2186    color: #454F63; 
2187    font-weight: bold; 
2188    display:flex; 
2189    flex-wrap: nowrap; 
2190    align-items: center; 
2191    justify-content:space-between; 
2192    gap: 15px; 
2193    padding:20px 0; 
2194
2195 
2196.ou-separator-desconto::after{ 
2197    content: ""; 
2198    height:2px; 
2199    background-color:#E4E8F0; 
2200    width: 100%; 
2201    display: block; 
2202
2203 
2204.ou-separator-desconto::before{ 
2205  content: ""; 
2206  height:2px; 
2207  background-color:#E4E8F0; 
2208  width: 100%; 
2209  display: block; 
2210
2211 
2212.btn-show-price{ 
2213 
2214  background: unset; 
2215  border: 0; 
2216  font-size: 14px!important; 
2217  color: #454F63!important; 
2218 
2219
2220 
2221.btn-show-price p{ 
2222  margin: 0 !important; 
2223
2224 
2225.btn-show-price span{ 
2226  text-decoration: underline; 
2227  font-weight: bold; 
2228
2229 
2230@media only screen and (max-width: 768px){ 
2231 
2232  .content-data-dias{ 
2233 
2234    padding:20px 0; 
2235 
2236
2237 
2238  .ssp-card-oferta-curso__local-realizacao-content__title { 
2239 
2240      font-size: 14px; 
2241      display:flex; 
2242      align-items: center; 
2243      gap: 5px; 
2244      padding: 10px 13px; 
2245
2246 
2247  .ssp-card-oferta-curso__local-realizacao-content__title i{ 
2248 
2249      font-size: 11px; 
2250
2251 
2252  .tag-label-desconto span, .tag-label-desconto small { 
2253      font-size: 13px!important; 
2254
2255 
2256  .tag-label-desconto { 
2257      padding: 5px; 
2258      margin: -50px 12px 10px 12px; 
2259
2260 
2261  .block-valor-desconto .ssp-card-oferta-curso__item-valor-investimento span { 
2262      font-size: 18px; 
2263
2264 
2265  .content-buttons { 
2266      padding: 10px 0 0 0; 
2267
2268 
2269 
2270
2271 
2272/*final Novo card de ofertas*/ 
2273 
2274/* form aprendizagem */ 
2275 
2276[data-modal="modal"]{ 
2277  background-color: rgba(0,0,0,0.7); 
2278  backdrop-filter: blur(10px); 
2279  display:none; 
2280
2281 
2282[data-modal="close-form-modal"]{ 
2283   
2284  font-size: 22px; 
2285  background: unset!important; 
2286  color: white!important; 
2287  display: flex; 
2288  align-items: center; 
2289  margin: 0; 
2290  padding: 0; 
2291  position:absolute; 
2292  right:0; 
2293  border:0; 
2294  gap:5px; 
2295  right: 2%; 
2296  top: -2%; 
2297   
2298
2299 
2300[data-modal="close-form-modal"] i{ 
2301   
2302  font-size:43px; 
2303  height:fit-content; 
2304   
2305
2306 
2307.open-modal-form{ 
2308  position: fixed; 
2309  top: 0; 
2310  width: 100%; 
2311  height: 100%; 
2312  z-index: 100; 
2313  display: flex; 
2314  justify-content: center; 
2315  align-items: center; 
2316  overflow:auto; 
2317 
2318
2319 
2320.open-modal-form .ssp_ct_form_programe{ 
2321    animation-name: animatetop; 
2322    animation-duration: .4s; 
2323    position:relative; 
2324
2325 
2326label .reference-mark { 
2327color:#78849e; 
2328
2329.lexicon-icon-asterisk { 
2330  color:#78849e; 
2331
2332.lexicon-icon-reload { 
2333  margin-left:10px; 
2334
2335.ssp_title_form_programe{ 
2336    font-size: 42px!important; 
2337    color: #ffffff!important; 
2338    font-family: "Montserrat",sans-serif; 
2339    font-weight:600; 
2340    text-align:left; 
2341
2342.ssp_subtitle_form_programe { 
2343  margin-top:0px!important; 
2344   
2345
2346.ssp_subtitle_form_programe{ 
2347  font-size: 20px!important; 
2348    color: #ffffff!important; 
2349    font-family: "Montserrat",sans-serif; 
2350    font-weight:600; 
2351    text-align:left; 
2352
2353.lfr-ddm-form-page { 
2354background-color: #fff; 
2355border-radius: 12px 12px 0px 0px; 
2356padding: 35px 15px!important; 
2357
2358.ssp:not(.liferay-instance) .form-group label { 
2359 color: #78849E; 
2360 font: normal normal 600 16px/19px Montserrat; 
2361 padding-bottom: 10px; 
2362
2363.lfr-ddm-form-page-description {  
2364display: none!important; 
2365
2366.lfr-ddm-form-page-title { 
2367display: none!important; 
2368
2369.lfr-ddm-form-submit { 
2370background-color: #0380F0; 
2371    text-align: center; 
2372    float: none!important; 
2373    border: 1px solid #0380F0; 
2374    border-radius: 6px; 
2375    font-size: 16px; 
2376    width: 245px; 
2377    height: 50px; 
2378
2379.lfr-ddm-form-pagination-controls { 
2380background-color: #fff; 
2381    text-align: center; 
2382    border-radius: 0px 0px 12px 12px; 
2383    padding-bottom: 25px; 
2384
2385.ddm-form-name { 
2386display: none!important; 
2387
2388.ddm-form-description { 
2389display: none!important; 
2390
2391.ddm-form-builder-app { 
2392margin-top:35px; 
2393
2394.taglib-captcha { 
2395  display: flex; 
2396
2397.input-text-wrapper { 
2398  left: 20px; 
2399
2400.lfr-ddm-form-pagination-controls { 
2401  padding-top:0px!important; 
2402  display:flex; 
2403  justify-content:center; 
2404  align-items: center; 
2405  flex-flow:column; 
2406
2407@media only screen and (max-width: 1024px) { 
2408   
2409.open-modal-form{ 
2410   
2411  align-items: flex-start; 
2412   
2413}   
2414 
2415.ddm-form-builder-app { 
2416    margin-top: 15px; 
2417
2418   
2419.ssp_title_form_programe{ 
2420font-size: 34px!important; 
2421line-height: 1.2!important; 
2422
2423.ssp_subtitle_form_programe{ 
2424font-size:18px!important; 
2425
2426.taglib-captcha { 
2427  display:block; 
2428
2429.input-text-wrapper { 
2430  left:0; 
2431
2432.ssp_ct_form_programe { 
2433  padding:0px; 
2434  max-width:100%; 
2435  padding:40px 20px; 
2436
2437 
2438[data-modal="close-form-modal"]{ 
2439   
2440  right: 20px; 
2441  top: 0; 
2442   
2443
2444 
2445
2446 
2447.ssp:not(.liferay-instance) a.btn.btn-success.disabled{ 
2448	pointer-events: none; 
2449	opacity: 0.5 !important; 
2450	color: #FFF !important; 
2451	background-color: #4CBF69 !important; 
2452	cursor: not-allowed; 
2453	border: none !important; 
2454	font-size: 0.9rem !important; 
2455
2456 
2457.slick-list.draggable { 
2458  height: auto !important; 
2459
2460 
2461.ssp:not(.liferay-instance) .ssp-image-opacity { 
2462 
2463  opacity: 1; 
2464  object-fit: cover; 
2465  object-position: center; 
2466 
2467
2468 
2469.ssp-option-group { 
2470  text-align: left; 
2471  font: normal normal 600 15px/19px Montserrat; 
2472  letter-spacing: 0px; 
2473  color: #004A8C; 
2474
2475.ssp-option { 
2476  text-align: left; 
2477  font: normal normal normal 15px/19px Montserrat; 
2478  letter-spacing: 0px; 
2479  color: #656565; 
2480
2481@media only screen and (max-width: 768px){ 
2482  .ssp-option-group { 
2483    font: normal normal 600 15px/19px Montserrat; 
2484
2485  .ssp-option { 
2486    font: normal normal normal 15px/19px Montserrat; 
2487
2488
2489 
2490.open-modal-form.lfr-ddm__default-page-header{ 
2491    display:none; 
2492
2493 
2494/* css para funcionalidade de híbrido */ 
2495 
2496.ssp-emed__vantagens-content.livre span{ 
2497  color: #FF9057!important; 
2498
2499.ssp-emed__vantagens-content.livre a:hover { 
2500    color: white; 
2501    background-color: #FF9057!important;; 
2502    border: 1px solid #FF9057!important;; 
2503
2504.ssp-emed__vantagens-content.tecnico span{ 
2505  color: #F7BD23!important; 
2506
2507.ssp-emed__vantagens-content.tecnico a:hover { 
2508    color: white; 
2509    background-color: #F7BD23!important;; 
2510    border: 1px solid #F7BD23!important;; 
2511
2512.ssp-emed__vantagens-content.ensino-medio-tecnico span{ 
2513  color: #C761CB!important; 
2514
2515.ssp-emed__vantagens-content.ensino-medio-tecnico a:hover{ 
2516    color: white; 
2517    background-color: #C761CB!important;; 
2518    border: 1px solid #C761CB!important;; 
2519
2520.ssp-emed__vantagens-content.extensao span{ 
2521  color: #3ECCA6!important; 
2522
2523.ssp-emed__vantagens-content.extensao a:hover{ 
2524    color: white; 
2525    background-color: #3ECCA6!important; 
2526    border: 1px solid #3ECCA6!important; 
2527
2528 
2529/* Transferencias EMED */ 
2530 
2531.emed-transferencias-space{ 
2532  max-width: auto; 
2533
2534 
2535.card-transferencias-emed { 
2536  text-align: left; 
2537
2538 
2539.card-transferencias-emed .ssp-emed__card-slider-body{ 
2540  padding: 30px; 
2541
2542 
2543.card-pre-inscricao { 
2544  text-align: center; 
2545
2546 
2547.card-pre-inscricao .ssp-emed__card-slider-body{ 
2548  justify-content: space-evenly; 
2549
2550 
2551.footer-card-card-pre-inscricao{ 
2552      margin-top: 48px; 
2553
2554 
2555.card-transferencias-emed, .card-pre-inscricao{ 
2556  span, strong{ 
2557    font-size: 24px; 
2558
2559  span{ 
2560    font-weight: 500; 
2561
2562  strong{ 
2563    font-weight: 700; 
2564
2565  .transferencias-emed-rodape{ 
2566    margin-top:25px; 
2567    span{ 
2568      font-size:0.9rem; 
2569      font-weight: 400; 
2570
2571
2572
2573 
2574@media only screen and (max-width: 768px){ 
2575  .card-pre-inscricao { 
2576    text-align: left; 
2577
2578 
2579  .footer-card-card-pre-inscricao{ 
2580      margin-top: 24px; 
2581
2582 
2583  .footer-card-card-pre-inscricao strong{ 
2584      margin-top: 24px; 
2585      font-size: 24px!important; 
2586
2587 
2588  .card-pre-inscricao .ssp-emed__card-slider { 
2589        width: 100%; 
2590        max-width: 329px; 
2591        min-height: 390px; 
2592        margin: 0; 
2593
2594 
2595  .card-pre-inscricao .ssp-emed__card-slider:nth-child(n+2){ 
2596        margin: 12px; 
2597
2598 
2599  .card-transferencias-emed, .card-pre-inscricao{ 
2600    span, strong{ 
2601      font-size: 16px; 
2602
2603    .ssp-emed__section__titleCard{ 
2604      flex-basis: 0; 
2605      margin-bottom: 24px!important; 
2606      align-items: center!important; 
2607    }  
2608 
2609    .ssp-emed__section__titleCard i{ 
2610      font-size: 24px!important; 
2611
2612 
2613    .ssp-emed__section__titleCard div{ 
2614      font-size: 20px !important; 
2615
2616
2617 
2618  .slick-area__item.card-pre-inscricao{ 
2619    min-height: 390px!important; 
2620
2621 
2622  .card-transferencias-emed .ssp-emed__card-slider{ 
2623    margin: 0; 
2624
2625 
2626  .card-transferencias-emed .ssp-emed__card-slider{ 
2627    margin: 0; 
2628    min-height: 300px; 
2629
2630 
2631  .card-transferencias-emed .col-md-12{ 
2632    padding: 0; 
2633
2634 
2635  .card-transferencias-emed .transferencias-emed-rodape span{ 
2636    font-size: 12px; 
2637
2638 
2639  .ssp-ofertas-emed__filtro-content .btn-filtro{ 
2640    width:156px !important; 
2641    font-size:14px !important; 
2642
2643 
2644  #titulo-emed{ 
2645    text-transform: uppercase; 
2646
2647 
2648  .emed-transferencias-space div:nth-child(n+2){ 
2649    padding-left:0; 
2650
2651 
2652  .emed-transferencias-space .slick-area-emed--md-bleed{ 
2653    position: inherit; 
2654
2655 
2656
2657 
2658</style> 
2659                
2660	 
2661  <#assign 
2662     
2663    prefix = "ssp" 
2664    nomeVocabularioTipoCurso = 'tipo-de-curso' 
2665     
2666   
2667    nomeVocabularioUnidades = 'unidades' 
2668     
2669    nomeVocabularioFormato = 'formato' 
2670     
2671    nomeFormato = ""   
2672    nomeVocabularioModalidade = 'modalidade' 
2673     
2674    nomeModalidade = ""   
2675     
2676    normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizer") 
2677   
2678    journalArticle = getJournalArticle() 
2679  /> 
2680   
2681  <#if journalArticle?contains("#erro#")> 
2682    erro 
2683  <#else> 
2684   
2685    <#assign 
2686   
2687      categories = getCategorias(journalArticle.getResourcePrimKey()) 
2688  
2689      document = saxReaderUtil.read(journalArticle.getContent()).getRootElement() 
2690   
2691      xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataEfetivaFTFieldSet']") 
2692			dataEfetivaFTFieldSet	= xPathSelector.selectSingleNode(document) 
2693        
2694		  xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='dataEfetivaFT']") 
2695			dataEfetiva = xPathSelector.selectSingleNode(document) 
2696						  
2697			dataEfetivaSTR = dataEfetiva.elementText("dynamic-content")?string 
2698   
2699      articleId = journalArticle.getArticleId() 
2700   
2701      codigoFT = getStringValue(document,'codigoFT') 
2702   
2703      tituloComercial = journalArticle.getTitle() 
2704   
2705      objetivo = getStringValue(dataEfetivaFTFieldSet, 'objetivoComercial') 
2706       
2707      cargaHoraria = getStringValue(dataEfetivaFTFieldSet, 'cargaHorariaTotalFT') 
2708   
2709      oQueVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueVouAprenderComercial') 
2710   
2711      comoVouAprenderComercial = getStringValue(dataEfetivaFTFieldSet, 'comoVouAprenderComercial') 
2712			 
2713			possoFazerEsteCursoComercial = getStringValue(dataEfetivaFTFieldSet, 'possoFazerEsteCursoComercial') 
2714						  
2715      tereiCertificadoComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiCertificadoComercial') 
2716   
2717      tereiDiplomaComercial = getStringValue(dataEfetivaFTFieldSet, 'tereiDiplomaComercial') 
2718   
2719      precisoEstagiarComercial = getStringValue(dataEfetivaFTFieldSet, 'precisoEstagiarComercial') 
2720   
2721      comoMeMatricularComercial = getStringValue(dataEfetivaFTFieldSet, 'comoMeMatricularComercial') 
2722   
2723      oQueMaisPrecisoSaberComercial = getStringValue(dataEfetivaFTFieldSet, 'oQueMaisPrecisoSaberComercial') 
2724       
2725      normalizedModalidadeName  = "" 
2726   
2727    /> 
2728	 
2729    <div style="display: none;">ElasticSearchNaoRetornarFiltro </div> 
2730    <input type="hidden" name="codigoFT" value="${codigoFT}" /> 
2731    <input type="hidden" name="articleId" value="${articleId}" /> 
2732   
2733    <input type="hidden" name="dataEfetivaSTR" value="${dataEfetivaSTR}" /> 
2734     
2735    <input type="hidden" name="codUnidadeSelecionada" value="" /> 
2736   
2737    <#list categories as category> 
2738       
2739      <#assign 
2740        vocabulary = getVocabulary(category.getVocabularyId()) 
2741      /> 
2742   
2743      <#if normalizer.normalize(vocabulary.getName()) == nomeVocabularioTipoCurso> 
2744   
2745        <#assign 
2746          categoriaTipoCurso = category 
2747          normalizedCategoryName = normalizer.normalize(category.getName()) 
2748        /> 
2749         
2750        <input type="hidden" name="tipoCurso" value="${normalizedCategoryName}" /> 
2751         
2752      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioUnidades> 
2753   
2754        <input type="hidden" name="unidades" value="${category.getCategoryId()}" data-unidade="${category.getName()}" /> 
2755       
2756      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioModalidade> 
2757     
2758      <#assign 
2759          categoriaModalidade = category 
2760          normalizedModalidadeName = normalizer.normalize(category.getName()) 
2761           
2762        /> 
2763        <input type="hidden" name="modalidadeName" value="${normalizedModalidadeName}" /> 
2764        <input type="hidden" name="modalidades" value="${normalizedModalidadeName}" /> 
2765         
2766      <#elseif normalizer.normalize(vocabulary.getName()) == nomeVocabularioFormato> 
2767      <#assign 
2768        nomeFormato = category.getName() 
2769      /> 
2770        
2771        
2772       <#assign idFormato = category.getCategoryId() /> 
2773        <#if nomeFormato == "Presencial + EAD" > 
2774            <input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="Presencial + EAD" /> 
2775        <#else> 
2776        	<input type="hidden" name="formato" value="${category.getCategoryId()}" data-formato="${category.getName()}" /> 
2777        </#if> 
2778      </#if> 
2779    </#list> 
2780   
2781    <#assign xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='imagemComercial']")> 
2782   
2783    <#if xPathSelector.selectSingleNode(dataEfetivaFTFieldSet)?? > 
2784   
2785      <#assign imagemStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue()> 
2786      <#if imagemStr?contains("{") > 
2787      <#attempt>   
2788        <#assign 
2789            imagemJson = jsonFactoryUtil.createJSONObject(imagemStr) 
2790            imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId')) 
2791            dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") 
2792            dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper") 
2793            fileEntry = dl.getFileEntry(imagemId) 
2794            imagemAlt = imagemJson.get('alt') 
2795            imagemUrl = dlURLHelper.getDownloadURL(fileEntry, fileEntry.getFileVersion(), themeDisplay,null) 
2796          /> 
2797      <#recover> 
2798        <#assign 
2799          imagemAlt = "" 
2800          imagemUrl = ""  
2801        /> 
2802      </#attempt> 
2803      <#else> 
2804        <#assign imagemUrl = ""> 
2805      </#if>   
2806   
2807    <#else> 
2808      <#assign imagemUrl = ""> 
2809    </#if> 
2810    
2811    
2812    <#assign  
2813          
2814        URLCodec = staticUtil["com.liferay.portal.kernel.util.URLCodec"]  
2815        HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"]  
2816       StringPool = staticUtil["com.liferay.petra.string.StringPool"]  
2817       dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")  
2818        
2819         xPathSelector = saxReaderUtil.createXPath("//dynamic-element[@field-reference='quaisMateriaisComercial']") 
2820         quaisMateriaisComercialPDFStr = xPathSelector.selectSingleNode(dataEfetivaFTFieldSet).getStringValue() 
2821     /> 
2822	 
2823    <#if quaisMateriaisComercialPDFStr?contains('classPK') > 
2824     
2825      <#assign  
2826         
2827       PDFJson = jsonFactoryUtil.createJSONObject(quaisMateriaisComercialPDFStr) 
2828       classPKNumber = PDFJson.classPK?number 
2829       fileEntry = dlFileEntryLocalService.getDLFileEntry(classPKNumber) 
2830       folderId = fileEntry.getFolderId() 
2831       title = fileEntry.getTitle() 
2832        
2833       quaisMateriaisComercialPDFUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + folderId +  StringPool.SLASH + URLCodec.encodeURL(HtmlUtil.unescape(title)) 
2834       /> 
2835     
2836    <#else> 
2837      <#assign quaisMateriaisComercialPDFUrl = ""> 
2838    </#if> 
2839 
2840    <#function getStatusListaEsperaEMED > 
2841      <#attempt> 
2842        <#assign controlService = serviceLocator.findService("br.senac.apps.api.BooleanControl")> 
2843        <#return controlService.isEnabled("listaEsperaEMED")> 
2844      <#recover> 
2845        <#return false /> 
2846      </#attempt> 
2847    </#function> 
2848     
2849    <#function getFirstArticleStructure categoryId structureName> 
2850                <#attempt> 
2851                        <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search")> 
2852                        <#assign companyId = themeDisplay.getCompanyId()> 
2853                        <#assign groupId = themeDisplay.getScopeGroupId()> 
2854                        <#assign articles = searchImpl.findArticlesByCategoryIds(companyId, groupId, structureName, (categoryId gt 0)?then([categoryId],[]), true, 0, 1)> 
2855                        <#if articles?size gt 0> 
2856                                <#return articles?first> 
2857                        </#if> 
2858                        <#return ''> 
2859                <#recover> 
2860                                <#return ''> 
2861                </#attempt> 
2862        </#function> 
2863 
2864  
2865  <#assign  
2866    nomeTipoCurso = categoriaTipoCurso.getName() 
2867    nomeCategoriaTipoCurso = categoriaTipoCurso.getName() 
2868    idTipoCurso = categoriaTipoCurso.getCategoryId() 
2869         /> 
2870         <input type="hidden" name="nomeCategoriaTipoCurso" value="${nomeCategoriaTipoCurso}" /> 
2871 
2872      <#if nomeTipoCurso?contains("Ensino Médio Técnico")> 
2873 
2874        <#assign  
2875        nomeTipoCurso = categoriaTipoCurso.getName() 
2876        />  
2877         
2878        <input type="hidden" name="idTipoCurso" value="${idTipoCurso}" /> 
2879 
2880        <#elseif (nomeTipoCurso?contains("cnico") && !nomeTipoCurso?contains("EAD") ) || nomeTipoCurso?contains("Livre") > 
2881 
2882        <#assign  
2883         nomeTipoCurso = "Cursos "+ categoriaTipoCurso.getName() + "s" 
2884        /> 
2885 
2886      <#else> 
2887          <#assign  
2888              nomeTipoCurso = categoriaTipoCurso.getName() 
2889          />  
2890        <#assign nomeTipoCurso = categoriaTipoCurso.getName()/>  
2891    
2892    </#if> 
2893     
2894    <#--  Caso o curso seja do formato hibrido, busca o webcontent da pasta Onde as aulas vão acontecer - hibrido  --> 
2895    <#if nomeFormato == "Presencial + EAD"> 
2896        <#assign 
2897                hibridoStructure = getFirstArticleStructure(idFormato,"formato-hibrido") 
2898                documentHibrido = saxReaderUtil.read(hibridoStructure.getContent()) 
2899                rootElement = documentHibrido.getRootElement() 
2900                xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoFormatoHibrido']") 
2901        /> 
2902        <#if xPathSelector.selectSingleNode(rootElement)?? > 
2903              <#assign txtHibrido = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2904              <input type="hidden" name="textoFormatoHibrido" value="${txtHibrido}"/> 
2905        </#if>               
2906  	</#if>               
2907     
2908     
2909    <#--  dados de compartilhamento  --> 
2910    <@liferay_util["html-top"]> 
2911        <meta name="image" property="og:image" content="${imagemUrl}"> 
2912        <meta property="og:image:width" content="1024"> 
2913    </@> 
2914    <#--  dados de compartilhamento  --> 
2915       
2916     
2917    <#assign  
2918      webContentServiceUtil = serviceLocator.findService("br.senac.services.service.WebContentServiceUtil") 
2919 
2920      temasMercadologicos = webContentServiceUtil.getTemasPorArticleId(themeDisplay.getScopeGroupId(), journalArticle) 
2921      categoriesIdiomas = temasMercadologicos?filter(c -> c.getName()?lower_case?contains("idioma")) 
2922      hasIdiomas = categoriesIdiomas?has_content 
2923      hasEMED = normalizedModalidadeName?contains("ensino-medio") 
2924    /> 
2925 
2926    <#function getManutencao> 
2927 
2928      <#assign manutencaoStructure = getFirstArticleStructure(idTipoCurso,"manutencoes") /> 
2929      <#if manutencaoStructure == ""> 
2930        <#return {"bolsa":"", "compra":"", "rodape":""} /> 
2931      </#if> 
2932      <#assign  
2933        txtBolsa = "" 
2934        txtCompra = "" 
2935        txtRodape = "" 
2936        content = saxReaderUtil.read(manutencaoStructure.getContent()) 
2937        rootElement = content.getRootElement() 
2938      /> 
2939      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoBolsa']") /> 
2940      <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" > 
2941        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoBolsa']") /> 
2942        <#assign txtBolsa = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2943      </#if> 
2944      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='chkManutencaoCompra']") /> 
2945      <#if xPathSelector.selectSingleNode(rootElement).getStringValue()?trim == "true" > 
2946        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoCompra']") /> 
2947        <#assign txtCompra = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2948      </#if> 
2949      <#if txtCompra != "" || txtBolsa != ""> 
2950        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='txtManutencaoRodape']") />   
2951        <#assign txtRodape = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
2952      </#if> 
2953 
2954      <#return {"bolsa": txtBolsa, "compra": txtCompra, "rodape": txtRodape} /> 
2955 
2956    </#function> 
2957 
2958    <#assign listaEsperaAtiva = getStatusListaEsperaEMED() /> 
2959 
2960    <#assign manutencao = getManutencao() /> 
2961    <input type="hidden" id="manutencao-compra" value="${manutencao.compra}" /> 
2962    <input type="hidden" id="manutencao-bolsa" value="${manutencao.bolsa}" /> 
2963     
2964    <div class="${prefix}-header-curso__image"> 
2965      <#if imagemUrl?contains(".webp")> 
2966        <#-- Remove midias adaptaveis --> 
2967        <picture> 
2968          <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy"> 
2969        </picture> 
2970      <#else> 
2971        <img class="ssp-image-opacity" src="${imagemUrl}" <#if imagemAlt?length != 0> alt="${imagemAlt}"</#if> loading="lazy"> 
2972      </#if> 
2973      <div class="${prefix}-header-curso__tag-formato bg-nivel-${normalizedCategoryName}"> 
2974        <#if hasIdiomas> 
2975          <span>${nomeTipoCurso}</span> 
2976        <#else> 
2977          <span>${nomeTipoCurso} | ${nomeFormato}</span> 
2978        </#if> 
2979      </div> 
2980    </div> 
2981   
2982    <section id="curso-info"> 
2983      <div class="ssp-card-detalhe-curso__container"> 
2984   
2985          <div class="ssp-card-detalhe-curso"> 
2986   
2987          <div class="ssp-card-detalhe-curso__tag-color-tipo bg-nivel-${normalizedCategoryName}"></div> 
2988   
2989            <div class="container"> 
2990            
2991              <#if nomeFormato?contains("ao-vivo") > 
2992                  <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> 
2993                   
2994              </#if> 
2995 
2996              <div class="ssp-card-detalhe-curso__content"> 
2997                <div> 
2998 
2999                    <!-- <#if nomeTipoCurso?contains("Ensino Médio Técnico")> 
3000 
3001                     <p class="ssp-txt-emed__inscricoes-aberta">Inscrições abertas</p> 
3002 
3003                    </#if> --> 
3004 
3005                    <!-- rever a lógica da chama de inscricoes abertas --> 
3006 
3007                    <h1 class="ssp-card-detalhe-curso__title">${tituloComercial}</h1> 
3008                    <input type="hidden" name="tituloComercial" value="${tituloComercial}" /> 
3009 
3010                    <div class="ssp-card-detalhe-curso__description">${objetivo}</div> 
3011                </div> 
3012                <div class="ssp-card-detalhe-curso__secunday-info-content"> 
3013 
3014                  <#if nomeFormato?contains("ao-vivo") > 
3015                    <span class="d-md-none"> 
3016                      <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#" style="color: #ff9057;">${categoriaTipoCurso.getName()}</a> 
3017                      <#if !hasIdiomas> 
3018                        <span> | ${nomeFormato}</span> 
3019                      </#if> 
3020                    </span> 
3021 
3022                  <#else> 
3023                    <span class="d-md-none"> 
3024                      <a class="ssp-card-detalhe-curso__secunday-info-back-link" href="#">${categoriaTipoCurso.getName()}</a>  
3025                      <#if !hasIdiomas> 
3026                        <span> | ${nomeFormato}</span> 
3027                      </#if> 
3028                    </span> 
3029 
3030                  </#if> 
3031 
3032                  <p class="ssp-card-detalhe-curso__secundary-info-carga-horaria">${cargaHoraria} horas</p> 
3033                </div> 
3034              </div> 
3035              <div class="ssp-saiba-mais-curso-accordion"> 
3036   
3037                  <#if (possoFazerEsteCursoComercial?length > 0)> 
3038                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3039                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Posso fazer este curso?</div> 
3040                        <div class="ssp-saiba-mais-curso-accordion__contents">${possoFazerEsteCursoComercial}</div> 
3041                    </div> 
3042									 
3043                  </#if> 
3044   
3045                   <#if (oQueVouAprenderComercial?length > 0) > 
3046                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3047                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que vou aprender?</div> 
3048                        <div class="ssp-saiba-mais-curso-accordion__contents" id="plano-curso">${oQueVouAprenderComercial}</div> 
3049                    </div> 
3050                  </#if> 
3051   
3052                  <#if (comoVouAprenderComercial?length > 0)> 
3053                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3054                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como vou aprender?</div> 
3055                        <div class="ssp-saiba-mais-curso-accordion__contents">${comoVouAprenderComercial}</div> 
3056                    </div> 
3057                  </#if> 
3058                   
3059                                  
3060                  <div class="ssp-saiba-mais-curso-accordion__body"> 
3061                      <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Quais materiais vou precisar?</div> 
3062                      <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
3063                        <div class="ssp-saiba-mais-curso-accordion__contents"> 
3064                          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. 
3065                        </div> 
3066                      <#else> 
3067                        <#if (quaisMateriaisComercialPDFUrl?length > 0)> 
3068                          <div class="ssp-saiba-mais-curso-accordion__contents"> 
3069                            <a href="${quaisMateriaisComercialPDFUrl}" target="_blank"><i class="fa fa-download" aria-hidden="true"></i> Confira os materiais que você precisará.</a> 
3070                          </div> 
3071                        <#else> 
3072                          <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> 
3073                        </#if> 
3074                    </#if> 
3075                  </div> 
3076   
3077                  <#if (tereiDiplomaComercial?length > 0)> 
3078                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3079                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei diploma?</div> 
3080                        <div class="ssp-saiba-mais-curso-accordion__contents">${tereiDiplomaComercial}</div> 
3081                    </div> 
3082                  </#if> 
3083                   
3084                  <#if (tereiCertificadoComercial?length > 0)> 
3085                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3086                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Terei certificado?</div> 
3087                        <div class="ssp-saiba-mais-curso-accordion__contents">${tereiCertificadoComercial}</div> 
3088                    </div> 
3089                  </#if> 
3090   
3091                  <#if (comoMeMatricularComercial?length > 0)> 
3092                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3093                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Como me matricular?</div> 
3094                        <div class="ssp-saiba-mais-curso-accordion__contents">${comoMeMatricularComercial}</div> 
3095                    </div> 
3096                  </#if> 
3097   
3098                  <#if (precisoEstagiarComercial?length > 0)> 
3099                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3100                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Preciso estagiar?</div> 
3101                        <div class="ssp-saiba-mais-curso-accordion__contents">${precisoEstagiarComercial}</div> 
3102                    </div> 
3103                  </#if> 
3104   
3105   
3106                  <#if (oQueMaisPrecisoSaberComercial?length > 0)> 
3107                    <div class="ssp-saiba-mais-curso-accordion__body"> 
3108                    <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
3109                        <div class="ssp-saiba-mais-curso-accordion__heading" role="button">Estudo em outra escola, como funciona a transferência?</div> 
3110                    <#else> 
3111                      <div class="ssp-saiba-mais-curso-accordion__heading" role="button">O que mais preciso saber?</div> 
3112                    </#if> 
3113                        <div class="ssp-saiba-mais-curso-accordion__contents">${oQueMaisPrecisoSaberComercial}</div> 
3114                    </div> 
3115                  </#if> 
3116 
3117                  <!-- Info para EMED --> 
3118 
3119                  <#if nomeTipoCurso?contains("Ensino Médio Técnico") > 
3120 
3121                    <div class="ssp-emed__vantagens-content"> 
3122                                                                                                         
3123                      <p>Conheça <span>mais vantagens</span> do Ensino Médio Técnico no Senac.</p> 
3124                      <a href="/ensino-medio-tecnico" class="btn">Saiba mais</a> 
3125                   
3126                    </div> 
3127   
3128                  <#elseif nomeFormato?contains("Presencial") && nomeFormato?contains("EAD") && !nomeTipoCurso?contains("Idioma")> 
3129   
3130                    <!-- Info para híbrido --> 
3131   
3132                    <div class="ssp-emed__vantagens-content ${normalizedCategoryName}"> 
3133                                                                                                         
3134                      <p>Quer saber mais sobre nossos <span>cursos com aulas presenciais e a distância</span>?</p> 
3135                      <a href="/presencial-ead" class="btn">Saiba mais</a> 
3136                   
3137                    </div> 
3138                     
3139                  <#else> 
3140                     
3141                    <!-- <div class="ssp-emed__vantagens-content ${normalizedCategoryName}"> 
3142                                                                                                         
3143                      <p>Conheça <span>mais vantagens</span>?</p> 
3144                      <a href="#" class="btn">Saiba mais</a> 
3145                   
3146                    </div> --> 
3147                     
3148                  </#if> 
3149                                    
3150   
3151                  <!-- Slider para cursos de Cozinheiro e Garçom --> 
3152       
3153                  <#if codigoFT=="14125"> 
3154       
3155                    <div> 
3156   
3157                      <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> 
3158   
3159           
3160                      <div class="slider-passo-passo__cursos-cozinha"> 
3161           
3162                          <div class="ssp-passo-passo-cozinheiro_card"> 
3163                           
3164                              <div> 
3165   
3166                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6> 
3167   
3168                                  <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> 
3169               
3170                              </div> 
3171                             
3172               
3173                          </div> 
3174               
3175                          <div class="ssp-passo-passo-cozinheiro_card"> 
3176               
3177                              <div> 
3178               
3179                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6> 
3180               
3181                                  <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 3 inscrições por vaga.</p> 
3182               
3183                              </div> 
3184                                   
3185                          </div> 
3186           
3187                          <div class="ssp-passo-passo-cozinheiro_card"> 
3188               
3189                              <div> 
3190               
3191                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6> 
3192               
3193                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3194                                    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. 
3195                                  </p> 
3196                                 
3197               
3198                              </div> 
3199                                   
3200                          </div> 
3201   
3202                          <div class="ssp-passo-passo-cozinheiro_card"> 
3203               
3204                            <div> 
3205             
3206                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6> 
3207             
3208                                <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista poderá ser on-line ou presencial nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Antes da entrevista, não esqueça de enviar os documentos por e-mail. 
3209                                    </p> 
3210                               
3211             
3212                            </div> 
3213                                 
3214                        </div> 
3215           
3216                          <div class="ssp-passo-passo-cozinheiro_card"> 
3217               
3218                              <div> 
3219               
3220                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6> 
3221               
3222                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3223                                    Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.  
3224                                  </p> 
3225               
3226                              </div> 
3227                                   
3228                          </div> 
3229               
3230                          <div class="ssp-passo-passo-cozinheiro_card"> 
3231               
3232                              <div> 
3233               
3234                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6> 
3235               
3236                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3237                                    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.                            
3238                                  </p> 
3239               
3240                              </div> 
3241                                   
3242                          </div> 
3243           
3244                          <div class="ssp-passo-passo-cozinheiro_card"> 
3245               
3246                              <div> 
3247               
3248                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6> 
3249               
3250                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3251                                    Teve aprovação em todas as etapas? Parabéns! 
3252   
3253                                    Sua jornada de transformação profissional 
3254                                     
3255                                    começará com o início das aulas. Mas se não 
3256                                     
3257                                    conseguiu dessa vez, não desanime. Sempre estamos com 
3258                                     
3259                                    vagas abertas para diversos cursos.                                                           
3260                                  </p> 
3261               
3262                              </div> 
3263                                   
3264                          </div> 
3265               
3266                           
3267                      </div> 
3268           
3269                    </div> 
3270   
3271                    <#elseif codigoFT=="15390" > 
3272   
3273                    <div> 
3274   
3275                      <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> 
3276           
3277                      <div class="slider-passo-passo__cursos-cozinha"> 
3278           
3279                        <div class="ssp-passo-passo-cozinheiro_card"> 
3280                         
3281                          <div> 
3282   
3283                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Abertura do processo</h6> 
3284   
3285                                  <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> 
3286               
3287                              </div> 
3288                           
3289             
3290                        </div> 
3291             
3292                        <div class="ssp-passo-passo-cozinheiro_card"> 
3293             
3294                              <div> 
3295               
3296                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Inscrições</h6> 
3297               
3298                                  <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 3 inscrições por vaga.</p> 
3299               
3300                              </div> 
3301                                 
3302                        </div> 
3303         
3304                        <div class="ssp-passo-passo-cozinheiro_card"> 
3305             
3306                              <div> 
3307               
3308                                  <h6 class="ssp-passo-passo-cozinheiro_card-title">Convocação para entrevista</h6> 
3309               
3310                                  <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3311                                    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. 
3312                                  </p> 
3313                                 
3314               
3315                              </div> 
3316                                 
3317                        </div> 
3318   
3319                        <div class="ssp-passo-passo-cozinheiro_card"> 
3320             
3321                            <div> 
3322             
3323                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Entrevista</h6> 
3324             
3325                                <p class="ssp-passo-passo-cozinheiro_card-txt">A entrevista poderá ser on-line ou presencial nos hotéis-escola Senac. Se você não participar, sua inscrição é cancelada automaticamente. Antes da entrevista, não esqueça de enviar os documentos por e-mail. 
3326                                    </p> 
3327                               
3328             
3329                            </div> 
3330                               
3331                      </div> 
3332         
3333                        <div class="ssp-passo-passo-cozinheiro_card"> 
3334             
3335                            <div> 
3336             
3337                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Resultado</h6> 
3338             
3339                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3340                                  Até 7 dias depois de ter feito a entrevista, você receberá a resposta por e-mail sobre o resultado do processo seletivo.  
3341                                </p> 
3342             
3343                            </div> 
3344                                 
3345                        </div> 
3346             
3347                        <div class="ssp-passo-passo-cozinheiro_card"> 
3348             
3349                            <div> 
3350             
3351                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Matrícula</h6> 
3352             
3353                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3354                                  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.                            
3355                                </p> 
3356             
3357                            </div> 
3358                                 
3359                        </div> 
3360         
3361                        <div class="ssp-passo-passo-cozinheiro_card"> 
3362             
3363                            <div> 
3364             
3365                                <h6 class="ssp-passo-passo-cozinheiro_card-title">Início do curso!</h6> 
3366             
3367                                <p class="ssp-passo-passo-cozinheiro_card-txt"> 
3368                                  Teve aprovação em todas as etapas? Parabéns! 
3369   
3370                                  Sua jornada de transformação profissional 
3371                                   
3372                                  começará com o início das aulas. Mas se não 
3373                                   
3374                                  conseguiu dessa vez, não desanime. Sempre estamos com 
3375                                   
3376                                  vagas abertas para diversos cursos.                                                           
3377                                </p> 
3378             
3379                            </div> 
3380                                 
3381                        </div> 
3382             
3383                         
3384                    </div> 
3385   
3386                  </div> 
3387   
3388                  </#if> 
3389                   
3390                  <!-- Final Slider para cursos de Cozinheiro e Garçom --> 
3391   
3392              </div> 
3393            </div> 
3394          </div> 
3395      </div> 
3396    </section> 
3397  <#assign  
3398    dNoneSelectUnidade = ''  
3399    mostrarUnidades = !nomeFormato?contains("ao-vivo") 
3400    isEMED = normalizedCategoryName?contains("ensino-medio-tecnico") 
3401    isAprendizagem = normalizedCategoryName?contains("jovem-aprendiz") 
3402  /> 
3403 
3404  <#if nomeFormato?contains("ao-vivo") > 
3405     <#assign dNoneSelectUnidade = 'd-none' /> 
3406  </#if> 
3407 
3408  <#-- Obter data matricula emed --> 
3409  <#if isEMED> 
3410    <#function getMatriculaEMED > 
3411      <#assign emedTags = getFirstArticleStructure(0,"emed-tags") 
3412        document = saxReaderUtil.read(emedTags.getContent()) 
3413        rootElement = document.getRootElement() 
3414        xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='dataInicioPeriodoMatricula']") /> 
3415      <#if xPathSelector.selectSingleNode(rootElement)?? > 
3416        <#assign dataInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
3417      </#if> 
3418      <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='horaInicioMatricula']") /> 
3419      <#if xPathSelector.selectSingleNode(rootElement)?? > 
3420        <#assign horaInicio = xPathSelector.selectSingleNode(rootElement).getStringValue()?trim /> 
3421      </#if> 
3422 
3423      <#setting time_zone="America/Sao_Paulo"> 
3424      <#assign today = .now?datetime /> 
3425      <#assign emeddatetime = (dataInicio + " " + horaInicio)?datetime["yyyy-MM-dd HH:mm"] /> 
3426      <#assign matriculaAberta = today gt emeddatetime />     
3427 
3428      <#return {"dataInicio" : dataInicio, "horaInicio" : horaInicio, "aberta" : matriculaAberta}> 
3429    </#function> 
3430 
3431    <#assign matriculaEMED = getMatriculaEMED() /> 
3432 
3433  </#if> 
3434 
3435  <#if isEMED || isAprendizagem> 
3436    <section class="ssp-section-selecione-unidade ssp-section ${dNoneSelectUnidade}" style="background:#2B2E41"> 
3437      <div class="container"> 
3438 
3439        <div class="ssp-container-selecione-unidade" style="max-width: 815px; margin: auto;"> 
3440          <div class="ssp-container_ofertas__title"> 
3441            <h3 class="ssp-aviso-novas-turmas__title selecione-unidade-title-custom"> 
3442               
3443              Selecione uma unidade para conhecer as próximas turmas: 
3444 
3445            </h3> 
3446          </div> 
3447 
3448          <div class="ssp-container__form-select"> 
3449            <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"> 
3450              <option value="">Selecione uma unidade</option> 
3451            </select> 
3452          </div> 
3453 
3454        </div> 
3455 
3456        <div class="ssp-ofertas__box-endereco-unidade"> 
3457          <i class="icon-map-adress"></i> 
3458          <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a> 
3459        </div> 
3460 
3461      </div> 
3462 
3463    </section> 
3464  <#else> 
3465    <section class="ssp-section-selecione-unidade ssp-section" style="background:#2B2E41"> 
3466        <div class="container"> 
3467          <div class="ssp-container-selecione-unidade ${dNoneSelectUnidade} row no-gutters mb-lg-8"> 
3468            <div class="ssp-container_ofertas__title"> 
3469              <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> 
3470            </div> 
3471          </div> 
3472          <div class="row ssp-filters-px justify-content-center"> 
3473            <div class="col-12 col-lg ${dNoneSelectUnidade} px-md-0 order-1"> 
3474              <div class="ssp-container-selecione-unidade row no-gutters"> 
3475                <div class="col-12"> 
3476                  <div class="ssp-container__form-select mx-auto"> 
3477                    <label for="unidades-ofertas" class="ssp-switch-label ssp-switch-label-section mx-0 d-none d-lg-block">Selecione uma unidade:</label>   
3478                    <select id="unidades-ofertas" class="form-control" name="unidades-ofertas"></select> 
3479                  </div> 
3480                </div> 
3481              </div> 
3482            </div> 
3483             
3484            <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;"> 
3485              <div class="row no-gutters ssp-switch-label ssp-switch-label-section mx-0">Filtre por:</div> 
3486              <div class="row no-gutters mt-4"> 
3487                <#assign 
3488                  mostrarFiltroInscricao = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || nomeTipoCurso?contains("Livre") || nomeTipoCurso?contains("Extensão") 
3489                  mostrarFiltroBolsa = (nomeTipoCurso?contains("Técnico") && !nomeTipoCurso?contains("Ensino Médio")) || (nomeTipoCurso?contains("Livre") && !normalizedModalidadeName?contains("acoes-educ.-curta-duracao")) 
3490                  textoFiltroCompra = (nomeTipoCurso?contains("Livre") && normalizedModalidadeName?contains("acoes-educ.-curta-duracao"))?then("Matrículas abertas", "Comprar agora")  
3491               />                  
3492                 
3493                 
3494                <#if mostrarFiltroInscricao && mostrarFiltroBolsa> 
3495                  <div class="ssp-switch-divider d-md-none my-4"></div> 
3496                </#if> 
3497                 
3498                <#if mostrarFiltroInscricao> 
3499                  <div class="col-12 col-lg"> 
3500                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3501                      <label class="ssp-switch order-2 order-lg-1"> 
3502                        <input type="checkbox" id="chkInscricao"> 
3503                        <span class="ssp-switch-slider round"></span> 
3504                      </label> 
3505                      <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">${textoFiltroCompra}</label>   
3506                    </div> 
3507                  </div> 
3508                </#if> 
3509                 
3510 
3511                <#if mostrarFiltroBolsa> 
3512                  <div class="col-12 col-lg"> 
3513                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3514                      <label class="ssp-switch order-2 order-lg-1">             
3515                        <input type="checkbox" id="chkBolsa"> 
3516                        <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span> 
3517                      </label> 
3518                      <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label> 
3519                    </div> 
3520                  </div> 
3521                </#if> 
3522              </div> 
3523            </div> 
3524 
3525            <div class="col-12 order-2 order-lg-3"> 
3526              <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}"> 
3527                <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;"> 
3528                  <div class="row no-gutters"> 
3529                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso.&nbsp;</span> 
3530                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span> 
3531                  </div> 
3532                </div> 
3533              </div> 
3534            </div> 
3535          </div>      
3536             
3537          <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}"> 
3538            <i class="icon-map-adress"></i> 
3539            <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a> 
3540          </div> 
3541     
3542        </div> 
3543     
3544      </section> 
3545    </#if> 
3546   
3547     
3548      <!--  EMED	 --> 
3549      <section class="ssp-ofertas-emed__section d-none"> 
3550 
3551        <h2 class="title-section-white" id="titulo-emed"></h2> 
3552 
3553        <div class="ssp-ofertas-emed__filtro-content container"> 
3554 
3555            <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button> 
3556 
3557            <button type="button" value="0" class="btn btn-filtro">Transferências</button> 
3558 
3559        </div> 
3560         
3561        <div class="ssp-ofertas-emed__card-container"> 
3562 
3563          <div class="ssp-slick-ofertas-emed"> 
3564           
3565          </div> 
3566         
3567        </div> 
3568       
3569      </section> 
3570       
3571      <!-- FIM EMED -->	 
3572   
3573    <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;"> 
3574   
3575      <div id="turmas-container"> 
3576   
3577        <div id="informe-novas-turmas"> 
3578          <div style="display: flex; flex-wrap: nowrap;"> 
3579   
3580            <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" > 
3581              <i class="fas fa-chevron-left"></i> 
3582            </a> 
3583   
3584            <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> 
3585   
3586            <a href="#" class="next-mobile d-lg-none d-xl-none" > 
3587              <i class="fas fa-chevron-right"></i> 
3588            </a> 
3589   
3590          </div> 
3591           
3592       
3593          <div  class="oferta-slick-area oferta-slick-area--md-bleed slider-container"> 
3594     
3595          </div> 
3596        </div> 
3597          
3598        <#if !isEMED> 
3599            <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;"> 
3600       
3601              <h2 class="ssp-card-oferta-curso__sem-vaga-title"> 
3602                Estude com a gente na próxima turma! 
3603              </h2> 
3604           
3605              <p class="ssp-card-oferta-curso__sem-vaga-description"> 
3606                Registre seu interesse e avisaremos você quando surgirem novas vagas. 
3607              </p> 
3608            </div> 
3609        <#else> 
3610 
3611          <div class="card-transferencias-emed p-0 d-none emed-transferencias-space"> 
3612            
3613            <div class="slick-area__item"> 
3614     
3615              <div class="ssp-emed__card-slider-transferencias"> 
3616 
3617                <div class="card-slider-body"> 
3618                  <h2 class="ssp-h3"> 
3619                    Confira as regras para solicitar uma transferência 
3620                  </h2> 
3621                  <p class="ssp-p-m">As solicitações são enviadas apenas via formulário on-line e para ingresso de estudantes de 1º e 2º ano.</p> 
3622                  <p class="ssp-p-m">As vagas são remanescentes e limitadas.</p> 
3623                  <a href="/ensino-medio-tecnico/transferencias" class="ssp-button btn-transferencia">Saber mais sobre transferência </a> 
3624                </div> 
3625              </div> 
3626 
3627            </div> 
3628 
3629          </div> 
3630 
3631          <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none"> 
3632          <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space"> 
3633          </#if> 
3634              <div> 
3635                <div class="col-md-12 col-xs-12 pb-10"> 
3636         
3637                  <!--slick slider--> 
3638                  <div class="slick-area-emed slick-area-emed--md-bleed"> 
3639                     
3640                    <#if matriculaEMED.aberta> 
3641                      <div class="slick-area__item"> 
3642           
3643                        <div class="ssp-emed__card-slider"> 
3644           
3645                          <div class="ssp-emed__card-slider-body"> 
3646                            <h2 class="ssp-emed__section__titleCard"> 
3647                              <i class="fal fa-users-class"></i> 
3648                              <div><lfr-editable type="rich-text">Turmas</lfr-editable></div> 
3649                            </h2> 
3650                            <lfr-editable type="rich-text"> 
3651                              <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div> 
3652                              <div class="ssp-emed__section__textCard"> 
3653                                <span class="texto"> 
3654                                  Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano. 
3655                                </span> 
3656                                <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i 
3657                                    class="fas fa-chevron-right"></i></span> 
3658                              </div> 
3659                            </lfr-editable> 
3660                            </a> 
3661                          </div> 
3662           
3663                        </div> 
3664           
3665                      </div> 
3666         
3667                      <div class="slick-area__item"> 
3668           
3669                        <div class="ssp-emed__card-slider"> 
3670                          <div class="ssp-emed__card-slider-body"> 
3671           
3672                            <h2 class="ssp-emed__section__titleCard"> 
3673                              <i class="far fa-envelope"></i> 
3674                              <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div> 
3675                            </h2> 
3676                            <lfr-editable id="txt_emed_boleto" type="rich-text"> 
3677                              <div class="ssp-emed__section__introCardCTA"> 
3678                                Quer receber um aviso sobre as turmas do próximo ano? 
3679                              </div> 
3680                            </lfr-editable> 
3681                            </a> 
3682                            <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10" 
3683                              id="btnOptin" href="javascript:;">Sim, me avise.</a> 
3684                          </div> 
3685                        </div> 
3686                      </div> 
3687                    <#else> 
3688                      <#-- pre inscricao emed --> 
3689                      <div class="slick-area__item card-pre-inscricao"> 
3690           
3691                        <div class="ssp-emed__card-slider"> 
3692           
3693                          <div class="ssp-emed__card-slider-body"> 
3694                            <h2 class="ssp-emed__section__titleCard"> 
3695                              <i class="fal fa-users-class"></i> 
3696                              <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> 
3697                            </h2> 
3698                            <lfr-editable type="rich-text" style="text-align: left;"> 
3699                              <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Inscrições para bolsas</strong></div> 
3700                              <div class="ssp-emed__section__textCard" style="margin: 0!important;"> 
3701                                <span class="ssp-p-g texto"> 
3702                                  A partir de 3/8, às 12h 
3703                                </span> 
3704                            </lfr-editable> 
3705                            <hr style="margin: 24px 0; background: #FFF;"/> 
3706                            <lfr-editable type="rich-text" style="text-align: left;"> 
3707                              <div class="ssp-emed__section__introCard" style="margin: 0;"><strong class="ssp-p-g" style="font-weight: 700;">Matrículas</strong></div> 
3708                              <div class="ssp-emed__section__textCard" style="margin: 0!important;"> 
3709                                <span class="ssp-p-g texto"> 
3710                                  A partir de 17/8, às 12h 
3711                                </span> 
3712                              </div> 
3713                            </lfr-editable> 
3714                            </a> 
3715                          </div> 
3716           
3717                        </div> 
3718                        <!-- <div class="ssp-emed__card-slider"> 
3719           
3720                          <div class="ssp-emed__card-slider-body"> 
3721                            <h2 class="ssp-emed__section__titleCard"> 
3722                              <i class="fal fa-users-class"></i> 
3723                              <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div> 
3724                            </h2> 
3725                            <lfr-editable id="txt_emed_aulas" type="rich-text"> 
3726                              <div> 
3727                                <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/> 
3728                                <span style="font-weight: 400;"> 
3729                                  a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas 
3730                                  <#if matriculaEMED.horaInicio?split(":")?last != "00"> 
3731                                    e ${matriculaEMED.horaInicio?split(":")?last} minutos 
3732                                  </#if> 
3733                                </span> 
3734                              </div> 
3735 
3736                              <div class="footer-card-card-pre-inscricao"> 
3737                                <strong> 
3738                                  Estude com a gente na próxima turma!<br/> 
3739                                  Esperamos por você! 
3740                                </strong> 
3741                              </div> 
3742                            </lfr-editable> 
3743                            </a> 
3744                          </div> --> 
3745           
3746                        </div> 
3747           
3748                      </div> 
3749 
3750                    </#if> 
3751         
3752                  </div> 
3753                  <!--/slick slider--> 
3754         
3755                </div> 
3756              </div> 
3757            </div> 
3758 
3759        </#if> 
3760        <div class="oferta-slick-area_modal"> 
3761        </div> 
3762         
3763        <#if manutencao.rodape != ""> 
3764          <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p> 
3765        <#else> 
3766            <#if isEMED> 
3767              <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> 
3768            <#else> 
3769              <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> 
3770            </#if> 
3771        </#if> 
3772   
3773      </div> 
3774   
3775      <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;"> 
3776 
3777        <p>Tem dúvidas sobre bolsas de estudo?</p> 
3778        <a href="/bolsas-de-estudo">Saiba como funciona</a> 
3779						 
3780    </div> 
3781                       
3782   
3783      </section> 
3784 
3785      <section id="section-registro-interesse" class="ssp-section-novas-turmas"> 
3786   
3787          <div class="container"> 
3788   
3789              <div class="ssp-aviso-novas-turmas__content"> 
3790   
3791                  <!-- <div class="pb-sm-5 pb-md-5" > --> 
3792                  <div> 
3793   
3794                      <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p> 
3795                      <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p --> 
3796   
3797                  </div> 
3798   
3799          <!--  
3800                  <div class="ssp-container__form-select"> 
3801   
3802                      <select class="form-control select-large select-registro-interesse" id="select-registro-interesse"> 
3803                          <option value="">Selecione uma unidade</option> 
3804                      </select> 
3805   
3806                  </div> 
3807          --> 
3808                  <div class="ssp-btn-group__content-teste"> 
3809   
3810                      <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button> 
3811   
3812                  </div> 
3813   
3814   
3815   
3816              </div> 
3817   
3818   
3819          </div> 
3820   
3821   
3822      </section> 
3823       
3824      <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none"> 
3825   
3826          <div class="ssp-card-msg-erro"> 
3827   
3828              <div class="ssp-card-msg-sucesso__content"> 
3829                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
3830                   <p>Houve um erro ao inserir curso na mochila!</p> 
3831                   <p>Por favor, tente novamente!</p> 
3832              </div> 
3833   
3834              <div> 
3835                  <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button> 
3836              </div> 
3837   
3838          </div> 
3839   
3840      </section> 
3841       
3842	<section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none"> 
3843	 
3844		<div class="ssp-modal-mochila-curso"> 
3845	 
3846			<div class="ssp-modal-mochila-curso__header"> 
3847	 
3848				<button class="modal-btn-close" type="button"> 
3849	 
3850					<i class="fal fa-times"></i> 
3851	 
3852				</button> 
3853	 
3854				<h2 class="modal-title">Curso adicionado à mochila!</h2> 
3855				<p class="modal-subtitle">Você incluiu na sua mochila de compras o curso 
3856					<span id="modal-backpack-success__nome-curso"></span> 
3857				</p> 
3858	 
3859			</div> 
3860	 
3861			<div class="ssp-modal-mochila-curso__body"> 
3862	 
3863				<p>A sua vaga só é garantida nesta turma quando você finaliza a 
3864					compra. Deseja concluir agora?</p> 
3865	 
3866			</div> 
3867	 
3868			<div class="ssp-modal-mochila-curso__block-btn-items block-btn-items"> 
3869 
3870				<a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#"> 
3871                    Finalizar compra 
3872                </a> 
3873	 
3874				<button class="btn-continuar-site btn-mochila-continuar-site-success"> 
3875					Continuar no site 
3876				</button>				 
3877	 
3878			</div> 
3879	 
3880	 
3881		</div> 
3882	 
3883	</section> 
3884      
3885</#if> 
3886 
3887<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") > 
3888  <!-- Agende a sua visita -->     
3889  <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") /> 
3890  <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) /> 
3891 
3892  <section id="ssp-emed-visita-sector"> 
3893    <div class="container py-5 pt-lg-0" style="display:none;"> 
3894      <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper"> 
3895        <#list articles![] as article> 
3896          <#assign document = saxReaderUtil.read(article.getContent()) /> 
3897          <#assign rootElement = document.getRootElement() /> 
3898 
3899          <#assign 
3900              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']") 
3901              textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3902                 
3903              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']") 
3904              linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3905 
3906              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']") 
3907              ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()                 
3908          /> 
3909 
3910          <#if ativarBotao?trim == "true"> 
3911            <script>$('#ssp-emed-visita-sector').children().show()</script> 
3912            <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text"> 
3913                 
3914                <a href="${linkBotao}">${textoDoBotao}</a> 
3915                 
3916            </div> 
3917            <div class="ssp-emed-visita-icon"> 
3918                <i class="fas fa-route"></i> 
3919            </div> 
3920          </#if> 
3921        </#list> 
3922      </div> 
3923    </div> 
3924  </section> 
3925 
3926 
3927    <!-- Como me matricular EMED --> 
3928 
3929    <section class="ssp-como-me-matricular__section"> 
3930 
3931      <h2 class="title-section-white">Como me matricular?</h2> 
3932 
3933      <div class="container"> 
3934 
3935          <div class="ssp-como-me-matricular__passo-passo-card"> 
3936 
3937              <div class="item-passo"> 
3938                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt=""> 
3939                  <p class="item-passo-title">Escolha o curso</p> 
3940                  <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span> 
3941              </div> 
3942 
3943              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3944 
3945              <div class="item-passo"> 
3946                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt=""> 
3947                  <p class="item-passo-title">Adicione à Mochila</p> 
3948                  <span>Faça login ou crie uma conta em nosso site e continue a compra.</span> 
3949              </div> 
3950 
3951              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3952 
3953              <div class="item-passo"> 
3954                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt=""> 
3955                  <p class="item-passo-title">Faça a matrícula</p> 
3956                  <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span> 
3957              </div> 
3958 
3959          </div> 
3960 
3961 
3962      </div> 
3963 
3964    </section> 
3965 
3966  </#if> 
3967 
3968   
3969  <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2"> 
3970    <div class="container"> 
3971        <h2 class="ssp-section-title"> 
3972          <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text"> 
3973              Cursos que você pode gostar 
3974          </lfr-editable> 
3975        </h2> 
3976 
3977        <div id="slider-curso"> 
3978 
3979        </div> 
3980 
3981    </div> 
3982  </div> 
3983 
3984 
3985   
3986   
3987  <#-- Section para o item de curso--> 
3988  <div id="curso-item-template"  class="d-none slick-area__item"> 
3989   
3990    <div class="ssp-card-curso" style="height: 288px;"> 
3991   
3992      <a class="ssp-absolute-link ck-curso" href="#a"></a> 
3993   
3994      <div class="ssp-card-curso__image"> 
3995   
3996        <div class="ssp-image-container"> 
3997            <img src="" /> 
3998   
3999        </div> 
4000   
4001      </div> 
4002   
4003      <div class="ssp-card-curso__body"> 
4004   
4005        <div class="ssp-card-curso__color-tag-modalidade"></div> 
4006   
4007        <div class="ssp-card-curso__tags"> 
4008   
4009          <span class="ssp-card-curso__tag-formato-title"></span> 
4010           
4011          <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span> 
4012   
4013        </div> 
4014   
4015        <h6 class="ssp-card-curso__title"> 
4016   
4017        </h6> 
4018   
4019        <div class="ssp-card-curso__info"> 
4020   
4021          <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span> 
4022          <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span> 
4023   
4024        </div> 
4025   
4026      </div> 
4027   
4028    </div> 
4029   
4030  </div> 
4031   
4032  <#function getJournalArticle> 
4033   
4034     
4035    <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
4036    <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first> 
4037    <#assign groupId = themeDisplay.getSiteGroupId()> 
4038    <#attempt> 
4039   
4040      <#if !friendlyURL?contains("fragment_collections") > 
4041         
4042        <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)> 
4043      <#else> 
4044         
4045        <#return '#erro#'> 
4046      </#if> 
4047       
4048    <#recover> 
4049         
4050      <#return '#erro#'> 
4051    </#attempt> 
4052  </#function> 
4053   
4054  <#function getCategorias primaryKey> 
4055   
4056    <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
4057    <#attempt> 
4058   
4059        <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)> 
4060   
4061    <#recover> 
4062       
4063      <#return '#erro#'> 
4064    </#attempt> 
4065  </#function> 
4066   
4067  <#function getVocabulary vocabularyId> 
4068   
4069    <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") /> 
4070    <#attempt> 
4071   
4072        <#return vocabularyService.getVocabulary(vocabularyId)> 
4073   
4074    <#recover> 
4075       
4076      <#return '#erro#'> 
4077    </#attempt> 
4078  </#function> 
4079   
4080  <#function getStringValue dom name> 
4081    <#assign 
4082      seletorSTR = "dynamic-element[@field-reference='"+name+"']" 
4083      xPathSelector = saxReaderUtil.createXPath(seletorSTR) 
4084    /> 
4085    <#if xPathSelector.selectSingleNode(dom)?? > 
4086      <#assign 
4087        valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim 
4088      /> 
4089      <#return valueSTR> 
4090    </#if> 
4091    <#return ''> 
4092  </#function> 
4093   
4094       
4095   
4096    <!-- modal registro interesse --> 
4097   
4098 
4099      <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none"> 
4100         
4101        <#if !isEMED> 
4102            <div class="ssp-card-registro-interesse"> 
4103       
4104              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4105 
4106              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4107              <h3 class="ssp-card-registro-interesse__nome-curso"></h3> 
4108 
4109              <div id="unidades-registro-interesse"> 
4110 
4111                  <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4> 
4112         
4113            <div id="select-unidades-registro-interesse"> 
4114                    <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4115                  </div> 
4116 
4117                  <div class="ssp-card-registro-interesse__add-mais"> 
4118                      <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4119                       
4120                      &nbsp; 
4121                       
4122                      <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4123                  </div> 
4124 
4125              </div> 
4126 
4127              <div id="dias-registro-interesse"> 
4128                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4> 
4129 
4130                  <div class="ssp-card-registro-interesse__week-content"> 
4131                      <span id="todosDias" class="ssp-week-day">Todos</span> 
4132                      <span class="ssp-week-day">Seg</span> 
4133                      <span class="ssp-week-day">Ter</span> 
4134                      <span class="ssp-week-day">Qua</span> 
4135                      <span class="ssp-week-day">Qui</span> 
4136                      <span class="ssp-week-day">Sex</span> 
4137                      <span class="ssp-week-day">Sab</span> 
4138                  </div> 
4139 
4140              </div> 
4141 
4142              <div id="periodo-registro-interesse"> 
4143 
4144                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4> 
4145 
4146                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">  
4147 
4148                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4149                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4150                          <label for="check-todos-periodos">Todos</label> 
4151                      </div> 
4152 
4153                      <div class="ssp-card-registro-interesse__check-item"> 
4154                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4155                          <label for="periodo-m">Manhã</label> 
4156                      </div> 
4157 
4158                      <div class="ssp-card-registro-interesse__check-item"> 
4159                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4160                          <label for="periodo-t">Tarde</label> 
4161                      </div> 
4162 
4163                      <div class="ssp-card-registro-interesse__check-item"> 
4164                          <input type="checkbox" name="" value="N" id="periodo-n"> 
4165                          <label for="periodo-n" "="">Noite</label> 
4166                      </div> 
4167 
4168 
4169                  </div> 
4170 
4171              </div> 
4172 
4173              <div class="ssp-card-registro-interesse__card-politica"> 
4174 
4175 
4176              </div> 
4177 
4178              <div class="ssp-card-registro-interesse__check-item"> 
4179                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
4180                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
4181              </div> 
4182 
4183              <div class="text-center mt-5"> 
4184 
4185                  <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> 
4186 
4187                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
4188 
4189              </div> 
4190 
4191          </div>     
4192   
4193        <#else> 
4194 
4195            <div class="ssp-card-registro-interesse emed"> 
4196 
4197              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4198 
4199              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4200 
4201              <div class="emed-select-group"> 
4202 
4203                  <h3 class="ssp-card-registro-interesse__title-modal"></h3> 
4204                   
4205                  <div id="unidades-registro-interesse"> 
4206       
4207                      <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4> 
4208             
4209                      <div id="select-unidades-registro-interesse"> 
4210                        <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4211                      </div> 
4212       
4213                      <div class="ssp-card-registro-interesse__add-mais"> 
4214                          <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4215                           
4216                          &nbsp; 
4217                           
4218                          <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4219                      </div> 
4220       
4221                  </div> 
4222 
4223              </div> 
4224 
4225               
4226              <div id="periodo-registro-interesse"> 
4227 
4228                  <p class="ssp-card-registro-interesse__title-section-itens">Período:</p> 
4229 
4230                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">                   
4231                      <div class="ssp-card-registro-interesse__check-item"> 
4232                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4233                          <label for="periodo-m">Manhã</label> 
4234                      </div> 
4235                       
4236                      <div class="ssp-card-registro-interesse__check-item"> 
4237                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4238                          <label for="periodo-t">Tarde</label> 
4239                      </div> 
4240                       
4241                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4242                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4243                          <label for="check-todos-periodos">Todos</label> 
4244                      </div> 
4245 
4246                  </div> 
4247 
4248              </div> 
4249 
4250              <div id="turmas-registro-interesse"> 
4251 
4252                  <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p> 
4253 
4254                  <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">  
4255 
4256                      <div class="ssp-card-registro-interesse__check-item"> 
4257                          <input type="checkbox" name="" value="1" id="primeiro"> 
4258                          <label for="primeiro">1º ano</label> 
4259                      </div> 
4260 
4261                      <div class="ssp-card-registro-interesse__check-item"> 
4262                          <input type="checkbox" name="" value="2" id="segundo"> 
4263                          <label for="segundo">2º ano</label> 
4264                      </div> 
4265 
4266                      <div class="ssp-card-registro-interesse__check-item"> 
4267                          <input type="checkbox" name="" value="3" id="terceiro"> 
4268                          <label for="terceiro">3º ano</label> 
4269                      </div> 
4270 
4271                  </div> 
4272 
4273              </div> 
4274 
4275              <div id="msg-transferencia-emed"> 
4276 
4277                  <div class="transferencia-emed-title"> 
4278                      <i class="fas fa-comment-exclamation"></i> 
4279                      <p>Quer se transferir de escola?</p> 
4280                  </div> 
4281 
4282                  <div class="transferencia-emed-link"> 
4283                      <a href="#">Fale direto com a unidade de interesse.</a> 
4284                  </div> 
4285 
4286              </div> 
4287 
4288              <div class="ssp-card-registro-interesse__card-politica"> 
4289 
4290              </div> 
4291 
4292              <div class="ssp-card-registro-interesse__check-item"> 
4293                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
4294                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
4295              </div> 
4296 
4297              <div class="text-center mt-5"> 
4298 
4299                  <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> 
4300 
4301                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
4302 
4303              </div> 
4304 
4305            </div>    
4306 
4307        </#if> 
4308      </section> 
4309 
4310      <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none"> 
4311   
4312          <div class="ssp-card-msg-sucesso"> 
4313   
4314              <div class="ssp-card-msg-sucesso__content"> 
4315                  <i class="fas fa-exclamation-circle"></i> 
4316                  <p>Obrigado por registrar seu interesse!</p> 
4317                  <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p> 
4318              </div> 
4319   
4320              <div> 
4321                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a> 
4322              </div> 
4323   
4324          </div> 
4325   
4326      </section> 
4327   
4328    <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none"> 
4329   
4330          <div class="ssp-card-msg-erro"> 
4331   
4332              <div class="ssp-card-msg-sucesso__content"> 
4333                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
4334                  <p>Houve um erro ao registrar seu interesse!</p> 
4335                  <p>Por favor, tente novamente!</p> 
4336              </div> 
4337   
4338              <div> 
4339                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a> 
4340              </div> 
4341   
4342          </div> 
4343   
4344      </section> 
4345       
4346      <!-- Aviso para curso de aprendizagem --> 
4347   
4348    <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;"> 
4349                     
4350        <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i> 
4351     
4352        <div class="ssp-bolsa-formulario__card-aviso-texto"> 
4353          <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p> 
4354        </div> 
4355     
4356     </div> 
4357 
4358     <!-- modal form de aprendizagem --> 
4359 
4360    <#if isAprendizagem> 
4361 
4362      <#assign resources = themeDisplay.getPortalURL() /> 
4363      <link href="${resources}/documents/d/global/css-formulario-aprendizagem" rel="stylesheet" type="text/css"> 
4364 
4365      <dialog id="modal-form" class="ssp-modal-ds"> 
4366 
4367          <button type="button" data-modal="close-form-modal"> 
4368            Fechar 
4369            <i class="fas fa-times"></i> 
4370          </button> 
4371 
4372      </dialog> 
4373 
4374    </#if> 
4375   
4376    <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">                   
4377         <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>   
4378         <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> 
4379         </div> 
4380 
4381       </div> 
4382          
4383         
4384         <!--modal forma pagto extensao-->   
4385        <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal"> 
4386         <div class="modal-extensao_content"> 
4387            <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i> 
4388            <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1> 
4389            <div class="row"> 
4390   
4391              <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
4392                Preço Padrão 
4393                <i class="fas fa-chevron-right custom-icon-right"></i> 
4394              </button> --> 
4395   
4396             <div class="col-lg-6 col-sm-12 col-xs-12"> 
4397   
4398                <h2 class="modal-extensao_subtitle">Investimento</h2> 
4399   
4400                <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span> 
4401                <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span> 
4402                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
4403                   <i class="fas fa-barcode" aria-hidden="true"></i>   
4404                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
4405                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>         
4406                   <span class="modal-extensao_txtParcela">sem juros</span> 
4407                </div> 
4408                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
4409                   <i class="far fa-credit-card" aria-hidden="true"></i> 
4410                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
4411                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>         
4412                   <span class="modal-extensao_txtParcela">sem juros</span> 
4413                </div> 
4414                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
4415             </div> 
4416   
4417             <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> --> 
4418   
4419             <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
4420              Preço para Contribuintes,<br>alunos e ex-alunos* 
4421              <i class="fas fa-chevron-right custom-icon-right"></i> 
4422            </button> --> 
4423   
4424             <div class="col-lg-6 col-sm-12 col-xs-12"> 
4425                <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2> 
4426                <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span> 
4427                <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span> 
4428                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
4429                   <i class="fas fa-barcode" aria-hidden="true"></i>   
4430                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
4431                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>         
4432                   <span class="modal-extensao_txtParcela">sem juros</span>     
4433                </div> 
4434                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
4435                   <i class="far fa-credit-card" aria-hidden="true"></i> 
4436                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
4437                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>         
4438                   <span class="modal-extensao_txtParcela">sem juros</span> 
4439                </div> 
4440                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
4441             </div> 
4442             <div class="col-lg-6 col-sm-12 col-xs-12"> 
4443                <a target="_blank" href="#"> 
4444                <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button> 
4445                </a> 
4446             </div> 
4447             <div class="col-lg-6 col-sm-12 col-xs-12"> 
4448                <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button> 
4449             </div> 
4450          </div> 
4451         </div> 
4452 
4453         <div class="modal-extensao_content modal-pergunta-aluno-ext d-none"> 
4454            
4455            <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i> 
4456            <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1> 
4457            <div class="row"> 
4458               <div class="col-6 text-right"> 
4459                   
4460                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button> 
4461           
4462	</div> 
4463               <div class="col-6 text-left"> 
4464                   
4465                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button> 
4466                   
4467               </div> 
4468            </div> 
4469            <div class="row d-none msg-alunoSim"> 
4470               <div class="col-12 text-center mt-10"> 
4471                  <i class="fas fa-check-circle modal-extensao-ico-check"></i> 
4472                  <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2> 
4473                  <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p> 
4474                  <p class="mb-0"> 
4475                     <a target="_blank" href="#"> 
4476                     <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button> 
4477                     </a> 
4478                  </p> 
4479                  <p class="mt-0"> 
4480                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
4481                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
4482                     </a> 
4483                  </p> 
4484               </div> 
4485            </div> 
4486            <div class="row d-none msg-alunoNao"> 
4487               <div class="col-12 text-center mt-10"> 
4488                  <i class="fas fa-percentage modal-extensao-ico-percent"></i> 
4489                  <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2> 
4490                  <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> 
4491                  <p class="mb-0"> 
4492                     <a target="_blank" href="#"> 
4493                     <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button> 
4494                     </a> 
4495                  </p> 
4496                  <p class="mt-0"> 
4497                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
4498                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
4499                     </a> 
4500                  </p> 
4501               </div> 
4502            </div> 
4503         </div> 
4504      </section> 
4505     	 
4506	 
4507	<!-- Modal Descontos e Parcelamento EMED --> 
4508	<div id="modalPagtoEmed" class="ssp-modal"> 
4509	 
4510	        <div class="ssp-card-modal-forma-pagamento"> 
4511 
4512            <div class="ssp-card-modal-forma-pagamento__header"> 
4513               <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6> 
4514               <div class="ssp-modal-emed-btfechar"> 
4515               <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i> 
4516               <span>Fechar</span> 
4517              </div> 
4518            </div> 
4519 
4520            <div class="ssp-card-modal-forma-pagamento__body"> 
4521 
4522              <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>          
4523 
4524               <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> 
4525                <span class="ssp-card-modal-emed-ano">/ano</span></p> 
4526 
4527               <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> 
4528               <div class="ssp-card-modal-emed-lineou"><span>ou</span></div> 
4529 
4530               <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> 
4531 
4532               <div class="ssp-card-modal-forma-pagamento__tipos"> 
4533 
4534                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
4535                     <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i> 
4536                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
4537                        <p><strong>Pix + Boleto Bancário</strong></p> 
4538                        <p>1ª parcela no Pix</p> 
4539                        <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>                        
4540                     </div> 
4541                  </div> 
4542                
4543                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
4544                     <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i> 
4545                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
4546                        <p><strong>Cartão de Crédito +</strong></p> 
4547                        <p><strong>Boleto Bancário</strong></p> 
4548                        <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> --> 
4549                        <p>1ª parcela no cartão</p> 
4550                        <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>                        
4551                     </div> 
4552                  </div> 
4553                
4554                  <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"> 
4555                     <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
4556                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
4557                        <p><strong>Boleto Bancário</strong></p> 
4558                        <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p> 
4559                     </div> 
4560                  </div> 
4561 
4562                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
4563                     <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
4564                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
4565                        <p><strong>Cartão de Crédito</strong></p> 
4566                        <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p> 
4567                        <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p> 
4568                     </div> 
4569                  </div> 
4570 
4571                  <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"> 
4572                     <i class="fa-brands fa-pix" style="margin-right:15px;font-size:18px"></i> 
4573                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
4574                        <p><strong>Pix</strong></p> 
4575                        <p>Valor total à vista com desconto</p> 
4576                     </div> 
4577                  </div> 
4578                   
4579                  <p class="txt-desconto-oito ssp-modal-emed-txt-desconto-oito ssp-modal-emed-boxoito" data-info="data-para-matricula" style="margin:16px 0"><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> 
4580 
4581                  <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> 
4582                    - Estuda ou estudou no Senac<br>  
4583                    - É dependente de quem trabalha em empresa contribuinte do Senac<br>  
4584                    - Estuda ou estudou na rede pública de ensino 
4585                </p> 
4586 
4587               </div> 
4588 
4589            </div> 
4590             
4591 
4592            <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> 
4593 
4594             
4595             
4596    </div> 
4597  </div> 
4598 
4599  <#if isEMED> 
4600    <div id="modalAntesCompraEmed" class="ssp-modal"> 
4601      <div class="ssp-modal-local-realizacao"> 
4602        <div class="ssp-modal-local-realizacao__title-content"> 
4603          <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6> 
4604            <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i> 
4605        </div> 
4606        <div class="ssp-modal-local-realizacao__texto"> 
4607          <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none"> 
4608           
4609            Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/> 
4610           
4611          </p> 
4612          <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none"> 
4613           
4614            Saiba como funciona a inscrição para a lista de espera:<br/><br/> 
4615            - É válida somente para a <b>compra do curso</b><br/> 
4616            - Não garante vaga para o estudante<br/> 
4617            - É válida apenas para o curso, horário e escola selecionados<br/> 
4618            - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/> 
4619           
4620          </p> 
4621          <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none"> 
4622                       
4623            - 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/> 
4624            - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/> 
4625            - 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 
4626                       
4627          </p> 
4628          <div class="btn ssp-modal-local-realizacao__btn-content"> 
4629            <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button> 
4630            <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> 
4631          </div> 
4632        </div> 
4633      </div> 
4634    </div> 
4635         
4636  </#if> 
4637 
4638   
4639   
4640           
4641   <script> 
4642     let showedFilters = false 
4643     var groupId = themeDisplay.getScopeGroupId(); 
4644 
4645   var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}'; 
4646    
4647   var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId 
4648 
4649   var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}'; 
4650   var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}'; 
4651   var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}'; 
4652   var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}'; 
4653   var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/'; 
4654   var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/'; 
4655   var cntSelectUnidades = 1; 
4656   var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html'; 
4657   var urlGetServerT = '/o/senac-content-services/getServerTime';  
4658   var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}'; 
4659   var todayG = ''; 
4660   var codigoFTCursoAprendizagem = 18984; 
4661   var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId(); 
4662   var isAoVivo = 0; 
4663   var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo'; 
4664   var ofertaUnidadeMap = new Map(); 
4665   var ultimaUnidade = 0; 
4666   var regIndex = new RegExp('\{index\}', 'g'); 
4667   var linkBotaoCompra = 'https://autenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?scope=openid+email+profile&response_type=code&redirect_uri=https%3A%2F%2Fwww.sp.senac.br%2FecommerceFrontEnd%2F%3Fvcw_unidade%3D{codigoUnidade}%26vcw_evento%3D{codigoOferta}&client_id=ecommerce'; 
4668   var carregouUltimaOferta = false; 
4669   var ofertasMap = new Map(); 
4670   var codUnidadeSenacAoVivo = '108'; 
4671   var ofertasComBolsa = false; 
4672 
4673    //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546 
4674    function getServiceEnvironmentHost(){ 
4675      if(!isAmbienteTeste()) 
4676        return window.location.origin 
4677      else 
4678        return 'https://gesportal.sp.senac.br' 
4679
4680 
4681    var hostBolsa = getServiceEnvironmentHost() 
4682 
4683   // Montar object push - google tag manager - 1 
4684   let itensEcommerce = null;  
4685   let ofertaSelecionada = null; 
4686 
4687   const today = new Date; 
4688    
4689   //categoryId -> cod unidade 
4690   var mapUnidadesIds = new Map(); 
4691   var objsTela = { 
4692     unidades: [], 
4693     unidadesRegistroInteresse: [], 
4694     categoriesIds:[], 
4695     ofertasAoVivoTodasUnidades: [], 
4696     primeiroChange: true 
4697   }; 
4698   var startOfertaParam = 0; 
4699   var endOfertaParam = 25; 
4700    
4701   var ehCursoTrampolim = false; 
4702    
4703   const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD'; 
4704   
4705   var textoFormatoHibrido = ""; 
4706   var temTextoParaFormatoHibrido = false; 
4707   
4708   //Validar se o campo textoFormatoHibrido existe e se não está vazio 
4709   if(isHibrido){ 
4710                textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val(); 
4711                if(typeof textoFormatoHibrido !== 'undefined'){ 
4712                           if (textoFormatoHibrido.trim() !== '' ) { 
4713                                temTextoParaFormatoHibrido = true; 
4714                                textoFormatoHibrido += '<br>'; 
4715
4716
4717
4718    
4719   const HOST = window.location.origin; 
4720   const URLGeral = window.location.href; 
4721    
4722   //EMED 
4723   const anoTurmaEmed = '2027'; 
4724 
4725   const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); } 
4726    
4727   const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1); 
4728 
4729   const statusEmed = Object.freeze({ 
4730		NAO_ENCONTRADA: 0, 
4731    INSCRICAO: 1, 
4732		ESPERA: 2, 
4733		ESGOTADO: 3 
4734	}); 
4735    
4736   let unidadesToURL = [] 
4737 
4738   const loadPoliticaPrivacidade = async function() { 
4739 
4740      if(PortalService !== 'undefined') { 
4741        const politicaContent = await PortalService.getPoliticaPrivacidade(); 
4742        document.querySelectorAll('.ssp-card-registro-interesse__card-politica').forEach(el => { 
4743          el.innerHTML = politicaContent; 
4744        }); 
4745
4746 
4747
4748    
4749   const localLivreOnline = function(textoLocal){  
4750     textoLocal = textoLocal || '' 
4751     textoLocal = textoLocal.replaceAll('online', 'on-line') 
4752 
4753     const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams'; 
4754      
4755     return textoLocal.toUpperCase().includes(textoOnline.toUpperCase()); 
4756
4757 
4758  const linkBolsa = function(oferta){ 
4759    const hostBolsaUrl = new URL(isAmbienteTeste() ? 'https://hpsgq.sp.senac.br/queue-bootstrap' : 'https://psgq.sp.senac.br/queue-bootstrap'); 
4760 
4761    hostBolsaUrl.searchParams.set('un', codigoUnidade); 
4762    hostBolsaUrl.searchParams.set('cs', $('[name="codigoFT"]').val()); 
4763    hostBolsaUrl.searchParams.set('tu', oferta.codigoOferta); 
4764    hostBolsaUrl.searchParams.set('qv', oferta.qtdeTotalVagasPSG); 
4765 
4766    return hostBolsaUrl.toString(); 
4767  }   
4768    
4769   $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){ 
4770      
4771     var classAtivo = 'btn--filtro-ativo'; 
4772      
4773     if(!$(this).hasClass(classAtivo)){ 
4774      
4775       $(this).siblings().removeClass(classAtivo); 
4776        
4777       $(this).addClass(classAtivo); 
4778 
4779       const $cardTransferencias = $('.card-transferencias-emed'); 
4780        
4781       if($(this).val() == '0'){ 
4782        hideCardSemTurmas(true); 
4783        $('.ssp-slick-ofertas-emed').empty(); 
4784        if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none'); 
4785        $('.prev-mobile, .next-mobile').addClass('d-none'); 
4786        $cardTransferencias.removeClass('d-none'); 
4787       } else{ 
4788        if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none'); 
4789        $('.ssp-slick-ofertas-emed').removeClass('d-none'); 
4790        populaOfertas(objsTela.ofertas); 
4791
4792        
4793
4794      
4795   }); 
4796    
4797   //Cronometro 
4798	var hidden, visibilityChange; 
4799	var restartTimeout = null; 
4800	var interval01, interval15; 
4801	 
4802	if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support 
4803		hidden = "hidden"; 
4804		visibilityChange = "visibilitychange"; 
4805	} else if (typeof document.msHidden !== "undefined") { 
4806		hidden = "msHidden"; 
4807		visibilityChange = "msvisibilitychange"; 
4808	} else if (typeof document.webkitHidden !== "undefined") { 
4809		hidden = "webkitHidden"; 
4810		visibilityChange = "webkitvisibilitychange"; 
4811
4812	 
4813	// Verifica suporte a Visibility API 
4814	if (typeof document.addEventListener === "undefined" || hidden === undefined) { 
4815		console.log("Navegador incompativel com page visibility api"); 
4816	} else { 
4817		// Evento para quando a visibilidade da pagina mudar 
4818		document.addEventListener(visibilityChange, handleVisibilityChange, false); 
4819
4820    
4821   $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() { 
4822   
4823       $(this).toggleClass("active").next().slideToggle(); 
4824   
4825       $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300); 
4826   
4827       $(this).siblings().removeClass("active"); 
4828   }); 
4829   
4830  function loadUnidadesRegistroInteresse(urlCursoInfo) { 
4831    if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length) 
4832      return 
4833 
4834    let urlUnidades = new URL(window.location.origin + urlCursoInfo) 
4835    let paramsUnidades = new URLSearchParams(urlUnidades.search) 
4836    paramsUnidades.delete('inscricaoAberta') 
4837    paramsUnidades.delete('bolsaAberta') 
4838    paramsUnidades.delete('buscarUnidadesComOferta') 
4839    urlUnidades.search = '?' + paramsUnidades.toString() 
4840    urlUnidades = urlUnidades.href 
4841 
4842    $.ajax({ 
4843      url: urlUnidades, 
4844      method:'get', 
4845      async: false 
4846    }).done(function(data){ 
4847      if(data.length > 0){ 
4848        const cursoInfo = JSON.parse(data); 
4849        const unidadesOfertantes = cursoInfo.unidadesOfertantes; 
4850         
4851        $.each(unidadesOfertantes, function(k,item){ 
4852          var unidade = {}; 
4853          unidade['categoryId'] = item['categoryId']; 
4854          unidade['codigoUnidade'] = item['codigoUnidade']; 
4855          unidade['nome'] = item['nomeUnidade']; 
4856          unidade['enderecoUnidade'] =item['enderecoUnidade']; 
4857          unidade['numero'] =item['numEnderecoUnidade']; 
4858          unidade['complemento'] = item['complementoEnderecoUnidade']; 
4859          unidade['bairro'] = item['bairroUnidade']; 
4860          unidade['googlemapsUnidade'] = item['googlemapsUnidade']; 
4861          unidade['friendlyURL'] = item['friendlyURL']; 
4862          unidade['selecionado'] = false; 
4863          unidade['selectSelecionado'] = ""; 
4864          unidade['ofertas'] = []; 
4865               
4866          if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length) 
4867            objsTela.unidadesRegistroInteresse.push(unidade) 
4868          }); 
4869
4870    }); 
4871
4872   
4873   function loadUnidades(showOptions, unidadeValue){ 
4874     //Busca as unidades do curso 
4875     let buscarUnidadesComOferta = false; 
4876      
4877     if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))) 
4878    	 buscarUnidadesComOferta = true; 
4879      
4880    const urlCursoInfo = urlSearchCursoInfo 
4881      .replace('\{groupId\}', groupId) 
4882      .replace('\{cursosInfo\}', $('[name="articleId"]').val()) 
4883      .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked')) 
4884      .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked')) 
4885      .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta); 
4886 
4887      loadUnidadesRegistroInteresse(urlCursoInfo) 
4888 
4889      $.ajax({ 
4890          url:urlCursoInfo, 
4891          method:'get', 
4892          async: false, 
4893        beforeSend: function () { 
4894          loading('.oferta-slick-area'); 
4895
4896        }).done( 
4897          function(data){ 
4898             
4899            if(data.length > 0){ 
4900               
4901              const cursoInfo = JSON.parse(data); 
4902                                
4903              const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes; 
4904               
4905              if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0)) 
4906                $('.ssp-container-selecione-unidade').removeClass('d-none') 
4907 
4908              objsTela.unidades = [] 
4909              mapUnidadesIds = new Map(); 
4910               
4911              $.each(unidades, function(k,item){ 
4912                   
4913                  var unidade = cloneObj(item) 
4914                  unidade['nome'] = item['nomeUnidade']; 
4915                  unidade['numero'] =item['numEnderecoUnidade']; 
4916                  unidade['complemento'] = item['complementoEnderecoUnidade']; 
4917                  unidade['bairro'] = item['bairroUnidade']; 
4918                  unidade['ofertas'] = []; 
4919                       
4920                    objsTela.unidades.push(unidade); 
4921                       
4922                      mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']); 
4923 
4924                    objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade)) 
4925                }); 
4926                       
4927                             
4928              populaSelectUnidades(undefined, showOptions, unidadeValue);  
4929    
4930
4931      }); 
4932       
4933
4934   
4935function getOfertaObjectFromJson(ofertaJSON,index){ 
4936   
4937 
4938  var oferta =  {}; 
4939        var xml =  $($.parseXML(ofertaJSON.content)); 
4940          oferta['ordenar'] = paramOrdem(xml); 
4941          oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim(); 
4942          var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-'); 
4943          var dataFim =xml.find('[name="dataFimOferta"]').text().split('-'); 
4944          oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim(); 
4945          oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim(); 
4946          oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text(); 
4947          oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim(); 
4948          var dias = []; 
4949          oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim(); 
4950          xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){ 
4951            dias.push($(dia).text()); 
4952          }); 
4953          oferta['diasDaSemanaOferta'] = dias; 
4954          oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim(); 
4955          oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim(); 
4956          oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim(); 
4957          oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim(); 
4958           
4959          oferta['textoCartoesAceitos'] =  pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
4960          oferta['numParcelaCartoes'] =  pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
4961          oferta['precoParcelaCartoes'] =  pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
4962          oferta['numParcelaBoleto'] =  pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
4963          oferta['precoParcelaBoleto'] =  pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
4964           
4965          oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim(); 
4966          oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim(); 
4967          oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim(); 
4968          oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim(); 
4969          oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim(); 
4970          oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim(); 
4971          oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim(); 
4972          oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim(); 
4973          oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim(); 
4974          oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim(); 
4975          oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim(); 
4976          oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim(); 
4977          oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim(); 
4978          oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim(); 
4979          oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim(); 
4980          oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim(); 
4981          oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim(); 
4982          oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim(); 
4983          oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim(); 
4984          oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim(); 
4985          oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim(); 
4986          oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim(); 
4987          oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim(); 
4988          oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim(); 
4989          oferta['etapa'] = xml.find('[name="etapa"]').text().trim(); 
4990          oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();  
4991          //adicao do destinoBolsa na oferta - 9546 - 11/07/2022 
4992          oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim(); 
4993 
4994          	// 18/07/2025 - Removido o  dataAberturaBolsaOferta recebendo o dataAberturaMatricula  
4995          	// devido a mudança de regra que recebemos da área 
4996          	           
4997         return oferta;  
4998
4999   
5000  const getStatusEmed = (oferta) => { 
5001 
5002      if("${listaEsperaAtiva?c}" !== "true") return statusEmed.INSCRICAO; 
5003 
5004	    const urlStatusEsperaEmed = () => { 
5005	  		let url = (isAmbienteTeste()) ?  
5006		  		'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/' 
5007			    : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/'; 
5008	  		 
5009  	  		return url + oferta.codigoOferta; 
5010
5011  	  	 
5012  	  const callTl = async () => { 
5013	  		if(getCookie('tl') == null){ 
5014	  			return await $.ajax({ 
5015	  				url: '/o/senac-content-services/geraTokenServicosSenac', 
5016	  				method: 'GET' 
5017	  			}); 
5018
5019	  		return getCookie('tl'); 
5020
5021 
5022      const callListaEspera = async () => { 
5023  	    	var tl = ''; 
5024	    	  try{ 
5025  	    		tl = await callTl(); 
5026  	    		if(getCookie('tl') == null){ 
5027  	    			tl = JSON.parse(tl).token; 
5028  	    			writeCookie('tl', tl, 6, ''); 
5029
5030  	    	}catch(err){ 
5031  	    		console.error(err); 
5032  	    		return {}; 
5033
5034  	    	 
5035  	    	return $.ajax({ 
5036              url: urlStatusEsperaEmed(), 
5037              method: 'GET', 
5038  	        	beforeSend: function (xhr) { 
5039  	        		xhr.setRequestHeader("Authorization", tl); 
5040
5041  			  }) 
5042
5043 
5044      return new Promise(async function (resolve, reject) { 
5045        const resp = await callListaEspera(); 
5046        if(typeof resp !== 'object') resp = JSON.parse(resp); 
5047        let status = resp.STATUS; 
5048        resolve(status); 
5049      }); 
5050	  	 
5051
5052   
5053 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){ 
5054       
5055  if(categoryIds && categoryIds.length) { 
5056    var params = new URLSearchParams(); 
5057    params.set('codigoFTOferta',codigoFT) 
5058    params.set('dataEfetivaOferta',dataEfetivaOferta) 
5059    params.set('categoryIds',categoryIds) 
5060    params.set('start',startOfertaParam) 
5061    params.set('end',endOfertaParam) 
5062    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
5063    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
5064    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
5065 
5066    if($('#chkBolsa').prop('checked')){ 
5067    	params.set('considerarDataBolsaFutura', true) 
5068
5069    const url = urlSearchOferta + '?' + params.toString() 
5070       
5071    $.ajax({ 
5072      url:url, 
5073      method:'get', 
5074      dataType:'json', 
5075      async: false 
5076    }).done( 
5077      function(data){ 
5078         
5079        if(data.length > 0){ 
5080         $('#ssp-alternadores').show() 
5081         showedFilters = true 
5082   
5083         objsTela.ofertasAoVivoTodasUnidades = [] 
5084           
5085          data.forEach(function(ofertaJSON,index){ 
5086   
5087            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
5088             
5089            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
5090            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));                
5091            objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
5092   
5093          }); 
5094        } else { 
5095         loadAlternadores(data) 
5096
5097   
5098        populaOfertas(objsTela.ofertasAoVivoTodasUnidades); 
5099        addEventBolsa() 
5100
5101    ).fail(function(e) { 
5102      console.error(e) 
5103      populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []); 
5104    }) 
5105  } else { 
5106    loadAlternadores([]) 
5107    populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []) 
5108
5109 
5110  if(isAoVivo) { 
5111     if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length) 
5112       hideCardSemTurmas(true) 
5113     else 
5114       hideCardSemTurmas(false) 
5115
5116
5117    
5118  function mudouToggleOferta(ofertas) { 
5119    const oferta = ofertas && ofertas[0] 
5120    if(!oferta) 
5121      return true 
5122 
5123    const selecaoInscricao = $('#chkInscricao').prop('checked') 
5124    const selecaoBolsa = $('#chkBolsa').prop('checked') 
5125 
5126    return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa 
5127
5128 
5129  function loadAlternadores(ofertas) { 
5130    if(showedFilters) { 
5131      $('#ssp-alternadores').show() 
5132      return 
5133
5134 
5135    if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) { 
5136      if(isAoVivo) { 
5137        if(ofertas && ofertas.length) 
5138          $('#ssp-alternadores').show() 
5139        else { 
5140          if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
5141            $('#ssp-alternadores').hide() 
5142          else 
5143            $('#ssp-alternadores').show() 
5144
5145      } else { 
5146        if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
5147          $('#ssp-alternadores').hide() 
5148        else 
5149          $('#ssp-alternadores').show() 
5150
5151    } else 
5152      $('#ssp-alternadores').show() 
5153 
5154    showedFilters = showedFilters || $('#ssp-alternadores').is(":visible") 
5155
5156 
5157  function getOfertas(codigoFT, dataEfetivaOferta, categoryId){ 
5158       
5159    var indiceUnidade = -1; 
5160    const selecaoInscricao = $('#chkInscricao').prop('checked') 
5161    const selecaoBolsa = $('#chkBolsa').prop('checked') 
5162      
5163     for(var i = 0; i < objsTela.unidades.length; i++) 
5164         if(objsTela.unidades[i].categoryId == categoryId) 
5165           indiceUnidade = i; 
5166      
5167    ultimaUnidade = indiceUnidade; 
5168           
5169     if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){ 
5170       objsTela.unidades[indiceUnidade]['ofertas'] = [] 
5171        
5172        var params = new URLSearchParams(); 
5173        params.set('codigoFTOferta',codigoFT) 
5174        params.set('dataEfetivaOferta',dataEfetivaOferta) 
5175        params.set('categoryIds',categoryId) 
5176        params.set('start',startOfertaParam) 
5177        params.set('end',endOfertaParam) 
5178        params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
5179        params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
5180        params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
5181 
5182        if($('#chkBolsa').prop('checked')){ 
5183        	params.set('considerarDataBolsaFutura', true) 
5184
5185         
5186        const url = urlSearchOferta + '?' + params.toString() 
5187   
5188       $.ajax({ 
5189         url:url, 
5190         method:'get', 
5191         dataType:'json', 
5192         async: false 
5193       }).done( 
5194         function(data){ 
5195            
5196           if(data.length > 0){ 
5197             $('#ssp-alternadores').show() 
5198             showedFilters = true 
5199              
5200             $('.ssp-container-selecione-unidade').show(); 
5201             
5202             data.forEach(function(ofertaJSON,index){ 
5203   
5204               var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
5205                
5206               //Preenche as ofertas da unidade              
5207               objsTela.unidades[indiceUnidade]['ofertas'].push(oferta); 
5208               objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => { 
5209                 o.selecaoInscricao = selecaoInscricao 
5210                 o.selecaoBolsa = selecaoBolsa 
5211               }) 
5212   
5213             }); 
5214           } else { 
5215              loadAlternadores() 
5216
5217           objsTela.categoriesIds.push(categoryId); 
5218           populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
5219           addEventBolsa() 
5220
5221
5222   
5223       //Se estiver na cache, valida as ofertas 
5224     }else{ 
5225        
5226       populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
5227        
5228
5229
5230       
5231   function populaSelectUnidades(unidades, showOptions, unidadeValue){       
5232    var unidadePreSelecionada = false; 
5233    var categoryIdUnidadePreSelecionada = ''; 
5234     
5235    //Oredenacao 
5236    objsTela.unidades.sort(function (a, b) { 
5237    	return ordenar(a, b, 'nome'); 
5238    }); 
5239     
5240    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
5241    	return ordenar(a, b, 'nome'); 
5242      }); 
5243     
5244    //console.log(objsTela.unidades); 
5245     
5246    $.each(objsTela.unidades, function(k,item){ 
5247       
5248      if(getURLData().includes('/'+item.friendlyURL+'/')){ 
5249        unidadePreSelecionada= true; 
5250        categoryIdUnidadePreSelecionada = item['categoryId']; 
5251
5252    }); 
5253     
5254    //console.log('Unidade Pre '+unidadePreSelecionada); 
5255     
5256    if(objsTela.unidades.length == 0){ 
5257      if(!showOptions) 
5258        $('.ssp-container-selecione-unidade').addClass('d-none'); 
5259      $('.oferta-slick-area').empty(); 
5260      $('.prev-mobile').addClass('d-none'); 
5261      $('.next-mobile').addClass('d-none'); 
5262      //EMED remove msg registro interesse 
5263      //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none'); 
5264
5265     
5266    if(isAoVivo){ 
5267       
5268        const codigoFT = $('[name="codigoFT"]').val(); 
5269    	const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
5270 
5271    	var unidadesCategoryAll = ''; 
5272     
5273    	$.each(objsTela.unidades, function(k,unidade){ 
5274      		unidadesCategoryAll += unidade['categoryId']+','; 
5275        }); 
5276       
5277    //tirando ultima virgula 
5278    unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1); 
5279     
5280    getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);            
5281       
5282    }else{ 
5283      $('#unidades-ofertas').empty() 
5284 
5285      if(objsTela.unidades && objsTela.unidades.length){  
5286        if(isEmed) 
5287          $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>')) 
5288        else 
5289          $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>')) 
5290 
5291      } else 
5292        $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>')) 
5293 
5294      let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades) 
5295       
5296      //Dispara o evento para primeira unidade ou pela friendlyURl da unidade 
5297      if(unidadeValue) { 
5298        $('#unidades-ofertas').val(unidadeValue); 
5299        $('#unidades-ofertas').change(); 
5300      } else if(unidadeFounded){	             
5301        $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']); 
5302        $('#unidades-ofertas').change(); 
5303      } else if(!unidadePreSelecionada) { 
5304        $('#unidades-ofertas').change(); 
5305
5306       
5307      $('.ssp-card-registro-interesse__select.unidades').empty() 
5308      $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>') 
5309      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
5310         
5311        $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
5312      }); 
5313
5314     
5315
5316	 
5317   function excecaoCursoGratuito(oferta){ 
5318	  return $('[name="modalidadeName"]').val() == 'acoes-educ.-curta-duracao' && $('[name="tipoCurso"]').val() == 'livre' && (strToFloat(oferta.precoVendaOferta) == 0); 
5319
5320 
5321   
5322   function mudarUnidade(ev){      
5323     startOfertaParam = 0; 
5324     endOfertaParam = 25; 
5325     carregouUltimaOferta = false; 
5326 
5327     var elem = $(ev.target); 
5328     var unidades = objsTela.unidades; 
5329      
5330     //verifica se selecionou alguma unidade 
5331     if(!elem.val()){ 
5332       $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none'); 
5333 
5334       if(isEmed) 
5335        $('#ssp-section-response').addClass('d-none') 
5336 
5337        hideCardSemTurmas($('#unidades-ofertas option').length > 1)        
5338 
5339        elem.val('') 
5340        habilitarRegistroInteresse(false) 
5341        //Zera variável que controla existência de ofertas com bolsa 
5342        ofertasComBolsa = false; 
5343        controlaPaginaBolsa(); 
5344        
5345       return; 
5346
5347      
5348     $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none'); 
5349     hideCardSemTurmas(true) 
5350     if(isEmed){ 
5351        $('.ssp-ofertas-emed__section').removeClass('d-none'); 
5352        $('#ssp-section-response').removeClass('d-none') 
5353        $('.ssp-card-oferta-curso__section-title').addClass('d-none'); 
5354        $('.prev-mobile, .next-mobile').addClass('d-none'); 
5355        var nomeUnidade = $('#unidades-ofertas option:selected').text(); 
5356        let tamScreen = $(window).width(); 
5357 
5358        if(tamScreen < 1024) 
5359	    	  $('#titulo-emed').text('Turmas ' + anoTurmaEmed ); 
5360        else 
5361        	$('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade); 
5362 
5363
5364      
5365     const codigoFT = $('[name="codigoFT"]').val(); 
5366     const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
5367      
5368     //colocamos dentro do option categoryId@codUnidade 
5369     splitted = elem.val().split("@"); 
5370     var categoryIdUnidade = splitted[0]; 
5371     var codUnidade = splitted[1]; 
5372           
5373     for(var i = 0; unidades.length > i ; i++){ 
5374        
5375       if(unidades[i].categoryId == categoryIdUnidade){ 
5376   
5377           var unidade = unidades[i]; 
5378            
5379           //Exibe o endereco da unidade 
5380           const urlBuscaUnidade = urlUnidadeInfoDetalhe 
5381         .replace('\{companyId\}',themeDisplay.getCompanyId()) 
5382         .replace('\{codigoUnidade\}', unidade.codigoUnidade); 
5383            
5384           $.ajax({ 
5385                 url :  urlBuscaUnidade, 
5386                 type : 'get', 
5387                 dataType: 'json', 
5388                 success: function( unidadeInfo ) { 
5389                   if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){ 
5390                       
5391                       var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', '); 
5392                         endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - '); 
5393                         endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - '); 
5394                 
5395                         $('.ssp-ofertas__endereco-unidade').text(endereco); 
5396                         $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade); 
5397
5398                 }, 
5399                 error: function(data){ 
5400                   $('.ssp-ofertas__endereco-unidade').text(''); 
5401                   $('.ssp-ofertas__endereco-unidade').attr('href','#a'); 
5402                     console.log('Unidade não encontrada'); 
5403
5404             }) 
5405           
5406          getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId); 
5407            
5408          habilitarRegistroInteresse(!!(unidades && unidades.length)); 
5409            
5410
5411     }   
5412
5413     
5414   function pegarTextoCartoesAceitos(campo){ 
5415      indice = campo.indexOf(' em até '); 
5416      inicio = 0; 
5417      fim = indice; 
5418       
5419      return campo.substring(inicio, fim); 
5420
5421    
5422   function pegaNumParcela(campo){ 
5423    
5424      indice = campo.indexOf('até '); 
5425      inicio = indice + 4; 
5426      fim = indice +  6; 
5427       
5428      return campo.substring(inicio, fim); 
5429       
5430
5431    
5432   function pegaValorParcela(campo){ 
5433      
5434      indice = campo.indexOf('R$'); 
5435      inicio = indice+2;     
5436      valorAmericano = campo.substring(inicio) 
5437       
5438      return formataValor(valorAmericano); 
5439       
5440
5441    
5442   function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){ 
5443	    
5444    var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta); 
5445    diasSemanaHTML = ""; 
5446	      
5447    for(var diaDaOferta of retornoDiasHorarios){ 
5448          diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias); 
5449          diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario) 
5450		      }    
5451		       
5452    var ofertaHTML = ""; 
5453		 
5454		if(isEmed){ 
5455			 
5456      ofertaHTML = htmlSlickAreaEmed(oferta); 
5457			$('[name="codUnidadeSelecionada"]').val(codigoUnidade); 
5458			 
5459			if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML) 
5460			else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML); 
5461		}else{ 
5462 
5463 
5464      ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) 
5465       
5466      if(!posLoad) 
5467        $('.oferta-slick-area').append(ofertaHTML); 
5468      else 
5469        $('.oferta-slick-area').slick('slickAdd', ofertaHTML); 
5470       
5471      ajustaTextoDiasHorarioOferta(oferta.codigoOferta); 
5472 
5473
5474 
5475    if(turmasIniciadas(oferta.dataInicio)) 
5476    	$("#aviso-turma-iniciada-"+index).show(); 
5477 
5478	//remove os botões/itens de compra/bolsa caso seja preciso 
5479    $('.oferta-slick-area').find('.d-none-btn').remove(); 
5480
5481 
5482 
5483  	//RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS 
5484	//@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"  
5485	function processaDiasHorariosOferta(horariosAllOferta){ 
5486 
5487   		var dias = horariosAllOferta.trim().split(','); 
5488   		let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}] 
5489 
5490   		var arrayDia = []; 
5491   	   	if(dias.length >= 1){ 
5492   		    for(var k=0; dias.length > k; k++){ 
5493   		 		var diasSplit = dias[k].trim().split(' '); 
5494   	          	var diasSemana = diasSplit.shift() 
5495   		      	var ultimaPos = diasSplit.length-1; 
5496   	          	var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]  
5497   	         	arrayDia.push({horasStr,diasSemana}); 
5498
5499
5500 
5501   		arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana'); 
5502   		arrayDia = orderByArray(arrayDia,arrayDiasSemana); 
5503   		 
5504   		var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana); 
5505			return ret; 
5506
5507 
5508   //cria um array de objetos Agrupando de acordo ao campo informado como chave.  
5509   //@arr = Array multidimensional que tenha os campos key e valueAdd 
5510   //@key = campo que será chave nesse array 
5511   //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key 
5512   const groupByArray = (arr, key,valueAdd) => { 
5513   		const initialValue = []; 
5514   		const retornoValue = []; 
5515   		arr.forEach((acc, cval) => { 
5516   			const myAttribute = cval[key]; 
5517   			acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]]; 
5518   			return acc; 
5519     		}, initialValue); 
5520   	return retornoValue; 
5521   }; 
5522 
5523 
5524   //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.  
5525   //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados 
5526   //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua 
5527   const orderByArray = (arrayOrdena, ordem) => { 
5528 
5529   	let diasSem = []; 
5530   	const arrayOrdenado = []; 
5531   	let controle; 
5532   	 
5533   	//percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado 
5534   	for(let campo of ordem){	 
5535   		Object.entries(arrayOrdena).forEach(([key, value]) => { 
5536   			for(let diaOferta of value){ 
5537   				if(diaOferta===Object.keys(campo)[0]){ 
5538   					arrayOrdenado[key]=arrayOrdena[key]; 
5539
5540
5541   	    }) 
5542
5543   	return arrayOrdenado; 
5544   }; 
5545 
5546   //retorna o valor de um objeto dentro de um array 
5547   //@objetoBusca = array de objetos que sera buscado o valor 
5548   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
5549   function findValueInObject(objetoBusca, keyBusca){ 
5550   	var retorno = ""; 
5551   	Object.entries(objetoBusca).forEach(([horario, dias]) => { 
5552   		Object.entries(dias).forEach(([key,val]) => { 
5553   			if(key.trim()==keyBusca.trim()){ 
5554   				retorno = val; 
5555
5556   		}); 
5557   	}); 
5558   	return retorno; 
5559
5560 
5561   //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.  
5562   //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex'] 
5563   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
5564   function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){ 
5565   	 
5566   	let arrayValidador = []; 
5567   	 
5568   	//cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom] 
5569   	for(let diaOferta of arrayComDiasDaSemana){ 
5570   		for(let i = 0; i < arrayDiasDaSemana.length; i++){ 
5571   			if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){ 
5572   				arrayValidador[i] = true; 
5573   			}				 
5574
5575
5576 
5577   	let keyCompair = 99; 
5578   	var sequencial = true; 
5579 
5580   	//verifica quais posições foram criadas no array, e se os valores delas estão em sequencia. 
5581   	for(let keyValidator of Object.keys(arrayValidador)){ 
5582   		keyValidator = parseInt(keyValidator); 
5583   		if(keyCompair!==99){ 
5584   			if(keyValidator===keyCompair){ 
5585   				sequencial = true; 
5586   			}else{ 
5587   				sequencial = false; 
5588   				break; 
5589
5590
5591   		keyCompair = keyValidator+1; 
5592
5593   	return sequencial; 
5594
5595 
5596 
5597   //Exibe as informações de dia e horario de oferta de acordo a sua estrutura 
5598   //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta  
5599   //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula  Ex: Segunda, terça, sexta e domingo 
5600   //@arrayAgrupadoEOrdenado = array de objetos que sera exibido 
5601   //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta) 
5602   function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){ 
5603 
5604   	var stringAux = "";		 
5605   	var listRetorno = []; 
5606   		 
5607   	Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {		 
5608 
5609   		var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana); 
5610   		var stringAux = "";		 
5611   		var diaOferta = {}; 
5612 
5613   		if(sequencial){ 
5614   			switch (value.length) { 
5615       			case 1: 
5616   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": "; 
5617   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
5618   					diaOferta.horario = key; 
5619   				break; 
5620   				case 2: 
5621   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
5622   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
5623   					diaOferta.horario = key; 
5624   				break; 
5625   				default: 
5626          				stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
5627   					 
5628   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
5629   					diaOferta.horario = key; 
5630   				break; 
5631   			}	 
5632   		}else{ 
5633   			switch (value.length) { 
5634       			case 2: 
5635   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
5636   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
5637   					diaOferta.horario = key; 
5638   				break; 
5639   				default: 
5640   					var ct = 0; 
5641   					var stringDias=""; 
5642   					for(let v of value){ 
5643       					ct++; 
5644   						ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", "; 
5645
5646          				stringAux = stringAux+stringDias+": "; 
5647   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
5648   					diaOferta.horario = key; 
5649   				break; 
5650
5651
5652 
5653   		listRetorno.push(diaOferta); 
5654   	}) 
5655   	return listRetorno; 
5656   }; 
5657 
5658 
5659   //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string 
5660   function ajustaTextoDiasHorarioOferta(codOferta){ 
5661 
5662	   var classOferta = ".codigoOferta_"+codOferta;  
5663	   let oferta = $(classOferta); 
5664 
5665	   let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]'); 
5666 
5667	   let widthDevice = window.screen.width; 
5668	   let tamLimDesktop = 185; 
5669	 
5670	   if(widthDevice <= 1024){ 
5671	       tamLimDesktop = 180; 
5672
5673	  
5674	   ofertaDiasSemana.each(function(index){ 
5675 
5676		   		   	 
5677	       let widthDiaSemana = $(this).width(); 
5678	 
5679	       let contentDiaHora = $(this).parent().parent().parent(); 
5680	   	 
5681	       if(!(widthDiaSemana <= tamLimDesktop)){ 
5682			   $(this).css("display","block"); 
5683
5684	 
5685		   if(ofertaDiasSemana.length == parseInt(index+1)){ 
5686		       contentDiaHora.css("opacity","1"); 
5687
5688 
5689   		})  
5690
5691 
5692   function getObjBtnComprar(oferta){ 
5693      let obj = {}; 
5694      obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false'; 
5695      if($('#manutencao-compra').val()){ 
5696        obj['classeBotao'] = 'disabled manutencao'; 
5697        obj['textoBotao'] = $('#manutencao-compra').val(); 
5698      }  
5699      else{ 
5700        obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn'; 
5701        obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra'; 
5702
5703      return obj; 
5704
5705    
5706     function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){ 
5707        
5708       var formaPagtoObj = {}; 
5709	    
5710	     var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g'); 
5711         var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g') 
5712 
5713       formaPagtoObj['regIndex']  = index; 
5714       formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta); 
5715       formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos; 
5716 
5717       formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes; 
5718       formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes; 
5719       formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto; 
5720       formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto; 
5721       formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta); 
5722        
5723       formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2)); 
5724       formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false'; 
5725       formaPagtoObj['dataUnidade'] = codigoUnidade; 
5726       formaPagtoObj['dataEvento'] = oferta.codigoOferta; 
5727       formaPagtoObj['destinoCompra '] = oferta.destinoCompra; 
5728        
5729       //EMED nao restringe o botao 
5730       if(isEmed){ 
5731          let manutencao = $('#manutencao-compra').val();  
5732          formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR'; 
5733           formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : ''; 
5734       }else{ 
5735          let btnComprar = getObjBtnComprar(oferta);  
5736          formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao; 
5737           formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao; 
5738
5739 
5740       formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta; 
5741       formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta); 
5742        
5743       //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  
5744       formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta); 
5745       var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2); 
5746       formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao); 
5747       formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao); 
5748       formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2)); 
5749       formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2)); 
5750       formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2)); 
5751          
5752       return formaPagtoObj; 
5753
5754      
5755     function calculaPrecoAvista(precoVendaOferta){ 
5756      return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2); 
5757
5758 
5759     function getParcelasEntradaCartao(dataInicioCurso){ 
5760       
5761      const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-")); 
5762      const dHoje = new Date(); 
5763 
5764      let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear(); 
5765      let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth(); 
5766      diffMeses = diffAnos * 12 + diffMeses; 
5767 
5768      return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses); 
5769       
5770
5771 
5772    function createModalFormaPagto(formaPagtoObj, oferta, index) { 
5773      let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
5774      temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta)       
5775       
5776      result = ` 
5777        <div id="modalFormaPagto" class="ssp-modal"> 
5778          <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
5779            <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;"> 
5780              <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6> 
5781              <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i> 
5782            </div> 
5783
5784        + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') + 
5785
5786            <div class="ssp-card-modal-forma-pagamento__body">               
5787      `       
5788      if(temDesconto) { 
5789        result = result + ` 
5790             <div> 
5791                <p class="my-0"><strong>Valor com </strong> 
5792                  <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>                   
5793                </p> 
5794              </div> 
5795              <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>` 
5796               
5797        if($('[name="tipoCurso"]').val() == 'extensao') { 
5798          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>` 
5799        } else { 
5800          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>` 
5801
5802               
5803         
5804        result = result + ` 
5805              <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div> 
5806              <p class="my-0"><strong>Valor:</strong></p> 
5807              <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
5808              <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p> 
5809              <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div> 
5810              <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p> 
5811
5812      } else { 
5813        if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) { 
5814          result = result + ` 
5815              <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
5816              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
5817              <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> 
5818            </div> 
5819
5820        } else { 
5821          const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:' 
5822           
5823          result = result + ` 
5824              <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small> 
5825              <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p> 
5826              <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
5827              <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p> 
5828              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
5829              <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> 
5830            </div> 
5831
5832
5833
5834 
5835      let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto, textoPix, textoParcelaPixComBoleto 
5836      if(temDesconto) { 
5837        const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2)) 
5838        const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2)) 
5839 
5840        if(formaPagtoObj.numParcelaCartoes) 
5841          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>` 
5842 
5843        if(formaPagtoObj.numParcelaBoleto){ 
5844          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>` 
5845          textoPix = `<p>Valor total à vista com desconto</p>` 
5846          textoParcelaPixComBoleto = `<p>1ª parcela no Pix + valor restante em até <span><span class="numParcelaPixBoleto">` + (formaPagtoObj.numParcelaBoleto - 1) + `</span>x</span> sem juros no boleto bancário</p>` 
5847
5848           
5849 
5850      } else { 
5851        if(formaPagtoObj.numParcelaCartoes) 
5852          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>` 
5853         
5854        if(formaPagtoObj.numParcelaBoleto){ 
5855          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>` 
5856          textoPix = `<p>Valor total à vista com desconto</p>` 
5857          textoParcelaPixComBoleto = `<p>1ª parcela no Pix + valor restante em até <span><span class="numParcelaPixBoleto">` + (formaPagtoObj.numParcelaBoleto - 1) + `</span>x</span> sem juros no boleto bancário</p>` 
5858
5859
5860	   
5861	  if(formaPagtoObj.numParcelaBoleto){ 
5862		  textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário</p>`; 
5863
5864 
5865    let cardPix = (textoPix) => ` 
5866        <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
5867          <i class="fa-brands fa-pix" style="margin-right:15px;font-size:18px"></i> 
5868          <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5869              <p><strong>Pix</strong></p>` 
5870              + textoPix +    
5871          `</div> 
5872        </div>`; 
5873 
5874    let cardPixBoleto = (textoParcelaPixComBoleto) => ` 
5875          <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
5876            <div style="display:flex;gap:5px;margin-right:6px"> 
5877              <i class="fa-brands fa-pix" style="font-size:14px"></i> 
5878              <i class="fa-sharp-duotone fa-light fa-barcode" style="font-size:14px"></i> 
5879            </div> 
5880            <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5881                <p><strong>Pix + boleto bancário</strong></p>` 
5882                + textoParcelaPixComBoleto +    
5883            `</div> 
5884          </div> 
5885        `; 
5886 
5887      if(temDesconto) {  
5888        result = result + ` 
5889              <div class="ssp-card-modal-forma-pagamento__tipos">` 
5890 
5891        if(textoPix && $('[name="tipoCurso"]').val() == 'livre') 
5892          result = result + cardPix(textoPix) 
5893 
5894        if(textoParcelaBoleto) 
5895          result = result + ` 
5896                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
5897                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
5898                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5899                      <p><strong>Boleto Bancário</strong></p>` 
5900                      + textoParcelaBoleto +    
5901                  `</div> 
5902                </div>` 
5903 
5904        if(textoParcelaCartoes) 
5905          result = result + ` 
5906                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
5907                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
5908                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5909                      <p><strong>Cartões</strong></p> 
5910                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
5911                      + textoParcelaCartoes +    
5912                  `</div> 
5913                </div> 
5914              </div> 
5915
5916 
5917        if(textoParcelaPixComBoleto && $('[name="tipoCurso"]').val() == 'livre') 
5918          result = result + cardPixBoleto(textoParcelaPixComBoleto) 
5919 
5920 
5921        if(textoParcelaCartaoComBoleto) 
5922          result = result + ` 
5923                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
5924                  <div style="display:flex;gap:5px;margin-right:6px"> 
5925                    <i class="fa-regular fa-credit-card" style="font-size:14px"></i> 
5926                    <i class="fa-sharp-duotone fa-light fa-barcode" style="font-size:14px"></i> 
5927                  </div> 
5928                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5929                      <p><strong>Cartão + boleto bancário</strong></p>` 
5930                      + textoParcelaCartaoComBoleto +    
5931                  `</div> 
5932                </div>` 
5933 
5934        if(textoPix && $('[name="tipoCurso"]').val() != 'livre') 
5935          result = result + cardPix(textoPix) 
5936 
5937        if(textoParcelaPixComBoleto && $('[name="tipoCurso"]').val() != 'livre') 
5938          result = result + cardPixBoleto(textoParcelaPixComBoleto) 
5939 
5940      } else { 
5941        result = result + ` 
5942              <div class="ssp-card-modal-forma-pagamento__tipos">` 
5943 
5944        if(textoPix) 
5945          result = result + cardPix(textoPix) 
5946 
5947        if(textoParcelaBoleto) 
5948          result = result + ` 
5949                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
5950                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
5951                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5952                      <p><strong>Boleto Bancário</strong></p>` 
5953                      + textoParcelaBoleto +    
5954                  `</div> 
5955                </div> 
5956              </div> 
5957
5958 
5959        if(textoParcelaCartoes) 
5960          result = result + ` 
5961                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
5962                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
5963                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5964                      <p><strong>Cartões</strong></p> 
5965                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
5966                      + textoParcelaCartoes +    
5967                  `</div> 
5968                </div>` 
5969 
5970        if(textoParcelaPixComBoleto ) 
5971          result = result + cardPixBoleto(textoParcelaPixComBoleto) 
5972 
5973        if(textoParcelaCartaoComBoleto) 
5974          result = result + ` 
5975                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
5976                  <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i> 
5977                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5978                      <p><strong>Cartão + boleto bancário</strong></p>` 
5979                      + textoParcelaCartaoComBoleto +    
5980                  `</div> 
5981                </div>` 
5982
5983 
5984       
5985 
5986      if(temDesconto) {  
5987        result = result + ` 
5988            <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p> 
5989
5990
5991 
5992      result = result + ` 
5993            <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>` 
5994     
5995      if(temDesconto) {  
5996        result = result + ` 
5997            <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a> 
5998
5999
6000           
6001      result = result + ` 
6002         </div> 
6003        </div> 
6004
6005 
6006      return result; 
6007
6008      
6009     function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){ 
6010        
6011       var tipoCurso = $('[name="tipoCurso"]').val(); 
6012        
6013       var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade); 
6014        
6015       var modalFormaPagto 
6016       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) { 
6017          modalFormaPagto = $('#modalFormaPagtoExt').clone(); 
6018 
6019          $.each(formaPagtoObj, function(k,v){ 
6020            if(modalFormaPagto.find('.'+k).length > 0) 
6021              modalFormaPagto.find('.'+k).text(v); 
6022          }) 
6023        } else if(isEmed) { 
6024          modalFormaPagto = $('#modalPagtoEmed').clone(); 
6025 
6026          $.each(formaPagtoObj, function(k,v){ 
6027            if(modalFormaPagto.find('.'+k).length > 0) 
6028              modalFormaPagto.find('.'+k).text(v); 
6029          }) 
6030        } else 
6031           modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index)); 
6032          
6033       modalFormaPagto.removeAttr('id'); 
6034       modalFormaPagto.removeClass('d-none'); 
6035       modalFormaPagto.attr('id','myModal_'+index); 
6036        
6037       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){ 
6038          
6039         var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok'); 
6040         botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index); 
6041          
6042         botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
6043         botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade); 
6044         botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento); 
6045         botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
6046         botoaoCompraOk.attr('data-index', index); 
6047         botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar); 
6048          
6049         var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not'); 
6050         botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index); 
6051          
6052         botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
6053         botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade); 
6054         botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento); 
6055         botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
6056         botoaoCompraNot.attr('data-index', index); 
6057         botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar); 
6058          
6059         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index); 
6060         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index); 
6061          
6062         modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
6063          
6064         modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index); 
6065          
6066         modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index); 
6067          
6068         modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index); 
6069         modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index); 
6070          
6071         var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');  
6072      
6073       }else{ 
6074   
6075         modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index); 
6076         modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
6077          
6078         var botaoCompra = modalFormaPagto.find('.btn.w-100'); 
6079   
6080
6081        
6082       if(isEmed){ 
6083          
6084    	   	var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento'); 
6085	    		  
6086          //Cria botao inscreva-se ajustado ao modal 
6087          var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta); 
6088          if($('#manutencao-compra').val()){ 
6089            textoBotao = $('#manutencao-compra').val(); 
6090            classeBotao = 'disabled manutencao'; 
6091          }else{ 
6092            if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){ 
6093              textoBotao = 'Lista de espera'; 
6094              classeBotao = 'btn-emed-lista-espera'; 
6095            }else{ 
6096                if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaMatricula || oferta.dataAberturaMatricula == ''){ 
6097                  if(oferta.etapa == '0020' || oferta.etapa == '0030'){ 
6098                    textoBotao = 'Lista de espera'; 
6099                    classeBotao = 'btn-emed-lista-espera'; 
6100                  }else{ 
6101                    textoBotao = 'Fazer matrícula'; 
6102                    classeBotao = ''; 
6103
6104                }else{ 
6105                  textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaMatricula, oferta.horaAberturaBolsaOferta); 
6106                  classeBotao = 'disabled'; 
6107
6108
6109
6110          criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index); 
6111          preencheDadosEmedModal(oferta, modalFormaPagto); 
6112          
6113       }else{ 
6114	       botaoCompra.attr('id', "btnComprarFormaPgto_"+index); 
6115	       botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
6116	       botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade); 
6117	       botaoCompra.attr('data-evento', formaPagtoObj.dataEvento); 
6118	       botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
6119	       botaoCompra.attr('data-index', index); 
6120		   botaoCompra.addClass(formaPagtoObj.classeBotaoComprar); 
6121
6122        
6123       $('.oferta-slick-area_modal').append(modalFormaPagto); 
6124       $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
6125        
6126       //Evita o erro de exibição de Nan 
6127       if(oferta.numParcelaBoleto.length == 0){ 
6128    	   $('#content_boleto_'+index).remove(); 
6129
6130
6131 
6132   function verificaTerminoDia(dataInicio, dataFim){ 
6133    if (dataInicio === dataFim) { 
6134      return true; 
6135
6136    return false; 
6137
6138 
6139    
6140   function montaHTMLModalLocalRealizacao(oferta, index){ 
6141 
6142    // Lógica para decidir o texto (Singular ou Plural) 
6143    // Assume que oferta.dataInicio e oferta.dataFim existem 
6144    var textoTitulo = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
6145        "ONDE A AULA IRÁ ACONTECER?" :     // True: Mesmo dia (Singular) 
6146        "ONDE AS AULAS VÃO ACONTECER?";    // False: Dias diferentes (Plural) 
6147      
6148     var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ? 
6149          '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>' 
6150           : '<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>'; 
6151      
6152     if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true") 
6153             textoFormatoHibrido += '</br>'; 
6154                        
6155     var localRealizacaoHTMLModal = htmlModalLocalRealizacao 
6156         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
6157         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
6158         .replace('\{localEspacoExterno\}',  oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" ) 
6159         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
6160         .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6161         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
6162         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
6163         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
6164         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6165         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
6166         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6167         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
6168         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6169         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
6170        .replace(regIndex, index) 
6171        .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao) 
6172        .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : ""); 
6173 
6174        $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal); 
6175        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
6176 
6177        if(oferta.ruaEspacoExterno == "") 
6178           $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle'); 
6179
6180    
6181   function  montaHTMLModalAntesCompra(oferta, index, codigoUnidade){ 
6182 
6183    if(isEmed){ 
6184              
6185      $('#modalAntesCompraEmed_' + oferta.indice).remove(); 
6186      const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone(); 
6187      antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice); 
6188      antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice); 
6189      antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice); 
6190      antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed'); 
6191       
6192      if(oferta.etapa == '0010'){ 
6193        if(oferta.permiteListaEspera == statusEmed.ESPERA){ 
6194          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none'); 
6195          antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera'); 
6196        }else{ 
6197          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none'); 
6198
6199      }else{ 
6200    	  antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none'); 
6201
6202 
6203      const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed'); 
6204      btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice); 
6205      btnCompra.attr('offercode', oferta.codigoOferta); 
6206 
6207      btnCompra.on('click', function(ev){ 
6208        ev.preventDefault(); 
6209        execCompraEmed(oferta); 
6210      }); 
6211 
6212    }else{ 
6213    	 
6214   	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
6215 
6216   	 
6217     var antesCompraHTMLModal = htmlModalAntesCompra 
6218         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
6219         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
6220         .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" ) 
6221         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
6222         .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != ""  ? "" : "d-none") 
6223         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
6224         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
6225         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
6226         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6227         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
6228         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6229         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
6230         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
6231         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
6232         .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat)) 
6233         .replace('\{linkBtnBolsa\}', linkBolsa(oferta)) 
6234        .replace(regIndex, index);   
6235 
6236        $('.oferta-slick-area_modal').append(antesCompraHTMLModal); 
6237        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
6238
6239
6240    
6241   async function populaOfertas(ofertas){ 
6242     
6243     //Zera variável que controla existência de ofertas com bolsa 
6244    ofertasComBolsa = false; 
6245 
6246    objsTela.ofertas = ofertas; 
6247 
6248    if(ofertas && ofertas.length)  
6249      $('#ssp-h3-turmas').show() 
6250    else  
6251      $('#ssp-h3-turmas').hide() 
6252 
6253      if(ofertas && ofertas.length > 1){ 
6254        //remove dupl 
6255        const ofertasDistintas = []; 
6256        ofertas.forEach(oferta => { 
6257          if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){ 
6258            ofertasDistintas.push(oferta); 
6259
6260        }); 
6261        ofertas = ofertasDistintas; 
6262
6263        
6264     if(isEmed){ 
6265 
6266      $('.btn-filtro[value="0"]').attr('disabled',''); 
6267      $('.ssp-slick-ofertas-emed').empty(); 
6268      // executa a class do slick slider 
6269      $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted'); 
6270      ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas); 
6271       
6272
6273 
6274     if(ofertas.length == 0){ 
6275        
6276      if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked')) 
6277        hideCardSemTurmas(false) 
6278        
6279       $('.oferta-slick-area').empty(); 
6280       $('.prev-mobile, .next-mobile').addClass('d-none'); 
6281        
6282       //Mostrar section registro interesse quando nao tiver oferta 
6283       habilitarRegistroInteresse(true); 
6284 
6285        controlaPaginaBolsa() 
6286        if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled'); 
6287       return; 
6288
6289      hideCardSemTurmas(true) 
6290      if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none'); 
6291      habilitarRegistroInteresse(false);     
6292     
6293     $('.oferta-slick-area').empty(); 
6294     $('.oferta-slick-area_modal').empty(); 
6295     ofertas = ofertas.sort(function(a, b){ 
6296       return ordenar(a, b, 'ordenar'); 
6297     }); 
6298     // executa a class do slick slider 
6299     $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted'); 
6300      
6301     //busca o codigoUnidade para o link do ecommerce 
6302     if(!isAoVivo){ 
6303      var selectedUnidade = $('#unidades-ofertas').val().split('@')[0]; 
6304      for(var i=0;objsTela.unidades.length > i ;i++){ 
6305        if(selectedUnidade == objsTela.unidades[i].categoryId) 
6306          codigoUnidade = objsTela.unidades[i].codigoUnidade; 
6307
6308
6309      
6310    // Montar object push - google tag manager - 2 
6311    itensEcommerce = criaItensEcommerce(ofertas); 
6312    sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values())); 
6313 
6314     for(var i=0;ofertas.length > i ;i++){ 
6315  	    
6316       var oferta = ofertas[i]; 
6317  	   var ofertaGratuita = excecaoCursoGratuito(oferta); 
6318        
6319       //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real 
6320       oferta['indice'] = i; 
6321       ofertasMap.set(oferta.codigoOferta, oferta); 
6322        
6323       if(isAoVivo) 
6324          codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
6325 
6326      if(isEmed && oferta.etapa == '0010'){ 
6327          try{ 
6328            let status = await getStatusEmed(oferta); 
6329            oferta['permiteListaEspera'] = status; 
6330          }catch(err){ 
6331            console.log(err); 
6332
6333
6334       montaHTMLOferta(oferta, i, codigoUnidade, false);  
6335        
6336       if(!ofertaGratuita) 
6337       	montaHTMLModalFormaPgto(oferta, i, codigoUnidade); 
6338               
6339       montaHTMLModalLocalRealizacao(oferta, i);  
6340       montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
6341        
6342       if(!ofertaGratuita) 
6343       	verificaBotaoBolsaSS(oferta); 
6344               
6345       verificaCursoAprendizagem(i, oferta.codigoOferta); 
6346       verificaCursoTrampolim(i, oferta.codigoOferta); 
6347        
6348       if(!ofertaGratuita) 
6349       	associaEventoBtnFormaPagamento(i); 
6350             
6351       associaEventoBtnComprar(i);  
6352        
6353       if(!ofertaGratuita) 
6354       	associaEventoBtnComprarDentroFormaPgto(i); 
6355             
6356       associaEventoBtnLocalRealizacao(i); 
6357       associaEventosFecharModal(i); 
6358       
6359         if($('[name="tipoCurso"]').val() == 'extensao'){ 
6360             associaEventoBtnConheca(i);	 
6361             associaEventoBtnComprarConhecaDescontoOk(i); 
6362             associaEventoBtnComprarConhecaDescontoNot(i); 
6363             associaEventoBtnAlunoNao(i); 
6364             associaEventoBtnAlunoSim(i); 
6365
6366         
6367
6368   
6369     if(isEmed){ 
6370      sliderOfertasEmed(); 
6371      $('.btn-filtro[value="0"]').removeAttr('disabled'); 
6372
6373     else sliderOfertas(); 
6374 
6375     controlaPaginaBolsa() 
6376      
6377
6378 
6379   function hideCardSemTurmas(hide){ 
6380    if(!isEmed){ 
6381      if(hide) 
6382        $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none'); 
6383      else 
6384        $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none'); 
6385    } else { 
6386      
6387 
6388      if(hide || getEtapaSelecionadaEmed() == "0"){ 
6389        $('.sem-vaga-emed').addClass('d-none'); 
6390      }else{ 
6391        $('.sem-vaga-emed').removeClass('d-none'); 
6392        if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return; 
6393        var tamScreen = $(window).width(); 
6394        if(tamScreen < 768){ 
6395            $('.slick-area-emed').slick({ 
6396            slidesToShow: 2, 
6397            slidesToScroll: 2, 
6398            autoplay: false, 
6399            infinite: false, 
6400            dots: false, 
6401            arrows: false, 
6402            centerPadding: 0, 
6403                        centerMode: false, 
6404            responsive: [ 
6405
6406                    breakpoint: 768, 
6407                    settings: { 
6408                        slidesToShow: 1, 
6409                        slidesToScroll: 1, 
6410                        variableWidth: false, 
6411                        infinite: false, 
6412                        centerPadding: 0, 
6413                        centerMode: false, 
6414                        dots: true, 
6415
6416
6417
6418        }); 
6419
6420
6421
6422
6423    
6424   function verificaCursoAprendizagem(i, codigoOferta){ 
6425 
6426      //Esconde elementsos quando o curso é aprendizagem 
6427      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
6428         $('#btnComprar_'+i).remove(); 
6429         $('#container_investimento_'+i).remove(); 
6430         $('#container_forma_pgto_'+i).remove(); 
6431          
6432         var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone(); 
6433         let btnFormAprendizagem = '<button class="btn btn-lg btn-success w-100 mt-3 btnModalAprendizagem" data-codigo-oferta="'+ codigoOferta +'" data-modal="open-modal" style="font-size:16px;background:#1FC923;font-weight: 600;">Preencher formulário</button>' 
6434         avisoAprendizagem.removeAttr('id'); 
6435         avisoAprendizagem.removeClass('d-none'); 
6436         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem); 
6437         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem); 
6438
6439
6440    
6441   function verificaCursoTrampolim(i, codOferta){ 
6442     if(ehCursoTrampolim){ 
6443          $('#btnComprar_'+i).remove(); 
6444          $('#container_investimento_'+i).remove(); 
6445          $('#container_forma_pgto_'+i).remove(); 
6446          $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide(); 
6447           
6448          var avisoTrampolim = $('#avisoTrampolim').clone(); 
6449          avisoTrampolim.removeAttr('id'); 
6450          avisoTrampolim.removeClass('d-none'); 
6451          $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim); 
6452
6453
6454    
6455  function verificaBotoesEmed(dadosOferta, verificaBolsa) { 
6456 
6457    var elementoPai = $('.codigoOferta_' + dadosOferta.codigoOferta + ' .ssp-ofertas-emed__card-info-investimento'); 
6458 
6459    //INICIO - Logica para Matricula 
6460 
6461    //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 
6462    var dadosAberturaMatricula = calculaTempoAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta); 
6463 
6464    var textoBotaoMatricula = ''; 
6465    var exibirBotaoMatricula = true; 
6466    var classeBotaoMatricula = ''; 
6467    var htmlBotaoMatricula = ''; 
6468 
6469    if (dadosAberturaMatricula.exibirContador) { 
6470        textoBotaoMatricula = dadosAberturaMatricula.textoContador; 
6471        exibirBotaoMatricula = false; 
6472
6473 
6474    //exibe o botão sem cronômetro 
6475    if (exibirBotaoMatricula) { 
6476        if ($('#manutencao-compra').val()) { 
6477            textoBotaoMatricula = $('#manutencao-compra').val(); 
6478            classeBotaoMatricula = 'disabled manutencao'; 
6479        } else { 
6480 
6481            if (dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAberturaMatricula.bolsaJaAberta) { 
6482                textoBotaoMatricula = 'Lista de espera'; 
6483                classeBotaoMatricula = 'btn-emed-lista-espera'; 
6484            } else { 
6485                classeBotaoMatricula = ''; 
6486                if (dadosAberturaMatricula.bolsaJaAberta || !dadosOferta.dataAberturaMatricula || dadosOferta.dataAberturaMatricula == '') { 
6487                    textoBotaoMatricula = 'Fazer matrícula'; 
6488 
6489                    if (dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030') { 
6490                        textoBotaoMatricula = 'Lista de espera'; 
6491                        classeBotaoMatricula = 'btn-emed-lista-espera'; 
6492
6493                } else { 
6494                    textoBotaoMatricula = 'Matrícula em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaMatricula, dadosOferta.horaAberturaBolsaOferta); 
6495
6496                if (!dadosAberturaMatricula.bolsaJaAberta) 
6497                    classeBotaoMatricula = 'disabled'; 
6498
6499
6500 
6501        criaBotaoInscreverEmed(dadosOferta, textoBotaoMatricula, classeBotaoMatricula, 'btnComprarEmed_' + dadosOferta.indice, elementoPai); 
6502 
6503    } else { //exibe o cronometro para matricula 
6504 
6505        //codigoOferta como index para usar o ofertasMap 
6506        htmlBotaoMatricula = '<button id="btnContadorComprar_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>' + textoBotaoMatricula + '</span></button>'; 
6507        elementoPai.append(htmlBotaoMatricula); 
6508
6509 
6510    //INICIO - Logica para Botão Bolsa 
6511 
6512    if (!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == '') { 
6513        dadosOferta.vagasBolsaOferta = false; 
6514        dadosOferta.botaoBolsaOferta = false; 
6515
6516 
6517    //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
6518    var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
6519 
6520    var textoBotaoBolsa = ''; 
6521    var classeBotaoBolsa = ''; 
6522    var exibirBotaoBolsa = false; 
6523    var exibirContadorBolsa = false; 
6524    var htmlBotaoBolsa = ''; 
6525 
6526    //verifica se o botão de concorrer a bolsa deve aparecer 
6527    //Oferta EMED possui bolsa apenas no 1o ano 
6528    if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAberturaBolsa.exibirContador) { 
6529        exibirBotaoBolsa = true; 
6530        if ($('#manutencao-bolsa').val()) { 
6531            classeBotaoBolsa = 'disabled manutencao'; 
6532            textoBotaoBolsa = $('#manutencao-bolsa').val(); 
6533        } else { 
6534            if (dadosOferta.vagasBolsaOferta) { 
6535                classeBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? '' : 'disabled'; 
6536                textoBotaoBolsa = dadosAberturaBolsa.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em ' + formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
6537            } else { 
6538                classeBotaoBolsa = 'disabled'; 
6539                textoBotaoBolsa = 'Bolsas de Estudo Esgotadas'; 
6540
6541
6542
6543 
6544    //Verifica se o botão do cronômetro deve aparecer 
6545    if (dadosAberturaBolsa.exibirContador) { 
6546        textoBotao = dadosAberturaBolsa.textoContador; 
6547        textoBotaoBolsa = dadosAberturaBolsa.textoContador; 
6548        exibirContadorBolsa = true; 
6549        exibirBotaoBolsa = false; 
6550
6551 
6552    if (exibirBotaoBolsa) { 
6553 
6554        if (!ofertasComBolsa) ofertasComBolsa = true; 
6555 
6556        criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa); 
6557 
6558    } else if (exibirContadorBolsa) { 
6559 
6560        if (!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true; 
6561 
6562        if (dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta) { 
6563            htmlBotaoBolsa = '<button id="btnContadorBolsa_' + dadosOferta.indice + '" data-index="' + dadosOferta.codigoOferta + '" class="btn btn-card-investimento --bolsas">Bolsa em <span>' + textoBotaoBolsa + '</span></button>'; 
6564            elementoPai.append(htmlBotaoBolsa); 
6565
6566
6567
6568    
6569   function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){ 
6570     criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai); 
6571     var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index); 
6572     btnInscr.removeClass(btnInscr.classList); 
6573     btnInscr.addClass('btn btn-lg btn-success w-100'); 
6574     btnInscr.attr('style', 'margin-top: 20px;font-weight:600'); 
6575      
6576     //Reposiciona o botao voltar 
6577     var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso'); 
6578     elementoPai.find('.ssp-btn-emed__voltar-curso').remove(); 
6579     elementoPai.append(btnVoltar); 
6580     btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index); 
6581     btnVoltar.click(() => { 
6582    	 $('[id^="myModal_"]').each(function(index,modal){ 
6583			modal.style.display = "none"; 
6584		}) 
6585	}); 
6586
6587    
6588   function preencheDadosEmedModal(oferta,$modal){ 
6589	   const parcelaEntrada = 1; 
6590	   $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
6591	   $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
6592	   $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
6593	   $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
6594
6595 
6596    
6597   function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){ 
6598      if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return; 
6599       var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>'; 
6600      elementoPai.append(htmlBotao); 
6601              
6602      if(!classeBotao.includes('disabled')){ 
6603       
6604        elementoPai.on("click", '#'+ idBotao, function(ev){ 
6605          ev.preventDefault(); 
6606          const _modal = $('#modalAntesCompraEmed_'+$(this).data('index')); 
6607          _modal.css('display','flex'); 
6608           
6609           
6610        }); 
6611         
6612
6613 
6614
6615    
6616   function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
6617      
6618     var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>'; 
6619     $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao); 
6620       
6621     if(!classeBotaoBolsa.includes('disabled')){ 
6622       // Associa o evento de clique no botão de bolsa 
6623       $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta)); 
6624       $('#btnBolsa_'+oferta.indice).attr('target', '_blank'); 
6625       //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;'); 
6626 
6627
6628
6629    
6630   function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
6631	    
6632	   const botao = $('<a>'+ textoBotaoBolsa +'</a>'); 
6633	   botao.attr('id', 'btnBolsa_' + oferta.indice); 
6634	   botao.attr('data-index', oferta.indice); 
6635	   botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || '')); 
6636	   botao.css('font-size', '14px'); 
6637	   botao.css('font-weight', '600'); 
6638	   botao.css('background-color', '#004EFF'); 
6639	   if(!classeBotaoBolsa.includes('disabled')){ 
6640		   if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){ 
6641			   botao.attr('data-espaco-ex', 'true'); 
6642			   botao.click((ev)=>{  
6643					 ev.preventDefault();  
6644			         $('#btnCompraLocal_'+oferta.indice).hide(); 
6645			         $('#btnBolsaLocal_'+oferta.indice).show(); 
6646			         const _modal = $('#modalAntesCompra_'+oferta.indice); 
6647			         _modal.css('display','flex'); 
6648				}); 
6649		   }else{ 
6650		   botao.attr('href', linkBolsa(oferta)); 
6651		   botao.attr('target', '_blank'); 
6652
6653
6654	    
6655	   return botao; 
6656    
6657
6658 
6659   function verificaBotaoBolsaSS(oferta, codigoUnidade){ 
6660 
6661      
6662     if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return; 
6663      
6664     if(!ehCursoTrampolim){ 
6665       $.ajax({ 
6666             url :  getUrlConsultaBolsa(oferta), 
6667             type : 'get', 
6668             dataType: 'json', 
6669             beforeSend: function (xhr) { 
6670             xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww=="); 
6671             }, 
6672         }) 
6673         .done(function(infosBolsa){ 
6674 
6675            
6676           if(infosBolsa != null && typeof infosBolsa !== 'undefined'){ 
6677        	    
6678             var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO; 
6679             var retornoOfertaBolsaSenac = infosBolsa.DATA[0]; 
6680			  
6681			 //Sobrescreve as flags de bolsa com o retorno do serviço SS 
6682             ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA; 
6683             ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA; 
6684			  
6685             var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa); 
6686              
6687             //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
6688             var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta); 
6689             var textoBotaoBolsa = ''; 
6690             var classeBotaoBolsa = ''; 
6691             var textoBotaoContadorBolsa = ''; 
6692             var exibirBotaoBolsa = false; 
6693             var exibirContadorBolsa = false; 
6694              
6695             //EMED 
6696           if(isEmed){ 
6697             verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true); 
6698             return; 
6699
6700              
6701             //Verifica o texto do botão de bolsa 
6702            if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val(); 
6703            else{ 
6704 
6705              if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){ 
6706                             
6707                if(dadosAberturaBolsa.bolsaJaAberta) 
6708                  textoBotaoBolsa = "Inscrever para bolsa de estudo"; 
6709                   
6710                else 
6711                  textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
6712 
6713                  if(!ofertasComBolsa){ ofertasComBolsa = true; 
6714
6715              }else 
6716                textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo"; 
6717
6718                 
6719             //verifica se o botão de concorrer a bolsa deve aparecer 
6720             if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){ 
6721                
6722               exibirBotaoBolsa = true; 
6723 
6724               if(!ofertasComBolsa) ofertasComBolsa = true; 
6725                
6726               if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){ 
6727                   classeBotaoBolsa = ''; 
6728               }else{ 
6729                   classeBotaoBolsa = 'disabled'; 
6730
6731
6732              
6733             //Verifica se o botão do cronômetro deve aparecer 
6734             if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){ 
6735               textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador; 
6736               exibirContadorBolsa = true; 
6737
6738              
6739             if(exibirBotaoBolsa) 
6740                $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) ) 
6741             else if(exibirContadorBolsa) 
6742                $('.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>') 
6743             else { 
6744                $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide() 
6745                $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
6746             }      
6747                                   
6748           }else{ 
6749             //EMED 
6750              if(isEmed){ 
6751                verificaBotoesEmed(oferta, false); 
6752
6753
6754 
6755           controlaPaginaBolsa() 
6756         }) 
6757         .fail(function(){  
6758           $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide() 
6759           $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
6760 
6761             //EMED 
6762           if(isEmed){ 
6763             verificaBotoesEmed(oferta, false); 
6764
6765         }); 
6766          
6767          
6768
6769      
6770
6771 
6772   function controlaPaginaBolsa(){ 
6773    if(ofertasComBolsa) 
6774      $("#ssp-abrir-pagina-bolsa").removeClass("d-none") 
6775    else 
6776      $("#ssp-abrir-pagina-bolsa").addClass("d-none") 
6777
6778 
6779   function associaEventoBtnFormaPagamento(i){ 
6780      var modal = document.getElementById("myModal_"+i); 
6781 
6782      var btn = document.getElementById("myBtn_"+i); 
6783 
6784      if(btn!=null){ 
6785         btn.onclick = function(ev) { 
6786             event.preventDefault() 
6787               
6788               $('#modalExtAluno_'+i).addClass('d-none'); 
6789                
6790             var elem = $(ev.target); 
6791             var _modal = document.getElementById( 
6792                 'myModal_'+elem.data('index')); 
6793             _modal.style.display = "block"; 
6794               $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none'); 
6795                
6796
6797
6798      
6799       
6800      
6801       
6802
6803    
6804  	    
6805   function actionBtnComprar(elem){ 
6806            
6807        // Montar object push - google tag manager - 3 
6808        ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento')) 
6809        sendEventEcommerce("select_item", ofertaSelecionada); 
6810        sendEventEcommerce("view_item", ofertaSelecionada); 
6811                
6812               //Verifica se deve exibir o modal com a localização 
6813               if(elem.attr('data-espaco-ex') == 'true'){ 
6814         $('#btnCompraLocal_'+elem.data('index')).show(); 
6815 
6816         //Limpa onclicks para nao repetir execucao 
6817         $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index')) 
6818         $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () { 
6819          // Montar object push - google tag manager - 4 
6820          sendEventEcommerce("add_to_cart", ofertaSelecionada); 
6821          if( elem.attr('data-destino-compra') != '2' ) 
6822            sendEventEcommerce("begin_checkout", ofertaSelecionada); 
6823         }) 
6824         $('#btnBolsaLocal_'+elem.data('index')).hide(); 
6825         const _modal = $('#modalAntesCompra_'+elem.data('index')); 
6826         _modal.css('display','flex'); 
6827               }else{ 
6828                 var urlCompra  = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento')); 
6829     
6830                 if( elem.attr('data-destino-compra') == '2' ){ 
6831                	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
6832	                  	 
6833                	 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);    
6834    
6835                 }else{ 
6836                	 window.open(urlCompra, '_blank'); 
6837
6838
6839 
6840        
6841                  
6842
6843    
6844   function associaEventoBtnComprar(i){ 
6845	   var btnComprar = document.getElementById("btnComprar_"+i); 
6846	    
6847	   if(btnComprar != null && !btnComprar.classList.contains('disabled')){ 
6848         btnComprar.onclick = function(ev) { 
6849            
6850               ev.preventDefault() 
6851               var elem = $(ev.target); 
6852               actionBtnComprar(elem); 
6853                
6854
6855
6856
6857    
6858   function associaEventoBtnComprarDentroFormaPgto(i){ 
6859	   var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i); 
6860	    
6861	   if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){ 
6862         btnComprarFormaPgto.onclick = function(ev) { 
6863               event.preventDefault() 
6864                 var elem =  $('#btnComprarFormaPgto_'+i); 
6865               actionBtnComprar(elem); 
6866
6867
6868
6869      
6870     function associaEventoBtnComprarConhecaDescontoOk(i){ 
6871       var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i); 
6872        
6873       if(btnComprarConhecaDescontoOk != null){ 
6874         btnComprarConhecaDescontoOk.onclick = function(ev) { 
6875                 event.preventDefault() 
6876               var elem = $(ev.target); 
6877                 actionBtnComprar(elem); 
6878
6879
6880
6881    
6882     function associaEventoBtnComprarConhecaDescontoNot(i){ 
6883       var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i); 
6884        
6885       if(btnComprarConhecaDescontoNot != null){ 
6886         btnComprarConhecaDescontoNot.onclick = function(ev) { 
6887                 event.preventDefault() 
6888                 var elem =  $(ev.target); 
6889                 actionBtnComprar(elem); 
6890
6891
6892
6893      
6894     function associaEventoBtnAlunoNao(i){ 
6895       var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i); 
6896        
6897       if(btnAlunoNao != null){ 
6898         btnAlunoNao.onclick = function(ev) { 
6899                 event.preventDefault() 
6900                 var elem =  $(ev.target); 
6901                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
6902                 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
6903                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
6904                 $('#msg-alunoNao_'+i).removeClass('d-none'); 
6905                 $('#msg-alunoSim_'+i).addClass('d-none');      
6906
6907
6908
6909        
6910     function associaEventoBtnAlunoSim(i){ 
6911       var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i); 
6912        
6913       if(btnAlunoSim != null){ 
6914         btnAlunoSim.onclick = function(ev) { 
6915                 event.preventDefault() 
6916                 var elem =  $(ev.target); 
6917                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
6918                 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
6919                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
6920                 $('#msg-alunoSim_'+i).removeClass('d-none'); 
6921                 $('#msg-alunoNao_'+i).addClass('d-none');              
6922                  
6923
6924
6925     }	    
6926      
6927     function associaEventoBtnConheca(i){ 
6928       var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i); 
6929        
6930       if(btnModalExtConheca != null){ 
6931         btnModalExtConheca.onclick = function(ev) { 
6932                 event.preventDefault(); 
6933                 var elem =  $(ev.target); 
6934                 elem.closest('.modal-extensao_content').addClass('d-none'); 
6935                 $('#modalExtAluno_'+i).removeClass('d-none'); 
6936                 $('#msg-alunoSim_'+i).addClass('d-none'); 
6937                 $('#msg-alunoNao_'+i).addClass('d-none'); 
6938                 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
6939                 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
6940 
6941
6942
6943
6944      
6945   function associaEventoBtnLocalRealizacao(i){ 
6946	   var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i); 
6947	    
6948	   if(btnLocalRealizacao!=null){ 
6949         btnLocalRealizacao.onclick = function(ev) { 
6950                 event.preventDefault(); 
6951               var elem = $(ev.target); 
6952               var _modal = document.getElementById( 
6953                   'modalLocalRealizacao_'+elem.data('index')); 
6954               _modal.style.display = "flex"; 
6955
6956
6957
6958 
6959   function associaEventosFecharModal(i){ 
6960 
6961      var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i); 
6962      var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0]; 
6963       var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0]; 
6964       var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0]; 
6965       var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0]; 
6966       var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i) 
6967 
6968       if(isEmed){ 
6969    	   var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i); 
6970   	      for (const val of closeModalFormaPagamento) {  
6971 
6972   	    	  val.onclick = function() { 
6973   	        	 $('[id^="myModal_"]').each(function(index,modal){ 
6974   	           	 	modal.style.display = "none"; 
6975   	        	 }); 
6976
6977   	      }; 
6978
6979        
6980	  //event close modal 
6981      for (const val of span) {  
6982 
6983    	  val.onclick = function() { 
6984        	 $('[id^="myModal_"]').each(function(index,modal){ 
6985           	 	modal.style.display = "none"; 
6986        	 }); 
6987
6988      }; 
6989   
6990      closeModalLocalRealizacao.onclick = function() { 
6991   
6992           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
6993             modal.style.display = "none"; 
6994              
6995           }); 
6996
6997 
6998       closeModalAntesCompra.onclick = function() { 
6999          
7000           $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7001             modal.style.display = "none"; 
7002           }); 
7003
7004 
7005       closeModalSelecionarOutro.onclick = function() { 
7006          
7007      $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7008          modal.style.display = "none"; 
7009        }); 
7010
7011          
7012       btnEntendiLocalRealizacao.onclick = function() { 
7013          
7014           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
7015             modal.style.display = "none"; 
7016           }); 
7017
7018		 
7019       if(closeModalBotaoBolsa != null){ 
7020	       closeModalBotaoBolsa.onclick = function() { 
7021	          
7022	         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7023	             modal.style.display = "none"; 
7024	           }); 
7025
7026
7027 
7028       // When the user clicks anywhere outside of the modal, close it 
7029       window.onclick = function(event) { 
7030   
7031         $('[id^="myModal_"]').each(function(index,_modal){ 
7032             if (event.target == _modal)  
7033              _modal.style.display = "none"; 
7034         }); 
7035         $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){ 
7036             if (event.target == _modal)  
7037              _modal.style.display = "none"; 
7038         }); 
7039          
7040         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){ 
7041             if (event.target == _modal)  
7042              _modal.style.display = "none"; 
7043         }); 
7044
7045
7046    
7047   function turmasIniciadas(dataInicioCurso){ 
7048     
7049      var hoje = new Date();  
7050      var dataInicioPartes = dataInicioCurso.split('/');  
7051      var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds()); 
7052 
7053      return dataInicioCursoOferta.getTime() <= hoje.getTime(); 
7054
7055    
7056 
7057   function concatSTR(str1, str2, separador){ 
7058   
7059     if(str2){ 
7060   
7061       return str1+separador+str2; 
7062
7063     return str1; 
7064
7065    
7066   //Formata exibicao de datas conforme especificacao GCR 
7067   function formataPeriodo(dataInicio, dataFim){ 
7068           
7069    // Se as datas são iguais, retornar apenas a data final 
7070    if (dataInicio === dataFim) { 
7071      return dataFim; 
7072
7073 
7074    var dtInicioPartes = dataInicio.split('/'); 
7075    var dtFimPartes = dataFim.split('/'); 
7076       
7077    //Não exibir o número zero antes dos números e o dia 1 como 1º 
7078    var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim(); 
7079    var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim(); 
7080 
7081    //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020 
7082    if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){ 
7083        
7084      dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim()); 
7085         
7086    //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020 
7087    if(dtInicioPartes[1].trim() == dtFimPartes[1].trim()) 
7088      dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())); 
7089
7090     
7091    return dInicioFormatada + ' a ' + dFimFormatada; 
7092
7093    
7094  //Decrementa os contadores de abertudas de bolsa 
7095   function atualizaTempoAberturasBolsas() { 
7096   
7097	  var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]'); 
7098	   
7099    btnsContador.each(function() { 
7100       
7101      var index = $(this).data('index'); 
7102      var elId = $(this).attr('id'); 
7103      var btnContent = $(this).parent('.ssp-btn-group__content'); 
7104       
7105      if(isEmed){ 
7106     		//EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas 
7107    	  var dadosAberturaBolsa = calculaTempoAberturaBolsa((elId.indexOf('btnContadorBolsa') >= 0) ? ofertasMap.get('' +index).dataAberturaBolsaOferta : ofertasMap.get('' +index).dataAberturaMatricula, ofertasMap.get('' + index).horaAberturaBolsaOferta); 
7108      }else{ 
7109          	//calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
7110      var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta); 
7111
7112       
7113      $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds); 
7114       
7115      //Se esgotou o contador 
7116      if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){ 
7117         
7118        //remove o contador 
7119        $(this).remove(); 
7120         
7121        //Habilitar inscrição EMED 
7122        if(isEmed){ 
7123          var ofertaEmed = ofertasMap.get('' +index); 
7124          var btnIndex = elId.slice(elId.indexOf('_')+1); 
7125          var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento'); 
7126         
7127          if(elId.indexOf('btnContadorBolsa') >= 0){ 
7128              if($('#manutencao-bolsa').val())   
7129                criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao'); 
7130              else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true") 
7131                criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', ''); 
7132              else 
7133                criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled'); 
7134          }else if(elId.indexOf('btnContadorComprar') >= 0){ 
7135	       		 
7136            var textoBotao, classeBotao; 
7137           
7138            textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula'; 
7139            classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : ''; 
7140 
7141            //Garante a ordenação dos botoes (matricula depois bolsa) 
7142            const botaoBolsa = document.getElementById('btnBolsa_' + btnIndex) || document.getElementById('btnContadorBolsa_' + btnIndex); 
7143             
7144            botaoBolsa?.remove(); // Remove se existir 
7145 
7146            criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai); 
7147             
7148            if (botaoBolsa) { 
7149              elementoPai.append(botaoBolsa); 
7150
7151             
7152            //Altera o botao do modal de pagamento 
7153            var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento'); 
7154            var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex); 
7155            if(btnModal){ 
7156              btnModal.remove();					   
7157              criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex); 
7158              preencheDadosEmedModal(ofertaEmed,modal); 
7159
7160 
7161 
7162          }	         
7163           
7164        }else{ 
7165         
7166	        //Checa as condições das vagas do botão de bolsa 
7167          var btnBolsaHTML = null; 
7168          if($('#manutencao-bolsa').val())   
7169            btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao'); 
7170	        else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true") 
7171        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo'); 
7172	        else 
7173        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled'); 
7174	         
7175            $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML); 
7176	         
7177 
7178
7179
7180       
7181    }); 
7182    
7183
7184    
7185   // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos 
7186    function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){ 
7187       
7188        var dadosAberturaBolsa = { 
7189              days : '', 
7190            hours : '', 
7191            minutes : '', 
7192            seconds : '', 
7193            bolsaJaAberta: false, 
7194            exibirContador: false, 
7195            textoContador: '' 
7196          }; 
7197       
7198      if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0) 
7199         return dadosAberturaBolsa; 
7200       
7201      var now = todayG; 
7202      var dia = now.getDate(); 
7203      var horarioDia = now.getHours(); 
7204         
7205      var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa); 
7206       
7207      //console.log('tempo restante '+tempoRestante); 
7208       
7209      var diaAberturaBolsa = dataAberturaBolsa.split('-')[2]; 
7210     
7211      var delta = tempoRestante / 1000; 
7212       
7213      var days = Math.floor(delta / 86400); 
7214       
7215      delta -= days * 86400; 
7216       
7217      var hours = Math.floor(delta / 3600) % 24; 
7218      delta -= hours * 3600; 
7219       
7220      var minutes = Math.floor(delta / 60) % 60; 
7221      delta -= minutes * 60; 
7222       
7223      var seconds = Math.floor(delta % 60); 
7224       
7225      //Zerar contador para data que ja passou 
7226      if(days < 0){ 
7227          dadosAberturaBolsa.days = 0; 
7228          dadosAberturaBolsa.hours = '00'; 
7229          dadosAberturaBolsa.minutes = '00'; 
7230          dadosAberturaBolsa.seconds = '00'; 
7231      }else{ 
7232          dadosAberturaBolsa.days = days; 
7233          dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours; 
7234          dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes; 
7235          dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds; 
7236
7237 
7238      dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0; 
7239      var horaExibeContador = 8; 
7240      if(!isEmed && botaoBolsa == false){ 
7241    	  dadosAberturaBolsa.exibirContador = false; 
7242      }else{ 
7243          dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia); 
7244          dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds; 
7245
7246      dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0; 
7247       
7248      return dadosAberturaBolsa; 
7249   
7250
7251    
7252   // Verifica se uma oferrta já chegou sua data de abertura 
7253   function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
7254     // console.log(dataAberturaBolsa); 
7255     // console.log(horaAberturaBolsa); 
7256       
7257      //var today = new Date(); 
7258       
7259       
7260      //console.log( "TodayG "+ todayG); 
7261       
7262      //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30 
7263      var partesHora = horaAberturaBolsa.split('h'); 
7264       
7265      var partesHora = partesHora.filter(function (el) { 
7266        return el != ""; 
7267      }); 
7268       
7269      //formato 9h 
7270      if(partesHora.length == 1) 
7271        var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00"); 
7272   
7273      else{ 
7274         
7275        //format 9h3 
7276        if(partesHora[1].length == 1) 
7277          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0'); 
7278           
7279        //formato 9h30 
7280        else 
7281          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]); 
7282
7283        
7284     // console.log(aberturaBolsa); 
7285      return aberturaBolsa - todayG; 
7286
7287    
7288   function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
7289      var dataPartes = dataAberturaBolsa.split('-'); 
7290       
7291      return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas'; 
7292       
7293
7294   
7295   function formataValor(valor){ 
7296       
7297      if(!valor.toString().includes(".")){ 
7298        valor = parseFloat(valor).toLocaleString('pt-BR')+",00"; 
7299      }else{ 
7300         valor = parseFloat(valor).toLocaleString('pt-BR'); 
7301          
7302         if(valor.split(",").length == 2){ 
7303            
7304           if(valor.split(",")[1].length == 1) 
7305              valor += "0"; 
7306            
7307         }else 
7308           valor += ",00"; 
7309
7310       
7311      return valor; 
7312
7313 
7314  function ajustarCasasDecimaisSemArredondar(numero, casas) { 
7315    const str = numero + '' 
7316    const arr = str.split('.') 
7317    return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0')) 
7318
7319 
7320  function possuiCriteriosDesconto2022(dt) { 
7321    return dt.substring(dt.lastIndexOf('/') + 1) >= 2022 
7322      && ( 
7323        $('[name="tipoCurso"]').val() == 'livre' 
7324        || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
7325        || $('[name="tipoCurso"]').val() == 'extensao' 
7326
7327
7328 
7329  function strToFloat(str) { 
7330    const separator = str.includes(',') ? ',' : '.' 
7331 
7332    const numArr = str.split(separator) 
7333    const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.') 
7334    const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : '' 
7335    return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0')) 
7336
7337 
7338      /** 
7339     * Compare date formatted as "YYYY-MM-DD" with the current date 
7340     * Return: 
7341     *  -1  if dateStr < today 
7342     *   0  if dateStr == today 
7343     *   1  if dateStr > today 
7344     */ 
7345    function compareDates(dateStr1, dateStr2) { 
7346 
7347      const convertDate = (dateStr) => { 
7348        if (typeof dateStr !== 'string') throw new TypeError('dateStr must be a string with format YYYY-MM-DD'); 
7349        const match = dateStr.match(/^(\d{4})-(\d{2})-(\d{2})$/); 
7350        if (!match) throw new Error('invalid format. Use YYYY-MM-DD'); 
7351        const [, yy, mm, dd] = match; 
7352        return Date.UTC(Number(yy), Number(mm) - 1, Number(dd)); 
7353
7354 
7355      const date1 = convertDate(dateStr1); 
7356      const date2 = convertDate(dateStr2); 
7357      if (date1 < date2) return -1; 
7358      if (date1 > date2) return 1; 
7359      return 0; 
7360
7361 
7362 
7363  function possuiMensalidadeCampanha(oferta) { 
7364     
7365    const dataInicio = oferta.dataInicio.split('/').reverse().join('-'); 
7366    const precoParcelaCartoes = parseFloat(oferta.precoParcelaCartoes.replace(',','.')); 
7367    const precoParcelaBoleto = parseFloat(oferta.precoParcelaBoleto.replace(',','.')); 
7368     
7369    if(!oferta.precoVendaMaxParcelaOferta  
7370    || (oferta.precoVendaMaxParcelaOferta != 99 && precoParcelaCartoes != 99 && precoParcelaBoleto != 99 && compareDates(dataInicio, '2025-12-31') <= 0) 
7371    || (oferta.precoVendaMaxParcelaOferta != 109 && precoParcelaCartoes != 109 && precoParcelaBoleto != 109 && compareDates(dataInicio, '2026-01-01') >= 0) 
7372
7373      return false 
7374 
7375    if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio') 
7376      return true 
7377 
7378    if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
7379      return true 
7380 
7381    if($('[name="modalidades"]').val() == 'qualificacao-profissional') 
7382      return true 
7383     
7384    return false 
7385
7386    
7387  function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) { 
7388    let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
7389    temDesconto = temDesconto && !possuiMensalidadeCampanha(oferta) 
7390 
7391    // Define o texto singular ou plural 
7392    var textoHorario = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
7393        "Horário e dia da aula:" : 
7394        "Horário e dias das aulas:"; 
7395     
7396    const btnLocalReal = function(oferta){ 
7397 
7398      // NOVA LÓGICA: Define o texto (Singular/Plural) 
7399      var textoOndeAcontece = verificaTerminoDia(oferta.dataInicio, oferta.dataFim) ? 
7400            "Onde a aula irá acontecer?" : 
7401            "Onde as aulas vão acontecer?"; 
7402       
7403          var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido))  ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`; 
7404       
7405      btn += (localLivreOnline(oferta.localEspacoExterno)) ? 
7406            `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#"> 
7407            <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>` 
7408            : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#"> 
7409            <i class="fas fa-user"></i>` + textoOndeAcontece + `</a>`; 
7410       
7411        btn += `</div>`; 
7412         
7413      return btn; 
7414     
7415
7416 
7417    // Card Oferta 
7418     
7419    let result = ` 
7420        <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
7421 
7422          <div class="ssp-card-oferta-curso"> 
7423 
7424            <div class="content-data-dias"> 
7425 
7426              <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none"> 
7427                <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> 
7428              </div> 
7429 
7430 
7431              <div> 
7432                <small class="ssp-card-oferta-curso__title-item">Período:</small> 
7433                <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6> 
7434	          </div> 
7435	 
7436              <div class="content-horario-dias-semana"> 
7437	 
7438                <div class="horario"> 
7439                  <small class="ssp-card-oferta-curso__title-item">` + textoHorario + `</small> 
7440                </div> ` + 
7441	 
7442                `<div class="ssp-card-oferta-curso__dia-hora_content"> 
7443                  ` + diasSemanaHTML + ` 
7444	              </div> 
7445	 
7446	          </div> 
7447	 
7448      ` + btnLocalReal(oferta); 
7449 
7450      result = result + ` 
7451        </div> 
7452
7453      
7454      if(excecaoCursoGratuito(oferta)){ 
7455        result += montaRestanteHTMLexcecaoCursoGratuito(index,oferta); 
7456   	  	return result; 
7457
7458       
7459      //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 
7460      //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498 
7461      const estaSemValorOferta =   oferta.botaoCompraOferta == ''  
7462                          || oferta.botaoCompraOferta == 'false'  
7463                          || !oferta.precoVendaOferta  
7464                          || !oferta.precoCheioOferta  
7465                          || !oferta.precoVendaMaxParcelaOferta 
7466                          || strToFloat(oferta.precoVendaOferta) == 0 
7467                          || strToFloat(oferta.precoCheioOferta)  == 0 
7468                          || strToFloat(oferta.precoVendaMaxParcelaOferta)  == 0 
7469      
7470      //Trecho inicial do Bolsa de estudo 
7471      result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `"> 
7472                  <div class="ssp-card-oferta__info-turma-content"> 
7473                    <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6> 
7474                  </div> 
7475                  <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>    
7476                </div>                
7477
7478     
7479    if(estaSemValorOferta) { 
7480      result = result + ` 
7481      		<div class="content-buttons hide"> 
7482			  </div> 
7483
7484      return result; 
7485
7486 
7487	 
7488    //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra" 
7489    result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `"> 
7490                  <div class="ou-separator-desconto">Ou</div> 
7491                  <button type="button" class="btn-show-price"> 
7492                    <p>Saiba mais sobre:</p> 
7493                    <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')"> 
7494                      <i class="fas fa-money-bill"></i> 
7495                      <span>Valores para compra</span> 
7496                    </div> 
7497                  </button> 
7498                </div> 
7499
7500 
7501    result = result + ` 
7502          <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `"> 
7503
7504         
7505    if( temDesconto && !ehCursoTrampolim ) { 
7506      result = result + ` 
7507            <div class="ssp-card-oferta__info-turma-content"> 
7508              <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6> 
7509            </div> 
7510	 
7511            <div class="block-valor-desconto"> 
7512	          	 
7513            <div class="tag-label-desconto"> 
7514              <small class="ssp-card-oferta-curso__title-item">Valor com </small> 
7515              <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span> 
7516	      </div> 
7517	 
7518            <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> 
7519 
7520            <div class="ssp-card-oferta-curso__desconto-content"> 
7521              <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p> 
7522              <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p> 
7523            </div> 
7524
7525           
7526      if($('[name="tipoCurso"]').val() == 'extensao') { 
7527        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>` 
7528      } else { 
7529        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>` 
7530
7531   
7532      result = result + ` 
7533          <div class="ou-separator-desconto">Ou</div> 
7534       
7535          <div class="block-valor-total"> 
7536 
7537            <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small> 
7538 
7539            <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
7540 
7541            <div class="ssp-card-oferta-curso__desconto-content"> 
7542              <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p> 
7543            </div> 
7544             
7545          </div> 
7546
7547                 		 }else{ 
7548                 			 
7549      // itens que são diferentes entre técnico e livres comprado a extensão 
7550      if($('[name="tipoCurso"]').val() == 'extensao'){ 
7551        result = result + ` 
7552 
7553          <div class="block-valor-total"> 
7554 
7555            <div class="investimento" id="container_investimento_` + index + `"> 
7556 
7557              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
7558 
7559              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6> 
7560 
7561              <div class="ssp-card-oferta-curso__desconto-content"> 
7562                <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p> 
7563              </div> 
7564 
7565            </div>   
7566 
7567          </div> 
7568
7569      } else { 
7570        result = result + ` 
7571          <div class="block-valor-total"> 
7572            <div class="investimento" id="container_investimento_` + index + `"> 
7573
7574   
7575        // Não mostrar mensagem de 30% de desconto em casos especificos 
7576        if(temDesconto){ 
7577          result = result + ` 
7578              <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small> 
7579
7580
7581   
7582        if(oferta.precoCheioOferta == oferta.precoVendaOferta) {        
7583          result = result + ` 
7584              <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small> 
7585              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
7586 
7587              <div class="ssp-card-oferta-curso__desconto-content"> 
7588                <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
7589              </div> 
7590            </div> 
7591            </div> 
7592          `   
7593        } else { 
7594          result = result + ` 
7595              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
7596              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
7597 
7598              <div class="ssp-card-oferta-curso__desconto-content"> 
7599                <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p> 
7600                <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
7601              </div> 
7602            </div> 
7603            </div> 
7604          `    
7605
7606
7607
7608 
7609    let dataBtnComprar = getObjBtnComprar(oferta); 
7610     
7611    // itens que são diferentes entre técnico e livres comprado a extensão   
7612    result = result + ` 
7613 
7614              <div class="ssp-card-oferta-curso__formas-pagamento-content"  id="container_forma_pgto_` + index + `"> 
7615                 
7616                <span>Saiba mais sobre:</span> 
7617 
7618                <div> 
7619                  <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i> 
7620                  <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> 
7621                </div> 
7622 
7623              </div> 
7624 
7625            <div class="content-buttons"> 
7626 
7627              <div class="ssp-btn-group__content botoes-oferta-container_` + index + `"> 
7628 
7629				<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> 
7630 
7631              </div> 
7632 
7633            </div> 
7634 
7635          </div> 
7636 
7637        </div> 
7638
7639 
7640    return result 
7641
7642   
7643   function montaRestanteHTMLexcecaoCursoGratuito(index, oferta){ 
7644  		  
7645	  	  let dataBtnComprarExcecao = getObjBtnComprar(oferta);	   
7646	  	  let resultModalidade =  
7647
7648	  	      <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `"> 
7649	  	      <div class="ssp-card-oferta__info-turma-content"> 
7650	           	 <h6 class="ssp-card-oferta__info-turma">Curso gratuito</h6> 
7651	        	  </div> 
7652	  	       <div class="block-valor-total"> 
7653	  	        <div class="investimento" id="container_investimento_` + index + `"> 
7654	  	           <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>R$ 0,00</h6> 
7655	  	        </div> 
7656	  	        </div> 
7657	  	        <div class="content-buttons"> 
7658	  	 
7659	  	          <div class="ssp-btn-group__content botoes-oferta-container_` + index + `"> 
7660	  	 
7661	  	            <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> 
7662	  	 
7663	  	          </div> 
7664	  	 
7665	  	        </div> 
7666	  	        </div> 
7667	  	        </div> 
7668
7669
7670	  	return resultModalidade;	   
7671  	   
7672
7673 
7674   
7675  var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">' 
7676     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">' 
7677     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">' 
7678 
7679    htmlModalLocalRealizacao += '{tituloLocalRealizacao}' 
7680          
7681    htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
7682    htmlModalLocalRealizacao += '</div>' 
7683    htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">' 
7684    htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
7685    htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
7686    htmlModalLocalRealizacao += '<address>' 
7687    htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
7688    htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
7689    htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
7690    htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
7691    htmlModalLocalRealizacao += '</address>' 
7692    htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
7693    htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>' 
7694    htmlModalLocalRealizacao +='</div>' 
7695    htmlModalLocalRealizacao +='</div>' 
7696    htmlModalLocalRealizacao +='</div>' 
7697    htmlModalLocalRealizacao +='</div>'; 
7698   
7699    var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">' 
7700      htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">' 
7701    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">' 
7702    htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>' 
7703    htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
7704    htmlModalAntesCompra += '</div>' 
7705    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">' 
7706    htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
7707    htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
7708    htmlModalAntesCompra += '<address>' 
7709    htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
7710    htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
7711    htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
7712    htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
7713    htmlModalAntesCompra += '</address>' 
7714    htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
7715    htmlModalAntesCompra += '{componentBuyConfirmation}' 
7716    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>' 
7717    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>' 
7718    htmlModalAntesCompra +='</div>' 
7719    htmlModalAntesCompra +='</div>' 
7720    htmlModalAntesCompra +='</div>' 
7721    htmlModalAntesCompra +='</div>'; 
7722          
7723   var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">' 
7724   	 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'  
7725     htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>' 
7726     htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>' 
7727     htmlSlickAreaDiasSemana += '</p>' 
7728   	 htmlSlickAreaDiasSemana += '</div>'; 
7729    	         
7730      
7731  //Montar object push - google tag manager - 5 
7732  function criaItensEcommerce(ofertas){ 
7733 
7734    let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome 
7735 
7736    let dadosCurso = { 
7737      //Pegar do freemarker  
7738        tituloComercial : $('[name="tituloComercial"]').val(), 
7739        tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(), 
7740        formato : $('[name="formato"]').data("formato") 
7741
7742 
7743    let ecommerceObject = { 
7744 
7745      item_id: "", //codOferta - oferta, 
7746			item_name: "", //Nome do curso - curso, 
7747			affiliation: "", //nome da unidade - oferta, 
7748			currency: "BRL", //Moeda - "BRL", 
7749			discount: "", //desconto - oferta, 
7750			index: "", //indice da lista - i, 
7751			item_brand: "Senac SP", //"Senac SP", 
7752			item_category: "", //categoria do curso - curso, 
7753			item_list_id: "", //"60", 
7754			item_list_name: "", //"São Carlos" - Oferta, 
7755			item_variant: "", //modalidade - curso, 
7756			price: "", //preco cheio - oferta, 
7757			quantity: 1 
7758 
7759
7760 
7761    let itensEcommerce = new Map(); 
7762 
7763    for(var i = 0; i < ofertas.length; i++){ 
7764 
7765      itensEcommerce.set(ofertas[i].codigoOferta, { 
7766 
7767            item_id: ofertas[i].codigoOferta, //codOferta - oferta, 
7768            item_name: dadosCurso.tituloComercial, //Nome do curso - curso, 
7769            affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta, 
7770            currency: "BRL", //Moeda - "BRL", 
7771            discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta, 
7772            index: i, //indice da lista - i, 
7773            item_brand: "Senac SP", //"Senac SP", 
7774            item_category: dadosCurso.tipoCurso, //categoria do curso - curso, 
7775            item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60", 
7776            item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta, 
7777            item_variant: dadosCurso.formato, //modalidade - curso, 
7778            price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta, 
7779            quantity: 1 
7780 
7781
7782
7783
7784 
7785    return itensEcommerce; 
7786
7787   
7788  //EMED - ELEMENTOS DINAMICOS 
7789  const htmlSlickAreaEmed = function(oferta){ 
7790    var btnid = 'myBtn_' + oferta.indice; 
7791    const diasHorarios = function(oferta){ 
7792      return oferta.diasDaSemanaOferta.join(', ').toLowerCase();  
7793       
7794
7795 
7796 
7797    return ` 
7798        <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `"> 
7799   
7800        <div class="ssp-ofertas-emed__card-info-turma"> 
7801   
7802            <div class="item-content"> 
7803                <i class="fas fa-calendar-alt calendar-icon-turma"></i> 
7804                <p class="title-turma">`+ oferta.titulo +`</p> 
7805                <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span> 
7806            </div> 
7807   
7808            <div class="content-previsao-inicio-termino"> 
7809   
7810                <div class="item-content"> 
7811                    <span class="text-default">Previsão de início:</span> 
7812                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span> 
7813                </div> 
7814   
7815                <div class="item-divisor"></div> 
7816   
7817                <div class="item-content"> 
7818                    <span class="text-default">Previsão de término:</span> 
7819                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span> 
7820                </div> 
7821   
7822            </div> 
7823   
7824   
7825            <div class="item-divisor"></div> 
7826   
7827            <div class="item-content"> 
7828                <span class="text-default">Dias e horários das aulas:</span> 
7829                <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span> 
7830                <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span> 
7831            </div> 
7832             
7833        </div> 
7834   
7835        <div class="ssp-ofertas-emed__card-info-investimento"> 
7836            <p class="title-investimento">Investimento anual:</p> 
7837   
7838            <div class="item-content-investimento"> 
7839                <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span> 
7840                <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span> 
7841            </div> 
7842   
7843            <div class="item-content-investimento"> 
7844                <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p> 
7845            </div> 
7846   
7847            <div class="item-content-investimento"> 
7848                <i class="fas fa-credit-card icon-cartao-credito"></i> 
7849                <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a> 
7850            </div> 
7851               
7852        </div> 
7853   
7854    </div> 
7855 
7856    `; 
7857
7858   
7859    
7860   function loadCursosVocePodeGostar(){ 
7861       
7862    if(isEmed){ 
7863      var url = urlSearchCursosPodeGostarEmed 
7864        .replace('\{groupId\}', groupId) 
7865        .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val()) 
7866        .replace('\{limit\}', 12) 
7867        .replace('\{articleId\}', $('[name="articleId"]').val()); 
7868    }else{ 
7869      var url = urlSearchCursosPodeGostar 
7870        .replace('\{companyId\}',themeDisplay.getCompanyId()) 
7871        .replace('\{groupId\}', groupId) 
7872        .replace('\{userId\}',themeDisplay.getUserId()) 
7873        .replace('\{articleId\}',$('[name="articleId"]').val()) 
7874        .replace('\{limit\}', 12); 
7875
7876 
7877   
7878       $.ajax({ 
7879           url :  url, 
7880           type : 'get', 
7881           beforeSend: function(){ 
7882             loading('#slider-curso'); 
7883
7884       }) 
7885       .done(function(cursos){ 
7886          
7887         if(cursos.length > 0){ 
7888   
7889           cursos = JSON.parse(cursos); 
7890            
7891           if(isEmed) cursos = cursos['cursos']; 
7892            
7893           if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none'); 
7894           else { 
7895             $('#section-cursos-voce-pode-gostar').addClass('d-none'); 
7896             return; 
7897
7898            
7899           var articles = []; 
7900            
7901            $.each(cursos, function(k, c){ 
7902             articles.push(c.articleId); 
7903            }); 
7904             
7905           //Verifica a situação dos botoes de inscrições e bolsa 
7906          $.ajax({ 
7907                url :  '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','), 
7908                type : 'get' 
7909            })  
7910            .done(function(infoBotoes){ 
7911               
7912              if(infoBotoes.length > 0) { 
7913                 
7914                  infoBotoes = JSON.parse(infoBotoes); 
7915                   
7916                  $('#slider-curso').empty(); 
7917   
7918                      $.each(cursos, function(k, c){ 
7919                    	  $('#slider-curso').append(buildCardCurso(c, infoBotoes)); 
7920         
7921                      }); 
7922         
7923                      $('#slider-curso').addClass( 
7924                      'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar'); 
7925         
7926                      sliderCurso('.slick-area-cursos-pode-gostar'); 
7927
7928            }); 
7929
7930   
7931        }) 
7932        .fail(function(jqXHR, textStatus, msg){ 
7933            // alert(msg); 
7934        }); 
7935   
7936
7937   
7938   /* 
7939    * Armazena a navegação em cookies, se habilitado 
7940    */ 
7941  $(document).on("click", ".ck-curso", function() { 
7942      
7943  //Verifica se o cookie está habilitado 
7944   if(getCookie('portalSenacCookie') != null){ 
7945      
7946    var articleId = $(this).data('ck'); 
7947    manageCookieArray('ck-cursos', articleId); 
7948        
7949
7950   
7951   }); 
7952   
7953   
7954 
7955   
7956   
7957  $(function(){ 
7958   
7959   if($('#unidades-ofertas').find('option').length ==0){ 
7960   
7961     $('.ssp-container-selecione-unidade').addClass('d-none') 
7962   
7963
7964   
7965  }); 
7966   
7967     function avisoNovasTurmas(){ 
7968        
7969       
7970       window.event.preventDefault() 
7971         
7972       //var unidadeSelecionada = $('#select-registro-interesse').val(); 
7973       //este select tem 2 valores separados por @ -> categoryId@codUnidade 
7974      //  var unidadeSelecionada = $('#unidades-ofertas').val(); 
7975        
7976       //Código fixo quando Senac Ao Vivo 
7977       var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1]; 
7978         
7979      //  if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){ 
7980          
7981         //Se ja tiver logado , redireciona para o registro 
7982        if (!Liferay.ThemeDisplay.isSignedIn()) { 
7983          sspRequireAuthentication('#btn-aviso-novas-turmas'); 
7984        } else { 
7985            abrirModalRegistroInteresse(codUnidadeSelectRegInt); 
7986            verificaBtnEnviarRegistroInteresseAtivo(); 
7987
7988          
7989         window.onclick = function(event) { 
7990            $('[id="modal-registro-interesse"]').each(function(index,_modal){ 
7991                if (event.target == _modal) { 
7992                   $('#modal-registro-interesse').addClass('d-none'); 
7993                   $("body").removeClass("overflow-hidden") 
7994
7995            }); 
7996
7997              
7998      //  } 
7999
8000      
8001   
8002  function registroSelecionaTodosDias(){ 
8003     
8004    if($(this).hasClass('ssp-week-day-active')){ 
8005      $(this).removeClass('ssp-week-day-active') 
8006       $('.ssp-week-day').removeClass('ssp-week-day-active') 
8007    }else{ 
8008      $(this).addClass('ssp-week-day-active') 
8009      $('.ssp-week-day').addClass('ssp-week-day-active') 
8010
8011        
8012    verificaBtnEnviarRegistroInteresseAtivo(); 
8013
8014   
8015  function registroSelecionaTodosPeriodos(){ 
8016     
8017    if($(this).is(':checked')){ 
8018      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true); 
8019    }else{ 
8020      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false); 
8021
8022     
8023    verificaBtnEnviarRegistroInteresseAtivo(); 
8024
8025  $('.turmas-registro-interesse input[type=checkbox]').on('click', function() { 
8026    var $selecionado = $(this); 
8027    if ($selecionado.is(":checked")) { 
8028      $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false); 
8029      $selecionado.prop("checked", true); 
8030    } else { 
8031      $selecionado.prop("checked", false); 
8032
8033}); 
8034     function enviarRegistroInteresse(){ 
8035       
8036	  if (!Liferay.ThemeDisplay.isSignedIn()) { 
8037		  //Sem o cookie refaz o login 
8038		  $('#modal-registro-interesse').addClass('d-none'); 
8039	      $('body').removeClass('overflow-hidden'); 
8040	      $('#modal-login').removeClass('d-none'); 
8041	      sspRequireAuthentication('#btn-aviso-novas-turmas'); 
8042        return; 
8043
8044 
8045      loadingSubmitButton('#enviar-registro-interesse-btn'); 
8046 
8047      sspGetLoggedUser().then(function(user) { 
8048 
8049          var codigoUsr = (user && user.codPessoa) ? user.codPessoa : null; 
8050 
8051          if (codigoUsr == null) { 
8052              console.log('Campo personalizado codPessoa não encontrado no usuário logado.', user); 
8053              cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
8054              $('#modal-registro-interesse-erro').removeClass('d-none'); 
8055              return; 
8056
8057	   
8058      var codigoFT = $('[name="codigoFT"]').val(); 
8059       
8060      var unidades = new Set(); 
8061       
8062      var diasSemana = ''; 
8063       
8064      //Senac ao vivo nao tem opçao de dias da semana nem unidades 
8065      if(isAoVivo){ 
8066        unidades.add(codUnidadeSenacAoVivo); 
8067      }else{ 
8068          $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
8069              if($(this).hasClass('ssp-week-day-active')){ 
8070                diasSemana += $(this).text()+','; 
8071
8072          }); 
8073             
8074          if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1); 
8075           
8076          $.each($('.ssp-card-registro-interesse__select'), function(k,item){ 
8077               
8078            unidades.add(item.value); 
8079          }); 
8080
8081 
8082       
8083      var periodos = ''; 
8084       
8085      $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
8086        if($(this).is(':checked')){ 
8087          periodos += $(this).val()+','; 
8088
8089      }); 
8090 
8091      var turmas = ''; 
8092 
8093      $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) { 
8094          if ($(this).is(':checked')) { 
8095              turmas += $(this).val() + ','; 
8096
8097      }); 
8098 
8099      if (periodos.length > 0) periodos = periodos.slice(0, -1); 
8100      if (turmas.length > 0) turmas = turmas.slice(0, -1); 
8101 
8102      var usuarioNotificado = false; 
8103 
8104      unidades.forEach(function(codigoUnidade) { 
8105          var data = { 
8106              codigoFT: codigoFT, 
8107              codigo: codigoUsr, 
8108              diasSemana: diasSemana, 
8109              periodos: periodos, 
8110              turmas, turmas, 
8111              codigoUnidade: codigoUnidade, 
8112              interesseBolsa: 'N', 
8113              isEmed: isEmed ? 'S' : 'N' 
8114          }; 
8115 
8116          const url = urlRegistroInteresse; 
8117 
8118          $.ajax({ 
8119              url: url, 
8120              method: 'POST', 
8121              data: JSON.stringify(data), 
8122              headers: { 
8123                  'Accept': 'application/json', 
8124                  'Content-Type': 'application/json' 
8125              }, 
8126          }).done( 
8127              function(retornoData) { 
8128 
8129                  var retornoData = JSON.stringify(retornoData); 
8130 
8131                  if (retornoData.length > 0) { 
8132             
8133                    cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
8134                     
8135                      var retorno = JSON.parse(retornoData); 
8136 
8137                      if (retorno.status == 200 || retorno.status == 201) { 
8138               
8139                        //Evita que o usuário recebe um email para cada unidade de interesse 
8140                        if(usuarioNotificado) return; 
8141                         
8142                          //Mensagem de sucesso registro interesse 
8143                          $('#modal-registro-interesse-sucesso').removeClass('d-none'); 
8144 
8145                          var prefixUrl = themeDisplay.getLayoutRelativeURL(); 
8146 
8147                          if (prefixUrl.indexOf('staging/') > 1) 
8148                              prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8); 
8149                          else 
8150                              prefixUrl = HOST; 
8151 
8152                          $('#btn-voltar-home').attr('href', prefixUrl); 
8153 
8154                          //Busca os dados do nome do usuário logado 
8155                          var username = user.givenName || (user.name ? user.name.split(' ')[0] : ''); 
8156 
8157                          //Prioridade para nomeSocial 
8158                          if (user.socialName && user.socialName !== 'null' && user.socialName.length > 0) { 
8159                              username = user.socialName; 
8160
8161 
8162                          username = username.replace(/['"]+/g, ''); 
8163						   
8164                          var unidadesSel = getUnidadesSelecionadasRI(); 
8165                           
8166                          //Disara um email para o usuário interessado              
8167                          var data = { 
8168                              emailInteressado: user.emailAddress, 
8169                              nomeInteressado: username, 
8170                              tituloCurso: $('.ssp-card-detalhe-curso__title').text(), 
8171                              unidades: unidadesSel.unidades, 
8172                              unidadesPrefix: unidadesSel.unidadesPrefix 
8173                          }; 
8174 
8175                          $.ajax({ 
8176                              url: urlRegistroInteresseEmailInteressado, 
8177                              method: 'POST', 
8178                              data: JSON.stringify(data), 
8179                              headers: { 
8180                                  'Accept': 'application/json', 
8181                                  'Content-Type': 'application/json' 
8182                              }, 
8183                          }).done(function(retornoData) {}); 
8184 
8185              				usuarioNotificado = true; 
8186               
8187                          window.onclick = function(event) { 
8188                              $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) { 
8189                                  if (event.target == _modal){ 
8190                                    $('#modal-registro-interesse-sucesso').addClass('d-none'); 
8191                                    $('#modal-registro-interesse').addClass('d-none'); 
8192                                    $("body").removeClass("overflow-hidden"); 
8193
8194                              }); 
8195
8196 
8197                      } else { 
8198                          //Mensagem de erro registro interesse 
8199                          $('#modal-registro-interesse-erro').removeClass('d-none'); 
8200
8201                  } else { 
8202                      //Mensagem de erro registro interesse 
8203                      $('#modal-registro-interesse-erro').removeClass('d-none'); 
8204
8205              }).fail(function(){ 
8206				  cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
8207				  $('#modal-registro-interesse-erro').removeClass('d-none'); 
8208			  }); 
8209      }); 
8210      }); // sspGetLoggedUser 
8211
8212   
8213  function verificaBtnEnviarRegistroInteresseAtivo(){ 
8214    var diasSemanaSelecionado = false; 
8215    var periodoSelecionado = false; 
8216    var turmaSelecionada = false; 
8217    var politicaPrivacidadeSelecionado = false; 
8218     
8219     
8220    $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
8221      if($(this).is(':checked')) 
8222        periodoSelecionado = true; 
8223    }); 
8224 
8225    $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
8226      if($(this).is(':checked')) 
8227        turmaSelecionada = true; 
8228    }); 
8229     
8230    if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true; 
8231     
8232    var ativo = true 
8233     
8234    //Caso tenha algum dos selects de unidade sem uma opção válida selecionada 
8235    if(!isAoVivo) 
8236      ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length 
8237     
8238    ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado; 
8239     
8240    if(!isAoVivo && !isEmed){ 
8241       
8242        $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
8243            if($(this).hasClass('ssp-week-day-active')) 
8244              diasSemanaSelecionado = true; 
8245          }); 
8246      ativo = ativo && diasSemanaSelecionado; 
8247       
8248
8249 
8250    if(isEmed) 
8251      ativo = ativo && turmaSelecionada; 
8252     
8253    if(ativo) 
8254        $('#enviar-registro-interesse-btn').attr("disabled", false); 
8255    else 
8256        $('#enviar-registro-interesse-btn').attr("disabled", true); 
8257
8258   
8259    function loadPlanoCurso(){ 
8260       
8261      const urlGetPlanoCurso = urlPlanoCurso 
8262											 
8263      .replace('\{codigoFT\}',  $('[name="codigoFT"]').val()) 
8264      .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val()); 
8265   
8266        $.ajax({ 
8267            url:urlGetPlanoCurso, 
8268            method:'get', 
8269            crossDomain: true, 
8270            dataType: 'html', 
8271            success: function( data ) { 
8272   
8273   
8274              //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto) 
8275              $('#plano-curso').append('<br/>'+data);  
8276            }, 
8277            error: function(data){ 
8278               
8279              console.log('Não existe a URL do plano de curso'); 
8280								 
8281
8282         
8283          }); 
8284
8285     
8286  function checkCursoTrampolim(){ 
8287    return $('[name="codigoFT"]').val() == "24493";  
8288
8289   
8290  /*function verificaOfertaValida(oferta){ 
8291       
8292    if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta']  == '') 
8293      return false; 
8294     
8295    var atual = new Date(); 
8296   
8297    var dataOfertaPartes = oferta['dataInicio'].split('/'); 
8298     
8299    var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]); 
8300     
8301    var dataLimiteMatriculaOfertaPartes = ""; 
8302    var dataLimiteMatriculaOferta = ""; 
8303     
8304    if(oferta['dtLimiteMatricula'] != ""){ 
8305    dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-'); 
8306      dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());  
8307     
8308
8309     
8310     
8311    //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje  
8312    if(dataOferta <= atual) 
8313      if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" &&  atual.getTime() > dataLimiteMatriculaOferta.getTime())) 
8314        return false; 
8315     
8316    return true; 
8317  }*/ 
8318   
8319   
8320  function loadServerDate(){ 
8321   
8322    $.ajax({ 
8323      url:urlGetServerT, 
8324      method:'get', 
8325      dataType: 'json', 
8326      cache: 'false', 
8327      headers: { 
8328      'Cache-Control': 'no-store, no-cache, max-age=0', 
8329      'Expires': '0', 
8330      'Pragma': 'no-cache' 
8331      }, 
8332      success: function( data ) { 
8333        todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds); 
8334        startTimer(); 
8335
8336    }); 
8337     
8338
8339   
8340   function handleVisibilityChange() { 
8341     
8342     if (!document[hidden] ){ 
8343      restartTimer(); 
8344
8345     
8346
8347   
8348  function restartTimer(){ 
8349     
8350    if(restartTimeout == null){ 
8351      loadServerDate(); 
8352      restartTimeout = setTimeout(function(){ 
8353        restartTimeout = null; 
8354      }, 5000); 
8355
8356     
8357
8358    
8359	 function startTimer(){ 
8360		 
8361		var mSeconds = todayG.getTime(); 
8362		if(interval01 != null){ 
8363			clearInterval(interval01); 
8364
8365		interval01 = setInterval(function(){ 
8366			todayG.setTime(todayG.getTime() + 1000); 
8367		}, 1000); 
8368		 
8369		if(interval15 != null){ 
8370			clearInterval(interval15); 
8371
8372		interval15 = setInterval(function(){ 
8373			mSeconds = mSeconds + 15000; 
8374			todayG.setTime(mSeconds); 
8375		}, 15000); 
8376		 
8377
8378   
8379  function checkIsAoVivo(){ 
8380    isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp; 
8381
8382   
8383   
8384  //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta 
8385  function buscaProximaOferta(){ 
8386    //Zera variável que controla existência de ofertas com bolsa 
8387    //ofertasComBolsa = false; 
8388  	  
8389     //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas 
8390     if(carregouUltimaOferta)  
8391        return; 
8392 
8393     //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.	 
8394     var totalOfertasSlick = $('#turmas-container .slick-area__item').length; 
8395     //Pegamos o índice da oferta do meio (central) 
8396     var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index')); 
8397 
8398     var totalOfertasADireita = totalOfertasSlick - currentSliderIndex; 
8399 
8400     //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca 
8401     if(totalOfertasADireita > 2)  
8402        return; 
8403 
8404	 startOfertaParam = endOfertaParam; 
8405	 endOfertaParam += 16; 
8406	  
8407     const codigoFT = $('[name="codigoFT"]').val(); 
8408  	 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
8409	 
8410  	 var unidadeCategoryId = ''; 
8411     var unidadeCodigoSelect = ''; 
8412  	 
8413  	if(isAoVivo){ 
8414  	   
8415  		$.each(objsTela.unidades, function(k,unidade){ 
8416  			unidadeCategoryId += unidade['categoryId']+','; 
8417      	}); 
8418  		 
8419  		//tirando ultima virgula 
8420  	    unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1); 
8421  	   
8422  	}else{ 
8423  		 var splitted = $('#unidades-ofertas').val().split("@"); 
8424  		 unidadeCategoryId = splitted[0]; 
8425       unidadeCodigoSelect = splitted[1]; 
8426
8427     
8428    var params = new URLSearchParams(); 
8429    params.set('codigoFTOferta',codigoFT) 
8430    params.set('dataEfetivaOferta',dataEfetivaOferta) 
8431    params.set('categoryIds',unidadeCategoryId) 
8432    params.set('start',startOfertaParam) 
8433    params.set('end',endOfertaParam) 
8434    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
8435    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
8436    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
8437 
8438    if($('#chkBolsa').prop('checked')){ 
8439    	params.set('considerarDataBolsaFutura', true) 
8440
8441     
8442    const url = urlSearchOferta + '?' + params.toString() 
8443 
8444    $.ajax({ 
8445      url:url, 
8446      method:'get', 
8447      dataType:'json' 
8448    }).done( 
8449      function(data){ 
8450         
8451        if(data.length > 0){ 
8452          var indiceOferta = startOfertaParam; 
8453 
8454        	for (var index = 0; index < data.length; index++) { 
8455        		 
8456				var ofertaJSON = data[index]; 
8457	            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
8458				             
8459	            //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta) 
8460	            if($('.codigoOferta_'+oferta.codigoOferta).length > 0){ 
8461	              console.log('Ja tem a oferta '+oferta.codigoOferta); 
8462	              carregouUltimaOferta = true; 
8463	              break; 
8464
8465	 
8466	            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
8467	            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds))); 
8468	      
8469	            ofertasMap.set(oferta.codigoOferta, oferta); 
8470	 
8471	            if(isAoVivo) 
8472	            	objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
8473	 
8474	             //O indice é igual ao ultimo elemento buscado - 1 
8475	             var i = indiceOferta; 
8476	             oferta['indice'] = i; 
8477	 
8478	             if(isAoVivo) 
8479	                codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
8480	             else codigoUnidade = unidadeCodigoSelect; 
8481	 
8482	              
8483	             montaHTMLOferta(oferta, i, codigoUnidade, true);  
8484	             montaHTMLModalFormaPgto(oferta, i, codigoUnidade);  
8485 
8486	             montaHTMLModalLocalRealizacao(oferta, i);  
8487	             montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
8488	             verificaBotaoBolsaSS(oferta); 
8489	             verificaCursoAprendizagem(i, oferta.codigoOferta); 
8490	             verificaCursoTrampolim(i); 
8491	              
8492	             associaEventoBtnFormaPagamento(i); 
8493	             associaEventoBtnComprar(i);  
8494	             associaEventoBtnComprarDentroFormaPgto(i); 
8495	             associaEventoBtnLocalRealizacao(i); 
8496	             associaEventosFecharModal(i); 
8497 
8498                 if($('[name="tipoCurso"]').val() == 'extensao'){ 
8499                   associaEventoBtnConheca(i); 
8500                   associaEventoBtnComprarConhecaDescontoOk(i); 
8501                   associaEventoBtnComprarConhecaDescontoNot(i); 
8502                   associaEventoBtnAlunoNao(i); 
8503                   associaEventoBtnAlunoSim(i); 
8504                    
8505
8506                  
8507               indiceOferta++; 
8508
8509           
8510          controlaPaginaBolsa(); 
8511
8512
8513    ); 
8514     
8515
8516 
8517  function setUrlParam(key, value) { 
8518    const url = new URL(window.location.href) 
8519 
8520    if(value) 
8521      url.searchParams.set(key, value); 
8522    else 
8523      url.searchParams.delete(key); 
8524 
8525    window.history.pushState({}, '', url.toString()) 
8526
8527   
8528   function selectFilter(paramkey, el) { 
8529    setUrlParam(paramkey, el.prop("checked")) 
8530    const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url') 
8531    loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val()) 
8532 
8533    if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show() 
8534    else $('#msgFiltroAplicado').hide() 
8535
8536    
8537  function defineCurrentUrl(ev) { 
8538    const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url') 
8539 
8540    const hasPathWeb = window.location.pathname.includes('/web') 
8541    const hasPathGuest = window.location.pathname.includes('/guest') 
8542 
8543    let currentPath = window.location.pathname 
8544    currentPath = hasPathWeb ? currentPath.substring(4) : currentPath 
8545    currentPath = hasPathGuest ? currentPath.substring(6) : currentPath 
8546 
8547    objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, '')) 
8548 
8549    currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath 
8550    currentPath = hasPathGuest ? '/guest' + currentPath : currentPath 
8551    currentPath = hasPathWeb ? '/web' + currentPath : currentPath 
8552 
8553    if(keepURL()) 
8554    window.history.replaceState(window.history.state, '', currentPath + window.location.search) 
8555
8556   
8557  let isKeepURL = true   
8558  /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */ 
8559  function keepURL() { 
8560    const aux = isKeepURL 
8561    isKeepURL = false 
8562    return !aux 
8563
8564   
8565  loadServerDate(); 
8566  $(document).ready(function(){ 
8567 
8568    if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){ 
8569      document.location.href = '/erro-404' 
8570
8571     
8572    ehCursoTrampolim = checkCursoTrampolim(); 
8573    checkIsAoVivo(); 
8574    loadPlanoCurso(); 
8575    loadCursosVocePodeGostar(); 
8576    loadPoliticaPrivacidade(); 
8577 
8578    if(!isAoVivo) { 
8579      $('#unidades-ofertas').change(ev => { 
8580        mudarUnidade(ev) 
8581        defineCurrentUrl(ev) 
8582      }); 
8583
8584 
8585    const urlParams = new URLSearchParams(window.location.search) 
8586    $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true') 
8587    $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) ) 
8588     
8589    if($('#chkBolsa').length) { 
8590      $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true') 
8591      $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) ) 
8592      loadUnidades(!isAoVivo); 
8593    } else { 
8594      selectFilter('bolsa', $('#chkBolsa')) 
8595
8596           
8597      //Função para Montar breadcrumb Mobile 
8598   
8599      function breadcrumbMobile(){ 
8600   
8601		const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');   	  
8602    	   
8603        if ( $.trim(linkEl.html()) === 'Técnico'){ 
8604   
8605        	linkEl.attr("href", "/cursos-tecnicos"); 
8606   
8607        } else if ( $.trim(linkEl.html()) === 'Livre'){ 
8608       
8609           if(isAoVivo){ 
8610        	   	linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo') 
8611             	linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo"); 
8612           }else{ 
8613        	   	linkEl.attr("href", "/cursos-livres"); 
8614
8615        } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){ 
8616   
8617        	linkEl.attr("href", "/jovem-aprendiz"); 
8618   
8619        }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){ 
8620   
8621        	linkEl.attr("href", "/extensao-universitaria"); 
8622         
8623        }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){ 
8624        		   
8625            	linkEl.attr("href", "/ensino-medio-tecnico");	 
8626
8627   
8628
8629   
8630      breadcrumbMobile() 
8631       
8632    //Esconde elementos quando o curso é aprendizagem 
8633      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
8634        $('.ssp-section-novas-turmas').remove(); 
8635        $("div[class^='botoes-oferta-container_']").remove(); 
8636
8637   
8638     //retira os itens de dentro do container 
8639      $('.bg-').css('background-color','#e4e4e4') 
8640     $('.container.py-3').removeClass('container py-3') 
8641     //ajuste para versao 7.4 
8642     $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass() 
8643 
8644   
8645     //Fecha modal registro de interesse 
8646   
8647     $('#btn-close-Modal-registro-interesse').click(function(){ 
8648   
8649       $('#modal-registro-interesse').addClass('d-none') 
8650       $("body").removeClass("overflow-hidden") 
8651   
8652     }) 
8653   
8654      $( "#modal-registro-interesse" ).click( function(event) { 
8655   
8656         if(event.target.id==$('#modal-registro-interesse')[0].id){ 
8657               $(this).addClass('d-none') 
8658
8659   
8660      }); 
8661   
8662       
8663      //Aviso sobre interesse em turmas 
8664      $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse); 
8665      if(!isEmed){ 
8666        $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas); 
8667        $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias); 
8668      } else { 
8669        $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas) 
8670      }  
8671      $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos); 
8672   
8673      $('#btnLogin').click(function(){ 
8674        
8675        login() 
8676         
8677       }); 
8678       
8679       $('#btn-close-loginModal').click(function(){ 
8680           $('#modal-login').addClass('d-none') 
8681       }); 
8682        
8683       $('.ssp-week-day').not('#todosDias').click(function(){ 
8684   
8685           $(this).toggleClass('ssp-week-day-active'); 
8686           verificaBtnEnviarRegistroInteresseAtivo(); 
8687            
8688       }); 
8689        
8690       $('#add-unidade-regsitro-interesse').click(function(e){ 
8691           var element = $('.ssp-card-registro-interesse__select.unidades').first().clone(); 
8692           element.empty(); 
8693            element.append('<option value="" disabled selected>Selecione uma unidade</option>') 
8694                $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8695 
8696                    if(!unidade['selecionado']){      
8697                        element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
8698
8699 
8700                }); 
8701            element.change(changeSelectUnidades) 
8702 
8703   
8704           element.css('margin-top', '10px'); 
8705            
8706           if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
8707              element.attr("id", "select_" + cntSelectUnidades++) 
8708              $('#select-unidades-registro-interesse').append(element); 
8709          }    
8710 
8711          if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){ 
8712              $('#add-unidade-regsitro-interesse').addClass("d-none") 
8713
8714   
8715           verificaBtnEnviarRegistroInteresseAtivo(); 
8716       }); 
8717        
8718       $('#remove-unidade-regsitro-interesse').click(function(e){ 
8719          
8720         if($('.ssp-card-registro-interesse__select').length > 1){ 
8721          
8722              var element = $('.ssp-card-registro-interesse__select').last(); 
8723     
8724              var valueSelecionado = element.val(); 
8725 
8726              $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8727 
8728                  if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
8729                      unidade['selecionado'] = false; 
8730                      unidade['selectSelecionado'] = ""; 
8731
8732 
8733              }); 
8734              element.val(""); 
8735              cntSelectUnidades--; 
8736              element.change() 
8737 
8738              element.remove(); 
8739
8740   
8741         if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
8742              $('#add-unidade-regsitro-interesse').removeClass("d-none") 
8743
8744 
8745          verificaBtnEnviarRegistroInteresseAtivo(); 
8746       }) 
8747        
8748       $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){ 
8749         verificaBtnEnviarRegistroInteresseAtivo(); 
8750       }); 
8751   
8752       //Contador em ofertas de bolsas proximas 
8753       var cancel = setInterval(atualizaTempoAberturasBolsas, 1000); 
8754        
8755        // Manipua o breadcrumb para as regras do Senac 
8756          
8757        if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai") 
8758          $('ol.breadcrumb').find('li:first').remove(); 
8759         
8760        var li = $('ol.breadcrumb').find('li:first'); 
8761   
8762        if(li.text().trim() == 'Cursos'){ 
8763       
8764          var primeiro = li.clone(); 
8765          primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home')); 
8766          li.parent().prepend(primeiro); 
8767       
8768          var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim(); 
8769          var tipoBreadcrumb = ''; 
8770           
8771          const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead")) 
8772           
8773          if(tipoCurso.includes("Cursos Livres")){ 
8774            if(isPresencialEad) { 
8775              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso); 
8776            } else { 
8777              tipoBreadcrumb = htmlBreadcrumb( 
8778                    isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',  
8779                  isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso); 
8780            }         
8781          }else if(tipoCurso.includes("Extensão")){ 
8782            if(isPresencialEad) { 
8783              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso); 
8784            } else { 
8785        	  	tipoBreadcrumb =  htmlBreadcrumb('/extensao-universitaria', tipoCurso); 
8786            }           
8787          }else if(tipoCurso.includes("Ensino Médio Técnico")){ 
8788            if(isPresencialEad) { 
8789              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso); 
8790            } else { 
8791              tipoBreadcrumb =  htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso); 
8792
8793          }else if(tipoCurso.includes("Jovem Aprendiz")){ 
8794            if(isPresencialEad) { 
8795              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso); 
8796            } else { 
8797              tipoBreadcrumb =  htmlBreadcrumb('/jovem-aprendiz', tipoCurso); 
8798
8799          }else{ 
8800            if(isPresencialEad) { 
8801              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso); 
8802            } else { 
8803              tipoBreadcrumb =  htmlBreadcrumb('/cursos-tecnicos', tipoCurso); 
8804
8805
8806           
8807          li.html(tipoBreadcrumb); 
8808         
8809          if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove(); 
8810        	 
8811
8812         
8813        $('#turmas-container').on('click', 'a.slick-next', function(e){ 
8814				 
8815        	 	e.preventDefault(); 
8816			    buscaProximaOferta(); 
8817			 
8818        }); 
8819 
8820        $('#turmas-container').on('click', 'button.slick-dots', function(){ 
8821 
8822             
8823       
8824        }); 
8825		 
8826        $(".next-mobile").on("click",function(e){  
8827        	 e.preventDefault();  
8828       	 	 
8829        	 acoesMobileSliderOfertas("left"); 
8830       	}); 
8831         
8832        $(".prev-mobile").on("click",function(e){  
8833        	e.preventDefault();  
8834	        
8835        	acoesMobileSliderOfertas("right");	 
8836      	}); 
8837         
8838        //ação de drag do card de ofertas no mobile 
8839        $('.oferta-slick-area').on('swipe', function(event, slick, direction){ 
8840           	acoesMobileSliderOfertas(direction); 
8841        }); 
8842         
8843        loadAlternadores() 
8844        let modalFormAprendizagem = document.querySelector('#modal-form'); 
8845        if(modalFormAprendizagem){ 
8846          // Create dinamic close buttom form 
8847          let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]'); 
8848          btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem); 
8849         
8850
8851    
8852        $(".oferta-slick-area").on("click", ".btnModalAprendizagem",openModalFormAprendizagem); 
8853         
8854     }); 
8855   
8856  function htmlBreadcrumb(link, title, display){ 
8857	   
8858	  return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>'; 
8859	   
8860
8861   
8862  function acoesMobileSliderOfertas(direcao){ 
8863	   
8864       	if(direcao == "right"){ 
8865       		$("a.slick-prev").click();  
8866	       	 
8867        	if($('.slick-current').attr('data-slick-index') == "0") 
8868	       		 $('.prev-mobile').addClass('nextPrevOpacity'); 
8869	       	 
8870        	if($(".next-mobile").hasClass('nextPrevOpacity')) 
8871        		 $('.next-mobile').removeClass('nextPrevOpacity'); 
8872
8873       	 
8874       	 
8875		if(direcao == "left"){ 
8876	      	 $("a.slick-next").click(); 
8877	   	  
8878	   	  	if($(".prev-mobile").hasClass('nextPrevOpacity')) 
8879	     		 $('.prev-mobile').removeClass('nextPrevOpacity'); 
8880	   	   
8881	   	 	if(carregouUltimaOferta){ 
8882	   	 		var totalCardOfertas = $('#turmas-container .slick-area__item').length; 
8883	   	 		var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));   
8884	 
8885	   	 		//o card do meio é o último	 
8886				if(totalCardOfertas == (currentSliderIndex + 1)) 
8887					$('.next-mobile').addClass('nextPrevOpacity'); 
8888
8889
8890
8891   
8892  //habilitar/desabilitar registro de interesse 
8893  function habilitarRegistroInteresse(habilitar){ 
8894    var sectionRI = $('#section-registro-interesse') 
8895 
8896    if(isEmed) { 
8897      sectionRI.hide() 
8898      return; 
8899
8900 
8901    //Redmine #9309 - sempre irá mostrar 
8902    habilitar = true 
8903       
8904    if(habilitar) sectionRI.show() 
8905    else sectionRI.hide() 
8906
8907   
8908  function abrirModalRegistroInteresse(codUnidadeSelect){ 
8909	    $('#modal-registro-interesse').removeClass('d-none'); 
8910      $("body").addClass("overflow-hidden") 
8911      if(!isEmed){ 
8912	    $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text()); 
8913      } else { 
8914        $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar") 
8915        $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text()); 
8916
8917       
8918      $('.ssp-card-registro-interesse__select:not(#select_0)').remove(); 
8919      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8920        if(unidade['codigoUnidade'] == codUnidadeSelect){ 
8921            unidade['selecionado'] = true; 
8922            unidade['selectSelecionado'] = 'select_0'; 
8923        } else { 
8924            unidade['selecionado'] = false; 
8925            unidade['selectSelecionado'] = ""; 
8926
8927 
8928    }); 
8929    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
8930        return ordenar(a, b, 'nome'); 
8931    }); 
8932 
8933    $('#select_0').empty(); 
8934    $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>') 
8935        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8936 
8937          $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
8938             
8939        }); 
8940    $('#select_0').val(codUnidadeSelect); 
8941 
8942	 	if(isAoVivo){ 
8943	 		$('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none'); 
8944
8945     if(objsTela.unidadesRegistroInteresse.length > 1) { 
8946        $('#add-unidade-regsitro-interesse').removeClass("d-none") 
8947        $('#add-unidade-regsitro-interesse').show() 
8948        $('#remove-unidade-regsitro-interesse').show() 
8949      } else { 
8950        $('#add-unidade-regsitro-interesse').hide() 
8951        $('#remove-unidade-regsitro-interesse').hide() 
8952
8953
8954 
8955  $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades) 
8956  
8957 function changeSelectUnidades() { 
8958   var codUnidadeSelecionada = $(this).val(); 
8959   var idSelectSelecionado = $(this).attr('id') 
8960   $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8961        if(unidade['codigoUnidade'] == codUnidadeSelecionada){ 
8962            unidade['selecionado'] = true; 
8963            unidade['selectSelecionado'] = idSelectSelecionado; 
8964        } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){ 
8965            unidade['selecionado'] = false; 
8966            unidade['selectSelecionado'] = ""; 
8967
8968 
8969    }); 
8970     
8971    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
8972        return ordenar(a, b, 'nome'); 
8973    }); 
8974 
8975    $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() { 
8976        var valueSelecionado = $(this).val(); 
8977        var idActualSelect = $(this).attr('id'); 
8978        $(this).empty(); 
8979        $(this).append('<option value="" disabled>Selecione uma unidade</option>') 
8980        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
8981 
8982            if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
8983                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
8984            }else if(!unidade['selecionado']){      
8985                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
8986
8987 
8988        }); 
8989        $(this).val(valueSelecionado) 
8990    }); 
8991     
8992   verificaBtnEnviarRegistroInteresseAtivo(); 
8993
8994 
8995   
8996 function ordenar(objA, objB, nomeAtributo){ 
8997	 	let a = (nomeAtributo) ? objA[nomeAtributo] : objA; 
8998	 	let b = (nomeAtributo) ? objB[nomeAtributo] : objB; 
8999	 
9000	 	return a.toString().localeCompare(b.toString()); 
9001
9002  
9003 function paramOrdem(xml){ 
9004	 	if(isEmed){ 
9005	 		var ordemPeriodo = ['MA', 'TA', 'NO']; 
9006	 		return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo); 
9007	 	}else{ 
9008	 		return xml.find('[name="dataInicioOferta"]').text(); 
9009
9010
9011  
9012 function getEtapaSelecionadaEmed(){ 
9013		var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo'); 
9014		 if(!btnEtapa) return ''; 
9015		 return btnEtapa.val(); 
9016
9017  
9018 function filtraOfertasEtapa(etapa, ofertas){ 
9019    if(!etapa) return []; 
9020    var ofertasEtapa = []; 
9021    var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; 
9022    var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'}; 
9023    var ultimoPeriodo = null, indexPeriodo; 
9024    ofertas = ofertas.sort(function(a, b){ 
9025       return ordenar(a, b, 'periodoDiaOferta'); 
9026    }); 
9027 
9028    $.each(ofertas, async (index, oferta)=> { 
9029      if(oferta['etapa'] == etapa){ 
9030        if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0; 
9031        ultimoPeriodo = oferta['periodoDiaOferta']; 
9032        oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || ''); 
9033        ofertasEtapa.push(oferta); 
9034
9035    }); 
9036      
9037     return ofertasEtapa; 
9038
9039  
9040 function formatarDataEmed(data, etapa, isDataFim){ 
9041	  
9042 	try{ 
9043 
9044 		var splitdata = data.split('/'); 
9045 		var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']; 
9046 	 	var mes = meses[parseInt(splitdata[1])-1]; 
9047 	 	 
9048 	 	var ano = splitdata[2]; 
9049 	 	 
9050 	 	if(isDataFim){ 
9051 	 		ano = parseInt(splitdata[2]); 
9052
9053 	 	 
9054 	 	return mes + '/' + ano; 
9055 	}catch(err){  
9056 		return data;  
9057
9058   
9059
9060  
9061 //EMED Mobile 
9062 function sliderOfertasEmed(){ 
9063	  
9064	 var tamScreen = $(window).width(); 
9065	 if(tamScreen < 1024){ 
9066	     $('.ssp-slick-ofertas-emed').slick({ 
9067	         slidesToShow: 1, 
9068	         slidesToScroll: 1, 
9069	         dots: false, 
9070	         infinite: false, 
9071	         adaptiveHeight: true, 
9072	         prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>', 
9073	         nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>', 
9074	         responsive: [ 
9075	 
9076
9077	                 breakpoint: 1200, 
9078	                 settings: { 
9079	                     slidesToShow: 1, 
9080	                     slidesToScroll: 1, 
9081	                     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>', 
9082	                     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>', 
9083	 
9084
9085	             }, 
9086
9087	                 breakpoint: 768, 
9088	                 settings: { 
9089	                     slidesToShow: 1, 
9090	                     slidesToScroll: 1, 
9091	                     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>', 
9092	                     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>', 
9093
9094
9095	 
9096
9097	 
9098	     }); 
9099 
9100
9101 
9102
9103 
9104function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){ 
9105	 
9106	let backpackPostRequest = {}; 
9107	backpackPostRequest.codOferta = codOferta; 
9108	backpackPostRequest.codUnidade = codUnidade; 
9109	backpackPostRequest.dt_efetiva = dataEfetiva; 
9110 
9111	 
9112	mochila.requestAccess(function(backpackPostRequest){ 
9113		 
9114		let urlMochila = '/o/senac-backpack-services/backpack'; 
9115		 
9116		if(getCookie("codMochila") != null){ 
9117			backpackPostRequest.codMochila = getCookie("codMochila"); 
9118			urlMochila = '/o/senac-backpack-services/updateBackpack';	 
9119		}	 
9120		$.ajax({ 
9121		    type: 'POST', 
9122		    url: urlMochila, 
9123		    headers: { 
9124		        "Content-Type":"application/json" 
9125		    }, 
9126            beforeSend: function(xhr){ 
9127            	xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila")); 
9128            	loadingSubmitButton(originElemSelector); 
9129            	$(originElemSelector + ' .loading-icon-button').css('height', 'unset'); 
9130            	if($(window).width() < 1024){ 
9131            		$(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%'); 
9132
9133            }, 
9134		    data : JSON.stringify(backpackPostRequest) 
9135		}).done(function(data) {  
9136			 
9137			let domain = ''; 
9138			if(getAmbiente() == 'hom' || getAmbiente() == 'prod') 
9139				domain = '.sp.senac.br'; 
9140			 
9141			writeCookie( 
9142					'codMochila',  
9143					(getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,  
9144					24, 
9145					domain 
9146			); 
9147			addItemSuccessMochila(); 
9148			 
9149		}).fail(function(xhr, status, error) { 
9150			 
9151			$('#modal-backpack-error').removeClass('d-none'); 
9152			 
9153	 	}).always(function(){ 
9154	 		 
9155	 		cleanLoadingSubmitButton( 
9156	 				originElemSelector,  
9157	 				originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR' 
9158	 		); 
9159	 		$('[id^="modalAntesCompra_"]').each(function(index, modal) { 
9160	 			modal.style.display = "none"; 
9161	 		}); 
9162	 		 
9163	 	}); 
9164		 
9165	}, backpackPostRequest); 
9166	 
9167
9168 
9169function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){ 
9170  
9171	var comp = null; 
9172		 
9173	if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2" && !excecaoCursoGratuito(oferta)){	 
9174		 
9175		comp = $("<button>") 
9176		.addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack") 
9177		.attr("offerCode",oferta.codigoOferta) 
9178		.attr("unitCode",codigoUnidade) 
9179		.attr("effectiveDate",dataEfetiva) 
9180		.text("OK, desejo comprar"); 
9181	 
9182	}else { 
9183		var textoBotaoConfirmacao = "OK, desejo comprar"; 
9184		 
9185		if(excecaoCursoGratuito(oferta)) 
9186			textoBotaoConfirmacao = "Ok, desejo fazer a matrícula"; 
9187					 
9188		comp = $("<a>") 
9189		.addClass("btn btn-lg btn-success w-100 mt-3") 
9190		.text(textoBotaoConfirmacao) 
9191		.attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta)) 
9192		.attr("target","_blank"); 
9193
9194	 
9195	comp.attr('id', 'btnCompraLocal_' + oferta.indice); 
9196	 
9197    return comp[0].outerHTML; 
9198     
9199
9200 
9201function getUnidadesSelecionadasRI(){ 
9202		var unidadesRI = []; 
9203		 
9204		try{ 
9205			 
9206			$('#select-unidades-registro-interesse').find('select').each((i,select) =>{ 
9207				var unidadeSel = select.selectedOptions[0].innerText; 
9208				if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel); 
9209			}); 
9210			 
9211			var unidadesExt = unidadesRI.join(', '); 
9212			 
9213			const lastIndex = unidadesExt.lastIndexOf(','); 
9214			 
9215			if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1); 
9216			 
9217			return { 
9218				'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')), 
9219				'unidades' : unidadesExt 
9220			}; 
9221			 
9222		}catch(err){ 
9223			 
9224			return { 
9225				'unidadesPrefix' : '', 
9226				'unidades' : '' 
9227			}; 
9228			 
9229
9230		 
9231
9232 
9233 
9234 
9235 
9236function addItemSuccessMochila(){ 
9237	 
9238	mochila.check(); 
9239	$('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text()); 
9240	$('#modal-backpack-success').removeClass('d-none'); 
9241	 
9242
9243 
9244$(document).on('click', '.btn-backpack', function(e){  
9245     
9246	addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate")); 
9247	 
9248}); 
9249 
9250$('#btn-voltar-modal-backpack-error').click(function () { 
9251    $('#modal-backpack-error').addClass('d-none'); 
9252}); 
9253 
9254$('#btn-voltar-modal-backpack-error').click(function () { 
9255    $('#modal-backpack-error').addClass('d-none'); 
9256}); 
9257 
9258$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () { 
9259    $('#modal-backpack-success').addClass('d-none'); 
9260}); 
9261 
9262$('.btn-mochila-finalizar-compra-success').click(function () { 
9263  // Montar object push - google tag manager - 6 
9264  sendEventEcommerce("begin_checkout", ofertaSelecionada); 
9265 
9266	mochila.verificaLogin(); 
9267	$('#modal-backpack-success').addClass('d-none'); 
9268	$('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none"); 
9269}); 
9270 
9271  function closeModalFormAprendizagem(){ 
9272      let modal = document.querySelector('#modal-form'); 
9273      modal.close(); 
9274
9275      
9276      
9277  function openModalFormAprendizagem(ev){ 
9278 
9279    const $container = document.getElementById('modal-form'); 
9280    if(!$container || !$container.nodeName == 'DIALOG') return; 
9281 
9282    const ofertaSel = ofertasMap.get(ev.target.getAttribute('data-codigo-oferta')); 
9283 
9284    function getUnidadeSelecionada() { 
9285        const categoryUnidade = $('#unidades-ofertas').val().split('@')[0]; 
9286        return objsTela.unidades.find(u => u.categoryId == categoryUnidade) || {}; 
9287
9288 
9289    async function request(url, { method = 'GET', headers = {}, body, beforeSend } = {}) { 
9290        const init = { method, headers, body, credentials: 'same-origin' }; 
9291        const resp = await fetch(url, init); 
9292        if (!resp.ok) throw new Error('Erro status ' + resp.status); 
9293        return resp.text(); 
9294
9295       
9296    async function loadHTMLForm () { 
9297         
9298      if($container.querySelectorAll('form').length) { 
9299        FormControl.changeCursoInfo(ofertaSel, getUnidadeSelecionada()); 
9300        return; 
9301
9302       
9303      const url = Liferay.ThemeDisplay.getPortalURL().concat('/documents/d/global/html-formulario-aprendizagem'); 
9304 
9305      const formHTML = await request(url); 
9306 
9307      $container.innerHTML += formHTML; 
9308 
9309      let script = document.createElement('script'); 
9310      script.src = '/documents/d/global/js-aprendizagem-formulario'; 
9311      script.async = true; 
9312 
9313      script.onload = () => { 
9314          console.log(`script loaded successfully.`); 
9315          init(ofertaSel, getUnidadeSelecionada()); 
9316      }; 
9317 
9318      script.onerror = () => { 
9319          console.error(`Error loading script`); 
9320      }; 
9321 
9322      document.head.appendChild(script); 
9323 
9324
9325 
9326    loadHTMLForm(); 
9327 
9328    $container.showModal(); 
9329      
9330
9331 
9332  function addEventBolsa() { 
9333    // Mostra o preco 
9334    const btnShowPrices = document.querySelectorAll('.btn-show-price') 
9335 
9336    btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard)) 
9337     
9338    if(!$('#chkBolsa').prop('checked')) 
9339      togglePriceCard() 
9340
9341 
9342  function togglePriceCard(selector){ 
9343    if(selector instanceof PointerEvent) return 
9344 
9345    if(!selector) selector = '' 
9346    else selector = '.' + selector 
9347     
9348    const btnPrices = document.querySelectorAll('.show-price-content'+selector) 
9349    const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector) 
9350    const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector) 
9351     
9352    btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide')) 
9353    contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show')) 
9354    contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))       
9355
9356   
9357  function getRegiaoName(key) { 
9358	  switch (key) { 
9359	    case "C": 
9360	      return "Capital"; 
9361	    case "I":             
9362	      return "Interior"; 
9363	    case "GS": 
9364	      return "Grande São Paulo e Litoral"; 
9365	    default: 
9366	      return "Sem Região"; 
9367
9368
9369 
9370	function criarOptionUnidadesPorRegiao(unidades) { 
9371	  let regioes = {} 
9372	  let unidadeFounded 
9373 
9374	  unidades.forEach(unidade => { 
9375	    if(!regioes[unidade.codRegiaoUnidade || 'N']) 
9376	      regioes[unidade.codRegiaoUnidade || 'N'] = [] 
9377 
9378	    regioes[unidade.codRegiaoUnidade || 'N'].push(unidade) 
9379	  }) 
9380 
9381	  Array.from(['C', 'I', 'GS', 'N']) 
9382	  .filter(key => Object.keys(regioes).includes(key)) 
9383	  .forEach(key => { 
9384	    const unidadesDaRegiao = regioes[key] 
9385 
9386	    const optionDisabled = $('<option>') 
9387	    optionDisabled.attr('label', getRegiaoName(key)) 
9388	    optionDisabled.text(getRegiaoName(key)); 
9389	    optionDisabled.attr('disabled', true) 
9390	    optionDisabled.addClass('ssp-option-group') 
9391	    $('#unidades-ofertas').append(optionDisabled) 
9392 
9393	    $.each(unidadesDaRegiao, function(k,unidade){       
9394	      if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){         
9395	        var option = $('<option>'); 
9396	        option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']); 
9397	        option.text(unidade['nome']); 
9398	        option.attr('data-unidade-friendly-url', unidade.friendlyURL) 
9399	        option.addClass('ssp-option') 
9400	   
9401	        $('#unidades-ofertas').append(option); 
9402	     
9403	        unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded	           
9404
9405	    }) 
9406	  }) 
9407 
9408	  return unidadeFounded 
9409
9410 
9411	function getURLData() { 
9412	  return URLGeral.replace(HOST, '') 
9413
9414 
9415	/** 
9416	* Copia um objeto JSON 
9417	*/ 
9418	function cloneObj(original) { 
9419	  return JSON.parse(JSON.stringify(original)); 
9420
9421 
9422  function getUrlConsultaBolsa(oferta){ 
9423   
9424    let url = ''; 
9425    if (isAmbienteTeste()) { 
9426      if(oferta.destinoBolsa=='1') { 
9427        url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
9428      } else { 
9429        url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
9430
9431    }	else { 
9432      if(oferta.destinoBolsa=='1') { 
9433        url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
9434      } else { 
9435        url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
9436
9437       
9438
9439     
9440    return url; 
9441
9442 
9443  function execCompraEmed(oferta){ 
9444      let linkInscricaoEmed = '', linkInscricaoEmedHml = ''; 
9445      if(oferta.etapa == '0010'){ 
9446        linkInscricaoEmed = 'https://autenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?response_type=code&client_id=inscricao-educacional-ms&redirect_uri=https%3A%2F%2Finscricao-educacional-ms.sp.senac.br%2F%3Foferta%3D{codOferta}&scope=openid&grant_type=authorization_code'; 
9447        linkInscricaoEmedHml = 'https://hautenticacao.sp.senac.br/auth/realms/institucional/protocol/openid-connect/auth?response_type=code&client_id=hinscricao-educacional-backend&redirect_uri=https%3A%2F%2Fhinscricao-educacional-backend.sp.senac.br%2F%3Foferta%3D{codOferta}&scope=openid&grant_type=authorization_code'; 
9448
9449 
9450      var ambTeste = ['localhost', 'hom', 'dev']; 
9451        var link = linkInscricaoEmed; 
9452        $.each(ambTeste, function(i, a){ 
9453          if(location.hostname.indexOf(a) >= 0){ 
9454            link = linkInscricaoEmedHml; 
9455            return false; 
9456
9457        }); 
9458 
9459        // Montar object push - google tag manager - 3 
9460        ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta) 
9461        sendEventEcommerce("select_item", ofertaSelecionada); 
9462        sendEventEcommerce("view_item", ofertaSelecionada); 
9463        sendEventEcommerce("add_to_cart", ofertaSelecionada); 
9464        sendEventEcommerce("begin_checkout", ofertaSelecionada); 
9465         
9466        var urlCompra  = link.replace('\{codOferta\}', oferta.codigoOferta); 
9467        window.open(urlCompra, '_blank'); 
9468
9469 
9470   function formataDataComBarra(dataInvertidaComTraco){ 
9471 		return dataInvertidaComTraco.split('-').reverse().join('/'); 
9472
9473 
9474    
9475    let ctrlPressed = false; 
9476    $(window).keydown(function (ev) { 
9477      if(ev.which == 17){ 
9478        ctrlPressed = true; 
9479        return false; 
9480      }    
9481      if(ev.which == 82 && ctrlPressed){ 
9482        return false; 
9483
9484      return (ev.which != 116); // F5  
9485    }).keyup(function(ev) { 
9486      if (ev.which == 17){ 
9487        ctrlPressed = false; 
9488
9489      return true; 
9490    }); 
9491 
9492 
9493   </script> 
9494 
9495</#if>