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