An error occurred while processing the template.
The following has evaluated to null or missing:
==> offerResults.getResponse()  [in template "20099#20135#33814" at line 755, column 50]

----
Tip: If the failing expression is known to be 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 offerResponse = offerResults...  [in template "20099#20135#33814" at line 755, column 25]
----
1<#--ATTRATTORE 03042025 accessibilita--> 
2 
3<style> 
4	.collapsed-accessibility { 
5		max-height: 0px; 
6		overflow: hidden; 
7		visibility: hidden; 
8
9 
10	.expanded { 
11		max-height: none; 
12		visibility: visible; 
13
14</style> 
15 
16<#assign structureService = serviceLocator.findService("it.inera.structure.service.StructureService")> 
17<#assign attrattoreStructureKey = structureService.getStructureAttrattoreKey()> 
18<#assign attrattoreStructureId = structureService.getStructureAttrattoreId()> 
19<#assign itinerarioStructureKey = structureService.getStructureItinerarioKey()> 
20<#assign itinerarioStructureId = structureService.getStructureItinerarioId()> 
21 
22<#-- GESTIONE RALATED ASSETS IMPORTS--> 
23<#assign journalArticleConverter = serviceLocator.findService("it.inera.journalarticleconverter.service.JournalArticleConverter")> 
24<#assign searchService = serviceLocator.findService("it.inera.structure.search.service.SearchService")> 
25<#-- FINE GESTIONE RALATED ASSETS IMPORTS--> 
26 
27<#assign elasticService = serviceLocator.findService("it.inera.elastic.service.ElasticService")> 
28<#assign journalArticleId = .vars['reserved-article-id'].data/> 
29 
30<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
31<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
32<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
33 
34<#assign vocabularyIdUmbria = structureService.getVocabularyIdByVocabularyName("Vocabolario Umbria") > 
35<#assign vocabularyIdTerritori = structureService.getVocabularyIdByVocabularyName("Territori") > 
36 
37<#if coordinate_principali.getData()?has_content && coordinate_principali.getData()?trim?length gt 0 > 
38	<#assign coordinatePrincipaliJson = coordinate_principali.getData()?eval > 
39	<#if coordinatePrincipaliJson.latitude?has_content && coordinatePrincipaliJson.latitude?trim?length gt 0 > 
40		<#assign latitude = coordinatePrincipaliJson.latitude?c > 
41	</#if> 
42	<#if coordinatePrincipaliJson.longitude?has_content && coordinatePrincipaliJson.longitude?trim?length gt 0 > 
43		<#assign longitude = coordinatePrincipaliJson.longitude?c > 
44	</#if> 
45<#else> 
46	<#assign latitude = "" > 
47	<#assign longitude = "" > 
48</#if> 
49 
50<#assign currentArticle = journalArticleLocalService.getArticle(groupId, journalArticleId) /> 
51 
52<#-- GESTIONE ASSET LINGUA DI DEFAULT --> 
53<#assign currentObjectDefaultLanguage = journalArticleConverter.getAttrattore(currentArticle, localeUtil.getDefault())> 
54 
55<#-- GESTIONE RALATED ASSETS VALORIZZAZIONE ARRAY--> 
56<#assign currentObject = journalArticleConverter.getItinerario(currentArticle, themeDisplay.getLocale())> 
57<#assign relatedAssets = currentObject.getDirectRelatedAssets()> 
58<#assign relatedResults = []> 
59<#if relatedAssets?? && relatedAssets?has_content> 
60	<#assign relatedResult = searchService.getResponse(relatedAssets, themeDisplay.getLocale(), null, themeDisplay)> 
61	<#if relatedResult?? && relatedResult?has_content> 
62		<#assign relatedResults = relatedResult.getData()> 
63	</#if> 
64</#if> 
65<#-- GESTIONE RALATED ASSETS VALORIZZAZIONE ARRAY--> 
66 
67<#assign titolo1 = "" /> 
68<#assign testo1 = "" /> 
69 
70<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1")?has_content> 
71	<#assign titolo1_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_1") /> 
72	<#list titolo1_custom_field?keys as key> 
73		<#if key == locale> 
74			<#assign titolo1 = titolo1_custom_field?values[key_index] /> 
75		</#if> 
76	</#list> 
77</#if> 
78 
79<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_1")?has_content> 
80	<#assign testo1_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_1") /> 
81	<#list testo1_custom_field?keys as key> 
82		<#if key == locale> 
83			<#assign testo1 = testo1_custom_field?values[key_index] /> 
84		</#if> 
85	</#list> 
86</#if> 
87 
88<#assign titolo2 = "" /> 
89<#assign testo2 = "" /> 
90 
91<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_2")?has_content> 
92	<#assign titolo2_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_2") /> 
93	<#list titolo2_custom_field?keys as key> 
94		<#if key == locale> 
95			<#assign titolo2 = titolo2_custom_field?values[key_index] /> 
96		</#if> 
97	</#list> 
98</#if> 
99 
100<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_2")?has_content> 
101	<#assign testo2_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_2") /> 
102	<#list testo2_custom_field?keys as key> 
103		<#if key == locale> 
104			<#assign testo2 = testo2_custom_field?values[key_index] /> 
105		</#if> 
106	</#list> 
107</#if> 
108 
109<#assign titolo3 = "" /> 
110<#assign testo3 = "" /> 
111 
112<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("titolo_fascia_3")?has_content> 
113	<#assign titolo3_custom_field = currentArticle.getExpandoBridge().getAttribute("titolo_fascia_3") /> 
114	<#list titolo3_custom_field?keys as key> 
115		<#if key == locale> 
116			<#assign titolo3 = titolo3_custom_field?values[key_index] /> 
117		</#if> 
118	</#list> 
119</#if> 
120 
121<#if currentArticle.getExpandoBridge()?? && currentArticle.getExpandoBridge().getAttribute("testo_fascia_3")?has_content> 
122	<#assign testo3_custom_field = currentArticle.getExpandoBridge().getAttribute("testo_fascia_3") /> 
123	<#list testo3_custom_field?keys as key> 
124		<#if key == locale> 
125			<#assign testo3 = testo3_custom_field?values[key_index] /> 
126		</#if> 
127	</#list> 
128</#if> 
129 
130<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
131<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
132<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
133 
134<#assign categoryList = assetCategoryLocalService.getAssetEntryAssetCategories(currentArticleAssetEntryId) > 
135 
136<#assign categoryListIds = [] > 
137<#assign municipalityName = "" > 
138<#assign municipalityNames = [] > 
139<#assign municipalityNamesString = "" > 
140<#assign territoryNameString = "" > 
141<#assign isTerritorio = false > 
142 
143<#list categoryList as category> 
144	<#assign categoryListIds = categoryListIds + [category.getCategoryId()]> 
145</#list> 
146 
147<#list categoryList as category> 
148	<#if vocabularyIdTerritori == category.getVocabularyId() > 
149		<#assign municipalityName = category.getTitle(themeDisplay.getLanguageId()) > 
150 
151		<#assign childCategories = assetCategoryLocalService.getChildCategories(category.getCategoryId()) > 
152		<#if childCategories?has_content> 
153			<#assign territoryNameString = category.getTitle(themeDisplay.getLanguageId())> 
154			<#list childCategories as curChildCategory> 
155				<#assign isTerritorio = true > 
156				<#assign municipalityNameC = curChildCategory.getTitle(themeDisplay.getLanguageId()) > 
157				<#if curChildCategory?counter != 1 || municipalityNamesString?has_content> 
158					<#assign municipalityNamesString = municipalityNamesString + "," + municipalityNameC> 
159				<#else> 
160					<#assign municipalityNamesString = municipalityNamesString + municipalityNameC> 
161				</#if> 
162				<#assign municipalityNames = municipalityNames + [municipalityNameC]> 
163			</#list> 
164		<#else> 
165			<#assign municipalityNames = municipalityNames + [municipalityName]> 
166			<#if municipalityNamesString?has_content> 
167				<#assign municipalityNamesString = municipalityNamesString + "," + municipalityName> 
168			<#else> 
169				<#assign municipalityNamesString = municipalityNamesString + municipalityName> 
170			</#if> 
171		</#if> 
172	</#if> 
173</#list> 
174 
175<#if !municipalityName?has_content> 
176	<#if comune.getSiblings()?has_content> 
177		<#list comune.getSiblings() as cur_comune> 
178			<#assign municipalityName = cur_comune.getData() > 
179			<#break> 
180		</#list> 
181	</#if> 
182</#if> 
183 
184<#if isTerritorio> 
185	<#assign municipalityName = territoryNameString > 
186</#if> 
187 
188 
189<#assign isgu = structureService.isGroupUmbria(themeDisplay)> 
190<#assign sitiESottositiCategories = ""> 
191<#if !isgu> 
192	<#assign sitiESottositiCategories = structureService.getSiteCategoryIdsByVocabularyName(themeDisplay, "Siti-e-sottositi")> 
193</#if> 
194 
195<#assign attrattoriNeiDintorni = []> 
196<#assign itinerariNeiDintorni = []> 
197 
198<#if isgu> 
199	<#attempt> 
200		<#assign attrattoriNeiDintorni = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), attrattoreStructureKey, attrattoreStructureId?c, locale, "12", null, null, journalArticleId, null, null, null) /> 
201		<#recover> 
202	</#attempt> 
203 
204	<#attempt> 
205		<#assign itinerariNeiDintorni = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), itinerarioStructureKey, itinerarioStructureId?c, locale, "6", null, null, journalArticleId, null, null, null) /> 
206		<#recover> 
207			<#assign itinerariNeiDintorni = []> 
208	</#attempt> 
209<#else> 
210	<#attempt> 
211		<#assign attrattoriNeiDintorni = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), attrattoreStructureKey, attrattoreStructureId?c, locale, "12", null, sitiESottositiCategories, journalArticleId, null, null, null) /> 
212		<#recover> 
213			<#assign attrattoriNeiDintorni = []> 
214	</#attempt> 
215 
216	<#attempt> 
217		<#assign itinerariNeiDintorni = elasticService.getRelatedArticlesOrderByPriority(themeDisplay, latitude, longitude, distanza.getData(), itinerarioStructureKey, itinerarioStructureId?c, locale, "6", null, sitiESottositiCategories, journalArticleId, null, null, null) /> 
218		<#recover> 
219			<#assign itinerariNeiDintorni = []> 
220	</#attempt> 
221</#if> 
222 
223<#assign widthBannerImg = propsUtil.get("image.scale.fullpage") /> 
224<#assign widthSliderImg = propsUtil.get("image.slider.testobarra.height") /> 
225<#assign tomBaseImagePath = propsUtil.get("tom.base.image.url") /> 
226<#assign widthCardImg = propsUtil.get("image.scale.allpage") /> 
227 
228<#assign urlBanner = immagine_banner.getData() > 
229<#assign testAlternativoImmagineBanner = testo_alternativo_immagine_banner.getData() > 
230<#attempt> 
231	<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getImmagineBanner()?has_content> 
232		<#assign urlBanner = currentObjectDefaultLanguage.getImmagineBanner().getUrl() > 
233	</#if> 
234	<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getTestoAlternativoImmagineBanner()?has_content> 
235		<#assign testAlternativoImmagineBanner = currentObjectDefaultLanguage.getTestoAlternativoImmagineBanner() > 
236	</#if> 
237	<#recover> 
238		<#assign urlBanner = immagine_banner.getData() > 
239		<#assign testAlternativoImmagineBanner = testo_alternativo_immagine_banner.getData() > 
240</#attempt> 
241 
242<#if !testAlternativoImmagineBanner?? || !testAlternativoImmagineBanner?trim?has_content> 
243	<#if titolo.getData()?? && titolo.getData()?has_content> 
244		<#assign testAlternativoImmagineBanner = "Titolo: "+ titolo.getData()> 
245	</#if> 
246</#if> 
247 
248<div class="container-fluid"> 
249	<div class="row"> 
250		<div class="header-block header-block-1 padding-top-em-5 padding-bottom-em-5 header-block-image-main"> 
251			<img class="bg" src="${urlBanner}?width=${widthBannerImg}" alt="${testAlternativoImmagineBanner}"> 
252			<div class="container title title-main"> 
253				<div class="row"> 
254					<div class="col-12"> 
255					</div> 
256				</div> 
257			</div> 
258		</div> 
259		<#assign lang = themeDisplay.getLanguageId()> 
260		<#if lang?contains("_")> 
261			<#assign lang = lang?split("_")[0]> 
262		</#if> 
263		<div class="map map-container map-container-header hidden"> 
264			<div class="map-content"> 
265				<div class="leaflet-interactive-map map-summary-results" 
266					 id="header-map" 
267					 data-results="${themeDisplay.getPortalURL()}/o/geolocation/get-positions?articleId=${journalArticleId}&languageId=${lang}" 
268					 data-config="{&quot;clustering&quot;:true}"></div> 
269			</div> 
270		</div> 
271	</div> 
272</div> 
273 
274<#assign titleParentCategory = ""> 
275<#assign titleCategory = ""> 
276<#attempt> 
277	<#list categoryList as category> 
278		<#if vocabularyIdUmbria == category.getVocabularyId() > 
279			<#assign titleCategory = category.getTitle(themeDisplay.getLocale())> 
280			<#assign parentCategoryId = category.getParentCategoryId()> 
281			<#if parentCategoryId?? && parentCategoryId?has_content> 
282				<#assign pc = assetCategoryLocalService.getCategory(parentCategoryId) > 
283				<#if pc?? && pc?has_content> 
284					<#assign titleParentCategory = pc.getTitle("it_IT")> 
285				</#if> 
286			</#if> 
287			<#if titleCategory?? && titleCategory?has_content> 
288			<#--				<span class="hidden" id="tagmanager-item_category">${titleParentCategory}</span>--> 
289			<#--				<span class="hidden" id="tagmanager-item_category2">${titleCategory}</span>--> 
290				<span class="hidden" id="tagmanager_init_pagegroup">${titleParentCategory}</span> 
291				<span class="hidden" id="tagmanager_init_pagecategory">${titleCategory}</span> 
292			</#if> 
293		</#if> 
294	</#list> 
295	<#recover> 
296</#attempt> 
297 
298<div class="container-fluid bg-white"> 
299	<div class="row"> 
300		<article class="container bridge bg-white translate-top-md-rem-5 translate-top-lg-rem-10"> 
301			<div class="row"> 
302				<div class="col-12"> 
303					<div class="text-left link-back-container margin-left-rem-1"><a style="color:#919191;" class="link-1 link-back margin-top-em-2 padding-left-rem-1" id="backLink" href="#"><i class="im im-angle-left"></i><span class="hidden display-inline-lg"><@liferay.language key="label.indietro" /></span></a></div> 
304					<div class="text-center padding-top-em-2"> 
305						<div style="color:#919191;" class="link-1 link-toggle-map" data-target="#header-map" data-inactive="<@liferay.language key="label.visualizza.sulla.mappa" />" data-active="<@liferay.language key="label.visualizza.foto" />"><@liferay.language key="label.visualizza.sulla.mappa" /></div> 
306					</div> 
307					<div class="link-tripplanner-container"> 
308						<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
309						<a data-id="${journalArticleId}" class="link link-tripplanner link-tripplanner-extended link-tripplanner-top-right margin-right-em-1 padding-right-rem-1" href="${currentUrl}" data-tom="false"> 
310							<i class="far fa-heart text-red"></i> 
311							<i class="fas fa-heart text-red" style="display:none"></i> 
312							<span class="label hidden display-inline-lg"><@liferay.language key="label.aggiungi.al.mio.viaggio" /></span> 
313						</a> 
314					</div> 
315					<div class="hidden infos"> 
316						<div class="hidden" id="tagmanager_item_"> 
317							<span id="tagmanager_item_id">${currentArticleAssetEntryId}</span> 
318							<span id="tagmanager_item_category">${titleParentCategory}</span> 
319							<span id="tagmanager_item_name">${titolo.getData()}</span> 
320							<span id="tagmanager_item_list_name"></span> 
321							<span id="tagmanager_item_list_id"></span> 
322							<span id="tagmanager_item_brand">${titleParentCategory}</span> 
323							<span id="tagmanager_index">1</span> 
324						</div> 
325					</div> 
326 
327				</div> 
328				<div class="col-12 col-md-10 offset-md-1"> 
329					<div class="text-block text-block-center"> 
330 
331						<h1 class="title-2 margin-top-em-0">${titolo.getData()}</h1> 
332						<div class="text text-block-left padding-top-em-1">${descrizione.getData()}</div> 
333					</div> 
334				</div> 
335			</div> 
336		</article> 
337	</div> 
338</div> 
339 
340 
341<#if descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content && descrizione_immagine.getSiblings()?size gt 0 && descrizione_immagine.getSiblings()[0].immagine.getData()?? && descrizione_immagine.getSiblings()[0].immagine.getData()?has_content> 
342	<div class="container-fluid bg-white"> 
343		<div class="row"> 
344			<div class="carousel-container carousel-no-ctrl transparent margin-top-md-em-minus-4 margin-top-lg-em-minus-9 margin-bottom-em-1 tns-overflow-show carousel-image-slide carousel-draggable"> 
345				<div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;autoWidth&quot;:true,&quot;items&quot;:2,&quot;autoplay&quot;:false,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;992&quot;:{&quot;items&quot;:4}}}"> 
346					<#if descrizione_immagine?? && descrizione_immagine.getSiblings()?has_content> 
347					<#-- immagini della document library presenti --> 
348						<#list descrizione_immagine.getSiblings() as cur_descrizione_immagine> 
349							<div class="item-with-caption"> 
350 
351								<#assign linkImmagine = ""> 
352								<#if cur_descrizione_immagine.immagine.getData()?contains("?")> 
353									<#assign linkImmagine = cur_descrizione_immagine.immagine.getData() + "&width=" + widthSliderImg > 
354								<#else> 
355									<#assign linkImmagine = cur_descrizione_immagine.immagine.getData() + "?width=" + widthSliderImg > 
356								</#if> 
357 
358								<img class="slide-image" src="${linkImmagine}" alt="${cur_descrizione_immagine.testo_alternativo.getData()}"> 
359								<#if cur_descrizione_immagine.didascalia.getData()?? && cur_descrizione_immagine.didascalia.getData()?has_content && cur_descrizione_immagine.didascalia.getData()?trim?length gt 0 && cur_descrizione_immagine.didascalia.getData()?trim != "null"> 
360									<p class="caption">${cur_descrizione_immagine.didascalia.getData()}</p> 
361								</#if> 
362							</div> 
363						</#list> 
364					</#if> 
365				</div> 
366			</div> 
367		</div> 
368	</div> 
369<#else> 
370	<#attempt> 
371		<#if currentObjectDefaultLanguage?? && currentObjectDefaultLanguage?has_content && currentObjectDefaultLanguage.getImmagini()?has_content> 
372			<div class="container-fluid bg-white"> 
373				<div class="row"> 
374					<div class="carousel-container carousel-no-ctrl transparent margin-top-md-em-minus-4 margin-top-lg-em-minus-9 margin-bottom-em-1 tns-overflow-show carousel-image-slide carousel-draggable"> 
375						<div class="tns-carousel tns-carousel-no-ctrl" data-tns-config="{&quot;autoWidth&quot;:true,&quot;items&quot;:2,&quot;autoplay&quot;:false,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;992&quot;:{&quot;items&quot;:4}}}"> 
376							<#list currentObjectDefaultLanguage.getImmagini() as imm> 
377								<div class="item-with-caption"> 
378									<#if imm.getImmagine()?? && imm.getImmagine()?has_content && imm.getImmagine().getUrl()?? && imm.getImmagine().getUrl()?has_content> 
379										<img class="slide-image" src="${imm.getImmagine().getUrl()}?width=${widthSliderImg}" alt="${imm.getTestoAlternativo()}"> 
380										<#if imm.getDidascalia()?? && imm.getDidascalia()?has_content && imm.getDidascalia()?trim?length gt 0 && imm.getDidascalia()?trim != "null"> 
381											<p class="caption">${imm.getDidascalia()}</p> 
382										</#if> 
383									</#if> 
384								</div> 
385							</#list> 
386						</div> 
387					</div> 
388				</div> 
389			</div> 
390		</#if> 
391		<#recover> 
392 
393	</#attempt> 
394</#if> 
395 
396<div class="container-fluid bg-white"> 
397	<div class="row"> 
398		<div class="container"> 
399			<div class="row"> 
400				<div class="col-12 col-md-10 offset-md-1"> 
401					<div class="text-block text-block-center"> 
402						<div class="text text-block-left"> 
403							${descrizione_due.getData()} 
404						</div> 
405 
406						<#if sicurezza.getData()?? && sicurezza.getData()?has_content && sicurezza.getData()?trim?length gt 0 && sicurezza.getData()?trim != "null"> 
407							<div class="text text-block-left"> 
408								<strong>Sicurezza</strong> 
409								${sicurezza.getData()} 
410							</div> 
411						</#if> 
412 
413						<#assign showdates = false> 
414 
415						<#if descrizione_orario.getSiblings()?has_content> 
416							<#list descrizione_orario.getSiblings() as cur_descrizione_orario> 
417								<#if cur_descrizione_orario.getData()?? && cur_descrizione_orario.getData()?has_content && cur_descrizione_orario.getData()?trim?length gt 0 && cur_descrizione_orario.getData()?trim != "null"> 
418									<#if cur_descrizione_orario.orario_apertura.getData()?? && cur_descrizione_orario.orario_apertura.getData()?has_content && cur_descrizione_orario.orario_apertura.getData()?trim?length gt 0 && cur_descrizione_orario.orario_apertura.getData()?trim != "null"> 
419										<#assign showdates = true> 
420									</#if> 
421								</#if> 
422							</#list> 
423						</#if> 
424 
425 
426						<#if descrizione_orario.getSiblings()?has_content> 
427							<#if showdates> 
428								<div class="text text-block-left"> 
429									<strong><@liferay.language key="label.orari" /></strong> 
430								</div> 
431							</#if> 
432							<#list descrizione_orario.getSiblings() as cur_descrizione_orario> 
433								<#if cur_descrizione_orario.getData()?? && cur_descrizione_orario.getData()?has_content && cur_descrizione_orario.getData()?trim?length gt 0 && cur_descrizione_orario.getData()?trim != "null"> 
434									<div class="text text-block-left"> 
435										${cur_descrizione_orario.getData()} 
436									</div> 
437									<#assign curorarioapertura = ""> 
438									<#if cur_descrizione_orario.orario_apertura.getData()?? && cur_descrizione_orario.orario_apertura.getData()?has_content && cur_descrizione_orario.orario_apertura.getData()?trim?length gt 0 && cur_descrizione_orario.orario_apertura.getData()?trim != "null"> 
439										<#assign curorarioapertura = cur_descrizione_orario.orario_apertura.getData()> 
440									</#if> 
441 
442									<#assign curorariochiusura = ""> 
443									<#if cur_descrizione_orario.orario_chiusura.getData()?? && cur_descrizione_orario.orario_chiusura.getData()?has_content && cur_descrizione_orario.orario_chiusura.getData()?trim?length gt 0 && cur_descrizione_orario.orario_chiusura.getData()?trim != "null"> 
444										<#assign curorariochiusura = cur_descrizione_orario.orario_chiusura.getData()> 
445									</#if> 
446 
447									<#if curorarioapertura?? && curorarioapertura?has_content && curorariochiusura?? && curorariochiusura?has_content> 
448										<div class="text text-block-left"> 
449											${curorarioapertura} - ${curorariochiusura} 
450										</div> 
451									<#elseif curorarioapertura?? && curorarioapertura?has_content> 
452										<div class="text text-block-left"> 
453											${curorarioapertura} 
454										</div> 
455									</#if> 
456 
457								</#if> 
458							</#list> 
459						</#if> 
460 
461						<#attempt> 
462 
463							<#assign hasvideoaccessibilita = false> 
464							<#if titolo_link_video_youtube.getSiblings()?has_content> 
465								<#list titolo_link_video_youtube.getSiblings() as cur_titolo_link_video_youtube> 
466									<#if cur_titolo_link_video_youtube.getData()?? && cur_titolo_link_video_youtube.getData()?has_content && cur_titolo_link_video_youtube.getData()?trim?length gt 0 && cur_titolo_link_video_youtube.getData()?trim != "null"> 
467										<#if cur_titolo_link_video_youtube.link_video_youtube.getData()?? && cur_titolo_link_video_youtube.link_video_youtube.getData()?has_content && cur_titolo_link_video_youtube.link_video_youtube.getData()?trim?length gt 0 && cur_titolo_link_video_youtube.link_video_youtube.getData()?trim != "null"> 
468											<#assign hasvideoaccessibilita = true> 
469											<#break> 
470										</#if> 
471									</#if> 
472								</#list> 
473							</#if> 
474 
475							<#if (informazioni_utili.getData()?? && informazioni_utili.getData()?has_content && informazioni_utili.getData() != "null") 
476							|| (accessibilita.getData()?? && accessibilita.getData()?has_content && accessibilita.getData() != "null") 
477							|| (come_raggiungere_struttura.getData()?? && come_raggiungere_struttura.getData()?has_content && come_raggiungere_struttura.getData() != "null") 
478							|| (muoversi_interno_struttura.getData()?? && muoversi_interno_struttura.getData()?has_content && muoversi_interno_struttura.getData() != "null") 
479							|| (fruizione_dei_contenuti.getData()?? && fruizione_dei_contenuti.getData()?has_content && fruizione_dei_contenuti.getData() != "null") 
480							|| (caratteristiche_servizi_igienici.getData()?? && caratteristiche_servizi_igienici.getData()?has_content && caratteristiche_servizi_igienici.getData() != "null") 
481							|| (audio_accessibilita.getData()?? && audio_accessibilita.getData()?has_content && audio_accessibilita.getData() != "null") 
482							|| hasvideoaccessibilita> 
483 
484								<div id="div-accessibilita" class="accessibilita text-block-expandable collapsed-accessibility padding-bottom-em-2"> 
485 
486									<div class="text-block text-block-center"> 
487										<div class="title-2"><@liferay.language key="label.informazioniutili.e.accessibilita" /></div> 
488									</div> 
489 
490									<!-- Informazioni Utili --> 
491									<#if informazioni_utili.getData()?? && informazioni_utili.getData()?has_content && informazioni_utili.getData() != "null"> 
492										<div class="text text-block-left"> 
493											<div class="text font-weight-bold"><@liferay.language key="label.informazioni.utili" />:</div> 
494											<p>${informazioni_utili.getData()}</p> 
495											<br> 
496										</div> 
497										<br> 
498									</#if> 
499 
500									<!-- Accessibilità --> 
501									<#if accessibilita.getData()?? && accessibilita.getData()?has_content && accessibilita.getData() != "null"> 
502										<div class="text text-block-left"> 
503											<div class="text font-weight-bold"><@liferay.language key="label.accessibilita" />:</div> 
504											<strong><p>${accessibilita.getData()}</p></strong> 
505											<br> 
506										</div> 
507										<br> 
508									</#if> 
509 
510									<!-- Come Raggiungere la Struttura --> 
511									<#if come_raggiungere_struttura.getData()?? && come_raggiungere_struttura.getData()?has_content && come_raggiungere_struttura.getData() != "null"> 
512										<div class="text text-block-left"> 
513											<div class="text font-weight-bold"><@liferay.language key="label.come.raggiungere.la.struttura" />:</div> 
514											<strong><p>${come_raggiungere_struttura.getData()}</p></strong> 
515											<br> 
516										</div> 
517										<br> 
518									</#if> 
519 
520									<#if muoversi_interno_struttura.getData()?? && muoversi_interno_struttura.getData()?has_content && muoversi_interno_struttura.getData() != "null"> 
521										<div class="text text-block-left"> 
522											<div class="text font-weight-bold"><@liferay.language key="label.muoversi.nella.struttura" />:</div> 
523											<p>${muoversi_interno_struttura.getData()}</p> 
524											<br> 
525										</div> 
526										<br> 
527									</#if> 
528 
529									<!-- Fruizione dei Contenuti --> 
530									<#if fruizione_dei_contenuti.getData()?? && fruizione_dei_contenuti.getData()?has_content && fruizione_dei_contenuti.getData() != "null"> 
531										<div class="text text-block-left"> 
532											<div class="text font-weight-bold"><@liferay.language key="label.fruizione.contenuti" />:</div> 
533											<p>${fruizione_dei_contenuti.getData()}</p> 
534											<br> 
535										</div> 
536										<br> 
537									</#if> 
538 
539									<!-- Caratteristiche Servizi Igienici --> 
540									<#if caratteristiche_servizi_igienici.getData()?? && caratteristiche_servizi_igienici.getData()?has_content && caratteristiche_servizi_igienici.getData() != "null"> 
541										<div class="text text-block-left"> 
542											<div class="text font-weight-bold"><@liferay.language key="label.caratteristiche.servizi.igienici" />:</div> 
543											<p>${caratteristiche_servizi_igienici.getData()}</p> 
544											<br> 
545										</div> 
546										<br> 
547									</#if> 
548 
549									<#if titolo_link_video_youtube.getSiblings()?has_content> 
550										<#list titolo_link_video_youtube.getSiblings() as cur_titolo_link_video_youtube> 
551											<#if cur_titolo_link_video_youtube.getData()?? && cur_titolo_link_video_youtube.getData()?has_content && cur_titolo_link_video_youtube.getData()?trim?length gt 0 && cur_titolo_link_video_youtube.getData()?trim != "null"> 
552												<div class="text text-left font-weight-bold padding-bottom-em-2 mt-5">${cur_titolo_link_video_youtube.getData()}</div> 
553												<#if cur_titolo_link_video_youtube.link_video_youtube.getData()?? && cur_titolo_link_video_youtube.link_video_youtube.getData()?has_content && cur_titolo_link_video_youtube.link_video_youtube.getData()?trim?length gt 0 && cur_titolo_link_video_youtube.link_video_youtube.getData()?trim != "null"> 
554													<iframe width="100%" height="315" src="${cur_titolo_link_video_youtube.link_video_youtube.getData()}" title="${cur_titolo_link_video_youtube.getData()}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> 
555												</#if> 
556											</#if> 
557										</#list> 
558									</#if> 
559 
560									<#if audio_accessibilita.getData()?? && audio_accessibilita.getData()?has_content && 
561									audio_accessibilita.getData()?trim?length gt 0 && audio_accessibilita.getData()?trim != "null"> 
562										<div> 
563											<div class="text text-left font-weight-bold padding-bottom-em-2 mt-5"><@liferay.language key="label.audio.descrizione"/></div> 
564											<div class="text text-left"> 
565												<audio controls preload="none" style="width:100%;"> 
566													<source src="${audio_accessibilita.getData()}" type="audio/ogg"> 
567													<source src="${audio_accessibilita.getData()}" type="audio/mpeg"> 
568												</audio> 
569											</div> 
570										</div> 
571									</#if> 
572 
573 
574								</div> 
575								<div id="toggle-accessibilita" class="margin-top-em-2 margin-bottom-em-4 btn btn-flat btn-red btn-default btn-small btn-text-block-expand show-more" data-showmore="<@liferay.language key="label.informazioniutili.e.accessibilita" />" data-showless="<@liferay.language key="label.informazioniutili.e.accessibilita" />"><@liferay.language key="label.informazioniutili.e.accessibilita" /></div> 
576							</#if> 
577							<#recover> 
578 
579						</#attempt> 
580 
581					</div> 
582				</div> 
583			</div> 
584		</div> 
585	</div> 
586 
587	<div class="container-fluid bg-white"> 
588		<div class="row"> 
589			<div class="container"> 
590				<div class="row"> 
591					<div class="col-12 col-md-10 offset-md-1"> 
592						<div class="text-block text-block-center"> 
593							<div class="title-2"> 
594								<#if titolo1?has_content && titolo1?trim?length gt 0 > 
595									${titolo1} 
596								<#else> 
597									<@liferay.language key="label.esplora.i.dintorni" /> 
598								</#if> 
599							</div> 
600							<div class="text"> 
601								<#if testo1?has_content && testo1?trim?length gt 0 > 
602									${testo1} 
603								<#else> 
604									<@liferay.language key="label.principali.attrazioni" /> 
605								</#if> 
606							</div> 
607						</div> 
608					</div> 
609				</div> 
610			</div> 
611		</div> 
612	</div> 
613 
614	<div class="container-fluid bg-white"> 
615		<div class="row"> 
616			<div class="container bridge bridge-md-bottom margin-top-em-2 margin-bottom-em-2 margin-top-md-em-minus-10 margin-bottom-md-em-0"> 
617				<div class="row"> 
618					<div class="col-12"> 
619						<div class="carousel-container transparent carousel-no-nav"> 
620							<div class="tns-carousel tns-carousel-default" data-tns-config="{&quot;nav&quot;:false,&quot;loop&quot;:true,&quot;items&quot;:2,&quot;responsive&quot;:{&quot;768&quot;:{&quot;items&quot;:3},&quot;991&quot;:{&quot;items&quot;:4}}}"> 
621								<#list attrattoriNeiDintorni as relatedCoord> 
622									<#assign langId = themeDisplay.getLanguageId() /> 
623									<#assign contentGroupId = relatedCoord.getGroupId() /> 
624									<#assign contentByLocale = relatedCoord.getContentByLocale(themeDisplay.getLanguageId()) /> 
625									<#assign document = saxReaderUtil.read(contentByLocale) > 
626									<#assign rootElement = document.getRootElement()> 
627 
628									<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
629									<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
630 
631									<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
632									<#assign relatedSottotitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
633 
634									<#assign xPathCoordinatePrincipali = saxReaderUtil.createXPath("dynamic-element[@name='coordinate_principali']")> 
635									<#assign relatedCoordinatePrincipali = xPathCoordinatePrincipali.selectSingleNode(rootElement).getStringValue()> 
636 
637									<#if relatedCoordinatePrincipali?has_content && relatedCoordinatePrincipali?trim?length gt 0 > 
638										<#assign coordinatePrincipaliRelatedJson = relatedCoordinatePrincipali?eval > 
639										<#assign latitudeRelated = coordinatePrincipaliRelatedJson.latitude > 
640										<#assign longitudeRelated = coordinatePrincipaliRelatedJson.longitude > 
641									<#else> 
642										<#assign latitudeRelated = "" > 
643										<#assign longitudeRelated = "" > 
644									</#if> 
645 
646									<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
647									<#assign relatedImmagineBanner = "" > 
648 
649									<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
650										<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
651											<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
652										</#if> 
653									</#if> 
654 
655									<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
656									<#assign relatedTestoAlternativoImmagineBanner = "" > 
657									<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
658										<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
659											<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
660										</#if> 
661									</#if> 
662 
663 
664									<#if !relatedTestoAlternativoImmagineBanner?? || !relatedTestoAlternativoImmagineBanner?trim?has_content || relatedTestoAlternativoImmagineBanner?trim == "null"> 
665										<#if relatedTitolo?? && relatedTitolo?has_content> 
666											<#assign relatedTestoAlternativoImmagineBanner = relatedTitolo?trim> 
667										</#if> 
668									</#if> 
669 
670 
671									<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
672										<#assign immagineBannerJson = relatedImmagineBanner?eval > 
673										<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
674									<#else> 
675										<#assign url = "" > 
676									</#if> 
677 
678									<div> 
679										<div class="card card-type-asset image-card card-2 no-desc card-small card-geolocalized card-territory" data-lat="${latitudeRelated}" data-lng="${longitudeRelated}" data-url="/-/${relatedCoord.getUrlTitle(locale)}" data-title="${relatedTitolo}"> 
680											<#if contentGroupId = groupId> 
681											<#assign detailBaseUrl = structureService.getSiteBaseUrl(themeDisplay)> 
682											<#assign langID = themeDisplay.getLanguageId()> 
683											<#if langID?has_content && langID?contains("_")> 
684												<#assign langID = langID?split("_")[0]> 
685											</#if> 
686											<a class="aspect-ratio card-item-first aspect-ratio-16-20" href="${detailBaseUrl}/-/${relatedCoord.getUrlTitle(locale)}" draggable data-id="${relatedCoord.getArticleId()}" data-tom="false"> 
687												<#else> 
688												<#assign detailBaseUrl = searchService.getDetailBaseUrlNoMinus(themeDisplay, groupId)> 
689												<a class="aspect-ratio card-item-first aspect-ratio-16-20" href="${detailBaseUrl}/search/-/search/attrazione/${relatedCoord.getUrlTitle(locale)}_${contentGroupId}" draggable data-id="${relatedCoord.getArticleId()}" data-tom="false"> 
690													</#if> 
691													<img class="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-fluid" src="${url}" alt="Immagine: ${relatedTestoAlternativoImmagineBanner}"> 
692													<span class="sticker sticker-bottom-left"> 
693    			                  		        <div class="title title-4"> 
694    			                  		            ${relatedTitolo} 
695    			                  		        </div> 
696    			                    	        <div class="text description"></div> 
697    			                            </span> 
698												</a> 
699										</div> 
700									</div> 
701								</#list> 
702							</div> 
703						</div> 
704					</div> 
705				</div> 
706			</div> 
707 
708 
709			<#assign non_visualizzare_la_mappa = non_visualizzare_la_mappa!false> 
710 
711			<#if non_visualizzare_la_mappa?is_hash> 
712				<#assign non_visualizzare_la_mappa_value = non_visualizzare_la_mappa.getData()?trim> 
713				<#if non_visualizzare_la_mappa_value?has_content> 
714					<#assign non_visualizzare_la_mappa_bool = non_visualizzare_la_mappa_value?boolean> 
715				<#else> 
716					<#assign non_visualizzare_la_mappa = false> 
717					<#assign non_visualizzare_la_mappa_bool = false> 
718				</#if> 
719			<#else> 
720				<#assign non_visualizzare_la_mappa_bool = false> 
721			</#if> 
722 
723			<#if non_visualizzare_la_mappa_bool> 
724				<!-- mappa non visualizzata --> 
725				<div style="height: 200px; width: 100%; background-color: white;"></div> 
726			<#else> 
727				<div class="map map-container map-banner"> 
728					<div class="map-content"> 
729						<div class="leaflet-interactive-map map-summary-territories" id="map-detail" data-kml="../undefined"></div> 
730					</div> 
731				</div> 
732			</#if> 
733		</div> 
734	</div> 
735 
736	<#assign lang = "it"/> 
737	<#if themeDisplay.getLanguageId()?contains("_")> 
738		<#assign lang = themeDisplay.getLanguageId()?split("_")[0]/> 
739	<#else> 
740		<#assign lang = themeDisplay.getLanguageId()/> 
741	</#if> 
742	<#assign tomApi = serviceLocator.findService("it.inera.tom.api.TOMAPI")> 
743 
744	<#if municipalityNames?has_content && municipalityNames?size gt 0 && lang?has_content && lang?trim?length gt 0 && tomApi?has_content> 
745 
746		<#assign offerResults = [] /> 
747		<#attempt> 
748			<#assign offerResults = tomApi.getJsonOffersListResultByMunicipalities(municipalityNames, lang) /> 
749			<#recover> 
750 
751		</#attempt> 
752 
753 
754		<#if offerResults?? && offerResults?has_content> 
755			<#assign offerResponse = offerResults.getResponse()> 
756			<#if offerResponse?? && offerResponse?has_content> 
757				<#assign offerResults = offerResponse.getResults()> 
758				<#if offerResults?? && offerResults?has_content> 
759					<aside class="container-fluid bg-white" id="hideable"> 
760						<div class="row"> 
761							<div class="container padding-top-em-3"> 
762								<div class="row"> 
763									<div class="col-12 col-md-10 offset-md-1 margin-bottom-lg-em-0 margin-bottom-em-2"> 
764										<div class="text-block text-block-center"> 
765											<div class="title-2"> 
766												<#if municipalityName?has_content> 
767													<#if isTerritorio> 
768														<@liferay.language key="label.le.migliori.offerte.nel" /> ${municipalityName} 
769													<#else> 
770														<@liferay.language key="label.le.migliori.offerte.a" /> ${municipalityName} 
771													</#if> 
772												<#else> 
773													<@liferay.language key="label.le.migliori.offerte" /> 
774												</#if> 
775											</div> 
776											<div class="text"> 
777												<@liferay.language key="label.proposte.vivere.umbria" /> 
778											</div> 
779										</div> 
780									</div> 
781								</div> 
782 
783								<div class="row"> 
784									<div class="col-12"> 
785										<div class="d-flex flex-justify-content-end"> 
786											<a class="link-showall" href="/offerte-luogo?municipality=${municipalityNamesString}&territory=${territoryNameString}"><@liferay.language key="label.vedi.tutte" /> 
787												<i class="fas fa-angle-right"></i> 
788											</a> 
789										</div> 
790									</div> 
791									<div class="col-12"> 
792										<div class="row"> 
793											<div class="col-12 padding-bottom-em-3"> 
794												<div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
795													<div class="tns-carousel tns-carousel-default"> 
796														<#list offerResults as offerResult> 
797															<#if offerResult.getGalleries()?has_content && offerResult.getGalleries().getImages()?has_content 
798															&& offerResult.getGalleries().getImages()?size gt 0 
799															&& offerResult.getGalleries().getImages()[0].getFile()?has_content> 
800																<div> 
801																	<div class="card card-1 card-offerta has-info-commercial"> 
802																		<a class="card-link" href="/dettaglio-offerta/-/dettaglio/${offerResult.getSlug()}_${offerResult.getId()}_${offerResult.getType()}" aria-label="${offerResult.getTitle()}"></a> 
803																		<div class="card-header"> 
804 
805																			<div class="hidden" id="tagmanager_item_card"> 
806																				<span id="tagmanager_item_id">${offerResult.getId()}</span> 
807																				<span id="tagmanager_item_category_card">${titleParentCategory}</span> 
808																				<span id="tagmanager_item_category2_card">${titleCategory}</span> 
809																				<span id="tagmanager_item_name">${offerResult.getTitle()}</span> 
810																				<span id="tagmanager_item_list_name_card"> 
811																				<#if municipalityName?has_content> 
812																					<#if isTerritorio> 
813																						Le migliori offerte nel ${municipalityName} 
814																					<#else> 
815																						Le migliori offerte a ${municipalityName} 
816																					</#if> 
817																				<#else> 
818																					Le migliori offerte per te 
819																				</#if> 
820																			</span> 
821																				<span id="tagmanager_item_list_id"></span> 
822																				<span id="tagmanager_item_variant"> 
823 
824																				<#if offerResult.getDuration()?has_content && offerResult.getDuration().getCount()?has_content && offerResult.getDuration().getType()?has_content> 
825																					${offerResult.getDuration().getCount()} ${offerResult.getDuration().getType()} 
826																				<#else> 
827																					&nbsp; 
828																				</#if> 
829 
830																			</span> 
831																				<span id="tagmanager_item_brand">${offerResult.getType()}</span> 
832																				<span id="tagmanager_item_price"> 
833 
834																				<#if offerResult.getMinimumPrice()?has_content && offerResult.getMinimumPrice()!=0> 
835																					${offerResult.getMinimumPrice()} 
836																				<#else> 
837
838																				</#if> 
839 
840																			</span> 
841																				<span id="tagmanager_index">${offerResult_index}</span> 
842																			</div> 
843																			<div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
844																				<#if offerResult.getGalleries()?has_content> 
845																					<#if offerResult.getGalleries().getImages()?has_content && offerResult.getGalleries().getImages()?size gt 0> 
846																						<#assign file = ""/> 
847																						<#assign alt = ""/> 
848																						<#if offerResult.getGalleries().getImages()[0].getFile()?has_content> 
849																							<#assign file = tomBaseImagePath + offerResult.getGalleries().getImages()[0].getFile()/> 
850																						<#else> 
851																							<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
852																						</#if> 
853																						<#if offerResult.getGalleries().getImages()[0].getAlt()?has_content> 
854																							<#assign alt = offerResult.getGalleries().getImages()[0].getAlt()/> 
855																						<#else> 
856																							<#if offerResult.getTitle()?? && offerResult.getTitle()?has_content> 
857																								<#assign alt = "Titolo: " + offerResult.getTitle()?trim/> 
858																							</#if> 
859																						</#if> 
860																						<img src="${file}?params[width]=354" alt="${alt}"> 
861																					</#if> 
862																				<#else> 
863																					<#assign file = "/o/umbria-theme/images/loghi/logo_no_image.png"/> 
864																					<img src="${file}?params[width]=354" alt="logo_no_image"> 
865																				</#if> 
866																			</div> 
867 
868																			<#if offerResult.getType()?? && offerResult.getType()?has_content && offerResult.getType()?trim?length gt 0 && offerResult.getType()?trim != "accommodation"> 
869																				<button class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-detail-type="${offerResult.getType()}/offer" data-id="${offerResult.getId()}" data-tom="true" aria-label="<@liferay.language key="label.aggiungi.elimina.viaggio"/>"> 
870																					<i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none;"></i></a> 
871																				</button> 
872																			<#else> 
873																				<button class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-detail-type="${offerResult.getType()}" data-id="${offerResult.getId()}" data-tom="true" aria-label="<@liferay.language key="label.aggiungi.elimina.viaggio"/>"> 
874																					<i class="far fa-heart text-red"></i><i class="fas fa-heart text-red" style="display:none;"></i></a> 
875																				</button> 
876																			</#if> 
877																			<div class="card-header-info"> 
878																				<div class="card-badges"> 
879																					<div class="badge badge-light-blue"> 
880																						<#if offerResult.getType() == 'guide'> 
881																							<@liferay.language key="label.guide" /> 
882																						</#if> 
883																						<#if offerResult.getType() == 'travelagency'> 
884																							<@liferay.language key="label.pacchetti.turistici" /> 
885																						</#if> 
886																						<#if offerResult.getType() == 'consortium'> 
887																							<@liferay.language key="label.pacchetti.turistici" /> 
888																						</#if> 
889																						<#if offerResult.getType() == 'accommodation'> 
890																							<@liferay.language key="label.accommodation" /> 
891																						</#if> 
892																						<#if offerResult.getType() == 'service'> 
893																							<@liferay.language key="label.esperienze.in.azienda" /> 
894																						</#if> 
895																						<#if offerResult.getType() == 'educationalfarm'> 
896																							<@liferay.language key="label.percorsi.didattici" /> 
897																						</#if> 
898																					</div> 
899																				</div> 
900																				<div class="header-title title-5"> 
901																					${offerResult.getTitle()} 
902																				</div> 
903																			</div> 
904																		</div> 
905																		<#if offerResult?has_content> 
906																			<div class="card-body"> 
907																				<div class="card-body-title title-4"> 
908																					${offerResult.getTitle()} 
909																				</div> 
910																				<#if offerResult.getSubtitle()?has_content> 
911																					<div class="card-body-subtitle"> 
912																						${offerResult.getSubtitle()} 
913																					</div> 
914																				</#if> 
915																			</div> 
916																		</#if> 
917																		<div class="card-info card-info-readmore"> 
918																			<div class="info hidden"><@liferay.language key="label.continua.a.leggere" /></div> 
919																		</div> 
920																		<div class="card-info"> 
921    			                        	                    <span class="info"> 
922    			                        		                    <!--<a href="#" class="text-light-blue text-bold"> 
923    			                        		                            <i class="fas fa-map-pin"></i> 
924    	                        		                            </a>--> 
925    		                        		                    </span> 
926																		</div> 
927																		<div class="card-info card-info-commercial"> 
928																			<#if offerResult.getDuration()?has_content && offerResult.getDuration().getCount()?has_content && offerResult.getDuration().getType()?has_content> 
929																				<div class="info info-commercial"> 
930																					<div class="label"><@liferay.language key="label.durata" /></div> 
931																					<div class="title text-bold"> 
932																						${offerResult.getDuration().getCount()} ${offerResult.getDuration().getType()} 
933																					</div> 
934																				</div> 
935																			<#else> 
936																				<div class="info info-commercial"> 
937																					<div class="label">&nbsp;</div> 
938																					<div class="title text-bold"> 
939																						&nbsp; 
940																					</div> 
941																				</div> 
942																			</#if> 
943																			<div class="info info-commercial"> 
944																				<#if offerResult.getMinimumPrice()?has_content && offerResult.getMinimumPrice()!=0> 
945																					<div class="label"> 
946																						<@liferay.language key="label.a.partire.da" /> 
947																					</div> 
948																					<div class="title text-bold"> 
949																						<@liferay.language key="label.euro" /> ${offerResult.getMinimumPrice()} 
950																					</div> 
951																				<#else> 
952																					<div class="label"> 
953																						<@liferay.language key="label.prezzo.su.richiesta" /> 
954																					</div> 
955																					<div class="title text-bold"> 
956																						&nbsp; 
957																					</div> 
958																				</#if> 
959																			</div> 
960																		</div> 
961																	</div> 
962																</div> 
963															</#if> 
964														</#list> 
965													</div> 
966												</div> 
967											</div> 
968										</div> 
969									</div> 
970								</div> 
971							</div> 
972						</div> 
973					</aside> 
974				</#if> 
975			</#if> 
976		</#if> 
977 
978	</#if> 
979 
980	<#if itinerariNeiDintorni?size gt 0 || relatedResults?size gt 0> 
981		<aside class="container-fluid bg-white"> 
982			<div class="row"> 
983				<div class="container padding-top-em-3"> 
984					<div class="row"> 
985						<div class="col-12 col-md-10 offset-md-1"> 
986							<div class="text-block text-block-center"> 
987								<div class="title-2"> 
988									<#if titolo2?has_content && titolo2?trim?length gt 0 > 
989										${titolo2} 
990									<#else> 
991										<@liferay.language key="label.potrebbe.interessarti.anche" /> 
992									</#if> 
993								</div> 
994								<div class="text"> 
995									<#if testo2?has_content && testo2?trim?length gt 0 > 
996										${testo2} 
997									<#else> 
998										<@liferay.language key="label.scopri.proposte.uniche" /> 
999									</#if> 
1000								</div> 
1001							</div> 
1002						</div> 
1003					</div> 
1004				</div> 
1005			</div> 
1006 
1007			<div class="row"> 
1008				<div class="container padding-top-em-1 padding-bottom-em-5"> 
1009					<div class="row"> 
1010						<div class="col-12"> 
1011							<div class="row"> 
1012								<div class="col-12 padding-bottom-em-3"> 
1013									<div class="carousel-container transparent margin-top-em-1 margin-bottom-em-2"> 
1014										<div class="tns-carousel tns-carousel-default"> 
1015 
1016											<#-- GESTIONE RALATED ASSETS RENDERIZZAZIONE--> 
1017											<#list relatedResults as relatedResult> 
1018												<div> 
1019													<div class="card card-1 card-offerta"> 
1020														<#if contentGroupId = groupId> 
1021															<#assign detailBaseUrl = structureService.getSiteBaseUrl(themeDisplay)> 
1022															<a class="card-link" href="${detailBaseUrl}/-/${relatedCoord.getUrlTitle(locale)}" aria-label="${relatedResult.getTitle()}"></a> 
1023														<#else> 
1024															<#assign detailBaseUrl = searchService.getDetailBaseUrlNoMinus(themeDisplay, groupId)> 
1025															<a class="card-link" href="${detailBaseUrl}/search/-/search/itinerario/${relatedCoord.getUrlTitle(locale)}_${contentGroupId}" aria-label="${relatedResult.getTitle()}"></a> 
1026														</#if> 
1027														<div class="card-header"> 
1028															<div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
1029																<#assign altPotrebbeInteressarti = ""> 
1030																<#if !relatedResult.getImg().getAlt()?? || !relatedResult.getImg().getAlt()?trim?has_content || relatedResult.getImg().getAlt()?trim == "null"> 
1031																	<#if relatedResult.getTitle()?? && relatedResult.getTitle()?has_content> 
1032																		<#assign altPotrebbeInteressarti = relatedResult.getTitle()?trim> 
1033																	</#if> 
1034																</#if> 
1035																<img src="${relatedResult.getImg().getSrc()}" alt="Titolo: ${altPotrebbeInteressarti}"> 
1036															</div> 
1037															<button class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-id="${relatedResult.getId()}" data-tom="false" aria-label="<@liferay.language key="label.aggiungi.elimina.viaggio"/>"> 
1038																<i class="far fa-heart text-red"></i> 
1039																<i class="fas fa-heart text-red" style="display:none"></i> 
1040															</button> 
1041															<div class="card-header-info"> 
1042																<div class="card-badges"> 
1043																	<#assign categoryNames = relatedResult.getHeader().getInfo() > 
1044																	<#list categoryNames as categoryName> 
1045																		<div class="badge badge-red"> 
1046																			${categoryName} 
1047																		</div> 
1048																		<a class="header-title title-5" href="#">${relatedResult.getTitle()}</a> 
1049																	</#list> 
1050																</div> 
1051															</div> 
1052														</div> 
1053														<div class="card-body"> 
1054															<#if contentGroupId = groupId> 
1055															<#assign detailBaseUrl = structureService.getSiteBaseUrl(themeDisplay)> 
1056															<a class="card-link" href="${relatedResult.getHref()}"> 
1057																<#else> 
1058																<#assign detailBaseUrl = searchService.getDetailBaseUrlNoMinus(themeDisplay, groupId)> 
1059																<a class="card-link" href="${detailBaseUrl}/search/-/search/itinerario/${relatedResult.getUrlTitle(locale)}_${contentGroupId}"> 
1060																	</#if> 
1061																	${relatedResult.getTitle()} 
1062																</a> 
1063																<div class="card-body-subtitle"> 
1064																	<#if relatedResult.getSubtitle()?? && relatedResult.getSubtitle()?has_content && relatedResult.getSubtitle()?trim?length gt 0 && relatedResult.getSubtitle()?trim != "null"> 
1065																		${relatedResult.getSubtitle()} 
1066																	</#if> 
1067																</div> 
1068 
1069														</div> 
1070														<div class="card-info"> 
1071															<span class="info"></span> 
1072														</div> 
1073													</div> 
1074												</div> 
1075											</#list> 
1076											<#-- GESTIONE RALATED ASSETS FINE RENDERIZZAZIONE--> 
1077											<#list itinerariNeiDintorni as related> 
1078												<#assign langId = themeDisplay.getLanguageId() /> 
1079												<#assign contentByLocale = related.getContentByLocale(themeDisplay.getLanguageId()) /> 
1080												<#assign contentGroupId = related.getGroupId() /> 
1081												<#assign document = saxReaderUtil.read(contentByLocale) > 
1082												<#assign rootElement = document.getRootElement()> 
1083 
1084												<#assign xPathTitolo = saxReaderUtil.createXPath("dynamic-element[@name='titolo']")> 
1085												<#assign relatedTitolo = xPathTitolo.selectSingleNode(rootElement).getStringValue()> 
1086 
1087												<#assign xPathSottotitolo = saxReaderUtil.createXPath("dynamic-element[@name='sottotitolo']")> 
1088												<#assign relatedSottotitolo = xPathSottotitolo.selectSingleNode(rootElement).getStringValue()> 
1089 
1090												<#assign xPathImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='immagine_banner']")> 
1091												<#assign relatedImmagineBanner = "" > 
1092 
1093												<#if xPathImmagineBanner?? && xPathImmagineBanner?has_content> 
1094													<#if xPathImmagineBanner.selectSingleNode(rootElement)?? && xPathImmagineBanner.selectSingleNode(rootElement)?has_content> 
1095														<#assign relatedImmagineBanner = xPathImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
1096													</#if> 
1097												</#if> 
1098 
1099												<#assign xPathTestoAlternativoImmagineBanner = saxReaderUtil.createXPath("dynamic-element[@name='testo_alternativo_immagine_banner']")> 
1100												<#assign relatedTestoAlternativoImmagineBanner = "" > 
1101												<#if xPathTestoAlternativoImmagineBanner?? && xPathTestoAlternativoImmagineBanner?has_content> 
1102													<#if xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?? && xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement)?has_content> 
1103														<#assign relatedTestoAlternativoImmagineBanner = xPathTestoAlternativoImmagineBanner.selectSingleNode(rootElement).getStringValue()> 
1104													</#if> 
1105												</#if> 
1106 
1107												<#if relatedImmagineBanner?has_content && relatedImmagineBanner?trim?length gt 0 > 
1108													<#assign immagineBannerJson = relatedImmagineBanner?eval > 
1109													<#assign url = "/documents/${immagineBannerJson.groupId}/${immagineBannerJson.classPK}/${immagineBannerJson.title}/${immagineBannerJson.uuid}?width=${widthCardImg}"> 
1110												<#else> 
1111													<#assign url = "" > 
1112												</#if> 
1113 
1114												<#assign resourcePrimKey = related.getResourcePrimKey() /> 
1115												<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
1116												<#assign assetEntryId = assetEntry.getEntryId() /> 
1117 
1118												<#assign categories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntryId) > 
1119 
1120												<#assign categoryNames = [] > 
1121 
1122												<#list categories as category> 
1123													<#if vocabularyIdUmbria == category.getVocabularyId() > 
1124														<#assign categoryNames = categoryNames + [category.getTitle(themeDisplay.getLanguageId())] > 
1125													</#if> 
1126												</#list> 
1127												<div> 
1128													<div class="card card-1 card-offerta"> 
1129														<#if contentGroupId = groupId> 
1130															<#assign detailBaseUrl = structureService.getSiteBaseUrl(themeDisplay)> 
1131															<a class="card-link" href="${detailBaseUrl}/-/${related.getUrlTitle(locale)}" aria-label="${related.getTitle()}"></a> 
1132														<#else> 
1133															<#assign detailBaseUrl = searchService.getDetailBaseUrlNoMinus(themeDisplay, groupId)> 
1134															<a class="card-link" href="${detailBaseUrl}/search/-/search/itinerario/${related.getUrlTitle(locale)}_${contentGroupId}" aria-label="${related.getTitle()}"></a> 
1135														</#if> 
1136														<div class="card-header"> 
1137 
1138															<div class="hidden" id="tagmanager_item_card_potrebbe_interessarti"> 
1139																<span id="tagmanager_item_id_potrebbe_interessarti">${related.getId()}</span> 
1140																<span id="tagmanager_item_category_card_potrebbe_interessarti">${titleCategory}</span> 
1141																<span id="tagmanager_item_name_potrebbe_interessarti">${related.getTitle()}</span> 
1142																<span id="tagmanager_item_list_name_card_potrebbe_interessarti">Potrebbe interessarti</span> 
1143																<span id="tagmanager_item_list_id_potrebbe_interessarti"></span> 
1144																<span id="tagmanager_item_brand_potrebbe_interessarti">${titleCategory}</span> 
1145																<span id="tagmanager_index_potrebbe_interessarti">${related_index}</span> 
1146															</div> 
1147 
1148															<div class="card-header-bg aspect-ratio aspect-ratio-4-3"> 
1149																<#if !relatedTestoAlternativoImmagineBanner?? || !relatedTestoAlternativoImmagineBanner?trim?has_content || relatedTestoAlternativoImmagineBanner?trim == "null"> 
1150																	<#if related.getTitle()?? && related.getTitle()?has_content> 
1151																		<#assign relatedTestoAlternativoImmagineBanner = relatedTitolo?trim> 
1152																	</#if> 
1153																</#if> 
1154																<img src="${url}" alt="Titolo: ${relatedTestoAlternativoImmagineBanner}"> 
1155															</div> 
1156															<button class="link link-tripplanner link-tripplanner-1 link-tripplanner-top-right margin-top-em-2 margin-right-em-1" data-id="${related.getArticleId()}" data-tom="false" aria-label="<@liferay.language key="label.aggiungi.elimina.viaggio"/>"> 
1157																<i class="far fa-heart text-red"></i> 
1158																<i class="fas fa-heart text-red" style="display:none"></i> 
1159															</button> 
1160															<div class="card-header-info"> 
1161																<div class="card-badges"> 
1162																	<#list categoryNames as categoryName> 
1163																		<div class="badge badge-red"> 
1164																			${categoryName} 
1165																		</div> 
1166																		<a class="header-title title-5" href="#">${related.getTitle()}</a> 
1167																	</#list> 
1168																</div> 
1169															</div> 
1170														</div> 
1171														<div class="card-body"> 
1172															<#if contentGroupId = groupId> 
1173																<#assign detailBaseUrl = structureService.getSiteBaseUrl(themeDisplay)> 
1174																<a class="card-body-title title-4" href="${detailBaseUrl}/-/${related.getUrlTitle(locale)}">${relatedTitolo}</a> 
1175															<#else> 
1176																<#assign detailBaseUrl = searchService.getDetailBaseUrlNoMinus(themeDisplay, groupId)> 
1177																<a class="card-body-title title-4" href="${detailBaseUrl}/search/-/search/itinerario/${related.getUrlTitle(locale)}_${contentGroupId}">${relatedTitolo}</a> 
1178															</#if> 
1179															<div class="card-body-subtitle">${relatedSottotitolo}</div> 
1180														</div> 
1181														<div class="card-info"> 
1182															<span class="info"></span> 
1183														</div> 
1184													</div> 
1185												</div> 
1186												<#assign categoryNames = [] > 
1187												<#assign categories = [] > 
1188											</#list> 
1189										</div> 
1190									</div> 
1191								</div> 
1192							</div> 
1193						</div> 
1194					</div> 
1195				</div> 
1196			</div> 
1197		</aside> 
1198	</#if> 
1199 
1200	<#if !isgu> 
1201		<script> 
1202			$(".link-tripplanner").hide(); 
1203		</script> 
1204	</#if> 
1205 
1206	<script id="map-popup-1-template" type="text/x-handlebars-template"> 
1207		<div class="map-popup map-popup-1"> 
1208			<a href="{{href}}"> 
1209				<div class="title">{{title}}</div> 
1210			</a> 
1211		</div> 
1212	</script> 
1213 
1214	<script> 
1215		$("#backLink").click(function(event) { 
1216			event.preventDefault(); 
1217			history.back(1); 
1218		}); 
1219	</script> 
1220	<!-- Go to www.addthis.com/dashboard to customize your tools --> 
1221	<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5c629e6303f68c9f"></script> 
1222 
1223	<script> 
1224		function loadPageAndScrollFromCurrentURL(divId) { 
1225			// Get the current URL without the fragment (hash) 
1226			const url = window.location.href.split('#')[0]; 
1227 
1228			// Fetch the content of the current URL 
1229			fetch(url) 
1230					.then(data => { 
1231						const hash = window.location.hash; 
1232						if (hash) { 
1233							const targetId = hash.substring(1); 
1234							setTimeout(() => { 
1235								const scrollTarget = document.getElementById(targetId); 
1236								if (scrollTarget) { 
1237									scrollTarget.scrollIntoView({ behavior: 'smooth' }); 
1238
1239							}, 10); 
1240
1241					}) 
1242					.catch(error => { 
1243						console.error('There was a problem with the fetch operation:', error); 
1244					}); 
1245
1246		loadPageAndScrollFromCurrentURL('div-accessibilita'); 
1247 
1248		document.addEventListener("DOMContentLoaded", function() { 
1249			var accessibilitaDiv = document.getElementById("div-accessibilita"); 
1250			var toggleButton = document.getElementById("toggle-accessibilita"); 
1251			var showMoreText = toggleButton.getAttribute("data-showmore"); 
1252			var showLessText = toggleButton.getAttribute("data-showless"); 
1253 
1254			if (window.location.hash === "#div-accessibilita") { 
1255				accessibilitaDiv.classList.remove("collapsed-accessibility"); 
1256				accessibilitaDiv.classList.add("expanded"); 
1257				toggleButton.style.display = "none"; 
1258			} else { 
1259				toggleButton.addEventListener("click", toggleAccessibilita); 
1260
1261 
1262			function toggleAccessibilita() { 
1263				if (accessibilitaDiv.classList.contains("collapsed-accessibility")) { 
1264					accessibilitaDiv.classList.remove("collapsed-accessibility");map-content 
1265					accessibilitaDiv.classList.add("expanded"); 
1266					toggleButton.textContent = showLessText; 
1267				} else { 
1268					accessibilitaDiv.classList.remove("expanded"); 
1269					accessibilitaDiv.classList.add("collapsed-accessibility"); 
1270					toggleButton.textContent = showMoreText; 
1271					window.scrollTo(0, 0); 
1272 
1273
1274
1275		}); 
1276	</script>