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