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 4068, 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 4068, 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         
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") 
3419                /> 
3420                 
3421                 
3422                <#if mostrarFiltroInscricao && mostrarFiltroBolsa> 
3423                  <div class="ssp-switch-divider d-md-none my-4"></div> 
3424                </#if> 
3425                 
3426                <#if mostrarFiltroInscricao> 
3427                  <div class="col-12 col-lg"> 
3428                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3429                      <label class="ssp-switch order-2 order-lg-1"> 
3430                        <input type="checkbox" id="chkInscricao"> 
3431                        <span class="ssp-switch-slider round"></span> 
3432                      </label> 
3433                      <label for="chkInscricao" class="ssp-switch-label order-1 order-lg-2">Comprar agora</label>   
3434                    </div> 
3435                  </div> 
3436                </#if> 
3437                 
3438 
3439                <#if mostrarFiltroBolsa> 
3440                  <div class="col-12 col-lg"> 
3441                    <div class="d-flex justify-content-between justify-content-lg-start"> 
3442                      <label class="ssp-switch order-2 order-lg-1">             
3443                        <input type="checkbox" id="chkBolsa"> 
3444                        <span class="ssp-switch-slider ssp-switch-slider-secondary round"></span> 
3445                      </label> 
3446                      <label for="chkBolsa" class="ssp-switch-label order-1 order-lg-2">Bolsas de estudo</label> 
3447                    </div> 
3448                  </div> 
3449                </#if> 
3450              </div> 
3451            </div> 
3452 
3453            <div class="col-12 order-2 order-lg-3"> 
3454              <div class="row ${mostrarUnidades?then('text-center text-lg-left', 'text-center')}"> 
3455                <div id="msgFiltroAplicado" class="col-12 ssp-switch-label-message" style="display: none;"> 
3456                  <div class="row no-gutters"> 
3457                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'ml-auto')}">Filtro aplicado com sucesso.&nbsp;</span> 
3458                    <span class="col-12 ssp-col-lg-without ${mostrarUnidades?then('', 'mr-auto')}">Confira o resultado.</span> 
3459                  </div> 
3460                </div> 
3461              </div> 
3462            </div> 
3463          </div>      
3464             
3465          <div class="ssp-ofertas__box-endereco-unidade ${dNoneSelectUnidade}"> 
3466            <i class="icon-map-adress"></i> 
3467            <a href="" target="_blank" class="ssp-ofertas__endereco-unidade"></a> 
3468          </div> 
3469     
3470        </div> 
3471     
3472      </section> 
3473    </#if> 
3474   
3475     
3476      <!--  EMED	 --> 
3477      <section class="ssp-ofertas-emed__section d-none"> 
3478 
3479        <h2 class="title-section-white" id="titulo-emed"></h2> 
3480 
3481        <div class="ssp-ofertas-emed__filtro-content container"> 
3482 
3483            <button type="button" value="0010" class="btn btn-filtro btn--filtro-ativo">Turmas - 1º ano</button> 
3484 
3485            <button type="button" value="0" class="btn btn-filtro">Transferências</button> 
3486 
3487        </div> 
3488         
3489        <div class="ssp-ofertas-emed__card-container"> 
3490 
3491          <div class="ssp-slick-ofertas-emed"> 
3492           
3493          </div> 
3494         
3495        </div> 
3496       
3497      </section> 
3498       
3499      <!-- FIM EMED -->	 
3500   
3501    <section id="ssp-section-response" class="ssp-section" style="background: #2a2e43; position: relative;"> 
3502   
3503      <div id="turmas-container" class="container"> 
3504   
3505        <div id="informe-novas-turmas"> 
3506          <div style="display: flex; flex-wrap: nowrap;"> 
3507   
3508            <a class="prev-mobile d-lg-none d-xl-none nextPrevOpacity" href="#" > 
3509              <i class="fas fa-chevron-left"></i> 
3510            </a> 
3511   
3512            <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> 
3513   
3514            <a href="#" class="next-mobile d-lg-none d-xl-none" > 
3515              <i class="fas fa-chevron-right"></i> 
3516            </a> 
3517   
3518          </div> 
3519           
3520       
3521          <div  class="oferta-slick-area oferta-slick-area--md-bleed slider-container"> 
3522     
3523          </div> 
3524        </div> 
3525          
3526        <#if !isEMED> 
3527            <div class="ssp-card-oferta-curso__sem-vaga d-none" style="margin: auto;"> 
3528       
3529              <h2 class="ssp-card-oferta-curso__sem-vaga-title"> 
3530                Estude com a gente na próxima turma! 
3531              </h2> 
3532           
3533              <p class="ssp-card-oferta-curso__sem-vaga-description"> 
3534                Registre seu interesse e avisaremos você quando surgirem novas vagas. 
3535              </p> 
3536            </div> 
3537        <#else> 
3538 
3539          <div class="card-transferencias-emed container p-0 d-none emed-transferencias-space"> 
3540            <div> 
3541              <div class="col-md-12 col-xs-12 pb-10"> 
3542                <div> 
3543                  <div class="slick-area__item"> 
3544           
3545                    <div class="ssp-emed__card-slider"> 
3546       
3547                      <div class="ssp-emed__card-slider-body"> 
3548                        <h2 class="ssp-emed__section__titleCard"> 
3549                          <i class="fal fa-users-class"></i> 
3550                          <div>Turmas</div> 
3551                        </h2> 
3552                        <div style="display:grid;gap:20px;"> 
3553                              <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> 
3554                              <span></span> 
3555                            </div> 
3556                      </div> 
3557       
3558                    </div> 
3559       
3560                  </div> 
3561                </div> 
3562              </div> 
3563            </div> 
3564          </div> 
3565 
3566          <#if matriculaEMED.aberta> <div class="sem-vaga-emed container p-0 d-none"> 
3567          <#else> <div class="sem-vaga-emed container p-0 d-none emed-transferencias-space"> 
3568          </#if> 
3569              <div> 
3570                <div class="col-md-12 col-xs-12 pb-10"> 
3571         
3572                  <!--slick slider--> 
3573                  <div class="slick-area-emed slick-area-emed--md-bleed"> 
3574                     
3575                    <#if matriculaEMED.aberta> 
3576                      <div class="slick-area__item"> 
3577           
3578                        <div class="ssp-emed__card-slider"> 
3579           
3580                          <div class="ssp-emed__card-slider-body"> 
3581                            <h2 class="ssp-emed__section__titleCard"> 
3582                              <i class="fal fa-users-class"></i> 
3583                              <div><lfr-editable type="rich-text">Turmas</lfr-editable></div> 
3584                            </h2> 
3585                            <lfr-editable type="rich-text"> 
3586                              <div class="ssp-emed__section__introCard"><strong>Estude com a gente na próxima turma!</strong></div> 
3587                              <div class="ssp-emed__section__textCard"> 
3588                                <span class="texto"> 
3589                                  Registre seu interesse e avisaremos você sobre a abertura das inscrições para o próximo ano. 
3590                                </span> 
3591                                <span class="ssp-emed__iconWrapper animate__animated animate__fadeOutRight animate__infinite"><i 
3592                                    class="fas fa-chevron-right"></i></span> 
3593                              </div> 
3594                            </lfr-editable> 
3595                            </a> 
3596                          </div> 
3597           
3598                        </div> 
3599           
3600                      </div> 
3601         
3602                      <div class="slick-area__item"> 
3603           
3604                        <div class="ssp-emed__card-slider"> 
3605                          <div class="ssp-emed__card-slider-body"> 
3606           
3607                            <h2 class="ssp-emed__section__titleCard"> 
3608                              <i class="far fa-envelope"></i> 
3609                              <div><lfr-editable id="emed-precos-title" type="rich-text">Registro de Interesse</lfr-editable></div> 
3610                            </h2> 
3611                            <lfr-editable id="txt_emed_boleto" type="rich-text"> 
3612                              <div class="ssp-emed__section__introCardCTA"> 
3613                                Quer receber um aviso sobre as turmas do próximo ano? 
3614                              </div> 
3615                            </lfr-editable> 
3616                            </a> 
3617                            <a class="ssp-emed__btn btn btn-lg w-100 mt-3 ssp-card-modal-selecionar-outro__btn-close_10" 
3618                              id="btnOptin" href="javascript:;">Sim, me avise.</a> 
3619                          </div> 
3620                        </div> 
3621                      </div> 
3622                    <#else> 
3623                      <#-- pre inscricao emed --> 
3624                      <div class="slick-area__item card-pre-inscricao"> 
3625           
3626                        <div class="ssp-emed__card-slider"> 
3627           
3628                          <div class="ssp-emed__card-slider-body"> 
3629                            <h2 class="ssp-emed__section__titleCard"> 
3630                              <i class="fal fa-users-class"></i> 
3631                              <div><lfr-editable id="emed-aulas-title" type="rich-text">Turmas</lfr-editable></div> 
3632                            </h2> 
3633                            <lfr-editable id="txt_emed_aulas" type="rich-text"> 
3634                              <div> 
3635                                <strong>Matrículas e inscrições para bolsas de estudo:</strong><br/> 
3636                                <span style="font-weight: 400;"> 
3637                                  a partir de ${matriculaEMED.dataInicio?split("-")?reverse?join("/")}, às ${matriculaEMED.horaInicio?split(":")?first} horas 
3638                                  <#if matriculaEMED.horaInicio?split(":")?last != "00"> 
3639                                    e ${matriculaEMED.horaInicio?split(":")?last} minutos 
3640                                  </#if> 
3641                                </span> 
3642                              </div> 
3643 
3644                              <div class="footer-card-card-pre-inscricao"> 
3645                                <strong> 
3646                                  Estude com a gente na próxima turma!<br/> 
3647                                  Esperamos por você! 
3648                                </strong> 
3649                              </div> 
3650                            </lfr-editable> 
3651                            </a> 
3652                          </div> 
3653           
3654                        </div> 
3655           
3656                      </div> 
3657 
3658                    </#if> 
3659         
3660                  </div> 
3661                  <!--/slick slider--> 
3662         
3663                </div> 
3664              </div> 
3665            </div> 
3666        </#if> 
3667        <div class="oferta-slick-area_modal"> 
3668        </div> 
3669         
3670        <#if manutencao.rodape != ""> 
3671          <p class="ssp-card-oferta-curso__mensagem-legal">${manutencao.rodape}</p> 
3672        <#else> 
3673            <#if isEMED> 
3674              <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> 
3675            <#else> 
3676              <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> 
3677            </#if> 
3678        </#if> 
3679   
3680      </div> 
3681   
3682      <div id="ssp-abrir-pagina-bolsa" class="ssp-card-duvida__bolsa-estudo d-none" style="margin-top: 44px;"> 
3683 
3684        <p>Tem dúvidas sobre bolsas de estudo?</p> 
3685        <a href="/bolsas-de-estudo">Saiba como funciona</a> 
3686						 
3687    </div> 
3688                       
3689   
3690      </section> 
3691 
3692      <section id="section-registro-interesse" class="ssp-section-novas-turmas"> 
3693   
3694          <div class="container"> 
3695   
3696              <div class="ssp-aviso-novas-turmas__content"> 
3697   
3698                  <!-- <div class="pb-sm-5 pb-md-5" > --> 
3699                  <div> 
3700   
3701                      <p class="ssp-aviso-novas-turmas__title">Receba um aviso por e-mail se abrirem novas turmas.</p> 
3702                      <!-- p class="ssp-aviso-novas-turmas__description">Selecione a unidade e registre seu interesse.</p --> 
3703   
3704                  </div> 
3705   
3706          <!--  
3707                  <div class="ssp-container__form-select"> 
3708   
3709                      <select class="form-control select-large select-registro-interesse" id="select-registro-interesse"> 
3710                          <option value="">Selecione uma unidade</option> 
3711                      </select> 
3712   
3713                  </div> 
3714          --> 
3715                  <div class="ssp-btn-group__content-teste"> 
3716   
3717                      <button type="button" class="btn btn-primary btn-custom" id="btn-aviso-novas-turmas">Registrar interesse</button> 
3718   
3719                  </div> 
3720   
3721   
3722   
3723              </div> 
3724   
3725   
3726          </div> 
3727   
3728   
3729      </section> 
3730       
3731      <section id="modal-backpack-error" class="ssp-modal-registro-interesse d-none"> 
3732   
3733          <div class="ssp-card-msg-erro"> 
3734   
3735              <div class="ssp-card-msg-sucesso__content"> 
3736                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
3737                   <p>Houve um erro ao inserir curso na mochila!</p> 
3738                   <p>Por favor, tente novamente!</p> 
3739              </div> 
3740   
3741              <div> 
3742                  <button id="btn-voltar-modal-backpack-error" class="btn btn-nivel ssp-card-msg-sucesso__btn">Voltar</button> 
3743              </div> 
3744   
3745          </div> 
3746   
3747      </section> 
3748       
3749	<section id="modal-backpack-success" class="ssp-modal-registro-interesse d-none"> 
3750	 
3751		<div class="ssp-modal-mochila-curso"> 
3752	 
3753			<div class="ssp-modal-mochila-curso__header"> 
3754	 
3755				<button class="modal-btn-close" type="button"> 
3756	 
3757					<i class="fal fa-times"></i> 
3758	 
3759				</button> 
3760	 
3761				<h2 class="modal-title">Curso adicionado à mochila!</h2> 
3762				<p class="modal-subtitle">Você incluiu na sua mochila de compras o curso 
3763					<span id="modal-backpack-success__nome-curso"></span> 
3764				</p> 
3765	 
3766			</div> 
3767	 
3768			<div class="ssp-modal-mochila-curso__body"> 
3769	 
3770				<p>A sua vaga só é garantida nesta turma quando você finaliza a 
3771					compra. Deseja concluir agora?</p> 
3772	 
3773			</div> 
3774	 
3775			<div class="ssp-modal-mochila-curso__block-btn-items block-btn-items"> 
3776 
3777				<a class="btn-finalizar-compra btn-mochila-finalizar-compra-success" href="#"> 
3778                    Finalizar compra 
3779                </a> 
3780	 
3781				<button class="btn-continuar-site btn-mochila-continuar-site-success"> 
3782					Continuar no site 
3783				</button>				 
3784	 
3785			</div> 
3786	 
3787	 
3788		</div> 
3789	 
3790	</section> 
3791      
3792</#if> 
3793 
3794<#if nomeTipoCurso?has_content && nomeTipoCurso?contains("Ensino Médio Técnico") > 
3795  <!-- Agende a sua visita -->     
3796  <#assign searchImpl = serviceLocator.findService("br.senac.search.api.Search") /> 
3797  <#assign articles = searchImpl.search("EMED - Agende sua visita", {}, themeDisplay.getCompanyId(), themeDisplay.getScopeGroupId(), themeDisplay.getUserId(), false) /> 
3798 
3799  <section id="ssp-emed-visita-sector"> 
3800    <div class="container py-5 pt-lg-0" style="display:none;"> 
3801      <div data-emed="ssp-emed-visita-wrapper" class="ssp-emed-visita-wrapper"> 
3802        <#list articles![] as article> 
3803          <#assign document = saxReaderUtil.read(article.getContent()) /> 
3804          <#assign rootElement = document.getRootElement() /> 
3805 
3806          <#assign 
3807              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='textoDoBotao']") 
3808              textoDoBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3809                 
3810              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='linkBotao']") 
3811              linkBotao = xPathSelector.selectSingleNode(rootElement).getStringValue() 
3812 
3813              xPathSelector = saxReaderUtil.createXPath("dynamic-element[@field-reference='ativarBotao']") 
3814              ativarBotao = xPathSelector.selectSingleNode(rootElement).getStringValue()                 
3815          /> 
3816 
3817          <#if ativarBotao?trim == "true"> 
3818            <script>$('#ssp-emed-visita-sector').children().show()</script> 
3819            <div data-emed="ssp-emed-visita-text" class="ssp-emed-visita-text"> 
3820                 
3821                <a href="${linkBotao}">${textoDoBotao}</a> 
3822                 
3823            </div> 
3824            <div class="ssp-emed-visita-icon"> 
3825                <i class="fas fa-route"></i> 
3826            </div> 
3827          </#if> 
3828        </#list> 
3829      </div> 
3830    </div> 
3831  </section> 
3832 
3833 
3834    <!-- Como me matricular EMED --> 
3835 
3836    <section class="ssp-como-me-matricular__section"> 
3837 
3838      <h2 class="title-section-white">Como me matricular?</h2> 
3839 
3840      <div class="container"> 
3841 
3842          <div class="ssp-como-me-matricular__passo-passo-card"> 
3843 
3844              <div class="item-passo"> 
3845                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-escolha-curso.svg" alt=""> 
3846                  <p class="item-passo-title">Escolha o curso</p> 
3847                  <span>Selecione o curso, a unidade do seu interesse e confira as turmas disponíveis.</span> 
3848              </div> 
3849 
3850              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3851 
3852              <div class="item-passo"> 
3853                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-realize-inscricao.svg" alt=""> 
3854                  <p class="item-passo-title">Adicione à Mochila</p> 
3855                  <span>Faça login ou crie uma conta em nosso site e continue a compra.</span> 
3856              </div> 
3857 
3858              <img class="item-passo-icone-seta" src="/o/senac-theme/images/icon-seta-passo.svg" alt=""> 
3859 
3860              <div class="item-passo"> 
3861                  <img class="item-passo-icone" src="/o/senac-theme/images/icon-aguarde-contato.svg" alt=""> 
3862                  <p class="item-passo-title">Faça a matrícula</p> 
3863                  <span>Todas as etapas são on-line. Para garantir a vaga, preencha todas as informações.</span> 
3864              </div> 
3865 
3866          </div> 
3867 
3868 
3869      </div> 
3870 
3871    </section> 
3872 
3873  </#if> 
3874 
3875   
3876  <div class="ssp-section ssp-section-lg-bottom-slider d-none" id="section-cursos-voce-pode-gostar" style="background-color: #f2f2f2"> 
3877    <div class="container"> 
3878        <h2 class="ssp-section-title"> 
3879          <lfr-editable id="cursos-voce-pode-gostar-title" type="rich-text"> 
3880              Cursos que você pode gostar 
3881          </lfr-editable> 
3882        </h2> 
3883 
3884        <div id="slider-curso"> 
3885 
3886        </div> 
3887 
3888    </div> 
3889  </div> 
3890 
3891 
3892   
3893   
3894  <#-- Section para o item de curso--> 
3895  <div id="curso-item-template"  class="d-none slick-area__item"> 
3896   
3897    <div class="ssp-card-curso" style="height: 288px;"> 
3898   
3899      <a class="ssp-absolute-link ck-curso" href="#a"></a> 
3900   
3901      <div class="ssp-card-curso__image"> 
3902   
3903        <div class="ssp-image-container"> 
3904            <img src="" /> 
3905   
3906        </div> 
3907   
3908      </div> 
3909   
3910      <div class="ssp-card-curso__body"> 
3911   
3912        <div class="ssp-card-curso__color-tag-modalidade"></div> 
3913   
3914        <div class="ssp-card-curso__tags"> 
3915   
3916          <span class="ssp-card-curso__tag-formato-title"></span> 
3917           
3918          <span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span> 
3919   
3920        </div> 
3921   
3922        <h6 class="ssp-card-curso__title"> 
3923   
3924        </h6> 
3925   
3926        <div class="ssp-card-curso__info"> 
3927   
3928          <span class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições abertas</span> 
3929          <span class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span> 
3930   
3931        </div> 
3932   
3933      </div> 
3934   
3935    </div> 
3936   
3937  </div> 
3938   
3939  <#function getJournalArticle> 
3940   
3941     
3942    <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3943    <#assign friendlyURL = themeDisplay.getURLCurrent()?split("/")?last?split("?")?first> 
3944    <#assign groupId = themeDisplay.getSiteGroupId()> 
3945    <#attempt> 
3946   
3947      <#if !friendlyURL?contains("fragment_collections") > 
3948         
3949        <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)> 
3950      <#else> 
3951         
3952        <#return '#erro#'> 
3953      </#if> 
3954       
3955    <#recover> 
3956         
3957      <#return '#erro#'> 
3958    </#attempt> 
3959  </#function> 
3960   
3961  <#function getCategorias primaryKey> 
3962   
3963    <#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
3964    <#attempt> 
3965   
3966        <#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)> 
3967   
3968    <#recover> 
3969       
3970      <#return '#erro#'> 
3971    </#attempt> 
3972  </#function> 
3973   
3974  <#function getVocabulary vocabularyId> 
3975   
3976    <#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyService") /> 
3977    <#attempt> 
3978   
3979        <#return vocabularyService.getVocabulary(vocabularyId)> 
3980   
3981    <#recover> 
3982       
3983      <#return '#erro#'> 
3984    </#attempt> 
3985  </#function> 
3986   
3987  <#function getStringValue dom name> 
3988    <#assign 
3989      seletorSTR = "dynamic-element[@field-reference='"+name+"']" 
3990      xPathSelector = saxReaderUtil.createXPath(seletorSTR) 
3991    /> 
3992    <#if xPathSelector.selectSingleNode(dom)?? > 
3993      <#assign 
3994        valueSTR = xPathSelector.selectSingleNode(dom).getStringValue()?trim 
3995      /> 
3996      <#return valueSTR> 
3997    </#if> 
3998    <#return ''> 
3999  </#function> 
4000   
4001      <!--Modal de Login --> 
4002           
4003      <section id="modal-login" class="ssp-modal-registro-interesse d-none"> 
4004   
4005          <div class="dropdown-menu-modal dropdown-menu-right" id="js-login-dropdown-menu-2" style="width: 340px; max-width: 340px; display: block;"> 
4006   
4007              <div class="px-5"> 
4008                  <i id="btn-close-loginModal" class="fas fa-times btn-close__modal-login"></i> 
4009                  <div class="text-darker-gray py-3">Faça login na sua conta</div> 
4010              </div> 
4011         
4012              <div class="dropdown-divider"></div> 
4013   
4014              <div class="dropdown-menu-arrow"></div> 
4015   
4016              <form id="login_form" class="px-5 py-4" method="post"> 
4017               
4018              <div class="alert alert-danger py-3 d-none" id="mensagem-erro-login" style="background:#f8d7da;border-color:#f5c6cb; color:#a94442"></div> 
4019         
4020                  <div class="form-group"> 
4021                       
4022                      <label for="login-email">E-mail</label> 
4023                      <div class="input-group mb-2"> 
4024                          <div class="input-group-prepend"> 
4025                              <span class="input-group-text"><i class="icon-envelope"></i></span> 
4026                          </div> 
4027                          <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"> 
4028                      </div> 
4029   
4030                  </div> 
4031   
4032                  <div class="form-group"> 
4033   
4034                      <label for="login-password">Senha</label> 
4035                      <div class="input-group mb-2"> 
4036                          <div class="input-group-prepend"> 
4037                              <span class="input-group-text"><i class="icon-key"></i></span> 
4038                          </div> 
4039                          <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"> 
4040                      </div> 
4041   
4042                  </div> 
4043                   
4044                  <div class="pt-1 pb-3"> 
4045                  <small><a href="http://www.sp.senac.br/login-unico/SendPassword" target="_blank">Esqueceu sua senha?</a></small> 
4046                  </div> 
4047                 
4048                  <button type="button" class="btn btn-primary w-100" id="btnLogin" data-login="btnLogin">Entrar</button> 
4049              </form> 
4050               
4051              <div class="dropdown-divider"></div> 
4052   
4053              <div class="px-5 pb-4"> 
4054                  <div class="text-darker-gray py-3">Não tem cadastro?</div> 
4055                  <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> 
4056              </div> 
4057   
4058               
4059          </div> 
4060   
4061      </section> 
4062   
4063    <!-- modal registro interesse --> 
4064   
4065 
4066      <section id="modal-registro-interesse" class="ssp-modal-registro-interesse d-none"> 
4067         
4068        <#if !isEMED> 
4069            <div class="ssp-card-registro-interesse"> 
4070       
4071              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4072 
4073              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4074              <h3 class="ssp-card-registro-interesse__nome-curso"></h3> 
4075 
4076              <div id="unidades-registro-interesse"> 
4077 
4078                  <h4 class="ssp-card-registro-interesse__title-section-itens">Unidade:</h4> 
4079         
4080            <div id="select-unidades-registro-interesse"> 
4081                    <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4082                  </div> 
4083 
4084                  <div class="ssp-card-registro-interesse__add-mais"> 
4085                      <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4086                       
4087                      &nbsp; 
4088                       
4089                      <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4090                  </div> 
4091 
4092              </div> 
4093 
4094              <div id="dias-registro-interesse"> 
4095                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Dias da Semana</h4> 
4096 
4097                  <div class="ssp-card-registro-interesse__week-content"> 
4098                      <span id="todosDias" class="ssp-week-day">Todos</span> 
4099                      <span class="ssp-week-day">Seg</span> 
4100                      <span class="ssp-week-day">Ter</span> 
4101                      <span class="ssp-week-day">Qua</span> 
4102                      <span class="ssp-week-day">Qui</span> 
4103                      <span class="ssp-week-day">Sex</span> 
4104                      <span class="ssp-week-day">Sab</span> 
4105                  </div> 
4106 
4107              </div> 
4108 
4109              <div id="periodo-registro-interesse"> 
4110 
4111                  <h4 class="ssp-card-registro-interesse__title-section-itens text-center">Período:</h4> 
4112 
4113                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">  
4114 
4115                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4116                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4117                          <label for="check-todos-periodos">Todos</label> 
4118                      </div> 
4119 
4120                      <div class="ssp-card-registro-interesse__check-item"> 
4121                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4122                          <label for="periodo-m">Manhã</label> 
4123                      </div> 
4124 
4125                      <div class="ssp-card-registro-interesse__check-item"> 
4126                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4127                          <label for="periodo-t">Tarde</label> 
4128                      </div> 
4129 
4130                      <div class="ssp-card-registro-interesse__check-item"> 
4131                          <input type="checkbox" name="" value="N" id="periodo-n"> 
4132                          <label for="periodo-n" "="">Noite</label> 
4133                      </div> 
4134 
4135 
4136                  </div> 
4137 
4138              </div> 
4139 
4140              <div class="ssp-card-registro-interesse__card-politica"> 
4141 
4142               
4143                <p class="ssp-card-registro-interesse__card-politica-title"> 
4144                  <strong>Política de Privacidade do Senac São Paulo </strong> 
4145              </p> 
4146           
4147              <p>Data de publicação 06/08/2024</p> 
4148           
4149              <p class="ssp-card-registro-interesse__card-politica-text"> 
4150                  O Serviço Nacional de Aprendizagem Comercial - Senac, 
4151                  Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles 
4152                  com quem se relaciona. 
4153              </p> 
4154               
4155              <p class="ssp-card-registro-interesse__card-politica-text"> 
4156           
4157                  A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são 
4158                  coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as 
4159                  medidas de segurança que adotamos; e quais os direitos que você tem. 
4160                  <br><br> 
4161                  É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis 
4162                  alterações no que diz respeito ao tratamento de seus dados pessoais. 
4163                  <br><br> 
4164                  Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento. 
4165                  <br><br> 
4166                  <b>1. Quem somos nós?</b><br> 
4167                  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º 
4168                  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 
4169                  fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é 
4170                  controlador dos dados pessoais. 
4171                  <br><br> 
4172                  <b>2. O que você precisa saber antes de ler esta política?</b> 
4173                  <br> 
4174                  Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF, 
4175                  e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados 
4176                  pessoais sensíveis, conforme definição a seguir: 
4177                  <br><br> 
4178                  Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica, 
4179                  convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou 
4180                  político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico. 
4181                  <br><br> 
4182                  Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se 
4183                  você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por 
4184                  nós, é ele quem vai ajudar. 
4185                  <br><br> 
4186                  Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento. 
4187                  <br><br> 
4188                  Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação, 
4189                  utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre 
4190                  outros. 
4191                  <br><br> 
4192                  Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição 
4193                  descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos 
4194                  referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada, 
4195                  candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi. 
4196                  <br><br> 
4197                  <b>3. Quais dados pessoais são tratados e por quê?</b> 
4198                  <br> 
4199                  O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para 
4200                  atendimento às finalidades ora descritas, conforme aplicável: 
4201                  <br><br> 
4202                  <b>Visitante / Interessado</b> 
4203                  <br> 
4204                  <b>Atividade: Navegação</b> 
4205                  <br> 
4206                  Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de 
4207                  navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem 
4208                  do tráfego. 
4209                  <br><br> 
4210                  Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o 
4211                  envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; 
4212                  aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo 
4213                  ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais. 
4214                  <br><br> 
4215              </p> 
4216           
4217              <hr> 
4218           
4219              <p class="ssp-card-registro-interesse__card-politica-text"> 
4220                  <br> 
4221                  <b>Atividade: Cadastro</b><br> 
4222                  Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço, 
4223                  telefone. 
4224                  <br><br> 
4225                  Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do 
4226                  cadastro por duplo fator de autenticação. 
4227                  <br> 
4228              </p> 
4229           
4230              <hr> 
4231           
4232              <p class="ssp-card-registro-interesse__card-politica-text">     
4233                  <br> 
4234                  <b>Atividade: Inscrição em eventos</b><br> 
4235                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento 
4236                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional. 
4237                  <br><br> 
4238                  Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo 
4239                  Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos. 
4240                  <br> 
4241              </p> 
4242           
4243              <hr> 
4244           
4245              <p class="ssp-card-registro-interesse__card-politica-text"> 
4246                  <br> 
4247                  <b>Atividade: Comunicação e Marketing</b><br> 
4248                  Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente 
4249                  em mensagens nos nossos canais de atendimento e redes sociais. 
4250                  <br><br> 
4251                  Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações; 
4252                  realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de 
4253                  anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses. 
4254                  <br> 
4255              </p> 
4256           
4257              <hr> 
4258               
4259              <p class="ssp-card-registro-interesse__card-politica-text"> 
4260                  <br> 
4261                  <b>Candidato a aluno</b><br> 
4262                  <b>Atividade: Processo seletivo</b><br> 
4263                  Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, 
4264                  número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação 
4265                  sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e 
4266                  Lattes, dentre outros, conforme exigido a depender do processo seletivo. 
4267                  <br><br> 
4268                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno 
4269                  menor de idade. 
4270                  <br><br> 
4271                  Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de 
4272                  viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios 
4273                  previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo 
4274                  seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação; 
4275                  responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre 
4276                  cursos, eventos e/ou benefícios de acordo com seus interesses. 
4277                  <br> 
4278              </p> 
4279           
4280                  <hr> 
4281               
4282              <p class="ssp-card-registro-interesse__card-politica-text"> 
4283                  <br> 
4284                  <b>Atividade: Bolsas de estudo</b><br> 
4285                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso 
4286                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo 
4287                  renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome). 
4288                  <br><br> 
4289                  Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em 
4290                  particular do Programa Senac de Gratuidade (PSG). 
4291                  <br> 
4292              </p> 
4293           
4294              <hr> 
4295           
4296              <p class="ssp-card-registro-interesse__card-politica-text"> 
4297                  <br> 
4298                  <b>Aluno</b><br> 
4299                  <b>Atividade: Matrícula</b><br> 
4300                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4301                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4302                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4303                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4304                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4305                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4306                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4307                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4308                  <br><br> 
4309                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4310                  responsáveis legais do aluno se menor de idade. 
4311                  <br><br> 
4312                  Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente, 
4313                  a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu 
4314                  contrato conosco; e outras finalidades relacionadas. 
4315                  <br> 
4316              </p> 
4317           
4318              <hr> 
4319           
4320              <p class="ssp-card-registro-interesse__card-politica-text"> 
4321                  <br> 
4322               
4323                  <b>Atividade: Jornada Acadêmica</b><br> 
4324                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4325                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4326                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4327                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4328                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4329                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4330                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4331                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4332                  <br><br> 
4333                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4334                  responsáveis legais do aluno se menor de idade. 
4335                  <br><br> 
4336                  Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional 
4337                  do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico; 
4338                  responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por 
4339                  exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a 
4340                  realização de intercâmbio acadêmico. 
4341                  <br> 
4342              </p> 
4343               
4344              <hr> 
4345           
4346              <p class="ssp-card-registro-interesse__card-politica-text"> 
4347                  <br> 
4348                  <b>Atividade: Bolsas de estudo</b><br> 
4349                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4350                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4351                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4352                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4353                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4354                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4355                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4356                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4357                  <br><br> 
4358                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4359                  responsáveis legais do aluno se menor de idade. 
4360                  <br><br> 
4361                  Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o 
4362                  fornecimento de bolsas de estudo. 
4363                  <br> 
4364              </p> 
4365           
4366              <hr> 
4367           
4368              <p class="ssp-card-registro-interesse__card-politica-text"> 
4369                  <br> 
4370               
4371               
4372                  <b>Atividade: Benefícios</b><br> 
4373                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4374                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4375                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4376                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4377                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4378                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4379                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4380                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4381                  <br><br> 
4382                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4383                  responsáveis legais do aluno se menor de idade. 
4384                  <br><br> 
4385                  Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato 
4386                  educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente 
4387                  licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre 
4388                  outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus 
4389                  interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios, 
4390                  inclusive para aperfeiçoamento das nossas parcerias comerciais. 
4391                  <br> 
4392              </p> 
4393               
4394              <hr> 
4395               
4396              <p class="ssp-card-registro-interesse__card-politica-text"> 
4397                  <br> 
4398                  <b>Atividade: Procedimentos internos</b><br> 
4399                  Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços 
4400                  prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e 
4401                  presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos 
4402                  nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou 
4403                  cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o 
4404                  diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de 
4405                  pesquisa. 
4406                  <br> 
4407              </p> 
4408           
4409              <hr> 
4410           
4411              <p class="ssp-card-registro-interesse__card-politica-text"> 
4412                  <br> 
4413               
4414               
4415                  <b>Atividade: Obrigações legais e exercícios de direito</b><br> 
4416                  Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte 
4417                  escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse 
4418                  do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por 
4419                  exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem 
4420                  judicial, de autoridade competente ou de órgão fiscalizador. 
4421                  <br> 
4422              </p> 
4423           
4424              <hr> 
4425           
4426              <p class="ssp-card-registro-interesse__card-politica-text"> 
4427                  <br> 
4428               
4429                  <b>Atividade: Pesquisas e desenvolvimento</b><br> 
4430                  Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar 
4431                  pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do 
4432                  programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o 
4433                  Senac SP está sujeito. 
4434                  <br> 
4435              </p> 
4436               
4437              <hr> 
4438           
4439              <p class="ssp-card-registro-interesse__card-politica-text"> 
4440                  <br> 
4441               
4442                  <b>Atividade: Monitoramento</b><br> 
4443                  Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e 
4444                  aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por 
4445                  exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014. 
4446                  <br> 
4447              </p> 
4448               
4449              <hr> 
4450           
4451              <p class="ssp-card-registro-interesse__card-politica-text"> 
4452                  <br> 
4453               
4454                  <b>Ex-aluno</b><br> 
4455                  <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br> 
4456                  Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico, 
4457                  fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP. 
4458                  <br><br> 
4459                  Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros 
4460                  escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da 
4461                  formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou 
4462                  informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir 
4463                  pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para 
4464                  conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de 
4465                  obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais, 
4466                  administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar 
4467                  com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de 
4468                  fornecimento de dados sobre você no caso de, por exemplo, concursos públicos. 
4469                  <br> 
4470              </p> 
4471           
4472              <hr> 
4473           
4474              <p class="ssp-card-registro-interesse__card-politica-text"> 
4475                  <br> 
4476                  <b>Terceiros relacionados a candidatos e/ou alunos</b><br> 
4477                  <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br> 
4478                  Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com 
4479                  aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login). 
4480                  <br><br> 
4481                  Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida 
4482                  escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de 
4483                  candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo 
4484                  Senac SP. 
4485                  <br> 
4486              </p> 
4487           
4488                  <hr> 
4489               
4490              <p class="ssp-card-registro-interesse__card-politica-text"> 
4491                  <br><br> 
4492                  <b>Usuário Wi-Fi</b><br> 
4493                  <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br> 
4494                  Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a 
4495                  navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo. 
4496                  <br><br> 
4497                  Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e 
4498                  outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar 
4499                  desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou 
4500                  outras informações relevantes; proteger você, terceiros e o Senac. 
4501                  <br><br> 
4502               
4503               
4504                  Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você 
4505                  ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas 
4506                  de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa 
4507                  responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas. 
4508                  <br><br> 
4509                  Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de 
4510                  obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo 
4511                  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 
4512                  responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da 
4513                  autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão. 
4514                  <br><br> 
4515                  O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre 
4516                  que entender haver base legal para o tratamento posterior nos termos da LGPD. 
4517                  <br><br> 
4518               
4519               
4520                  <b>4. Com quem compartilhamos os seus dados pessoais?</b><br> 
4521                  Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional 
4522                  (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de 
4523                  relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros 
4524                  comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de 
4525                  crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser 
4526                  compartilhados para finalidades legítimas da seguinte maneira: 
4527                  <br><br> 
4528                  - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu 
4529                  relacionamento e contrato de prestação de serviços conosco; 
4530                  <br><br> 
4531                  - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada, 
4532                  conforme aplicável; 
4533                  <br><br> 
4534                  - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou 
4535                  administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos 
4536                  legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou 
4537                  concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em 
4538                  contratos, órgãos judiciais e governamentais; 
4539                  <br><br> 
4540                  - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou 
4541                  ameaça a direito; 
4542                  <br><br> 
4543                  - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros; 
4544                  <br><br> 
4545                  - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou 
4546                  em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou 
4547                  comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o 
4548                  atingimento da aludida finalidade; 
4549                  <br><br> 
4550                  - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer 
4551                  consequência adversa de sua decisão que negar ou revogar o seu consentimento. 
4552                  <br><br> 
4553               
4554               
4555                  Informações agregadas e anonimizadas poderão ser livremente compartilhadas. 
4556                  <br><br> 
4557                  Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros 
4558                  que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos. 
4559                  <br><br> 
4560                  Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus 
4561                  dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação 
4562                  brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável. 
4563                  <br><br> 
4564                  Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de 
4565                  requisição específica, conforme indicado no tópico que trata sobre os seus direitos. 
4566                  <br><br> 
4567               
4568               
4569                  <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br> 
4570                  Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram 
4571                  coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver 
4572                  disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais. 
4573                  <br><br> 
4574                  Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos 
4575                  seguintes critérios: 
4576                  <br><br> 
4577                  - Existência de uma obrigação legal ou contratual de reter os dados pessoais; 
4578                  <br><br> 
4579                  - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos 
4580                  judiciais, administrativos ou arbitrais; 
4581                  <br><br> 
4582                  - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e 
4583                  educacionais. 
4584                  <br><br> 
4585                  Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente, 
4586                  para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal. 
4587                  <br><br> 
4588               
4589               
4590                  <b>6. Como mantemos seus dados pessoais seguros?</b><br> 
4591                  Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços 
4592                  tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados 
4593                  e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de 
4594                  tratamento inadequado ou ilícito. 
4595                  <br><br> 
4596                  Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como: 
4597                  <br><br> 
4598                  - Controle restrito de acesso interno; 
4599                  <br><br> 
4600                  - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves; 
4601                  <br><br> 
4602                  - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados 
4603                  acessados. 
4604                  <br><br> 
4605                  Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de 
4606                  disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas 
4607                  adequadamente às autoridades competentes e aos titulares afetados. 
4608                  <br><br> 
4609               
4610               
4611                  <b>7. Quais são os seus direitos?</b><br> 
4612                  Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais: 
4613                  <br><br> 
4614                  <b>Direito X Explicação</b><br> 
4615                  1. Confirmação da existência de tratamento de seus dados pessoais<br> 
4616                  Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais. 
4617                  <br><br> 
4618                  2. Acesso aos dados pessoais<br> 
4619                  Esse direito permite que você solicite uma cópia dos seus dados pessoais. 
4620                  <br><br> 
4621                  3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br> 
4622                  Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que 
4623                  estão incompletos, inexatos ou desatualizados. 
4624                  <br><br> 
4625                  4. Anonimização, bloqueio ou eliminação de dados pessoais<br> 
4626                  Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se 
4627                  desnecessários, excessivos ou tratados de forma incorreta. 
4628                  <br><br> 
4629                  É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que 
4630                  ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser 
4631                  por nós atendida. 
4632                  <br><br> 
4633                  <br><br> 
4634                  O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido. 
4635                  <br><br> 
4636                  <b>5. Portabilidade dos dados pessoais</b><br> 
4637                  Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja 
4638                  violação da nossa propriedade intelectual. 
4639                  <br><br> 
4640                  A requisição de exercício desse direito não implica na eliminação de dados pessoais. 
4641                  <br><br> 
4642                  <b>6. Não fornecimento ou revogação do consentimento</b><br> 
4643                  Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer 
4644                  tratamento de dados pessoais anteriormente. 
4645                  <br><br> 
4646                  Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as 
4647                  quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da 
4648                  legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e; 
4649                  (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais 
4650                  (ANPD). 
4651                  <br><br> 
4652                  Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui. 
4653                  <br><br> 
4654                  Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura. 
4655                  <br><br> 
4656               
4657               
4658                  <b>8. Políticas de terceiros e atualizações desta política</b><br> 
4659                  Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a 
4660                  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 
4661                  terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade, 
4662                  entrando diretamente em contato com o terceiro responsável em caso de dúvidas. 
4663                  <br><br> 
4664                  Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material 
4665                  significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do 
4666                  tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações. 
4667                  <br><br> 
4668               
4669               
4670                  <b>9. Dúvidas?</b><br> 
4671                  Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo 
4672                  e-mail privacidade@sp.senac.br. 
4673                  <br><br> 
4674                  <b>Encarregado de Dados do Senac (DPO):</b><br> 
4675                  Fernando Sátiro Pereira<br> 
4676                  Gerente de Tecnologia da Informação do Senac São Paulo<br> 
4677                  Contato: privacidade@sp.senac.br 
4678                  <br><br> 
4679                  <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> 
4680                  <br><br> 
4681               
4682              </p> 
4683 
4684 
4685              </div> 
4686 
4687              <div class="ssp-card-registro-interesse__check-item"> 
4688                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
4689                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
4690              </div> 
4691 
4692              <div class="text-center mt-5"> 
4693 
4694                  <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> 
4695 
4696                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
4697 
4698              </div> 
4699 
4700          </div>     
4701   
4702        <#else> 
4703 
4704            <div class="ssp-card-registro-interesse emed"> 
4705 
4706              <i id="btn-close-Modal-registro-interesse" class="fas fa-times btn-close__modal-login"></i> 
4707 
4708              <p class="ssp-card-registro-interesse__label-curso-selecionado">Curso selecionado:</p> 
4709 
4710              <div class="emed-select-group"> 
4711 
4712                  <h3 class="ssp-card-registro-interesse__title-modal"></h3> 
4713                   
4714                  <div id="unidades-registro-interesse"> 
4715       
4716                      <h4 class="ssp-card-registro-interesse__title-section-itens">Escolha uma unidade</h4> 
4717             
4718                      <div id="select-unidades-registro-interesse"> 
4719                        <select class="ssp-card-registro-interesse__select unidades" id="select_0"><option value="" disabled="" selected="">Selecione uma unidade</option></select> 
4720                      </div> 
4721       
4722                      <div class="ssp-card-registro-interesse__add-mais"> 
4723                          <a class="" id="add-unidade-regsitro-interesse" href="#a"><i class="fas fa-plus mr-1"></i>Adicionar unidade</a> 
4724                           
4725                          &nbsp; 
4726                           
4727                          <a class="" id="remove-unidade-regsitro-interesse" href="#a"><i class="fas fa-times mr-1"></i>Remover unidade</a> 
4728                      </div> 
4729       
4730                  </div> 
4731 
4732              </div> 
4733 
4734               
4735              <div id="periodo-registro-interesse"> 
4736 
4737                  <p class="ssp-card-registro-interesse__title-section-itens">Período:</p> 
4738 
4739                  <div class="ssp-card-registro-interesse__check-itens-content periodos-registro-interesse">                   
4740                      <div class="ssp-card-registro-interesse__check-item"> 
4741                          <input type="checkbox" name="" value="M" id="periodo-m"> 
4742                          <label for="periodo-m">Manhã</label> 
4743                      </div> 
4744                       
4745                      <div class="ssp-card-registro-interesse__check-item"> 
4746                          <input type="checkbox" name="" value="T" id="periodo-t"> 
4747                          <label for="periodo-t">Tarde</label> 
4748                      </div> 
4749                       
4750                      <div class="ssp-card-registro-interesse__check-item" id="div-campo-todos"> 
4751                          <input type="checkbox" name="" value="" id="check-todos-periodos"> 
4752                          <label for="check-todos-periodos">Todos</label> 
4753                      </div> 
4754 
4755                  </div> 
4756 
4757              </div> 
4758 
4759              <div id="turmas-registro-interesse"> 
4760 
4761                  <p class="ssp-card-registro-interesse__title-section-itens">Turma:</p> 
4762 
4763                  <div class="ssp-card-registro-interesse__check-itens-content turmas-registro-interesse">  
4764 
4765                      <div class="ssp-card-registro-interesse__check-item"> 
4766                          <input type="checkbox" name="" value="1" id="primeiro"> 
4767                          <label for="primeiro">1º ano</label> 
4768                      </div> 
4769 
4770                      <div class="ssp-card-registro-interesse__check-item"> 
4771                          <input type="checkbox" name="" value="2" id="segundo"> 
4772                          <label for="segundo">2º ano</label> 
4773                      </div> 
4774 
4775                      <div class="ssp-card-registro-interesse__check-item"> 
4776                          <input type="checkbox" name="" value="3" id="terceiro"> 
4777                          <label for="terceiro">3º ano</label> 
4778                      </div> 
4779 
4780                  </div> 
4781 
4782              </div> 
4783 
4784              <div id="msg-transferencia-emed"> 
4785 
4786                  <div class="transferencia-emed-title"> 
4787                      <i class="fas fa-comment-exclamation"></i> 
4788                      <p>Quer se transferir de escola?</p> 
4789                  </div> 
4790 
4791                  <div class="transferencia-emed-link"> 
4792                      <a href="#">Fale direto com a unidade de interesse.</a> 
4793                  </div> 
4794 
4795              </div> 
4796 
4797              <div class="ssp-card-registro-interesse__card-politica"> 
4798 
4799                <p class="ssp-card-registro-interesse__card-politica-title"> 
4800                  <strong>Política de Privacidade do Senac São Paulo </strong> 
4801              </p> 
4802           
4803              <p>Data de publicação 06/08/2024</p> 
4804           
4805              <p class="ssp-card-registro-interesse__card-politica-text"> 
4806                  O Serviço Nacional de Aprendizagem Comercial - Senac, 
4807                  Administração no Estado de São Paulo (Senac SP) zela pela privacidade e proteção dos dados pessoais de todos aqueles 
4808                  com quem se relaciona. 
4809              </p> 
4810               
4811              <p class="ssp-card-registro-interesse__card-politica-text"> 
4812           
4813                  A presente Política de Privacidade tem o objetivo de informar sobre quais dados pessoais a seu respeito são 
4814                  coletados; por qual motivo os coletamos; com quem os compartilhamos; por quanto tempo os mantemos conosco; quais as 
4815                  medidas de segurança que adotamos; e quais os direitos que você tem. 
4816                  <br><br> 
4817                  É importante que você leia esta Política com atenção, bem como a consulte periodicamente para verificar possíveis 
4818                  alterações no que diz respeito ao tratamento de seus dados pessoais. 
4819                  <br><br> 
4820                  Em caso de dúvidas, entre em contato via e-mail indicado no final deste documento. 
4821                  <br><br> 
4822                  <b>1. Quem somos nós?</b><br> 
4823                  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º 
4824                  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 
4825                  fins da Lei Geral de Proteção de Dados Pessoais (Lei nº 13.709/2018, LGPD) e desta Política, o Senac SP é 
4826                  controlador dos dados pessoais. 
4827                  <br><br> 
4828                  <b>2. O que você precisa saber antes de ler esta política?</b> 
4829                  <br> 
4830                  Dados pessoais são todas as informações que identificam ou permitam a sua identificação. Por exemplo, seu nome, CPF, 
4831                  e-mail, endereço, dados de contato, dados de conta bancária, entre outros. Incluem-se nesse conceito os dados 
4832                  pessoais sensíveis, conforme definição a seguir: 
4833                  <br><br> 
4834                  Dados pessoais sensíveis são as informações que revelam ou cujo tratamento venha revelar origem racial ou étnica, 
4835                  convicção religiosa, opinião política, filiação à sindicato ou à organização de caráter religioso, filosófico ou 
4836                  político, dados de saúde ou sobre a vida sexual, dado genético ou biométrico. 
4837                  <br><br> 
4838                  Encarregado é o seu canal de contato sobre assuntos relacionados à privacidade e à proteção de dados pessoais. Se 
4839                  você tiver qualquer dúvida sobre como os seus dados pessoais ou de seus dependentes/beneficiários são tratados por 
4840                  nós, é ele quem vai ajudar. 
4841                  <br><br> 
4842                  Titular é a pessoa física a quem se referem os dados pessoais objeto do tratamento. 
4843                  <br><br> 
4844                  Tratamento significa qualquer operação realizada com dados pessoais, tais como coleta, produção, classificação, 
4845                  utilização, acesso, processamento, armazenamento, eliminação, modificação, compartilhamento, transferência, entre 
4846                  outros. 
4847                  <br><br> 
4848                  Sempre que houver menção aos "Termos de Uso do Senac SP", "Nós" ou "Nossos", estaremos nos referindo à instituição 
4849                  descrita no tópico "Quem somos nós". Da mesma forma, toda vez que mencionarmos "você", "seu" ou "sua", estamos nos 
4850                  referindo a você, titular de dados pessoais, que possui relação com o Senac SP na qualidade de pessoa interessada, 
4851                  candidato a aluno, aluno e/ou ex-aluno, terceiros relacionados a candidatos ou alunos usuário de nossa rede wi-fi. 
4852                  <br><br> 
4853                  <b>3. Quais dados pessoais são tratados e por quê?</b> 
4854                  <br> 
4855                  O Senac SP realiza, a depender de sua relação conosco, o tratamento dos dados pessoais a seguir identificados para 
4856                  atendimento às finalidades ora descritas, conforme aplicável: 
4857                  <br><br> 
4858                  <b>Visitante / Interessado</b> 
4859                  <br> 
4860                  <b>Atividade: Navegação</b> 
4861                  <br> 
4862                  Dados pessoais: Endereço de IP com data e hora, informações sobre o dispositivo utilizado para a navegação e tipo de 
4863                  navegador utilizado, localização do dispositivo, sequência de cliques, termos pesquisados no Portal Senac SP, origem 
4864                  do tráfego. 
4865                  <br><br> 
4866                  Finalidade: Os dados pessoais são utilizados para permitir a análise do tráfego do Portal Senac SP; viabilizar o 
4867                  envio de anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; 
4868                  aprimorar as funcionalidades do Portal Senac SP; monitorar fraudes e segurança, inclusive detectando e prevenindo 
4869                  ataques cibernéticos ou tentativas de roubo de identidade; atender exigências legais. 
4870                  <br><br> 
4871              </p> 
4872           
4873              <hr> 
4874           
4875              <p class="ssp-card-registro-interesse__card-politica-text"> 
4876                  <br> 
4877                  <b>Atividade: Cadastro</b><br> 
4878                  Dados pessoais: Nome, nome social, CPF, data de nascimento, sexo, documento de identificação civil, endereço, 
4879                  telefone. 
4880                  <br><br> 
4881                  Finalidade: Os dados pessoais são utilizados para cadastro na base de dados do Senac SP, havendo validação do 
4882                  cadastro por duplo fator de autenticação. 
4883                  <br> 
4884              </p> 
4885           
4886              <hr> 
4887           
4888              <p class="ssp-card-registro-interesse__card-politica-text">     
4889                  <br> 
4890                  <b>Atividade: Inscrição em eventos</b><br> 
4891                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, evento 
4892                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional. 
4893                  <br><br> 
4894                  Finalidade: Os dados pessoais são utilizados para viabilizar sua inscrição e participação em eventos promovidos pelo 
4895                  Senac SP que não tenham participação restrita a alunos matriculados em nossos cursos. 
4896                  <br> 
4897              </p> 
4898           
4899              <hr> 
4900           
4901              <p class="ssp-card-registro-interesse__card-politica-text"> 
4902                  <br> 
4903                  <b>Atividade: Comunicação e Marketing</b><br> 
4904                  Dados pessoais: Nome, telefone, e-mail, empresa para qual trabalha, cidade, informações fornecidas voluntariamente 
4905                  em mensagens nos nossos canais de atendimento e redes sociais. 
4906                  <br><br> 
4907                  Finalidade: Os dados pessoais são utilizados para responder perguntas, dúvidas, sugestões, elogios ou reclamações; 
4908                  realizar estudos para entender demandas e necessidades relacionadas aos nossos cursos/eventos; viabilizar o envio de 
4909                  anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses. 
4910                  <br> 
4911              </p> 
4912           
4913              <hr> 
4914               
4915              <p class="ssp-card-registro-interesse__card-politica-text"> 
4916                  <br> 
4917                  <b>Candidato a aluno</b><br> 
4918                  <b>Atividade: Processo seletivo</b><br> 
4919                  Dados pessoais: Nome, nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, 
4920                  número de inscrição, RG/RNE/Passaporte, CPF, filiação, formação acadêmica, experiência profissional, informação 
4921                  sobre deficiência, resultados de provas, dados tornados manifestamente públicos em plataformas como LinkedIn e 
4922                  Lattes, dentre outros, conforme exigido a depender do processo seletivo. 
4923                  <br><br> 
4924                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsáveis legais em caso de candidato a aluno 
4925                  menor de idade. 
4926                  <br><br> 
4927                  Finalidade: Os dados pessoais são utilizados, conforme necessário para cada processo seletivo, para fins de 
4928                  viabilizar sua inscrição e participação em processos seletivos; permitir a seleção de alunos conforme critérios 
4929                  previamente informados em editais e exigido em leis/normas setoriais aplicáveis; enviar informações sobre o processo 
4930                  seletivo, inclusive lembrete da proximidade da data de realização de provas; disponibilizar lista de classificação; 
4931                  responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou informações sobre 
4932                  cursos, eventos e/ou benefícios de acordo com seus interesses. 
4933                  <br> 
4934              </p> 
4935           
4936                  <hr> 
4937               
4938              <p class="ssp-card-registro-interesse__card-politica-text"> 
4939                  <br> 
4940                  <b>Atividade: Bolsas de estudo</b><br> 
4941                  Dados pessoais: Nome, nome social/afetivo, estado civil, RG, CPF, e-mail, telefone, endereço, raça, curso 
4942                  pretendido, dado sobre deficiência, formação acadêmica, e situação profissional, familiar e domiciliar (incluindo 
4943                  renda bruta de pessoas do mesmo grupo familiar identificadas pelo nome). 
4944                  <br><br> 
4945                  Finalidade: Os dados pessoais são utilizados para selecionar candidatos para o recebimento de bolsas de estudo, em 
4946                  particular do Programa Senac de Gratuidade (PSG). 
4947                  <br> 
4948              </p> 
4949           
4950              <hr> 
4951           
4952              <p class="ssp-card-registro-interesse__card-politica-text"> 
4953                  <br> 
4954                  <b>Aluno</b><br> 
4955                  <b>Atividade: Matrícula</b><br> 
4956                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4957                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4958                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4959                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4960                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4961                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4962                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4963                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4964                  <br><br> 
4965                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4966                  responsáveis legais do aluno se menor de idade. 
4967                  <br><br> 
4968                  Finalidade: Os dados pessoais são utilizados para viabilizar a celebração de contrato com você e, consequentemente, 
4969                  a prestação dos serviços contratados; liberar acesso a sistemas e áreas restritas; cobrar valores decorrentes do seu 
4970                  contrato conosco; e outras finalidades relacionadas. 
4971                  <br> 
4972              </p> 
4973           
4974              <hr> 
4975           
4976              <p class="ssp-card-registro-interesse__card-politica-text"> 
4977                  <br> 
4978               
4979                  <b>Atividade: Jornada Acadêmica</b><br> 
4980                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
4981                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
4982                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
4983                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
4984                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
4985                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
4986                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
4987                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
4988                  <br><br> 
4989                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
4990                  responsáveis legais do aluno se menor de idade. 
4991                  <br><br> 
4992                  Finalidade: Os dados pessoais são utilizados para registrar e acompanhar o desenvolvimento acadêmico e profissional 
4993                  do aluno; permitir o contato do Senac SP, por qualquer meio; viabilizar apoio pedagógico e psicopedagógico; 
4994                  responder suas perguntas, dúvidas, sugestões, elogios ou reclamações; enviar comunicações administrativas como, por 
4995                  exemplo, sobre alterações em nossas políticas; monitorar o desenvolvimento de atividades de estágio; permitir a 
4996                  realização de intercâmbio acadêmico. 
4997                  <br> 
4998              </p> 
4999               
5000              <hr> 
5001           
5002              <p class="ssp-card-registro-interesse__card-politica-text"> 
5003                  <br> 
5004                  <b>Atividade: Bolsas de estudo</b><br> 
5005                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
5006                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
5007                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
5008                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
5009                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
5010                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
5011                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
5012                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
5013                  <br><br> 
5014                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
5015                  responsáveis legais do aluno se menor de idade. 
5016                  <br><br> 
5017                  Finalidade: Os dados pessoais são utilizados para avaliar e monitorar o cumprimento de requisitos para o 
5018                  fornecimento de bolsas de estudo. 
5019                  <br> 
5020              </p> 
5021           
5022              <hr> 
5023           
5024              <p class="ssp-card-registro-interesse__card-politica-text"> 
5025                  <br> 
5026               
5027               
5028                  <b>Atividade: Benefícios</b><br> 
5029                  Dados pessoais: Instituições de ensino possuem diferentes vínculos com os alunos, relativos a variadas modalidades 
5030                  de ensino, exigindo, consequentemente, o tratamento de distintos tipos de dados pessoais como, por exemplo, nome, 
5031                  nome social/afetivo, telefone, e-mail, endereço, nacionalidade, data de nascimento, sexo, RG/RNE/Passaporte, CPF, 
5032                  número de matrícula, filiação, formação acadêmica, experiência profissional, informação sobre deficiência, 
5033                  resultados de provas, histórico acadêmico, fotos e gravações de imagem e voz, informações de pagamento (dados de 
5034                  cartão, endereço de cobrança, entre outros), atestados médicos, curso, condição socioeconômica, empresa na qual 
5035                  trabalha, cargo, desempenho em estágio e outros programas, informações de dispositivos eletrônicos, dentre outros, 
5036                  constantes em acervo acadêmico ou decorrentes da sua relação com o Senac SP. 
5037                  <br><br> 
5038                  Podem, ainda, ser coletados dados, por exemplo, de nome e CPF de responsável financeiro pelo aluno e/ou dos 
5039                  responsáveis legais do aluno se menor de idade. 
5040                  <br><br> 
5041                  Finalidade: Os dados pessoais são utilizados para fins de oferecer benefícios ligados ao objeto do seu contrato 
5042                  educacional com o Senac SP, como, por exemplo, o download gratuito de programas de computador devidamente 
5043                  licenciados, descontos em serviços prestados por nossos parceiros ou para aquisição de obras da Editora Senac, entre 
5044                  outros; enviar anúncios, ofertas e/ou informações sobre cursos, eventos e/ou benefícios de acordo com seus 
5045                  interesses; viabilizar análises e estudos relacionados ao interesse por e utilização de determinados benefícios, 
5046                  inclusive para aperfeiçoamento das nossas parcerias comerciais. 
5047                  <br> 
5048              </p> 
5049               
5050              <hr> 
5051               
5052              <p class="ssp-card-registro-interesse__card-politica-text"> 
5053                  <br> 
5054                  <b>Atividade: Procedimentos internos</b><br> 
5055                  Finalidade: Os dados pessoais são utilizados para fins de gestão da oferta, qualidade e aprimoramento dos serviços 
5056                  prestados pelo Senac SP, inclusive por meio do envio de pesquisas; viabilizar estratégia de aprendizagem remota e 
5057                  presencial; fornecer serviços de suporte; realizar estudos para entender demandas e necessidades relacionadas aos 
5058                  nossos produtos/serviços; preparar e disponibilizar relatórios de auditoria e gerenciais; fornecer segunda via e/ou 
5059                  cópia de documentos como diploma e histórico escolar; criar grupos de representantes de alunos para facilitar o 
5060                  diálogo e endereçamento de demandas; informar sobre a possibilidade de participação em processos acadêmicos e de 
5061                  pesquisa. 
5062                  <br> 
5063              </p> 
5064           
5065              <hr> 
5066           
5067              <p class="ssp-card-registro-interesse__card-politica-text"> 
5068                  <br> 
5069               
5070               
5071                  <b>Atividade: Obrigações legais e exercícios de direito</b><br> 
5072                  Finalidade: Os dados pessoais são utilizados para atender políticas públicas, como as assistenciais e de transporte 
5073                  escolar; viabilizar a condução do censo escolar; realizar as divulgações exigidas por normas legais ou de interesse 
5074                  do Senac SP, como lista de aprovados e conquistas obtidas; enviar dados ao MEC; inscrever estudantes para, por 
5075                  exemplo, realizar o Exame Nacional de Desempenho de Estudantes (Enade); colaborar com o cumprimento de ordem 
5076                  judicial, de autoridade competente ou de órgão fiscalizador. 
5077                  <br> 
5078              </p> 
5079           
5080              <hr> 
5081           
5082              <p class="ssp-card-registro-interesse__card-politica-text"> 
5083                  <br> 
5084               
5085                  <b>Atividade: Pesquisas e desenvolvimento</b><br> 
5086                  Finalidade: Os dados pessoais poderão ser utilizados para entrar em contato e conduzir pesquisas para identificar 
5087                  pontos de melhoria nos produtos e serviços, permitir a mensuração de qualidade dos cursos, permitir a execução do 
5088                  programa de trabalho do Senac SP, bem como para conduzir pesquisas que decorram de lei e/ou regulamento ao qual o 
5089                  Senac SP está sujeito. 
5090                  <br> 
5091              </p> 
5092               
5093              <hr> 
5094           
5095              <p class="ssp-card-registro-interesse__card-politica-text"> 
5096                  <br> 
5097               
5098                  <b>Atividade: Monitoramento</b><br> 
5099                  Finalidade: Os dados pessoais são utilizados para fins de monitorar a segurança dos ambientes de ensino e 
5100                  aprendizagem; prevenir fraudes, prática de condutas ilícitas e incidentes de segurança; cumprir exigências, por 
5101                  exemplo, de registro de acesso às aplicações estabelecidas no Marco Civil da Internet - Lei nº 12.965/2014. 
5102                  <br> 
5103              </p> 
5104               
5105              <hr> 
5106           
5107              <p class="ssp-card-registro-interesse__card-politica-text"> 
5108                  <br> 
5109               
5110                  <b>Ex-aluno</b><br> 
5111                  <b>Atividade: Relacionamento, pesquisa, obrigações legais e exercício de direitos</b><br> 
5112                  Dados pessoais: Nome, telefone, e-mail, endereço, CPF, número de matrícula, formação acadêmica, histórico acadêmico, 
5113                  fotos, dentre outros, a depender da modalidade de ensino realizada no Senac SP. 
5114                  <br><br> 
5115                  Finalidade: Os dados pessoais são utilizados para atender obrigações do Senac SP de manutenção de registros 
5116                  escolares; acompanhar o seu desenvolvimento (por exemplo, com a análise da sua empregabilidade em decorrência da 
5117                  formação recebida); responder perguntas, dúvidas, sugestões, elogios ou reclamações; enviar anúncios, ofertas e/ou 
5118                  informações sobre cursos, eventos e/ou benefícios de acordo com seus interesses; entrar em contato e conduzir 
5119                  pesquisas com fins de identificar motivação para realização de cursos e inserção produtiva no mercado, bem como para 
5120                  conduzir pesquisas que decorram de lei e/ou regulamento ao qual o Senac SP está sujeito; garantir o cumprimento de 
5121                  obrigação legal ou regulatória e/ou o exercício de direitos do Senac SP, inclusive em processos judiciais, 
5122                  administrativos e arbitrais; atender consulta de terceiros acerca do seu relacionamento com o Senac SP; colaborar 
5123                  com o cumprimento de ordem judicial, de autoridade competente, órgão fiscalizador ou com pedido de entidade de 
5124                  fornecimento de dados sobre você no caso de, por exemplo, concursos públicos. 
5125                  <br> 
5126              </p> 
5127           
5128              <hr> 
5129           
5130              <p class="ssp-card-registro-interesse__card-politica-text"> 
5131                  <br> 
5132                  <b>Terceiros relacionados a candidatos e/ou alunos</b><br> 
5133                  <b>Atividade: Atuação de responsável legal e pagamento pelo responsável financeiro. Seleção de bolsistas</b><br> 
5134                  Dados pessoais: Nome, estado civil, RG, CPF, e-mail, telefone, endereço, renda bruta, grau de parentesco com 
5135                  aluno/candidato a aluno, dados de pagamento, dados de utilização de portais do Senac SP (endereço de IP, login). 
5136                  <br><br> 
5137                  Finalidade: Os dados pessoais são utilizados para permitir a celebração de contratos com menores e a gestão da vida 
5138                  escolar por responsável legal; viabilizar operações de pagamento, pelo responsável financeiro; permitir a seleção de 
5139                  candidatos para oferta de bolsas de estudos; atender requisições de autoridades e exercício regular de direito pelo 
5140                  Senac SP. 
5141                  <br> 
5142              </p> 
5143           
5144                  <hr> 
5145               
5146              <p class="ssp-card-registro-interesse__card-politica-text"> 
5147                  <br><br> 
5148                  <b>Usuário Wi-Fi</b><br> 
5149                  <b>Atividade: Uso da rede wi-fi CONECTA SENAC</b><br> 
5150                  Dados pessoais: Nome, e-mail, CPF, endereço de IP com data e hora, informações sobre o dispositivo utilizado para a 
5151                  navegação e tipo de navegador utilizado (inclusive endereço MAC), localização do dispositivo. 
5152                  <br><br> 
5153                  Finalidade: Os dados pessoais são utilizados para viabilizar o uso da rede wi-fi "Conecta_Senac"; atender leis e 
5154                  outros normativos aplicáveis, bem como ordem de autoridades, em particular em casos de investigação; avaliar 
5155                  desempenho da rede e realizar diagnóstico de problemas, solucionando-os; comunicar sobre manutenção da rede e/ou 
5156                  outras informações relevantes; proteger você, terceiros e o Senac. 
5157                  <br><br> 
5158               
5159               
5160                  Os dados pessoais acima elencados podem ser coletados primordialmente das seguintes fontes: (a) diretamente de você 
5161                  ou da pessoa autorizada por você; (b) fornecedores do Senac SP, como empresas prestadoras de serviços; (c) sistemas 
5162                  de monitoramento de ambientes Senac SP; (d) autoridades públicas, judiciais e administrativas. Você é a única pessoa 
5163                  responsável pela exatidão, veracidade e autenticidade das informações fornecidas diretamente fornecidas. 
5164                  <br><br> 
5165                  Trataremos os dados pessoais conforme hipóteses autorizadoras listadas na LGPD, notadamente: (i) cumprimento de 
5166                  obrigação legal ou regulatória, (ii) execução de contrato, (iii) exercício regular de direitos, e (iv) legítimo 
5167                  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 
5168                  responsável legal, atuaremos de modo a garantir que você seja devidamente informado acerca da necessidade da 
5169                  autorização e consequências da sua recusa, para que você possa manifestar livremente a sua decisão. 
5170                  <br><br> 
5171                  O Senac SP utilizará os seus dados pessoais para finalidades compatíveis com as informadas nesta Política e sempre 
5172                  que entender haver base legal para o tratamento posterior nos termos da LGPD. 
5173                  <br><br> 
5174               
5175               
5176                  <b>4. Com quem compartilhamos os seus dados pessoais?</b><br> 
5177                  Poderemos compartilhar os seus dados pessoais com entidades que compõem a nossa estrutura organizacional 
5178                  (Administração Nacional e as demais Administrações Regionais), com empresas com as quais mantemos algum tipo de 
5179                  relação comercial, com seu responsável legal e/ou financeiro ou, ainda, com órgãos públicos, tais como parceiros 
5180                  comerciais, instituições bancárias, escritórios de advocacia, empresas de suporte aos nossos sistemas, bureaus de 
5181                  crédito, consultorias contábeis, órgãos públicos e o Poder Judiciário. Os seus dados pessoais podem ser 
5182                  compartilhados para finalidades legítimas da seguinte maneira: 
5183                  <br><br> 
5184                  - Para condução das atividades de tratamento de dados pessoais descritas nesta Política e/ou decorrentes de seu 
5185                  relacionamento e contrato de prestação de serviços conosco; 
5186                  <br><br> 
5187                  - Para permitir que terceiros forneçam serviços para o Senac SP e/ou acompanhem a prestação de serviços contratada, 
5188                  conforme aplicável; 
5189                  <br><br> 
5190                  - Para obedecer as nossas obrigações legais, regulatórias ou contratuais, ou responder a um processo judicial ou 
5191                  administrativo, auditoria ou solicitações legais por autoridades competentes, quando entendermos que estamos 
5192                  legalmente obrigados a fazê-lo ou, ainda, para fins de atendimento a ofícios relacionados a processos seletivos e/ou 
5193                  concursos públicos dos quais você participa. As categorias de destinatários incluem, por exemplo, contrapartes em 
5194                  contratos, órgãos judiciais e governamentais; 
5195                  <br><br> 
5196                  - Para exercício legítimo de direito em processo judicial, administrativo ou arbitral, inclusive prevenindo lesão ou 
5197                  ameaça a direito; 
5198                  <br><br> 
5199                  - Quando for necessário para proteger você, o Senac SP e seus interesses legítimos e/ou terceiros; 
5200                  <br><br> 
5201                  - Como parte de due diligence corporativa e/ou due diligence relativa à fusão, aquisição, alteração societária, ou 
5202                  em casos de recuperação judicial ou falência, nós podemos divulgar os seus dados pessoais ao potencial vendedor ou 
5203                  comprador, novo prestador de serviços e respectivos assessores, na medida do quanto necessário e adequado para o 
5204                  atingimento da aludida finalidade; 
5205                  <br><br> 
5206                  - Com o seu consentimento legalmente obtido, isto é dado de forma voluntária e sem que você sofra qualquer 
5207                  consequência adversa de sua decisão que negar ou revogar o seu consentimento. 
5208                  <br><br> 
5209               
5210               
5211                  Informações agregadas e anonimizadas poderão ser livremente compartilhadas. 
5212                  <br><br> 
5213                  Para resguardar a sua privacidade, utilizamos instrumentos contratuais e auditorias para assegurar que os terceiros 
5214                  que recebam os seus dados pessoais confiram a ele a mesma proteção que nós proporcionamos. 
5215                  <br><br> 
5216                  Atualmente, apenas compartilhamos os seus dados pessoais em território nacional. Caso haja transferência dos seus 
5217                  dados pessoais para fora do Brasil, nos certificaremos de que essa transferência ocorra em observância à legislação 
5218                  brasileira e que você seja informado de tal compartilhamento, sempre que exigido pela legislação aplicável. 
5219                  <br><br> 
5220                  Você pode ter mais informações sobre os terceiros com quem compartilhamos os seus dados pessoais por meio de 
5221                  requisição específica, conforme indicado no tópico que trata sobre os seus direitos. 
5222                  <br><br> 
5223               
5224               
5225                  <b>5. Por quanto tempo tratamos os seus dados pessoais?</b><br> 
5226                  Os seus dados pessoais serão tratados pelo tempo que for necessário para cumprir a finalidade para a qual eles foram 
5227                  coletados, a menos que um período de retenção mais longo seja necessário para cumprir obrigações legais, resolver 
5228                  disputas, proteger nossos ativos ou cumprir acordos judiciais/extrajudiciais. 
5229                  <br><br> 
5230                  Para determinar o período de retenção de seus dados pessoais, além do critério acima indicado, baseamo-nos nos 
5231                  seguintes critérios: 
5232                  <br><br> 
5233                  - Existência de uma obrigação legal ou contratual de reter os dados pessoais; 
5234                  <br><br> 
5235                  - Necessidade dos dados pessoais para investigação, auditoria ou exercício regular de nossos direitos em processos 
5236                  judiciais, administrativos ou arbitrais; 
5237                  <br><br> 
5238                  - Utilidade dos dados pessoais para fins de manutenção de registros precisos, especialmente financeiros e 
5239                  educacionais. 
5240                  <br><br> 
5241                  Podemos manter os seus dados pessoais, de forma anonimizada, ou seja, que não mais se refere a você pessoalmente, 
5242                  para fins estatísticos, sem limite de tempo, na medida em que tenhamos interesse legítimo e respaldo legal. 
5243                  <br><br> 
5244               
5245               
5246                  <b>6. Como mantemos seus dados pessoais seguros?</b><br> 
5247                  Adotamos medidas administrativas e técnicas, continuamente monitoradas e revisadas, de acordo com os avanços 
5248                  tecnológicos, aptas a manter os seus dados pessoais sob nossa responsabilidade protegidos de acessos não autorizados 
5249                  e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou qualquer outra forma de 
5250                  tratamento inadequado ou ilícito. 
5251                  <br><br> 
5252                  Nossos sistemas eletrônicos e arquivos físicos atendem aos padrões de segurança da informação adequados, tais como: 
5253                  <br><br> 
5254                  - Controle restrito de acesso interno; 
5255                  <br><br> 
5256                  - Proteção contra acessos não autorizados com a utilização de instrumentos de dupla autenticação, senha e chaves; 
5257                  <br><br> 
5258                  - Manutenção de inventário dos acessos, com o momento, a duração, a identificação do responsável pelo acesso e dados 
5259                  acessados. 
5260                  <br><br> 
5261                  Quaisquer comunicações legalmente exigidas sobre eventuais incidentes de segurança que possam acarretar perdas de 
5262                  disponibilidade, confidencialidade ou integridade dos dados pessoais sob nossa responsabilidade serão notificadas 
5263                  adequadamente às autoridades competentes e aos titulares afetados. 
5264                  <br><br> 
5265               
5266               
5267                  <b>7. Quais são os seus direitos?</b><br> 
5268                  Você, enquanto titular de dados pessoais, possui os seguintes direitos relativos aos seus dados pessoais: 
5269                  <br><br> 
5270                  <b>Direito X Explicação</b><br> 
5271                  1. Confirmação da existência de tratamento de seus dados pessoais<br> 
5272                  Esse direito permite que você solicite a confirmação acerca da existência de tratamento dos seus dados pessoais. 
5273                  <br><br> 
5274                  2. Acesso aos dados pessoais<br> 
5275                  Esse direito permite que você solicite uma cópia dos seus dados pessoais. 
5276                  <br><br> 
5277                  3. Correção de dados pessoais incompletos, inexatos ou desatualizados<br> 
5278                  Esse direito permite que você solicite a correção e/ou retificação dos seus dados pessoais, caso identifique que 
5279                  estão incompletos, inexatos ou desatualizados. 
5280                  <br><br> 
5281                  4. Anonimização, bloqueio ou eliminação de dados pessoais<br> 
5282                  Esse direito permite que você solicite a anonimização, o bloqueio ou a eliminação dos seus dados pessoais, se 
5283                  desnecessários, excessivos ou tratados de forma incorreta. 
5284                  <br><br> 
5285                  É possível, ainda, que você solicitea eliminação dos dados pessoais tratados com o seu consentimento e desde que 
5286                  ausente outra finalidade legitimadora de sua conservação, como a existência de obrigação legal ou regulatória a ser 
5287                  por nós atendida. 
5288                  <br><br> 
5289                  <br><br> 
5290                  O exercício desse direito também dependerá da nossa possibilidade técnica de atender o pedido. 
5291                  <br><br> 
5292                  <b>5. Portabilidade dos dados pessoais</b><br> 
5293                  Esse direito permite que você solicite o envio de seus dados pessoais para outras entidades, desde que não haja 
5294                  violação da nossa propriedade intelectual. 
5295                  <br><br> 
5296                  A requisição de exercício desse direito não implica na eliminação de dados pessoais. 
5297                  <br><br> 
5298                  <b>6. Não fornecimento ou revogação do consentimento</b><br> 
5299                  Esse direito permite que você não forneça ou revogue o seu consentimento, o que não afetará a legalidade de qualquer 
5300                  tratamento de dados pessoais anteriormente. 
5301                  <br><br> 
5302                  Você possui, ainda, os direitos de; (i) obter informações completas sobre as entidades públicas ou privadas com as 
5303                  quais compartilhamos seus dados pessoais; (ii) opor-se ao tratamento de dados pessoais ante ao não cumprimento da 
5304                  legislação aplicável; (iii) solicitar a revisão de decisão baseada no tratamento automatizado de dados pessoais e; 
5305                  (iv) reclamar uma possível violação de seus dados pessoais para a Autoridade Nacional de Proteção de Dados Pessoais 
5306                  (ANPD). 
5307                  <br><br> 
5308                  Para exercer quaisquer dos direitos acima listados, você deverá entrar em contato conosco aqui. 
5309                  <br><br> 
5310                  Envidaremos nossos melhores esforços para atender o seu pedido de forma clara, célere e segura. 
5311                  <br><br> 
5312               
5313               
5314                  <b>8. Políticas de terceiros e atualizações desta política</b><br> 
5315                  Não somos responsáveis pelas práticas de privacidade de terceiros. Portanto, sempre quando você for direcionado a 
5316                  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 
5317                  terceiros por nós não controlados, recomendamos que você analise as suas respectivas declarações de privacidade, 
5318                  entrando diretamente em contato com o terceiro responsável em caso de dúvidas. 
5319                  <br><br> 
5320                  Poderemos, ocasionalmente, atualizar a presente Política. Sempre quando ocorrer alguma alteração material 
5321                  significativa, como sobre a finalidade para a qual tratamos os seus dados pessoais, bem como a forma e duração do 
5322                  tratamento, utilizaremos esforços razoáveis para que você tenha ciência das modificações. 
5323                  <br><br> 
5324               
5325               
5326                  <b>9. Dúvidas?</b><br> 
5327                  Se você tiver quaisquer dúvidas sobre esta Política ou como tratamos os seus dados pessoais, entre em contato pelo 
5328                  e-mail privacidade@sp.senac.br. 
5329                  <br><br> 
5330                  <b>Encarregado de Dados do Senac (DPO):</b><br> 
5331                  Fernando Sátiro Pereira<br> 
5332                  Gerente de Tecnologia da Informação do Senac São Paulo<br> 
5333                  Contato: privacidade@sp.senac.br 
5334                  <br><br> 
5335                  <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> 
5336                  <br><br> 
5337               
5338              </p> 
5339 
5340              </div> 
5341 
5342              <div class="ssp-card-registro-interesse__check-item"> 
5343                  <input type="checkbox" name="" value="" id="check-politica-privacidade"> 
5344                  <label for="check-politica-privacidade">Aceito a Política de Privacidade</label> 
5345              </div> 
5346 
5347              <div class="text-center mt-5"> 
5348 
5349                  <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> 
5350 
5351                  <p class="ssp-card-registro-interesse__aviso"><strong>Importante:</strong> O registro de interesse não garante a vaga.</p> 
5352 
5353              </div> 
5354 
5355            </div>    
5356 
5357        </#if> 
5358      </section> 
5359 
5360      <section id="modal-registro-interesse-sucesso" class="ssp-modal-registro-interesse d-none"> 
5361   
5362          <div class="ssp-card-msg-sucesso"> 
5363   
5364              <div class="ssp-card-msg-sucesso__content"> 
5365                  <i class="fas fa-exclamation-circle"></i> 
5366                  <p>Obrigado por registrar seu interesse!</p> 
5367                  <p>Acompanhe seu e-mail para ficar por dentro das novidades!</p> 
5368              </div> 
5369   
5370              <div> 
5371                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#" id="btn-voltar-home">Voltar para a home</a> 
5372              </div> 
5373   
5374          </div> 
5375   
5376      </section> 
5377   
5378    <section id="modal-registro-interesse-erro" class="ssp-modal-registro-interesse d-none"> 
5379   
5380          <div class="ssp-card-msg-erro"> 
5381   
5382              <div class="ssp-card-msg-sucesso__content"> 
5383                  <i class="fas fa-exclamation-circle" style="color: #ec3a3a;"></i> 
5384                  <p>Houve um erro ao registrar seu interesse!</p> 
5385                  <p>Por favor, tente novamente!</p> 
5386              </div> 
5387   
5388              <div> 
5389                  <a class="btn btn-nivel ssp-card-msg-sucesso__btn" href="#">Voltar para a home</a> 
5390              </div> 
5391   
5392          </div> 
5393   
5394      </section> 
5395       
5396      <!-- Aviso para curso de aprendizagem --> 
5397   
5398    <div id="aviso-curso-aprendizagem" class="ssp-bolsa-formulario__card-aviso-atencao d-none" style="width: 100%;"> 
5399                     
5400        <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i> 
5401     
5402        <div class="ssp-bolsa-formulario__card-aviso-texto"> 
5403          <p>Para contratar aprendiz, preencha o formulário e entraremos em contato.</p> 
5404        </div> 
5405     
5406     </div> 
5407 
5408     <!-- modal form de aprendizagem --> 
5409 
5410    <#if isAprendizagem> 
5411     
5412      <#assign formId = 48097883 /> 
5413      <!-- formInstanceId é variável de acordo com o ID do formulário --> 
5414      <#assign formPreferences = {"displayDepth": "1", "portletSetupPortletDecoratorId": "barebone", "formInstanceId": "formId"}/> 
5415 
5416      <section data-lfr-background-image-id="bg-programe-form" class="ssp-section ssp-section-lg-bottom" data-modal="modal"> 
5417     
5418        <div class="container ssp_ct_form_programe"> 
5419 
5420          <button type="button" data-modal="close-form-modal"> 
5421            fechar 
5422            <i class="fas fa-times"></i> 
5423          </button> 
5424         
5425          <@liferay_portlet["runtime"] 
5426            portletName="com_liferay_dynamic_data_mapping_form_web_portlet_DDMFormPortlet" 
5427            defaultPreferences=freeMarkerPortletPreferences.getPreferences(formPreferences) 
5428          />   
5429               
5430        </div>    
5431 
5432      </section> 
5433 
5434    </#if> 
5435   
5436    <div id="avisoTrampolim" class="ssp-bolsa-formulario__card-aviso-atencao container text-left d-none" style="width: 100%;">                   
5437         <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i>   
5438         <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> 
5439         </div> 
5440 
5441       </div> 
5442          
5443         
5444         <!--modal forma pagto extensao-->   
5445        <section id="modalFormaPagtoExt" class="modal-extensao ssp-modal"> 
5446         <div class="modal-extensao_content"> 
5447            <i class="fas fa-undo modal-extensao-voltar-icon"><span class="modal-extensao-voltar-txticon">Voltar</span></i> 
5448            <h1 class="modal-extensao-condicoes__title">Descontos e Parcelamento</h1> 
5449            <div class="row"> 
5450   
5451              <!-- <button class="btn-preco-padrao d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
5452                Preço Padrão 
5453                <i class="fas fa-chevron-right custom-icon-right"></i> 
5454              </button> --> 
5455   
5456             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5457   
5458                <h2 class="modal-extensao_subtitle">Investimento</h2> 
5459   
5460                <span class="modal-extensao_preco">R$ <span class="precoVendaOferta"></span></span> 
5461                <span class="modal-extensao_txteconomiza">.<b class="modal-extensao_txtverde"></b></span> 
5462                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
5463                   <i class="fas fa-barcode" aria-hidden="true"></i>   
5464                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
5465                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoleto"></span></b></span>         
5466                   <span class="modal-extensao_txtParcela">sem juros</span> 
5467                </div> 
5468                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
5469                   <i class="far fa-credit-card" aria-hidden="true"></i> 
5470                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
5471                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoes"></span></b></span>         
5472                   <span class="modal-extensao_txtParcela">sem juros</span> 
5473                </div> 
5474                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaPadraoExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
5475             </div> 
5476   
5477             <!-- <hr class="ssp-divisor d-xs-block d-sm-block d-lg-none d-xl-none"> --> 
5478   
5479             <!-- <button class="btn-preco-ex-aluno d-xs-flex d-sm-flex d-lg-none d-xl-none"> 
5480              Preço para Contribuintes,<br>alunos e ex-alunos* 
5481              <i class="fas fa-chevron-right custom-icon-right"></i> 
5482            </button> --> 
5483   
5484             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5485                <h2 class="modal-extensao_subtitle mt-4">Valor com 20% de desconto para alunos, ex-alunos e contribuintes Senac</h2> 
5486                <span class="modal-extensao_preco">R$ <span class="precoContrExt"></span></span> 
5487                <span class="modal-extensao_txteconomiza">Você economiza <b class="modal-extensao_txtverde">R$ <span class="economiaExt"></span> (-20%)</b></span> 
5488                <div class="modal-extensao_ctboleto pt-2 pb-2 mb-3"> 
5489                   <i class="fas fa-barcode" aria-hidden="true"></i>   
5490                   <span class="modal-extensao_txtPag">Boleto Bancário</span>   
5491                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaBoleto"></span>x de R$ <span class="precoParcelaBoletoExt"></span></b></span>         
5492                   <span class="modal-extensao_txtParcela">sem juros</span>     
5493                </div> 
5494                <div class="modal-extensao_ctcard pt-2 pb-2 mb-3"> 
5495                   <i class="far fa-credit-card" aria-hidden="true"></i> 
5496                   <span class="modal-extensao_txtPag">Cartão de Crédito</span> 
5497                   <span class="modal-extensao_txtParcela"><b><span class="numParcelaCartoes"></span>x de R$ <span class="precoParcelaCartoesExt"></span></b></span>         
5498                   <span class="modal-extensao_txtParcela">sem juros</span> 
5499                </div> 
5500                <p class="modal-extensao_txtParcela pt-5"><b>À vista:</b> R$ <span class="precoAVistaContrExt"></span> <span class="modal-extensao_txtporcent">(-8%)</span></p> 
5501             </div> 
5502             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5503                <a target="_blank" href="#"> 
5504                <button class="btn modal-extensao__btn mt-3 text-uppercase">Comprar</button> 
5505                </a> 
5506             </div> 
5507             <div class="col-lg-6 col-sm-12 col-xs-12"> 
5508                <button class="btn btn-primary modal-extensao-btn-conheca mt-3" >Conheça os descontos</button> 
5509             </div> 
5510          </div> 
5511         </div> 
5512 
5513         <div class="modal-extensao_content modal-pergunta-aluno-ext d-none"> 
5514            
5515            <i class="fal fa-times modal-extensao-voltar-icon" style="font-size:25px;"></i> 
5516            <h1 class="modal-extensao-condicoes__title">Você é nosso aluno?</h1> 
5517            <div class="row"> 
5518               <div class="col-6 text-right"> 
5519                   
5520                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao sim mt-3">Sim</button> 
5521           
5522	</div> 
5523               <div class="col-6 text-left"> 
5524                   
5525                  <button class="btn btn-primary modal-extensao-btn-aluno-sim-nao nao mt-3">Não</button> 
5526                   
5527               </div> 
5528            </div> 
5529            <div class="row d-none msg-alunoSim"> 
5530               <div class="col-12 text-center mt-10"> 
5531                  <i class="fas fa-check-circle modal-extensao-ico-check"></i> 
5532                  <h2 class="modal-extensao-condicoes__subtitle">Boa notícia!</h2> 
5533                  <p class="modal-extensao-aluno_txtcontent">Você tem 20% de desconto neste curso.<br> Faça seu login e preencha os dados solicitados.</p> 
5534                  <p class="mb-0"> 
5535                     <a target="_blank" href="#"> 
5536                     <button class="btn modal-extensao-aluno__btn ok mt-3">Fazer Inscrição</button> 
5537                     </a> 
5538                  </p> 
5539                  <p class="mt-0"> 
5540                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
5541                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
5542                     </a> 
5543                  </p> 
5544               </div> 
5545            </div> 
5546            <div class="row d-none msg-alunoNao"> 
5547               <div class="col-12 text-center mt-10"> 
5548                  <i class="fas fa-percentage modal-extensao-ico-percent"></i> 
5549                  <h2 class="modal-extensao-condicoes__subtitle">Poxa! Não fique triste...</h2> 
5550                  <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> 
5551                  <p class="mb-0"> 
5552                     <a target="_blank" href="#"> 
5553                     <button class="btn modal-extensao-aluno__btn not mt-3">Fazer Inscrição</button> 
5554                     </a> 
5555                  </p> 
5556                  <p class="mt-0"> 
5557                     <a href="https://www.sp.senac.br/descontos-e-parcelamentos/pos-e-extensao-universitaria"> 
5558                     <button class="btn btn-primary modal-extensao-btn-conferir mt-3" id="btn-conferir-regras">Conferir Regras</button> 
5559                     </a> 
5560                  </p> 
5561               </div> 
5562            </div> 
5563         </div> 
5564      </section> 
5565     	 
5566	 
5567	<!-- Modal Descontos e Parcelamento EMED --> 
5568	<div id="modalPagtoEmed" class="ssp-modal"> 
5569	 
5570	        <div class="ssp-card-modal-forma-pagamento"> 
5571 
5572            <div class="ssp-card-modal-forma-pagamento__header"> 
5573               <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold text-center" style="color:#454F63">Descontos e parcelamentos</h6> 
5574               <div class="ssp-modal-emed-btfechar"> 
5575               <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_0"></i> 
5576               <span>Fechar</span> 
5577              </div> 
5578            </div> 
5579 
5580            <div class="ssp-card-modal-forma-pagamento__body"> 
5581 
5582              <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>          
5583 
5584               <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> 
5585                <span class="ssp-card-modal-emed-ano">/ano</span></p> 
5586 
5587               <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> 
5588               <div class="ssp-card-modal-emed-lineou"><span>ou</span></div> 
5589 
5590               <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> 
5591 
5592               <div class="ssp-card-modal-forma-pagamento__tipos"> 
5593                
5594               <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
5595                     <i class="ssp-card-modal-forma-pagamento__icon-boleto-cartao"></i> 
5596                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5597                        <p><strong>Cartão de Crédito +</strong></p> 
5598                        <p><strong>Boleto Bancário</strong></p> 
5599                        <!-- <p>1ª parcela em <span>até 4x de R$ <span class="valorParcelaEntradaCartoesBoleto">265,50</span></span> sem juros no cartão</p> --> 
5600                        <p>1ª parcela no cartão</p> 
5601                        <p>Valor restante em <span>até <span class="numParcelaCartoesBoleto"></span>x de <br>R$ <span class="precoParcelaCartoesBoleto"></span></span> sem juros no boleto</p>                        
5602                     </div> 
5603                  </div> 
5604                
5605 
5606                  <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start ssp-card-modal-emed-centralizaPagtos" style="margin:0 auto" > 
5607                     <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
5608                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5609                        <p><strong>Cartão de Crédito</strong></p> 
5610                        <p>(<span class="textoCartoesAceitos">Mastercard, Visa, Elo, American Express, Hipercard</span>)</p> 
5611                        <p>Em até <span><span class="numParcelaCartoes">12</span>x de R$ <span class="precoParcelaCartoes">34,53</span></span> sem juros</p> 
5612                     </div> 
5613                  </div> 
5614 
5615                  <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"> 
5616                     <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
5617                     <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
5618                        <p><strong>Boleto Bancário</strong></p> 
5619                        <p>Em até <span><span class="numParcelaBoleto">12</span>x de R$ <span class="precoParcelaBoleto">34,53</span></span> sem juros</p> 
5620                     </div> 
5621                  </div> 
5622                   
5623                  <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> 
5624 
5625                  <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> 
5626                    - Estuda ou estudou no Senac<br>  
5627                    - É dependente de quem trabalha em empresa contribuinte do Senac<br>  
5628                    - Estuda ou estudou na rede pública de ensino 
5629                </p> 
5630 
5631               </div> 
5632 
5633            </div> 
5634             
5635 
5636            <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> 
5637 
5638             
5639             
5640    </div> 
5641  </div> 
5642 
5643  <#if isEMED> 
5644    <div id="modalAntesCompraEmed" class="ssp-modal"> 
5645      <div class="ssp-modal-local-realizacao"> 
5646        <div class="ssp-modal-local-realizacao__title-content"> 
5647          <h6 class="ssp-modal-local-realizacao__title" style="padding-left:10%;">IMPORTANTE!</h6> 
5648            <i class="ssp-card-modal-antes-compra__btn-close ssp-card-modal-forma-pagamento__btn-close"></i> 
5649        </div> 
5650        <div class="ssp-modal-local-realizacao__texto"> 
5651          <p class="texto-modal-emed textoEmedModalAntesCompra0010 d-none"> 
5652           
5653            Esta matrícula é válida apenas para a compra do curso de acordo com a escola e o horário já selecionados.<br/> 
5654           
5655          </p> 
5656          <p class="texto-modal-emed textoEmedModalAntesCompra0010Espera d-none"> 
5657           
5658            Saiba como funciona a inscrição para a lista de espera:<br/><br/> 
5659            - É válida somente para a <b>compra do curso</b><br/> 
5660            - Não garante vaga para o estudante<br/> 
5661            - É válida apenas para o curso, horário e escola selecionados<br/> 
5662            - Caso surjam vagas, você receberá um e-mail para fazer a matrícula<br/> 
5663           
5664          </p> 
5665          <p class="texto-modal-emed textoEmedModalAntesCompra0020e0030 d-none"> 
5666                       
5667            - 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/> 
5668            - A inscrição só pode ser solicitada para quem deseja estudar no Senac realizando a compra do curso<br/><br/> 
5669            - 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 
5670                       
5671          </p> 
5672          <div class="btn ssp-modal-local-realizacao__btn-content"> 
5673            <button class="btn btn-lg btn-success w-100 mt-3" offercode="" id="btnCompraLocalEmed">Continuar para compra</button> 
5674            <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> 
5675          </div> 
5676        </div> 
5677      </div> 
5678    </div> 
5679         
5680  </#if> 
5681 
5682   
5683   
5684           
5685   <script> 
5686     let showedFilters = false 
5687     var groupId = themeDisplay.getScopeGroupId(); 
5688 
5689   var urlSearchCursosPorCategory = '/o/senac-curso-services/cursosPorCategoryIds/{groupId}?categoryIds={categoryId}&start=0&end={limit}'; 
5690    
5691   var urlSearchOferta = '/o/senac-oferta-services/ofertasPorCategoryIds/' + groupId 
5692 
5693   var urlSearchUnidade = '/o/senacsearch/Unidade/{companyId}/{groupId}/{userId}?q=codigoUnidade_pt_BR:{codigoUnidade}'; 
5694   var urlUnidadeInfoDetalhe = '/o/senac-content-services/unidadeInfoDetalhe/{companyId}/{codigoUnidade}'; 
5695   var urlSearchCursosPodeGostar = '/o/senac-content-services/cursosVocePodeGostar/{companyId}/{groupId}/{userId}/{articleId}/{limit}'; 
5696   var urlSearchCursoInfo = '/o/senac-content-services/cursosInfoDetalhe/{groupId}/{cursosInfo}?inscricaoAberta={inscricaoAberta}&bolsaAberta={bolsaAberta}&buscarUnidadesComOferta={buscarUnidadesComOferta}'; 
5697   var urlRegistroInteresse = '/o/senac-content-services/registroInteresse/'; 
5698   var urlRegistroInteresseEmailInteressado = '/o/senac-content-services/envioEmailRegistroInteresse/'; 
5699   var cntSelectUnidades = 1; 
5700   var urlPlanoCurso = 'https://www.sp.senac.br/jsp/includeMatdid.jsp?file=/ha1shared/projects/matdid/{codigoFT}-{dataEfetiva}.html'; 
5701   var urlGetServerT = '/o/senac-content-services/getServerTime';  
5702   var urlSearchCursosPodeGostarEmed = '/o/senac-curso-services/cursosPorCategoryIdsFilterAndOr/{groupId}/?categoryIdsOr={tiposDeCurso}&start=0&end={limit}&articleId={articleId}'; 
5703   var todayG = ''; 
5704   var codigoFTCursoAprendizagem = 18984; 
5705   var globalGroupId = Liferay.ThemeDisplay.getCompanyGroupId(); 
5706   var isAoVivo = 0; 
5707   var nomeFormatoAoVivoDxp = 'Senac Online - ao vivo'; 
5708   var ofertaUnidadeMap = new Map(); 
5709   var ultimaUnidade = 0; 
5710   var regIndex = new RegExp('\{index\}', 'g'); 
5711   var linkBotaoCompra = 'http://www.sp.senac.br/login/Login?destino=/ecommerceFrontEnd/?vcw_unidade={codigoUnidade}&vcw_evento={codigoOferta}'; 
5712   var carregouUltimaOferta = false; 
5713   var ofertasMap = new Map(); 
5714   var codUnidadeSenacAoVivo = '108'; 
5715   var ofertasComBolsa = false; 
5716 
5717    //funcao para pegar host do ambiente, se eh teste ou prod (utilizado no servico da bolsa)- 9546 
5718    function getServiceEnvironmentHost(){ 
5719      if(!isAmbienteTeste()) 
5720        return window.location.origin 
5721      else 
5722        return 'https://gesportal.sp.senac.br' 
5723
5724 
5725    var hostBolsa = getServiceEnvironmentHost() 
5726 
5727   // Montar object push - google tag manager - 1 
5728   let itensEcommerce = null;  
5729   let ofertaSelecionada = null; 
5730 
5731   const today = new Date; 
5732    
5733   //categoryId -> cod unidade 
5734   var mapUnidadesIds = new Map(); 
5735   var objsTela = { 
5736     unidades: [], 
5737     unidadesRegistroInteresse: [], 
5738     categoriesIds:[], 
5739     ofertasAoVivoTodasUnidades: [], 
5740     primeiroChange: true 
5741   }; 
5742   var startOfertaParam = 0; 
5743   var endOfertaParam = 25; 
5744    
5745   var ehCursoTrampolim = false; 
5746    
5747   const isHibrido = $('input[name="formato"]').data('formato') === 'Presencial + EAD'; 
5748   
5749   var textoFormatoHibrido = ""; 
5750   var temTextoParaFormatoHibrido = false; 
5751   
5752   //Validar se o campo textoFormatoHibrido existe e se não está vazio 
5753   if(isHibrido){ 
5754                textoFormatoHibrido = $('input[name="textoFormatoHibrido"]').val(); 
5755                if(typeof textoFormatoHibrido !== 'undefined'){ 
5756                           if (textoFormatoHibrido.trim() !== '' ) { 
5757                                temTextoParaFormatoHibrido = true; 
5758                                textoFormatoHibrido += '<br>'; 
5759
5760
5761
5762    
5763   const HOST = window.location.origin; 
5764   const URLGeral = window.location.href; 
5765    
5766   //EMED 
5767   const anoTurmaEmed = '2025'; 
5768 
5769   const tipoCursoNome = function(){ return $('.ssp-header-curso__tag-formato').text().trim(); } 
5770    
5771   const isEmed = (tipoCursoNome().indexOf('Ensino Médio Técnico') > -1); 
5772 
5773   const statusEmed = Object.freeze({ 
5774		NAO_ENCONTRADA: 0, 
5775    INSCRICAO: 1, 
5776		ESPERA: 2, 
5777		ESGOTADO: 3 
5778	}); 
5779    
5780   let unidadesToURL = [] 
5781    
5782   const localLivreOnline = function(textoLocal){  
5783     textoLocal = textoLocal || '' 
5784     textoLocal = textoLocal.replaceAll('online', 'on-line') 
5785 
5786     const textoOnline = 'Nesta turma, todas as aulas serão on-line e ao vivo pela plataforma digital Microsoft Teams'; 
5787      
5788     return textoLocal.toUpperCase().includes(textoOnline.toUpperCase()); 
5789
5790    
5791   const linkBolsa = function(oferta){ 
5792	    
5793      let tiposCurso = new Map(); 
5794      tiposCurso.set('livre', 'L'); 
5795      tiposCurso.set('tecnico', 'T'); 
5796      tiposCurso.set('aprendizagem', 'A'); 
5797      let letraTipoCurso = tiposCurso.get($('[name="tipoCurso"]').val()) || ''; 
5798  
5799      // verifica o campo destinoBolsa da oferta - 9546 
5800      var destinoBolsa = "" 
5801      if(oferta.destinoBolsa){ 
5802        destinoBolsa = parseInt(oferta.destinoBolsa,10)  
5803
5804      	 
5805      return hostBolsa+'/login/Login?origem=bolsas&destino=/jsp/default.jsp?template=2464.dwt&testeira=1540&idcourse='+ 
5806	      $('[name="codigoFT"]').val()+ 
5807	      '&cod_evento='+ 
5808	      oferta.codigoOferta+ 
5809	      '&cod_u='+ 
5810	      codigoUnidade+ 
5811	      '&nvg='+ 
5812	      oferta.qtdeTotalVagasPSG+ 
5813	      '&type='+ 
5814	      letraTipoCurso+ 
5815	      '&sel_unit=&ft=y'+ 
5816	      (destinoBolsa ? '&destino='+destinoBolsa : '');      
5817
5818    
5819    
5820   $('.ssp-ofertas-emed__filtro-content .btn').on('click', function(){ 
5821      
5822     var classAtivo = 'btn--filtro-ativo'; 
5823      
5824     if(!$(this).hasClass(classAtivo)){ 
5825      
5826       $(this).siblings().removeClass(classAtivo); 
5827        
5828       $(this).addClass(classAtivo); 
5829 
5830       const $cardTransferencias = $('.card-transferencias-emed'); 
5831        
5832       if($(this).val() == '0'){ 
5833        hideCardSemTurmas(true); 
5834        $('.ssp-slick-ofertas-emed').empty(); 
5835        if(!$('.ssp-slick-ofertas-emed').hasClass('d-none')) $('.ssp-slick-ofertas-emed').addClass('d-none'); 
5836        $('.prev-mobile, .next-mobile').addClass('d-none'); 
5837        $cardTransferencias.removeClass('d-none'); 
5838       } else{ 
5839        if(!$cardTransferencias.hasClass('d-none')) $cardTransferencias.addClass('d-none'); 
5840        $('.ssp-slick-ofertas-emed').removeClass('d-none'); 
5841        populaOfertas(objsTela.ofertas); 
5842
5843        
5844
5845      
5846   }); 
5847    
5848   //Cronometro 
5849	var hidden, visibilityChange; 
5850	var restartTimeout = null; 
5851	var interval01, interval15; 
5852	 
5853	if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support 
5854		hidden = "hidden"; 
5855		visibilityChange = "visibilitychange"; 
5856	} else if (typeof document.msHidden !== "undefined") { 
5857		hidden = "msHidden"; 
5858		visibilityChange = "msvisibilitychange"; 
5859	} else if (typeof document.webkitHidden !== "undefined") { 
5860		hidden = "webkitHidden"; 
5861		visibilityChange = "webkitvisibilitychange"; 
5862
5863	 
5864	// Verifica suporte a Visibility API 
5865	if (typeof document.addEventListener === "undefined" || hidden === undefined) { 
5866		console.log("Navegador incompativel com page visibility api"); 
5867	} else { 
5868		// Evento para quando a visibilidade da pagina mudar 
5869		document.addEventListener(visibilityChange, handleVisibilityChange, false); 
5870
5871    
5872   $(".ssp-saiba-mais-curso-accordion").on("click", ".ssp-saiba-mais-curso-accordion__heading", function() { 
5873   
5874       $(this).toggleClass("active").next().slideToggle(); 
5875   
5876       $(".sp-saiba-mais-curso-accordion__contents").not($(this).next()).slideUp(300); 
5877   
5878       $(this).siblings().removeClass("active"); 
5879   }); 
5880   
5881  function loadUnidadesRegistroInteresse(urlCursoInfo) { 
5882    if(objsTela.unidadesRegistroInteresse && objsTela.unidadesRegistroInteresse.length) 
5883      return 
5884 
5885    let urlUnidades = new URL(window.location.origin + urlCursoInfo) 
5886    let paramsUnidades = new URLSearchParams(urlUnidades.search) 
5887    paramsUnidades.delete('inscricaoAberta') 
5888    paramsUnidades.delete('bolsaAberta') 
5889    paramsUnidades.delete('buscarUnidadesComOferta') 
5890    urlUnidades.search = '?' + paramsUnidades.toString() 
5891    urlUnidades = urlUnidades.href 
5892 
5893    $.ajax({ 
5894      url: urlUnidades, 
5895      method:'get', 
5896      async: false 
5897    }).done(function(data){ 
5898      if(data.length > 0){ 
5899        const cursoInfo = JSON.parse(data); 
5900        const unidadesOfertantes = cursoInfo.unidadesOfertantes; 
5901         
5902        $.each(unidadesOfertantes, function(k,item){ 
5903          var unidade = {}; 
5904          unidade['categoryId'] = item['categoryId']; 
5905          unidade['codigoUnidade'] = item['codigoUnidade']; 
5906          unidade['nome'] = item['nomeUnidade']; 
5907          unidade['enderecoUnidade'] =item['enderecoUnidade']; 
5908          unidade['numero'] =item['numEnderecoUnidade']; 
5909          unidade['complemento'] = item['complementoEnderecoUnidade']; 
5910          unidade['bairro'] = item['bairroUnidade']; 
5911          unidade['googlemapsUnidade'] = item['googlemapsUnidade']; 
5912          unidade['friendlyURL'] = item['friendlyURL']; 
5913          unidade['selecionado'] = false; 
5914          unidade['selectSelecionado'] = ""; 
5915          unidade['ofertas'] = []; 
5916               
5917          if(!objsTela.unidadesRegistroInteresse.filter(uni => uni['categoryId'] == unidade['categoryId']).length) 
5918            objsTela.unidadesRegistroInteresse.push(unidade) 
5919          }); 
5920
5921    }); 
5922
5923   
5924   function loadUnidades(showOptions, unidadeValue){ 
5925     //Busca as unidades do curso 
5926     let buscarUnidadesComOferta = false; 
5927      
5928     if( !isEmed && ( !$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked'))) 
5929    	 buscarUnidadesComOferta = true; 
5930      
5931    const urlCursoInfo = urlSearchCursoInfo 
5932      .replace('\{groupId\}', groupId) 
5933      .replace('\{cursosInfo\}', $('[name="articleId"]').val()) 
5934      .replace('\{inscricaoAberta\}', $('#chkInscricao').prop('checked')) 
5935      .replace('\{bolsaAberta\}', $('#chkBolsa').prop('checked')) 
5936      .replace('\{buscarUnidadesComOferta\}', buscarUnidadesComOferta); 
5937 
5938      loadUnidadesRegistroInteresse(urlCursoInfo) 
5939 
5940      $.ajax({ 
5941          url:urlCursoInfo, 
5942          method:'get', 
5943          async: false, 
5944        beforeSend: function () { 
5945          loading('.oferta-slick-area'); 
5946
5947        }).done( 
5948          function(data){ 
5949             
5950            if(data.length > 0){ 
5951               
5952              const cursoInfo = JSON.parse(data); 
5953                                
5954              const unidades = buscarUnidadesComOferta ? cursoInfo.unidadesComOferta : cursoInfo.unidadesOfertantes; 
5955               
5956              if(!isAoVivo && (!buscarUnidadesComOferta || unidades.length > 0)) 
5957                $('.ssp-container-selecione-unidade').removeClass('d-none') 
5958 
5959              objsTela.unidades = [] 
5960              mapUnidadesIds = new Map(); 
5961               
5962              $.each(unidades, function(k,item){ 
5963                   
5964                  var unidade = cloneObj(item) 
5965                  unidade['nome'] = item['nomeUnidade']; 
5966                  unidade['numero'] =item['numEnderecoUnidade']; 
5967                  unidade['complemento'] = item['complementoEnderecoUnidade']; 
5968                  unidade['bairro'] = item['bairroUnidade']; 
5969                  unidade['ofertas'] = []; 
5970                       
5971                    objsTela.unidades.push(unidade); 
5972                       
5973                      mapUnidadesIds.set(unidade['categoryId'], unidade['codigoUnidade']); 
5974 
5975                    objsTela.unidades.forEach(unidade => unidadesToURL.filter(u => u.friendlyURL == unidade.friendlyURL).length ? '' : unidadesToURL.push(unidade)) 
5976                }); 
5977                       
5978                             
5979              populaSelectUnidades(undefined, showOptions, unidadeValue);  
5980    
5981
5982      }); 
5983       
5984
5985   
5986function getOfertaObjectFromJson(ofertaJSON,index){ 
5987   
5988 
5989  var oferta =  {}; 
5990        var xml =  $($.parseXML(ofertaJSON.content)); 
5991          oferta['ordenar'] = paramOrdem(xml); 
5992          oferta['vagasTotal'] = xml.find('[name="vagasTotal"]').text().trim(); 
5993          var dataInicio = xml.find('[name="dataInicioOferta"]').text().split('-'); 
5994          var dataFim =xml.find('[name="dataFimOferta"]').text().split('-'); 
5995          oferta['dataInicio'] = dataInicio[2].trim()+'/'+dataInicio[1].trim()+'/'+dataInicio[0].trim(); 
5996          oferta['dataFim'] = dataFim[2].trim()+'/'+dataFim[1].trim()+'/'+dataFim[0].trim(); 
5997          oferta['horaInicio'] = xml.find('[name="horaInicioOferta"]').text(); 
5998          oferta['codigoOferta'] = xml.find('[name="codigoOferta"]').text().trim(); 
5999          var dias = []; 
6000          oferta['horaFimOferta'] = xml.find('[name="horaFimOferta"]').text().trim(); 
6001          xml.find('[name="diasDaSemanaOferta"]').find('option').each(function(index,dia){ 
6002            dias.push($(dia).text()); 
6003          }); 
6004          oferta['diasDaSemanaOferta'] = dias; 
6005          oferta['periodoDiaOferta'] = xml.find('[name="periodoDiaOferta"]').text().trim(); 
6006          oferta['precoCheioOferta'] = xml.find('[name="precoCheioOferta"]').text().trim(); 
6007          oferta['precoVendaOferta'] = xml.find('[name="precoVendaOferta"]').text().trim(); 
6008          oferta['numeroMaxParcelasOferta'] = xml.find('[name="numeroMaxParcelasOferta"]').text().trim(); 
6009           
6010          oferta['textoCartoesAceitos'] =  pegarTextoCartoesAceitos(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6011          oferta['numParcelaCartoes'] =  pegaNumParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6012          oferta['precoParcelaCartoes'] =  pegaValorParcela(xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim()); 
6013          oferta['numParcelaBoleto'] =  pegaNumParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
6014          oferta['precoParcelaBoleto'] =  pegaValorParcela(xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim()); 
6015           
6016          oferta['precoVendaMaxParcelaOferta'] = xml.find('[name="precoVendaMaxParcelaOferta"]').text().trim(); 
6017          oferta['formaDePagamentoOferta'] = xml.find('[name="formaDePagamentoOferta"]').text().trim(); 
6018          oferta['botaoCompraOferta'] = xml.find('[name="botaoCompraOferta"]').text().trim(); 
6019          oferta['vagasParaCompraOferta'] = xml.find('[name="vagasParaCompraOferta"]').text().trim(); 
6020          oferta['botaoBolsaOferta'] = xml.find('[name="botaoBolsaOferta"]').text().trim(); 
6021          oferta['vagasBolsaOferta'] = xml.find('[name="vagasBolsaOferta"]').text().trim(); 
6022          oferta['dataAberturaBolsaOferta'] = xml.find('[name="dataAberturaBolsaOferta"]').text().trim(); 
6023          oferta['horaAberturaBolsaOferta'] = xml.find('[name="horaAberturaBolsaOferta"]').text().trim(); 
6024          oferta['espacoExterno'] = xml.find('[name="espacoExterno"]').text().trim(); 
6025          oferta['localEspacoExterno'] = xml.find('[name="localEspacoExterno"]').text().trim(); 
6026          oferta['ruaEspacoExterno'] = xml.find('[name="ruaEspacoExterno"]').text().trim(); 
6027          oferta['numeroEspacoExterno'] = xml.find('[name="numeroEspacoExterno"]').text().trim(); 
6028          oferta['complementoEspacoExterno'] = xml.find('[name="complementoEspacoExterno"]').text().trim(); 
6029          oferta['bairroEspacoExterno'] = xml.find('[name="bairroEspacoExterno"]').text().trim(); 
6030          oferta['cidadeEspacoExterno'] = xml.find('[name="cidadeEspacoExterno"]').text().trim(); 
6031          oferta['ufEspacoExterno'] = xml.find('[name="ufEspacoExterno"]').text().trim(); 
6032          oferta['cepEspacoExterno'] = xml.find('[name="cepEspacoExterno"]').text().trim(); 
6033          oferta['qtdeTotalVagas'] = xml.find('[name="qtdeTotalVagas"]').text().trim(); 
6034          oferta['qtdeTotalVagasPSG'] = xml.find('[name="qtdeTotalVagasPSG"]').text().trim(); 
6035          oferta['horariosAllOferta'] = xml.find('[name="horariosAllOferta"]').text().trim(); 
6036          oferta['formaDePagamentoCartaoOferta'] = xml.find('[name="formaDePagamentoCartaoOferta"]').text().trim(); 
6037          oferta['formaDePagamentoBoletoOferta'] = xml.find('[name="formaDePagamentoBoletoOferta"]').text().trim(); 
6038          oferta['dtLimiteMatricula'] = xml.find('[name="dtLimiteMatricula"]').text().trim(); 
6039          oferta['dataAberturaMatricula'] = xml.find('[name="dataAberturaMatricula"]').text().trim(); 
6040          oferta['etapa'] = xml.find('[name="etapa"]').text().trim(); 
6041          oferta['destinoCompra'] = xml.find('[name="destinoCompra"]').text().trim();  
6042          //adicao do destinoBolsa na oferta - 9546 - 11/07/2022 
6043          oferta['destinoBolsa'] = xml.find('[name="destinoBolsa"]').text().trim(); 
6044 
6045          	if(isEmed){ 
6046		  		//EMED utilizar data matricula para bolsa 
6047		  	  	oferta['dataAberturaBolsaOferta'] = oferta['dataAberturaMatricula'];  
6048 
6049
6050           
6051         return oferta;  
6052
6053   
6054  const getStatusEmed = (oferta) => { 
6055 
6056	    const urlStatusEsperaEmed = () => { 
6057	  		let url = (isAmbienteTeste()) ?  
6058		  		'https://hinscricao-educacional-backend.sp.senac.br/api/lista-espera/' 
6059			    : 'https://inscricao-educacional-ms.sp.senac.br/api/lista-espera/'; 
6060	  		 
6061  	  		return url + oferta.codigoOferta; 
6062
6063  	  	 
6064  	  const callTl = async () => { 
6065	  		if(getCookie('tl') == null){ 
6066	  			return await $.ajax({ 
6067	  				url: '/o/senac-content-services/geraTokenServicosSenac', 
6068	  				method: 'GET' 
6069	  			}); 
6070
6071	  		return getCookie('tl'); 
6072
6073 
6074      const callListaEspera = async () => { 
6075  	    	var tl = ''; 
6076	    	  try{ 
6077  	    		tl = await callTl(); 
6078  	    		if(getCookie('tl') == null){ 
6079  	    			tl = JSON.parse(tl).token; 
6080  	    			writeCookie('tl', tl, 6, ''); 
6081
6082  	    	}catch(err){ 
6083  	    		console.error(err); 
6084  	    		return {}; 
6085
6086  	    	 
6087  	    	return $.ajax({ 
6088              url: urlStatusEsperaEmed(), 
6089              method: 'GET', 
6090  	        	beforeSend: function (xhr) { 
6091  	        		xhr.setRequestHeader("Authorization", tl); 
6092
6093  			  }) 
6094
6095 
6096      return new Promise(async function (resolve, reject) { 
6097        const resp = await callListaEspera(); 
6098        if(typeof resp !== 'object') resp = JSON.parse(resp); 
6099        let status = resp.STATUS; 
6100        resolve(status); 
6101      }); 
6102	  	 
6103
6104   
6105 function getOfertasAoVivo(codigoFT, dataEfetivaOferta, categoryIds){ 
6106       
6107  if(categoryIds && categoryIds.length) { 
6108    var params = new URLSearchParams(); 
6109    params.set('codigoFTOferta',codigoFT) 
6110    params.set('dataEfetivaOferta',dataEfetivaOferta) 
6111    params.set('categoryIds',categoryIds) 
6112    params.set('start',startOfertaParam) 
6113    params.set('end',endOfertaParam) 
6114    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
6115    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
6116    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
6117 
6118    if($('#chkBolsa').prop('checked')){ 
6119    	params.set('considerarDataBolsaFutura', true) 
6120
6121    const url = urlSearchOferta + '?' + params.toString() 
6122       
6123    $.ajax({ 
6124      url:url, 
6125      method:'get', 
6126      dataType:'json', 
6127      async: false 
6128    }).done( 
6129      function(data){ 
6130         
6131        if(data.length > 0){ 
6132         $('#ssp-alternadores').show() 
6133         showedFilters = true 
6134   
6135         objsTela.ofertasAoVivoTodasUnidades = [] 
6136           
6137          data.forEach(function(ofertaJSON,index){ 
6138   
6139            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
6140             
6141            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
6142            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds)));                
6143            objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
6144   
6145          }); 
6146        } else { 
6147         loadAlternadores(data) 
6148
6149   
6150        populaOfertas(objsTela.ofertasAoVivoTodasUnidades); 
6151        addEventBolsa() 
6152
6153    ).fail(function(e) { 
6154      console.error(e) 
6155      populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []); 
6156    }) 
6157  } else { 
6158    loadAlternadores([]) 
6159    populaOfertas(objsTela.ofertasAoVivoTodasUnidades = []) 
6160
6161 
6162  if(isAoVivo) { 
6163     if(objsTela.ofertasAoVivoTodasUnidades && objsTela.ofertasAoVivoTodasUnidades.length) 
6164       hideCardSemTurmas(true) 
6165     else 
6166       hideCardSemTurmas(false) 
6167
6168
6169    
6170  function mudouToggleOferta(ofertas) { 
6171    const oferta = ofertas && ofertas[0] 
6172    if(!oferta) 
6173      return true 
6174 
6175    const selecaoInscricao = $('#chkInscricao').prop('checked') 
6176    const selecaoBolsa = $('#chkBolsa').prop('checked') 
6177 
6178    return oferta.selecaoInscricao != selecaoInscricao || oferta.selecaoBolsa != selecaoBolsa 
6179
6180 
6181  function loadAlternadores(ofertas) { 
6182    if(showedFilters) { 
6183      $('#ssp-alternadores').show() 
6184      return 
6185
6186 
6187    if($('#unidades-ofertas').is(":hidden") || $('#unidades-ofertas option').length <= 1) { 
6188      if(isAoVivo) { 
6189        if(ofertas && ofertas.length) 
6190          $('#ssp-alternadores').show() 
6191        else { 
6192          if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
6193            $('#ssp-alternadores').hide() 
6194          else 
6195            $('#ssp-alternadores').show() 
6196
6197      } else { 
6198        if(!$('#chkInscricao').prop('checked') && !$('#chkBolsa').prop('checked')) 
6199          $('#ssp-alternadores').hide() 
6200        else 
6201          $('#ssp-alternadores').show() 
6202
6203    } else 
6204      $('#ssp-alternadores').show() 
6205 
6206    showedFilters = showedFilters || $('#ssp-alternadores').is(":visible") 
6207
6208 
6209  function getOfertas(codigoFT, dataEfetivaOferta, categoryId){ 
6210       
6211    var indiceUnidade = -1; 
6212    const selecaoInscricao = $('#chkInscricao').prop('checked') 
6213    const selecaoBolsa = $('#chkBolsa').prop('checked') 
6214      
6215     for(var i = 0; i < objsTela.unidades.length; i++) 
6216         if(objsTela.unidades[i].categoryId == categoryId) 
6217           indiceUnidade = i; 
6218      
6219    ultimaUnidade = indiceUnidade; 
6220           
6221     if( !objsTela.categoriesIds.includes(categoryId) || mudouToggleOferta(objsTela.unidades[indiceUnidade]['ofertas'])){ 
6222       objsTela.unidades[indiceUnidade]['ofertas'] = [] 
6223        
6224        var params = new URLSearchParams(); 
6225        params.set('codigoFTOferta',codigoFT) 
6226        params.set('dataEfetivaOferta',dataEfetivaOferta) 
6227        params.set('categoryIds',categoryId) 
6228        params.set('start',startOfertaParam) 
6229        params.set('end',endOfertaParam) 
6230        params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
6231        params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
6232        params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
6233 
6234        if($('#chkBolsa').prop('checked')){ 
6235        	params.set('considerarDataBolsaFutura', true) 
6236
6237         
6238        const url = urlSearchOferta + '?' + params.toString() 
6239   
6240       $.ajax({ 
6241         url:url, 
6242         method:'get', 
6243         dataType:'json', 
6244         async: false 
6245       }).done( 
6246         function(data){ 
6247            
6248           if(data.length > 0){ 
6249             $('#ssp-alternadores').show() 
6250             showedFilters = true 
6251              
6252             $('.ssp-container-selecione-unidade').show(); 
6253             
6254             data.forEach(function(ofertaJSON,index){ 
6255   
6256               var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
6257                
6258               //Preenche as ofertas da unidade              
6259               objsTela.unidades[indiceUnidade]['ofertas'].push(oferta); 
6260               objsTela.unidades[indiceUnidade]['ofertas'].forEach(o => { 
6261                 o.selecaoInscricao = selecaoInscricao 
6262                 o.selecaoBolsa = selecaoBolsa 
6263               }) 
6264   
6265             }); 
6266           } else { 
6267              loadAlternadores() 
6268
6269           objsTela.categoriesIds.push(categoryId); 
6270           populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
6271           addEventBolsa() 
6272
6273
6274   
6275       //Se estiver na cache, valida as ofertas 
6276     }else{ 
6277        
6278       populaOfertas(objsTela.unidades[indiceUnidade]['ofertas']); 
6279        
6280
6281
6282       
6283   function populaSelectUnidades(unidades, showOptions, unidadeValue){       
6284    var unidadePreSelecionada = false; 
6285    var categoryIdUnidadePreSelecionada = ''; 
6286     
6287    //Oredenacao 
6288    objsTela.unidades.sort(function (a, b) { 
6289    	return ordenar(a, b, 'nome'); 
6290    }); 
6291     
6292    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
6293    	return ordenar(a, b, 'nome'); 
6294      }); 
6295     
6296    //console.log(objsTela.unidades); 
6297     
6298    $.each(objsTela.unidades, function(k,item){ 
6299       
6300      if(getURLData().includes('/'+item.friendlyURL+'/')){ 
6301        unidadePreSelecionada= true; 
6302        categoryIdUnidadePreSelecionada = item['categoryId']; 
6303
6304    }); 
6305     
6306    //console.log('Unidade Pre '+unidadePreSelecionada); 
6307     
6308    if(objsTela.unidades.length == 0){ 
6309      if(!showOptions) 
6310        $('.ssp-container-selecione-unidade').addClass('d-none'); 
6311      $('.oferta-slick-area').empty(); 
6312      $('.prev-mobile').addClass('d-none'); 
6313      $('.next-mobile').addClass('d-none'); 
6314      //EMED remove msg registro interesse 
6315      //if(isEmed) $('.ssp-card-oferta-curso__sem-vaga-description').addClass('d-none'); 
6316
6317     
6318    if(isAoVivo){ 
6319       
6320        const codigoFT = $('[name="codigoFT"]').val(); 
6321    	const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
6322 
6323    	var unidadesCategoryAll = ''; 
6324     
6325    	$.each(objsTela.unidades, function(k,unidade){ 
6326      		unidadesCategoryAll += unidade['categoryId']+','; 
6327        }); 
6328       
6329    //tirando ultima virgula 
6330    unidadesCategoryAll = unidadesCategoryAll.substring(0,unidadesCategoryAll.length - 1); 
6331     
6332    getOfertasAoVivo(codigoFT, dataEfetivaOferta, unidadesCategoryAll);            
6333       
6334    }else{ 
6335      $('#unidades-ofertas').empty() 
6336 
6337      if(objsTela.unidades && objsTela.unidades.length){  
6338        if(isEmed) 
6339          $('#unidades-ofertas').append($('<option value="">Selecione uma unidade</option>')) 
6340        else 
6341          $('#unidades-ofertas').append($('<option value="">Clique na unidade de interesse</option>')) 
6342 
6343      } else 
6344        $('#unidades-ofertas').append($('<option value="">Nenhum resultado encontrado</option>')) 
6345 
6346      let unidadeFounded = criarOptionUnidadesPorRegiao(objsTela.unidades) 
6347       
6348      //Dispara o evento para primeira unidade ou pela friendlyURl da unidade 
6349      if(unidadeValue) { 
6350        $('#unidades-ofertas').val(unidadeValue); 
6351        $('#unidades-ofertas').change(); 
6352      } else if(unidadeFounded){	             
6353        $('#unidades-ofertas').val(unidadeFounded['categoryId']+"@"+unidadeFounded['codigoUnidade']); 
6354        $('#unidades-ofertas').change(); 
6355      } else if(!unidadePreSelecionada) { 
6356        $('#unidades-ofertas').change(); 
6357
6358       
6359      $('.ssp-card-registro-interesse__select.unidades').empty() 
6360      $('.ssp-card-registro-interesse__select.unidades').append('<option value="" disabled selected>Selecione uma unidade</option>') 
6361      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
6362         
6363        $('.ssp-card-registro-interesse__select.unidades').append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
6364      }); 
6365
6366     
6367
6368 
6369   
6370   function mudarUnidade(ev){      
6371     startOfertaParam = 0; 
6372     endOfertaParam = 25; 
6373     carregouUltimaOferta = false; 
6374 
6375     var elem = $(ev.target); 
6376     var unidades = objsTela.unidades; 
6377      
6378     //verifica se selecionou alguma unidade 
6379     if(!elem.val()){ 
6380       $('#informe-novas-turmas, .ssp-ofertas-emed__section, .ssp-ofertas__box-endereco-unidade').addClass('d-none'); 
6381 
6382       if(isEmed) 
6383        $('#ssp-section-response').addClass('d-none') 
6384 
6385        hideCardSemTurmas($('#unidades-ofertas option').length > 1)        
6386 
6387        elem.val('') 
6388        habilitarRegistroInteresse(false) 
6389        //Zera variável que controla existência de ofertas com bolsa 
6390        ofertasComBolsa = false; 
6391        controlaPaginaBolsa(); 
6392        
6393       return; 
6394
6395      
6396     $('#informe-novas-turmas, .ssp-ofertas__box-endereco-unidade').removeClass('d-none'); 
6397     hideCardSemTurmas(true) 
6398     if(isEmed){ 
6399        $('.ssp-ofertas-emed__section').removeClass('d-none'); 
6400        $('#ssp-section-response').removeClass('d-none') 
6401        $('.ssp-card-oferta-curso__section-title').addClass('d-none'); 
6402        $('.prev-mobile, .next-mobile').addClass('d-none'); 
6403        var nomeUnidade = $('#unidades-ofertas option:selected').text(); 
6404        let tamScreen = $(window).width(); 
6405 
6406        if(tamScreen < 1024) 
6407	    	  $('#titulo-emed').text('Turmas ' + anoTurmaEmed ); 
6408        else 
6409        	$('#titulo-emed').text('Turmas ' + anoTurmaEmed + ' - ' + nomeUnidade); 
6410 
6411
6412      
6413     const codigoFT = $('[name="codigoFT"]').val(); 
6414     const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
6415      
6416     //colocamos dentro do option categoryId@codUnidade 
6417     splitted = elem.val().split("@"); 
6418     var categoryIdUnidade = splitted[0]; 
6419     var codUnidade = splitted[1]; 
6420           
6421     for(var i = 0; unidades.length > i ; i++){ 
6422        
6423       if(unidades[i].categoryId == categoryIdUnidade){ 
6424   
6425           var unidade = unidades[i]; 
6426            
6427           //Exibe o endereco da unidade 
6428           const urlBuscaUnidade = urlUnidadeInfoDetalhe 
6429         .replace('\{companyId\}',themeDisplay.getCompanyId()) 
6430         .replace('\{codigoUnidade\}', unidade.codigoUnidade); 
6431            
6432           $.ajax({ 
6433                 url :  urlBuscaUnidade, 
6434                 type : 'get', 
6435                 dataType: 'json', 
6436                 success: function( unidadeInfo ) { 
6437                   if(unidadeInfo != null && typeof unidadeInfo !== 'undefined'){ 
6438                       
6439                       var endereco = concatSTR(unidadeInfo.enderecoUnidade,unidadeInfo.numEnderecoUnidade,', '); 
6440                         endereco = concatSTR(endereco,unidadeInfo.complementoEnderecoUnidade, ' - '); 
6441                         endereco = concatSTR(endereco,unidadeInfo.bairroUnidade, ' - '); 
6442                 
6443                         $('.ssp-ofertas__endereco-unidade').text(endereco); 
6444                         $('.ssp-ofertas__endereco-unidade').attr('href',unidadeInfo.googlemapsUnidade); 
6445
6446                 }, 
6447                 error: function(data){ 
6448                   $('.ssp-ofertas__endereco-unidade').text(''); 
6449                   $('.ssp-ofertas__endereco-unidade').attr('href','#a'); 
6450                     console.log('Unidade não encontrada'); 
6451
6452             }) 
6453           
6454          getOfertas(codigoFT, dataEfetivaOferta, unidades[i].categoryId); 
6455            
6456          habilitarRegistroInteresse(!!(unidades && unidades.length)); 
6457            
6458
6459     }   
6460
6461     
6462   function pegarTextoCartoesAceitos(campo){ 
6463      indice = campo.indexOf(' em até '); 
6464      inicio = 0; 
6465      fim = indice; 
6466       
6467      return campo.substring(inicio, fim); 
6468
6469    
6470   function pegaNumParcela(campo){ 
6471    
6472      indice = campo.indexOf('até '); 
6473      inicio = indice + 4; 
6474      fim = indice +  6; 
6475       
6476      return campo.substring(inicio, fim); 
6477       
6478
6479    
6480   function pegaValorParcela(campo){ 
6481      
6482      indice = campo.indexOf('R$'); 
6483      inicio = indice+2;     
6484      valorAmericano = campo.substring(inicio) 
6485       
6486      return formataValor(valorAmericano); 
6487       
6488
6489    
6490   function montaHTMLOferta(oferta, index, codigoUnidade, posLoad){ 
6491	    
6492    var retornoDiasHorarios = processaDiasHorariosOferta(oferta.horariosAllOferta); 
6493    diasSemanaHTML = ""; 
6494	      
6495    for(var diaDaOferta of retornoDiasHorarios){ 
6496          diasSemanaHTML += htmlSlickAreaDiasSemana.replace('\{diasSemana\}',diaDaOferta.dias); 
6497          diasSemanaHTML = diasSemanaHTML.replace('\{horasSemana\}',diaDaOferta.horario) 
6498		      }    
6499		       
6500    var ofertaHTML = ""; 
6501		 
6502		if(isEmed){ 
6503			 
6504      ofertaHTML = htmlSlickAreaEmed(oferta); 
6505			$('[name="codUnidadeSelecionada"]').val(codigoUnidade); 
6506			 
6507			if(!posLoad) $('.ssp-slick-ofertas-emed').append(ofertaHTML) 
6508			else $('.ssp-slick-ofertas-emed').slick('slickAdd', ofertaHTML); 
6509		}else{ 
6510 
6511 
6512      ofertaHTML = htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) 
6513       
6514      if(!posLoad) 
6515        $('.oferta-slick-area').append(ofertaHTML); 
6516      else 
6517        $('.oferta-slick-area').slick('slickAdd', ofertaHTML); 
6518       
6519      ajustaTextoDiasHorarioOferta(oferta.codigoOferta); 
6520 
6521
6522 
6523    if(turmasIniciadas(oferta.dataInicio)) 
6524    	$("#aviso-turma-iniciada-"+index).show(); 
6525 
6526	//remove os botões/itens de compra/bolsa caso seja preciso 
6527    $('.oferta-slick-area').find('.d-none-btn').remove(); 
6528
6529 
6530 
6531  	//RECEBE A STRING DE HORARIOS E RETORNA UMA LISTA DE OBJETOS COM OS DIAS E HORARIOS FORMATADOS 
6532	//@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"  
6533	function processaDiasHorariosOferta(horariosAllOferta){ 
6534 
6535   		var dias = horariosAllOferta.trim().split(','); 
6536   		let arrayDiasSemana = [{"Seg":"Segunda"},{"Ter":"Terça"},{"Qua":"Quarta"},{"Qui":"Quinta"},{"Sex":"Sexta"},{"Sab":"Sábado"},{"Dom":"Domingo"}] 
6537 
6538   		var arrayDia = []; 
6539   	   	if(dias.length >= 1){ 
6540   		    for(var k=0; dias.length > k; k++){ 
6541   		 		var diasSplit = dias[k].trim().split(' '); 
6542   	          	var diasSemana = diasSplit.shift() 
6543   		      	var ultimaPos = diasSplit.length-1; 
6544   	          	var horasStr = diasSplit[0] + ' às ' + diasSplit[ultimaPos]  
6545   	         	arrayDia.push({horasStr,diasSemana}); 
6546
6547
6548 
6549   		arrayDia = groupByArray(arrayDia, 'horasStr','diasSemana'); 
6550   		arrayDia = orderByArray(arrayDia,arrayDiasSemana); 
6551   		 
6552   		var ret = diaHorarioOfertaFormatado(arrayDia,arrayDiasSemana); 
6553			return ret; 
6554
6555 
6556   //cria um array de objetos Agrupando de acordo ao campo informado como chave.  
6557   //@arr = Array multidimensional que tenha os campos key e valueAdd 
6558   //@key = campo que será chave nesse array 
6559   //@valueAdd = campo que será agrupado caso tenha a mesma informação passada no campo key 
6560   const groupByArray = (arr, key,valueAdd) => { 
6561   		const initialValue = []; 
6562   		const retornoValue = []; 
6563   		arr.forEach((acc, cval) => { 
6564   			const myAttribute = cval[key]; 
6565   			acc[key] in retornoValue ? retornoValue[acc[key]].push(acc[valueAdd]):retornoValue[acc[key]]=[acc[valueAdd]]; 
6566   			return acc; 
6567     		}, initialValue); 
6568   	return retornoValue; 
6569   }; 
6570 
6571 
6572   //Cria um array de objetos a partir do primeiro array inserido e ordenados de acordo a ordem do segundo array informado.  
6573   //@arrayOrdena = Array de objetos que tenha os campos que precisa ser ordenados 
6574   //@ordem = array com a sequencia que queira ordenar - ex: seg, ter, qua, qua 
6575   const orderByArray = (arrayOrdena, ordem) => { 
6576 
6577   	let diasSem = []; 
6578   	const arrayOrdenado = []; 
6579   	let controle; 
6580   	 
6581   	//percorre cada campo existente no ordem e busca o mesmo no arrayOrdena, encontrando insere no arrayOrdenado 
6582   	for(let campo of ordem){	 
6583   		Object.entries(arrayOrdena).forEach(([key, value]) => { 
6584   			for(let diaOferta of value){ 
6585   				if(diaOferta===Object.keys(campo)[0]){ 
6586   					arrayOrdenado[key]=arrayOrdena[key]; 
6587
6588
6589   	    }) 
6590
6591   	return arrayOrdenado; 
6592   }; 
6593 
6594   //retorna o valor de um objeto dentro de um array 
6595   //@objetoBusca = array de objetos que sera buscado o valor 
6596   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
6597   function findValueInObject(objetoBusca, keyBusca){ 
6598   	var retorno = ""; 
6599   	Object.entries(objetoBusca).forEach(([horario, dias]) => { 
6600   		Object.entries(dias).forEach(([key,val]) => { 
6601   			if(key.trim()==keyBusca.trim()){ 
6602   				retorno = val; 
6603
6604   		}); 
6605   	}); 
6606   	return retorno; 
6607
6608 
6609   //Recebe um objeto com valores dos dias da semana e define se sao dias seguidos ou alternados.  
6610   //@arrayComDiasDaSemana = array com os dias da semana a serem validados - exemplo ['Qua','Qui','Sex'] 
6611   //@keyBusca = nome do campo a ser buscada no objeto para pegar o seu valor 
6612   function diasSequenciaisOuAlternados(arrayComDiasDaSemana, arrayDiasDaSemana){ 
6613   	 
6614   	let arrayValidador = []; 
6615   	 
6616   	//cria um array com o index dos dias das semanas encontrados [0 = seg, 1 = ter ... 6 = dom] 
6617   	for(let diaOferta of arrayComDiasDaSemana){ 
6618   		for(let i = 0; i < arrayDiasDaSemana.length; i++){ 
6619   			if(diaOferta === Object.keys(arrayDiasDaSemana[i])[0]){ 
6620   				arrayValidador[i] = true; 
6621   			}				 
6622
6623
6624 
6625   	let keyCompair = 99; 
6626   	var sequencial = true; 
6627 
6628   	//verifica quais posições foram criadas no array, e se os valores delas estão em sequencia. 
6629   	for(let keyValidator of Object.keys(arrayValidador)){ 
6630   		keyValidator = parseInt(keyValidator); 
6631   		if(keyCompair!==99){ 
6632   			if(keyValidator===keyCompair){ 
6633   				sequencial = true; 
6634   			}else{ 
6635   				sequencial = false; 
6636   				break; 
6637
6638
6639   		keyCompair = keyValidator+1; 
6640
6641   	return sequencial; 
6642
6643 
6644 
6645   //Exibe as informações de dia e horario de oferta de acordo a sua estrutura 
6646   //Caso os dias sejam sequenciais exibe a primeiro e ultimo dia da semana ligados com a letra 'a' Ex: Segunda a Quinta  
6647   //Caso os dias Nao sejam sequenciais exibem todos os dias separados por virgula  Ex: Segunda, terça, sexta e domingo 
6648   //@arrayAgrupadoEOrdenado = array de objetos que sera exibido 
6649   //@arrayDiasDaSemana = array com os dias da semana, sendo chave a sigla da semana (ex: Qua) e o valor o nome esperado (ex: Quarta) 
6650   function diaHorarioOfertaFormatado(arrayAgrupadoEOrdenado, arrayDiasDaSemana){ 
6651 
6652   	var stringAux = "";		 
6653   	var listRetorno = []; 
6654   		 
6655   	Object.entries(arrayAgrupadoEOrdenado).forEach(([key, value]) => {		 
6656 
6657   		var sequencial = diasSequenciaisOuAlternados(value, arrayDiasDaSemana); 
6658   		var stringAux = "";		 
6659   		var diaOferta = {}; 
6660 
6661   		if(sequencial){ 
6662   			switch (value.length) { 
6663       			case 1: 
6664   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+": "; 
6665   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6666   					diaOferta.horario = key; 
6667   				break; 
6668   				case 2: 
6669   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6670   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6671   					diaOferta.horario = key; 
6672   				break; 
6673   				default: 
6674          				stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" a "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6675   					 
6676   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6677   					diaOferta.horario = key; 
6678   				break; 
6679   			}	 
6680   		}else{ 
6681   			switch (value.length) { 
6682       			case 2: 
6683   					stringAux = stringAux+findValueInObject(arrayDiasDaSemana,value[0])+" e "+findValueInObject(arrayDiasDaSemana,value[value.length-1])+": "; 
6684   					diaOferta.dias =  stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6685   					diaOferta.horario = key; 
6686   				break; 
6687   				default: 
6688   					var ct = 0; 
6689   					var stringDias=""; 
6690   					for(let v of value){ 
6691       					ct++; 
6692   						ct==value.length ? stringDias=stringDias.substring(0,stringDias.length - 2)+" e "+findValueInObject(arrayDiasDaSemana,v) : stringDias+=findValueInObject(arrayDiasDaSemana,v)+", "; 
6693
6694          				stringAux = stringAux+stringDias+": "; 
6695   					diaOferta.dias = stringAux.charAt(0).toUpperCase() + stringAux.slice(1).toLowerCase(); // somente a primeira maiúscula 
6696   					diaOferta.horario = key; 
6697   				break; 
6698
6699
6700 
6701   		listRetorno.push(diaOferta); 
6702   	}) 
6703   	return listRetorno; 
6704   }; 
6705 
6706 
6707   //Distribui dia e horario com quebra de linha entre eles ou nao dependendo da resolução de tela e tamanho da string 
6708   function ajustaTextoDiasHorarioOferta(codOferta){ 
6709 
6710	   var classOferta = ".codigoOferta_"+codOferta;  
6711	   let oferta = $(classOferta); 
6712 
6713	   let ofertaDiasSemana = $(oferta).find('*[data-dia-hora="dias-semana"]'); 
6714 
6715	   let widthDevice = window.screen.width; 
6716	   let tamLimDesktop = 185; 
6717	 
6718	   if(widthDevice <= 1024){ 
6719	       tamLimDesktop = 180; 
6720
6721	  
6722	   ofertaDiasSemana.each(function(index){ 
6723 
6724		   		   	 
6725	       let widthDiaSemana = $(this).width(); 
6726	 
6727	       let contentDiaHora = $(this).parent().parent().parent(); 
6728	   	 
6729	       if(!(widthDiaSemana <= tamLimDesktop)){ 
6730			   $(this).css("display","block"); 
6731
6732	 
6733		   if(ofertaDiasSemana.length == parseInt(index+1)){ 
6734		       contentDiaHora.css("opacity","1"); 
6735
6736 
6737   		})  
6738
6739 
6740   function getObjBtnComprar(oferta){ 
6741      let obj = {}; 
6742      obj['dataEspacoEx'] = (oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)) ? 'true' : 'false'; 
6743      if($('#manutencao-compra').val()){ 
6744        obj['classeBotao'] = 'disabled manutencao'; 
6745        obj['textoBotao'] = $('#manutencao-compra').val(); 
6746      }  
6747      else{ 
6748        obj['classeBotao'] = oferta.botaoCompraOferta == 'true' ? (oferta.vagasParaCompraOferta == 'true' ? '' : 'disabled') : 'd-none-btn'; 
6749        obj['textoBotao'] = oferta.vagasParaCompraOferta == 'true' ? 'COMPRAR' : 'Vagas esgotadas para compra'; 
6750
6751      return obj; 
6752
6753    
6754     function getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade){ 
6755        
6756       var formaPagtoObj = {}; 
6757	    
6758	     var regNumMaxParce = new RegExp('\{numeroMaxParcelasOferta\}', 'g'); 
6759         var regPrecMaxParce = new RegExp('\{precoVendaMaxParcelaOferta\}', 'g') 
6760 
6761       formaPagtoObj['regIndex']  = index; 
6762       formaPagtoObj['precoCheioOferta'] = formataValor(oferta.precoCheioOferta); 
6763       formaPagtoObj['textoCartoesAceitos'] = oferta.textoCartoesAceitos; 
6764 
6765       formaPagtoObj['numParcelaCartoes'] = oferta.numParcelaCartoes; 
6766       formaPagtoObj['precoParcelaCartoes'] = oferta.precoParcelaCartoes; 
6767       formaPagtoObj['numParcelaBoleto'] = oferta.numParcelaBoleto; 
6768       formaPagtoObj['precoParcelaBoleto'] = oferta.precoParcelaBoleto; 
6769       formaPagtoObj['precoVendaOferta'] = formataValor(oferta.precoVendaOferta); 
6770        
6771       formaPagtoObj['economia'] = formataValor(parseFloat(oferta.precoCheioOferta).toFixed(2) - parseFloat(oferta.precoVendaOferta).toFixed(2)); 
6772       formaPagtoObj['espacoExterno'] = oferta.espacoExterno == 'true' ? 'true' : 'false'; 
6773       formaPagtoObj['dataUnidade'] = codigoUnidade; 
6774       formaPagtoObj['dataEvento'] = oferta.codigoOferta; 
6775       formaPagtoObj['destinoCompra '] = oferta.destinoCompra; 
6776        
6777       //EMED nao restringe o botao 
6778       if(isEmed){ 
6779          let manutencao = $('#manutencao-compra').val();  
6780          formaPagtoObj['textoBotaoComprar'] = manutencao || 'COMPRAR'; 
6781           formaPagtoObj['classeBotaoComprar'] = manutencao ? 'disabled manutencao' : ''; 
6782       }else{ 
6783          let btnComprar = getObjBtnComprar(oferta);  
6784          formaPagtoObj['textoBotaoComprar'] = btnComprar.textoBotao; 
6785           formaPagtoObj['classeBotaoComprar'] = btnComprar.classeBotao; 
6786
6787 
6788       formaPagtoObj['regNumMaxParce'] = oferta.numeroMaxParcelasOferta; 
6789       formaPagtoObj['regPrecMaxParce'] = formataValor(oferta.precoVendaMaxParcelaOferta); 
6790        
6791       //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  
6792       formaPagtoObj['precoAVistaPadraoExt'] = formataValor(oferta.precoVendaOferta); 
6793       var precoContribuinteExtensao = (parseFloat(oferta.precoVendaOferta).toFixed(2) * 0.80).toFixed(2); 
6794       formaPagtoObj['precoContrExt'] = formataValor(precoContribuinteExtensao); 
6795       formaPagtoObj['economiaExt'] = formataValor(parseFloat(oferta.precoVendaOferta).toFixed(2) - precoContribuinteExtensao); 
6796       formaPagtoObj['precoParcelaBoletoExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaBoleto).toFixed(2)); 
6797       formaPagtoObj['precoParcelaCartoesExt'] = formataValor( (precoContribuinteExtensao / oferta.numParcelaCartoes).toFixed(2)); 
6798       formaPagtoObj['precoAVistaContrExt'] = formataValor( (precoContribuinteExtensao * 0.92).toFixed(2)); 
6799          
6800       return formaPagtoObj; 
6801
6802      
6803     function calculaPrecoAvista(precoVendaOferta){ 
6804      return (parseFloat(precoVendaOferta).toFixed(2) * 0.92).toFixed(2); 
6805
6806 
6807     function getParcelasEntradaCartao(dataInicioCurso){ 
6808       
6809      const dCurso = new Date(dataInicioCurso.split("/").reverse().join("-")); 
6810      const dHoje = new Date(); 
6811 
6812      let diffAnos = dCurso.getUTCFullYear() - dHoje.getUTCFullYear(); 
6813      let diffMeses = dCurso.getUTCMonth() - dHoje.getUTCMonth(); 
6814      diffMeses = diffAnos * 12 + diffMeses; 
6815 
6816      return (diffMeses > 4) ? 4 : ((diffMeses<=0) ? 1 : diffMeses); 
6817       
6818
6819 
6820    function createModalFormaPagto(formaPagtoObj, oferta, index) { 
6821      let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
6822      temDesconto = temDesconto && !possuiMensalidade99(oferta)       
6823       
6824      result = ` 
6825        <div id="modalFormaPagto" class="ssp-modal"> 
6826          <div class="ssp-card-modal-forma-pagamento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
6827            <div class="ssp-card-modal-forma-pagamento__header" style="border: 0; margin-bottom: 0 !important;"> 
6828              <h6 class="ssp-card-modal-forma-pagamento__header-title font-weight-bold" style="color:#454F63">Descontos e ` + (temDesconto ? 'pagamento' : 'parcelamento') + `</h6> 
6829              <i class="ssp-card-modal-forma-pagamento__btn-close ssp-card-modal-forma-pagamento__btn-close_` + index + `"></i> 
6830            </div> 
6831
6832        + (temDesconto ? '' : '<div class="ssp-card-oferta-curso__line-divider mt-0 mb-5 mb-md-8"></div>') + 
6833
6834            <div class="ssp-card-modal-forma-pagamento__body">               
6835      `       
6836      if(temDesconto) { 
6837        result = result + ` 
6838             <div> 
6839                <p class="my-0"><strong>Valor com </strong> 
6840                  <span class="ssp-card-oferta-curso__valor-desconto mt-0 mb-0">50% de desconto*</span>                   
6841                </p> 
6842              </div> 
6843              <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>` 
6844               
6845        if($('[name="tipoCurso"]').val() == 'extensao') { 
6846          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>` 
6847        } else { 
6848          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>` 
6849
6850               
6851         
6852        result = result + ` 
6853              <div class="ssp-card-oferta-curso__line-divider mb-5 mb-md-2 mt-2"></div> 
6854              <p class="my-0"><strong>Valor:</strong></p> 
6855              <h6 class="ssp-card-oferta-curso__item-valor-investimento ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
6856              <p class="mt-0 mb-0"><strong>Valor Total: </strong> ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</p> 
6857              <div class="ssp-card-oferta-curso__line-divider mt-4 mb-md-3 mb-4"></div> 
6858              <p class="my-0"><strong>Parcele e garanta mais tempo para pagar:</strong></p> 
6859
6860      } else { 
6861        if(formaPagtoObj.precoCheioOferta == formaPagtoObj.precoVendaOferta) { 
6862          result = result + ` 
6863              <p class="ssp-card-modal-forma-pagamento__valor-desconto mt-n3">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
6864              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
6865              <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> 
6866            </div> 
6867
6868        } else { 
6869          const textoDesc = temDesconto ? 'Valor com 30% de desconto:' : 'Valor com desconto:' 
6870           
6871          result = result + ` 
6872              <small class="ssp-card-oferta-curso__title-item font-weight-bold" style="margin:0;font-size:16px;">` + textoDesc + `</small> 
6873              <p class="ssp-card-modal-forma-pagamento__valor-cheio">R$ <span class="precoCheioOferta">` + formaPagtoObj.precoCheioOferta + `</span></p> 
6874              <p class="ssp-card-modal-forma-pagamento__valor-desconto">R$ <span class="precoVendaOferta">` + formaPagtoObj.precoVendaOferta + `</span></p> 
6875              <p class="ssp-card-modal-forma-pagamento__total-economia">Você economiza <span>R$ <span class="economia">` + formaPagtoObj.economia + `</span></span></p> 
6876              <p class="txt-desconto-oito">Pague à vista e <span style="color:#FC7834;font-weight:bold"> ganhe mais 8% de desconto.</span></p> 
6877              <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> 
6878            </div> 
6879
6880
6881
6882 
6883      let textoParcelaCartoes, textoParcelaBoleto, textoParcelaCartaoComBoleto    
6884      if(temDesconto) { 
6885        const precoParcelaCartoes = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaCartoes)/2, 2)) 
6886        const precoParcelaBoleto = formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(formaPagtoObj.precoParcelaBoleto)/2, 2)) 
6887 
6888        if(formaPagtoObj.numParcelaCartoes) 
6889          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x</span> sem juros</p>` 
6890 
6891        if(formaPagtoObj.numParcelaBoleto) 
6892          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x</span> sem juros</p>` 
6893 
6894      } else { 
6895        if(formaPagtoObj.numParcelaCartoes) 
6896          textoParcelaCartoes = `<p>Em até <span><span class="numParcelaCartoes">` + formaPagtoObj.numParcelaCartoes + `</span>x de R$ <span class="precoParcelaCartoes">` + formaPagtoObj.precoParcelaCartoes + `</span></span> sem juros</p>` 
6897         
6898        if(formaPagtoObj.numParcelaBoleto) 
6899          textoParcelaBoleto = `<p>Em até <span><span class="numParcelaBoleto">` + formaPagtoObj.numParcelaBoleto + `</span>x de R$ <span class="precoParcelaBoleto">` + formaPagtoObj.precoParcelaBoleto + `</span></span> sem juros</p>` 
6900 
6901
6902	   
6903	  if(formaPagtoObj.numParcelaBoleto){ 
6904		  textoParcelaCartaoComBoleto = `<p>1ª parcela em até <span><span class="numParcelaCartoes">` + getParcelasEntradaCartao(oferta.dataInicio) + `</span>x</span> sem juros no cartão + valor </p>`; 
6905          textoParcelaCartaoComBoleto += `<p>restante em até <span><span class="numParcelaBoleto">` + (parseInt(formaPagtoObj.numParcelaBoleto) - 1) + `</span>x</span> sem juros no boleto bancário </p>`; 
6906
6907 
6908      if(temDesconto) {  
6909        result = result + ` 
6910              <div class="ssp-card-modal-forma-pagamento__tipos">` 
6911 
6912        if(textoParcelaBoleto) 
6913          result = result + ` 
6914                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6915                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
6916                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6917                      <p><strong>Boleto Bancário</strong></p>` 
6918                      + textoParcelaBoleto +    
6919                  `</div> 
6920                </div>` 
6921 
6922        if(textoParcelaCartoes) 
6923          result = result + ` 
6924                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
6925                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
6926                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6927                      <p><strong>Cartões</strong></p> 
6928                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
6929                      + textoParcelaCartoes +    
6930                  `</div> 
6931                </div> 
6932              </div> 
6933
6934        if(textoParcelaCartaoComBoleto) 
6935          result = result + ` 
6936                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6937                  <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i> 
6938                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6939                      <p><strong>Cartão + boleto bancário</strong></p>` 
6940                      + textoParcelaCartaoComBoleto +    
6941                  `</div> 
6942                </div>` 
6943      } else { 
6944        result = result + ` 
6945              <div class="ssp-card-modal-forma-pagamento__tipos">` 
6946 
6947        if(textoParcelaCartoes) 
6948          result = result + ` 
6949                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6950                  <i class="ssp-card-modal-forma-pagamento__icon-credit-card"></i> 
6951                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6952                      <p><strong>Cartões</strong></p> 
6953                      <p>(<span class="textoCartoesAceitos">` + formaPagtoObj.textoCartoesAceitos + `</span>)</p>` 
6954                      + textoParcelaCartoes +    
6955                  `</div> 
6956                </div>` 
6957 
6958        if(textoParcelaBoleto) 
6959          result = result + ` 
6960                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start mt-4"> 
6961                  <i class="ssp-card-modal-forma-pagamento__icon-boleto"></i> 
6962                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6963                      <p><strong>Boleto Bancário</strong></p>` 
6964                      + textoParcelaBoleto +    
6965                  `</div> 
6966                </div> 
6967              </div> 
6968
6969 
6970        if(textoParcelaCartaoComBoleto) 
6971          result = result + ` 
6972                <div class="ssp-card-modal-forma-pagamento__tipos-content align-items-start"> 
6973                  <i class="ssp-card-modal-forma-pagamento__icon-boleto-e-cartao fa-solid fa-money-check-dollar"></i> 
6974                  <div class="ssp-card-modal-forma-pagamento__info-cartao"> 
6975                      <p><strong>Cartão + boleto bancário</strong></p>` 
6976                      + textoParcelaCartaoComBoleto +    
6977                  `</div> 
6978                </div>` 
6979
6980 
6981      if(temDesconto) {  
6982        result = result + ` 
6983            <p class="txt-desconto-oito my-0">Pague à vista e ganhe <span style="color:#5ACC75;font-weight:bold">8% de desconto.</span></p> 
6984
6985
6986 
6987      result = result + ` 
6988            <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>` 
6989     
6990      if(temDesconto) {  
6991        result = result + ` 
6992            <a class="btn btn-primary modal-extensao-btn-conheca mt-3" href="/descontos-e-parcelamentos" target="_blank">Conheça os descontos</a> 
6993
6994
6995           
6996      result = result + ` 
6997         </div> 
6998        </div> 
6999
7000 
7001      return result; 
7002
7003      
7004     function montaHTMLModalFormaPgto(oferta, index, codigoUnidade){ 
7005        
7006       var tipoCurso = $('[name="tipoCurso"]').val(); 
7007        
7008       var formaPagtoObj = getObjFormaPagto(oferta,index,tipoCurso,codigoUnidade); 
7009        
7010       var modalFormaPagto 
7011       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)) { 
7012          modalFormaPagto = $('#modalFormaPagtoExt').clone(); 
7013 
7014          $.each(formaPagtoObj, function(k,v){ 
7015            if(modalFormaPagto.find('.'+k).length > 0) 
7016              modalFormaPagto.find('.'+k).text(v); 
7017          }) 
7018        } else if(isEmed) { 
7019          modalFormaPagto = $('#modalPagtoEmed').clone(); 
7020 
7021          $.each(formaPagtoObj, function(k,v){ 
7022            if(modalFormaPagto.find('.'+k).length > 0) 
7023              modalFormaPagto.find('.'+k).text(v); 
7024          }) 
7025        } else 
7026           modalFormaPagto = $(createModalFormaPagto(formaPagtoObj, oferta, index)); 
7027          
7028       modalFormaPagto.removeAttr('id'); 
7029       modalFormaPagto.removeClass('d-none'); 
7030       modalFormaPagto.attr('id','myModal_'+index); 
7031        
7032       if(tipoCurso == 'extensao' && !possuiCriteriosDesconto2022(oferta.dataInicio)){ 
7033          
7034         var botoaoCompraOk = modalFormaPagto.find('.modal-extensao-aluno__btn.ok'); 
7035         botoaoCompraOk.attr('id','btnComprarConhecaDescontoOk_'+index); 
7036          
7037         botoaoCompraOk.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7038         botoaoCompraOk.attr('data-unidade', formaPagtoObj.dataUnidade); 
7039         botoaoCompraOk.attr('data-evento', formaPagtoObj.dataEvento); 
7040         botoaoCompraOk.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7041         botoaoCompraOk.attr('data-index', index); 
7042         botoaoCompraOk.addClass(formaPagtoObj.classeBotaoComprar); 
7043          
7044         var botoaoCompraNot =modalFormaPagto.find('.modal-extensao-aluno__btn.not'); 
7045         botoaoCompraNot.attr('id','btnComprarConhecaDescontoNot_'+index); 
7046          
7047         botoaoCompraNot.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7048         botoaoCompraNot.attr('data-unidade', formaPagtoObj.dataUnidade); 
7049         botoaoCompraNot.attr('data-evento', formaPagtoObj.dataEvento); 
7050         botoaoCompraNot.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7051         botoaoCompraNot.attr('data-index', index); 
7052         botoaoCompraNot.addClass(formaPagtoObj.classeBotaoComprar); 
7053          
7054         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.sim').attr('id','btn-aluno-sim_'+index); 
7055         modalFormaPagto.find('.modal-extensao-btn-aluno-sim-nao.nao').attr('id','btn-aluno-nao_'+index); 
7056          
7057         modalFormaPagto.find('.modal-extensao-voltar-icon').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
7058          
7059         modalFormaPagto.find('.modal-extensao-btn-conheca').attr('id','btnModalExtConheca_'+index); 
7060          
7061         modalFormaPagto.find('.modal-pergunta-aluno-ext').attr('id','modalExtAluno_'+index); 
7062          
7063         modalFormaPagto.find('.msg-alunoSim').attr('id','msg-alunoSim_'+index); 
7064         modalFormaPagto.find('.msg-alunoNao').attr('id','msg-alunoNao_'+index); 
7065          
7066         var botaoCompra = modalFormaPagto.find('.modal-extensao__btn.mt-3');  
7067      
7068       }else{ 
7069   
7070         modalFormaPagto.find('.mt-4').attr('id','content_boleto_'+index); 
7071         modalFormaPagto.find('.ssp-card-modal-forma-pagamento__btn-close').addClass('ssp-card-modal-forma-pagamento__btn-close_'+index); 
7072          
7073         var botaoCompra = modalFormaPagto.find('.btn.w-100'); 
7074   
7075
7076        
7077       if(isEmed){ 
7078          
7079    	   	var elementoPai = modalFormaPagto.find('.ssp-card-modal-forma-pagamento'); 
7080	    		  
7081          //Cria botao inscreva-se ajustado ao modal 
7082          var dadosAbertura = calculaTempoAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta); 
7083          if($('#manutencao-compra').val()){ 
7084            textoBotao = $('#manutencao-compra').val(); 
7085            classeBotao = 'disabled manutencao'; 
7086          }else{ 
7087            if(oferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){ 
7088              textoBotao = 'Lista de espera'; 
7089              classeBotao = 'btn-emed-lista-espera'; 
7090            }else{ 
7091                if (dadosAbertura.bolsaJaAberta || !oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == ''){ 
7092                  if(oferta.etapa == '0020' || oferta.etapa == '0030'){ 
7093                    textoBotao = 'Lista de espera'; 
7094                    classeBotao = 'btn-emed-lista-espera'; 
7095                  }else{ 
7096                    textoBotao = 'Fazer matrícula'; 
7097                    classeBotao = ''; 
7098
7099                }else{ 
7100                  textoBotao = 'Matrícula em '+formataDataAberturaBolsa(oferta.dataAberturaBolsaOferta, oferta.horaAberturaBolsaOferta); 
7101                  classeBotao = 'disabled'; 
7102
7103
7104
7105          criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, 'btnComprarEmedModal_' + index, elementoPai, index); 
7106          preencheDadosEmedModal(oferta, modalFormaPagto); 
7107          
7108       }else{ 
7109	       botaoCompra.attr('id', "btnComprarFormaPgto_"+index); 
7110	       botaoCompra.attr('data-espaco-ex', formaPagtoObj.espacoExterno); 
7111	       botaoCompra.attr('data-unidade', formaPagtoObj.dataUnidade); 
7112	       botaoCompra.attr('data-evento', formaPagtoObj.dataEvento); 
7113	       botaoCompra.attr('data-destino-compra', formaPagtoObj.destinoCompra); 
7114	       botaoCompra.attr('data-index', index); 
7115		   botaoCompra.addClass(formaPagtoObj.classeBotaoComprar); 
7116
7117        
7118       $('.oferta-slick-area_modal').append(modalFormaPagto); 
7119       $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7120        
7121       //Evita o erro de exibição de Nan 
7122       if(oferta.numParcelaBoleto.length == 0){ 
7123    	   $('#content_boleto_'+index).remove(); 
7124
7125
7126 
7127    
7128   function montaHTMLModalLocalRealizacao(oferta, index){ 
7129      
7130     var tituloLocalRealizacao = (localLivreOnline(oferta.localEspacoExterno) && !isHibrido) ? 
7131          '<i class="fas fa-wifi icon-wifi-title__modal"></i> <h6 class="title-idioma-online__modal"> Aulas Online - ao vivo</h6>' 
7132           : '<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>'; 
7133      
7134     if(textoFormatoHibrido.length>0 && oferta.espacoExterno=="true") 
7135             textoFormatoHibrido += '</br>'; 
7136                        
7137     var localRealizacaoHTMLModal = htmlModalLocalRealizacao 
7138         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
7139         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
7140         .replace('\{localEspacoExterno\}',  oferta.espacoExterno=="true"? oferta.localEspacoExterno: "" ) 
7141         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
7142         .replace('\{classeEnderecoRealizacao\}',oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7143         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
7144         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
7145         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
7146         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7147         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
7148         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7149         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
7150         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7151         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
7152        .replace(regIndex, index) 
7153        .replace('\{tituloLocalRealizacao\}', tituloLocalRealizacao) 
7154        .replace('\{classeEntendi\}', (localLivreOnline(oferta.localEspacoExterno)) ? "btn-modal-entendi__idioma-online" : ""); 
7155 
7156        $('.oferta-slick-area_modal').append(localRealizacaoHTMLModal); 
7157        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7158 
7159        if(oferta.ruaEspacoExterno == "") 
7160           $('.localEspacoExternoTexto_'+index).removeClass('ssp-modal-local-realizacao__subtitle'); 
7161
7162    
7163   function  montaHTMLModalAntesCompra(oferta, index, codigoUnidade){ 
7164 
7165    if(isEmed){ 
7166              
7167      $('#modalAntesCompraEmed_' + oferta.indice).remove(); 
7168      const antesCompraHTMLModal = $('#modalAntesCompraEmed').clone(); 
7169      antesCompraHTMLModal.attr('id', 'modalAntesCompraEmed_' + oferta.indice); 
7170      antesCompraHTMLModal.find('.ssp-card-modal-antes-compra__btn-close').addClass('ssp-card-modal-antes-compra__btn-close_'+oferta.indice); 
7171      antesCompraHTMLModal.find('.ssp-card-modal-selecionar-outro__btn-close').addClass('ssp-card-modal-selecionar-outro__btn-close_'+oferta.indice); 
7172      antesCompraHTMLModal.insertAfter('#modalAntesCompraEmed'); 
7173       
7174      if(oferta.etapa == '0010'){ 
7175        if(oferta.permiteListaEspera == statusEmed.ESPERA){ 
7176          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010Espera').removeClass('d-none'); 
7177          antesCompraHTMLModal.find('#btnCompraLocalEmed').text('Ir para lista de espera'); 
7178        }else{ 
7179          antesCompraHTMLModal.find('.textoEmedModalAntesCompra0010').removeClass('d-none'); 
7180
7181      }else{ 
7182    	  antesCompraHTMLModal.find('.textoEmedModalAntesCompra0020e0030').removeClass('d-none'); 
7183
7184 
7185      const btnCompra = antesCompraHTMLModal.find('#btnCompraLocalEmed'); 
7186      btnCompra.attr('id', 'btnCompraLocalEmed_' + oferta.indice); 
7187      btnCompra.attr('offercode', oferta.codigoOferta); 
7188 
7189      btnCompra.on('click', function(ev){ 
7190        ev.preventDefault(); 
7191        execCompraEmed(oferta); 
7192      }); 
7193 
7194    }else{ 
7195    	 
7196   	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
7197 
7198   	 
7199     var antesCompraHTMLModal = htmlModalAntesCompra 
7200         .replace('\{nomeUnidade\}',$('#unidades-ofertas option:selected').text()) 
7201         .replace('\{textoFormatoHibrido\}', textoFormatoHibrido ) 
7202         .replace('\{localEspacoExterno\}', oferta.espacoExterno=="true"? oferta.localEspacoExterno:"" ) 
7203         .replace('\{classeTextoInfoLocalRealizacao\}', (oferta.ruaEspacoExterno != "" && !isHibrido) ? "" : "d-none") 
7204         .replace('\{classeEnderecoRealizacao\}', oferta.ruaEspacoExterno != ""  ? "" : "d-none") 
7205         .replace('\{ruaEspacoExterno\}',oferta.ruaEspacoExterno) 
7206         .replace('\{numeroEspacoExterno\}',oferta.numeroEspacoExterno) 
7207         .replace('\{complementoEspacoExterno\}',oferta.complementoEspacoExterno) 
7208         .replace('\{classeBairroRealizacao\}', oferta.bairroEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7209         .replace('\{bairroEspacoExterno\}',oferta.bairroEspacoExterno) 
7210         .replace('\{classeCidadeRealizacao\}', oferta.cidadeEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7211         .replace('\{cidadeEspacoExterno\}',oferta.cidadeEspacoExterno) 
7212         .replace('\{classeCepRealizacao\}', oferta.cepEspacoExterno != "" && oferta.ruaEspacoExterno != "" ? "" : "d-none") 
7213         .replace('\{cepEspacoExterno\}',oferta.cepEspacoExterno) 
7214         .replace('\{componentBuyConfirmation\}', componentBuyConfirmation(codigoUnidade, oferta, dataEfetivaFormat)) 
7215         .replace('\{linkBtnBolsa\}', linkBolsa(oferta)) 
7216        .replace(regIndex, index);   
7217 
7218        $('.oferta-slick-area_modal').append(antesCompraHTMLModal); 
7219        $('.oferta-slick-area_modal').find('.d-none-btn').remove(); 
7220
7221
7222    
7223   async function populaOfertas(ofertas){ 
7224     
7225     //Zera variável que controla existência de ofertas com bolsa 
7226    ofertasComBolsa = false; 
7227 
7228    objsTela.ofertas = ofertas; 
7229 
7230    if(ofertas && ofertas.length)  
7231      $('#ssp-h3-turmas').show() 
7232    else  
7233      $('#ssp-h3-turmas').hide() 
7234 
7235      if(ofertas && ofertas.length > 1){ 
7236        //remove dupl 
7237        const ofertasDistintas = []; 
7238        ofertas.forEach(oferta => { 
7239          if(ofertasDistintas.filter(dist => dist.codigoOferta == oferta.codigoOferta).length == 0){ 
7240            ofertasDistintas.push(oferta); 
7241
7242        }); 
7243        ofertas = ofertasDistintas; 
7244
7245        
7246     if(isEmed){ 
7247 
7248      $('.btn-filtro[value="0"]').attr('disabled',''); 
7249      $('.ssp-slick-ofertas-emed').empty(); 
7250      // executa a class do slick slider 
7251      $('.ssp-slick-ofertas-emed').removeClass('slick-initialized slick-slider slick-dotted'); 
7252      ofertas = filtraOfertasEtapa(getEtapaSelecionadaEmed(), ofertas); 
7253       
7254
7255 
7256     if(ofertas.length == 0){ 
7257        
7258      if($('#unidades-ofertas').val() || $('#chkInscricao').prop('checked') || $('#chkBolsa').prop('checked')) 
7259        hideCardSemTurmas(false) 
7260        
7261       $('.oferta-slick-area').empty(); 
7262       $('.prev-mobile, .next-mobile').addClass('d-none'); 
7263        
7264       //Mostrar section registro interesse quando nao tiver oferta 
7265       habilitarRegistroInteresse(true); 
7266 
7267        controlaPaginaBolsa() 
7268        if(isEmed) $('.btn-filtro[value="0"]').removeAttr('disabled'); 
7269       return; 
7270
7271      hideCardSemTurmas(true) 
7272      if(!isEmed) $('.prev-mobile, .next-mobile').removeClass('d-none'); 
7273      habilitarRegistroInteresse(false);     
7274     
7275     $('.oferta-slick-area').empty(); 
7276     $('.oferta-slick-area_modal').empty(); 
7277     ofertas = ofertas.sort(function(a, b){ 
7278       return ordenar(a, b, 'ordenar'); 
7279     }); 
7280     // executa a class do slick slider 
7281     $('.oferta-slick-area').removeClass('slick-initialized slick-slider slick-dotted'); 
7282      
7283     //busca o codigoUnidade para o link do ecommerce 
7284     if(!isAoVivo){ 
7285      var selectedUnidade = $('#unidades-ofertas').val().split('@')[0]; 
7286      for(var i=0;objsTela.unidades.length > i ;i++){ 
7287        if(selectedUnidade == objsTela.unidades[i].categoryId) 
7288          codigoUnidade = objsTela.unidades[i].codigoUnidade; 
7289
7290
7291      
7292    // Montar object push - google tag manager - 2 
7293    itensEcommerce = criaItensEcommerce(ofertas); 
7294    sendEventEcommerce("view_item_list", Array.from(itensEcommerce.values())); 
7295 
7296     for(var i=0;ofertas.length > i ;i++){ 
7297   
7298       var oferta = ofertas[i]; 
7299        
7300       //guardando a oferta no map para chamar ajax com infos de bolsa em tempo real 
7301       oferta['indice'] = i; 
7302       ofertasMap.set(oferta.codigoOferta, oferta); 
7303        
7304       if(isAoVivo) 
7305          codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
7306 
7307      if(isEmed && oferta.etapa == '0010'){ 
7308          try{ 
7309            let status = await getStatusEmed(oferta); 
7310            oferta['permiteListaEspera'] = status; 
7311          }catch(err){ 
7312            console.log(err); 
7313
7314
7315       montaHTMLOferta(oferta, i, codigoUnidade, false);  
7316       montaHTMLModalFormaPgto(oferta, i, codigoUnidade);  
7317       montaHTMLModalLocalRealizacao(oferta, i);  
7318       montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
7319       verificaBotaoBolsaSS(oferta); 
7320       verificaCursoAprendizagem(i); 
7321       verificaCursoTrampolim(i, oferta.codigoOferta); 
7322        
7323       associaEventoBtnFormaPagamento(i); 
7324       associaEventoBtnComprar(i);  
7325       associaEventoBtnComprarDentroFormaPgto(i); 
7326       associaEventoBtnLocalRealizacao(i); 
7327       associaEventosFecharModal(i); 
7328       
7329         if($('[name="tipoCurso"]').val() == 'extensao'){ 
7330             associaEventoBtnConheca(i);	 
7331             associaEventoBtnComprarConhecaDescontoOk(i); 
7332             associaEventoBtnComprarConhecaDescontoNot(i); 
7333             associaEventoBtnAlunoNao(i); 
7334             associaEventoBtnAlunoSim(i); 
7335
7336         
7337
7338   
7339     if(isEmed){ 
7340      sliderOfertasEmed(); 
7341      $('.btn-filtro[value="0"]').removeAttr('disabled'); 
7342
7343     else sliderOfertas(); 
7344 
7345     controlaPaginaBolsa() 
7346      
7347
7348 
7349   function hideCardSemTurmas(hide){ 
7350    if(!isEmed){ 
7351      if(hide) 
7352        $('.ssp-card-oferta-curso__sem-vaga').addClass('d-none'); 
7353      else 
7354        $('.ssp-card-oferta-curso__sem-vaga').removeClass('d-none'); 
7355    } else { 
7356      
7357 
7358      if(hide || getEtapaSelecionadaEmed() == "0"){ 
7359        $('.sem-vaga-emed').addClass('d-none'); 
7360      }else{ 
7361        $('.sem-vaga-emed').removeClass('d-none'); 
7362        if($('.sem-vaga-emed.emed-transferencias-space:not(.d-none)').length ) return; 
7363        var tamScreen = $(window).width(); 
7364        if(tamScreen < 768){ 
7365            $('.slick-area-emed').slick({ 
7366            slidesToShow: 2, 
7367            slidesToScroll: 2, 
7368            autoplay: false, 
7369            infinite: false, 
7370            dots: false, 
7371            arrows: false, 
7372            centerPadding: 0, 
7373                        centerMode: false, 
7374            responsive: [ 
7375
7376                    breakpoint: 768, 
7377                    settings: { 
7378                        slidesToShow: 1, 
7379                        slidesToScroll: 1, 
7380                        variableWidth: false, 
7381                        infinite: false, 
7382                        centerPadding: 0, 
7383                        centerMode: false, 
7384                        dots: true, 
7385
7386
7387
7388        }); 
7389
7390
7391
7392
7393    
7394   function verificaCursoAprendizagem(i){ 
7395 
7396      //Esconde elementsos quando o curso é aprendizagem 
7397      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
7398         $('#btnComprar_'+i).remove(); 
7399         $('#container_investimento_'+i).remove(); 
7400         $('#container_forma_pgto_'+i).remove(); 
7401          
7402         var avisoAprendizagem = $('#aviso-curso-aprendizagem').clone(); 
7403         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>' 
7404         avisoAprendizagem.removeAttr('id'); 
7405         avisoAprendizagem.removeClass('d-none'); 
7406         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoAprendizagem); 
7407         $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(btnFormAprendizagem); 
7408
7409
7410    
7411   function verificaCursoTrampolim(i, codOferta){ 
7412     if(ehCursoTrampolim){ 
7413          $('#btnComprar_'+i).remove(); 
7414          $('#container_investimento_'+i).remove(); 
7415          $('#container_forma_pgto_'+i).remove(); 
7416          $('.ssp-card-oferta-curso .codigoOferta_'+codOferta).hide(); 
7417           
7418          var avisoTrampolim = $('#avisoTrampolim').clone(); 
7419          avisoTrampolim.removeAttr('id'); 
7420          avisoTrampolim.removeClass('d-none'); 
7421          $('.card_oferta_'+i+ ' .ssp-card-oferta-curso').append(avisoTrampolim); 
7422
7423
7424    
7425   function verificaBotoesEmed(dadosOferta, verificaBolsa){	            
7426          
7427       if(!verificaBolsa || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){ 
7428         dadosOferta.vagasBolsaOferta = false; 
7429         dadosOferta.botaoBolsaOferta = false; 
7430
7431 
7432       var elementoPai = $('.codigoOferta_'+dadosOferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento'); 
7433                  
7434            //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
7435            var dadosAbertura = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7436              var textoBotao = 'Fazer matrícula'; 
7437              var textoBotaoBolsa = ''; 
7438              var classeBotao = ''; 
7439              var classeBotaoBolsa = ''; 
7440              var exibirBotaoBolsa = false; 
7441              var exibirContador = false; 
7442              var htmlBotaoBolsa = ''; 
7443              var htmlBotao = ''; 
7444                 
7445              //verifica se o botão de concorrer a bolsa deve aparecer 
7446              //Oferta EMED possui bolsa apenas no 1o ano 
7447              if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta && !dadosAbertura.exibirContador){ 
7448                exibirBotaoBolsa = true; 
7449                if($('#manutencao-bolsa').val()){ 
7450                  classeBotaoBolsa = 'disabled manutencao'; 
7451                  textoBotaoBolsa = $('#manutencao-bolsa').val(); 
7452                }else{ 
7453                  if(dadosOferta.vagasBolsaOferta){ 
7454                    classeBotaoBolsa = dadosAbertura.bolsaJaAberta ? '' : 'disabled'; 
7455                    textoBotaoBolsa = dadosAbertura.bolsaJaAberta ? 'Bolsa de estudo' : 'Bolsa em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7456                  }else{ 
7457                    classeBotaoBolsa = 'disabled'; 
7458                    textoBotaoBolsa = 'Bolsas de Estudo Esgotadas'; 
7459
7460
7461
7462                   
7463                  //Verifica se o botão do cronômetro deve aparecer 
7464                  if(dadosAbertura.exibirContador){ 
7465                    textoBotao = dadosAbertura.textoContador; 
7466                    textoBotaoBolsa = dadosAbertura.textoContador; 
7467                    exibirContador = true; 
7468                    exibirBotaoBolsa = false; 
7469                  }else{ 
7470                    if($('#manutencao-compra').val()){ 
7471                      textoBotao = $('#manutencao-compra').val(); 
7472                      classeBotao = 'disabled manutencao'; 
7473                    }else{ 
7474 
7475                      if(dadosOferta.permiteListaEspera == statusEmed.ESPERA && dadosAbertura.bolsaJaAberta){ 
7476                        textoBotao = 'Lista de espera'; 
7477                        classeBotao = 'btn-emed-lista-espera'; 
7478                      }else{ 
7479                        classeBotao = ''; 
7480                        if (dadosAbertura.bolsaJaAberta || !dadosOferta.dataAberturaBolsaOferta || dadosOferta.dataAberturaBolsaOferta == ''){ 
7481                          textoBotao = 'Fazer matrícula'; 
7482                           
7483                          if(dadosOferta.etapa == '0020' || dadosOferta.etapa == '0030'){ 
7484                            textoBotao = 'Lista de espera'; 
7485                            classeBotao = 'btn-emed-lista-espera'; 
7486
7487                           
7488                           
7489                        }else{ 
7490                          textoBotao = 'Matrícula em '+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7491
7492                        if(!dadosAbertura.bolsaJaAberta)  
7493                          classeBotao = 'disabled'; 
7494
7495                    }                                 
7496                     
7497                      criaBotaoInscreverEmed(dadosOferta, textoBotao, classeBotao, 'btnComprarEmed_' + dadosOferta.indice, elementoPai); 
7498
7499                 
7500              if(exibirBotaoBolsa){ 
7501                   
7502              if(!ofertasComBolsa) ofertasComBolsa = true; 
7503 
7504                criaBotaoBolsaEmed(dadosOferta, textoBotaoBolsa, classeBotaoBolsa); 
7505                     
7506              }else if(exibirContador){ 
7507 
7508                if(!ofertasComBolsa && dadosOferta.etapa == '0010') ofertasComBolsa = true; 
7509 
7510                //codigoOferta como index para usar o ofertasMap 
7511                htmlBotao = '<button id="btnContadorComprar_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --inscreva-se">Matrícula em <span>'+textoBotao+'</span></button>'; 
7512                elementoPai.append(htmlBotao); 
7513                 
7514                if(dadosOferta.etapa == '0010' && dadosOferta.botaoBolsaOferta){ 
7515                    htmlBotao = '<button id="btnContadorBolsa_'+ dadosOferta.indice +'" data-index="'+ dadosOferta.codigoOferta +'" class="btn btn-card-investimento --bolsas">Bolsa em <span>'+textoBotaoBolsa+'</span></button>'; 
7516                    elementoPai.append(htmlBotao); 
7517
7518                   
7519
7520 
7521
7522    
7523   function criaBotaoInscreverEmedModal(oferta, textoBotao, classeBotao, idBotao, elementoPai, index){ 
7524     criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai); 
7525     var btnInscr = elementoPai.find('#btnComprarEmedModal_' + index); 
7526     btnInscr.removeClass(btnInscr.classList); 
7527     btnInscr.addClass('btn btn-lg btn-success w-100'); 
7528     btnInscr.attr('style', 'margin-top: 20px;font-weight:600'); 
7529      
7530     //Reposiciona o botao voltar 
7531     var btnVoltar = elementoPai.find('.ssp-btn-emed__voltar-curso'); 
7532     elementoPai.find('.ssp-btn-emed__voltar-curso').remove(); 
7533     elementoPai.append(btnVoltar); 
7534     btnVoltar.addClass('ssp-btn-emed__voltar-curso_'+index); 
7535     btnVoltar.click(() => { 
7536    	 $('[id^="myModal_"]').each(function(index,modal){ 
7537			modal.style.display = "none"; 
7538		}) 
7539	}); 
7540
7541    
7542   function preencheDadosEmedModal(oferta,$modal){ 
7543	   const parcelaEntrada = 1; 
7544	   $modal.find('.numParcelaCartoesBoleto').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
7545	   $modal.find('.precoParcelaCartoesBoleto').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
7546	   $modal.find('.numParcelaEmedModal').text(oferta.numeroMaxParcelasOferta - parcelaEntrada); 
7547	   $modal.find('.precoParcelaEmedModal').text(formataValor(oferta.precoVendaMaxParcelaOferta)); 
7548
7549 
7550    
7551   function criaBotaoInscreverEmed(oferta, textoBotao, classeBotao, idBotao, elementoPai){ 
7552      if(oferta.permiteListaEspera && oferta.permiteListaEspera == statusEmed.NAO_ENCONTRADA) return; 
7553       var htmlBotao = '<button id="'+ idBotao +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --inscreva-se '+ classeBotao +'"><span>'+textoBotao+'</span></button>'; 
7554      elementoPai.append(htmlBotao); 
7555              
7556      if(!classeBotao.includes('disabled')){ 
7557       
7558        elementoPai.on("click", '#'+ idBotao, function(ev){ 
7559          ev.preventDefault(); 
7560          const _modal = $('#modalAntesCompraEmed_'+$(this).data('index')); 
7561          _modal.css('display','flex'); 
7562           
7563           
7564        }); 
7565         
7566
7567 
7568
7569    
7570   function criaBotaoBolsaEmed(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
7571      
7572     var htmlBotao = '<a id="btnBolsa_'+ oferta.indice +'" data-index="'+ oferta.indice +'" class="btn btn-card-investimento --bolsas '+ classeBotaoBolsa +'">'+ textoBotaoBolsa +'</a>'; 
7573     $('.codigoOferta_'+oferta.codigoOferta+' .ssp-ofertas-emed__card-info-investimento').append(htmlBotao); 
7574       
7575     if(!classeBotaoBolsa.includes('disabled')){ 
7576       // Associa o evento de clique no botão de bolsa 
7577       $('#btnBolsa_'+oferta.indice).attr('href', linkBolsa(oferta)); 
7578       $('#btnBolsa_'+oferta.indice).attr('target', '_blank'); 
7579       //$('#btnBolsa_'+oferta.indice).attr('style', 'text-transform:uppercase;'); 
7580 
7581
7582
7583    
7584   function criaBotaoBolsa(oferta, textoBotaoBolsa, classeBotaoBolsa=""){ 
7585	    
7586	   const botao = $('<a>'+ textoBotaoBolsa +'</a>'); 
7587	   botao.attr('id', 'btnBolsa_' + oferta.indice); 
7588	   botao.attr('data-index', oferta.indice); 
7589	   botao.attr('class', 'btn btn-lg btn-info w-100 mt-3 ' + (classeBotaoBolsa || '')); 
7590	   botao.css('font-size', '14px'); 
7591	   botao.css('font-weight', '600'); 
7592	   botao.css('background-color', '#004EFF'); 
7593	   if(!classeBotaoBolsa.includes('disabled')){ 
7594		   if(oferta.espacoExterno == 'true' || (isHibrido && temTextoParaFormatoHibrido)){ 
7595			   botao.attr('data-espaco-ex', 'true'); 
7596			   botao.click((ev)=>{  
7597					 ev.preventDefault();  
7598			         $('#btnCompraLocal_'+oferta.indice).hide(); 
7599			         $('#btnBolsaLocal_'+oferta.indice).show(); 
7600			         const _modal = $('#modalAntesCompra_'+oferta.indice); 
7601			         _modal.css('display','flex'); 
7602				}); 
7603		   }else{ 
7604		   botao.attr('href', linkBolsa(oferta)); 
7605		   botao.attr('target', '_blank'); 
7606
7607
7608	    
7609	   return botao; 
7610    
7611
7612 
7613   function verificaBotaoBolsaSS(oferta, codigoUnidade){ 
7614 
7615      
7616     if(!isEmed && (!oferta.dataAberturaBolsaOferta || oferta.dataAberturaBolsaOferta == '') ) return; 
7617      
7618     if(!ehCursoTrampolim){ 
7619       $.ajax({ 
7620             url :  getUrlConsultaBolsa(oferta), 
7621             type : 'get', 
7622             dataType: 'json', 
7623             beforeSend: function (xhr) { 
7624             xhr.setRequestHeader ("Authorization", "KGG4KMW5s0CVowr7d6y6Ww=="); 
7625             }, 
7626         }) 
7627         .done(function(infosBolsa){ 
7628 
7629            
7630           if(infosBolsa != null && typeof infosBolsa !== 'undefined'){ 
7631        	    
7632             var codigoOfertaRetornoBolsa = infosBolsa.DATA[0].COD_EVENTO; 
7633             var retornoOfertaBolsaSenac = infosBolsa.DATA[0]; 
7634			  
7635			 //Sobrescreve as flags de bolsa com o retorno do serviço SS 
7636             ofertasMap.get(codigoOfertaRetornoBolsa).vagasBolsaOferta = retornoOfertaBolsaSenac.TEM_VAGA_BOLSA; 
7637             ofertasMap.get(codigoOfertaRetornoBolsa).botaoBolsaOferta = retornoOfertaBolsaSenac.BOTAO_BOLSA; 
7638			  
7639             var dadosOferta = ofertasMap.get(codigoOfertaRetornoBolsa); 
7640              
7641             //calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
7642             var dadosAberturaBolsa = calculaTempoAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta, dadosOferta.botaoBolsaOferta); 
7643             var textoBotaoBolsa = ''; 
7644             var classeBotaoBolsa = ''; 
7645             var textoBotaoContadorBolsa = ''; 
7646             var exibirBotaoBolsa = false; 
7647             var exibirContadorBolsa = false; 
7648              
7649             //EMED 
7650           if(isEmed){ 
7651             verificaBotoesEmed(ofertasMap.get(codigoOfertaRetornoBolsa), true); 
7652             return; 
7653
7654              
7655             //Verifica o texto do botão de bolsa 
7656            if($('#manutencao-bolsa').val()) textoBotaoBolsa = $('#manutencao-bolsa').val(); 
7657            else{ 
7658 
7659              if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA){ 
7660                             
7661                if(dadosAberturaBolsa.bolsaJaAberta) 
7662                  textoBotaoBolsa = "Inscrever para bolsa de estudo"; 
7663                   
7664                else 
7665                  textoBotaoBolsa = "Inscrições para bolsas a partir de "+formataDataAberturaBolsa(dadosOferta.dataAberturaBolsaOferta, dadosOferta.horaAberturaBolsaOferta); 
7666 
7667                  if(!ofertasComBolsa){ ofertasComBolsa = true; 
7668
7669              }else 
7670                textoBotaoBolsa = "Vagas esgotadas para bolsas de estudo"; 
7671
7672                 
7673             //verifica se o botão de concorrer a bolsa deve aparecer 
7674             if(retornoOfertaBolsaSenac.BOTAO_BOLSA && !dadosAberturaBolsa.exibirContador){ 
7675                
7676               exibirBotaoBolsa = true; 
7677 
7678               if(!ofertasComBolsa) ofertasComBolsa = true; 
7679                
7680               if(retornoOfertaBolsaSenac.TEM_VAGA_BOLSA && dadosAberturaBolsa.bolsaJaAberta && !$('#manutencao-bolsa').val()){ 
7681                   classeBotaoBolsa = ''; 
7682               }else{ 
7683                   classeBotaoBolsa = 'disabled'; 
7684
7685
7686              
7687             //Verifica se o botão do cronômetro deve aparecer 
7688             if(dadosAberturaBolsa.exibirContador && !$('#manutencao-bolsa').val()){ 
7689               textoBotaoContadorBolsa = dadosAberturaBolsa.textoContador; 
7690               exibirContadorBolsa = true; 
7691
7692              
7693             if(exibirBotaoBolsa) 
7694                $('.codigoOferta_'+codigoOfertaRetornoBolsa+' .ssp-card-oferta-curso .ssp-container-botao-bolsa').append( criaBotaoBolsa(dadosOferta, textoBotaoBolsa, classeBotaoBolsa) ) 
7695             else if(exibirContadorBolsa) 
7696                $('.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>') 
7697             else { 
7698                $('.codigoOferta_'+codigoOfertaRetornoBolsa+'.content-btn-bolsa').hide() 
7699                $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
7700             }      
7701                                   
7702           }else{ 
7703             //EMED 
7704              if(isEmed){ 
7705                verificaBotoesEmed(oferta, false); 
7706
7707
7708 
7709           controlaPaginaBolsa() 
7710         }) 
7711         .fail(function(){  
7712           $('.content-btn-bolsa.codigoOferta_'+oferta.codigoOferta).hide() 
7713           $('.show-price-content.codigoOferta_'+oferta.codigoOferta + ' .ou-separator-desconto').hide() 
7714 
7715             //EMED 
7716           if(isEmed){ 
7717             verificaBotoesEmed(oferta, false); 
7718
7719         }); 
7720          
7721          
7722
7723      
7724
7725 
7726   function controlaPaginaBolsa(){ 
7727    if(ofertasComBolsa) 
7728      $("#ssp-abrir-pagina-bolsa").removeClass("d-none") 
7729    else 
7730      $("#ssp-abrir-pagina-bolsa").addClass("d-none") 
7731
7732 
7733   function associaEventoBtnFormaPagamento(i){ 
7734      var modal = document.getElementById("myModal_"+i); 
7735 
7736      var btn = document.getElementById("myBtn_"+i); 
7737 
7738      if(btn!=null){ 
7739         btn.onclick = function(ev) { 
7740             event.preventDefault() 
7741               
7742               $('#modalExtAluno_'+i).addClass('d-none'); 
7743                
7744             var elem = $(ev.target); 
7745             var _modal = document.getElementById( 
7746                 'myModal_'+elem.data('index')); 
7747             _modal.style.display = "block"; 
7748               $('#myModal_'+i).find('.modal-extensao_content:first-child').removeClass('d-none'); 
7749                
7750
7751
7752      
7753       
7754      
7755       
7756
7757    
7758  	    
7759   function actionBtnComprar(elem){ 
7760            
7761        // Montar object push - google tag manager - 3 
7762        ofertaSelecionada = itensEcommerce.get(elem.attr('data-evento')) 
7763        sendEventEcommerce("select_item", ofertaSelecionada); 
7764        sendEventEcommerce("view_item", ofertaSelecionada); 
7765                
7766               //Verifica se deve exibir o modal com a localização 
7767               if(elem.attr('data-espaco-ex') == 'true'){ 
7768         $('#btnCompraLocal_'+elem.data('index')).show(); 
7769 
7770         //Limpa onclicks para nao repetir execucao 
7771         $('#modalAntesCompra_'+elem.data('index')).off('click', '#btnCompraLocal_'+elem.data('index')) 
7772         $('#modalAntesCompra_'+elem.data('index')).on('click', '#btnCompraLocal_'+elem.data('index'), function () { 
7773          // Montar object push - google tag manager - 4 
7774          sendEventEcommerce("add_to_cart", ofertaSelecionada); 
7775          if( elem.attr('data-destino-compra') != '2' ) 
7776            sendEventEcommerce("begin_checkout", ofertaSelecionada); 
7777         }) 
7778         $('#btnBolsaLocal_'+elem.data('index')).hide(); 
7779         const _modal = $('#modalAntesCompra_'+elem.data('index')); 
7780         _modal.css('display','flex'); 
7781               }else{ 
7782                 var urlCompra  = linkBotaoCompra.replace('\{codigoUnidade\}', elem.attr('data-unidade')).replace('\{codigoOferta\}', elem.attr('data-evento')); 
7783     
7784                 if( elem.attr('data-destino-compra') == '2' ){ 
7785                	 var dataEfetivaFormat = formataDataComBarra($('[name="dataEfetivaSTR"]').val()); 
7786	                  	 
7787                	 addItemBackpack(elem.attr('data-evento'), '#' + elem.attr('id'),elem.attr('data-unidade'), dataEfetivaFormat);    
7788    
7789                 }else{ 
7790                	 window.open(urlCompra, '_blank'); 
7791
7792
7793 
7794        
7795                  
7796
7797    
7798   function associaEventoBtnComprar(i){ 
7799	   var btnComprar = document.getElementById("btnComprar_"+i); 
7800	    
7801	   if(btnComprar != null && !btnComprar.classList.contains('disabled')){ 
7802         btnComprar.onclick = function(ev) { 
7803            
7804               ev.preventDefault() 
7805               var elem = $(ev.target); 
7806               actionBtnComprar(elem); 
7807                
7808
7809
7810
7811    
7812   function associaEventoBtnComprarDentroFormaPgto(i){ 
7813	   var btnComprarFormaPgto = document.getElementById("btnComprarFormaPgto_"+i); 
7814	    
7815	   if(btnComprarFormaPgto != null && !btnComprarFormaPgto.classList.contains('disabled')){ 
7816         btnComprarFormaPgto.onclick = function(ev) { 
7817               event.preventDefault() 
7818                 var elem =  $('#btnComprarFormaPgto_'+i); 
7819               actionBtnComprar(elem); 
7820
7821
7822
7823      
7824     function associaEventoBtnComprarConhecaDescontoOk(i){ 
7825       var btnComprarConhecaDescontoOk = document.getElementById("btnComprarConhecaDescontoOk_"+i); 
7826        
7827       if(btnComprarConhecaDescontoOk != null){ 
7828         btnComprarConhecaDescontoOk.onclick = function(ev) { 
7829                 event.preventDefault() 
7830               var elem = $(ev.target); 
7831                 actionBtnComprar(elem); 
7832
7833
7834
7835    
7836     function associaEventoBtnComprarConhecaDescontoNot(i){ 
7837       var btnComprarConhecaDescontoNot = document.getElementById("btnComprarConhecaDescontoNot_"+i); 
7838        
7839       if(btnComprarConhecaDescontoNot != null){ 
7840         btnComprarConhecaDescontoNot.onclick = function(ev) { 
7841                 event.preventDefault() 
7842                 var elem =  $(ev.target); 
7843                 actionBtnComprar(elem); 
7844
7845
7846
7847      
7848     function associaEventoBtnAlunoNao(i){ 
7849       var btnAlunoNao = document.getElementById("btn-aluno-nao_"+i); 
7850        
7851       if(btnAlunoNao != null){ 
7852         btnAlunoNao.onclick = function(ev) { 
7853                 event.preventDefault() 
7854                 var elem =  $(ev.target); 
7855                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
7856                 elem.closest('.sim').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7857                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
7858                 $('#msg-alunoNao_'+i).removeClass('d-none'); 
7859                 $('#msg-alunoSim_'+i).addClass('d-none');      
7860
7861
7862
7863        
7864     function associaEventoBtnAlunoSim(i){ 
7865       var btnAlunoSim = document.getElementById("btn-aluno-sim_"+i); 
7866        
7867       if(btnAlunoSim != null){ 
7868         btnAlunoSim.onclick = function(ev) { 
7869                 event.preventDefault() 
7870                 var elem =  $(ev.target); 
7871                 elem.addClass('modal-extensao-btn-aluno-sim-ativo'), 
7872                 elem.closest('.nao').removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7873                 elem.parent().siblings().find('button').removeClass('modal-extensao-btn-aluno-sim-ativo') 
7874                 $('#msg-alunoSim_'+i).removeClass('d-none'); 
7875                 $('#msg-alunoNao_'+i).addClass('d-none');              
7876                  
7877
7878
7879     }	    
7880      
7881     function associaEventoBtnConheca(i){ 
7882       var btnModalExtConheca = document.getElementById("btnModalExtConheca_"+i); 
7883        
7884       if(btnModalExtConheca != null){ 
7885         btnModalExtConheca.onclick = function(ev) { 
7886                 event.preventDefault(); 
7887                 var elem =  $(ev.target); 
7888                 elem.closest('.modal-extensao_content').addClass('d-none'); 
7889                 $('#modalExtAluno_'+i).removeClass('d-none'); 
7890                 $('#msg-alunoSim_'+i).addClass('d-none'); 
7891                 $('#msg-alunoNao_'+i).addClass('d-none'); 
7892                 $('#btn-aluno-sim_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7893                 $('#btn-aluno-nao_'+i).removeClass('modal-extensao-btn-aluno-sim-ativo'); 
7894 
7895
7896
7897
7898      
7899   function associaEventoBtnLocalRealizacao(i){ 
7900	   var btnLocalRealizacao = document.getElementById("btnLocalRealizacao_"+i); 
7901	    
7902	   if(btnLocalRealizacao!=null){ 
7903         btnLocalRealizacao.onclick = function(ev) { 
7904                 event.preventDefault(); 
7905               var elem = $(ev.target); 
7906               var _modal = document.getElementById( 
7907                   'modalLocalRealizacao_'+elem.data('index')); 
7908               _modal.style.display = "flex"; 
7909
7910
7911
7912 
7913   function associaEventosFecharModal(i){ 
7914 
7915      var span = document.getElementsByClassName("ssp-card-modal-forma-pagamento__btn-close_"+i); 
7916      var closeModalLocalRealizacao = document.getElementsByClassName("ssp-card-modal-local-realizacao__btn-close_"+i)[0]; 
7917       var closeModalAntesCompra = document.getElementsByClassName("ssp-card-modal-antes-compra__btn-close_"+i)[0]; 
7918       var closeModalSelecionarOutro = document.getElementsByClassName("ssp-card-modal-selecionar-outro__btn-close_"+i)[0]; 
7919       var btnEntendiLocalRealizacao = document.getElementsByClassName("ssp-modal-local-realizacao__btn_"+i)[0]; 
7920       var closeModalBotaoBolsa = document.getElementById("btnBolsaLocal_"+i) 
7921 
7922       if(isEmed){ 
7923    	   var closeModalFormaPagamento = document.getElementsByClassName("ssp-btn-emed__voltar-curso_"+i); 
7924   	      for (const val of closeModalFormaPagamento) {  
7925 
7926   	    	  val.onclick = function() { 
7927   	        	 $('[id^="myModal_"]').each(function(index,modal){ 
7928   	           	 	modal.style.display = "none"; 
7929   	        	 }); 
7930
7931   	      }; 
7932
7933        
7934	  //event close modal 
7935      for (const val of span) {  
7936 
7937    	  val.onclick = function() { 
7938        	 $('[id^="myModal_"]').each(function(index,modal){ 
7939           	 	modal.style.display = "none"; 
7940        	 }); 
7941
7942      }; 
7943   
7944      closeModalLocalRealizacao.onclick = function() { 
7945   
7946           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
7947             modal.style.display = "none"; 
7948              
7949           }); 
7950
7951 
7952       closeModalAntesCompra.onclick = function() { 
7953          
7954           $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7955             modal.style.display = "none"; 
7956           }); 
7957
7958 
7959       closeModalSelecionarOutro.onclick = function() { 
7960          
7961      $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7962          modal.style.display = "none"; 
7963        }); 
7964
7965          
7966       btnEntendiLocalRealizacao.onclick = function() { 
7967          
7968           $('[id^="modalLocalRealizacao_"]').each(function(index,modal){ 
7969             modal.style.display = "none"; 
7970           }); 
7971
7972		 
7973       if(closeModalBotaoBolsa != null){ 
7974	       closeModalBotaoBolsa.onclick = function() { 
7975	          
7976	         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,modal){ 
7977	             modal.style.display = "none"; 
7978	           }); 
7979
7980
7981 
7982       // When the user clicks anywhere outside of the modal, close it 
7983       window.onclick = function(event) { 
7984   
7985         $('[id^="myModal_"]').each(function(index,_modal){ 
7986             if (event.target == _modal)  
7987              _modal.style.display = "none"; 
7988         }); 
7989         $('[id^="modalLocalRealizacao_"]').each(function(index,_modal){ 
7990             if (event.target == _modal)  
7991              _modal.style.display = "none"; 
7992         }); 
7993          
7994         $('[id^="modalAntesCompra_"], [id^="modalAntesCompraEmed_"]').each(function(index,_modal){ 
7995             if (event.target == _modal)  
7996              _modal.style.display = "none"; 
7997         }); 
7998
7999
8000    
8001   function turmasIniciadas(dataInicioCurso){ 
8002     
8003      var hoje = new Date();  
8004      var dataInicioPartes = dataInicioCurso.split('/');  
8005      var dataInicioCursoOferta = new Date(dataInicioPartes[2], dataInicioPartes[1] - 1, dataInicioPartes[0] , hoje.getHours(),hoje.getMinutes(),hoje.getSeconds(),hoje.getMilliseconds()); 
8006 
8007      return dataInicioCursoOferta.getTime() <= hoje.getTime(); 
8008
8009    
8010    
8011   function concatSTR(str1, str2, separador){ 
8012   
8013     if(str2){ 
8014   
8015       return str1+separador+str2; 
8016
8017     return str1; 
8018
8019    
8020   //Formata exibicao de datas conforme especificacao GCR 
8021   function formataPeriodo(dataInicio, dataFim){ 
8022     
8023      var dtInicioPartes = dataInicio.split('/'); 
8024      var dtFimPartes = dataFim.split('/'); 
8025       
8026      //Não exibir o número zero antes dos números e o dia 1 como 1º 
8027      var dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())) +'/'+parseInt(dtInicioPartes[1].trim())+'/'+dtInicioPartes[2].trim(); 
8028      var dFimFormatada = (parseInt(dtFimPartes[0].trim()) == 1 ? '1º' : parseInt(dtFimPartes[0].trim())) +'/'+parseInt(dtFimPartes[1].trim())+'/'+dtFimPartes[2].trim(); 
8029     
8030      //Quando um curso inicia e finaliza dentro do mesmo ano: 17/2 a 25/4/2020 
8031      if(dtInicioPartes[2].trim() == dtFimPartes[2].trim()){ 
8032         
8033        dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim()))+'/'+parseInt(dtInicioPartes[1].trim()); 
8034         
8035        //Quando um curso inicia e finaliza dentro do mesmo mês: 5 a 30/4/2020 
8036        if(dtInicioPartes[1].trim() == dtFimPartes[1].trim()) 
8037          dInicioFormatada = (parseInt(dtInicioPartes[0].trim()) == 1 ? '1º' : parseInt(dtInicioPartes[0].trim())); 
8038
8039     
8040    return dInicioFormatada + ' a ' + dFimFormatada; 
8041
8042    
8043  //Decrementa os contadores de abertudas de bolsa 
8044   function atualizaTempoAberturasBolsas() { 
8045   
8046	  var btnsContador = (isEmed) ? $('[id^="btnContadorBolsa_"], [id^="btnContadorComprar_"]') : $('[id^="btnContadorBolsa_"]'); 
8047	   
8048    btnsContador.each(function() { 
8049       
8050      var index = $(this).data('index'); 
8051      var btnContent = $(this).parent('.ssp-btn-group__content'); 
8052       
8053      if(isEmed){ 
8054     		//EMED filtra ofertas e usa outra lista para referenciar as ofertas carregadas 
8055    	  var dadosAberturaBolsa = calculaTempoAberturaBolsa(ofertasMap.get('' +index).dataAberturaBolsaOferta, ofertasMap.get('' + index).horaAberturaBolsaOferta); 
8056      }else{ 
8057          	//calcula o tempo até abertura da bolsa, se houver (apenas depois das 08hrs) 
8058      var dadosAberturaBolsa = calculaTempoAberturaBolsa(objsTela.ofertas[index].dataAberturaBolsaOferta, objsTela.ofertas[index].horaAberturaBolsaOferta, objsTela.ofertas[index].botaoBolsaOferta); 
8059
8060       
8061      $(this).find('span').text(dadosAberturaBolsa.hours+':'+dadosAberturaBolsa.minutes+':'+dadosAberturaBolsa.seconds); 
8062       
8063      //Se esgotou o contador 
8064      if(dadosAberturaBolsa.hours == 0 && dadosAberturaBolsa.minutes == 0 && dadosAberturaBolsa.seconds == 0){ 
8065         
8066    	var elId = $(this).attr('id'); 
8067    	   
8068        //remove o contador 
8069        $(this).remove(); 
8070         
8071        //Habilitar inscrição EMED 
8072        if(isEmed){ 
8073          var ofertaEmed = ofertasMap.get('' +index); 
8074        var elementoPai = $('.codigoOferta_'+ofertaEmed.codigoOferta+' .ssp-ofertas-emed__card-info-investimento'); 
8075         
8076          if(elId.indexOf('btnContadorBolsa') >= 0){ 
8077              if($('#manutencao-bolsa').val())   
8078                criaBotaoBolsaEmed(ofertaEmed, $('#manutencao-bolsa').val(), 'disabled manutencao'); 
8079              else if(ofertaEmed.vagasBolsaOferta == true || ofertaEmed.vagasBolsaOferta == "true") 
8080                criaBotaoBolsaEmed(ofertaEmed, 'Bolsa de estudo', ''); 
8081              else 
8082                criaBotaoBolsaEmed(ofertaEmed, 'Bolsas de Estudo Esgotadas', 'disabled'); 
8083          }else if(elId.indexOf('btnContadorComprar') >= 0){ 
8084	       		 
8085        	  	var textoBotao, classeBotao; 
8086        	   
8087              textoBotao = $('#manutencao-compra').val() || 'Fazer matrícula'; 
8088              classeBotao = $('#manutencao-compra').val() ? 'disabled manutencao' : ''; 
8089             
8090 
8091            criaBotaoInscreverEmed(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmed_' + ofertaEmed.indice, elementoPai); 
8092             
8093            //Altera o botao do modal de pagamento 
8094            var btnIndex = elId.slice(elId.indexOf('_')+1); 
8095            var modal = $('#myModal_' + btnIndex).find('.ssp-card-modal-forma-pagamento'); 
8096            var btnModal = modal.find('#btnComprarEmedModal_' + btnIndex); 
8097            if(btnModal){ 
8098              btnModal.remove();					   
8099              criaBotaoInscreverEmedModal(ofertaEmed, textoBotao, classeBotao, 'btnComprarEmedModal_' + btnIndex, modal, btnIndex); 
8100              preencheDadosEmedModal(ofertaEmed,modal); 
8101
8102 
8103 
8104          }	         
8105           
8106        }else{ 
8107         
8108	        //Checa as condições das vagas do botão de bolsa 
8109          var btnBolsaHTML = null; 
8110          if($('#manutencao-bolsa').val())   
8111            btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], $('#manutencao-bolsa').val(), 'disabled manutencao'); 
8112	        else if(objsTela.ofertas[index].vagasBolsaOferta == true || objsTela.ofertas[index].vagasBolsaOferta == "true") 
8113        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Inscrever para bolsa de estudo'); 
8114	        else 
8115        	  btnBolsaHTML = criaBotaoBolsa(objsTela.ofertas[index], 'Vagas esgotadas para bolsas de estudo', 'disabled'); 
8116	         
8117            $('.codigoOferta_'+ objsTela.ofertas[index].codigoOferta +'.ssp-container-botao-bolsa').append(btnBolsaHTML); 
8118	         
8119 
8120
8121
8122       
8123    }); 
8124    
8125
8126    
8127   // Retorna um objeto com o tempo de abertura da bolsa, em horas, minutos e segundos 
8128    function calculaTempoAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa, botaoBolsa){ 
8129       
8130        var dadosAberturaBolsa = { 
8131              days : '', 
8132            hours : '', 
8133            minutes : '', 
8134            seconds : '', 
8135            bolsaJaAberta: false, 
8136            exibirContador: false, 
8137            textoContador: '' 
8138          }; 
8139       
8140      if(dataAberturaBolsa.length == 0 || horaAberturaBolsa.length == 0) 
8141         return dadosAberturaBolsa; 
8142       
8143      var now = todayG; 
8144      var dia = now.getDate(); 
8145      var horarioDia = now.getHours(); 
8146         
8147      var tempoRestante= tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa); 
8148       
8149      //console.log('tempo restante '+tempoRestante); 
8150       
8151      var diaAberturaBolsa = dataAberturaBolsa.split('-')[2]; 
8152     
8153      var delta = tempoRestante / 1000; 
8154       
8155      var days = Math.floor(delta / 86400); 
8156       
8157      delta -= days * 86400; 
8158       
8159      var hours = Math.floor(delta / 3600) % 24; 
8160      delta -= hours * 3600; 
8161       
8162      var minutes = Math.floor(delta / 60) % 60; 
8163      delta -= minutes * 60; 
8164       
8165      var seconds = Math.floor(delta % 60); 
8166       
8167      //Zerar contador para data que ja passou 
8168      if(days < 0){ 
8169          dadosAberturaBolsa.days = 0; 
8170          dadosAberturaBolsa.hours = '00'; 
8171          dadosAberturaBolsa.minutes = '00'; 
8172          dadosAberturaBolsa.seconds = '00'; 
8173      }else{ 
8174          dadosAberturaBolsa.days = days; 
8175          dadosAberturaBolsa.hours = hours < 10 ? '0'+hours : hours; 
8176          dadosAberturaBolsa.minutes = minutes < 10 ? '0'+minutes : minutes; 
8177          dadosAberturaBolsa.seconds = seconds < 10 ? '0'+seconds : seconds; 
8178
8179 
8180      dadosAberturaBolsa.bolsaAberta = days <= 0 && hours <= 0 && minutes <= 0 && seconds <= 0; 
8181      var horaExibeContador = 8; 
8182      if(!isEmed && botaoBolsa == false){ 
8183    	  dadosAberturaBolsa.exibirContador = false; 
8184      }else{ 
8185          dadosAberturaBolsa.exibirContador = days == 0 && horarioDia >= horaExibeContador && !dadosAberturaBolsa.bolsaAberta && (diaAberturaBolsa == dia); 
8186          dadosAberturaBolsa.textoContador = dadosAberturaBolsa.hours + ':' + dadosAberturaBolsa.minutes + ":"+ dadosAberturaBolsa.seconds; 
8187
8188      dadosAberturaBolsa.bolsaJaAberta = tempoRestante < 0; 
8189       
8190      return dadosAberturaBolsa; 
8191   
8192
8193    
8194   // Verifica se uma oferrta já chegou sua data de abertura 
8195   function tempoRestanteAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
8196     // console.log(dataAberturaBolsa); 
8197     // console.log(horaAberturaBolsa); 
8198       
8199      //var today = new Date(); 
8200       
8201       
8202      //console.log( "TodayG "+ todayG); 
8203       
8204      //Precisa fazer formatação nos horários pois pode estar como 9h ou 9h30 
8205      var partesHora = horaAberturaBolsa.split('h'); 
8206       
8207      var partesHora = partesHora.filter(function (el) { 
8208        return el != ""; 
8209      }); 
8210       
8211      //formato 9h 
8212      if(partesHora.length == 1) 
8213        var aberturaBolsa = new Date(dataAberturaBolsa+'T'+horaAberturaBolsa.replace('h', '').trim()+":00"); 
8214   
8215      else{ 
8216         
8217        //format 9h3 
8218        if(partesHora[1].length == 1) 
8219          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1] +'0'); 
8220           
8221        //formato 9h30 
8222        else 
8223          var aberturaBolsa = new Date(dataAberturaBolsa+'T'+partesHora[0].replace('h', '').trim()+':'+partesHora[1]); 
8224
8225        
8226     // console.log(aberturaBolsa); 
8227      return aberturaBolsa - todayG; 
8228
8229    
8230   function formataDataAberturaBolsa(dataAberturaBolsa, horaAberturaBolsa){ 
8231      var dataPartes = dataAberturaBolsa.split('-'); 
8232       
8233      return dataPartes[2]+'/'+dataPartes[1]+ ' às '+horaAberturaBolsa.replace('h', '').trim()+' horas'; 
8234       
8235
8236   
8237   function formataValor(valor){ 
8238       
8239      if(!valor.toString().includes(".")){ 
8240        valor = parseFloat(valor).toLocaleString('pt-BR')+",00"; 
8241      }else{ 
8242         valor = parseFloat(valor).toLocaleString('pt-BR'); 
8243          
8244         if(valor.split(",").length == 2){ 
8245            
8246           if(valor.split(",")[1].length == 1) 
8247              valor += "0"; 
8248            
8249         }else 
8250           valor += ",00"; 
8251
8252       
8253      return valor; 
8254
8255 
8256  function ajustarCasasDecimaisSemArredondar(numero, casas) { 
8257    const str = numero + '' 
8258    const arr = str.split('.') 
8259    return parseFloat(arr[0].concat('.').concat(arr[1] ? arr[1].substring(0, casas) : '0')) 
8260
8261 
8262  function possuiCriteriosDesconto2022(dt) { 
8263    return dt.substring(dt.lastIndexOf('/') + 1) >= 2022 
8264      && ( 
8265        $('[name="tipoCurso"]').val() == 'livre' 
8266        || ($('[name="tipoCurso"]').val() == 'tecnico' && $('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
8267        || $('[name="tipoCurso"]').val() == 'extensao' 
8268
8269
8270 
8271  function strToFloat(str) { 
8272    const separator = str.includes(',') ? ',' : '.' 
8273 
8274    const numArr = str.split(separator) 
8275    const inteiro = numArr[0].replaceAll('.', '').replaceAll(',', '.') 
8276    const decimal = numArr[1] ? numArr[1].replaceAll('.', '').replaceAll(',', '.') : '' 
8277    return parseFloat(inteiro.concat('.').concat(decimal ? decimal : '0')) 
8278
8279 
8280  function possuiMensalidade99(oferta) { 
8281    if(!oferta.precoVendaMaxParcelaOferta  
8282    || (oferta.precoVendaMaxParcelaOferta != 99 
8283    && parseFloat(oferta.precoParcelaCartoes.replace(',','.')) != 99 
8284    && parseFloat(oferta.precoParcelaBoleto.replace(',','.')) != 99)) 
8285      return false 
8286 
8287    if($('[name="modalidades"]').val() == 'hab.-tecnica-de-nivel-medio') 
8288      return true 
8289 
8290    if($('[name="modalidades"]').val() == 'espec.-tecnica-de-nivel-medio') 
8291      return true 
8292 
8293    if($('[name="modalidades"]').val() == 'qualificacao-profissional') 
8294      return true 
8295     
8296    return false 
8297
8298    
8299  function htmlSlickArea(index, oferta, diasSemanaHTML, codigoUnidade) { 
8300    let temDesconto = possuiCriteriosDesconto2022(oferta.dataInicio) 
8301    temDesconto = temDesconto && !possuiMensalidade99(oferta) 
8302     
8303    const btnLocalReal = function(oferta){ 
8304       
8305          var btn = `<div class="container-local-realizacao ` + ((oferta.espacoExterno == 'true'|| (isHibrido && temTextoParaFormatoHibrido))  ? '' : 'd-none-btn') + (localLivreOnline(oferta.localEspacoExterno) ? ' idioma-online' : '') + `">`; 
8306       
8307      btn += (localLivreOnline(oferta.localEspacoExterno)) ? 
8308            `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="btn-idiomas__aula-online" href="#"> 
8309            <i class="fas fa-wifi"></i>Aulas Online - ao vivo</a>` 
8310            : `<a id="btnLocalRealizacao_` + index + `" data-index="` + index + `" class="ssp-card-oferta-curso__local-realizacao-content__title" href="#"> 
8311            <i class="fas fa-user"></i>Onde as aulas vão acontecer?</a>`; 
8312       
8313        btn += `</div>`; 
8314         
8315      return btn; 
8316     
8317
8318 
8319    // Card Oferta 
8320     
8321    let result = ` 
8322        <div class="slick-area__item card_oferta_` + index + ` codigoOferta_` + oferta.codigoOferta + ` ` + (temDesconto ? 'ssp-desconto-2022' : '') + `"> 
8323 
8324          <div class="ssp-card-oferta-curso"> 
8325 
8326            <div class="content-data-dias"> 
8327 
8328              <div class="ssp-card-oferta__info-turma-iniciada" id="aviso-turma-iniciada-` + index + `" style="display:none"> 
8329                <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> 
8330              </div> 
8331 
8332 
8333              <div> 
8334                <small class="ssp-card-oferta-curso__title-item">Período:</small> 
8335                <h6 class="ssp-card-oferta-curso__item-data-periodo item-data-periodo_` + index + `">` + formataPeriodo(oferta.dataInicio, oferta.dataFim) + `</h6> 
8336	          </div> 
8337	 
8338              <div class="content-horario-dias-semana"> 
8339	 
8340                <div class="horario"> 
8341                  <small class="ssp-card-oferta-curso__title-item">Horário e dias das aulas:</small> 
8342                </div> ` + 
8343	 
8344                `<div class="ssp-card-oferta-curso__dia-hora_content"> 
8345                  ` + diasSemanaHTML + ` 
8346	              </div> 
8347	 
8348	          </div> 
8349	 
8350      ` + btnLocalReal(oferta); 
8351 
8352      result = result + ` 
8353        </div> 
8354
8355      
8356      //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 
8357      //Adicionada a validação dos preços da oferta em 07/06/2022 - Tarefa 9498 
8358      const estaSemValorOferta =   oferta.botaoCompraOferta == ''  
8359                          || oferta.botaoCompraOferta == 'false'  
8360                          || !oferta.precoVendaOferta  
8361                          || !oferta.precoCheioOferta  
8362                          || !oferta.precoVendaMaxParcelaOferta 
8363                          || strToFloat(oferta.precoVendaOferta) == 0 
8364                          || strToFloat(oferta.precoCheioOferta)  == 0 
8365                          || strToFloat(oferta.precoVendaMaxParcelaOferta)  == 0 
8366      
8367      //Trecho inicial do Bolsa de estudo 
8368      result += `<div class="content-btn-bolsa codigoOferta_` + oferta.codigoOferta + (estaSemValorOferta ? ' pb-0' : '') + `"> 
8369                  <div class="ssp-card-oferta__info-turma-content"> 
8370                    <h6 class="ssp-card-oferta__info-turma mb-0">Bolsas de estudo</h6> 
8371                  </div> 
8372                  <div class="codigoOferta_` + oferta.codigoOferta + ` ssp-container-botao-bolsa"></div>    
8373                </div>                
8374
8375     
8376    if(estaSemValorOferta) { 
8377      result = result + ` 
8378      		<div class="content-buttons hide"> 
8379			  </div> 
8380
8381      return result; 
8382
8383 
8384	 
8385    //Trecho final do Bolsa de estudo e inclusao de botao de expansao do "Valores para compra" 
8386    result += ` <div class="show-price-content codigoOferta_` + oferta.codigoOferta + `"> 
8387                  <div class="ou-separator-desconto">Ou</div> 
8388                  <button type="button" class="btn-show-price"> 
8389                    <p>Saiba mais sobre:</p> 
8390                    <div onclick="togglePriceCard('codigoOferta_` + oferta.codigoOferta + `')"> 
8391                      <i class="fas fa-money-bill"></i> 
8392                      <span>Valores para compra</span> 
8393                    </div> 
8394                  </button> 
8395                </div> 
8396
8397 
8398    result = result + ` 
8399          <div class="content-valores-descontos hide-price codigoOferta_` + oferta.codigoOferta + `"> 
8400
8401         
8402    if( temDesconto && !ehCursoTrampolim ) { 
8403      result = result + ` 
8404            <div class="ssp-card-oferta__info-turma-content"> 
8405              <h6 class="ssp-card-oferta__info-turma">Valores para compra</h6> 
8406            </div> 
8407	 
8408            <div class="block-valor-desconto"> 
8409	          	 
8410            <div class="tag-label-desconto"> 
8411              <small class="ssp-card-oferta-curso__title-item">Valor com </small> 
8412              <span class="ssp-card-oferta-curso__valor-desconto">50% de desconto*</span> 
8413	      </div> 
8414	 
8415            <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> 
8416 
8417            <div class="ssp-card-oferta-curso__desconto-content"> 
8418              <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta), 2)) + `</span></p> 
8419              <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaOferta)/2, 2)) + `</span></p> 
8420            </div> 
8421
8422           
8423      if($('[name="tipoCurso"]').val() == 'extensao') { 
8424        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>` 
8425      } else { 
8426        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>` 
8427
8428   
8429      result = result + ` 
8430          <div class="ou-separator-desconto">Ou</div> 
8431       
8432          <div class="block-valor-total"> 
8433 
8434            <small class="ssp-card-oferta-curso__title-item">Valor sem desconto:</small> 
8435 
8436            <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8437 
8438            <div class="ssp-card-oferta-curso__desconto-content"> 
8439              <p>Valor total: <strong>R$ ` + formataValor(strToFloat(oferta.precoVendaOferta)) + `</strong></p> 
8440            </div> 
8441             
8442          </div> 
8443
8444                 		 }else{ 
8445                 			 
8446      // itens que são diferentes entre técnico e livres comprado a extensão 
8447      if($('[name="tipoCurso"]').val() == 'extensao'){ 
8448        result = result + ` 
8449 
8450          <div class="block-valor-total"> 
8451 
8452            <div class="investimento" id="container_investimento_` + index + `"> 
8453 
8454              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
8455 
8456              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(ajustarCasasDecimaisSemArredondar(strToFloat(oferta.precoVendaMaxParcelaOferta))) + `</h6> 
8457 
8458              <div class="ssp-card-oferta-curso__desconto-content"> 
8459                <p>Ou: <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span> à vista</p> 
8460              </div> 
8461 
8462            </div>   
8463 
8464          </div> 
8465
8466      } else { 
8467        result = result + ` 
8468          <div class="block-valor-total"> 
8469            <div class="investimento" id="container_investimento_` + index + `"> 
8470
8471   
8472        // Não mostrar mensagem de 30% de desconto em casos especificos 
8473        if(temDesconto){ 
8474          result = result + ` 
8475              <small class="ssp-card-oferta-curso__title-item font-weight-bold">Valor com 30% de desconto:</small> 
8476
8477
8478   
8479        if(oferta.precoCheioOferta == oferta.precoVendaOferta) {        
8480          result = result + ` 
8481              <small class="ssp-card-oferta-curso__title-item">Valor do curso:</small> 
8482              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8483 
8484              <div class="ssp-card-oferta-curso__desconto-content"> 
8485                <p>Ou <span class="ssp-card-oferta-curso__valor-antigo text-decoration-none">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
8486              </div> 
8487            </div> 
8488            </div> 
8489          `   
8490        } else { 
8491          result = result + ` 
8492              <small class="ssp-card-oferta-curso__title-item">Investimento:</small> 
8493              <h6 class="ssp-card-oferta-curso__item-valor-investimento"><span>` + oferta.numeroMaxParcelasOferta + `x</span>R$ ` + formataValor(oferta.precoVendaMaxParcelaOferta) + `</h6> 
8494 
8495              <div class="ssp-card-oferta-curso__desconto-content"> 
8496                <p>De: <span class="ssp-card-oferta-curso__valor-antigo">R$ ` + formataValor(oferta.precoCheioOferta) + `</span></p> 
8497                <p>Por: <span class="ssp-card-oferta-curso__valor-desconto">R$ ` + formataValor(oferta.precoVendaOferta) + `</span></p> 
8498              </div> 
8499            </div> 
8500            </div> 
8501          `    
8502
8503
8504
8505 
8506    let dataBtnComprar = getObjBtnComprar(oferta); 
8507     
8508    // itens que são diferentes entre técnico e livres comprado a extensão   
8509    result = result + ` 
8510 
8511              <div class="ssp-card-oferta-curso__formas-pagamento-content"  id="container_forma_pgto_` + index + `"> 
8512                 
8513                <span>Saiba mais sobre:</span> 
8514 
8515                <div> 
8516                  <i class="ssp-card-oferta-curso__formas-pagamento-content__icon-credit-card"></i> 
8517                  <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> 
8518                </div> 
8519 
8520              </div> 
8521 
8522            <div class="content-buttons"> 
8523 
8524              <div class="ssp-btn-group__content botoes-oferta-container_` + index + `"> 
8525 
8526				<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> 
8527 
8528              </div> 
8529 
8530            </div> 
8531 
8532          </div> 
8533 
8534        </div> 
8535
8536 
8537    return result 
8538
8539   
8540  var htmlModalLocalRealizacao = '<div id="modalLocalRealizacao_{index}" class="ssp-modal">' 
8541     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao">' 
8542     htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__title-content">' 
8543 
8544    htmlModalLocalRealizacao += '{tituloLocalRealizacao}' 
8545          
8546    htmlModalLocalRealizacao += '<i class="ssp-card-modal-local-realizacao__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
8547    htmlModalLocalRealizacao += '</div>' 
8548    htmlModalLocalRealizacao += '<div class="ssp-modal-local-realizacao__texto">' 
8549    htmlModalLocalRealizacao += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
8550    htmlModalLocalRealizacao += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
8551    htmlModalLocalRealizacao += '<address>' 
8552    htmlModalLocalRealizacao += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
8553    htmlModalLocalRealizacao += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
8554    htmlModalLocalRealizacao += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
8555    htmlModalLocalRealizacao += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
8556    htmlModalLocalRealizacao += '</address>' 
8557    htmlModalLocalRealizacao += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
8558    htmlModalLocalRealizacao += '<a class="btn ssp-modal-local-realizacao__btn {classeEntendi} ssp-modal-local-realizacao__btn_{index}" href="#a">Entendi</a>' 
8559    htmlModalLocalRealizacao +='</div>' 
8560    htmlModalLocalRealizacao +='</div>' 
8561    htmlModalLocalRealizacao +='</div>' 
8562    htmlModalLocalRealizacao +='</div>'; 
8563   
8564    var htmlModalAntesCompra = '<div id="modalAntesCompra_{index}" class="ssp-modal">' 
8565      htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao">' 
8566    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__title-content">' 
8567    htmlModalAntesCompra += '<h6 class="ssp-modal-local-realizacao__title"> LEMBRETE IMPORTANTE!</h6>' 
8568    htmlModalAntesCompra += '<i class="ssp-card-modal-antes-compra__btn-close_{index} ssp-card-modal-forma-pagamento__btn-close"></i>' 
8569    htmlModalAntesCompra += '</div>' 
8570    htmlModalAntesCompra += '<div class="ssp-modal-local-realizacao__texto">' 
8571    htmlModalAntesCompra += '<p class="{classeTextoInfoLocalRealizacao}">A unidade {nomeUnidade} realizará as aulas em outro endereço, conforme informações abaixo:</p>' 
8572    htmlModalAntesCompra += '<p><span class="ssp-modal-local-realizacao__subtitle localEspacoExternoTexto_{index}">{textoFormatoHibrido}{localEspacoExterno}</span></p>' 
8573    htmlModalAntesCompra += '<address>' 
8574    htmlModalAntesCompra += '<span id="endereco_realizacao_{index}" class="{classeEnderecoRealizacao}">{ruaEspacoExterno}, {numeroEspacoExterno} {complementoEspacoExterno}<br></span>' 
8575    htmlModalAntesCompra += '<span id="bairro_realizacao_{index}" class="{classeBairroRealizacao}">Bairro: {bairroEspacoExterno}<br></span>' 
8576    htmlModalAntesCompra += '<span id="cidade_realizacao_{index}" class="{classeCidadeRealizacao}">Cidade: {cidadeEspacoExterno} - SP<br></span>' 
8577    htmlModalAntesCompra += '<span id="cep_realizacao_{index}" class="{classeCepRealizacao}">CEP: {cepEspacoExterno}</span>' 
8578    htmlModalAntesCompra += '</address>' 
8579    htmlModalAntesCompra += '<div class="btn ssp-modal-local-realizacao__btn-content">' 
8580    htmlModalAntesCompra += '{componentBuyConfirmation}' 
8581    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>' 
8582    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>' 
8583    htmlModalAntesCompra +='</div>' 
8584    htmlModalAntesCompra +='</div>' 
8585    htmlModalAntesCompra +='</div>' 
8586    htmlModalAntesCompra +='</div>'; 
8587          
8588   var htmlSlickAreaDiasSemana = '<div class="ssp-card-oferta-curso__dia-hora-item">' 
8589   	 htmlSlickAreaDiasSemana +='<p class="ssp-card-oferta-curso__dia-hora-item__dia">'  
8590     htmlSlickAreaDiasSemana += '<span data-dia-hora="dias-semana">{diasSemana}</span>' 
8591     htmlSlickAreaDiasSemana += '<span data-dia-hora="horário">{horasSemana}</span>' 
8592     htmlSlickAreaDiasSemana += '</p>' 
8593   	 htmlSlickAreaDiasSemana += '</div>'; 
8594    	         
8595      
8596  //Montar object push - google tag manager - 5 
8597  function criaItensEcommerce(ofertas){ 
8598 
8599    let nomeUnidadeSelecionada = objsTela.unidades[ultimaUnidade].nome 
8600 
8601    let dadosCurso = { 
8602      //Pegar do freemarker  
8603        tituloComercial : $('[name="tituloComercial"]').val(), 
8604        tipoCurso : $('[name="nomeCategoriaTipoCurso"]').val(), 
8605        formato : $('[name="formato"]').data("formato") 
8606
8607 
8608    let ecommerceObject = { 
8609 
8610      item_id: "", //codOferta - oferta, 
8611			item_name: "", //Nome do curso - curso, 
8612			affiliation: "", //nome da unidade - oferta, 
8613			currency: "BRL", //Moeda - "BRL", 
8614			discount: "", //desconto - oferta, 
8615			index: "", //indice da lista - i, 
8616			item_brand: "Senac SP", //"Senac SP", 
8617			item_category: "", //categoria do curso - curso, 
8618			item_list_id: "", //"60", 
8619			item_list_name: "", //"São Carlos" - Oferta, 
8620			item_variant: "", //modalidade - curso, 
8621			price: "", //preco cheio - oferta, 
8622			quantity: 1 
8623 
8624
8625 
8626    let itensEcommerce = new Map(); 
8627 
8628    for(var i = 0; i < ofertas.length; i++){ 
8629 
8630      itensEcommerce.set(ofertas[i].codigoOferta, { 
8631 
8632            item_id: ofertas[i].codigoOferta, //codOferta - oferta, 
8633            item_name: dadosCurso.tituloComercial, //Nome do curso - curso, 
8634            affiliation: nomeUnidadeSelecionada, //nome da unidade - oferta, 
8635            currency: "BRL", //Moeda - "BRL", 
8636            discount: parseFloat(ofertas[i].precoCheioOferta - ofertas[i].precoVendaOferta).toFixed(2), //desconto - oferta, 
8637            index: i, //indice da lista - i, 
8638            item_brand: "Senac SP", //"Senac SP", 
8639            item_category: dadosCurso.tipoCurso, //categoria do curso - curso, 
8640            item_list_id: objsTela.unidades[ultimaUnidade].codigoUnidade, //"60", 
8641            item_list_name: nomeUnidadeSelecionada, //"São Carlos" - Oferta, 
8642            item_variant: dadosCurso.formato, //modalidade - curso, 
8643            price: parseFloat(ofertas[i].precoCheioOferta).toFixed(2), //preco cheio - oferta, 
8644            quantity: 1 
8645 
8646
8647
8648
8649 
8650    return itensEcommerce; 
8651
8652   
8653  //EMED - ELEMENTOS DINAMICOS 
8654  const htmlSlickAreaEmed = function(oferta){ 
8655    var btnid = 'myBtn_' + oferta.indice; 
8656    const diasHorarios = function(oferta){ 
8657      return oferta.diasDaSemanaOferta.join(', ').toLowerCase();  
8658       
8659
8660 
8661 
8662    return ` 
8663        <div class="ssp-ofertas-emed__card codigoOferta_`+ oferta.codigoOferta + `"> 
8664   
8665        <div class="ssp-ofertas-emed__card-info-turma"> 
8666   
8667            <div class="item-content"> 
8668                <i class="fas fa-calendar-alt calendar-icon-turma"></i> 
8669                <p class="title-turma">`+ oferta.titulo +`</p> 
8670                <span class="text-default" data-info="info-turma">Alunos na turma: <strong>até `+ oferta.qtdeTotalVagas +`</strong></span> 
8671            </div> 
8672   
8673            <div class="content-previsao-inicio-termino"> 
8674   
8675                <div class="item-content"> 
8676                    <span class="text-default">Previsão de início:</span> 
8677                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataInicio,oferta.etapa,false) +`</span> 
8678                </div> 
8679   
8680                <div class="item-divisor"></div> 
8681   
8682                <div class="item-content"> 
8683                    <span class="text-default">Previsão de término:</span> 
8684                    <span class="text-default-lg">`+ formatarDataEmed(oferta.dataFim,oferta.etapa,true) +`</span> 
8685                </div> 
8686   
8687            </div> 
8688   
8689   
8690            <div class="item-divisor"></div> 
8691   
8692            <div class="item-content"> 
8693                <span class="text-default">Dias e horários das aulas:</span> 
8694                <span class="text-default-lg" style="text-transform: capitalize;">`+ diasHorarios(oferta) +`</span> 
8695                <span class="text-default-lg">`+ oferta.horaInicio.replace(':', 'h') + ' às ' + oferta.horaFimOferta.replace(':', 'h') +`</span> 
8696            </div> 
8697             
8698        </div> 
8699   
8700        <div class="ssp-ofertas-emed__card-info-investimento"> 
8701            <p class="title-investimento">Investimento anual:</p> 
8702   
8703            <div class="item-content-investimento"> 
8704                <span class="txt-parcelas">Até `+ oferta.numeroMaxParcelasOferta +`x</span> 
8705                <span class="txt-valor-parcela">R$ `+ formataValor(oferta.precoVendaMaxParcelaOferta) +`</span> 
8706            </div> 
8707   
8708            <div class="item-content-investimento"> 
8709                <p class="txt-boleto-cartao">(boleto bancário ou cartão de crédito)</p> 
8710            </div> 
8711   
8712            <div class="item-content-investimento"> 
8713                <i class="fas fa-credit-card icon-cartao-credito"></i> 
8714                <a id="`+ btnid +`" data-index="`+ oferta.indice +`" href="#" class="link-descontos-parcelamentos">Descontos e Parcelamentos</a> 
8715            </div> 
8716               
8717        </div> 
8718   
8719    </div> 
8720 
8721    `; 
8722
8723   
8724    
8725   function loadCursosVocePodeGostar(){ 
8726       
8727    if(isEmed){ 
8728      var url = urlSearchCursosPodeGostarEmed 
8729        .replace('\{groupId\}', groupId) 
8730        .replace('\{tiposDeCurso\}',$('[name="idTipoCurso"]').val()) 
8731        .replace('\{limit\}', 12) 
8732        .replace('\{articleId\}', $('[name="articleId"]').val()); 
8733    }else{ 
8734      var url = urlSearchCursosPodeGostar 
8735        .replace('\{companyId\}',themeDisplay.getCompanyId()) 
8736        .replace('\{groupId\}', groupId) 
8737        .replace('\{userId\}',themeDisplay.getUserId()) 
8738        .replace('\{articleId\}',$('[name="articleId"]').val()) 
8739        .replace('\{limit\}', 12); 
8740
8741 
8742   
8743       $.ajax({ 
8744           url :  url, 
8745           type : 'get', 
8746           beforeSend: function(){ 
8747             loading('#slider-curso'); 
8748
8749       }) 
8750       .done(function(cursos){ 
8751          
8752         if(cursos.length > 0){ 
8753   
8754           cursos = JSON.parse(cursos); 
8755            
8756           if(isEmed) cursos = cursos['cursos']; 
8757            
8758           if(cursos.length > 0) $('#section-cursos-voce-pode-gostar').removeClass('d-none'); 
8759           else { 
8760             $('#section-cursos-voce-pode-gostar').addClass('d-none'); 
8761             return; 
8762
8763            
8764           var articles = []; 
8765            
8766            $.each(cursos, function(k, c){ 
8767             articles.push(c.articleId); 
8768            }); 
8769             
8770           //Verifica a situação dos botoes de inscrições e bolsa 
8771          $.ajax({ 
8772                url :  '/o/senac-content-services/verificaBotoesInscricaoEBolsa/'+groupId+'/'+articles.join(','), 
8773                type : 'get' 
8774            })  
8775            .done(function(infoBotoes){ 
8776               
8777              if(infoBotoes.length > 0) { 
8778                 
8779                  infoBotoes = JSON.parse(infoBotoes); 
8780                   
8781                  $('#slider-curso').empty(); 
8782   
8783                      $.each(cursos, function(k, c){ 
8784                    	  $('#slider-curso').append(buildCardCurso(c, infoBotoes)); 
8785         
8786                      }); 
8787         
8788                      $('#slider-curso').addClass( 
8789                      'slick-area slick-area--md-bleed slider-container slick-area-cursos-pode-gostar'); 
8790         
8791                      sliderCurso('.slick-area-cursos-pode-gostar'); 
8792
8793            }); 
8794
8795   
8796        }) 
8797        .fail(function(jqXHR, textStatus, msg){ 
8798            // alert(msg); 
8799        }); 
8800   
8801
8802   
8803   /* 
8804    * Armazena a navegação em cookies, se habilitado 
8805    */ 
8806  $(document).on("click", ".ck-curso", function() { 
8807      
8808  //Verifica se o cookie está habilitado 
8809   if(getCookie('portalSenacCookie') != null){ 
8810      
8811    var articleId = $(this).data('ck'); 
8812    manageCookieArray('ck-cursos', articleId); 
8813        
8814
8815   
8816   }); 
8817   
8818   
8819 
8820   
8821   
8822  $(function(){ 
8823   
8824   if($('#unidades-ofertas').find('option').length ==0){ 
8825   
8826     $('.ssp-container-selecione-unidade').addClass('d-none') 
8827   
8828
8829   
8830  }); 
8831   
8832     function avisoNovasTurmas(){ 
8833        
8834       
8835       window.event.preventDefault() 
8836         
8837       //var unidadeSelecionada = $('#select-registro-interesse').val(); 
8838       //este select tem 2 valores separados por @ -> categoryId@codUnidade 
8839      //  var unidadeSelecionada = $('#unidades-ofertas').val(); 
8840        
8841       //Código fixo quando Senac Ao Vivo 
8842       var codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1]; 
8843         
8844      //  if(codUnidadeSelectRegInt && codUnidadeSelectRegInt.length){ 
8845          
8846         //Se ja tiver logado , redireciona para o registro 
8847         if(getCookie('ticket') == null){ 
8848            
8849           //Abre modal login 
8850               $('#modal-login').removeClass('d-none'); 
8851            
8852         }else{ 
8853            
8854          abrirModalRegistroInteresse(codUnidadeSelectRegInt); 
8855                  
8856            verificaBtnEnviarRegistroInteresseAtivo(); 
8857
8858          
8859         window.onclick = function(event) { 
8860            $('[id="modal-registro-interesse"]').each(function(index,_modal){ 
8861                if (event.target == _modal) { 
8862                   $('#modal-registro-interesse').addClass('d-none'); 
8863                   $("body").removeClass("overflow-hidden") 
8864
8865            }); 
8866
8867              
8868      //  } 
8869
8870     function login(){ 
8871      var unidadeSelecionada 
8872      var codUnidadeSelectRegInt 
8873      doLogin({ 
8874        user: $('#login-email-modal').val(), 
8875        pass: $('#login-password-modal').val(), 
8876        btnLoadingSelector: '#btnLogin', 
8877        before: () => { 
8878          $('#mensagem-erro-login').addClass('d-none') 
8879           
8880          unidadeSelecionada = $('#unidades-ofertas').val(); 
8881          codUnidadeSelectRegInt = (isAoVivo) ? codUnidadeSenacAoVivo : $('#unidades-ofertas').val().split("@")[1]; 
8882        }, 
8883        done: (data) => { 
8884          var loginData = JSON.parse(data); 
8885           
8886          if(loginData.status == 200 || loginData.status == 201){				 
8887            //Após logar-se, exibe o modal p/registro de interesse 
8888            abrirModalRegistroInteresse(codUnidadeSelectRegInt); 
8889            verificaBtnEnviarRegistroInteresseAtivo(); 
8890            //esconde o modal de login 
8891            $('#modal-login').addClass('d-none'); 
8892          }  
8893        }, 
8894        errorMessageSelector: '#mensagem-erro-login', 
8895        error: (err) => console.error(err) 
8896      }) 
8897
8898   
8899  function registroSelecionaTodosDias(){ 
8900     
8901    if($(this).hasClass('ssp-week-day-active')){ 
8902      $(this).removeClass('ssp-week-day-active') 
8903       $('.ssp-week-day').removeClass('ssp-week-day-active') 
8904    }else{ 
8905      $(this).addClass('ssp-week-day-active') 
8906      $('.ssp-week-day').addClass('ssp-week-day-active') 
8907
8908        
8909    verificaBtnEnviarRegistroInteresseAtivo(); 
8910
8911   
8912  function registroSelecionaTodosPeriodos(){ 
8913     
8914    if($(this).is(':checked')){ 
8915      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', true); 
8916    }else{ 
8917      $('.ssp-card-registro-interesse__check-itens-content.periodos-registro-interesse input[type=checkbox]').prop('checked', false); 
8918
8919     
8920    verificaBtnEnviarRegistroInteresseAtivo(); 
8921
8922  $('.turmas-registro-interesse input[type=checkbox]').on('click', function() { 
8923    var $selecionado = $(this); 
8924    if ($selecionado.is(":checked")) { 
8925      $('.turmas-registro-interesse input[type=checkbox]').prop("checked", false); 
8926      $selecionado.prop("checked", true); 
8927    } else { 
8928      $selecionado.prop("checked", false); 
8929
8930}); 
8931     function enviarRegistroInteresse(){ 
8932       
8933	  const codigoUsr = getCookie('codigo'); 
8934	   
8935	  if(codigoUsr == null){ 
8936		  //Sem o cookie refaz o login 
8937		  $('#modal-registro-interesse').addClass('d-none'); 
8938	      $('body').removeClass('overflow-hidden'); 
8939	      $('#modal-login').removeClass('d-none'); 
8940	      return; 
8941
8942	   
8943      var codigoFT = $('[name="codigoFT"]').val(); 
8944       
8945      var unidades = new Set(); 
8946       
8947      var diasSemana = ''; 
8948       
8949      //Senac ao vivo nao tem opçao de dias da semana nem unidades 
8950      if(isAoVivo){ 
8951        unidades.add(codUnidadeSenacAoVivo); 
8952      }else{ 
8953          $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
8954              if($(this).hasClass('ssp-week-day-active')){ 
8955                diasSemana += $(this).text()+','; 
8956
8957          }); 
8958             
8959          if(diasSemana.length > 0) diasSemana = diasSemana.slice(0, -1); 
8960           
8961          $.each($('.ssp-card-registro-interesse__select'), function(k,item){ 
8962               
8963            unidades.add(item.value); 
8964          }); 
8965
8966 
8967       
8968      var periodos = ''; 
8969       
8970      $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
8971        if($(this).is(':checked')){ 
8972          periodos += $(this).val()+','; 
8973
8974      }); 
8975 
8976      var turmas = ''; 
8977 
8978      $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k, v) { 
8979          if ($(this).is(':checked')) { 
8980              turmas += $(this).val() + ','; 
8981
8982      }); 
8983 
8984      if (periodos.length > 0) periodos = periodos.slice(0, -1); 
8985      if (turmas.length > 0) turmas = turmas.slice(0, -1); 
8986 
8987      var usuarioNotificado = false; 
8988       
8989      loadingSubmitButton('#enviar-registro-interesse-btn'); 
8990 
8991      unidades.forEach(function(codigoUnidade) { 
8992          var data = { 
8993              codigoFT: codigoFT, 
8994              codigo: codigoUsr, 
8995              diasSemana: diasSemana, 
8996              periodos: periodos, 
8997              turmas, turmas, 
8998              codigoUnidade: codigoUnidade, 
8999              interesseBolsa: 'N', 
9000              isEmed: isEmed ? 'S' : 'N' 
9001          }; 
9002 
9003          const url = urlRegistroInteresse; 
9004 
9005          $.ajax({ 
9006              url: url, 
9007              method: 'POST', 
9008              data: JSON.stringify(data), 
9009              headers: { 
9010                  'Accept': 'application/json', 
9011                  'Content-Type': 'application/json' 
9012              }, 
9013          }).done( 
9014              function(retornoData) { 
9015 
9016                  var retornoData = JSON.stringify(retornoData); 
9017 
9018                  if (retornoData.length > 0) { 
9019             
9020                    cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
9021                     
9022                      var retorno = JSON.parse(retornoData); 
9023 
9024                      if (retorno.status == 200 || retorno.status == 201) { 
9025               
9026                        //Evita que o usuário recebe um email para cada unidade de interesse 
9027                        if(usuarioNotificado) return; 
9028                         
9029                          //Mensagem de sucesso registro interesse 
9030                          $('#modal-registro-interesse-sucesso').removeClass('d-none'); 
9031 
9032                          var prefixUrl = themeDisplay.getLayoutRelativeURL(); 
9033 
9034                          if (prefixUrl.indexOf('staging/') > 1) 
9035                              prefixUrl = prefixUrl.substring(0, prefixUrl.lastIndexOf('staging/') + 8); 
9036                          else 
9037                              prefixUrl = HOST; 
9038 
9039                          $('#btn-voltar-home').attr('href', prefixUrl); 
9040 
9041                          //Busca os dados do nome do usuário logado 
9042                          var username = getCookie('name').split(' ')[0]; 
9043 
9044                          //Prioridade para nomeSocial 
9045                          if (getCookie('nome_social') != null) { 
9046                              var nomeSocial = getCookie('nome_social').replace(/['"]+/g, ''); 
9047 
9048                              if (nomeSocial.length > 0) username = getCookie('nome_social'); 
9049 
9050
9051 
9052                          username = username.replace(/['"]+/g, ''); 
9053						   
9054                          var unidadesSel = getUnidadesSelecionadasRI(); 
9055                           
9056                          //Disara um email para o usuário interessado              
9057                          var data = { 
9058                              emailInteressado: getCookie('email'), 
9059                              nomeInteressado: username, 
9060                              tituloCurso: $('.ssp-card-detalhe-curso__title').text(), 
9061                              unidades: unidadesSel.unidades, 
9062                              unidadesPrefix: unidadesSel.unidadesPrefix 
9063                          }; 
9064 
9065                          $.ajax({ 
9066                              url: urlRegistroInteresseEmailInteressado, 
9067                              method: 'POST', 
9068                              data: JSON.stringify(data), 
9069                              headers: { 
9070                                  'Accept': 'application/json', 
9071                                  'Content-Type': 'application/json' 
9072                              }, 
9073                          }).done(function(retornoData) {}); 
9074 
9075              				usuarioNotificado = true; 
9076               
9077                          window.onclick = function(event) { 
9078                              $('[id="modal-registro-interesse-sucesso"]').each(function(index, _modal) { 
9079                                  if (event.target == _modal){ 
9080                                    $('#modal-registro-interesse-sucesso').addClass('d-none'); 
9081                                    $('#modal-registro-interesse').addClass('d-none'); 
9082                                    $("body").removeClass("overflow-hidden"); 
9083
9084                              }); 
9085
9086 
9087                      } else { 
9088                          //Mensagem de erro registro interesse 
9089                          $('#modal-registro-interesse-erro').removeClass('d-none'); 
9090
9091                  } else { 
9092                      //Mensagem de erro registro interesse 
9093                      $('#modal-registro-interesse-erro').removeClass('d-none'); 
9094
9095              }).fail(function(){ 
9096				  cleanLoadingSubmitButton('#enviar-registro-interesse-btn'); 
9097				  $('#modal-registro-interesse-erro').removeClass('d-none'); 
9098			  }); 
9099      }); 
9100
9101   
9102  function verificaBtnEnviarRegistroInteresseAtivo(){ 
9103     
9104    var diasSemanaSelecionado = false; 
9105    var periodoSelecionado = false; 
9106    var turmaSelecionada = false; 
9107    var politicaPrivacidadeSelecionado = false; 
9108     
9109     
9110    $.each($('.periodos-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
9111      if($(this).is(':checked')) 
9112        periodoSelecionado = true; 
9113    }); 
9114 
9115    $.each($('.turmas-registro-interesse input[type=checkbox]').not('#check-todos-periodos'), function(k,v){ 
9116      if($(this).is(':checked')) 
9117        turmaSelecionada = true; 
9118    }); 
9119     
9120    if($('#check-politica-privacidade').is(':checked')) politicaPrivacidadeSelecionado = true; 
9121     
9122    var ativo = true 
9123     
9124    //Caso tenha algum dos selects de unidade sem uma opção válida selecionada 
9125    if(!isAoVivo) 
9126      ativo = ativo && !Array.from($('.ssp-card-registro-interesse__select.unidades')).filter(sel => !$(sel).val()).length 
9127     
9128    ativo = ativo && periodoSelecionado && politicaPrivacidadeSelecionado; 
9129     
9130    if(!isAoVivo && !isEmed){ 
9131       
9132        $.each($('.ssp-week-day').not('#todosDias'), function(k, v){ 
9133            if($(this).hasClass('ssp-week-day-active')) 
9134              diasSemanaSelecionado = true; 
9135          }); 
9136      ativo = ativo && diasSemanaSelecionado; 
9137       
9138
9139 
9140    if(isEmed) 
9141      ativo = ativo && turmaSelecionada; 
9142     
9143    if(ativo) 
9144        $('#enviar-registro-interesse-btn').attr("disabled", false); 
9145    else 
9146        $('#enviar-registro-interesse-btn').attr("disabled", true); 
9147
9148   
9149    function loadPlanoCurso(){ 
9150       
9151      const urlGetPlanoCurso = urlPlanoCurso 
9152											 
9153      .replace('\{codigoFT\}',  $('[name="codigoFT"]').val()) 
9154      .replace('\{dataEfetiva\}', $('[name="dataEfetivaSTR"]').val()); 
9155   
9156        $.ajax({ 
9157            url:urlGetPlanoCurso, 
9158            method:'get', 
9159            crossDomain: true, 
9160            dataType: 'html', 
9161            success: function( data ) { 
9162   
9163   
9164              //Atualiza o link com o plano de curso do servi¿o (ja retorna o texto) 
9165              $('#plano-curso').append('<br/>'+data);  
9166            }, 
9167            error: function(data){ 
9168               
9169              console.log('Não existe a URL do plano de curso'); 
9170								 
9171
9172         
9173          }); 
9174
9175     
9176  function checkCursoTrampolim(){ 
9177    return $('[name="codigoFT"]').val() == "24493";  
9178
9179   
9180  /*function verificaOfertaValida(oferta){ 
9181       
9182    if(oferta['precoCheioOferta'] == '' || oferta['precoVendaOferta'] == '' || oferta['numeroMaxParcelasOferta'] == '' || oferta['precoVendaMaxParcelaOferta']  == '') 
9183      return false; 
9184     
9185    var atual = new Date(); 
9186   
9187    var dataOfertaPartes = oferta['dataInicio'].split('/'); 
9188     
9189    var dataOferta = new Date(dataOfertaPartes[2], dataOfertaPartes[1] - 1, dataOfertaPartes[0]); 
9190     
9191    var dataLimiteMatriculaOfertaPartes = ""; 
9192    var dataLimiteMatriculaOferta = ""; 
9193     
9194    if(oferta['dtLimiteMatricula'] != ""){ 
9195    dataLimiteMatriculaOfertaPartes = oferta['dtLimiteMatricula'].split('-'); 
9196      dataLimiteMatriculaOferta = new Date(dataLimiteMatriculaOfertaPartes[0], dataLimiteMatriculaOfertaPartes[1] - 1, dataLimiteMatriculaOfertaPartes[2] ,atual.getHours(),atual.getMinutes(),atual.getSeconds(),atual.getMilliseconds());  
9197     
9198
9199     
9200     
9201    //Só deve aparecer ofertas D-1 . Se ela iniciou, aparece se o campo dtLimiteMatr estiver preenchido e com data até o dia de hoje  
9202    if(dataOferta <= atual) 
9203      if(dataLimiteMatriculaOferta == "" || (dataLimiteMatriculaOferta != "" &&  atual.getTime() > dataLimiteMatriculaOferta.getTime())) 
9204        return false; 
9205     
9206    return true; 
9207  }*/ 
9208   
9209   
9210  function loadServerDate(){ 
9211   
9212    $.ajax({ 
9213      url:urlGetServerT, 
9214      method:'get', 
9215      dataType: 'json', 
9216      cache: 'false', 
9217      headers: { 
9218      'Cache-Control': 'no-store, no-cache, max-age=0', 
9219      'Expires': '0', 
9220      'Pragma': 'no-cache' 
9221      }, 
9222      success: function( data ) { 
9223        todayG = new Date(data.year,(data.month - 1),data.day,(data.hour),data.minutes,data.seconds); 
9224        startTimer(); 
9225
9226    }); 
9227     
9228
9229   
9230   function handleVisibilityChange() { 
9231     
9232     if (!document[hidden] ){ 
9233      restartTimer(); 
9234
9235     
9236
9237   
9238  function restartTimer(){ 
9239     
9240    if(restartTimeout == null){ 
9241      loadServerDate(); 
9242      restartTimeout = setTimeout(function(){ 
9243        restartTimeout = null; 
9244      }, 5000); 
9245
9246     
9247
9248    
9249	 function startTimer(){ 
9250		 
9251		var mSeconds = todayG.getTime(); 
9252		if(interval01 != null){ 
9253			clearInterval(interval01); 
9254
9255		interval01 = setInterval(function(){ 
9256			todayG.setTime(todayG.getTime() + 1000); 
9257		}, 1000); 
9258		 
9259		if(interval15 != null){ 
9260			clearInterval(interval15); 
9261
9262		interval15 = setInterval(function(){ 
9263			mSeconds = mSeconds + 15000; 
9264			todayG.setTime(mSeconds); 
9265		}, 15000); 
9266		 
9267
9268   
9269  function checkIsAoVivo(){ 
9270    isAoVivo = $("input[name='formato']").attr("data-formato") == nomeFormatoAoVivoDxp; 
9271
9272   
9273   
9274  //Ao clicar na setinha next do slider, busca dinamicamente uma proxima oferta 
9275  function buscaProximaOferta(){ 
9276    //Zera variável que controla existência de ofertas com bolsa 
9277    //ofertasComBolsa = false; 
9278  	  
9279     //Verificamos se a ultima oferta já foi exibida, para evitar de fazer novas buscas 
9280     if(carregouUltimaOferta)  
9281        return; 
9282 
9283     //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.	 
9284     var totalOfertasSlick = $('#turmas-container .slick-area__item').length; 
9285     //Pegamos o índice da oferta do meio (central) 
9286     var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index')); 
9287 
9288     var totalOfertasADireita = totalOfertasSlick - currentSliderIndex; 
9289 
9290     //Se o total de ofertas à direita for maior a 2 não precisa realizar a busca 
9291     if(totalOfertasADireita > 2)  
9292        return; 
9293 
9294	 startOfertaParam = endOfertaParam; 
9295	 endOfertaParam += 16; 
9296	  
9297     const codigoFT = $('[name="codigoFT"]').val(); 
9298  	 const dataEfetivaOferta = $('[name="dataEfetivaSTR"]').val(); 
9299	 
9300  	 var unidadeCategoryId = ''; 
9301     var unidadeCodigoSelect = ''; 
9302  	 
9303  	if(isAoVivo){ 
9304  	   
9305  		$.each(objsTela.unidades, function(k,unidade){ 
9306  			unidadeCategoryId += unidade['categoryId']+','; 
9307      	}); 
9308  		 
9309  		//tirando ultima virgula 
9310  	    unidadeCategoryId = unidadeCategoryId.substring(0,unidadeCategoryId.length - 1); 
9311  	   
9312  	}else{ 
9313  		 var splitted = $('#unidades-ofertas').val().split("@"); 
9314  		 unidadeCategoryId = splitted[0]; 
9315       unidadeCodigoSelect = splitted[1]; 
9316
9317     
9318    var params = new URLSearchParams(); 
9319    params.set('codigoFTOferta',codigoFT) 
9320    params.set('dataEfetivaOferta',dataEfetivaOferta) 
9321    params.set('categoryIds',unidadeCategoryId) 
9322    params.set('start',startOfertaParam) 
9323    params.set('end',endOfertaParam) 
9324    params.set('inscricaoAberta', $('#chkInscricao').prop('checked')) 
9325    params.set('bolsaAberta', $('#chkBolsa').prop('checked')) 
9326    params.set('cursoArticleId', $('[name="articleId"]').val() || ''); 
9327 
9328    if($('#chkBolsa').prop('checked')){ 
9329    	params.set('considerarDataBolsaFutura', true) 
9330
9331     
9332    const url = urlSearchOferta + '?' + params.toString() 
9333 
9334    $.ajax({ 
9335      url:url, 
9336      method:'get', 
9337      dataType:'json' 
9338    }).done( 
9339      function(data){ 
9340         
9341        if(data.length > 0){ 
9342          var indiceOferta = startOfertaParam; 
9343 
9344        	for (var index = 0; index < data.length; index++) { 
9345        		 
9346				var ofertaJSON = data[index]; 
9347	            var oferta = getOfertaObjectFromJson(ofertaJSON,index); 
9348				             
9349	            //Verificamos se a oferta buscada já existe na tela (que ocorre quando chega na última oferta) 
9350	            if($('.codigoOferta_'+oferta.codigoOferta).length > 0){ 
9351	              console.log('Ja tem a oferta '+oferta.codigoOferta); 
9352	              carregouUltimaOferta = true; 
9353	              break; 
9354
9355	 
9356	            //guardo em um map a oferta e qual unidade é, para utilizar depois no populaOferta para o aoVivo                
9357	            ofertaUnidadeMap.set(oferta['codigoOferta'],mapUnidadesIds.get(parseInt(ofertaJSON.unidadeCategoryIds))); 
9358	      
9359	            ofertasMap.set(oferta.codigoOferta, oferta); 
9360	 
9361	            if(isAoVivo) 
9362	            	objsTela.ofertasAoVivoTodasUnidades.push(oferta); 
9363	 
9364	             //O indice é igual ao ultimo elemento buscado - 1 
9365	             var i = indiceOferta; 
9366	             oferta['indice'] = i; 
9367	 
9368	             if(isAoVivo) 
9369	                codigoUnidade = ofertaUnidadeMap.get(oferta.codigoOferta); 
9370	             else codigoUnidade = unidadeCodigoSelect; 
9371	 
9372	              
9373	             montaHTMLOferta(oferta, i, codigoUnidade, true);  
9374	             montaHTMLModalFormaPgto(oferta, i, codigoUnidade);  
9375 
9376	             montaHTMLModalLocalRealizacao(oferta, i);  
9377	             montaHTMLModalAntesCompra(oferta, i, codigoUnidade); 
9378	             verificaBotaoBolsaSS(oferta); 
9379	             verificaCursoAprendizagem(i); 
9380	             verificaCursoTrampolim(i); 
9381	              
9382	             associaEventoBtnFormaPagamento(i); 
9383	             associaEventoBtnComprar(i);  
9384	             associaEventoBtnComprarDentroFormaPgto(i); 
9385	             associaEventoBtnLocalRealizacao(i); 
9386	             associaEventosFecharModal(i); 
9387 
9388                 if($('[name="tipoCurso"]').val() == 'extensao'){ 
9389                   associaEventoBtnConheca(i); 
9390                   associaEventoBtnComprarConhecaDescontoOk(i); 
9391                   associaEventoBtnComprarConhecaDescontoNot(i); 
9392                   associaEventoBtnAlunoNao(i); 
9393                   associaEventoBtnAlunoSim(i); 
9394                    
9395
9396                  
9397               indiceOferta++; 
9398
9399           
9400          controlaPaginaBolsa(); 
9401
9402
9403    ); 
9404     
9405
9406 
9407  function setUrlParam(key, value) { 
9408    const url = new URL(window.location.href) 
9409 
9410    if(value) 
9411      url.searchParams.set(key, value); 
9412    else 
9413      url.searchParams.delete(key); 
9414 
9415    window.history.pushState({}, '', url.toString()) 
9416
9417   
9418   function selectFilter(paramkey, el) { 
9419    setUrlParam(paramkey, el.prop("checked")) 
9420    const currentUnidadeFriendlyURLSelected = $('#unidades-ofertas').find('option').filter(':selected').attr('data-unidade-friendly-url') 
9421    loadUnidades(!isAoVivo, $('[data-unidade-friendly-url="' + currentUnidadeFriendlyURLSelected + '"]').val()) 
9422 
9423    if($('#chkInscricao').prop("checked") || $('#chkBolsa').prop("checked")) $('#msgFiltroAplicado').show() 
9424    else $('#msgFiltroAplicado').hide() 
9425
9426    
9427  function defineCurrentUrl(ev) { 
9428    const currentUnidadeFriendlyURLSelected = $(ev.target).find('option').filter(':selected').attr('data-unidade-friendly-url') 
9429 
9430    const hasPathWeb = window.location.pathname.includes('/web') 
9431    const hasPathGuest = window.location.pathname.includes('/guest') 
9432 
9433    let currentPath = window.location.pathname 
9434    currentPath = hasPathWeb ? currentPath.substring(4) : currentPath 
9435    currentPath = hasPathGuest ? currentPath.substring(6) : currentPath 
9436 
9437    objsTela.unidadesRegistroInteresse.forEach(unidade => currentPath = currentPath.replace('/' + unidade.friendlyURL, '')) 
9438 
9439    currentPath = (currentUnidadeFriendlyURLSelected ? '/' + currentUnidadeFriendlyURLSelected : '') + currentPath 
9440    currentPath = hasPathGuest ? '/guest' + currentPath : currentPath 
9441    currentPath = hasPathWeb ? '/web' + currentPath : currentPath 
9442 
9443    if(keepURL()) 
9444    window.history.replaceState(window.history.state, '', currentPath + window.location.search) 
9445
9446   
9447  let isKeepURL = true   
9448  /** Verifica se é para manter a URL atual. Isso deve acontecer somente ao iniciar a página #9674 */ 
9449  function keepURL() { 
9450    const aux = isKeepURL 
9451    isKeepURL = false 
9452    return !aux 
9453
9454   
9455  loadServerDate(); 
9456  $(document).ready(function(){ 
9457 
9458    if("${normalizedCategoryName}" == "graduacao" || "${normalizedCategoryName}" == "pos-graduacao"){ 
9459      document.location.href = '/erro-404' 
9460
9461     
9462    ehCursoTrampolim = checkCursoTrampolim(); 
9463    checkIsAoVivo(); 
9464    loadPlanoCurso(); 
9465    loadCursosVocePodeGostar(); 
9466 
9467    if(!isAoVivo) { 
9468      $('#unidades-ofertas').change(ev => { 
9469        mudarUnidade(ev) 
9470        defineCurrentUrl(ev) 
9471      }); 
9472
9473 
9474    const urlParams = new URLSearchParams(window.location.search) 
9475    $('#chkInscricao').prop("checked", urlParams.get('inscricao') == 'true') 
9476    $('#chkInscricao').change(ev => selectFilter('inscricao', $('#chkInscricao')) ) 
9477     
9478    if($('#chkBolsa').length) { 
9479      $('#chkBolsa').prop("checked", urlParams.get('bolsa') == 'true') 
9480      $('#chkBolsa').change(ev => selectFilter('bolsa', $('#chkBolsa')) ) 
9481      loadUnidades(!isAoVivo); 
9482    } else { 
9483      selectFilter('bolsa', $('#chkBolsa')) 
9484
9485           
9486      //Função para Montar breadcrumb Mobile 
9487   
9488      function breadcrumbMobile(){ 
9489   
9490		const linkEl = $('.ssp-card-detalhe-curso__secunday-info-back-link');   	  
9491    	   
9492        if ( $.trim(linkEl.html()) === 'Técnico'){ 
9493   
9494        	linkEl.attr("href", "/cursos-tecnicos"); 
9495   
9496        } else if ( $.trim(linkEl.html()) === 'Livre'){ 
9497       
9498           if(isAoVivo){ 
9499        	   	linkEl.html('Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo') 
9500             	linkEl.attr("href", "/cursos-livres-senac-online-ao-vivo"); 
9501           }else{ 
9502        	   	linkEl.attr("href", "/cursos-livres"); 
9503
9504        } else if ( $.trim(linkEl.html()) === 'Aprendizagem'){ 
9505   
9506        	linkEl.attr("href", "/jovem-aprendiz"); 
9507   
9508        }else if ( $.trim(linkEl.html()) === 'Extensão Universitária'){ 
9509   
9510        	linkEl.attr("href", "/extensao-universitaria"); 
9511         
9512        }else if ( $.trim(linkEl.html()) === 'Ensino Médio Técnico'){ 
9513        		   
9514            	linkEl.attr("href", "/ensino-medio-tecnico");	 
9515
9516   
9517
9518   
9519      breadcrumbMobile() 
9520       
9521    //Esconde elementos quando o curso é aprendizagem 
9522      if($('[name="codigoFT"]').val() == codigoFTCursoAprendizagem){ 
9523        $('.ssp-section-novas-turmas').remove(); 
9524        $("div[class^='botoes-oferta-container_']").remove(); 
9525
9526   
9527     //retira os itens de dentro do container 
9528      $('.bg-').css('background-color','#e4e4e4') 
9529     $('.container.py-3').removeClass('container py-3') 
9530     //ajuste para versao 7.4 
9531     $('.lfr-layout-structure-item-container.container-fluid.container-fluid-max-xl').removeClass() 
9532 
9533   
9534     //Fecha modal registro de interesse 
9535   
9536     $('#btn-close-Modal-registro-interesse').click(function(){ 
9537   
9538       $('#modal-registro-interesse').addClass('d-none') 
9539       $("body").removeClass("overflow-hidden") 
9540   
9541     }) 
9542   
9543      $( "#modal-registro-interesse" ).click( function(event) { 
9544   
9545         if(event.target.id==$('#modal-registro-interesse')[0].id){ 
9546               $(this).addClass('d-none') 
9547
9548   
9549      }); 
9550   
9551       
9552      //Aviso sobre interesse em turmas 
9553      $('.ssp-card-registro-interesse').on('click', '#enviar-registro-interesse-btn', enviarRegistroInteresse); 
9554      if(!isEmed){ 
9555        $('.ssp-aviso-novas-turmas__content').on('click', '#btn-aviso-novas-turmas', avisoNovasTurmas); 
9556        $('.ssp-card-registro-interesse').on('click', '#todosDias', registroSelecionaTodosDias); 
9557      } else { 
9558        $('.ssp-emed__card-slider-body').on('click', '#btnOptin', avisoNovasTurmas) 
9559      }  
9560      $('#div-campo-todos').on('change', 'input[type=checkbox]', registroSelecionaTodosPeriodos); 
9561   
9562      $('#btnLogin').click(function(){ 
9563        
9564        login() 
9565         
9566       }); 
9567       
9568       $('#btn-close-loginModal').click(function(){ 
9569           $('#modal-login').addClass('d-none') 
9570       }); 
9571        
9572       $('.ssp-week-day').not('#todosDias').click(function(){ 
9573   
9574           $(this).toggleClass('ssp-week-day-active'); 
9575           verificaBtnEnviarRegistroInteresseAtivo(); 
9576            
9577       }); 
9578        
9579       $('#add-unidade-regsitro-interesse').click(function(e){ 
9580           var element = $('.ssp-card-registro-interesse__select.unidades').first().clone(); 
9581           element.empty(); 
9582            element.append('<option value="" disabled selected>Selecione uma unidade</option>') 
9583                $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9584 
9585                    if(!unidade['selecionado']){      
9586                        element.append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
9587
9588 
9589                }); 
9590            element.change(changeSelectUnidades) 
9591 
9592   
9593           element.css('margin-top', '10px'); 
9594            
9595           if(element.find("option").length > 1 && $('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
9596              element.attr("id", "select_" + cntSelectUnidades++) 
9597              $('#select-unidades-registro-interesse').append(element); 
9598          }    
9599 
9600          if($('.ssp-card-registro-interesse__select.unidades').length == objsTela.unidadesRegistroInteresse.length){ 
9601              $('#add-unidade-regsitro-interesse').addClass("d-none") 
9602
9603   
9604           verificaBtnEnviarRegistroInteresseAtivo(); 
9605       }); 
9606        
9607       $('#remove-unidade-regsitro-interesse').click(function(e){ 
9608          
9609         if($('.ssp-card-registro-interesse__select').length > 1){ 
9610          
9611              var element = $('.ssp-card-registro-interesse__select').last(); 
9612     
9613              var valueSelecionado = element.val(); 
9614 
9615              $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9616 
9617                  if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
9618                      unidade['selecionado'] = false; 
9619                      unidade['selectSelecionado'] = ""; 
9620
9621 
9622              }); 
9623              element.val(""); 
9624              cntSelectUnidades--; 
9625              element.change() 
9626 
9627              element.remove(); 
9628
9629   
9630         if($('.ssp-card-registro-interesse__select.unidades').length < objsTela.unidadesRegistroInteresse.length){ 
9631              $('#add-unidade-regsitro-interesse').removeClass("d-none") 
9632
9633 
9634          verificaBtnEnviarRegistroInteresseAtivo(); 
9635       }) 
9636        
9637       $('.ssp-card-registro-interesse__check-item').on('change', 'input[type=checkbox]', function(){ 
9638         verificaBtnEnviarRegistroInteresseAtivo(); 
9639       }); 
9640   
9641       //Contador em ofertas de bolsas proximas 
9642       var cancel = setInterval(atualizaTempoAberturasBolsas, 1000); 
9643        
9644        // Manipua o breadcrumb para as regras do Senac 
9645          
9646        if($('ol.breadcrumb').find('li:first').text().trim() == "Cursos Pai") 
9647          $('ol.breadcrumb').find('li:first').remove(); 
9648         
9649        var li = $('ol.breadcrumb').find('li:first'); 
9650   
9651        if(li.text().trim() == 'Cursos'){ 
9652       
9653          var primeiro = li.clone(); 
9654          primeiro.html(htmlBreadcrumb('/', 'Cursos', 'Home')); 
9655          li.parent().prepend(primeiro); 
9656       
9657          var tipoCurso = $('.ssp-header-curso__tag-formato').text().trim(); 
9658          var tipoBreadcrumb = ''; 
9659           
9660          const isPresencialEad = (tipoCurso.toLowerCase().includes("presencial + ead")) 
9661           
9662          if(tipoCurso.includes("Cursos Livres")){ 
9663            if(isPresencialEad) { 
9664              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-livres', tipoCurso); 
9665            } else { 
9666              tipoBreadcrumb = htmlBreadcrumb( 
9667                    isAoVivo ? '/cursos-livres-senac-online-ao-vivo' : '/cursos-livres',  
9668                  isAoVivo ? nomeFormatoAoVivoDxp : tipoCurso); 
9669            }         
9670          }else if(tipoCurso.includes("Extensão")){ 
9671            if(isPresencialEad) { 
9672              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#extensao-universitaria', tipoCurso); 
9673            } else { 
9674        	  	tipoBreadcrumb =  htmlBreadcrumb('/extensao-universitaria', tipoCurso); 
9675            }           
9676          }else if(tipoCurso.includes("Ensino Médio Técnico")){ 
9677            if(isPresencialEad) { 
9678              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#ensino-medio-tecnico', tipoCurso); 
9679            } else { 
9680              tipoBreadcrumb =  htmlBreadcrumb('/ensino-medio-tecnico', tipoCurso); 
9681
9682          }else if(tipoCurso.includes("Jovem Aprendiz")){ 
9683            if(isPresencialEad) { 
9684              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#jovem-aprendiz', tipoCurso); 
9685            } else { 
9686              tipoBreadcrumb =  htmlBreadcrumb('/jovem-aprendiz', tipoCurso); 
9687
9688          }else{ 
9689            if(isPresencialEad) { 
9690              tipoBreadcrumb =  htmlBreadcrumb('/presencial-ead#cursos-tecnicos', tipoCurso); 
9691            } else { 
9692              tipoBreadcrumb =  htmlBreadcrumb('/cursos-tecnicos', tipoCurso); 
9693
9694
9695           
9696          li.html(tipoBreadcrumb); 
9697         
9698          if($('ol.breadcrumb').find('li').length == 4) $('ol.breadcrumb').find('li:last').remove(); 
9699        	 
9700
9701         
9702        $('#turmas-container').on('click', 'a.slick-next', function(e){ 
9703				 
9704        	 	e.preventDefault(); 
9705			    buscaProximaOferta(); 
9706			 
9707        }); 
9708 
9709        $('#turmas-container').on('click', 'button.slick-dots', function(){ 
9710 
9711             
9712       
9713        }); 
9714		 
9715        $(".next-mobile").on("click",function(e){  
9716        	 e.preventDefault();  
9717       	 	 
9718        	 acoesMobileSliderOfertas("left"); 
9719       	}); 
9720         
9721        $(".prev-mobile").on("click",function(e){  
9722        	e.preventDefault();  
9723	        
9724        	acoesMobileSliderOfertas("right");	 
9725      	}); 
9726         
9727        //ação de drag do card de ofertas no mobile 
9728        $('.oferta-slick-area').on('swipe', function(event, slick, direction){ 
9729           	acoesMobileSliderOfertas(direction); 
9730        }); 
9731         
9732        loadAlternadores() 
9733        let modalFormAprendizagem = document.querySelector('[data-modal="modal"]') 
9734        if(modalFormAprendizagem){ 
9735          // Create dinamic close buttom form 
9736          let btnCloseModalForm = document.querySelector('[data-modal="close-form-modal"]') 
9737         
9738          btnCloseModalForm.addEventListener('click',closeModalFormAprendizagem) 
9739         
9740
9741    
9742        $(".oferta-slick-area").on("click", ".btnModalAprendizagem", function (){ 
9743           openModalFormAprendizagem(); 
9744         }) 
9745         
9746     }); 
9747   
9748  function htmlBreadcrumb(link, title, display){ 
9749	   
9750	  return '<a class="breadcrumb-link" href="'+link+'" title="'+title+'"><span class="breadcrumb-text-truncate">'+(display || title)+'</span></a>'; 
9751	   
9752
9753   
9754  function acoesMobileSliderOfertas(direcao){ 
9755	   
9756       	if(direcao == "right"){ 
9757       		$("a.slick-prev").click();  
9758	       	 
9759        	if($('.slick-current').attr('data-slick-index') == "0") 
9760	       		 $('.prev-mobile').addClass('nextPrevOpacity'); 
9761	       	 
9762        	if($(".next-mobile").hasClass('nextPrevOpacity')) 
9763        		 $('.next-mobile').removeClass('nextPrevOpacity'); 
9764
9765       	 
9766       	 
9767		if(direcao == "left"){ 
9768	      	 $("a.slick-next").click(); 
9769	   	  
9770	   	  	if($(".prev-mobile").hasClass('nextPrevOpacity')) 
9771	     		 $('.prev-mobile').removeClass('nextPrevOpacity'); 
9772	   	   
9773	   	 	if(carregouUltimaOferta){ 
9774	   	 		var totalCardOfertas = $('#turmas-container .slick-area__item').length; 
9775	   	 		var currentSliderIndex = parseInt($('.slick-current').attr('data-slick-index'));   
9776	 
9777	   	 		//o card do meio é o último	 
9778				if(totalCardOfertas == (currentSliderIndex + 1)) 
9779					$('.next-mobile').addClass('nextPrevOpacity'); 
9780
9781
9782
9783   
9784  //habilitar/desabilitar registro de interesse 
9785  function habilitarRegistroInteresse(habilitar){ 
9786    var sectionRI = $('#section-registro-interesse') 
9787 
9788    if(isEmed) { 
9789      sectionRI.hide() 
9790      return; 
9791
9792 
9793    //Redmine #9309 - sempre irá mostrar 
9794    habilitar = true 
9795       
9796    if(habilitar) sectionRI.show() 
9797    else sectionRI.hide() 
9798
9799   
9800  function abrirModalRegistroInteresse(codUnidadeSelect){ 
9801	    $('#modal-registro-interesse').removeClass('d-none'); 
9802      $("body").addClass("overflow-hidden") 
9803      if(!isEmed){ 
9804	    $('.ssp-card-registro-interesse__nome-curso').text($('.ssp-card-detalhe-curso__title').text()); 
9805      } else { 
9806        $(".transferencia-emed-link").find('a').attr("href", "/ensino-medio-tecnico#onde-estudar") 
9807        $('.ssp-card-registro-interesse__title-modal').text($('.ssp-card-detalhe-curso__title').text()); 
9808
9809       
9810      $('.ssp-card-registro-interesse__select:not(#select_0)').remove(); 
9811      $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9812        if(unidade['codigoUnidade'] == codUnidadeSelect){ 
9813            unidade['selecionado'] = true; 
9814            unidade['selectSelecionado'] = 'select_0'; 
9815        } else { 
9816            unidade['selecionado'] = false; 
9817            unidade['selectSelecionado'] = ""; 
9818
9819 
9820    }); 
9821    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
9822        return ordenar(a, b, 'nome'); 
9823    }); 
9824 
9825    $('#select_0').empty(); 
9826    $('#select_0').append('<option value="" disabled>Selecione uma unidade</option>') 
9827        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9828 
9829          $('#select_0').append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
9830             
9831        }); 
9832    $('#select_0').val(codUnidadeSelect); 
9833 
9834	 	if(isAoVivo){ 
9835	 		$('#unidades-registro-interesse, #dias-registro-interesse').addClass('d-none'); 
9836
9837     if(objsTela.unidadesRegistroInteresse.length > 1) { 
9838        $('#add-unidade-regsitro-interesse').removeClass("d-none") 
9839        $('#add-unidade-regsitro-interesse').show() 
9840        $('#remove-unidade-regsitro-interesse').show() 
9841      } else { 
9842        $('#add-unidade-regsitro-interesse').hide() 
9843        $('#remove-unidade-regsitro-interesse').hide() 
9844
9845
9846 
9847  $('.ssp-card-registro-interesse__select.unidades').on('change', changeSelectUnidades) 
9848  
9849 function changeSelectUnidades() { 
9850   var codUnidadeSelecionada = $(this).val(); 
9851   var idSelectSelecionado = $(this).attr('id') 
9852   $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9853        if(unidade['codigoUnidade'] == codUnidadeSelecionada){ 
9854            unidade['selecionado'] = true; 
9855            unidade['selectSelecionado'] = idSelectSelecionado; 
9856        } else if(unidade['selectSelecionado'] == idSelectSelecionado && unidade['selecionado']){ 
9857            unidade['selecionado'] = false; 
9858            unidade['selectSelecionado'] = ""; 
9859
9860 
9861    }); 
9862     
9863    objsTela.unidadesRegistroInteresse.sort(function (a, b) { 
9864        return ordenar(a, b, 'nome'); 
9865    }); 
9866 
9867    $('.ssp-card-registro-interesse__select.unidades:not(#'+idSelectSelecionado+')').each(function() { 
9868        var valueSelecionado = $(this).val(); 
9869        var idActualSelect = $(this).attr('id'); 
9870        $(this).empty(); 
9871        $(this).append('<option value="" disabled>Selecione uma unidade</option>') 
9872        $.each(objsTela.unidadesRegistroInteresse, function(k,unidade){ 
9873 
9874            if(unidade['selecionado'] && unidade['codigoUnidade'] == valueSelecionado){ 
9875                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'" >'+unidade['nome']+'</option>'); 
9876            }else if(!unidade['selecionado']){      
9877                $("#"+idActualSelect).append('<option value="'+unidade['codigoUnidade']+'">'+unidade['nome']+'</option>'); 
9878
9879 
9880        }); 
9881        $(this).val(valueSelecionado) 
9882    }); 
9883     
9884   verificaBtnEnviarRegistroInteresseAtivo(); 
9885
9886 
9887   
9888 function ordenar(objA, objB, nomeAtributo){ 
9889	 	let a = (nomeAtributo) ? objA[nomeAtributo] : objA; 
9890	 	let b = (nomeAtributo) ? objB[nomeAtributo] : objB; 
9891	 
9892	 	return a.toString().localeCompare(b.toString()); 
9893
9894  
9895 function paramOrdem(xml){ 
9896	 	if(isEmed){ 
9897	 		var ordemPeriodo = ['MA', 'TA', 'NO']; 
9898	 		return $.inArray(xml.find('[name="periodoDiaOferta"]').text().trim(), ordemPeriodo); 
9899	 	}else{ 
9900	 		return xml.find('[name="dataInicioOferta"]').text(); 
9901
9902
9903  
9904 function getEtapaSelecionadaEmed(){ 
9905		var btnEtapa = $('.ssp-ofertas-emed__filtro-content .btn--filtro-ativo'); 
9906		 if(!btnEtapa) return ''; 
9907		 return btnEtapa.val(); 
9908
9909  
9910 function filtraOfertasEtapa(etapa, ofertas){ 
9911    if(!etapa) return []; 
9912    var ofertasEtapa = []; 
9913    var turmas = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; 
9914    var periodos = {['MA'] : 'Manhã', ['TA'] : 'Tarde', ['NO'] : 'Noite'}; 
9915    var ultimoPeriodo = null, indexPeriodo; 
9916    ofertas = ofertas.sort(function(a, b){ 
9917       return ordenar(a, b, 'periodoDiaOferta'); 
9918    }); 
9919 
9920    $.each(ofertas, async (index, oferta)=> { 
9921      if(oferta['etapa'] == etapa){ 
9922        if(oferta['periodoDiaOferta'] != ultimoPeriodo) indexPeriodo = 0; 
9923        ultimoPeriodo = oferta['periodoDiaOferta']; 
9924        oferta['titulo'] = 'Turma ' + turmas[indexPeriodo++] + ' - ' + (periodos[ultimoPeriodo] || ''); 
9925        ofertasEtapa.push(oferta); 
9926
9927    }); 
9928      
9929     return ofertasEtapa; 
9930
9931  
9932 function formatarDataEmed(data, etapa, isDataFim){ 
9933	  
9934 	try{ 
9935 
9936 		var splitdata = data.split('/'); 
9937 		var meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']; 
9938 	 	var mes = meses[parseInt(splitdata[1])-1]; 
9939 	 	 
9940 	 	var ano = splitdata[2]; 
9941 	 	 
9942 	 	if(isDataFim){ 
9943 	 		ano = parseInt(splitdata[2]); 
9944
9945 	 	 
9946 	 	return mes + '/' + ano; 
9947 	}catch(err){  
9948 		return data;  
9949
9950   
9951
9952  
9953 //EMED Mobile 
9954 function sliderOfertasEmed(){ 
9955	  
9956	 var tamScreen = $(window).width(); 
9957	 if(tamScreen < 1024){ 
9958	     $('.ssp-slick-ofertas-emed').slick({ 
9959	         slidesToShow: 1, 
9960	         slidesToScroll: 1, 
9961	         dots: false, 
9962	         infinite: false, 
9963	         adaptiveHeight: true, 
9964	         prevArrow:'<button class="btn slick-prev" type="button"><i class="fal fa-chevron-left"></i><span class="sr-only">Anterior</span></button>', 
9965	         nextArrow:'<button class="btn slick-next" type="button"><i class="fal fa-chevron-right"></i><span class="sr-only">Próximo</span></button>', 
9966	         responsive: [ 
9967	 
9968
9969	                 breakpoint: 1200, 
9970	                 settings: { 
9971	                     slidesToShow: 1, 
9972	                     slidesToScroll: 1, 
9973	                     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>', 
9974	                     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>', 
9975	 
9976
9977	             }, 
9978
9979	                 breakpoint: 768, 
9980	                 settings: { 
9981	                     slidesToShow: 1, 
9982	                     slidesToScroll: 1, 
9983	                     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>', 
9984	                     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>', 
9985
9986
9987	 
9988
9989	 
9990	     }); 
9991 
9992
9993 
9994
9995 
9996function addItemBackpack(codOferta, originElemSelector, codUnidade, dataEfetiva){ 
9997	 
9998	let backpackPostRequest = {}; 
9999	backpackPostRequest.codOferta = codOferta; 
10000	backpackPostRequest.codUnidade = codUnidade; 
10001	backpackPostRequest.dt_efetiva = dataEfetiva; 
10002 
10003	 
10004	mochila.requestAccess(function(backpackPostRequest){ 
10005		 
10006		let urlMochila = '/o/senac-backpack-services/backpack'; 
10007		 
10008		if(getCookie("codMochila") != null){ 
10009			backpackPostRequest.codMochila = getCookie("codMochila"); 
10010			urlMochila = '/o/senac-backpack-services/updateBackpack';	 
10011		}	 
10012		$.ajax({ 
10013		    type: 'POST', 
10014		    url: urlMochila, 
10015		    headers: { 
10016		        "Content-Type":"application/json" 
10017		    }, 
10018            beforeSend: function(xhr){ 
10019            	xhr.setRequestHeader("Authorization", "Bearer " + getCookie("tokenMochila")); 
10020            	loadingSubmitButton(originElemSelector); 
10021            	$(originElemSelector + ' .loading-icon-button').css('height', 'unset'); 
10022            	if($(window).width() < 1024){ 
10023            		$(originElemSelector + ' .loading-icon-button span').css('margin-left', '10%'); 
10024
10025            }, 
10026		    data : JSON.stringify(backpackPostRequest) 
10027		}).done(function(data) {  
10028			 
10029			let domain = ''; 
10030			if(getAmbiente() == 'hom' || getAmbiente() == 'prod') 
10031				domain = '.sp.senac.br'; 
10032			 
10033			writeCookie( 
10034					'codMochila',  
10035					(getCookie("codMochila") == null) ? data.backpackCode : JSON.parse(data).backpackCode,  
10036					24, 
10037					domain 
10038			); 
10039			addItemSuccessMochila(); 
10040			 
10041		}).fail(function(xhr, status, error) { 
10042			 
10043			$('#modal-backpack-error').removeClass('d-none'); 
10044			 
10045	 	}).always(function(){ 
10046	 		 
10047	 		cleanLoadingSubmitButton( 
10048	 				originElemSelector,  
10049	 				originElemSelector.indexOf('backpack') > 0 ? 'OK, desejo comprar' : 'COMPRAR' 
10050	 		); 
10051	 		$('[id^="modalAntesCompra_"]').each(function(index, modal) { 
10052	 			modal.style.display = "none"; 
10053	 		}); 
10054	 		 
10055	 	}); 
10056		 
10057	}, backpackPostRequest); 
10058	 
10059
10060 
10061function componentBuyConfirmation(codigoUnidade, oferta, dataEfetiva){ 
10062  
10063	var comp = null; 
10064		 
10065	if((oferta.destinoCompra !== null) && oferta.destinoCompra == "2"){ 
10066		 
10067		comp = $("<button>") 
10068		.addClass("btn btn-lg btn-success w-100 mt-3 btn-backpack") 
10069		.attr("offerCode",oferta.codigoOferta) 
10070		.attr("unitCode",codigoUnidade) 
10071		.attr("effectiveDate",dataEfetiva) 
10072		.text("OK, desejo comprar"); 
10073	 
10074	}else { 
10075	 
10076		comp = $("<a>") 
10077		.addClass("btn btn-lg btn-success w-100 mt-3") 
10078		.text("OK, desejo comprar") 
10079		.attr("href", linkBotaoCompra.replace('\{codigoUnidade\}', codigoUnidade).replace('\{codigoOferta\}', oferta.codigoOferta)) 
10080		.attr("target","_blank"); 
10081
10082	 
10083	comp.attr('id', 'btnCompraLocal_' + oferta.indice); 
10084	 
10085    return comp[0].outerHTML; 
10086     
10087
10088 
10089function getUnidadesSelecionadasRI(){ 
10090		var unidadesRI = []; 
10091		 
10092		try{ 
10093			 
10094			$('#select-unidades-registro-interesse').find('select').each((i,select) =>{ 
10095				var unidadeSel = select.selectedOptions[0].innerText; 
10096				if(!unidadesRI.includes(unidadeSel)) unidadesRI.push(unidadeSel); 
10097			}); 
10098			 
10099			var unidadesExt = unidadesRI.join(', '); 
10100			 
10101			const lastIndex = unidadesExt.lastIndexOf(','); 
10102			 
10103			if(lastIndex > 0) unidadesExt = unidadesExt.substring(0, lastIndex) + ' ou ' + unidadesExt.substring(lastIndex + 1); 
10104			 
10105			return { 
10106				'unidadesPrefix' : (unidadesRI.length > 1 ? ', nas unidades ' : (unidadesRI.length == 1 ? ', na unidade ' : '')), 
10107				'unidades' : unidadesExt 
10108			}; 
10109			 
10110		}catch(err){ 
10111			 
10112			return { 
10113				'unidadesPrefix' : '', 
10114				'unidades' : '' 
10115			}; 
10116			 
10117
10118		 
10119
10120 
10121 
10122 
10123 
10124function addItemSuccessMochila(){ 
10125	 
10126	mochila.check(); 
10127	$('#modal-backpack-success__nome-curso').html($('.ssp-card-detalhe-curso__title').text()); 
10128	$('#modal-backpack-success').removeClass('d-none'); 
10129	 
10130
10131 
10132$(document).on('click', '.btn-backpack', function(e){  
10133     
10134	addItemBackpack(event.target.getAttribute("offerCode"), '.btn-backpack',event.target.getAttribute("unitCode"),event.target.getAttribute("effectiveDate")); 
10135	 
10136}); 
10137 
10138$('#btn-voltar-modal-backpack-error').click(function () { 
10139    $('#modal-backpack-error').addClass('d-none'); 
10140}); 
10141 
10142$('#btn-voltar-modal-backpack-error').click(function () { 
10143    $('#modal-backpack-error').addClass('d-none'); 
10144}); 
10145 
10146$('.btn-mochila-continuar-site-success, .modal-btn-close').click(function () { 
10147    $('#modal-backpack-success').addClass('d-none'); 
10148}); 
10149 
10150$('.btn-mochila-finalizar-compra-success').click(function () { 
10151  // Montar object push - google tag manager - 6 
10152  sendEventEcommerce("begin_checkout", ofertaSelecionada); 
10153 
10154	mochila.verificaLogin(); 
10155	$('#modal-backpack-success').addClass('d-none'); 
10156	$('[id^="myModal_"]').each((i,modal)=>modal.style.display = "none"); 
10157}); 
10158 
10159   function closeModalFormAprendizagem(){ 
10160           let modal = document.querySelector('[data-modal="modal"]') 
10161            
10162       modal.classList.remove('open-modal-form') 
10163      
10164
10165      
10166      
10167   function openModalFormAprendizagem(){ 
10168           let modal = document.querySelector('[data-modal="modal"]') 
10169            
10170       modal.classList.add('open-modal-form') 
10171      
10172
10173 
10174  function addEventBolsa() { 
10175    // Mostra o preco 
10176    const btnShowPrices = document.querySelectorAll('.btn-show-price') 
10177 
10178    btnShowPrices.forEach(btnShowPrice => btnShowPrice.addEventListener('click',togglePriceCard)) 
10179     
10180    if(!$('#chkBolsa').prop('checked')) 
10181      togglePriceCard() 
10182
10183 
10184  function togglePriceCard(selector){ 
10185    if(selector instanceof PointerEvent) return 
10186 
10187    if(!selector) selector = '' 
10188    else selector = '.' + selector 
10189     
10190    const btnPrices = document.querySelectorAll('.show-price-content'+selector) 
10191    const contentPrices = document.querySelectorAll('.content-valores-descontos'+selector) 
10192    const contentBtnBolsas = document.querySelectorAll('.content-btn-bolsa'+selector) 
10193     
10194    btnPrices.forEach(btnPrice => btnPrice.classList.toggle('hide')) 
10195    contentBtnBolsas.forEach(contentBtnBolsa => contentBtnBolsa.classList.toggle('modifier-content-show')) 
10196    contentPrices.forEach(contentPrice => contentPrice.classList.toggle('hide-price'))       
10197
10198   
10199  function getRegiaoName(key) { 
10200	  switch (key) { 
10201	    case "C": 
10202	      return "Capital"; 
10203	    case "I":             
10204	      return "Interior"; 
10205	    case "GS": 
10206	      return "Grande São Paulo e Litoral"; 
10207	    default: 
10208	      return "Sem Região"; 
10209
10210
10211 
10212	function criarOptionUnidadesPorRegiao(unidades) { 
10213	  let regioes = {} 
10214	  let unidadeFounded 
10215 
10216	  unidades.forEach(unidade => { 
10217	    if(!regioes[unidade.codRegiaoUnidade || 'N']) 
10218	      regioes[unidade.codRegiaoUnidade || 'N'] = [] 
10219 
10220	    regioes[unidade.codRegiaoUnidade || 'N'].push(unidade) 
10221	  }) 
10222 
10223	  Array.from(['C', 'I', 'GS', 'N']) 
10224	  .filter(key => Object.keys(regioes).includes(key)) 
10225	  .forEach(key => { 
10226	    const unidadesDaRegiao = regioes[key] 
10227 
10228	    const optionDisabled = $('<option>') 
10229	    optionDisabled.attr('label', getRegiaoName(key)) 
10230	    optionDisabled.text(getRegiaoName(key)); 
10231	    optionDisabled.attr('disabled', true) 
10232	    optionDisabled.addClass('ssp-option-group') 
10233	    $('#unidades-ofertas').append(optionDisabled) 
10234 
10235	    $.each(unidadesDaRegiao, function(k,unidade){       
10236	      if($('#unidades-ofertas').find('[value="'+unidade['categoryId']+'"]').length == 0){         
10237	        var option = $('<option>'); 
10238	        option.val(unidade['categoryId']+"@"+unidade['codigoUnidade']); 
10239	        option.text(unidade['nome']); 
10240	        option.attr('data-unidade-friendly-url', unidade.friendlyURL) 
10241	        option.addClass('ssp-option') 
10242	   
10243	        $('#unidades-ofertas').append(option); 
10244	     
10245	        unidadeFounded = !unidadeFounded && getURLData().includes('/'+unidade.friendlyURL+'/') ? unidade : unidadeFounded	           
10246
10247	    }) 
10248	  }) 
10249 
10250	  return unidadeFounded 
10251
10252 
10253	function getURLData() { 
10254	  return URLGeral.replace(HOST, '') 
10255
10256 
10257	/** 
10258	* Copia um objeto JSON 
10259	*/ 
10260	function cloneObj(original) { 
10261	  return JSON.parse(JSON.stringify(original)); 
10262
10263 
10264  function getUrlConsultaBolsa(oferta){ 
10265   
10266    let url = ''; 
10267    if (isAmbienteTeste()) { 
10268      if(oferta.destinoBolsa=='1') { 
10269        url = 'https://hwse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
10270      } else { 
10271        url = 'https://hom-wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
10272
10273    }	else { 
10274      if(oferta.destinoBolsa=='1') { 
10275        url = 'https://wse.sp.senac.br/rest/wss/cursos/bolsa/v1/?COD_EVENTO='+oferta.codigoOferta 
10276      } else { 
10277        url = 'https://wse-bolsas.sp.senac.br/api/cursos/bolsa/v1/'+oferta.codigoOferta; 
10278
10279       
10280
10281     
10282    return url; 
10283
10284 
10285  function execCompraEmed(oferta){ 
10286 
10287    let linkInscricaoEmed, linkInscricaoEmedHml, acadProg; 
10288    if(oferta.etapa == '0010'){ 
10289      linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-educacional-ms.sp.senac.br/?oferta={codOferta}'; 
10290      linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-educacional-backend.sp.senac.br/?oferta={codOferta}'; 
10291      acadProg = null; 
10292    }else{ 
10293      linkInscricaoEmed = 'https://www.sp.senac.br/login/Login?destino=https://inscricao-emed.sp.senac.br?course={acad_prog}&unity={codUnidade}&shift={periodo}&step={etapa}&oferta={codOferta}'; 
10294      linkInscricaoEmedHml = 'https://gesportal.sp.senac.br/login/Login?destino=https://hinscricao-emed.sp.senac.br?course={acad_prog}&unity={codUnidade}&shift={periodo}&step={etapa}&oferta={codOferta}'; 
10295      acadProg = ()=>{ 
10296        //Codigo FT + Data Efetiva(ymd) : AcadProg 
10297        const acadProgMap = { 
10298          ['2478820220101'] : '08202', 
10299          ['2363020210101'] : '07325', 
10300          ['2362920210101'] : '07326', 
10301          ['2097420210101'] : '05918' 
10302        }	    
10303        var key = $('[name="codigoFT"]').val() + $('[name="dataEfetivaSTR"]').val().replace(/-/g, ''); 
10304        return acadProgMap[key] || ''; 
10305
10306
10307 
10308    var ambTeste = ['localhost', 'hom', 'dev']; 
10309      var link = linkInscricaoEmed; 
10310      $.each(ambTeste, function(i, a){ 
10311        if(location.hostname.indexOf(a) >= 0){ 
10312          link = linkInscricaoEmedHml; 
10313          return false; 
10314
10315      }); 
10316 
10317      // Montar object push - google tag manager - 3 
10318      ofertaSelecionada = itensEcommerce.get(oferta.codigoOferta) 
10319      sendEventEcommerce("select_item", ofertaSelecionada); 
10320      sendEventEcommerce("view_item", ofertaSelecionada); 
10321      sendEventEcommerce("add_to_cart", ofertaSelecionada); 
10322      sendEventEcommerce("begin_checkout", ofertaSelecionada); 
10323       
10324      var urlCompra  = link.replace('\{acad_prog\}', acadProg) 
10325        .replace('\{codUnidade\}', $('[name="codUnidadeSelecionada"]').val()) 
10326        .replace('\{periodo\}', (oferta.periodoDiaOferta == 'TA') ? 'V' :  oferta.periodoDiaOferta.slice(0, 1)) 
10327        .replace('\{etapa\}', oferta.etapa) 
10328        .replace('\{codOferta\}', oferta.codigoOferta); 
10329      window.open(urlCompra, '_blank'); 
10330 
10331
10332 
10333   function formataDataComBarra(dataInvertidaComTraco){ 
10334 		return dataInvertidaComTraco.split('-').reverse().join('/'); 
10335
10336 
10337    
10338    let ctrlPressed = false; 
10339    $(window).keydown(function (ev) { 
10340      if(ev.which == 17){ 
10341        ctrlPressed = true; 
10342        return false; 
10343      }    
10344      if(ev.which == 82 && ctrlPressed){ 
10345        return false; 
10346
10347      return (ev.which != 116); // F5  
10348    }).keyup(function(ev) { 
10349      if (ev.which == 17){ 
10350        ctrlPressed = false; 
10351
10352      return true; 
10353    }); 
10354 
10355 
10356   </script> 
10357 
10358</#if>