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