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