Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> groupService.fetchFriendlyURLGroup(companyId, "/"+friendlyUrlUnidade)  [in template "20102#20129#23798944" at line 36, column 21]

----
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: #assign groupObj = groupService.fetch...  [in template "20102#20129#23798944" at line 36, column 1]
----
1<#-- 
2Name: Unidade - Tipos de Curso 
3Type: Asset Publisher Widget Template 
4Path: ROOT/assets/unidades-tipos-de-curso/widget-templates/unidades_tipos_de_curso.html 
5--> 
6<#assign prefix = "ssp" /> 
7<#assign companyId = themeDisplay.getCompanyId() /> 
8<#assign siteGroupId = themeDisplay.getSiteGroupId() /> 
9<#assign friendlyUrlTipoCurso = getTipoCursoFirendlyUrl() /> 
10<#assign friendlyUrlUnidade = getUnidadeFirendlyUrl() /> 
11 
12<#assign categoryId = 0 /> 
13 
14<#if friendlyUrlTipoCurso?contains("livre") ||  friendlyUrlTipoCurso?contains("extensao")> 
15    
16	<#assign friendlyUrlTemaFirst = getTemaFirstLevelFriendly() /> 
17	<#assign friendlyUrlTemaSecond = getTemaSecondLevelFriendly() /> 
18	<#assign friendlyUrlTemaThird = getTemaThirdLevelFriendly() /> 
19	 
20	<#if friendlyUrlTipoCurso?contains("livre") >  
21		<#assign tipoCurso = "Livre" /> 
22	<#else> 
23		<#assign tipoCurso = "Extensão" /> 
24	</#if>	 
25<#-- cursos tecnicos nao tem 2o e 3o nivel de temas conforme prototipo GCR --> 
26<#elseif  friendlyUrlTipoCurso?contains("tecnico")> 
27    <#assign tipoCurso = "Técnico" /> 
28    <#assign friendlyUrlTemaFirst = getTemaFirstLevelFriendly() /> 
29	<#assign friendlyUrlTemaSecond = "#erro#" /> 
30	<#assign friendlyUrlTemaThird = "#erro#" /> 
31 
32<#else>	 
33</#if> 
34 
35<#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") /> 
36<#assign groupObj = groupService.fetchFriendlyURLGroup(companyId, "/"+friendlyUrlUnidade) /> 
37<#assign groupIdUnidade = groupObj.getGroupId() /> 
38 
39		<#assign journal = getJournalArticle(groupIdUnidade) > 
40		<#if !journal?contains("#erro#")> 
41			 <#assign groupIdUnidade = groupId /> 
42			 <#assign journalArticleUnidade = journal> 
43			<#assign document = saxReaderUtil.read(journalArticleUnidade.getContent()) /> 
44			<#assign rootElement = document.getRootElement() /> 
45			 
46			    <#-- Get fields --> 
47 
48					 <#--  Nome da unidade  --> 
49                    <#assign xPathSelector_nomeUnidadeParaBreadCrumb = saxReaderUtil.createXPath("dynamic-element[@name='nomeUnidade']")> 
50                    <#assign nomeUnidadeParaBreadCrumb = xPathSelector_nomeUnidadeParaBreadCrumb.selectSingleNode(rootElement).getStringValue()> 
51 
52                    <#--  Nome da unidade  --> 
53                    <#assign xPathSelector_nome = saxReaderUtil.createXPath("dynamic-element[@name='nomeUsualUnidade']")> 
54                    <#assign nomeUnidade = xPathSelector_nome.selectSingleNode(rootElement).getStringValue()> 
55 
56                    <#assign xPathSelector_codigoUnidade = saxReaderUtil.createXPath("dynamic-element[@name='codigoUnidade']")> 
57                    <#assign codigoUnidade = xPathSelector_codigoUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
58                     
59                        <#if nomeUnidade?? > 
60                            <#assign nome = nomeUnidade > 
61                            <#else> 
62                            <#assign nome = "" > 
63                        </#if> 
64 
65                <#--  Endereço 1  --> 
66 
67                        <#--  Rua  --> 
68                        <#assign xPathSelector_enderecoUnidade = saxReaderUtil.createXPath("dynamic-element[@name='enderecoUnidade']")> 
69                        <#assign enderecoUnidade = xPathSelector_enderecoUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
70 
71                            <#if enderecoUnidade?? > 
72                                <#assign endereco = enderecoUnidade > 
73                                <#else> 
74                                <#assign endereco = "" > 
75                            </#if> 
76 
77                        <#--  número  --> 
78                        <#assign xPathSelector_numEnderecoUnidade = saxReaderUtil.createXPath("dynamic-element[@name='numEnderecoUnidade']")> 
79                        <#assign numeroUnidade = xPathSelector_numEnderecoUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
80 
81                            <#if numeroUnidade?? > 
82                                <#assign numero = numeroUnidade > 
83                                <#else> 
84                                <#assign numero = "" > 
85                            </#if> 
86 
87                        <#--  Bairro  --> 
88                        <#assign xPathSelector_bairroUnidade = saxReaderUtil.createXPath("dynamic-element[@name='bairroUnidade']")> 
89                        <#assign bairroUnidade = xPathSelector_bairroUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
90 
91                            <#if bairroUnidade?? > 
92                                <#assign bairro = bairroUnidade > 
93                                <#else> 
94                                <#assign bairro = "" > 
95                            </#if> 
96                         
97                        <#--  Cidade  --> 
98                        <#assign xPathSelector_cidadeUnidade = saxReaderUtil.createXPath("dynamic-element[@name='cidadeUnidade']")> 
99                        <#assign cidadeUnidade = xPathSelector_cidadeUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
100 
101                            <#if cidadeUnidade?? > 
102                                <#assign cidade = cidadeUnidade > 
103                                <#else> 
104                                <#assign cidade = "" > 
105                            </#if> 
106 
107                        <#--  Cep  --> 
108                        <#assign xPathSelector_cepUnidade = saxReaderUtil.createXPath("dynamic-element[@name='cepUnidade']")> 
109                        <#assign cepUnidade = xPathSelector_cepUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
110 
111                            <#if cepUnidade?? > 
112                                <#assign cep = cepUnidade > 
113                                <#else> 
114                                <#assign cep = "" > 
115                            </#if>  
116 
117            <#-- Fim endereço 1 -->   
118 
119            <#--  Endereço 2  --> 
120 
121                        <#--  Rua  --> 
122                        <#assign xPathSelector_enderecoUnidade2 = saxReaderUtil.createXPath("dynamic-element[@name='enderecoUnidade2']")> 
123                        <#assign enderecoUnidade2 = xPathSelector_enderecoUnidade2.selectSingleNode(rootElement).getStringValue()?trim> 
124 
125                            <#if enderecoUnidade2?? > 
126                                <#assign endereco2 = enderecoUnidade2 > 
127                                <#else> 
128                                <#assign endereco2 = "" > 
129                            </#if> 
130 
131                        <#--  número  --> 
132                        <#assign xPathSelector_numeroUnidade2 = saxReaderUtil.createXPath("dynamic-element[@name='numeroUnidade2']")> 
133                        <#assign numeroUnidade2 = xPathSelector_numeroUnidade2.selectSingleNode(rootElement).getStringValue()?trim> 
134 
135                            <#if numeroUnidade2?? > 
136                                <#assign numero2 = numeroUnidade2 > 
137                                <#else> 
138                                <#assign numero2 = "" > 
139                            </#if> 
140 
141                        <#--  Bairro  --> 
142                        <#assign xPathSelector_bairroUnidade2 = saxReaderUtil.createXPath("dynamic-element[@name='bairroUnidade2']")> 
143                        <#assign bairroUnidade2 = xPathSelector_bairroUnidade2.selectSingleNode(rootElement).getStringValue()?trim> 
144 
145                            <#if bairroUnidade2?? > 
146                                <#assign bairro2 = bairroUnidade2 > 
147                                <#else> 
148                                <#assign bairro2 = "" > 
149                            </#if> 
150                         
151                        <#--  Cidade  --> 
152                        <#assign xPathSelector_cidadeUnidade2 = saxReaderUtil.createXPath("dynamic-element[@name='cidadeUnidade2']")> 
153                        <#assign cidadeUnidade2 = xPathSelector_cidadeUnidade2.selectSingleNode(rootElement).getStringValue()?trim> 
154 
155                            <#if cidadeUnidade2?? > 
156                                <#assign cidade2 = cidadeUnidade2 > 
157                                <#else> 
158                                <#assign cidade2 = "" > 
159                            </#if> 
160 
161                        <#--  Cep  --> 
162                        <#assign xPathSelector_cepUnidade2 = saxReaderUtil.createXPath("dynamic-element[@name='cepUnidade2']")> 
163                        <#assign cepUnidade2 = xPathSelector_cepUnidade2.selectSingleNode(rootElement).getStringValue()?trim> 
164 
165                            <#if cepUnidade2?? > 
166                                <#assign cep2 = cepUnidade2 > 
167                                <#else> 
168                                <#assign cep2 = "" > 
169                            </#if>  
170 
171            <#-- Fim endereço 2 --> 
172 
173 
174 
175                        <#--  Horário  --> 
176                        <#assign xPathSelector_horarioUnidade = saxReaderUtil.createXPath("dynamic-element[@name='horarioUnidade']")> 
177                        <#assign horarioUnidade = xPathSelector_horarioUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
178 
179                            <#if horarioUnidade?? > 
180                                <#assign horario = horarioUnidade > 
181                                <#else> 
182                                <#assign horario = "" > 
183                            </#if> 
184 
185                        <#--  DDD  --> 
186                        <#assign xPathSelector_dddUnidade = saxReaderUtil.createXPath("dynamic-element[@name='dddTelefoneUnidade']")> 
187                        <#assign dddUnidade = xPathSelector_dddUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
188 
189                            <#if dddUnidade?? > 
190                                <#assign ddd = dddUnidade > 
191                                <#else> 
192                                <#assign ddd = "" > 
193                            </#if> 
194 
195                        <#--  telefone  --> 
196                        <#assign xPathSelector_telefoneUnidade = saxReaderUtil.createXPath("dynamic-element[@name='telefoneUnidade']")> 
197                        <#assign telefoneUnidade = xPathSelector_telefoneUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
198 
199                            <#if telefoneUnidade?? > 
200                                <#assign telefone = telefoneUnidade > 
201                                <#else> 
202                                <#assign telefone = "" > 
203                            </#if>                         
204 
205                        <#--  UF  --> 
206                        <#assign xPathSelector_ufUnidade = saxReaderUtil.createXPath("dynamic-element[@name='ufUnidade']")> 
207                        <#assign ufUnidade = xPathSelector_ufUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
208 
209                            <#if ufUnidade?? > 
210                                <#assign UF = ufUnidade > 
211                                <#else> 
212                                <#assign UF = "" > 
213                            </#if> 
214 
215                        <#-- Estacionamento --> 
216                        <#assign xPathSelector_estacionamento = saxReaderUtil.createXPath("dynamic-element[@name='estacionamentoUnidade']")> 
217                        <#assign estacionamentoUnidade = xPathSelector_estacionamento.selectSingleNode(rootElement).getStringValue()>  
218 
219                            <#if estacionamentoUnidade?? > 
220                                <#assign estacionamento = estacionamentoUnidade > 
221                                <#else> 
222                                <#assign estacionamento = "" > 
223                            </#if> 
224 
225                         <#-- Estacionamento Unidade 2 --> 
226                        <#assign xPathSelector_estacionamento2 = saxReaderUtil.createXPath("dynamic-element[@name='estacionamentoUnidade2']")> 
227                        <#assign estacionamentoUnidade2 = xPathSelector_estacionamento2.selectSingleNode(rootElement).getStringValue()>  
228 
229                            <#if estacionamentoUnidade2?? > 
230                                <#assign estacionamento2 = estacionamentoUnidade2 > 
231                                <#else> 
232                                <#assign estacionamento2 = "" > 
233                            </#if>          
234 
235                        <#--  Facebook  --> 
236                        <#assign xPathSelector_facebookUnidade = saxReaderUtil.createXPath("dynamic-element[@name='facebookUnidade']")> 
237                        <#assign facebookUnidade = xPathSelector_facebookUnidade.selectSingleNode(rootElement).getStringValue()> 
238 
239                            <#if facebookUnidade?? > 
240                                <#assign facebook = facebookUnidade > 
241                                <#else> 
242                                <#assign facebook = "" > 
243                            </#if> 
244 
245                        <#--  Instagram  --> 
246                        <#assign xPathSelector_instagramUnidade = saxReaderUtil.createXPath("dynamic-element[@name='instagramUnidade']")> 
247                        <#assign instagramUnidade = xPathSelector_instagramUnidade.selectSingleNode(rootElement).getStringValue()> 
248 
249                            <#if instagramUnidade?? > 
250                                <#assign instagram = instagramUnidade > 
251                                <#else> 
252                                <#assign instagram = "" > 
253                            </#if> 
254 
255                        <#--  Maps  --> 
256                        <#assign xPathSelector_googlemapsUnidade = saxReaderUtil.createXPath("dynamic-element[@name='googlemapsUnidade']")> 
257                        <#assign googlemapsUnidade = xPathSelector_googlemapsUnidade.selectSingleNode(rootElement).getStringValue()?trim> 
258 
259                            <#if googlemapsUnidade?? > 
260                                <#assign googlemaps = googlemapsUnidade > 
261                                <#else> 
262                                <#assign googlemaps = "" > 
263                            </#if> 
264 
265                        <#assign  hasMaps = (googlemaps?trim?length > 0) > 
266 
267                         
268 
269                        <#--  Waze  --> 
270                        <#assign xPathSelector_wazeUnidade = saxReaderUtil.createXPath("dynamic-element[@name='wazeUnidade']")> 
271                        <#assign wazeUnidade = xPathSelector_wazeUnidade.selectSingleNode(rootElement).getStringValue()> 
272 
273                            <#if wazeUnidade?? > 
274                                <#assign waze = wazeUnidade > 
275                                <#else> 
276                                <#assign waze = "" > 
277                            </#if>    
278 
279                                       
280 
281                                 
282                    <#--  Imagem  --> 
283 
284                    <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagemUnidade']")> 
285 
286                        <#assign imagemStr = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
287                         
288                        <#if imagemStr?contains("{") > 
289                            <#assign 
290                                imagemJson = jsonFactoryUtil.createJSONObject(imagemStr) 
291                                imagemId = getterUtil.getInteger(imagemJson.get('fileEntryId')) 
292                                dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") 
293                                dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] 
294                                fileEntry = dl.getFileEntry(imagemId) 
295                                imagemUrl = dlUtil.getImagePreviewURL(fileEntry, themeDisplay)  
296                            /> 
297                            <#else> 
298                                <#assign imagemUrl = ""> 
299                        </#if> 
300 
301                    <#--  Imagem 2  -->     
302                    <#assign xPathSelector2 = saxReaderUtil.createXPath("dynamic-element[@name='imagemUnidade2']")> 
303 
304                        <#assign imagemStr2 = xPathSelector2.selectSingleNode(rootElement).getStringValue()> 
305                         
306                        <#if imagemStr2?contains("{") > 
307                            <#assign 
308                                imagemJson2 = jsonFactoryUtil.createJSONObject(imagemStr2) 
309                                imagemId2 = getterUtil.getInteger(imagemJson2.get('fileEntryId')) 
310                                dl = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService") 
311                                dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] 
312                                fileEntry = dl.getFileEntry(imagemId2) 
313                                imagemUrl2 = dlUtil.getImagePreviewURL(fileEntry, themeDisplay)  
314                            /> 
315                            <#else> 
316                                <#assign imagemUrl2 = ""> 
317                        </#if>     
318		 	</#if> 
319 
320 <#function getJournalArticle groupId> 
321    <#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
322    <#assign friendlyURL = getUnidadeFirendlyUrl()> 
323    
324    <#attempt> 
325   
326      <#if !friendlyURL?contains("fragment_collections") > 
327         
328        <#return journalArticleService.getArticleByUrlTitle(groupId,friendlyURL)> 
329         
330      </#if> 
331       
332    <#recover> 
333         
334      <#return '#erro#'> 
335    </#attempt> 
336 </#function> 
337 
338 <#function getUnidadeFirendlyUrl > 
339 	 <#assign friendly = themeDisplay.getURLCurrent()?split("/")[1]?split("?")?first /> 
340 	 <#if friendly?contains("web") > 
341    	 <#assign friendly = themeDisplay.getURLCurrent()?split("/")[3]?split("?")?first> 
342    </#if> 
343     
344    <#return friendly /> 
345     
346 </#function> 
347   
348 <#function getTipoCursoFirendlyUrl > 
349 	 
350 	<#assign friendlyURLTipoCurso = themeDisplay.getURLCurrent()?split("/")[2]?split("?")?first /> 
351 	<#if friendlyURLTipoCurso?contains("guest") > 
352   	 	<#assign friendlyURLTipoCurso = themeDisplay.getURLCurrent()?split("/")[4]?split("?")?first> 
353   	</#if> 
354     	 
355    <#return friendlyURLTipoCurso /> 
356     
357 </#function> 
358 
359 <#function getTemaFirstLevelFriendly > 
360 	 <#attempt> 
361	 	<#assign friendly = themeDisplay.getURLCurrent()?split("/")[1]?split("?")?first /> 
362	 	 <#if !friendly?contains("web") > 
363	 	 	 <#if themeDisplay.getURLCurrent()?split("/")?size gt 3 > 
364	 	 		<#assign friendly = themeDisplay.getURLCurrent()?split("/")[3]?split("?")?first /> 
365	 	 	<#else> 
366	 	 		<#assign friendly = "" /> 
367	 	 	</#if>	 
368	 	 		 
369		<#else> 
370			<#if themeDisplay.getURLCurrent()?split("/")?size gt 5 > 
371	    	 	<#assign friendly = themeDisplay.getURLCurrent()?split("/")[5]?split("?")?first> 
372	    	 <#else> 
373	 	 		<#assign friendly = "" /> 
374	 	 	</#if> 
375	     </#if> 
376	      	  
377	    <#return friendly /> 
378    <#recover> 
379     	<#return '#erro#'> 
380    </#attempt> 
381     
382</#function>  
383 
384 <#function getTemaSecondLevelFriendly > 
385 	 <#attempt> 
386	 	 <#assign friendly = themeDisplay.getURLCurrent()?split("/")[1]?split("?")?first /> 
387	 	 
388	 	 <#if !friendly?contains("web") > 
389	 		 <#if themeDisplay.getURLCurrent()?split("/")?size gt 4 > 
390	 		 	<#assign friendly = themeDisplay.getURLCurrent()?split("/")[4]?split("?")?first /> 
391	 		 <#else> 
392	 	 		<#assign friendly = "" /> 
393	 	 	</#if>		 
394		<#else> 
395			 <#if themeDisplay.getURLCurrent()?split("/")?size gt 6 > 
396	    		 <#assign friendly = themeDisplay.getURLCurrent()?split("/")[6]?split("?")?first> 
397    		<#else> 
398	 	 		<#assign friendly = "" /> 
399	 	 	</#if>	  
400	    </#if> 
401	 
402	    <#return friendly /> 
403    <#recover> 
404     	<#return '#erro#'> 
405    </#attempt> 
406     
407</#function>  
408  
409 <#function getTemaThirdLevelFriendly > 
410 	 <#attempt> 
411	 	 <#assign friendly = themeDisplay.getURLCurrent()?split("/")[1]?split("?")?first /> 
412	 	  
413	 	 <#if !friendly?contains("web") > 
414	 	 	<#if themeDisplay.getURLCurrent()?split("/")?size gt 5 > 
415	 	 		<#assign friendly = themeDisplay.getURLCurrent()?split("/")[5]?split("?")?first /> 
416	 	 	<#else> 
417	 	 		<#assign friendly = "" /> 
418	 	 	</#if>	 
419		<#else> 
420			<#if themeDisplay.getURLCurrent()?split("/")?size gt 7 > 
421	    	 	<#assign friendly = themeDisplay.getURLCurrent()?split("/")[7]?split("?")?first> 
422	    	<#else> 
423	 	 		<#assign friendly = "" /> 
424	 	 	</#if> 	 
425	    </#if> 
426		    <#return friendly /> 
427    <#recover> 
428     	<#return '#erro#'> 
429    </#attempt> 
430     
431</#function>  
432 
433<style> 
434 
435.stop-scrolling { 
436	height: 100%; 
437	overflow: hidden; 
438
439 
440/*Header Unidade*/ 
441 
442.ssp:not(.liferay-instance) .ssp-header-unidade__endereco { 
443    font-family: Montserrat; 
444    font-size: 18px; 
445    max-width: 375px; 
446    width:100%; 
447    text-align: left; 
448    color: #fff; 
449    margin: 0; 
450
451 
452.ssp-header-unidade__content-info-body{ 
453	padding-top:30px; 
454
455 
456.ssp-header-unidade__atendimento-container > p > a { 
457    color:white!important; 
458
459 
460.ssp-header-unidade__atendimento-container > p > a:hover { 
461    color:white!important; 
462    font-weight: normal!important; 
463
464 
465.creditoFotoMob{ 
466 
467    margin: 0 auto; 
468    background: #FFF7D6; 
469    font-family: 'Montserrat'; 
470    font-size: 14px; 
471    line-height: 1.6em; 
472    border-radius: 3px; 
473    max-width: 240px; 
474    height: auto; 
475    color: #4F596F; 
476    padding: 5px; 
477    position: relative;     
478    float: right;     
479    top: 70%; 
480    max-height: 40px; 
481    font-weight: 500; 
482    right: 15%; 
483    flex-wrap: unset; 
484
485 
486.creditoFotoMob:after{ /*Triangulo*/ 
487    content: ""; 
488    width: 0; 
489    height: 0; 
490    position: absolute; 
491    border-left: 10px solid transparent; 
492    border-right: 10px solid transparent; 
493    /*Faz seta "apontar para baixo. Definir o valor como 'top' fará ela "apontar para cima" */ 
494    /*Aqui entra a cor da "aba" do balão */ 
495    border-bottom: 10px solid #FFF7D6; 
496    top: -9px; /*localização. Experimente alterar para 'bottom'*/ 
497    left: 20%; 
498
499.tooltip-inner { 
500    max-width: 230px; 
501    padding: 0.75rem 0.75rem; 
502    color: #4F596F; 
503    text-align: center; 
504    background-color: #FFF7D6; 
505    border-radius: 0.3125rem; 
506
507.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { 
508    top: 0; 
509    border-width: 0.4rem 0.4rem 0; 
510    border-top-color: #FFF7D6; 
511
512.ssp-header-title-bloco { 
513    font-size: 20px; 
514    font-weight: 600; 
515
516 
517.ssp:not(.liferay-instance) .ssp-header-unidade__imagem-box-imagem{ 
518    height:100%; 
519
520/*#slider { 
521    width: 80%; 
522    max-width: 500px; 
523    height: 25vw; 
524    max-height: 150px; 
525 
526    position: relative; 
527}*/ 
528 
529#slider .ssp-header-unidade__imagem-box-imagem{ 
530    opacity: 0; 
531    position: absolute; 
532    /*width: 100%; 
533    height: 100%;*/ 
534    object-fit: cover; 
535    transition: opacity 2000ms; 
536
537 
538#slider .ssp-header-unidade__imagem-box-imagem.selected {  
539    opacity: 1; 
540
541 
542@media only screen and (max-width: 1024px) { 
543     
544#slider .ssp-header-unidade__imagem-box-imagem{  
545    margin-top: -240px; 
546    height: 248px; 
547 
548
549 .ssp-header-unidade__container-info { 
550    margin-top: 240px!important; 
551
552 
553
554 
555 @media only screen and (max-width: 768px){ 
556 
557  .ssp:not(.liferay-instance) .ssp-header-unidade__imagem-box-imagem{ 
558    height:228px; 
559
560  .ssp-header-title-bloco { 
561    font-size: 14px;     
562}    
563 
564  .creditoFotoMob{ 
565    font-size: 9px!important; 
566    max-width: 161px!important; 
567    max-height: 30px!important; 
568    padding: 8.5px 9.5px!important; 
569    line-height: 0.6em!important; 
570     
571
572}  
573 
574/* Final Header Unidade*/ 
575 
576.btn-nivel-livre-ead{ 
577        background-color: #ff9057; 
578        border-color: #ff9057; 
579        box-shadow: none; 
580
581 
582    .icon-ao-vivo{ 
583    font-size:12px; 
584    margin:0 3px; 
585
586 
587 
588.subtema-ativo{ 
589 
590    color:#fcc080!important; 
591
592 
593.separador-subtemas{ 
594	width:100% !important; 
595	margin-top: -1em !important; 
596    margin-bottom: 2.25rem!important; 
597
598 
599.bg-nivel-extensao { 
600    background-color: #3ECCA6 !important; } 
601    a.bg-nivel-extensao:hover, a.bg-nivel-extensao:focus, 
602    button.bg-nivel-extensao:hover, 
603    button.bg-nivel-extensao:focus { 
604    background-color: #3ECCA6 !important; } 
605 
606</style> 
607 
608<#if tipoCurso == "Livre"> 
609 
610	<style> 
611	.ssp:not(.liferay-instance) .ativo{ 
612	  background-color: #FF9057!important; 
613	  color:white!important; 
614	  font-weight: 600!important; 
615
616	 
617	.tema-ativo{ 
618	  background-color: #FF9057!important; 
619	  color:white!important; 
620	  font-weight: 600!important; 
621
622	</style> 
623 
624<#elseif tipoCurso == "Técnico"> 
625 
626 
627	<style> 
628/* curso tecnico */	   
629	.ssp:not(.liferay-instance) .ativo{ 
630	  background-color: #F7BD23!important; 
631	  color:white!important; 
632	  font-weight: 600!important; 
633
634	 
635	.tema-ativo{ 
636	  background-color: #F7BD23!important; 
637	  color:white!important; 
638	  font-weight: 600!important; 
639
640	</style> 
641 
642<#else> 
643 
644    <style> 
645/* curso extensao */ 
646    .ssp:not(.liferay-instance) .ativo{ 
647      background-color: #3ECCA6!important; 
648      color:white!important; 
649      font-weight: 600!important; 
650
651     
652    .tema-ativo{ 
653      background-color: #3ECCA6!important; 
654      color:white!important; 
655      font-weight: 600!important; 
656
657    </style> 
658 
659</#if> 
660 
661<style> 
662 
663/* css para link no nome da unidade */ 
664 
665.ssp-header-unidade__title a{ 
666     
667    text-decoration: none!important; 
668    font-family: Montserrat; 
669    font-size: 44px; 
670    max-width: 440px; 
671    font-weight: 600!important; 
672    line-height: 1.23; 
673    text-align: left; 
674    color: white; 
675
676 
677.ssp-section-tema__subtitle-curso-section { 
678 
679	margin-left: 40px!important; 
680 
681
682 
683.ssp-page-busca__section-resultado__ver-todos{ 
684	margin-right: 40px!important; 
685
686 
687.submenu-tema-ativo{ 
688  background-color: #34495e!important; 
689  color:white!important; 
690  font-weight: 600!important; 
691
692 
693.submenu-tema-ativo-hover{ 
694  background-color: #34495e!important; 
695  color:white!important; 
696  font-size:50px; 
697  font-weight: 600!important; 
698
699 
700.subtema.btn-nivel-3.subtema-ativo{ 
701	background:#a2acc3!important; 
702	color:white!important; 
703
704 
705.slider-curso>.slick-area__item{ 
706 
707width:100%; 
708	 
709
710 
711.custom-card-curso-tema{ 
712  
713 height:288px!important;  
714   
715
716 
717@media only screen and (max-width: 768px){ 
718	 
719  .ssp:not(.liferay-instance) .custom-card-curso-tema { 
720      width: 100% !important; 
721      height:auto!important; 
722
723   
724   
725  .ssp-page-busca__section-resultado__ver-todos { 
726    display:none; 
727
728   
729  .filtroInscBolsa{ 
730  	display:none!important; 
731
732   
733
734   
735.ssp:not(.liferay-instance) .ssp-container__cursos-sem-slick { 
736    display: flex; 
737    justify-content: center; 
738    flex-wrap: wrap; 
739
740 
741/*Novas funcionalidades*/ 
742	#filtro-temas-nivel-3{ 
743		padding-bottom: 2em; 
744
745	 
746 .switch { 
747          position: relative; 
748          display: inline-block; 
749          width: 63px; 
750          height: 31.5px; 
751          margin: 0; 
752
753         
754        .switch input {  
755          opacity: 0; 
756          width: 0; 
757          height: 0; 
758
759         
760        .slider { 
761          position: absolute; 
762          cursor: pointer; 
763          top: 0; 
764          left: 0; 
765          right: 0; 
766          bottom: 0; 
767          background-color: #ccc; 
768          -webkit-transition: .4s; 
769          transition: .4s; 
770
771         
772        .slider:before { 
773          position: absolute; 
774          content: ""; 
775          height: 21px; 
776          width: 21px; 
777          left: 7px; 
778          bottom: 5.5px; 
779          background-color: white; 
780          -webkit-transition: .4s; 
781          transition: .4s; 
782
783         
784        input:checked + .slider { 
785          background-color: #5ACC75; 
786
787         
788        input:focus + .slider { 
789          box-shadow: 0 0 1px #5ACC75; 
790
791         
792        input:checked + .slider:before { 
793          -webkit-transform: translateX(26px); 
794          -ms-transform: translateX(26px); 
795          transform: translateX(26px); 
796
797         
798        /* Rounded sliders */ 
799        .slider.round { 
800          border-radius: 35px; 
801
802         
803        .slider.round:before { 
804          border-radius: 50%; 
805
806 
807        /* content filter */ 
808 
809        .ssp-slider-check__container{ 
810 
811            display: flex; 
812            justify-content: flex-end; 
813 
814
815 
816 
817	 
818	 .ssp-slider-check__content-itens{ 
819 
820            display: flex; 
821            width: 800px!important; 
822         
823            justify-content: flex-end!important; 
824             
825
826         
827         .ssp-slider-check__content-item{ 
828 
829            display: flex; 
830            align-items: center; 
831            padding: 0 20px; 
832
833         
834        
835        .ssp-slider-check__label{ 
836 
837            font-family: Montserrat; 
838            color: #78849E; 
839            font-size: 16px; 
840            padding-left: 10px; 
841            font-weight: 600; 
842 
843
844		 
845        .ssp-section-tema__container-menu { 
846            padding-bottom: 15px; 
847
848 
849		.ssp-section-tema__subtitle-desconto{ 
850			display: block; 
851			font-size: 30px; 
852
853 
854        @media only screen and (max-width: 1024px) { 
855             
856            .ssp-slider-check__content-item{ 
857				padding: 0; 
858
859 
860			.ssp-section-tema__subtitle-desconto{ 
861				font-size: 19px; 
862
863 
864			.ssp-header-unidade__title a{ 
865				 
866				font-size: 24px; 
867
868 
869			.ssp-section-tema__subtitle-curso-section { 
870 
871				margin-left: 0px!important; 
872 
873
874 
875            #filtro-ativo-nivel-2{ 
876                justify-content: center; 
877
878 
879            .ssp-slider-check__label{ 
880 
881                font-size: 11px; 
882 
883
884 
885            .tema-slick-area { 
886     
887                display: flex; 
888                align-items: center; 
889                justify-content: flex-start; 
890                font-size: 0; 
891                flex-wrap: wrap; 
892
893 
894            /* custom  itens */ 
895			 
896			 
897            .ssp-unidade-temas__label-filtre-por{ 
898                font-size: 15px!important; 
899    			padding-left: 5px!important; 
900
901            
902 
903            .ssp-section-tema__container-menu { 
904                height: auto!important; 
905
906 
907            .tema-slick-area-mobile { 
908                display: flex; 
909                align-items: center; 
910                justify-content: center; 
911                font-size: 0; 
912                flex-wrap: wrap; 
913
914 
915            .ssp-section-tema__container-submenu-nivel3 { 
916 
917                justify-content: center; 
918
919             
920             .ssp-slider-check__container{ 
921            	padding-top:10px!important; 
922
923      }      
924</style> 
925 
926<#if tipoCurso == "Livre"> 
927 
928	<style>     
929		@media only screen and (max-width: 768px){      
930			.tema-ativo::after{ 
931				font-family: "Font Awesome 5 Free";  
932				font-weight: 900;  
933				content: "\f00d"; 
934				font-size: 12px; 
935				margin: 0 5px; 
936
937
938	</style>             
939</#if> 
940<style> 
941		@media only screen and (max-width: 768px){      
942			.subtema-ativo::after{ 
943				font-family: "Font Awesome 5 Free";  
944				font-weight: 900;  
945				content: "\f00d"; 
946				font-size: 12px; 
947				margin: 0 5px; 
948
949             
950            .ssp:not(.liferay-instance) .ssp-page-busca__section-resultado__ver-todos-mobile { 
951			    font-family: Montserrat; 
952			    font-size: 16px; 
953			    font-weight: 600; 
954			    line-height: 1.21; 
955			    color: #78849e; 
956			    text-decoration: none !important; 
957			    transition: 0.3s; 
958			    text-align: center !important; 
959   				 padding-left: 7em; 
960
961			 
962			.ssp:not(.liferay-instance) .ssp-page-busca__section-resultado__ver-todos-mobile::after { 
963			    font-family: FontAwesome; 
964			    font-weight: 900; 
965			    content: '\f054'; 
966			    font-size: 12px; 
967			    margin-left: 5px; 
968
969 
970
971 
972        /* Custom css para unidades */ 
973 
974        .ssp-unidade-temas__label-filtre-por{ 
975 
976            font-family: Montserrat; 
977            font-size: 20px; 
978            font-weight: 600; 
979            padding: 15px; 
980            padding-left: 30px; 
981            color: #78849E; 
982 
983
984 
985        .ssp-section-tema__container-submenu-nivel3 .btn-nivel-3 { 
986            margin: 15px 10px; 
987           
988
989 
990 
991        .ssp-line-nivel-divisor { 
992            width: 100%; 
993            height: 1px; 
994            background: #78849E; 
995            margin: 15px 0; 
996
997 
998     .ssp-header-unidade__content-info{ 
999            z-index: 0!important; 
1000
1001 
1002        .ssp-btn-tema-mobile--active{ 
1003            background-color: #FE9057!important; 
1004            color: white!important; 
1005
1006 
1007        .ssp-btn-tema-mobile--active::after{ 
1008            font-family: "Font Awesome 5 Free";  
1009            font-weight: 900;  
1010            content: "\f00d"; 
1011            font-size: 12px; 
1012            margin: 0 5px; 
1013
1014 
1015        .ssp-btn-subtema-mobile--active{ 
1016            background-color: #78849E!important; 
1017            color: white!important; 
1018
1019         
1020        
1021 
1022        /* Botão Visualizar mais */ 
1023 
1024        .ssp-btn__visualizar-mais-content{ 
1025            display: flex; 
1026            flex-wrap: nowrap; 
1027            align-items: center; 
1028            justify-content: center; 
1029
1030 
1031        .ssp-btn__visualizar-mais{ 
1032            cursor: pointer; 
1033            font-size: 14px; 
1034
1035         
1036        #visualizar-mais{ 
1037        	font-family:montserrat; 
1038
1039		 
1040		.tema{ 
1041			box-shadow: none !important; 
1042
1043		.separador-subtemas{ 
1044			margin:10px 0px 30px 0px!important; 
1045
1046		 
1047		.py-5{ 
1048			padding-bottom: 0px!important; 
1049			padding-top: 5px!important; 
1050
1051		 
1052		.ssp-section-tema__title{ 
1053			margin: 40px 0px 25px 0px!important; 
1054
1055@media only screen and (min-width: 1025px){ 
1056	.ssp-section-tema__container-submenu-nivel3 .btn-nivel-3 { 
1057		margin-bottom: 20px!important; 
1058
1059	 
1060	.filtroTextoMobile{ 
1061		display: none; 
1062
1063}    
1064     
1065 
1066</style>      
1067      
1068      
1069<#--  Header da Unidade  --> 
1070 
1071 
1072<section style="position:relative;"> 
1073    <div class="ssp-header-unidade__imagem-box">     
1074        <div class="ssp-header-unidade__imagem-box-box-linha"></div> 
1075 
1076        <div class="ssp-header-unidade__imagem-box-box-linha2"></div> 
1077 
1078		<div id="slider">      
1079 
1080            <div class="ssp-header-unidade__imagem-box-imagem selected" style="background-image: url(${imagemUrl})">                 
1081 
1082            </div> 
1083        
1084            <#if endereco2?length != 0> 
1085 
1086                <div class="ssp-header-unidade__imagem-box-imagem" style="background-image: url(${imagemUrl2})"></div>     
1087 
1088            </#if>     
1089                 
1090             
1091                 
1092        </div> 
1093        <!--div class="ssp-header-unidade__imagem-box-imagem" style="background-image: url(img/bg-fale-com-gente.jpg)"></div--> 
1094 
1095		<#--  dados de compartilhamento  --> 
1096		<@liferay_util["html-top"]> 
1097			<meta name="image" property="og:image" content="${imagemUrl}"> 
1098			<meta property="og:image:width" content="1024"> 
1099		</@> 
1100		<#--  dados de compartilhamento  --> 
1101	 
1102		<#if tipoCurso == "Livre" > 
1103			<div class="ssp-header-tema__tag-tipo-curso"></div> 
1104		<#elseif tipoCurso == "Técnico"> 
1105        	<!-- Tag de Tipo de Curso --> 
1106        	<div class="ssp-header-tema__tag-tipo-curso bg-nivel-tecnico"></div> 
1107			 
1108        <#else> 
1109            <!-- Tag de Extensão --> 
1110            <div class="ssp-header-tema__tag-tipo-curso bg-nivel-extensao"></div> 
1111             
1112        </#if> 
1113        <div class="ssp-header-unidade__container-info"> 
1114 
1115            <div class="container"> 
1116 
1117                <div class="ssp-header-unidade__content-info" style="height: auto;"> 
1118 
1119                    <div class="ssp-header-unidade__content-info-container"> 
1120 
1121                        <div> 
1122 
1123                            <div> 
1124                                <small class="ssp-header-unidade__subtitle">Senac</small> 
1125                            </div> 
1126 
1127                            <div class="ssp-header-unidade__title-container"> 
1128 
1129                                <div> 
1130 
1131                                    <h1 class="ssp-header-unidade__title"> 
1132										<a href="https://www.sp.senac.br/${friendlyUrlUnidade}"> 
1133											${nome} 
1134										</a>	 
1135									</h1> 
1136									 
1137 
1138								</div> 
1139								 
1140                                <#-- o código da unidade é usado para referência de unidade no --> 
1141                                <span id="codUnidadeReferencia" class="d-none">${codigoUnidade}</span> 
1142                                <span id="friendlyUnidade" class="d-none">${friendlyUrlUnidade}</span> 
1143                                <span id="friendlyTipoCurso" class="d-none">${friendlyUrlTipoCurso}</span> 
1144                                <span id="nomeUnidadeParaBreadCrumb" class="d-none">${nomeUnidadeParaBreadCrumb}</span> 
1145								 
1146								<#if friendlyUrlTipoCurso?contains("livre")> 
1147                                 	<span id="tipoCursoText" class="d-none">Livre</span> 
1148                                <#elseif friendlyUrlTipoCurso?contains("tecnico")> 
1149                                  	<span id="tipoCursoText" class="d-none">Técnico</span> 
1150                                <#else> 
1151                                	 <span id="tipoCursoText" class="d-none">Extensão</span>	 
1152                               </#if> 
1153                            	<#if friendlyUrlTemaFirst?contains("#erro#")> 
1154                                 	<span id="friendlyTemaNv1" class="d-none"></span> 
1155                                 <#else> 
1156                                  	<span id="friendlyTemaNv1" class="d-none">${friendlyUrlTemaFirst}</span> 
1157                               </#if> 
1158                                <#if friendlyUrlTemaSecond?contains("#erro#")> 
1159                                 	<span id="friendlyTemaNv2" class="d-none"></span> 
1160                                <#else> 
1161                                  <span id="friendlyTemaNv2" class="d-none">${friendlyUrlTemaSecond}</span> 
1162                               </#if> 
1163                               <#if friendlyUrlTemaThird?contains("#erro#")> 
1164                                 	<span id="friendlyTemaNv3" class="d-none"></span> 
1165                                 <#else> 
1166                                 	 <span id="friendlyTemaNv3" class="d-none">${friendlyUrlTemaThird}</span> 
1167                               </#if> 
1168                                
1169                            </div> 
1170 
1171                        </div> 
1172 
1173                        <div class="ssp-header-unidade__endereco-container"> 
1174 
1175                            <div class="d-flex flex-wrap"> 
1176                                 
1177								<div> 
1178								 
1179									<#if endereco2?length != 0> 
1180										<span class="ssp-header-title-bloco">Bloco I</span><br> 
1181									</#if> 
1182 
1183									<address class="ssp-header-unidade__endereco"> 
1184										${endereco}, ${numero}<br>  
1185										${bairro}, ${cidade} - ${UF}, ${cep} 
1186									</address> 
1187 
1188									<span class="ssp-header-unidade__estacionamento"> 
1189 
1190									<i class="fas fa-car"></i> 
1191 
1192										<#if estacionamento?contains("true")> 
1193											<strong>Possui estacionamento?</strong> Sim 
1194											<#else> 
1195											<strong>Possui estacionamento?</strong> Não 
1196										</#if> 
1197 
1198									</span> 
1199								</div> 
1200 
1201								<#if endereco2?length != 0> 
1202 
1203									<div class="pt-5"> 
1204										<span class="ssp-header-title-bloco">Bloco II</span><br> 
1205										<address class="ssp-header-unidade__endereco"> 
1206											${endereco2}, ${numero2}<br>  
1207											${bairro2}, ${cidade2}, ${cep2} 
1208										</address> 
1209										<span class="ssp-header-unidade__estacionamento"> 
1210											<i class="fas fa-car"></i> 
1211 
1212												<#if estacionamento2?contains("true")> 
1213													<strong>Possui estacionamento?</strong> Sim 
1214													<#else> 
1215													<strong>Possui estacionamento?</strong> Não 
1216												</#if> 
1217 
1218										</span> 
1219									</div> 
1220 
1221								</#if> 
1222 
1223							</div>   
1224 
1225                            <div class="ssp-header-unidade__content-info-maps"> 
1226 
1227 
1228                                <a class="btn btn-nivel border-white ssp-header-unidade__btn" href="${googlemaps}" target="_blank"> 
1229                                    <i class="fas fa-map-marker-alt mr-2 ssp-header-unidade__btn-icon"></i>Google Maps 
1230                                </a> 
1231 
1232	                            <a class="btn btn-nivel border-white ml-2  d-sm-inline-block d-md-none d-lg-none d-xl-none ssp-header-unidade__btn" href="${waze}" target="_blank"> 
1233                                    <i class="fab fa-waze mr-2 ssp-header-unidade__btn-icon"></i>Waze 
1234                                </a> 
1235 
1236                            </div>                         
1237                             
1238                        </div> 
1239 
1240                    </div> 
1241 
1242                    <div class="ssp-header-unidade__content-info-body"> 
1243 
1244                        <div class="ssp-header-unidade__atendimento-container"> 
1245                            <p><strong>Atendimento:</strong></p> 
1246	                        <p>${horario}</p> 
1247                        </div> 
1248                         
1249                    </div> 
1250 
1251                     
1252            </div> 
1253             
1254        </div> 
1255 
1256        </div>  
1257                     
1258    </div> 
1259         
1260 
1261<script> 
1262     
1263    if ( $.trim($('.ssp-header-unidade__title').html()) === 'Santo Amaro'){ 
1264 
1265    $('.ssp-header-unidade__subtitle').html('Centro Universitário Senac') 
1266 
1267    } else if ( $.trim($('.ssp-header-unidade__title').html()) === 'Campos do Jordão'){ 
1268 
1269        $('.ssp-header-unidade__subtitle').html('Centro Universitário Senac') 
1270 
1271    } else if ( $.trim($('.ssp-header-unidade__title').html()) === 'Águas de São Pedro'){ 
1272 
1273        $('.ssp-header-unidade__subtitle').html('Centro Universitário Senac') 
1274 
1275
1276 
1277//Animação de Crédito da imagem 
1278 
1279$(document).ready(function(){   
1280 
1281    let larguraTela = $(window).width(); 
1282 
1283    if(larguraTela < 1024){ 
1284 
1285        animateCreditImage() 
1286 
1287        $(window).scroll(function() { 
1288            ScrollPagina() 
1289        }); 
1290 
1291    }else{ 
1292 
1293        $(".ssp-header-unidade__imagem-box-imagem" ).mouseover(function() { 
1294            $(".creditoFotoMob").removeClass('d-none') 
1295         
1296        });   
1297 
1298        $(".ssp-header-unidade__imagem-box-imagem" ).mouseout(function() { 
1299                $(".creditoFotoMob").addClass('d-none') 
1300                 
1301        });  
1302 
1303
1304 
1305    //verifica posição do Top 
1306 
1307    function ScrollPagina(){ 
1308 
1309        let scrollPage = $(window).scrollTop(); 
1310 
1311        if(scrollPage == 0){ 
1312 
1313            animateCreditImage() 
1314 
1315
1316
1317 
1318    function animateCreditImage(){ 
1319 
1320        $( ".creditoFotoMob" ).removeClass('d-none').fadeIn( 200 ).delay( 2500 ).fadeOut( 5000 ); 
1321 
1322
1323 
1324    //anima Slider fotos unidades de 
1325 
1326    let time = 5000, 
1327        currentImageIndex = 0, 
1328        images = document 
1329                    .querySelectorAll("#slider .ssp-header-unidade__imagem-box-imagem") 
1330        max = images.length; 
1331 
1332    function nextImage() { 
1333 
1334        images[currentImageIndex] 
1335            .classList.remove("selected") 
1336 
1337        currentImageIndex++ 
1338 
1339        if(currentImageIndex >= max) 
1340            currentImageIndex = 0 
1341 
1342        images[currentImageIndex] 
1343            .classList.add("selected") 
1344
1345 
1346    function start() { 
1347 
1348        let enderecos = document.querySelectorAll('address'); 
1349 
1350        console.log(enderecos.length); 
1351 
1352        if(enderecos.length >= 2){     
1353 
1354            setInterval(() => { 
1355                // troca de image 
1356                nextImage() 
1357            }, time) 
1358
1359        
1360
1361 
1362    window.addEventListener("load", start) 
1363 
1364});  
1365     
1366</script> 
1367	 
1368 
1369     
1370</section> 
1371 
1372<!--  Fim Header Unidade --> 
1373 
1374 
1375      
1376<#--  Conteúdo dinâmico que carrega os temas, subtemas e cursos  --> 
1377 
1378<section> 
1379 
1380	<div> 
1381 
1382		<h2 class="ssp-section-tema__title"> 
1383			<#if tipoCurso == "Livre"> 
1384 
1385				Cursos Livres 
1386 
1387				<!-- <span class="ssp-section-tema__subtitle-desconto"> 
1388					<span style="color: #ff9057">30% de desconto</span> com opções imperdíveis de parcelamento 
1389				</span> --> 
1390				 
1391			<#elseif tipoCurso == "Técnico">	 
1392 
1393				Cursos Técnicos 
1394 
1395				<!-- <span class="ssp-section-tema__subtitle-desconto"> 
1396					<span style="color:#f7bd23">99 reais mensais.</span> O seu futuro por menos de 4 reais por dia 
1397				</span>			 --> 
1398				 
1399            <#else>  
1400 
1401                Extensão Universitária 
1402 
1403                <!--<span class="ssp-section-tema__subtitle-desconto"> 
1404                    <span style="color:#3ECCA6">30% de desconto</span> e muito mais tempo para pagar  
1405                </span>         --> 
1406                 
1407            </#if> 
1408		</h2> 
1409 
1410		<div class="container"> 
1411 
1412			<div> 
1413				<span class="ssp-unidade-temas__label-filtre-por">Selecione uma área:</span> 
1414			</div> 
1415 
1416			<div id="temas" class="ssp-section-tema__container-menu"> 
1417 
1418				<div class="ssp-section-tema__container-menu-item"> 
1419					<a href="#a" class="tema todos" data-nvl="0">Todos os cursos</a> 
1420				</div> 
1421 
1422			</div> 
1423 
1424			<!-- Botão Visualizar Mais --> 
1425 
1426			<div class="ssp-btn__visualizar-mais-content d-md-none d-lg-none d-xl-none"> 
1427 
1428				<p id="visualizar-mais" class="ssp-btn__visualizar-mais">Visualizar mais</p> 
1429 
1430				<i class="fas fa-chevron-down mx-2 visualizar-mais-seta" style="font-size: 14px;"></i> 
1431				 
1432			</div> 
1433 
1434			<!-- filtros ativos para Mobile --> 
1435 
1436			<div id="filtro-ativo" class="tema-slick-area-mobile py-2"> 
1437 
1438				<!-- filtro nivel 1 --> 
1439				<div id="filtro-ativo-nivel-1" class="ssp-section-tema__container-menu-item mega-menu"> 
1440					 
1441				</div> 
1442 
1443				<div id="filtro-ativo-nivel-2" class="container ssp-section-tema__container-submenu-nivel3"> 
1444							 
1445				</div> 
1446 
1447			</div> 
1448 
1449		</div> 
1450 
1451	</div> 
1452 
1453</section> 
1454 
1455<section  id="tema-nivel2-container" 
1456	style="background-color: #e4e8f0;"> 
1457	 
1458	<h2 id="tema-atual" class="ssp-section-tema__title"></h2> 
1459		 
1460	<#--   
1461	<div id="subtemas-lista-mobile" 
1462		class="container d-none ssp-section-tema__container-submenu-nivel3"></div>  --> 
1463 
1464	<div id="filtro-temas-nivel-2" class="container ssp-section-tema__container-submenu-nivel3 d-none"></div> 
1465	 
1466	<div id="filtro-temas-nivel-3" class="container ssp-section-tema__container-submenu-nivel3 d-none"></div> 
1467 
1468</section> 
1469 
1470<section id="cursos-por-categoria-container" 
1471	style="background-color: #e4e8f0;padding-bottom:30px"> 
1472 
1473	<section class="py-5" style="background-color: #e4e8f0;"> 
1474 
1475		<div class="container"> 
1476			<hr class="filtroInscBolsa"> 
1477			<div class="filtroTextoMobile">  
1478				<span style="font-family: 'Montserrat';font-size: 15px;font-weight: 600;" > Filtrar por:</span>  
1479			</div> 
1480			<div class="ssp-slider-check__container" style="padding: 20px 0px;"> 
1481				<div class="ssp-slider-check__content-itens"> 
1482					<div class="ssp-slider-check__content-item filtroInscBolsa"> 
1483                   		 <span style="font-family: 'Montserrat';font-size: 18px;font-weight: 600;" >Filtrar por: </span> 
1484                    </div> 
1485					<div class="ssp-slider-check__content-item"> 
1486	 
1487						<label id="inscricao-aberta" class="switch"> 
1488							<input type="checkbox"> 
1489							<span class="slider round"></span> 
1490						</label> 
1491			 
1492						<span class="ssp-slider-check__label">Inscrições abertas</span> 
1493	 
1494					</div> 
1495				<#if tipoCurso == "Livre" || tipoCurso == "Técnico">	 
1496					<div class="ssp-slider-check__content-item"> 
1497	 
1498						<label id="bolsas-estudo" class="switch"> 
1499							<input type="checkbox"> 
1500							<span class="slider round"></span> 
1501						</label> 
1502			 
1503						<span class="ssp-slider-check__label">Bolsas de estudo</span> 
1504	 
1505					</div> 
1506				</#if> 
1507				</div>     
1508 
1509			</div> 
1510 
1511			<hr class="filtroInscBolsa"> 
1512		</div> 
1513		 
1514		<div id="curso-sem-slick" class="ssp-container__cursos-sem-slick container" style="margin-top:15px;"></div> 
1515 
1516 
1517	</section> 
1518	<div id="filtroSemCurso" class="ssp-bolsa-formulario__card-aviso-atencao d-none container text-left" style="width: 100%;"> 
1519                     
1520        <i class="fas fa-exclamation-circle ssp-bolsa-formulario__card-aviso-atencao-icon" aria-hidden="true"></i> 
1521     
1522        <div class="ssp-bolsa-formulario__card-aviso-texto"><p>Sem cursos para o filtro selecionado</p> 
1523        </div> 
1524     
1525     </div> 
1526	 
1527	 
1528</section> 
1529 
1530 
1531<#-- Template para card de cursos por categoria --> 
1532<section id="cursos-por-categoria-template" 
1533	class="cursos-por-categoria ssp-section container d-none"> 
1534 
1535 
1536	<div class="ssp-page-busca__section-resultado-container" 
1537		id="container-slider-cursos-livres"> 
1538 
1539		<p 
1540			class="ssp-page-busca__section-resultado__title-outros tema-nome ssp-section-tema__subtitle-curso-section"></p> 
1541		 
1542		 
1543		<a href="#a" data-nvl="" data-tema="" 
1544			class="ssp-page-busca__section-resultado__ver-todos ver-todos-cursos-link d-none-mobile">Todos 
1545			os cursos</a> 
1546		 
1547	</div> 
1548 
1549	<div class="slider-curso" style="display: flex;"></div> 
1550 
1551</section> 
1552 
1553<#-- Section para o item de curso--> 
1554<div id="curso-item-template" class="d-none slick-area__item"> 
1555 
1556	<div class="ssp-card-curso custom-card-curso-tema"> 
1557 
1558		<a class="ssp-absolute-link ck-curso" href="#a"></a> 
1559 
1560		<div class="ssp-card-curso__image custom-card-curso-tema__image"> 
1561 
1562			<div class="ssp-image-container"> 
1563				<img src="" /> 
1564 
1565			</div> 
1566 
1567		</div> 
1568 
1569		<div class="ssp-card-curso__body custom-card-curso-tema__body"> 
1570        	<!-- Tag de Tipo de Curso --> 
1571			<#if tipoCurso == "Livre" > 
1572				<div class="ssp-card-curso__color-tag-modalidade bg-nivel-livre custom-card-curso-tema__color-tag-modalidade"></div> 
1573			<#elseif tipoCurso == "Técnico"> 
1574     			<div class="ssp-card-curso__color-tag-modalidade bg-nivel-tecnico custom-card-curso-tema__color-tag-modalidade"></div>  
1575            <#else> 
1576                <div class="ssp-card-curso__color-tag-modalidade bg-nivel-extensao custom-card-curso-tema__color-tag-modalidade"></div>      
1577			 
1578			</#if> 
1579			 
1580 
1581			<div class="ssp-card-curso__tags custom-card-curso-tema__tags"> 
1582 
1583				<span class="ssp-card-curso__tag-formato-title">${tipoCurso}</span> 
1584				 
1585				<span class="tag-modalidade-title__senac-online d-none">Senac Online - ao vivo</span> 
1586 
1587			</div> 
1588 
1589			<h6 class="ssp-card-curso__title custom-card-curso-tema__title"> 
1590 
1591			</h6> 
1592 
1593			<div class="ssp-card-curso__info custom-card-curso-tema__info"> 
1594 
1595				<span 
1596					class="ssp-tag bg-white border-nivel-extensao text-nivel-extensao mr-1 btn-inscricoes-abertas">Inscrições 
1597					abertas</span> <span 
1598					class="ssp-tag bg-white border-primary text-primary btn-bolsas">Bolsas</span> 
1599 
1600			</div> 
1601						 
1602		</div> 
1603 
1604	</div> 
1605 
1606</div> 
1607 
1608<#--  Estrutura com botões de tipos de curso -  os únicos que precisam ser dinâmicos são Livre e Técnico  --> 
1609 
1610<section class="ssp-section ssp-section-lg-top"> 
1611 
1612 
1613    <div class="container text-left"> 
1614 
1615        <h2 class="ssp-section-title"> 
1616            <lfr-editable id="title" type="rich-text"> 
1617                Cursos oferecidos 
1618            </lfr-editable> 
1619        </h2> 
1620     
1621        <div class="ssp-btns-horizontal-area"> 
1622 
1623			<#function getCategorias primaryKey> 
1624   
1625			<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
1626			<#attempt> 
1627		   
1628				<#return categoryService.getCategories("com.liferay.journal.model.JournalArticle", primaryKey)> 
1629		   
1630			<#recover> 
1631			   
1632			  <#return '#erro#'> 
1633			</#attempt> 
1634		  </#function> 
1635 
1636			<#assign  
1637			 
1638 
1639				categoriesList = getCategorias(journal.getResourcePrimKey())  
1640				normalizer = serviceLocator.findService("com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil")  
1641				vocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") 
1642				vocabularies = vocabularyLocalService.getAssetVocabularies(-1,-1) 
1643				 
1644			/> 
1645 
1646 
1647			<#list vocabularies as vocabulary > 
1648			<#if vocabulary.getName() == 'Unidades'> 
1649				 
1650				<#assign  
1651					xPathSelector_nomeUsualUnidade = saxReaderUtil.createXPath("dynamic-element[@name='nomeUsualUnidade']") 
1652					  nomeUsual = xPathSelector_nomeUsualUnidade.selectSingleNode(rootElement).getStringValue() 
1653					  categories = vocabulary.getCategories() 
1654
1655				<#list categories as category> 
1656					<#if  category.getName()?trim == nomeUsual?trim> 
1657						 
1658						<#assign categoryId = category.getCategoryId() > 
1659					</#if> 
1660				</#list> 
1661			</#if> 
1662		</#list> 
1663 
1664 
1665 
1666		<#-- Prefixo EAD--> 
1667        <#assign xPathSelector_urlEAD = saxReaderUtil.createXPath("dynamic-element[@name='prefixourlead']")> 
1668        <#assign prefixoURLEAD = xPathSelector_urlEAD.selectSingleNode(rootElement).getStringValue()> 
1669 
1670        <#assign  hasPrefixoUrlEad = (prefixoURLEAD?trim?length > 0) > 
1671 
1672 
1673			<#list categoriesList![] as category> 
1674  
1675                <#assign vocabularyName = vocabularyLocalService.getVocabulary(category.getVocabularyId()).getTitle("pt-br")?trim /> 
1676  
1677                <#if normalizer.normalize(vocabularyName) == "tipo-de-curso"> 
1678					<#assign normalizedCategoryName = normalizer.normalize(category.getName()) /> 
1679					 
1680					<#if category.getName() == "Livre EAD"> 
1681                    <a href="#" data-categoryId="${category.getCategoryId()}" class="btn btn-nivel btn-nivel-${normalizedCategoryName}">Senac Online<i class="fas fa-signal-stream icon-ao-vivo" aria-hidden="true"></i>ao vivo</a> 
1682                    <#else> 
1683                        <a href="#" data-categoryId="${category.getCategoryId()}" class="btn btn-nivel btn-nivel-${normalizedCategoryName}">${category.getName()}</a> 
1684                    </#if> 
1685					 
1686 
1687                </#if> 
1688  
1689			</#list> 
1690 
1691			<#-- Verifica se a unidade oferta curso de Idiomas--> 
1692 
1693                <<#list categoriesList![] as category> 
1694 
1695                    <#assign vocabularyName = vocabularyLocalService.getVocabulary(category.getVocabularyId()).getTitle("pt-br")?trim /> 
1696 
1697                    <#if normalizer.normalize(vocabularyName) == "tema-mercadologico-">  
1698 
1699						<#assign normalizedCategoryName = normalizer.normalize(category.getName()) /> 
1700 
1701						<#if category.getName() == "Idiomas"> 
1702								<a href="#" data-categoryId="${category.getCategoryId()}" class="btn btn-nivel btn-nivel-${normalizedCategoryName}">${category.getName()}</a> 
1703							<#else> 
1704						</#if> 
1705 
1706                    </#if> 
1707 
1708                </#list>  
1709 
1710            <#-- Verifica se a unidade oferta curso livre--> 
1711 
1712			 
1713			<#if hasPrefixoUrlEad > 
1714 
1715                <a href="${prefixoURLEAD}" target="_blank" class="btn btn-nivel btn-nivel-ead">EAD</a> 
1716 
1717            </#if> 
1718     
1719 
1720	</div> 
1721 
1722    </div> 
1723 
1724 
1725</section> 
1726  
1727 <script> 
1728  
1729var temas = []; 
1730var subtemasStorage = new Map(); 
1731var activeCategory = 'all'; 
1732var activeCategoryLevel = 0; 
1733var limit = 2; 
1734var offset = 0; 
1735var todosText = ''; 
1736var limitTodosCursos = 16; 
1737var offsetTodosCursos = 0; 
1738var groupId = 0; 
1739var tipoCursoNome = ""; 
1740var tipoCursoNomeBreadCrumb = ""; 
1741var cookieName = ""; 
1742var tam = $(window).width(); 
1743var urlUnidade = ""; 
1744var urlTipoCurso = "";  
1745var categoryIdUnidade = ""; 
1746var urlTemasStorage = new Map(); 
1747var urlTemaNv1 = ""; 
1748var urlTemaNv2 = ""; 
1749var urlTemaNv3 = ""; 
1750var acessoDireto = 0; 
1751var categoryIdTemaNv1 = ""; 
1752var categoryIdTemaNv2 = ""; 
1753var categoryIdTemaNv3 = ""; 
1754const HOST = window.location.origin; 
1755var filtrarInscricoesAbertas = 0; 
1756var filtrarBolsaEstudo = 0; 
1757var activeModeloExibicao = 1; 
1758var limitCursos = tam <= 1024 ? 3 : 12; 
1759var cliqueFiltroMobile = 0; 
1760var carregandoMais = false; 
1761 
1762function montaBreadCrumb(){ 
1763	var breadCrumb = $(".breadcrumb"); 
1764	var nomeUnidade = $("#nomeUnidadeParaBreadCrumb").text().trim(); 
1765	 
1766	breadCrumb.empty(); 
1767	 
1768	//Home 
1769	breadCrumb.append('<li class="breadcrumb-item"><a class="breadcrumb-link" href="/" title="Home"><span class="breadcrumb-text-truncate">Home</span></a></li>'); 
1770	 
1771	//Unidades 
1772	breadCrumb.append('<li class="breadcrumb-item"><a class="breadcrumb-link" href="/unidades" title="Unidades"><span class="breadcrumb-text-truncate">Unidades</span></a></li>'); 
1773	 
1774	//Unidade 
1775	breadCrumb.append('<li class="breadcrumb-item"><a class="breadcrumb-link" href="/'+urlUnidade+'" title="'+nomeUnidade+'"><span class="breadcrumb-text-truncate">'+nomeUnidade+'</span></a></li>'); 
1776	 
1777	//Tipo de Curso 
1778	breadCrumb.append('<li class="breadcrumb-item"><a class="breadcrumb-link" href="/'+urlUnidade+'/'+urlTipoCurso+'" title="'+tipoCursoNomeBreadCrumb+'"><span class="breadcrumb-text-truncate">'+tipoCursoNomeBreadCrumb+'</span></a></li>'); 
1779	 
1780
1781 
1782function carregaLinkTodosBotoesModalidades(){ 
1783 
1784	$( document ).ready(function() { 
1785		 
1786        var friendlyUrlUnidade = $("#friendlyUnidade").text().trim(); 
1787 
1788        // extensão 
1789        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-extensao'))){ 
1790        	var urlExt = "/"+friendlyUrlUnidade+ "/extensao-universitaria"; 
1791        	  
1792        	if(friendlyUrlUnidade == "senac-tatuape-luis-americano" || friendlyUrlUnidade == "centro-universitario-senac-campos-do-jordao")  
1793        		urlExt = "/busca?q=*&tipo-curso="+$('.ssp-btns-horizontal-area').find('.btn-nivel-extensao').data('categoryid')+"&unidade="+${categoryId}+'#c'; 
1794                  
1795			$('.ssp-btns-horizontal-area').find('.btn-nivel-extensao').attr("href", urlExt); 
1796       		//$('.ssp-btns-horizontal-area').find('.btn-nivel-extensao').attr("href", "https://www.sp.senac.br/jsp/default.jsp?template=1588.dwt&testeira=725&type=X&unit=NONE&sub=") 
1797 
1798
1799 
1800        // Ensino Médio 
1801        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-ensino-medio-tecnico'))){ 
1802 
1803           
1804        	var urlEmed = "/"+friendlyUrlUnidade+ "/ensino-medio-tecnico"; 
1805			$('.ssp-btns-horizontal-area').find('.btn-nivel-ensino-medio-tecnico').attr("href", urlEmed); 
1806 
1807 
1808
1809 
1810 
1811        // Graduação 
1812        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-graduacao'))){ 
1813 
1814            $('.ssp-btns-horizontal-area').find('.btn-nivel-graduacao').attr({ 
1815 
1816                href : "https://www.sp.senac.br/graduacao/vestibular", 
1817                target: "_blank" 
1818            }) 
1819 
1820
1821 
1822        // Pos-Graduação 
1823        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-pos-graduacao'))){ 
1824 
1825            $('.ssp-btns-horizontal-area').find('.btn-nivel-pos-graduacao').attr({ 
1826                href: "http://www1.sp.senac.br/sites/posgraduacao/"+friendlyUrlUnidade, 
1827                target: "_blank" 
1828            }) 
1829 
1830
1831 
1832        // livre 
1833        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-livre'))){ 
1834                 
1835            var urlLiv = "/"+friendlyUrlUnidade+ "/cursos-livres"; 
1836             
1837            //Solucao temporaria, ate o proxy estiver correto 
1838            if(friendlyUrlUnidade == "senac-tatuape-luis-americano" || friendlyUrlUnidade == "centro-universitario-senac-campos-do-jordao")  
1839                urlLiv = "/busca?q=*&tipo-curso="+$('.ssp-btns-horizontal-area').find('.btn-nivel-livre').data('categoryid')+"&unidade="+${categoryId}+'#c'; 
1840             
1841				$('.ssp-btns-horizontal-area').find('.btn-nivel-livre').attr("href", urlLiv); 
1842 
1843
1844		 
1845		 // livre Ao vivo 
1846		 if (($('.ssp-btns-horizontal-area').find('.btn-nivel-livre-ead'))){ 
1847 
1848			$('.ssp-btns-horizontal-area').find('.btn-nivel-livre-ead').attr({ 
1849 
1850				href : "https://www.sp.senac.br/cursos-livres-senac-online-ao-vivo" 
1851			}) 
1852 
1853
1854 
1855		// Regra para Botão de Idiomas 
1856 
1857        if( 
1858 
1859			$('#codUnidadeReferencia').text() === "137" ||  
1860			$('#codUnidadeReferencia').text() === "123" ||  
1861            $('#codUnidadeReferencia').text() === "23" ||  
1862            $('#codUnidadeReferencia').text() === "58" ||  
1863            $('#codUnidadeReferencia').text() === "32" ||  
1864            $('#codUnidadeReferencia').text() === "62" && $('.ssp-btns-horizontal-area').find('.btn-nivel-idiomas') 
1865             
1866        ) { 
1867 
1868            var urlIdi = "/"+friendlyUrlUnidade+ "/cursos-livres/idiomas"; 
1869 
1870            $('.ssp-btns-horizontal-area').find('.btn-nivel-idiomas').attr("href", urlIdi); 
1871 
1872        }else{ 
1873            $('.ssp-btns-horizontal-area').find('.btn-nivel-idiomas').addClass("d-none") 
1874
1875 
1876        // Técnicos 
1877        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-tecnico'))){ 
1878 
1879            var urlTec = "/"+friendlyUrlUnidade+ "/cursos-tecnicos"; 
1880             
1881        //Solucao temporaria, ate o proxy estiver correto 
1882        if(friendlyUrlUnidade == "senac-tatuape-luis-americano" || friendlyUrlUnidade == "centro-universitario-senac-campos-do-jordao")  
1883            urlTec = "/busca?q=*&tipo-curso="+$('.ssp-btns-horizontal-area').find('.btn-nivel-tecnico').data('categoryid')+"&unidade="+${categoryId}+'#c'; 
1884         
1885            $(this).find('.btn-nivel-tecnico').attr("href", urlTec); 
1886 
1887
1888 
1889        // Jovem Aprendiz 
1890        if (($('.ssp-btns-horizontal-area').find('.btn-nivel-jovem-aprendiz'))){ 
1891 
1892            $(this).find('.btn-nivel-jovem-aprendiz').attr({ 
1893                href: "/jovem-aprendiz", 
1894            }) 
1895 
1896
1897 
1898 
1899    }); 
1900 
1901 
1902
1903 
1904function carregaLinkBotoesLivreETecnico(){ 
1905	 
1906	urlUnidade = $("#friendlyUnidade").text().trim(); 
1907	urlTipoCurso = $("#friendlyTipoCurso").text().trim();  
1908		 
1909	$.ajax({ 
1910	 
1911		url : '/o/senac-content-services/url-tipos-de-curso/'+groupId, 
1912		type : 'get', 
1913		dataType: 'json', 
1914	 
1915	}).done(function(res) { 
1916		$(res).each(function(key , value){ 
1917			 
1918			if(value.name == 'tecnico'){ 
1919				//botao livre 
1920				$("#linkTecnico").attr('href', "/"+urlUnidade+"/"+value.friendlyURL); 
1921				 
1922			}else 
1923				 if(value.name == 'livre'){ 
1924			 
1925					 $("#linkLivre").attr('href', "/"+urlUnidade+"/"+ value.friendlyURL); 
1926					  
1927
1928			 
1929		 
1930		}); 
1931		 
1932	}); 
1933 
1934	 
1935 
1936
1937 
1938//verifica se usuario acessou direto pelas urls dos temas e carrega os temas para dar sequencia 
1939function verificaAcessoDiretoELoadTema(){ 
1940	 
1941	urlTemaNv1 = $("#friendlyTemaNv1").text().trim(); 
1942	urlTemaNv2 = $("#friendlyTemaNv2").text().trim(); 
1943	urlTemaNv3 = $("#friendlyTemaNv3").text().trim(); 
1944	 
1945	//tem tema de nivel 1 na url 
1946	if(urlTemaNv1 != ''){ 
1947		 
1948		//seta variavel global para checar de outras partes se necessario 
1949		acessoDireto = 1; 
1950		 
1951		$.ajax({ 
1952			url : '/o/senac-unidade-services/categoriaPorFirendlyURL/'+urlTemaNv1+"/"+0, 
1953			type : 'get', 
1954			dataType: 'json' 
1955		}) 
1956		.done(function(temaCategories) { 
1957			 
1958			categoryIdTemaNv1 = temaCategories[0].categoryId; 
1959			 
1960			//armazenando no map para nao precisar ficar buscando a url quando clicar nos temas  
1961			urlTemasStorage.set(categoryIdTemaNv1,urlTemaNv1); 
1962			 
1963			if(urlTemaNv2 == ""){ 
1964				carregaTemasNivelDireto(1); 
1965			}else{ 
1966				//buscando categoria do tema nivel 2 
1967				$.ajax({ 
1968					url : '/o/senac-unidade-services/categoriaPorFirendlyURL/'+urlTemaNv2+"/"+categoryIdTemaNv1, 
1969					type : 'get', 
1970					dataType: 'json' 
1971				}) 
1972				.done(function(temaCategories2) { 
1973					 
1974						 
1975					categoryIdTemaNv2 = temaCategories2[0].categoryId; 
1976					urlTemasStorage.set(categoryIdTemaNv2,urlTemaNv2); 
1977					 
1978					if(urlTemaNv3 == ""){ 
1979						carregaTemasNivelDireto(2); 
1980					}else{ 
1981						 
1982						//buscando categoria do tema nivel 3 
1983						$.ajax({ 
1984							url : '/o/senac-unidade-services/categoriaPorFirendlyURL/'+urlTemaNv3+"/"+categoryIdTemaNv2, 
1985							type : 'get', 
1986							dataType: 'json' 
1987						}) 
1988						.done(function(temaCategories3) { 
1989							categoryIdTemaNv3 = temaCategories3[0].categoryId; 
1990							urlTemasStorage.set(categoryIdTemaNv3,urlTemaNv3); 
1991							carregaTemasNivelDireto(3); 
1992							 
1993						}); 
1994						 
1995
1996				}); 
1997
1998			 
1999		}); 
2000		 
2001	//nao tem tema na url entao carrega tudo normal 
2002	}else{ 
2003		carregaTemas(); 
2004		$('#tema-atual').text("Todos os cursos"); 
2005		todosText = $('#tema-atual').text(); 
2006
2007 
2008 
2009
2010 
2011// Verificar se a url em parametro de bolsas 
2012 
2013function verificaUrlBolsa(){ 
2014 
2015	let urlPage = window.location.href; 
2016	let parametroBolsa = "?filtroBolsa:true" 
2017	let verificaURL = urlPage.includes(parametroBolsa) 
2018 
2019	if(verificaURL == true){ 
2020 
2021		$('#bolsas-estudo input').trigger( "click" ); 
2022 
2023
2024 
2025
2026 
2027/* Prepara a montagem inicial da página */ 
2028function init() { 
2029	var tipoCursoText = $('#tipoCursoText').text().trim(); 
2030	 
2031	if(tipoCursoText == "Livre"){ 
2032		tipoCursoNomeBreadCrumb = "Cursos Livres"; 
2033		tipoCursoNome = "Livre"; 
2034		cookieName = "ck-cursos-livre";	 
2035	 
2036	}else if(tipoCursoText == "Técnico"){ 
2037		tipoCursoNomeBreadCrumb = "Cursos Técnicos"; 
2038		tipoCursoNome = "Técnico"; 
2039		cookieName = "ck-cursos-tecnico"; 
2040	 
2041	}else if(tipoCursoText == "Extensão"){ 
2042		tipoCursoNomeBreadCrumb = "Extensão Universitária"; 
2043		tipoCursoNome = "Extensão"; 
2044		cookieName = "ck-cursos-extensao"; 
2045
2046	 
2047	groupId = Liferay.ThemeDisplay.getScopeGroupId(); 
2048 
2049	carregaLinkTodosBotoesModalidades(); 
2050	 
2051	carregaLinkBotoesLivreETecnico(); 
2052	 
2053	montaBreadCrumb(); 
2054 
2055	verificaAcessoDiretoELoadTema(); 
2056 
2057	verificaUrlBolsa() 
2058	 
2059
2060 
2061 
2062 
2063$(document).ready(function() { 
2064	 
2065	init(); 
2066	 
2067	//Associa eventos 
2068	$(document).on("click", ".ver-todos-cursos-link", verTodosCursos); 
2069 
2070 
2071}); 
2072 
2073 
2074//Função que carrega os 5 primeiros Temas e utiliza o botão Visualizar mais e menos na versão Mobile 
2075 
2076function exibeTemasMobile(){ 
2077 
2078   //seleciona todos os temas 
2079	var itensTema = $('#temas').children() 
2080	var itensExibidos = 6 
2081 
2082	//mostra apenas os 5 primeiros 
2083	itensTema.slice(itensExibidos).hide() 
2084 
2085	//Verifica a quantidade de temas e se exibe ou nao o botao ver mais  
2086	if( itensTema.length < itensExibidos){ 
2087 
2088		$('.ssp-btn__visualizar-mais-content').addClass('d-none') 
2089 
2090	}else{ 
2091		$('.ssp-btn__visualizar-mais-content').removeClass('d-none') 
2092
2093 
2094	//Mostra apenas os 5 primeiros temas 
2095	//$('#temas').children().slice(3).hide() 
2096 
2097 
2098 
2099
2100 
2101// mobile - botao visualiza mais/menos 
2102if(tam <= 1024){ 
2103	// Botao ver mais e menos Temas 
2104	$(document).on("click", '#visualizar-mais',function(){ 
2105			var itensTema = $('#temas').children() 
2106			var itensExibidos = 6; 
2107			 
2108			if( $(this).text() === "Visualizar mais" ){ 
2109	 
2110				itensTema.slice(itensExibidos).show(); 
2111	 
2112				$(this).text('Visualizar menos'); 
2113				 
2114				$(this).parent().find('i').removeClass('fa-chevron-down'); 
2115				 
2116				$(this).parent().find('i').addClass('fa-chevron-up'); 
2117				 
2118	 
2119			}else{ 
2120	 
2121				itensTema.slice(itensExibidos).hide(); 
2122	 
2123				$(this).text('Visualizar mais'); 
2124	 
2125				$(this).parent().find('i').removeClass('fa-chevron-up'); 
2126				 
2127				$(this).parent().find('i').addClass('fa-chevron-down'); 
2128				 
2129			}      
2130	}) 
2131 
2132
2133function resetTemasMobile(){ 
2134    $('.todos').trigger('click'); 
2135     
2136    if($('#visualizar-mais').text() === "Visualizar menos"){ 
2137    	$('#visualizar-mais').text("Visualizar mais"); 
2138    	$('#visualizar-mais').parent().find('i').removeClass('fa-chevron-up'); 
2139    	$('#visualizar-mais').parent().find('i').addClass('fa-chevron-down'); 
2140
2141     
2142    $('#visualizar-mais').removeClass('d-none'); 
2143
2144 
2145// Botao para filtro de cursos com inscricoes abertas e bolsas 
2146$('#inscricao-aberta input, #bolsas-estudo input').click(function(){ 
2147	 
2148	if(tam <= 1024){ 
2149		//mobile quando clica no tema/subtema volta ao nivel anterior, esta flag serve para nos eventos de click nao fazer isso 
2150		cliqueFiltroMobile = 1; 
2151
2152	 
2153   
2154  //Atualiza as variaveis globais dos dois filtros 
2155  $("#inscricao-aberta input").is(":checked") == true ? filtrarInscricoesAbertas = 1 : filtrarInscricoesAbertas = 0; 
2156  $("#bolsas-estudo input").is(":checked") == true ? filtrarBolsaEstudo = 1 : filtrarBolsaEstudo = 0; 
2157   
2158  //Refaz a busca com os filtros atualizados 
2159  switch(activeModeloExibicao){ 
2160    case 1: 
2161    	  
2162    case 2: 
2163       
2164      //Verifica se esta exibindo todos ou algum tema 
2165      var botaoTodos = $('.todos'); 
2166       
2167      if(botaoTodos.hasClass('ativo') || botaoTodos.hasClass('tema-ativo'))  
2168          $('.todos:first').trigger('click'); 
2169       
2170      //Se estiver ativo um tema, verifica se possui ativo um subtema 
2171      else 
2172        //Verifica o nivel do tema clicado 
2173        $('.subtema-ativo').length == 0 ? $('.tema-ativo:first').trigger('click') : $('.subtema-ativo:first').trigger('click'); 
2174        break; 
2175 
2176      case 3: 
2177    	  $('.subtema-ativo').length == 0 ? $('.tema-ativo:first').trigger('click') : $('.subtema-ativo:last').trigger('click'); 
2178      break; 
2179
2180}) 
2181 
2182//nivel 0 -> botao todos 
2183function atualizaUrlBrowser(urlTema,nivel){ 
2184	var path = window.location.pathname; 
2185	var urlFinal = ""; 
2186	 
2187	if(path.indexOf('staging') > 1){ 
2188		urlFinal = "/web/guest-staging"; 
2189	}else 
2190		if(path.indexOf('guest') > 1){ 
2191			urlFinal = "/web/guest"; 
2192
2193		 
2194	urlFinal += "/"+urlUnidade+"/"+urlTipoCurso;	 
2195	 
2196	//se for todos os cursos a url fica so /unidade/tipo-curso 
2197	if(nivel > 0){ 
2198 
2199		switch(nivel){ 
2200		 
2201			case 1: 
2202				urlTemaNv1 = urlTema; 
2203				urlFinal += "/"+urlTemaNv1; 
2204			break; 
2205			 
2206			case 2: 
2207				urlTemaNv2 = urlTema; 
2208				if(tipoCursoNome == "Livre" || tipoCursoNome == "Extensão"){ 
2209					urlFinal += "/"+urlTemaNv1+"/"+urlTemaNv2; 
2210				}else{ 
2211					urlFinal += "/"+urlTemaNv1; 
2212
2213			break; 
2214			 
2215			case 3: 
2216				if(tipoCursoNome == "Livre" || tipoCursoNome == "Extensão"){ 
2217					urlTemaNv3 = urlTema; 
2218					urlFinal += "/"+urlTemaNv1+"/"+urlTemaNv2+"/"+urlTemaNv3; 
2219
2220			break; 
2221		 
2222
2223		 
2224
2225	 
2226	window.history.pushState('', 'Categoria JavaScript', urlFinal); 
2227
2228 
2229function buscaFriendlyUrlTemaEAtualizaBrowser(temaId,nivelClicado){ 
2230	 
2231	var friendlyUrlTema = urlTemasStorage.get(temaId); 
2232	 
2233	 
2234	//se ainda nao tem no map, busco via ajax e armazeno no map a url do tema clicado para nao precisar buscar novamente 
2235	if(typeof  friendlyUrlTema === "undefined"){ 
2236		$.ajax({ 
2237			url : '/o/senac-content-services/friendlyUrlPorCategoria/'+temaId, 
2238			type : 'get', 
2239			dataType: 'json', 
2240		}).done(function(res) { 
2241			 
2242			urlTemasStorage.set(temaId,res.url); 
2243			 
2244			atualizaUrlBrowser(res.url,nivelClicado); 
2245			 
2246		}) 
2247	}else{ 
2248		atualizaUrlBrowser(friendlyUrlTema,nivelClicado); 
2249
2250
2251 
2252/* Carrega os subtemas ou cursos ao clicar no tema */ 
2253$(".container").on( 
2254		"click", 
2255		".tema", 
2256		function() { 
2257			 
2258			//No mobile, se ja tiver o tema ativo, fecha esse tema e volta ao nivel 0 
2259			if(tam <= 1024){ 
2260				 
2261				if(!cliqueFiltroMobile){ 
2262					 
2263					$('#visualizar-mais').addClass('d-none'); 
2264					 
2265					if($(this).hasClass('tema-ativo')){ 
2266						 
2267						carregaTemas(); 
2268					    $('#filtro-ativo-nivel-1').empty() 
2269					    $('#temas').empty() 
2270					    $('#temas').removeClass('d-none') 
2271					    //Recria o botao Todos os cursos e recarrega os temas 
2272					    $('#temas').append('<div class="ssp-section-tema__container-menu-item"><a href="#a" class="tema todos" data-nvl="0">Todos os cursos</a></div>') 
2273					    resetTemasMobile(); 
2274					   
2275					    //Limpa os filtros de nivel 2 ativos 
2276					    $("#filtro-ativo-nivel-2").empty(); 
2277					     
2278						return; 
2279
2280				}else{ 
2281					//reinicializo clique no filtro quando é mobile e continuo com comportamento normal do clique 
2282					cliqueFiltroMobile = 0; 
2283
2284
2285			 
2286			 
2287			var categoriaId = $(this).data('tema'); 
2288			 
2289			if($(this).hasClass('todos')){ 
2290			 
2291				//se clicou em todos nao preciso buscar o id da categoria do tema, so atualizo a url 
2292				//nivel 0 = botao todos os cursos 
2293				atualizaUrlBrowser(0,0);		 
2294				 
2295				$('.todos').addClass('ativo'); 
2296			}else{ 
2297				 
2298				if(!acessoDireto)				 
2299					buscaFriendlyUrlTemaEAtualizaBrowser(categoriaId,1); 
2300				 
2301				// Verifica o elemento, adiciona a classe ativo e remove dos seus primos 
2302				$('.todos').removeClass('ativo'); 
2303
2304			 
2305			var primos = $(this).parent().siblings().children(); 
2306			$('.tema[data-tema="'+categoriaId+'"]').addClass('tema-ativo'); 
2307			$(primos).not('.tema[data-tema="'+categoriaId+'"]').removeClass('tema-ativo'); 
2308			 
2309			 
2310			// limpa a lista de subtemas 
2311			$('#filtro-temas-nivel-2').empty(); 
2312			$('#filtro-temas-nivel-3').empty() 
2313			 
2314			limit = 2; 
2315			offset = 0; 
2316			 
2317			limitTodosCursos = 16; 
2318			offsetTodosCursos = 0; 
2319			 
2320			activeCategoryLevel = $(this).data('nvl'); 
2321 
2322      		//Evita de chamar o servico de categoria quando clicar em 'todos' 
2323	      if(!$(this).hasClass('todos')){ 
2324	  			$.ajax( 
2325
2326	  						url : '/o/senac-content-services/category/' 
2327	  								+ $(this).data('tema'), 
2328	  						type : 'get' 
2329	  					}).done(function(category) { 
2330	 
2331	  				activeCategory = JSON.parse(category); 
2332	  				 
2333	  				cleanElements();		 
2334	  				 
2335	  				displayCursosPorTema(); 
2336	  				 
2337	  				//if(tipoCursoNome == "Livre") 
2338	  					displaySubTemasLista(); 
2339	  			}); 
2340	  			 
2341	  			if(tipoCursoNome == "Livre" || tipoCursoNome == "Extensão"){ 
2342	  				if (tam <=1024){ 
2343	 
2344	  					$('#temas').addClass('d-none') 
2345	  					// adiciona o item selecionado nos filtros 
2346	  					$("#filtro-ativo-nivel-1").prepend(this); 
2347
2348
2349
2350		 
2351}); 
2352		 
2353 
2354/* Quando clica em Ver Todos cursos de um tema */ 
2355function verTodosCursos(){ 
2356	 
2357	 
2358	//Scrool top 
2359	$('html, body').animate({ 
2360        scrollTop: $("#temas").offset().top 
2361    }, -1000); 
2362	 
2363	 
2364	var tema = $(this).data('tema'); 
2365	activeCategoryLevel = $(this).data('nvl'); 
2366	 
2367	//buscaFriendlyUrlTemaEAtualizaBrowser(tema,activeCategoryLevel); 
2368 
2369	// Verifica o elemento, adiciona a classe ativo e remove dos seus primos 
2370	$('.todos').removeClass('ativo'); 
2371	 
2372 
2373	// Esconde os subtemas 
2374	//$('#filtro-temas-nivel-2').empty(); 
2375	//$('#filtro-temas-nivel-2').addClass('d-none'); 
2376	 
2377	 
2378	limit = 2; 
2379	offset = 0; 
2380 
2381	$.ajax({ 
2382		url : '/o/senac-content-services/category/'+ tema, 
2383		type : 'get' 
2384	}).done(function(category) { 
2385 
2386		activeCategory = JSON.parse(category); 
2387		 
2388		switch(activeCategoryLevel){ 
2389			case 1: 
2390				$('.tema').removeClass('tema-ativo'); 
2391				$('.tema[data-tema="'+activeCategory.categoryId+'"]').not('.slick-cloned').each(function(){ 
2392					if(!$(this).parent().hasClass('slick-cloned')){	 
2393						var botaoTemaVerTodos = $(this); 
2394						botaoTemaVerTodos.trigger('click'); 
2395
2396				}); 
2397				 
2398				break; 
2399			case 2: 
2400					 
2401				var botaoTemaVerTodosNv2 = $('.subtema[data-tema="'+activeCategory.categoryId+'"]'); 
2402				botaoTemaVerTodosNv2.trigger('click'); 
2403				 
2404				break; 
2405			case 3: 
2406				var botaoTemaVerTodosNv3 = $('.subtema[data-tema="'+activeCategory.categoryId+'"]'); 
2407				botaoTemaVerTodosNv3.trigger('click'); 
2408				 
2409				break; 
2410
2411			 
2412		 
2413	}); 
2414
2415 
2416// evento de click nos subtemas 
2417 
2418$("#filtro-temas-nivel-2, #filtro-temas-nivel-3").on( 
2419		"click", 
2420		".subtema", 
2421		function() { 
2422			$(this).addClass("subtema-ativo"); 
2423			$(this).siblings().removeClass("subtema-ativo"); 
2424			$(this).siblings().removeClass("ativo"); 
2425			 
2426			limitTodosCursos = 16; 
2427			offsetTodosCursos = 0; 
2428			offset = 0; 
2429			 
2430			$('#cursos-por-subtema-container').find('#curso-sem-slick').empty(); 
2431 
2432			activeCategoryLevel = $(this).data('nvl'); 
2433			 
2434			if(!acessoDireto) 
2435				buscaFriendlyUrlTemaEAtualizaBrowser($(this).data('tema'),activeCategoryLevel); 
2436			 
2437			$.ajax( 
2438
2439						url : '/o/senac-content-services/category/' 
2440								+ $(this).data('tema'), 
2441						type : 'get' 
2442					}) 
2443 
2444			.done(function(category) { 
2445 
2446				activeCategory = JSON.parse(category); 
2447				 
2448				cleanElements();				 
2449				displayCursosPorTema(); 
2450 
2451			}); 
2452			 
2453            if (tam <=1024){ 
2454 
2455				//$('#temas').addClass('d-none') 
2456				// adiciona o item selecionado nos filtros 
2457            	$("#filtro-ativo-nivel-2").append(this); 
2458                $("#filtro-temas-nivel-2, #filtro-temas-nivel-3").empty(); 
2459                 
2460
2461 
2462}); 
2463 
2464//Mobile, quando clica em um subtema ativo 
2465$("#filtro-ativo-nivel-2").on( 
2466		"click", 
2467		".subtema-ativo", 
2468		function() { 
2469		 
2470		//o filtro ativa esta trigger, entao preciso saber se clique veio do filtro ou do botao mesmo	 
2471		//se botao, removo ele e volto pro tema pai 
2472		if(!cliqueFiltroMobile){ 
2473				 
2474				$(this).remove(); 
2475				 
2476				if($(this).attr('data-nvl') == '2'){ 
2477			    	 
2478					var temaAtivo = $('.tema-ativo'); 
2479					 
2480					temaAtivo.removeClass('tema-ativo'); 
2481					 
2482					temaAtivo.trigger('click'); 
2483			       
2484			    }else { 
2485			    	 
2486					var subtemaAtivo = $('.subtema-ativo'); 
2487					 
2488					subtemaAtivo.removeClass('subtema-ativo'); 
2489					 
2490					subtemaAtivo.trigger('click'); 
2491			       
2492
2493				 
2494		//se filtro carrego os cursos com o filtro, igual comportamento desktop 		 
2495		}else{ 
2496			 
2497			//reinicializo a flag 
2498			cliqueFiltroMobile = 0 ; 
2499			 
2500			$(this).addClass("subtema-ativo"); 
2501			 
2502			limitTodosCursos = 16; 
2503			offsetTodosCursos = 0; 
2504			offset = 0; 
2505			 
2506			$('#cursos-por-subtema-container').find('#curso-sem-slick').empty(); 
2507		 
2508			activeCategoryLevel = $(this).data('nvl'); 
2509			 
2510			if(!acessoDireto) 
2511				buscaFriendlyUrlTemaEAtualizaBrowser($(this).data('tema'),activeCategoryLevel); 
2512		 
2513			$.ajax( 
2514
2515						url : '/o/senac-content-services/category/' 
2516								+ $(this).data('tema'), 
2517						type : 'get' 
2518					}) 
2519		 
2520			.done(function(category) { 
2521		 
2522				activeCategory = JSON.parse(category); 
2523				 
2524				cleanElements();				 
2525				displayCursosPorTema(); 
2526		 
2527			}); 
2528		 
2529			if($(this).attr('data-nvl') == '2'){		 
2530				// adiciona o item selecionado nos filtros 
2531		    	$("#filtro-ativo-nivel-2").prepend(this); 
2532		        $("#filtro-temas-nivel-2, #filtro-temas-nivel-3").empty(); 
2533
2534		 
2535
2536}); 
2537 
2538/*Mobile, quando clica em um subtema via trigger*/ 
2539 if (tam <=1024){ 
2540	$("#filtro-ativo-nivel-2").on( 
2541			"click", 
2542			".subtema", 
2543			function() { 
2544				 
2545				if($(this).attr('data-nvl') == '2' && !$(this).hasClass('subtema-ativo')){ 
2546					 
2547					$(this).addClass("subtema-ativo"); 
2548					$(this).siblings().removeClass("subtema-ativo"); 
2549					$(this).siblings().removeClass("ativo"); 
2550					 
2551					limitTodosCursos = 16; 
2552					offsetTodosCursos = 0; 
2553					offset = 0; 
2554					 
2555					$('#cursos-por-subtema-container').find('#curso-sem-slick').empty(); 
2556				 
2557					activeCategoryLevel = $(this).data('nvl'); 
2558					 
2559					if(!acessoDireto) 
2560						buscaFriendlyUrlTemaEAtualizaBrowser($(this).data('tema'),activeCategoryLevel); 
2561				 
2562					$.ajax( 
2563
2564								url : '/o/senac-content-services/category/' 
2565										+ $(this).data('tema'), 
2566								type : 'get' 
2567							}) 
2568				 
2569					.done(function(category) { 
2570				 
2571						activeCategory = JSON.parse(category); 
2572						 
2573						cleanElements();				 
2574						displayCursosPorTema(); 
2575				 
2576					}); 
2577					 
2578					// adiciona o item selecionado nos filtros 
2579			    	$("#filtro-ativo-nivel-2").prepend(this); 
2580			        $("#filtro-temas-nivel-2, #filtro-temas-nivel-3").empty(); 
2581
2582
2583	); 
2584 }		 
2585		 
2586/* Click no botao todos */ 
2587$(".container").on("click", ".todos", function() { 
2588	 
2589	activeCategory = 'all'; 
2590	activeCategoryLevel = $(this).data('nvl'); 
2591	offset = 0; 
2592 
2593	/* Limpa dados de subtemas que possam ter sido criados na navegacao */ 
2594	cleanElements(); 
2595 
2596	$('#tema-atual').text("Todos os cursos"); 
2597 
2598	// Esconde a div com subtemas 
2599	$('#filtro-temas-nivel-2').empty(); 
2600	$('#filtro-temas-nivel-2').addClass('d-none'); 
2601 
2602 
2603	displayCursosPorTema(); 
2604 
2605}); 
2606 
2607function montaTextoFinalTipoCursoFormato(curso){ 
2608	var textoTituloCursoFinal = "";	                 			  
2609	 
2610	if(curso.tipoCursoNome == "Livre") 
2611		textoTituloCursoFinal = "Livre"; 
2612		//textoTituloCursoFinal = "Curso Livre" + " ¿ " + curso.formatos[0].name; 
2613 
2614	else if(curso.tipoCursoNome == "Técnico") 
2615		textoTituloCursoFinal = "Técnico"; 
2616		//textoTituloCursoFinal = "Técnico " + " ¿ " + curso.formatos[0].name; 
2617	 
2618	 
2619	return textoTituloCursoFinal; 
2620	 
2621
2622 
2623function getTextoSemCurso(filtroBolsa,filtroInsc,temaNome){ 
2624	 
2625	temaNome = typeof temaNome === "undefined" ? '' : 'de '+temaNome; 
2626	 
2627	if(filtroBolsa && filtroInsc) 
2628		return "<p>No momento, estamos sem cursos <strong><span id='nomeTemaSemCurso'>"+temaNome+"</span></strong> disponíveis para compra e com bolsas de estudo nesta unidade.<br>Selecione outras áreas para consultar bolsas nesta unidade ou <a href='https://www.sp.senac.br/bolsas-de-estudo'>confira bolsas disponíveis em diferentes cursos de outras unidades.</a></p>"; 
2629	else if(filtroBolsa) 
2630		return "<p>No momento, estamos sem cursos <strong><span id='nomeTemaSemCurso'>"+temaNome+"</span></strong> com bolsas de estudo nesta unidade.<br>Selecione outras áreas para consultar bolsas nesta unidade ou <a href='https://www.sp.senac.br/bolsas-de-estudo'>confira bolsas disponíveis em diferentes cursos de outras unidades.</a></p>";	 
2631	else if(filtroInsc) 
2632		return "<p>No momento, estamos sem cursos <strong><span id='nomeTemaSemCurso'>"+temaNome+"</span></strong> disponíveis para compra nesta unidade."; 
2633
2634 
2635/* Limpa a tela para exibicao de novos cursos */ 
2636function cleanElements() { 
2637 
2638	$('#cursos-por-categoria-container .cursos-por-categoria').remove(); 
2639	$('#curso-sem-slick').empty(); 
2640	$('#cursos-por-categoria-container').removeClass('d-none'); 
2641
2642 
2643function cleanCursosCategoria(){ 
2644	$('#cursos-por-categoria-container .cursos-por-categoria').remove(); 
2645
2646 
2647function cleanTemasNivel2(){ 
2648	$('#subsubtemas-lista').remove(); 
2649
2650 
2651/* 
2652 * Armazena a navegacao em cookies, se habilitado 
2653 */ 
2654$(document).on("click", ".ck-curso", function() { 
2655	 
2656	//Verifica se o cookie esta habilitado 
2657    if(getCookie('portalSenacCookie') != null){ 
2658    	 
2659		var articleId = $(this).data('ck'); 
2660		manageCookieArray(cookieName, articleId); 
2661		manageCookieArray('ck-cursos', articleId); 
2662
2663 
2664}); 
2665 
2666/* 
2667 * Exibe os cursos por tema, dependendo do nivel 
2668 */ 
2669function displayCursosPorTema() { 
2670	 
2671	$("#filtroSemCurso").addClass("d-none"); 
2672	 
2673	// Verifica o nivel 
2674	switch (activeCategoryLevel) { 
2675 
2676	case 0: // exibe todos 
2677		 
2678		limit = 2; 
2679 
2680		$.each(temas.slice(offset, limit + offset), function(k, t) { 
2681			 
2682			if($('#cursos-por-categoria-'+t.categoryId).length == 0){ 
2683				 
2684				var template = $('#cursos-por-categoria-template').clone(); 
2685				template.prop('id', 'cursos-por-categoria-'+t.categoryId); 
2686				template.removeClass('d-none'); 
2687				$('#cursos-por-categoria-container').append(template); 
2688
2689			 
2690			$.ajax( 
2691
2692						url : '/o/senac-content-services/category/' 
2693								+ t.categoryId, 
2694						type : 'get' 
2695					}).done(function(category) { 
2696						 
2697						var dadosCategoria = JSON.parse(category); 
2698						 
2699						//monta as divs para cada tcategoria 
2700						var templatePorCategoria = $('#cursos-por-categoria-'+dadosCategoria.categoryId); 
2701						templatePorCategoria.find('.tema-nome').text(dadosCategoria.name); 
2702						templatePorCategoria.find('.ver-todos-cursos-link').attr('data-nvl', 1); 
2703						templatePorCategoria.find('.ver-todos-cursos-link').attr('data-tema', dadosCategoria.categoryId); 
2704						templatePorCategoria.removeClass('d-none'); 
2705 
2706						cursosPorCategoriaModelo1(dadosCategoria); 
2707 
2708			}); 
2709		}); 
2710		 
2711		// Esconde botao carregar mais, se  necessario 
2712		 
2713		$('.section-carregar-mais').remove(); 
2714		 
2715		if (temas.length > limit + offset){ 
2716			$('#cursos-por-categoria-container').append('<section style="padding: 30px 0; width:100%" class="section-carregar-mais"><div class="container"><a href="#a" class="ssp-section-tema__btn-ver-mais" id="carregar-mais" style="visibility:hidden"> Carregar mais unidades </a></div></section>'); 
2717
2718		 
2719		 
2720		break; 
2721 
2722	case 1: 
2723		limit = 2; 
2724 
2725		$('#tema-atual').text("Cursos de "+activeCategory.name); 
2726			 
2727		//Exibe a lista de subtemas, quando mobile 
2728		var tam = $(window).width(); 
2729		  
2730		if (tam < 1024){ 
2731			 
2732			$('#subtemas-lista-mobile').empty(); 
2733			$('#subtemas-lista-mobile').removeClass('d-none'); 
2734			 
2735			$.each(subtemasStorage.get(activeCategory.categoryId), function(k, t) { 
2736				 
2737				$('#subtemas-lista-mobile').append('<a href="#a" class="subtema btn-nivel-3" data-tema="' 
2738						+ t.categoryId 
2739						+ '" data-nvl="2" style="font-size: 14px;">' 
2740						+ t.name 
2741						+ '</a>'); 
2742			}); 
2743			 
2744
2745		 
2746		// Exibe os cursos dos subtemas do tema clicado percorrendo a lista de 
2747		// subtemas do tema clicado 
2748		if(subtemasStorage.get(activeCategory.categoryId).length > 0){ 
2749						 
2750			$.each(subtemasStorage.get(activeCategory.categoryId).slice(offset, 
2751					limit + offset), function(k, t) { 
2752				 
2753				 
2754				if($('#cursos-por-categoria-'+t.categoryId).length == 0){ 
2755					 
2756					var template = $('#cursos-por-categoria-template').clone(); 
2757					template.prop('id', 'cursos-por-categoria-'+t.categoryId); 
2758	 
2759					template.removeClass('d-none'); 
2760					 
2761					$('#cursos-por-categoria-container').append(template); 
2762
2763	 
2764				$.ajax( 
2765
2766							url : '/o/senac-content-services/category/' 
2767									+ t.categoryId, 
2768							type : 'get' 
2769						}).done(function(category) { 
2770							 
2771							var dadosCategoria = JSON.parse(category); 
2772							 
2773							//monta as divs para cada tcategoria 
2774							var templatePorCategoria = $('#cursos-por-categoria-'+dadosCategoria.categoryId); 
2775							templatePorCategoria.find('.tema-nome').text(dadosCategoria.name); 
2776							templatePorCategoria.find('.ver-todos-cursos-link').attr('data-nvl', 2); 
2777							templatePorCategoria.find('.ver-todos-cursos-link').attr('data-tema', dadosCategoria.categoryId); 
2778							templatePorCategoria.removeClass('d-none'); 
2779 
2780							cursosPorCategoriaModelo1(dadosCategoria); 
2781	 
2782				}); 
2783				 
2784			}); 
2785			 
2786			 
2787			// Esconde botao carregar mais, se  necessario 
2788			$('.section-carregar-mais').remove(); 
2789			 
2790			if (subtemasStorage.get(activeCategory.categoryId).length > limit + offset) 
2791				$('#cursos-por-categoria-container').append('<section style="padding: 30px 0; width:100%" class="section-carregar-mais"><div class="container"><a href="#a" class="ssp-section-tema__btn-ver-mais" id="carregar-mais" style="visibility:hidden"> Carregar mais unidades </a></div></section>'); 
2792			 
2793			 
2794			 
2795		}else{ 
2796			//Se nao tiver subtema, exibe o modelo 3 
2797			cursosPorCategoriaModelo3(); 
2798
2799 
2800		break; 
2801 
2802	case 2: // exibe cursos do nivel 2 
2803		limit = 2; 
2804		cursosPorCategoriaModelo2(); 
2805		break; 
2806		 
2807	case 3: 
2808		cursosPorCategoriaModelo3(); 
2809		break; 
2810
2811
2812 
2813/* 
2814 * Faz a exibicao dos cursos quando se carrega a tela ou clica em 'Todos' 
2815 */ 
2816 function cursosPorCategoriaModelo1(category) { 
2817		 
2818	 	activeModeloExibicao = 1; 
2819	  
2820		$.ajax({ 
2821			url : '/o/senac-unidade-services/cursosPorTipoCursoETemaEUnidade/' 
2822				+ groupId + '/'  
2823				+ category.categoryId + '/'  
2824				+ tipoCursoNome+ '/' 
2825				+ categoryIdUnidade +'/' 
2826				+ filtrarInscricoesAbertas +'/' 
2827				+ filtrarBolsaEstudo+ '/0/' 
2828				+ limitCursos, 
2829			type : 'get', 
2830			beforeSend: function () { 
2831				loading('#cursos-por-categoria-'+category.categoryId+' .slider-curso'); 
2832
2833		}).done(function(cursosPorCategoria) { 
2834 
2835			enableScroll(true); 
2836			 
2837			cursosPorCategoria = JSON.parse(cursosPorCategoria); 
2838							 
2839			var totalCursos = cursosPorCategoria.total; 
2840			 
2841			//Se nao retornou cursos, deve esconder a div da categoria 
2842			if(totalCursos == 0){ 
2843				//$('#cursos-por-categoria-'+category.categoryId).remove(); 
2844				$('#cursos-por-categoria-'+category.categoryId).html(''); 
2845				 
2846				//essa classe tirar todo o padding da div, escondendo ela 
2847				$('#cursos-por-categoria-'+category.categoryId).removeClass('ssp-section'); 
2848				 
2849				window.scrollTo(window.scrollX, window.scrollY + 1); 
2850				return; 
2851			}else{ 
2852			 
2853				if(!$('#cursos-por-categoria-'+category.categoryId).hasClass('ssp-section')) 
2854					$('#cursos-por-categoria-'+category.categoryId).addClass('ssp-section'); 
2855								 
2856				if(totalCursos <= 4) 
2857					$(".ver-todos-cursos-link[data-tema='"+category.categoryId+"']").addClass("d-none"); 
2858
2859		 
2860			var articles = []; 
2861				      		 
2862	   		 $.each(cursosPorCategoria.cursos, function(k, c){ 
2863	   			articles.push(c.articleId); 
2864	   		 }); 
2865				      		  
2866	   		//Verifica a situacao dos botoes de inscricoes e bolsa 
2867			  $.ajax({ 
2868			        url :  '/o/senac-content-services/verificaBotoesInscricaoEBolsaPorUnidade/'+groupId+'/'+articles.join(',')+'/'+categoryIdUnidade, 
2869			        type : 'get' 
2870			    })  
2871			    .done(function(infoBotoes){ 
2872				    	 
2873				    	if(infoBotoes.length > 0) { 
2874				    		 
2875			    		  	infoBotoes = JSON.parse(infoBotoes); 
2876 
2877							var template = $('#cursos-por-categoria-'+category.categoryId); 
2878							 
2879							$('#cursos-por-categoria-'+category.categoryId+' .slider-curso').empty(); 
2880 
2881							$.each(cursosPorCategoria.cursos, function(k, curso) { 
2882		 
2883								var itemCurso = $('#curso-item-template').clone(); 
2884								 
2885								if(verificaFormatoAovivo(curso)){ 
2886									itemCurso.find('.tag-modalidade-title__senac-online').removeClass('d-none'); 
2887									itemCurso.find('.ssp-card-curso__tag-formato-title').remove(); 
2888								}else{ 
2889		                 			 
2890		                    		itemCurso.find('.ssp-card-curso__tag-formato-title').text(montaTextoFinalTipoCursoFormato(curso)); 
2891		                		 }	 
2892		 
2893								itemCurso.prop('id', ''); 
2894 
2895								itemCurso.find('.ssp-card-curso__title').text( 
2896										limitaTitleCurso(curso.title)); 
2897								itemCurso.find('.ssp-image-container img').attr( 
2898										"src", HOST + curso.imagemURL); 
2899								itemCurso.find('.ck-curso').attr('data-ck', 
2900										curso.articleId); 
2901								 
2902								itemCurso.find('.ck-curso').attr('href',curso.url); 
2903								 
2904								itemCurso.find('.ssp-image-container').css( 
2905										"background-image", 
2906										"url(" + HOST + curso.imagemURL + ")"); 
2907 
2908								itemCurso.removeClass('d-none'); 
2909								 
2910								//checa inscricoes abertas e bolsas 
2911							   if(!infoBotoes[curso.articleId].botaoInscricoesAbertas) 
2912								   itemCurso.find('.btn-inscricoes-abertas').remove(); 
2913								    
2914							   if(!infoBotoes[curso.articleId].botaoBolsas) 
2915								   itemCurso.find('.btn-bolsas').remove(); 
2916 
2917								template.append(itemCurso); 
2918 
2919								template.find('.slider-curso').append(itemCurso); 
2920		 
2921							}); // fim each 
2922		 
2923							// chama o slider por categoria 
2924							if (tam >=1024){ 
2925 
2926								template.find('.slider-curso').addClass( 
2927									'slick-area slick-area--md-bleed slider-container slider-id-' 
2928											+ category.categoryId); 
2929 
2930							}else{ 
2931								template.find('.slider-curso').css({"flex-wrap":"wrap"}); 
2932								 
2933								if($('.ssp-page-busca__section-resultado__ver-todos-mobile[data-tema="'+category.categoryId+'"]').length == 0){ 
2934									 
2935									if(!(totalCursos <= 4)){ 
2936 
2937										//Exibe o link ver todos 
2938										template.append('<a href="#a" data-nvl="'+(activeCategoryLevel+1)+'" data-tema="'+category.categoryId+'" 						class="ssp-page-busca__section-resultado__ver-todos-mobile ver-todos-cursos-link">Todos os cursos</a>'); 
2939 
2940
2941									 
2942
2943							}; 
2944 
2945 
2946							// chama o slider por categoria 
2947							if (tam >=1024){ 
2948 
2949								sliderCurso('.slider-id-' + category.categoryId); 
2950 
2951							}; 
2952				    	} //fim if botoes length 
2953				    	 
2954						 
2955			    }); // fim done 
2956			 
2957		}).fail(function(jqXHR, textStatus, msg) { 
2958			// alert(msg); 
2959		}); 
2960	 
2961		 
2962
2963 
2964//ao final de todos os ajax, se não houver curso na pag por causa dos filtros, exibimos mensagem de nenhum curso 
2965$(document).ajaxStop(function () { 
2966	if($(".slick-area__item").not('.d-none').length == 0){ 
2967		var htmlTextoSemCurso = getTextoSemCurso(filtrarBolsaEstudo,filtrarInscricoesAbertas,activeCategory.name);  
2968 
2969		$(".ssp-bolsa-formulario__card-aviso-texto").html(htmlTextoSemCurso);					 
2970		$("#filtroSemCurso").removeClass("d-none"); 
2971
2972});	 
2973 
2974/* 
2975 * Faz a exibicao dos cursos quando se clica em temas nivel 2 
2976 */ 
2977 function cursosPorCategoriaModelo2() { 
2978		activeModeloExibicao = 2; 
2979	 
2980		$("#tema-atual").html("<span>Cursos de </span>"	+ activeCategory.name); 
2981		 
2982		// Busca os filhos (3 nivel) 
2983		$.ajax({ 
2984			url : '/o/senac-unidade-services/subtemasPorTipoCursoETemaEUnidade/'+ groupId+ '/'+ activeCategory.categoryId+ '/'+ tipoCursoNome+'/'+categoryIdUnidade, 
2985			type : 'get', 
2986			data : {} 
2987			}).done(function(subtemas) { 
2988 
2989				enableScroll(true); 
2990				 
2991				subtemas = JSON.parse(subtemas); 
2992				 
2993				if(tam > 1024 && subtemas.length > 0) 
2994					var subsubtemaLista = '<hr class="separador-subtemas"/>'; 
2995				else 
2996					var subsubtemaLista = '' ;  
2997						 
2998				$.each(subtemas, function(k, v) { 
2999					subsubtemaLista += '<a href="#a" class="subtema btn-nivel-3" data-tema="' 
3000							+ v.categoryId 
3001							+ '" data-nvl="3" style="font-size: 14px;">' 
3002							+ v.name 
3003							+ '</a>'; 
3004				}); 
3005	 
3006				$('#filtro-temas-nivel-3').html(subsubtemaLista); 
3007				 
3008				if(subtemas.length > 0 && (tipoCursoNome == "Livre" || tipoCursoNome == "Extensão") ){  
3009					$('#filtro-temas-nivel-3').removeClass('d-none'); 
3010					//Caso nao tenha subtemas, exibe o modelo 3 
3011						 
3012				}else{ 
3013					cursosPorCategoriaModelo3(); 
3014					return; 
3015
3016					 
3017				// Exibe os cursos dos subtemas do tema clicado percorrendo a lista de 
3018				// subtemas do tema clicado 
3019				if(subtemas.length > 0){ 
3020					 
3021					$.each(subtemas.slice(offset, limit + offset), function(k, t) { 
3022						 
3023						if($('#cursos-por-categoria-'+t.categoryId).length == 0){ 
3024							var template = $('#cursos-por-categoria-template').clone(); 
3025							template.prop('id', 'cursos-por-categoria-'+t.categoryId); 
3026	 
3027							template.removeClass('d-none'); 
3028							 
3029							$('#cursos-por-categoria-container').append(template); 
3030
3031			 
3032						$.ajax( 
3033
3034									url : '/o/senac-content-services/category/' 
3035											+ t.categoryId, 
3036									type : 'get' 
3037								}).done(function(category) { 
3038									 
3039									var dadosCategoria = JSON.parse(category); 
3040									 
3041									//monta as divs para cada tcategoria 
3042									var templatePorCategoria = $('#cursos-por-categoria-'+dadosCategoria.categoryId); 
3043									templatePorCategoria.find('.tema-nome').text(dadosCategoria.name); 
3044									templatePorCategoria.find('.ver-todos-cursos-link').attr('data-nvl', 3); 
3045									templatePorCategoria.find('.ver-todos-cursos-link').attr('data-tema', dadosCategoria.categoryId); 
3046									templatePorCategoria.removeClass('d-none'); 
3047 
3048									cursosPorCategoriaModelo1(dadosCategoria); 
3049			 
3050						}); 
3051					}); 
3052					 
3053					// Esconde botao carregar mais, se  necessario 
3054					$('.section-carregar-mais').remove(); 
3055					 
3056					if (subtemas.length > limit + offset) 
3057						$('#cursos-por-categoria-container').append('<section style="padding: 30px 0; width:100%" class="section-carregar-mais"><div class="container"><a href="#a" class="ssp-section-tema__btn-ver-mais" id="carregar-mais" style="visibility:hidden"> Carregar mais unidades </a></div></section>'); 
3058					 
3059				}else{ 
3060					//Se nao tiver subtema, exibe o modelo 3 
3061					cursosPorCategoriaModelo3(); 
3062
3063					 
3064		}); 
3065		 
3066	 
3067		 
3068
3069/* 
3070 * Faz a exibicao dos cursos quando se clica em temas nivel 3 
3071 */ 
3072 function cursosPorCategoriaModelo3() { 
3073		activeModeloExibicao = 3; 
3074	     
3075		//Se já estiver carregando não deixa juntar várias chamadas 
3076		if($('#loading-todos-cursos').length > 0) return; 
3077		 
3078		//Loading 
3079		$('#curso-sem-slick').append('<div id="loading-todos-cursos" style="width:100%; text-align:center">'+ 
3080		'<div class="ssp-loader-content">'+ 
3081		'<div class="ssp-loader"></div>'+ 
3082		'<p class="ssp-loader-text">Carregando...</p>'+ 
3083		'</div>'+ 
3084		'</div>'); 
3085		 
3086		$("#tema-atual").html("<span>Cursos de </span>"	+ activeCategory.name); 
3087		 
3088		//Ativa o botao clicado 
3089		$('.btn-nivel-3').each(function(btn){ 
3090			$(this).removeClass('ativo'); 
3091			 
3092			if($(this).attr('data-tema') == activeCategory.categoryId) $(this).addClass('ativo'); 
3093		}); 
3094		 
3095		$.ajax({ 
3096			url : '/o/senac-unidade-services/cursosPorTipoCursoETemaEUnidade/' 
3097				+ groupId + '/'  
3098				+ activeCategory.categoryId + '/'  
3099				+ tipoCursoNome+ '/' 
3100				+ categoryIdUnidade +'/' 
3101				+ filtrarInscricoesAbertas +'/' 
3102				+ filtrarBolsaEstudo+ '/' 
3103				+ offsetTodosCursos +'/' 
3104				+ (limitTodosCursos + offsetTodosCursos), 
3105			type : 'get', 
3106			data : {}, 
3107			/*beforeSend: function () { 
3108				 
3109				var totalItens = $('#curso-sem-slick .slick-area__item').length; 
3110				if(totalItens == 0) 
3111					loading('#curso-sem-slick'); 
3112			}*/ 
3113		}).done(function(cursosPorSubtema) { 
3114			 
3115			enableScroll(true); 
3116			 
3117			$('.ssp-loader-content').parent().remove(); 
3118 
3119			cursosPorSubtema = JSON.parse(cursosPorSubtema); 
3120			 
3121			var totalCursos = cursosPorSubtema.total; 
3122			 
3123			var templateContainer = $('#cursos-por-categoria-container'); 
3124 
3125			var articles = []; 
3126	      		 
3127	      	$.each(cursosPorSubtema.cursos, function(k, c){ 
3128	    		articles.push(c.articleId); 
3129	   		 }); 
3130	      		  
3131	      		//Verifica a situacao dos botoes de inscricoes e bolsa 
3132			 $.ajax({ 
3133				        url :  '/o/senac-content-services/verificaBotoesInscricaoEBolsaPorUnidade/'+groupId+'/'+articles.join(',')+'/'+categoryIdUnidade, 
3134				        type : 'get' 
3135		    }).done(function(infoBotoes){ 
3136		    	 
3137		    	templateContainer.find('#curso-sem-slick').empty(); 
3138		    	 
3139		    	if(infoBotoes.length > 0) { 
3140		    		 
3141	    		   infoBotoes = JSON.parse(infoBotoes); 
3142		 
3143 
3144					$.each(cursosPorSubtema.cursos,function(k, curso) { 
3145 
3146							var itemCurso = $('#curso-item-template').clone(); 
3147							 
3148							if(verificaFormatoAovivo(curso)){ 
3149								itemCurso.find('.tag-modalidade-title__senac-online').removeClass('d-none'); 
3150								itemCurso.find('.ssp-card-curso__tag-formato-title').remove(); 
3151							}else{ 
3152	                 			 
3153	                 			 
3154	                    		itemCurso.find('.ssp-card-curso__tag-formato-title').text(montaTextoFinalTipoCursoFormato(curso) ); 
3155	                		 }	 
3156 
3157							itemCurso.prop('id',''); 
3158 
3159							itemCurso.find(	'.ssp-card-curso__title').text(limitaTitleCurso(curso.title)); 
3160							itemCurso.find('.ssp-image-container img').attr("src",HOST+ curso.imagemURL); 
3161							itemCurso.find('.ck-curso').attr('data-ck',curso.articleId); 
3162							itemCurso.find('.ck-curso').attr('href',curso.url); 
3163							itemCurso.find('.ssp-image-container').css("background-image","url("+ HOST+ curso.imagemURL+ ")"); 
3164							 
3165							//checa inscricoes abertas e bolsas 
3166						   if(!infoBotoes[curso.articleId].botaoInscricoesAbertas) 
3167							   itemCurso.find('.btn-inscricoes-abertas').remove(); 
3168							    
3169						   if(!infoBotoes[curso.articleId].botaoBolsas) 
3170							   itemCurso.find('.btn-bolsas').remove(); 
3171							    
3172 
3173							itemCurso 
3174									.removeClass('d-none'); 
3175							 
3176							itemCurso.addClass('card-curso-nivel-2'); 
3177 
3178 
3179							// procura a div criada e adiciona os cursos 
3180							templateContainer.find('#curso-sem-slick').append(itemCurso); 
3181					}); // fim each 
3182 
3183					templateContainer.removeClass('d-none'); 
3184 
3185					var totalCursosExibicao = $('#curso-sem-slick .slick-area__item').length; 
3186						 
3187					// Esconde botao carregar mais, se  necessario 
3188					$('.section-carregar-mais').remove(); 
3189						 
3190					if (totalCursosExibicao < totalCursos)  
3191						$('#cursos-por-subtema-container').append('<section style="padding: 30px 0; width:100%" class="section-carregar-mais"><div class="container"><a href="#a" class="ssp-section-tema__btn-ver-mais" id="carregar-mais" style="visibility:hidden"> Carregar mais unidades </a></div></section>'); 
3192
3193 
3194			});  
3195 
3196		}).fail(function(jqXHR, textStatus, msg) { 
3197			// alert(msg); 
3198		}); 
3199	 
3200
3201 
3202/* 
3203 * Faz a exibicao dos cursos quando se carrega a tela ou clica em 'Todos' 
3204 */ 
3205function displayCursosRecentes() { 
3206 
3207	// Verifica se existem cursos no cookie 
3208	if (getCookie(cookieName) == null || getCookie(cookieName) == null) 
3209		return; 
3210	 
3211	var cursosLivresRecentes = JSON.parse(getCookie(cookieName)).join(','); 
3212	 
3213	if(cursosLivresRecentes.length) 
3214		$('#section-buscados-recentes').removeClass('d-none'); 
3215 
3216
3217			.ajax( 
3218
3219						url : '/o/senac-content-services/cursosInfo/' + groupId 
3220								+ '/' + cursosLivresRecentes+'/0/' 
3221								+ limitCursos, 
3222						type : 'get' 
3223					}) 
3224			.done( 
3225					function(cursosRecentes) { 
3226 
3227						cursosRecentes = JSON.parse(cursosRecentes); 
3228 
3229						var template = $('#cursos-recentes-template'); 
3230 
3231						$.each(cursosRecentes, function(k, curso) { 
3232 
3233							var itemCurso = $('#curso-item-template').clone(); 
3234							 
3235							if(verificaFormatoAovivo(curso)){ 
3236								itemCurso.find('.tag-modalidade-title__senac-online').removeClass('d-none'); 
3237								itemCurso.find('.ssp-card-curso__tag-formato-title').remove(); 
3238							}else{ 
3239	                 			 
3240	                    		itemCurso.find('.ssp-card-curso__tag-formato-title').text(montaTextoFinalTipoCursoFormato(curso)); 
3241	                		 }	 
3242 
3243							itemCurso.prop('id', ''); 
3244 
3245							itemCurso.find('.ssp-card-curso__title').text( 
3246									limitaTitleCurso(curso.title)); 
3247							itemCurso.find('.ssp-image-container img').attr( 
3248									"src", HOST + curso.imagemURL); 
3249 
3250							itemCurso.find('.ssp-image-container').css( 
3251									"background-image", 
3252									"url(" + HOST + curso.imagemURL + ")"); 
3253							 
3254							itemCurso.find('.ck-curso').attr('href',curso.url); 
3255 
3256							itemCurso.removeClass('d-none'); 
3257 
3258							template.find('.slider-curso').append(itemCurso); 
3259						}); 
3260 
3261						template 
3262								.find('.slider-curso') 
3263								.addClass( 
3264										'slick-area slick-area--md-bleed slider-container slider-id-recentes'); 
3265 
3266						 
3267						// section de buscado recentes* 
3268 
3269						$('#template').removeClass('d-none'); 
3270						template.removeClass('d-none'); 
3271						// div de recentes* 
3272 
3273						sliderCurso('.slider-id-recentes'); 
3274 
3275					}).fail(function(jqXHR, textStatus, msg) { 
3276				// alert(msg); 
3277			}); 
3278 
3279
3280 
3281/* 
3282 * Monta a lista de temas de curso livre no header da pagina 
3283 */ 
3284 
3285 function carregaTemasNivelDireto(nivel) { 
3286		//buscando o categoryId da unidade 
3287		$.ajax({ 
3288			url : '/o/senac-unidade-services/categoriaPorFirendlyURL/'+urlUnidade+"/"+0, 
3289			type : 'get', 
3290			dataType: 'json' 
3291		}) 
3292		.done(function(unidadesCategory) { 
3293			 
3294			categoryIdUnidade = unidadesCategory[0].categoryId; 
3295			 
3296			//buscando os temas que os cursos da unidade tem com este tipo de curso 
3297			$.ajax({ 
3298				url : '/o/senac-unidade-services/temasPorTipoCursoEUnidade/'+groupId+'/'+tipoCursoNome+'/'+categoryIdUnidade, 
3299				type : 'get', 
3300				dataType: 'json' 
3301			}) 
3302			.done(function(temasLista) { 
3303					var temasObj = $('#temas'); 
3304									 
3305					$.each(temasLista,function(k, tema) { 
3306						temasObj.append('<div class="ssp-section-tema__container-menu-item mega-menu"><a href="#a" class="tema" data-nvl="1" data-tema="'+ tema.categoryId+ '">'+ tema.name+ '</a></div>'); 
3307		 
3308						// Armazena os subtemas deste tema 
3309						$.ajax({ 
3310							url : '/o/senac-unidade-services/subtemasPorTipoCursoETemaEUnidade/'+ groupId+ '/'+ tema.categoryId+ '/'+ tipoCursoNome+'/'+categoryIdUnidade, 
3311							type : 'get', 
3312						}) 
3313						.done(function(subtemas) { 
3314							 
3315							 
3316							subtemasStorage.set(tema.categoryId,JSON.parse(subtemas)); 
3317							 
3318							if(nivel == 1 && tema.categoryId == categoryIdTemaNv1){ 
3319								var clicou = 0; 
3320								$('.tema[data-tema="'+categoryIdTemaNv1+'"]').not('.slick-cloned').each(function(){ 
3321									 
3322									if(!clicou){ 
3323										var botaoTemaTargetNv1 = $(this); 
3324										botaoTemaTargetNv1.trigger('click'); 
3325										 
3326										clicou = 1; 
3327										acessoDireto = 0; 
3328
3329										 
3330								}); 
3331
3332							 
3333							if(nivel == 2){ 
3334								 
3335								if(tipoCursoNome == "Livre" || tipoCursoNome == "Extensão"){ 
3336									subTemasJson = JSON.parse(subtemas); 
3337									if(subTemasJson.length > 0){ 
3338									 
3339										$.each(subTemasJson, function(i, each){ 
3340											if(each.categoryId == categoryIdTemaNv2){ 
3341													 
3342													var botaoTema = $('.tema[data-tema="'+categoryIdTemaNv1+'"]'); 
3343													botaoTema.addClass('tema-ativo'); 
3344													 
3345													tam = $(window).width(); 
3346													 
3347													if (tam <=1024){ 
3348														$("#visualizar-mais, .visualizar-mais-seta").addClass('d-none'); 
3349														$('#temas').addClass('d-none'); 
3350														// adiciona o item selecionado nos filtros 
3351														$("#filtro-ativo-nivel-1").prepend(botaoTema); 
3352
3353													 
3354													$.ajax({ 
3355														url : '/o/senac-content-services/category/' 
3356																+ categoryIdTemaNv1, 
3357														type : 'get' 
3358													}).done(function(category) { 
3359														 
3360														activeCategory = JSON.parse(category); 
3361														displaySubTemasLista(); 
3362														 
3363														$.ajax({ 
3364															url : '/o/senac-content-services/category/' 
3365																	+ categoryIdTemaNv2, 
3366															type : 'get' 
3367														}).done(function(category2) { 
3368															 
3369															activeCategory = JSON.parse(category2); 
3370															var botaoTemaTargetNv2 = $('.subtema[data-tema="'+categoryIdTemaNv2+'"]'); 
3371															botaoTemaTargetNv2.trigger('click'); 
3372															acessoDireto = 0; 
3373														}); 
3374														 
3375													}); 
3376													 
3377
3378													 
3379											}); 
3380
3381
3382
3383							 
3384							 
3385							 
3386						}); 
3387						 
3388					}); // fim each 
3389												 
3390					 
3391					if(nivel == 3){ 
3392						if(tipoCursoNome == "Livre" || tipoCursoNome == "Extensão"){ 
3393							 
3394							var botaoTema = $('.tema[data-tema="'+categoryIdTemaNv1+'"]'); 
3395							botaoTema.addClass('tema-ativo'); 
3396							 
3397							tam = $(window).width(); 
3398							 
3399							if (tam <=1024){ 
3400								$("#visualizar-mais, .visualizar-mais-seta").addClass('d-none'); 
3401								$('#temas').addClass('d-none'); 
3402								// adiciona o item selecionado nos filtros 
3403								$("#filtro-ativo-nivel-1").prepend(botaoTema); 
3404
3405							 
3406							$.ajax({ 
3407								url : '/o/senac-content-services/category/' 
3408										+ categoryIdTemaNv1, 
3409								type : 'get' 
3410							}).done(function(category) { 
3411 
3412								 
3413								activeCategory = JSON.parse(category); 
3414								displaySubTemasLista(); 
3415								var botaoSubtema = $('.subtema[data-tema="'+categoryIdTemaNv2+'"]'); 
3416								botaoSubtema.addClass('subtema-ativo'); 
3417								 
3418								if (tam <=1024){ 
3419									// adiciona o item selecionado nos filtros 
3420									$("#filtro-ativo-nivel-2").prepend(botaoSubtema); 
3421
3422 
3423								$.ajax({ 
3424									url : '/o/senac-content-services/category/' 
3425											+ categoryIdTemaNv2, 
3426									type : 'get' 
3427								}).done(function(category2) { 
3428									 
3429									activeCategory = JSON.parse(category2); 
3430 
3431									// Busca os filhos (3 nivel) 
3432									$.ajax({ 
3433										url : '/o/senac-unidade-services/subtemasPorTipoCursoETemaEUnidade/'+ groupId+ '/'+ activeCategory.categoryId+ '/'+ tipoCursoNome+'/'+categoryIdUnidade, 
3434										type : 'get', 
3435										data : {} 
3436										}).done(function(subtemas) { 
3437											subtemas = JSON.parse(subtemas); 
3438											 
3439											if(tam > 1024 && subtemas.length > 0) 
3440												var subsubtemaLista = '<hr class="separador-subtemas"/>'; 
3441											else 
3442												var subsubtemaLista = ''; 
3443											 
3444											$.each(subtemas, function(k, v) { 
3445												subsubtemaLista += '<a href="#a" class="subtema btn-nivel-3" data-tema="' 
3446														+ v.categoryId 
3447														+ '" data-nvl="3" style="font-size: 14px;">' 
3448														+ v.name 
3449														+ '</a>'; 
3450														 
3451												if(v.categoryId == categoryIdTemaNv3) 
3452													activeCategory = v; 
3453													 
3454											}); 
3455 
3456											$('#filtro-temas-nivel-3').html(subsubtemaLista); 
3457											$('#filtro-temas-nivel-3').removeClass('d-none'); 
3458											 
3459											var botaoTemaTargetNv3 = $('.subtema[data-tema="'+categoryIdTemaNv3+'"]'); 
3460											botaoTemaTargetNv3.trigger('click'); 
3461											acessoDireto = 0; 
3462										});	 
3463									 
3464								}); 
3465								 
3466							}); 
3467
3468
3469					 
3470					temas = temasLista; 
3471			 
3472					 
3473					//displayCursosPorTema(); 
3474 
3475					// Verificar o tamanho da tela e chama da função para desktop e mobile 
3476					var tam = $(window).width(); 
3477					 
3478					//$('.todos').addClass('ativo'); 
3479 
3480					if (tam >=1024){ 
3481 
3482							// Adiciona a classe do slider no elemento 
3483						$('#temas').addClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3484						// e faz a chamada da função 
3485						sliderTemaBtn(); 
3486 
3487						// menuDropDown(); 
3488						 
3489					}else{ 
3490 
3491						$('#temas').removeClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3492						 
3493						exibeTemasMobile() 
3494						 
3495					}  
3496 
3497					// // Adiciona a classe do slider no elemento 
3498					// $('#temas').addClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3499					// // e faz a chamada da função 
3500					// sliderTemaBtn(); 
3501 
3502					// verifica Device e tira o slider 
3503					 
3504					 
3505 
3506				}).fail(function(jqXHR, textStatus, msg) { 
3507					// alert(msg); 
3508				}); 
3509		 
3510					 
3511		 
3512		}); // fim done 1o ajax 
3513		 
3514		 
3515
3516 
3517function carregaTemas() { 
3518	 
3519	//buscando o categoryId da unidade 
3520	$.ajax({ 
3521		url : '/o/senac-unidade-services/categoriaPorFirendlyURL/'+urlUnidade+"/"+0, 
3522		type : 'get', 
3523		dataType: 'json' 
3524	}) 
3525	.done(function(unidadesCategory) { 
3526		 
3527		categoryIdUnidade = unidadesCategory[0].categoryId; 
3528		 
3529		//buscando os temas que os cursos da unidade tem com este tipo de curso 
3530		$.ajax({ 
3531			url : '/o/senac-unidade-services/temasPorTipoCursoEUnidade/'+groupId+'/'+tipoCursoNome+'/'+categoryIdUnidade, 
3532			type : 'get', 
3533			dataType: 'json' 
3534		}) 
3535		.done(function(temasLista) { 
3536				var temasObj = $('#temas'); 
3537								 
3538				$.each(temasLista,function(k, tema) { 
3539					temasObj.append('<div class="ssp-section-tema__container-menu-item mega-menu"><a href="#a" class="tema" data-nvl="1" data-tema="'+ tema.categoryId+ '">'+ tema.name+ '</a></div>'); 
3540	 
3541 
3542					// Armazena os subtemas deste tema 
3543					$.ajax({ 
3544						url : '/o/senac-unidade-services/subtemasPorTipoCursoETemaEUnidade/'+ groupId+ '/'+ tema.categoryId+ '/'+ tipoCursoNome+'/'+categoryIdUnidade, 
3545						type : 'get', 
3546					}) 
3547					.done(function(subtemas) { 
3548						subtemasStorage.set(tema.categoryId,JSON.parse(subtemas)); 
3549 
3550					}); 
3551					 
3552				}); // fim each 
3553 
3554				temas = temasLista; 
3555		 
3556				displayCursosPorTema(); 
3557 
3558				// Verificar o tamanho da tela e chama da função para desktop e mobile 
3559				var tam = $(window).width(); 
3560				 
3561				$('.todos').addClass('ativo'); 
3562 
3563				if (tam >=1024){ 
3564 
3565						// Adiciona a classe do slider no elemento 
3566					$('#temas').addClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3567					// e faz a chamada da função 
3568					sliderTemaBtn(); 
3569 
3570					// menuDropDown(); 
3571					 
3572				}else{ 
3573 
3574					$('#temas').removeClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3575					 
3576					exibeTemasMobile() 
3577					 
3578				}  
3579 
3580				// // Adiciona a classe do slider no elemento 
3581				// $('#temas').addClass("tema-slick-area tema-slick-area--md-bleed slider-container"); 
3582				// // e faz a chamada da função 
3583				// sliderTemaBtn(); 
3584 
3585				// verifica Device e tira o slider 
3586				 
3587				 
3588 
3589			}).fail(function(jqXHR, textStatus, msg) { 
3590				// alert(msg); 
3591			}); 
3592	 
3593	 
3594	 
3595	}); // fim done 1o ajax 
3596	 
3597	 
3598
3599 
3600/* 
3601 * Exibe a lista de subtemas no click do tema 
3602 */ 
3603function displaySubTemasLista(categoryId) { 
3604	 
3605	$('#filtro-temas-nivel-2').empty(); 
3606	$('#filtro-temas-nivel-2').removeClass('d-none'); 
3607	 
3608	$.each(subtemasStorage.get(activeCategory.categoryId), function(k, t) { 
3609		$('#filtro-temas-nivel-2').append('<a href="#a" class="subtema btn-nivel-3" data-tema="' 
3610				+ t.categoryId 
3611				+ '" data-nvl="2" style="font-size: 14px;">' 
3612				+ t.name 
3613				+ '</a>'); 
3614	}); 
3615	 
3616	if(tipoCursoNome == "Técnico") 
3617		$('#filtro-temas-nivel-2').addClass('d-none'); 
3618	 
3619	// $('#subtemas-lista').empty(); 
3620 
3621	// var subtemaLista = '<div class="subtema-content">'; 
3622 
3623	// $.each(subtemasStorage.get(categoryId), function(k, s) { 
3624 
3625	// 	// controle feito pela classe tema 
3626	// 	subtemaLista += '<a href="#a" class="subtema"  data-tema="' 
3627	// 			+ s.categoryId + '" data-nvl="2">' + s.name + '</a>'; 
3628 
3629	// }); 
3630 
3631	// subtemaLista += '</div>'; 
3632 
3633	// $('#subtemas-lista').append(subtemaLista); 
3634
3635 
3636//Carregar mais 
3637 $(window).scroll(function() { 
3638 	 
3639 	var element = document.querySelector('#carregar-mais'); 
3640 	 
3641 	if(element != null && !carregandoMais){ 
3642 		var position = element.getBoundingClientRect(); 
3643 	 
3644 		// carregar maios 
3645 		if(position.top >= 0 && position.bottom <= window.innerHeight) { 
3646 			enableScroll(false); 
3647 			var qtCardsSubTema = $('#cursos-por-subtema-container .ssp-card-curso').not('.d-none').length; 
3648 			if(qtCardsSubTema > 0){ 
3649 				offsetTodosCursos = qtCardsSubTema; 
3650 				$('.section-carregar-mais').remove(); 
3651 			}else{ 
3652 				offset = $('.cursos-por-categoria').not('.d-none').length; 
3653
3654 			displayCursosPorTema();			 
3655 			 
3656
3657
3658 	 
3659 }); 
3660 
3661 function enableScroll(enable) { 
3662     if(enable === false) document.body.classList.add("stop-scrolling") 
3663     else document.body.classList.remove("stop-scrolling"); 
3664     carregandoMais = !enable; 
3665
3666 
3667</script>