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