Publicador de Conteúdos e Mídias

Um erro ocorreu enquanto processava o modelo.
Java method "com.liferay.journal.model.impl.JournalArticleImpl.getContent()" threw an exception when invoked on com.liferay.journal.model.impl.JournalArticleImpl object "{\"mvccVersion\": 2, \"ctCollectionId\": 0, \"uuid\": \"19f9c574-5a3e-8922-4b0a-51b45cfb8606\", \"id\": 105975294, \"resourcePrimKey\": 36873727, \"groupId\": 20125, \"companyId\": 20102, \"userId\": 44841, \"userName\": \"API Integração\", \"createDate\": \"2021-08-28 02:39:54.293\", \"modifiedDate\": \"2025-07-07 21:50:13.589\", \"externalReferenceCode\": \"36873725\", \"folderId\": 42112, \"classNameId\": 0, \"classPK\": 0, \"treePath\": \"/42112/\", \"articleId\": \"36873725\", \"version\": 7.5, \"urlTitle\": \"curso-tecnico-em-eventos\", \"DDMStructureKey\": \"41004\", \"DDMTemplateKey\": \"2186668\", \"defaultLanguageId\": \"pt_BR\", \"layoutUuid\": \"\", \"displayDate\": null, \"expirationDate\": null, \"reviewDate\": null, \"indexable\": true, \"smallImage\": false, \"smallImageId\": 0, \"smallImageURL\": \"\", \"lastPublishDate\": null, \"status\": 0, \"statusByUserId\": 44841, \"statusByUserName\": \"API Integração\", \"statusDate\": \"2025-07-07 21:50:13.589\"}"; see cause exception in the Java stack trace.

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