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