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