Publicador de Conteúdos e Mídias

Um erro ocorreu enquanto processava o modelo.
The following has evaluated to null or missing:
==> isEMED  [in template "20102#20129#438394" at line 3716, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

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