Ocorreu um erro ao processar o template.
The following has evaluated to null or missing:
==> Contacto.Instagram  [in template "37703#37743#1558395" at line 524, column 335]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if validator.isNotNull(Contacto.Face...  [in template "37703#37743#1558395" at line 524, column 57]
----
1<#-- Services --> 
2<#assign assetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/> 
4<#assign journalArticleResourceServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/> 
5<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
6<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
7 
8<#-- Reserved vbles --> 
9<#assign title = .vars['reserved-article-title'].data> 
10<#assign articleId=.vars["reserved-article-id"].data /> 
11<#assign description=.vars["reserved-article-description"].data /> 
12<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data /> 
13<#assign date=.vars["reserved-article-display-date"].data /> 
14<#assign request = .vars['request']> 
15 
16<#-- Init --> 
17<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)> 
18<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)> 
19<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()> 
20<#assign articleSocialBookmarks = themeDisplay.getThemeSetting("article-social-bookmarks")!> 
21<#assign layoutSetBannerPath = layoutTool.getLayoutSetBannerPath(groupId, themeDisplay.getLayout().isPrivateLayout())!> 
22<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! /> 
23<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! /> 
24<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" /> 
25 
26<#-- Params --> 
27<#assign cmd = paramUtil.getString(request, "p_r_p_cmd") /> 
28 
29<#-- Build --> 
30<#if Nombre.data?has_content> 
31	<#assign title = Nombre.data> 
32</#if> 
33 
34<#assign cssCategoryClass = ""> 
35<#assign categoryAlojamiento = ""> 
36<#assign showNRooms = false> 
37<#assign showApartments = false> 
38<#assign showCampings = false> 
39<#assign showCosts = false> 
40<#assign categoriesDondeDormir = journalTool.getCategories(themeDisplay.getScopeGroupId(), articleId, ["Dónde dormir"])> 
41<#assign caminoCategories = journalTool.getCategories(groupId, journalArticle.getArticleId(), ["Camino"])/> 
42 
43<#list categoriesDondeDormir as categoryDondeDormir> 
44 
45	<#-- Tipo de tipoAlojamiento --> 
46		<#assign categoryAlojamiento = categoryDondeDormir.getTitle(locale)> 
47 
48	<#if categoryDondeDormir.name == "Hotel" || categoryDondeDormir.name == "Pensión" || categoryDondeDormir.name == "Hotel-apartamento" || categoryDondeDormir.name == "Hotel Rural" || categoryDondeDormir.name == "Hostal"> 
49		<#assign cssCategoryClass = "star"> 
50		<#if categoryDondeDormir.name == "Hotel-apartamento"> 
51			<#assign showApartments = true> 
52		<#else> 
53			<#assign showNRooms = true> 
54		</#if>	 
55	<#elseif categoryDondeDormir.name == "Apartamento Turístico" || categoryDondeDormir.name == "Apartamento Rural"> 
56		<#assign cssCategoryClass = "key"> 
57		<#assign showApartments = true> 
58	<#elseif categoryDondeDormir.name == "Casa rural íntegra" || categoryDondeDormir.name == "Casa rural alquiler por habitaciones"> 
59		<#assign cssCategoryClass = "triskel"> 
60		<#assign showNRooms = true> 
61	<#elseif categoryDondeDormir.name == "Camping"> 
62		<#assign cssCategoryClass = "camping"> 
63		<#assign showCampings = true> 
64	<#elseif categoryDondeDormir.name == "Albergue turístico" || categoryDondeDormir.name == "Albergue de peregrinos" || categoryDondeDormir.name == "Albergue juvenil"> 
65		<#assign cssCategoryClass = "hostel"> 
66		<#assign showNRooms = true> 
67	<#elseif categoryDondeDormir.name == "Vivienda Vacacional" || categoryDondeDormir.name == "Vivienda Uso Turístico"> 
68		<#assign showNRooms = true> 
69	<#elseif categoryDondeDormir.name == "Casa de Aldea íntegra" || categoryDondeDormir.name == "Casa rural alquiler por habitaciones" || categoryDondeDormir.name == "Apartamento rural"> 
70		<#assign showCosts = true> 
71	</#if> 
72</#list> 
73<#assign showReservaButton = true/> 
74<#assign hasCategoryImage = false /> 
75<#assign esGratis = false/> 
76<#assign donativo = false/> 
77<#assign precioOrientativo = true/> 
78<article class="template ${ddmStructureNameNormalize}" role="article" itemscope itemtype="http://schema.org/LodgingBusiness"> 
79	 
80	<header class="article-header-wrapper row no-gutters"> 
81	     
82		<div class="article-header-container article-header-container-static"> 
83			<div class="container"> 
84				<div class="row no-gutters"> 
85					<div class="col-md-6"> 
86						<div class="article-image" style="background-image: url('${articleMainImageThumbnail3}')"> 
87							<img class="sr-only" src="${articleMainImageThumbnail3}" alt="${languageUtil.format(request,'go-to-x','image')} ${title}" itemprop="image"/> 
88						</div> 
89					</div> 
90					<div class="article-info-wrapper col-md-6"> 
91						<div class="article-info"> 
92							<h2 class="article-title" itemprop="name">${title}</h2> 
93							<div class="article-list-wrapper"> 
94							 
95								<div class="article-info-table"> 
96									<div class="article-info-table-row"> 
97										<div class="article-info-table-cell"> 
98											<ul class="article-list list-unstyled article-list-info"> 
99												<#if InformacionEspecifica.IconoCategoria.data?has_content> 
100													<#assign icono = "${cssCategoryClass}-${InformacionEspecifica.IconoCategoria.data} text-indent-image" /> 
101													<li class="article-list-item mb-4"> 
102														<span class="fas fa-tag hide" aria-hidden="true"></span> 
103														<span class="hide-accessible">${languageUtil.get(request,"category")}</span> 
104														<span class="field-wrapper"> 
105															<#if categoryAlojamiento?has_content> 
106																<span class="field category-alojamiento important">${categoryAlojamiento}</span> 
107															</#if> 
108															<span class="text ${icono}"><span>${InformacionEspecifica.IconoCategoria.getData()}</span></span> 
109															<#if Cadena ?? && validator.isNotNull(Cadena.data)> 
110																<span class="text d-block">${Cadena.data}</span> 
111															</#if> 
112														</span> 
113													</li> 
114												<#else> 
115													<li class="article-list-item mb-4"> 
116														<span class="field-wrapper"> 
117															<#if categoryAlojamiento?has_content> 
118																<span class="field category-alojamiento important">${categoryAlojamiento}</span> 
119															</#if> 
120														</span> 
121													</li>												 
122												</#if>									 
123												<#if InformacionEspecifica.Plazas.data?has_content> 
124													<li class="article-list-item"> 
125														<span class="fas fa-users" aria-hidden="true"></span> 
126														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-plazas")}</span> 
127														<span class="field-wrapper"> 
128															<span class="field">${languageUtil.get(request, "infoasturias-plazas")}:</span> 
129															<span class="text"> 
130																${InformacionEspecifica.Plazas.data} 
131																<#if InformacionEspecifica.PlazasSupletorias.data?has_content> 
132																	${languageUtil.format(request,'infoasturias-plazas-supletorias', InformacionEspecifica.PlazasSupletorias.data)} 
133																</#if> 
134															</span> 
135														</span> 
136													</li> 
137												</#if> 
138 
139												<#if InformacionEspecifica.NHabitaciones.data?has_content> 
140													<li class="article-list-item"> 
141														<span class="fas fa-bed" aria-hidden="true"></span> 
142														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-habitaciones")}</span> 
143														<span class="field-wrapper"> 
144															<span class="field">${languageUtil.get(request, "infoasturias-habitaciones")}:</span> 
145															<span class="text"> 
146																${InformacionEspecifica.NHabitaciones.data} 
147															</span> 
148														</span> 
149													</li> 
150												</#if> 
151 
152												<#if showNRooms> 
153													<#if InformacionEspecifica.NApartamentos.data?has_content> 
154														<li class="article-list-item"> 
155															<span class="fas fa-bed" aria-hidden="true"></span> 
156															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-habitaciones")}</span> 
157															<span class="field-wrapper"> 
158																<span class="field">${languageUtil.get(request, "infoasturias-habitaciones")}:</span> 
159																<span class="text">${InformacionEspecifica.NApartamentos.data}</span> 
160															</span> 
161														</li> 
162													</#if> 
163													 
164													<#if InformacionEspecifica.CapacidadApartamentos.data?has_content> 
165														<li class="article-list-item"> 
166															<span class="fas fa-building" aria-hidden="true"></span> 
167															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
168															<span class="field-wrapper"> 
169																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos")}:</span> 
170																<span class="text"> 
171																	<#list InformacionEspecifica.CapacidadApartamentos.getSiblings() as capacidadApartamento> 
172																		${capacidadApartamento.data} <#if !capacidadApartamento?is_last>, </#if> 
173																	</#list> 
174																</span> 
175															</span> 
176														</li> 
177													</#if> 
178												</#if> 
179 
180												<#if showApartments> 
181													<#if InformacionEspecifica.NApartamentos.data?has_content> 
182														<li class="article-list-item"> 
183															<span class="fas fa-bed" aria-hidden="true"></span> 
184															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
185															<span class="field-wrapper"> 
186																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos")}:</span> 
187																<span class="text">${InformacionEspecifica.NApartamentos.data}</span> 
188															</span> 
189														</li> 
190													</#if> 
191													 
192													<#if InformacionEspecifica.CapacidadApartamentos.data?has_content> 
193														<li class="article-list-item"> 
194															<span class="fas fa-building" aria-hidden="true"></span> 
195															<span class="hide-accessible">${languageUtil.get(request,"infoasturias-apartamentos")}</span> 
196															<span class="field-wrapper"> 
197																<span class="field">${languageUtil.get(request, "infoasturias-apartamentos-capacidad")}:</span> 
198																<span class="text"> 
199																	<#list InformacionEspecifica.CapacidadApartamentos.getSiblings() as capacidadApartamento> 
200																		${capacidadApartamento.data} <#if !capacidadApartamento?is_last>- </#if> 
201																	</#list> 
202																</span> 
203															</span> 
204														</li> 
205													</#if> 
206												</#if> 
207 
208												<#if showCampings> 
209													<li class="article-list-item"> 
210														<span class="fas fa-warehouse" aria-hidden="true"></span> 
211														<span class="hide-accessible">${languageUtil.get(request,"infoasturias-parcelas")}</span> 
212														<span class="field-wrapper"> 
213															<span class="field">${languageUtil.get(request, "infoasturias-parcelas")}:</span> 
214															<span class="text">${InformacionEspecifica.NParcelas.data}</span> 
215														</span> 
216													</li> 
217												</#if> 
218											</ul> 
219										</div> 
220										<#if Peregrinos ??> 
221											<#if getterUtil.getBoolean(Peregrinos.AdmiteReservas.getData())> 
222												<#assign showReservaButton = false/> 
223											</#if>     
224											<#if Peregrinos.BookingWeb?? && Peregrinos.BookingWeb.data?has_content> 
225												<#assign UrlBooking = Peregrinos.BookingWeb.getData() /> 
226												<#assign isExternalLink = !UrlBooking?starts_with("/") && !UrlBooking?contains(themeDisplay.getPortalURL()) /> 
227												<a href="${htmlUtil.escapeHREF(UrlBooking)}" class="btn btn-primary btn-small text-center text-uppercase" 
228												   <#if isExternalLink> 
229														   target="_blank"  
230														   rel="noopener noreferrer" 
231														   aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')} (${languageUtil.get(request,'opens-new-window')})" 
232												   </#if>> 
233													<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"/> 
234													<span class="btn-text"> 
235														${languageUtil.get(request,'infoasturias-reservar-ahora')} 
236													</span> 
237												</a>                                                 
238												<#assign showReservaButton = false/> 
239											</#if> 
240										</#if> 
241										<#if Contacto.Email.data?has_content || CodigoDGT.data?has_content> 
242											<#if showReservaButton> 
243												<div class="article-info-table-cell align-middle"> 
244													<#if Contacto.Email.data?has_content> 
245														<#assign params = {"displayStyle": "ddmTemplate_441008", "portletId": portletTool.getPortletId(request), "articleId": "${articleId}"}> 
246														<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", params) /> 
247														<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-availability-request" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${portletURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '', '','formularioReserva', 'formularioReservaIframe');" > 
248															<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
249															${languageUtil.get(request,'infoasturias-reservar-ahora')} 
250														</button> 
251													</#if> 
252													<#if CodigoDGT.data?has_content> 
253														<#assign paramsMap = {"accommodationCode": CodigoDGT.data, "jspPage": "/html/results/accommodation/accommodation.jsp"} /> 
254														<#assign bookingURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", paramsMap) /> 
255														<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-accommodation-booking" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${bookingURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '800px', '','formularioReserva', 'formularioReservaIframe');"> 
256															<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
257															${languageUtil.get(request,'infoasturias-reservar-ahora')} 
258														</button> 
259													</#if> 
260												</div> 
261											</#if> 
262										</#if> 
263									</div> 
264								</div>															 
265								<div class="article-list-wrapper pt-3"> 
266									<ul class="article-list list-unstyled article-list-info"> 
267										<li class="article-list-item mb-2 pl-2">							 
268											<#if caminoCategories?size !=0> 
269												<#if (caminoCategories?size ==2)> 
270													<div class="col-9 d-table-cell align-middle">	 
271														<#list caminoCategories as ctg>													 
272															<#if ctg.getParentCategoryId() == 0> 
273																<#assign imageCategoryUuid = assetCategoryTool.getCategoryProperty(ctg.getCategoryId(), "image")/> 
274																<#if validator.isNotNull(imageCategoryUuid)> 
275																	<#assign imagePath = dlTool.getPathByUuid(imageCategoryUuid, groupId)/>	 
276																	<#if validator.isNotNull(imagePath) && !hasCategoryImage> 
277																		<#assign hasCategoryImage = true /> 
278																		<div class="d-block pull-left mr-3 mb-4"> 
279																			<img alt="Camino de Santiago" src="${imagePath}"> 
280																		</div> 
281																	</#if> 
282																</#if>	 
283																<div class="field-wrapper text-uppercase d-block"> 
284																	<span class="field">${languageUtil.get(request, "infoasturias-itinerario")}:</span> 
285																	<span class="text">${ctg.getTitle(locale)}</span>	 
286																</div> 
287															<#elseif ctg.getParentCategoryId() != 0> 
288																<div class="field-wrapper"> 
289																	<span class="text">${ctg.getTitle(locale)}</span>	 
290																</div> 
291															</#if> 
292														</#list> 
293													</div> 
294												<#elseif (caminoCategories?size gt 2)>		 
295													<div class="col-9 d-table-cell align-middle">													 
296														<#list caminoCategories as ctg>																 
297															<#if ctg.getParentCategoryId() == 0> 
298																<#assign imageCategoryUuid = assetCategoryTool.getCategoryProperty(ctg.getCategoryId(), "image")/> 
299																<#if validator.isNotNull(imageCategoryUuid)> 
300																	<#assign imagePath = dlTool.getPathByUuid(imageCategoryUuid, groupId)/>	 
301																	<#if validator.isNotNull(imagePath) && !hasCategoryImage> 
302																		<#assign hasCategoryImage = true /> 
303																		<div class="d-block pull-left mr-3 mb-4"> 
304																			<img alt="Camino de Santiago" src="${imagePath}"> 
305																		</div> 
306																	</#if> 
307																</#if>	 
308																<div class="field-wrapper text-uppercase d-block"> 
309																	<span class="field">${languageUtil.get(request, "infoasturias-itinerario")}:</span> 
310																	<span class="text">${ctg.getTitle(locale)}</span>	 
311																</div> 
312																<#list caminoCategories as childCtg> 
313																	<#if ctg.getCategoryId() == childCtg.getParentCategoryId()> 
314																		<div class="field-wrapper"> 
315																			<span class="text">${childCtg.getTitle(locale)}</span> 
316																		</div> 
317																	</#if> 
318																</#list> 
319															</#if> 
320														</#list> 
321													</div> 
322												</#if> 
323											</#if> 
324										</li> 
325										<#if Peregrinos ??> 
326											<#if Peregrinos.Exclusivo.data?has_content> 
327												<#assign exclusivoKey = journalTool.getDDMStructureSelectKeyByJournalArticle(journalArticle, "Exclusivo", Peregrinos.Exclusivo.getData(), locale)/> 
328												<#if validator.isNotNull(exclusivoKey)> 
329													<li class="article-list-item mb-4 pl-4 separator-peregrinos">										 
330														<span class="field-wrapper"> 
331															<span class="field">${languageUtil.get(request, "infoasturias-peregrinos-exclusivo")}:</span> 
332															<span class="text">${exclusivoKey} </span> 
333														</span> 
334													</li> 
335												</#if>												 
336											</#if>					 
337										</#if> 
338										<li class="article-list-item mb-4"> 
339											<span class="fas fa-map-marker-alt" aria-hidden="true"></span> 
340											<span class="hide-accessible">${languageUtil.get(request,"address")}</span>										 
341											<span class="field-wrapper" itemprop="address"> 
342												<#if Contacto.Concejo.data?has_content> 
343													<span class="important">${Contacto.Concejo.data}</span> 
344												<#else> 
345													<span class="important">${title}</span> 
346												</#if> 
347												<#if Contacto.Zona.data?has_content> 
348													<span class="text d-block">${Contacto.Zona.data}</span> 
349												</#if> 
350												 
351											</span> 
352										</li> 
353										<#if validator.isNotNull(Contacto.Direccion.data) || validator.isNotNull(Contacto.CP.data) || validator.isNotNull(Contacto.Localidad.data)> 
354											<li class="article-list-item"> 
355												<span class="far fa-address-card" aria-hidden="true"></span> 
356												<span class="hide-accessible">${languageUtil.get(request,"address")}</span> 
357												<span class="field-wrapper"> 
358													<span class="field">${languageUtil.get(request, "address")}:</span> 
359													<span class="text">${Contacto.Direccion.data}</span> 
360													<span class="text"> ■ ${Contacto.CP.data} - ${Contacto.Localidad.data}</span> 
361												</span> 
362											</li> 
363										</#if> 
364 
365										<#if Contacto.Telefono.data?has_content>									 
366											<li class="article-list-item"> 
367												<span class="fas fa-phone-alt" aria-hidden="true"></span> 
368												<span class="hide-accessible">${languageUtil.get(request,"phone")}</span> 
369												<span class="field-wrapper"> 
370													<span class="field">${languageUtil.get(request, "phone")}:</span> 
371													<#list Contacto.Telefono.getSiblings() as telephone> 
372													<#assign numberTelefono = telephone.data?replace(" ", "")/>	 
373													<#assign numberLength = numberTelefono?length/> 
374													<#if numberLength == 9> 
375														<#assign number = "+34${numberTelefono}"/> 
376													<#else> 
377														<#assign number = numberTelefono/> 
378													</#if> 
379													<span class="text"> 
380														<a href="tel:${number}" itemprop="telephone">${telephone.data}</a> 
381														<#if !telephone?is_last>|</#if> 
382													</span> 
383													</#list>													 
384												</span> 
385											</li> 
386										</#if> 
387										<#if Contacto.whatsapp ??> 
388											<#if Contacto.whatsapp.data?has_content> 
389												<#assign numberWhatsapp = Contacto.whatsapp.data?replace(" ", "")/> 
390												<li class="article-list-item"> 
391													<span class="fab fa-whatsapp" aria-hidden="true"></span> 
392													<span class="hide-accessible">WhatsApp</span> 
393													<span class="field-wrapper"> 
394														<span class="field">WhatsApp:</span> 
395														<span class="text" itemprop="telephone"><a href="https://wa.me/34${numberWhatsapp}">${Contacto.whatsapp.data}</a></span> 
396													</span> 
397												</li> 
398											</#if> 
399										</#if> 
400										<#if Contacto.Email.data?has_content> 
401											<li class="article-list-item"> 
402												<span class="far fa-envelope" aria-hidden="true"></span> 
403												<span class="hide-accessible">${languageUtil.get(request,"email")}</span> 
404												<span class="field-wrapper"> 
405													<span class="field">${languageUtil.get(request, "email")}:</span> 
406													<#list Contacto.Email.getSiblings() as email> 
407														<span class="text"> 
408															<a class="" href="mailto:${email.data}" title="${languageUtil.format(request,'send-email-to-x', 'email')}" itemprop="email">${email.data}</a> 
409															<#if !email?is_last>|</#if> 
410														</span> 
411													</#list> 
412												</span> 
413											</li> 
414										</#if> 
415										<#if Contacto.Web?? && Contacto.Web.getSiblings()?has_content> 
416											<#assign hasValidURL = false /> 
417											<#list Contacto.Web.getSiblings() as web> 
418												<#if web.data?trim?has_content> 
419													<#assign linkURL = web.data?trim /> 
420													<#if !linkURL?starts_with("javascript:") && !linkURL?starts_with("data:") && !linkURL?starts_with("vbscript:")> 
421														<#assign hasValidURL = true /> 
422														<#break> 
423													</#if> 
424												</#if> 
425											</#list> 
426											<#if hasValidURL> 
427												<li class="article-list-item web"> 
428													<span class="fas fa-link" aria-hidden="true"></span> 
429													<span class="hide-accessible">${languageUtil.get(request, "site")}</span> 
430													<span class="field-wrapper d-inline-flex flex-wrap align-items-center gap-2"> 
431														<span class="field mr-1">${languageUtil.get(request, "site")}:</span> 
432														<#assign webCount = 0 /> 
433														<#list Contacto.Web.getSiblings() as web> 
434															<#if web.data?trim?has_content> 
435																<#assign linkURL = web.data?trim /> 
436																<#if !linkURL?starts_with("javascript:") && !linkURL?starts_with("data:") && !linkURL?starts_with("vbscript:")> 
437																	<#assign webCount = webCount + 1 /> 
438																</#if> 
439															</#if> 
440														</#list> 
441														<#assign validIndex = 0 /> 
442														<#list Contacto.Web.getSiblings() as web> 
443															<#if web.data?trim?has_content> 
444																<#assign linkURL = web.data?trim /> 
445																<#if !linkURL?starts_with("javascript:") && !linkURL?starts_with("data:") && !linkURL?starts_with("vbscript:")> 
446																	<#if !stringUtil.startsWith(linkURL, "http://") && !stringUtil.startsWith(linkURL, "https://")> 
447																		<#assign linkURL = "https://${linkURL}" /> 
448																	</#if> 
449																	<#assign validIndex = validIndex + 1 /> 
450																	<#assign linkNumber = validIndex /> 
451																	<a href="${htmlUtil.escapeHREF(linkURL)}" target="_blank" rel="noopener noreferrer" aria-label="${languageUtil.get(request, 'site')} ${linkNumber} - ${htmlUtil.escape(title)} (${languageUtil.get(request, 'opens-new-window')})" class="text d-inline-flex align-items-center gap-1 text-nowrap" itemprop="url"> 
452																		<#if webCount gt 1> 
453																			${languageUtil.get(request, "visit")} ${linkNumber} 
454																		<#else> 
455																			${languageUtil.get(request, "visit")} 
456																		</#if> 
457																		<span class="fas fa-external-link-alt ml-1 font-size-08" aria-hidden="true"></span> 
458																	</a> 
459																	<#if validIndex lt webCount> 
460																		<span class="mx-2 text-muted">|</span> 
461																	</#if> 
462																</#if> 
463															</#if> 
464														</#list> 
465													</span> 
466												</li> 
467											</#if> 
468										</#if> 
469										<#if Informacion.FechasCierre.data?has_content> 
470											<li class="article-list-item mt-4"> 
471												<span class="fas fa-calendar" aria-hidden="true"></span> 
472												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}</span> 
473												<span class="field-wrapper"> 
474													<span class="field">${languageUtil.get(request, "infoasturias-fechas-de-cierre")}:</span> 
475													<span class="text">${Informacion.FechasCierre.data}</span> 
476												</span> 
477											</li> 
478										</#if> 
479										<#if Informacion.AbiertoTodoAno.data?has_content && (Informacion.AbiertoTodoAno.data == "Si" || Informacion.AbiertoTodoAno.data == "Sí" || Informacion.AbiertoTodoAno.data == "SI")> 
480											<li class="article-list-item mt-4"> 
481												<span class="fas fa-door-open" aria-hidden="true"></span> 
482												<span class="hide-accessible">${languageUtil.get(request,"infoasturias-abierto-todo-anio")}</span> 
483												<span class="field-wrapper"> 
484													<span class="text">${languageUtil.get(request, "infoasturias-abierto-todo-anio")}</span> 
485												</span> 
486											</li> 
487										</#if>	 
488										<#if Descargas ??> 
489											<#if validator.isNotNull(Descargas.Archivo.data)> 
490												<#if validator.isNotNull(Descargas.Archivo.data)> 
491												<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Descargas.Archivo.data) /> 
492													<#if validator.isNotNull(dlFileEntry)> 
493														<#assign ext = dlFileEntry.getExtension()!/> 
494														<li class="article-list-item document document-${ext}"> 
495															<span class="fas fa-file" aria-hidden="true"></span> 
496															<span class="hide-accessible">${languageUtil.get(request,"related-documents")}</span> 
497															<span class="field-wrapper"> 
498																<span class="field">${languageUtil.get(request, "related-documents")}:</span> 
499																<span class="text"> 
500																	<#list Descargas.Archivo.getSiblings() as Item> 
501																		<#assign dlFileEntry = dlTool.getDLFileEntryByPath(Item.data) /> 
502																		<#assign downloadURL = "/documents/${groupId}/${dlFileEntry.getUuid()}" /> 
503																		<#if validator.isNotNull(dlFileEntry)> 
504																			<#if Item.ArchivoTitulo.data?has_content> 
505																				<a href="${downloadURL}" title='${languageUtil.get(request, "${Item.ArchivoTitulo.data}")} ${htmlUtil.escape(title)}' class="">${Item.ArchivoTitulo.data}</a>	 
506																				<#if Item_has_next>, </#if> 
507																			<#else> 
508																				<a href="${downloadURL}" title='${languageUtil.get(request, "${dlFileEntry.getTitle()}")} ${htmlUtil.escape(title)}' class="">${dlFileEntry.getTitle()}</a>	 
509																				<#if Item_has_next>, </#if> 
510																			</#if> 
511																		</#if> 
512																	</#list> 
513																</span> 
514															</span>		 
515														</li> 
516													</#if> 
517												</#if> 
518											</#if> 
519										</#if>										 
520									</ul> 
521								</div> 
522							</div> 
523							 
524							<#if validator.isNotNull(Contacto.Facebook.data) || validator.isNotNull(Contacto.Twitter.data) || validator.isNotNull(Contacto.Youtube.data) || Contacto.TikTok?? && validator.isNotNull(Contacto.TikTok.data) || validator.isNotNull(Contacto.Pinterest.data) || validator.isNotNull(Contacto.Instagram.data)> 
525								<div class="article-socials-wrapper mt-4"> 
526									<div class="socials-wrapper"> 
527										<div class="socials"> 
528											<ul class="list-inline items socials"> 
529												<#if Contacto.Facebook.data?has_content> 
530													<#assign linkURL = Contacto.Facebook.data/> 
531														<#if !stringUtil.startsWith(linkURL, "http")> 
532															<#assign linkURL = "https://${Contacto.Facebook.data}"/> 
533														</#if> 
534													<li class="list-inline-item item facebook"> 
535														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'"> 
536															<span class="fab fa-facebook-f" aria-hidden="true"></span> 
537															<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span> 
538														</a> 
539													</li> 
540												</#if> 
541												<#if Contacto.Twitter.data?has_content> 
542													<#assign linkURL = Contacto.Twitter.data/> 
543														<#if !stringUtil.startsWith(linkURL, "http")> 
544															<#assign linkURL = "https://${Contacto.Twitter.data}"/> 
545														</#if> 
546													<li class="list-inline-item item twitter"> 
547														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'"> 
548															<span class="fa-brands fa-x twitter" aria-hidden="true"></span> 
549															<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span> 
550														</a> 
551													</li> 
552												</#if> 
553												<#if Contacto.Youtube.data?has_content> 
554													<#assign linkURL = Contacto.Youtube.data/> 
555														<#if !stringUtil.startsWith(linkURL, "http")> 
556															<#assign linkURL = "https://${Contacto.Youtube.data}"/> 
557														</#if> 
558													<li class="list-inline-item item youtube"> 
559														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'"> 
560															<span class="fab fa-youtube" aria-hidden="true"></span> 
561															<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span> 
562														</a> 
563													</li> 
564												</#if> 
565												<#if Contacto.TikTok??> 
566													<#if Contacto.TikTok.data?has_content> 
567														<#assign linkURL = Contacto.TikTok.data/> 
568														<#if !stringUtil.startsWith(linkURL, "http")> 
569															<#assign linkURL = "https://${Contacto.TikTok.data}"/> 
570														</#if> 
571														<li class="list-inline-item item tiktok"> 
572															<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Tiktok')}" onclick="this.target='_blank'"> 
573																<span class="fab fa-tiktok" aria-hidden="true"></span> 
574																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Tiktok')}</span> 
575															</a> 
576														</li> 
577													</#if> 
578												</#if> 
579												<#if Contacto.Pinterest.data?has_content> 
580													<#assign linkURL = Contacto.Pinterest.data/> 
581														<#if !stringUtil.startsWith(linkURL, "http")> 
582															<#assign linkURL = "https://${Contacto.Pinterest.data}"/> 
583														</#if> 
584													<li class="list-inline-item item pinterest"> 
585														<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'"> 
586															<span class="fab fa-pinterest-p" aria-hidden="true"></span> 
587															<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span> 
588														</a> 
589													</li> 
590												</#if> 
591												<#if Contacto.Instagram??> 
592													<#if Contacto.Instagram.data?has_content> 
593														<#assign linkURL = Contacto.Instagram.data/> 
594														<#if !stringUtil.startsWith(linkURL, "http")> 
595															<#assign linkURL = "https://${Contacto.Instagram.data}"/> 
596														</#if> 
597														<li class="list-inline-item item instagram"> 
598															<a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'"> 
599																<span class="fab fa-instagram" aria-hidden="true"></span> 
600																<span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span> 
601															</a> 
602														</li> 
603													</#if> 
604												</#if> 
605											</ul> 
606										</div> 
607									</div> 
608								</div> 
609							</#if> 
610							<#if getterUtil.getBoolean(Informacion.QdeCalidad.getData()) || getterUtil.getBoolean(Informacion.AldeasCalidad.getData()) || getterUtil.getBoolean(Informacion.CalidadCasonasAsturianas.getData())> 
611								<div class="article-info-table"> 
612									<ul class="article-list article-list-characteristics article-info-border"> 
613										<#if getterUtil.getBoolean(Informacion.QdeCalidad.getData())> 
614											<li class="list-inline-item"> 
615												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/qturistica.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-qcalidad')}" alt="${languageUtil.get(request, 'infoasturias-qcalidad')}"/></li> 
616										</#if> 
617										<#if getterUtil.getBoolean(Informacion.AldeasCalidad.getData())> 
618											<li class="list-inline-item"> 
619												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/aldeas_asturianas.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-aldeas-calidad')}" alt="${languageUtil.get(request, 'infoasturias-aldeas-calidad')}"/></li> 
620										</#if> 
621										<#if getterUtil.getBoolean(Informacion.CalidadCasonasAsturianas.getData())> 
622											<li class="list-inline-item"> 
623												<img class="" src="${themeDisplay.getPathThemeImages()}/icons/casonas_asturianas.png" data-toggle="tooltip" data-placement="bottom" title="${languageUtil.get(request, 'infoasturias-casonas-asturias')}" alt="${languageUtil.get(request, 'infoasturias-casonas-asturianas')}"/></li> 
624										</#if> 
625									</ul> 
626								</div> 
627							</#if>		 
628						</div> 
629					</div> 
630				</div> 
631			</div> 
632		</div>  
633	</header> 
634	 
635	<div class="sheet sheet-lg"> 
636		<#-- as_asac_accommodationbooking_AccommodationBookingResultsPortlet --> 
637		<#assign paramsMap = { 
638			"cmd": cmd, 
639			"startDate": paramUtil.getString(request, "p_r_p_startDate"), 
640			"endDate": paramUtil.getString(request, "p_r_p_endDate"), 
641			"priceMin": paramUtil.getString(request, "p_r_p_priceMin"), 
642			"priceMax": paramUtil.getString(request, "p_r_p_priceMax"), 
643			"rooms": paramUtil.getString(request, "p_r_p_rooms"), 
644			"babys": paramUtil.getString(request, "p_r_p_babys"), 
645			"kids": paramUtil.getString(request, "p_r_p_kids"), 
646			"adults": paramUtil.getString(request, "p_r_p_adults"),	 
647			"accommodationCode": CodigoDGT.data, 
648			"jspPage": "/html/results/accommodation/rooms.jsp" 
649		} /> 
650		<#assign roomsURL  = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "exclusive", paramsMap) /> 
651		<div id="bookings-${articleId}" class="article-border mb-5 hide"> 
652			<!-- box-bookings --> 
653		</div> 
654	 
655		<#if Informacion.Titulo.data?has_content> 
656			<div class="article-great"> 
657				${Informacion.Titulo.data} 
658			</div> 
659		</#if> 
660 
661		<#assign hasTab1 = Informacion.DescripcionLarga.data?has_content> 
662		<#assign hasTab2 = ServiciosEstablecimiento.data?has_content || ServiciosHabitacion.data?has_content || ServiciosComplementarios.data?has_content || SeguridadYSanidad.data?has_content> 
663		<#assign hasTab3 = Contacto.Tarifas.data?has_content || Contacto.Tarifas.Gratis?? && Contacto.Tarifas.Gratis.data?has_content || Contacto.Tarifas.Donativo?? && Contacto.Tarifas.Donativo.data?has_content> 
664		<#assign hasTab4 = Informacion.TemporadaAlta.data?has_content || Informacion.TemporadaMedia.data?has_content || Informacion.TemporadaBaja.data?has_content> 
665		<#assign hasTab5 = Geolocalizacion.Coordenadas.data?has_content> 
666		<#assign hasTab6 = AsturiasMascotas?? && AsturiasMascotas.SuplementoMascota?? && AsturiasMascotas.SuplementoMascota.data?has_content> 
667		<#if Peregrinos ??>	 
668			<#assign hasTab7 = Peregrinos.InfoReservas.data?has_content>	 
669		</#if> 
670		<#assign showFirstTab = true> 
671		 
672		<div class="article-accordion accordion"> 
673			<#if Visualizador.Slide.getData()?has_content> 
674				<div class="slick article-slick article-section <#if Visualizador.Slide.getSiblings()?size==1>hide</#if>"> 
675					<#list Visualizador.Slide.getSiblings() as Slide> 
676						<#if validator.isNotNull(Slide.getData()) || validator.isNotNull(Slide.SlideUrl.getData())> 
677							<#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! /> 
678							<#assign slideThumbnail2 = dlTool.getThumbnailByJSON(Slide.data, "2")! /> 
679							<#assign slidePath = dlTool.getPathByJSON(Slide.data, themeDisplay.getScopeGroupId())! /> 
680							<#assign slideUrl = Slide.SlideUrl.data /> 
681							<#assign dataMap = "" /> 
682 
683							<#if slideUrl?has_content> 
684								<#assign slideTitle = "${languageUtil.get(request, 'video')} ${Slide?index}" /> 
685								<#if Slide.SlideTitulo.data?has_content> 
686									<#assign slideTitle = Slide.SlideTitulo.data />   
687								</#if> 
688 
689								<#-- Youtube --> 
690								<#assign slideUrl = stringUtil.replace(slideUrl, 'watch?v=', 'embed/') /> 
691								<#assign slideThumbnail2 = stringUtil.replace(slideUrl, 'www', 'img') /> 
692								<#assign slideThumbnail2 = stringUtil.replace(slideThumbnail2, 'embed', 'vi') /> 
693								<#assign slideThumbnail2 = '${slideThumbnail2}/mqdefault.jpg' /> 
694 
695								<#-- Vimeo --> 
696								<#if slideUrl?contains("vimeo")> 
697									<#assign slideUrl = stringUtil.replace(slideUrl, 'http://vimeo.com/', 'https://player.vimeo.com/video/') /> 
698									<#assign slideVimeoId = stringUtil.extractLast(slideUrl, 'https://player.vimeo.com/video/') /> 
699									<#if slideVimeoId?has_content> 
700										<#assign slideVimeoJsonPath = 'http://vimeo.com/api/v2/video/${slideVimeoId}.json' /> 
701										<#assign slideVimeoJsonContent = getUrlContent.getContent(slideVimeoJsonPath)! /> 
702										<#if slideVimeoJsonContent?has_content> 
703											<#assign slideVimeoJsonArray = jsonFactoryUtil.createJSONArray(slideVimeoJsonContent) /> 
704											<#assign slideVimeoJsonItem = slideVimeoJsonArray.get(0) /> 
705											<#assign slideThumbnail2 = slideVimeoJsonItem.thumbnail_medium /> 
706										</#if> 
707									</#if> 
708								</#if> 
709								<div id="slide-${Slide?index}" class="slide"> 
710									<a class="card card-simple card-video" href="#" onclick="javascript: event.preventDefault(); showDialogIframe('${slideUrl}', '${slideTitle}', 800, 600, 'videoPopup', 'videoPopupIframe');" title="${slideTitle}"> 
711										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
712										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
713									</span></a> 
714								</div> 
715							<#else> 
716								<#assign slideTitle = "${languageUtil.get(request, 'image')} ${Slide?index}" /> 
717								<#if Slide.SlideTitulo.data?has_content> 
718									<#assign slideTitle = Slide.SlideTitulo.data />   
719								</#if> 
720								<div class="slide"> 
721									<a class="card card-simple lightbox" href="${slidePath}" title="${slideTitle}"> 
722										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${slideThumbnail2}');"> 
723										<img class="hide-accessible" alt="${slideTitle}" src="${slideThumbnail2}"> 
724									</span></a> 
725								</div> 
726							</#if> 
727						</#if> 
728					</#list> 
729				</div> 
730			</#if> 
731		 
732			<#if hasTab1> 
733				<div id="tab1" class="article-section accordion-item"> 
734					<a href="#tabContent1" id="tabHeading1" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent1" data-toggle="liferay-collapse" data-target="#tabContent1"> 
735						<h3 class="h3 accordion-header">${languageUtil.get(request,'info')}</h3> 
736					</a> 
737					<div id="tabContent1" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading1"> 
738						<#if Informacion.DescripcionLarga.data?has_content> 
739							${Informacion.DescripcionLarga.data} 
740						</#if> 
741					</div> 
742				</div> 
743				<#assign showFirstTab = false> 
744			</#if> 
745			 
746			<#if hasTab2> 
747				<div id="tab2" class="article-section accordion-item"> 
748					<a href="#tabContent2" id="tabHeading2" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent2" data-toggle="liferay-collapse" data-target="#tabContent2"> 
749						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-servicios-establecimiento')}</h3> 
750					</a> 
751					<div id="tabContent2" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading2"> 
752						<#function getServiceIcon serviceName> 
753							<#assign iconMap = { 
754								"Acceso a internet": "fas fa-network-wired", 
755								"Actividades para niños": "fas fa-child", 
756								"Admite animales": "fas fa-paw", 
757								"Admite caravanas": "fas fa-caravan", 
758								"Admite tarjetas": "fas fa-credit-card", 
759								"Agroturismo": "fas fa-tractor", 
760								"Agua caliente en duchas": "fas fa-shower", 
761								"Agua y desagüe caravanas": "fas fa-water", 
762								"Aire acondicionado": "fas fa-snowflake", 
763								"Almacenamiento seguro para bicicletas": "fas fa-bicycle", 
764								"Almohadas": "fas fa-mattress-pillow", 
765								"Alquiler de caravanas": "fas fa-caravan", 
766								"Alquiler material de camping": "fas fa-campground", 
767								"Aparcamiento": "fas fa-parking", 
768								"Aseo": "fas fa-restroom", 
769								"Balneario/Aguas termales": "fas fa-hot-tub", 
770								"Baño interior/exterior": "fas fa-bath", 
771								"Bar/Cafetería": "fas fa-mug-saucer", 
772								"Barbacoa": "fas fa-fire", 
773								"Botella de gas": "fas fa-bottle-water", 
774								"Botiquín": "fas fa-first-aid", 
775								"Bungalows": "fas fa-home", 
776								"Buzón de correos": "fas fa-envelope", 
777								"Caja fuerte": "fas fa-vault", 
778								"Calefacción": "fas fa-temperature-high", 
779								"Chanclas": "fas fa-shoe-prints", 
780								"Chimenea": "fas fa-fire-alt", 
781								"Chimenea en habitación": "fas fa-fire-alt", 
782								"Cocina": "fas fa-kitchen-set", 
783								"Colchones": "fas fa-bed", 
784								"Comedor": "fas fa-utensils", 
785								"Encargada servicios higiénicos": "fas fa-user", 
786								"Enfermería": "fas fa-user-nurse", 
787								"Equipo respiración artificial": "fas fa-lungs", 
788								"Espacio para lavado de bicicletas": "fas fa-bicycle", 
789								"Estación de esquí < 30 Km": "fas fa-skiing", 
790								"Estufa de leña": "fas fa-fire", 
791								"Extintores de incendio": "fas fa-fire-extinguisher", 
792								"Gimnasio": "fas fa-dumbbell", 
793								"Imprescindible saco de dormir": "fas fa-bed", 
794								"Información sobre rutas": "fas fa-map-marked-alt", 
795								"Jacuzzi en habitación": "fas fa-hot-tub", 
796								"Jacuzzi/Hidromasaje": "fas fa-hot-tub", 
797								"Jardín": "fas fa-tree", 
798								"Lavadora": "fas fa-soap", 
799								"Lavavajillas": "fas fa-sink", 
800								"Luces de emergencia": "fas fa-lightbulb", 
801								"Médico": "fas fa-user-doctor", 
802								"Minibar": "fas fa-martini-glass", 
803								"Muebles de jardín": "fas fa-couch", 
804								"Nórdicos/Mantas": "fas fa-rug", 
805								"Parque infantil": "fas fa-child-reaching", 
806								"Piscina exterior": "fas fa-swimming-pool", 
807								"Piscina climatizada": "fas fa-person-swimming", 
808								"Radio - socorro": "fas fa-broadcast-tower", 
809								"Restaurante": "fas fa-utensils", 
810								"Saco de dormir": "fas fa-campground", 
811								"Sala de audiovisuales": "fas fa-video", 
812								"Salas de reuniones": "fas fa-users-line", 
813								"Salón con TV": "fas fa-tv", 
814								"Sauna": "fas fa-spa", 
815								"Servicio de desayunos": "fas fa-bread-slice", 
816								"Servicio de cenas": "fas fa-bowl-rice", 
817								"Servicio de comidas": "fas fa-bowl-food", 
818								"Servicio de cuna": "fas fa-baby", 
819								"Servicio de habitaciones": "fas fa-bed", 
820								"Servicio de habitaciones 24 hrs.": "fas fa-clock", 
821								"Servicio de lavandería": "fas fa-tshirt", 
822								"Servicio de limpieza": "fas fa-spray-can-sparkles", 
823								"Servicio de recepción": "fas fa-concierge-bell", 
824								"Socorrista": "fas fa-life-ring", 
825								"Spa": "fas fa-spa", 
826								"Supermercado": "fas fa-shopping-basket", 
827								"Teléfono": "fas fa-phone", 
828								"Televisión en habitación": "fas fa-tv", 
829								"Toma de aguas incendios": "fas fa-fire-flame-simple", 
830								"Transporte público < 500 m": "fas fa-bus", 
831								"Wifi": "fas fa-wifi", 
832								"Zona de acampada": "fas fa-campground", 
833								"Zona de taller con herramientas": "fas fa-screwdriver-wrench", 
834								"Zona de taquillas": "fas fa-lock" 
835							} /> 
836							<#if iconMap[serviceName]??> 
837								<#return iconMap[serviceName]> 
838							</#if> 
839							<#return "fas fa-check-circle"> 
840						</#function> 
841 
842						<#assign className = "com.liferay.journal.model.JournalArticle" /> 
843						<#assign classPK = 0 /> 
844						<#if (assetEntry??)> 
845								<#assign classPK = assetEntry.getClassPK()?long /> 
846							<#elseif (journalArticle??)> 
847								<#assign classPK = journalArticle.getResourcePrimKey()?long /> 
848							<#elseif (.vars["reserved-article-resource-prim-key"]??)> 
849								<#assign classPK = .vars["reserved-article-resource-prim-key"].data?number /> 
850							<#elseif (request.getAttribute("articleResourcePrimKey")??)> 
851								<#assign classPK = request.getAttribute("articleResourcePrimKey")?number /> 
852						</#if> 
853 
854						<#assign todasCategorias = [] /> 
855						<#if classPK?number gt 0> 
856							<#attempt> 
857								<#assign todasCategorias = assetCategoryLocalService.getCategories(className, classPK) /> 
858								<#recover> 
859							</#attempt> 
860						</#if> 
861 
862						<#assign NAME_TURISMO_RURAL = "Dónde dormir - Turismo rural" /> 
863						<#assign NAME_ALOJAMIENTOS  = "Dónde dormir - Alojamientos" /> 
864						<#assign NAME_COMUNES       = "Dónde dormir - Categorías Comunes" /> 
865						<#function canonSpaces s> 
866							<#if !s??><#return "" /></#if> 
867							<#assign t = s?string /> 
868							<#assign t = t?replace(" ", " ") /> 
869							<#assign t = t?replace("\\s+", " ", "r") /> 
870							<#assign t = t?trim /> 
871							<#return t /> 
872						</#function> 
873 
874						<#function isVocabName v targetName> 
875							<#return (canonSpaces(v.getName())?lower_case == canonSpaces(targetName)?lower_case) || (canonSpaces(v.getTitle(locale))?lower_case == canonSpaces(targetName)?lower_case) /> 
876						</#function> 
877 
878						<#assign excludedTitles = { 
879						  "1 Estrella": true, "2 Estrellas": true, "3 Estrellas": true, "4 Estrellas": true, "5 Estrellas": true, 
880						  "1 trisquel": true, "2 trisqueles": true, "3 trisqueles": true, 
881						  "1 Llave": true, "2 Llaves": true, "3 Llaves": true, "4 Llaves": true, 
882						  "Primera": true, "Superior": true, "Turísticos": true, "Peregrinos": true, "Juveniles": true, 
883						  "1 Tienda": true, "2 Tiendas": true, "3 Tiendas": true 
884						} /> 
885						<#assign serviciosMap = {} /> 
886						<#assign serviciosList = [] /> 
887 
888						<#list todasCategorias as cat> 
889							<#attempt> 
890								<#assign voc = assetVocabularyLocalService.getVocabulary(cat.getVocabularyId()) /> 
891								<#assign tituloCat = cat.getTitle(locale) /> 
892								<#if isVocabName(voc, NAME_TURISMO_RURAL) || isVocabName(voc, NAME_ALOJAMIENTOS)> 
893									<#if (cat.getParentCategoryId()?number gt 0) && (!excludedTitles[tituloCat]??)> 
894										<#assign cid = cat.getCategoryId()?c /> 
895										<#if !serviciosMap[cid]??> 
896											<#assign serviciosMap = serviciosMap + { cid : true } /> 
897											<#assign serviciosList = serviciosList + [{"id": cid, "title": tituloCat, "category": cat}] /> 
898										</#if> 
899									</#if> 
900								<#elseif isVocabName(voc, NAME_COMUNES)> 
901									<#assign cid = cat.getCategoryId()?c /> 
902									<#if !serviciosMap[cid]??> 
903										<#assign serviciosMap = serviciosMap + { cid : true } /> 
904										<#assign serviciosList = serviciosList + [{"id": cid, "title": tituloCat, "category": cat}] /> 
905									</#if> 
906								</#if> 
907								<#recover> 
908							</#attempt> 
909						</#list> 
910 
911						<#assign serviciosOrdenados = serviciosList?sort_by("title") /> 
912						<#if serviciosOrdenados?has_content> 
913							<div class="servicios-iconos-wrapper"> 
914								<div class="servicios-grid"> 
915									<ul class="list-unstyled servicios-iconos-list" role="list"> 
916										<#list serviciosOrdenados as item> 
917											<#assign servicioNombre = item.title /> 
918											<#assign iconClass = getServiceIcon(servicioNombre) /> 
919											<li class="servicio-item"> 
920												<div class="servicio-icono-container"> 
921													<span class="${iconClass} servicio-icono" aria-hidden="true"></span> 
922													<span class="servicio-nombre">${servicioNombre}</span> 
923												</div> 
924											</li> 
925										</#list> 
926									</ul> 
927								</div> 
928							</div> 
929						</#if> 
930						<style> 
931						.servicios-iconos-wrapper { 
932							margin: 2rem 0; 
933
934						.servicios-grid { 
935							margin-top: 1.5rem; 
936
937						.servicios-iconos-list { 
938							display: grid; 
939							grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); 
940							gap: 1rem; 
941							padding: 0; 
942							margin: 0; 
943
944						.servicio-item { 
945							list-style: none; 
946
947						.servicio-icono-container { 
948							display: flex; 
949							flex-direction: column; 
950							align-items: center; 
951							text-align: center; 
952							padding: 0.5rem 0.6rem; 
953							border-radius: 10px; 
954							transition: all 0.3s ease; 
955							background-color: #fff; 
956							border: 1px solid #e8e8e8; 
957							height: 100%; 
958							min-height: 90px; 
959
960						.servicio-icono { 
961							font-size: 1.5rem; 
962							color: #36a53e !important; 
963							margin-bottom: 0.75rem; 
964							transition: all 0.3s ease; 
965
966						.servicio-nombre { 
967							font-size: 0.85rem; 
968							font-weight: 500; 
969							color: #333; 
970							line-height: 1.3; 
971							display: block; 
972							word-break: break-word; 
973
974 
975						@media (max-width: 768px) { 
976							.servicios-iconos-list { 
977								grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); 
978								gap: 0.5rem; 
979							}  
980							.servicio-icono { 
981								font-size: 2rem; 
982
983							.servicio-nombre { 
984								font-size: 0.8rem; 
985
986
987						@media (max-width: 480px) { 
988							.servicios-iconos-list { 
989								grid-template-columns: repeat(2, 1fr); 
990
991
992						</style> 
993					</div> 
994				</div> 
995				<#assign showFirstTab = false> 
996			</#if> 
997			<#if Peregrinos ??>	 
998				<#if hasTab7>					 
999					<div id="tab7" class="article-section accordion-item"> 
1000						<a href="#tabContent7" id="tabHeading7" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent7" data-toggle="liferay-collapse" data-target="#tabContent7"> 
1001							<h3 class="h3 accordion-header">${languageUtil.get(request, "infoasturias-peregrinos-info-reservas")}</h3> 
1002						</a> 
1003						<div id="tabContent7" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading7"> 
1004							<#if Peregrinos.InfoReservas.data?has_content> 
1005								${Peregrinos.InfoReservas.data} 
1006							</#if> 
1007						</div> 
1008					</div> 
1009					<#assign showFirstTab = false> 
1010				</#if> 
1011			</#if>			 
1012			<#if hasTab3> 
1013				<div id="tab3" class="article-section accordion-item"> 
1014					<a href="#tabContent3" id="tabHeading3" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent3" data-toggle="liferay-collapse" data-target="#tabContent3"> 
1015						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-tarifas')}</h3> 
1016					</a> 
1017					<div id="tabContent3" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading3"> 
1018						<#if Contacto.Tarifas.Gratis ?? || Contacto.Tarifas.Donativo ??> 
1019							<#if getterUtil.getBoolean(Contacto.Tarifas.Gratis.getData())>							 
1020								<#assign esGratis = true/> 
1021								<#assign precioOrientativo = false/> 
1022							</#if> 
1023							<#if getterUtil.getBoolean(Contacto.Tarifas.Donativo.getData())>							 
1024								<#assign donativo = true/> 
1025								<#assign precioOrientativo = false/>								 
1026							</#if> 
1027						</#if> 
1028							<#if esGratis> 
1029								<span>${languageUtil.get(request,"infoasturias-albergues-gratuito")}</span> 
1030							</#if> 
1031							<#if donativo> 
1032								<span>${languageUtil.get(request,"infoasturias-albergues-donativo")}</span> 
1033							</#if> 
1034						<#if Contacto.Tarifas.data?has_content> 
1035							${Contacto.Tarifas.data} 
1036						</#if>						 
1037						<ul class="article-list list-unstyled article-list-info mt-4"> 
1038							<#if Contacto.DesayunoIncluido.data?has_content && Contacto.DesayunoIncluido.data != "Desayuno no incluido"> 
1039								<li class="article-list-item"> 
1040									<span class="fas fa-coffee" aria-hidden="true"></span> 
1041									<span class="hide-accessible">${languageUtil.get(request,"breakfast")}</span> 
1042									<span class="field-wrapper"> 
1043										<span class="field">${languageUtil.get(request, "breakfast")}:</span> 
1044										<span class="text">${Contacto.DesayunoIncluido.data}</span> 
1045									</span> 
1046								</li> 
1047							</#if> 
1048							 
1049							<#if Contacto.LimpiezaIncluida.data?has_content && Contacto.LimpiezaIncluida.data != "Limpieza no incluida"> 
1050								<li class="article-list-item"> 
1051									<span class="fas fa-broom" aria-hidden="true"></span> 
1052									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-clean")}</span> 
1053									<span class="field-wrapper"> 
1054										<span class="field">${languageUtil.get(request, "infoasturias-clean")}:</span> 
1055										<span class="text">${Contacto.LimpiezaIncluida.data}</span> 
1056									</span> 
1057								</li> 
1058							</#if> 
1059							 
1060							<#if Contacto.SabanasIncluidas.data?has_content && Contacto.DesayunoIncluido.data != "Sabanas no incluidas"> 
1061								<li class="article-list-item"> 
1062									<span class="fas fa-bed" aria-hidden="true"></span> 
1063									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-sabanas")}</span> 
1064									<span class="field-wrapper"> 
1065										<span class="field">${languageUtil.get(request, "infoasturias-sabanas")}:</span> 
1066										<span class="text">${Contacto.SabanasIncluidas.data}</span> 
1067									</span> 
1068								</li> 
1069							</#if> 
1070 
1071							<#if Informacion.FechasCierre.data?has_content> 
1072								<li class="article-list-item hide"> 
1073									<span class="fas fa-calendar" aria-hidden="true"></span> 
1074									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-fechas-de-cierre")}</span> 
1075									<span class="field-wrapper"> 
1076										<span class="field">${languageUtil.get(request, "infoasturias-fechas-de-cierre")}:</span> 
1077										<span class="text">${Informacion.FechasCierre.data}</span> 
1078									</span> 
1079								</li> 
1080							</#if> 
1081							 
1082							<#if Informacion.AbiertoTodoAno.data?has_content && (Informacion.AbiertoTodoAno.data == "Si" || Informacion.AbiertoTodoAno.data == "Sí" || Informacion.AbiertoTodoAno.data == "SI")> 
1083								<li class="article-list-item hide"> 
1084									<span class="fas fa-door-open" aria-hidden="true"></span> 
1085									<span class="hide-accessible">${languageUtil.get(request,"infoasturias-abierto-todo-anio")}</span> 
1086									<span class="field-wrapper"> 
1087										<span class="text">${languageUtil.get(request, "infoasturias-abierto-todo-anio")}</span> 
1088									</span> 
1089								</li> 
1090							</#if>				 
1091						</ul> 
1092					</div> 
1093				</div> 
1094				<#assign showFirstTab = false> 
1095			</#if>	 
1096 
1097			<#if hasTab4> 
1098				<div id="tab4" class="article-section accordion-item"> 
1099					<a href="#tabContent4" id="tabHeading4" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent4" data-toggle="liferay-collapse" data-target="#tabContent4"> 
1100						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-temporadas')}</h3> 
1101					</a> 
1102					<div id="tabContent4" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading4"> 
1103						<#if Informacion.TemporadaAlta.data?has_content || Informacion.TemporadaMedia.data?has_content || Informacion.TemporadaBaja.data?has_content> 
1104							<#if Informacion.TemporadaAlta.data?has_content> 
1105								<span class="field-wrapper d-block"> 
1106									<span class="field">${languageUtil.get(request, "infoasturias-temporada-alta")}:</span> 
1107									<span class="text">${Informacion.TemporadaAlta.data}</span> 
1108								</span> 
1109							</#if> 
1110 
1111							<#if Informacion.TemporadaMedia.data?has_content> 
1112								<span class="field-wrapper d-block"> 
1113									<span class="field">${languageUtil.get(request, "infoasturias-temporada-media")}:</span> 
1114									<span class="text">${Informacion.TemporadaMedia.data}</span> 
1115								</span> 
1116							</#if> 
1117 
1118							<#if Informacion.TemporadaBaja.data?has_content> 
1119								<span class="field-wrapper d-block"> 
1120									<span class="field">${languageUtil.get(request, "infoasturias-temporada-baja")}:</span> 
1121									<span class="text">${Informacion.TemporadaBaja.data}</span> 
1122								</span> 
1123							</#if> 
1124						</#if> 
1125					</div> 
1126				</div> 
1127				<#assign showFirstTab = false> 
1128			</#if> 
1129			 
1130			<#if hasTab5> 
1131				<#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) /> 
1132				<div id="tab5" class="article-section article-section-map accordion-item"> 
1133					<a href="#tabContent5" id="tabHeading5" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent5" data-toggle="liferay-collapse" data-target="#tabContent5"> 
1134						<h3 class="h3 accordion-header">${languageUtil.get(request,'map')}</h3> 
1135					</a> 
1136					<div id="tabContent5" class="article-section-content accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading5"> 
1137						<div id="article-map-wrapper-${articleId}" class="article-map-wrapper">  
1138							<h4 class="hide-accessible">${languageUtil.get(request,'map')}</h4> 
1139							<div id="article-map-content-${articleId}" style="width: 100%; height: 500px; z-index:1" role="application" aria-label="${languageUtil.format(request,'infoasturias-mapa-de', title)}"> 
1140								<!-- MAP --> 
1141							</div> 
1142							<div class="hide-accessible" aria-live="polite"> 
1143								<p>${languageUtil.get(request,'first-name')}: ${title}</p> 
1144								<p>GPS: ${Geolocalizacion.Coordenadas.data}</p> 
1145								<#if Contacto.Direccion.data?has_content> 
1146									<p>${languageUtil.get(request,'address')}: ${Contacto.Direccion.data} ■ ${Contacto.CP.data} - ${Contacto.Localidad.data}</p> 
1147								</#if> 
1148							</div>							 
1149							<div class="article-map-form">  
1150								<div class="name important">${title}</div> 
1151								<div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div> 
1152								<form action="https://maps.google.es/maps" method="get" target="_blank" aria-label="${languageUtil.get(request,'infoasturias-como-llegar')}"> 
1153									<input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}"> 
1154									<label for="saddr_${articleId}" class="label"> 
1155										${languageUtil.get(request,'infoasturias-from')}: 
1156									</label> 
1157									<input class="form-control" type="text" maxlength="40" name="saddr" id="saddr_${articleId}" value=""  placeholder="${languageUtil.get(request,'infoasturias-insert-from')}" aria-required="true"> 
1158									<button class="btn btn-text" type="submit" aria-label="${languageUtil.get(request,'infoasturias-como-llegar')} (${languageUtil.get(request,'opens-new-window')})"> 
1159										${languageUtil.get(request,'infoasturias-como-llegar')}  
1160										<span aria-hidden="true">&raquo;</span> 
1161									</button> 
1162								</form> 
1163							</div> 
1164						</div> 
1165						<script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script> 
1166						<script type="text/javascript"> 
1167							AUI().ready('aui-base', function(A){ 
1168								var lat = ${coordenadas[0]}, 
1169									lng = ${coordenadas[1]}, 
1170									zoom = 16; 
1171								mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16}); 
1172 
1173								//Marker 
1174								var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png'; 
1175								var defaultIcon = L.icon({ 
1176									iconUrl: defaultIconTheme, 
1177									iconSize:     [36, 53], 
1178									iconAnchor:   [18, 53], 
1179									iconShadow:   [0,0], 
1180									popupAnchor:  [0, -30] 
1181								}); 
1182								var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent); 
1183								 
1184								var contentString = '<div class="row">'; 
1185								contentString += '<div class="col-12">'; 
1186								contentString += '<div class="h4">${htmlUtil.escape(title)}</div>'; 
1187								contentString += '</div>'; 
1188								contentString += '</div>'; 
1189								 
1190								contentString += '<div class="row">'; 
1191								contentString += '<div class="col-12">'; 
1192								<#if validator.isNotNull(articleMainImageThumbnail1)> 
1193									contentString += '<img class="pull-right mb-2 ml-2" style="max-width:80px;" src="${articleMainImageThumbnail1}" alt="${htmlUtil.escape(title)}"/>'; 
1194								</#if> 
1195								contentString += '<dl class="mb-0">'; 
1196								<#if address?has_content> 
1197									contentString += '<dt>${languageUtil.get(request,'address')}</dt>'; 
1198									contentString += '<dd>${htmlUtil.escape(address)}</dd>'; 
1199								</#if> 
1200								<#if Contacto.Telefono.data?has_content> 
1201									contentString += '<dt>${languageUtil.get(request,'phone')}</dt>'; 
1202									contentString += '<dd>${Contacto.Telefono.data}</dd>'; 
1203								</#if> 
1204								<#if Contacto.Email.getData()?has_content> 
1205									contentString += '<dt>${languageUtil.get(request,'email')}</dt>'; 
1206									<#list Contacto.Email.getSiblings() as Item> 
1207										contentString += '<dd><a href="mailto:${Item.data}" title="${languageUtil.format(request,'go-to-x', 'email')}">${Item.data}</a></dd>'; 
1208									</#list> 
1209								</#if> 
1210								<#if Contacto.Web.data?has_content> 
1211									<#assign linkURL = Contacto.Web.data/>	 
1212									<#if !stringUtil.startsWith(linkURL, "http")> 
1213										<#assign linkURL = "https://${Contacto.Web.data}"/> 
1214									</#if> 
1215									contentString += '<dt>${languageUtil.get(request,'site')}</dt>'; 
1216									contentString += '<dd><a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}">${Contacto.Web.data}</a></dd'; 
1217								</#if> 
1218								contentString += '</dl>'; 
1219								contentString += '</div>'; 
1220								contentString += '</div>'; 
1221								marker.bindPopup(contentString); 
1222 
1223								//Contributor 
1224								L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
1225									attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.' 
1226								}).addTo(mapContent); 
1227								 
1228							}); //AUI.ready 
1229						</script> 
1230					</div> 
1231				</div> 
1232				<#assign showFirstTab = false> 
1233			</#if>			 
1234			<#if hasTab6> 
1235				<div id="tab6" class="article-section accordion-item"> 
1236					<a href="#tabContent6" id="tabHeading6" class="tab <#if !showFirstTab>collapsed</#if>" role="button" tabindex="0" aria-expanded="${getterUtil.getString(showFirstTab)}" aria-controls="tabContent6" data-toggle="liferay-collapse" data-target="#tabContent6"> 
1237						<h3 class="h3 accordion-header">${languageUtil.get(request,'infoasturias-info-mascotas')}</h3> 
1238					</a> 
1239					<div id="tabContent6" class="article-section-content article-section-color article-section-background accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading6"> 
1240						<#if AsturiasMascotas.SuplementoMascota?? && AsturiasMascotas.SuplementoMascota.data?has_content || AsturiasMascotas.LimitacionPeso?? && AsturiasMascotas.LimitacionPeso.data?has_content || 			  AsturiasMascotas.AdmitePPP?? && AsturiasMascotas.AdmitePPP.data?has_content || AsturiasMascotas.NumeroMaximo?? && AsturiasMascotas.NumeroMaximo.data?has_content || AsturiasMascotas.NumeroMaximoAlojamiento?? && AsturiasMascotas.NumeroMaximoAlojamiento.data?has_content || AsturiasMascotas.SolosHabitacion?? && AsturiasMascotas.SolosHabitacion.data?has_content || AsturiasMascotas.AccesoInterior?? && AsturiasMascotas.AccesoInterior.data?has_content || AsturiasMascotas.Cama?? && AsturiasMascotas.Cama.data?has_content || AsturiasMascotas.Comedero?? && AsturiasMascotas.Comedero.data?has_content || AsturiasMascotas.ZonasComunes?? && AsturiasMascotas.ZonasComunes.data?has_content || AsturiasMascotas.ZonasComunesDetalle?? && AsturiasMascotas.ZonasComunesDetalle.data?has_content || AsturiasMascotas.Guarderia?? && AsturiasMascotas.Guarderia.data?has_content || AsturiasMascotas.OtrasMascotas?? && AsturiasMascotas.OtrasMascotas.data?has_content || AsturiasMascotas.OtrosAnimales?? && AsturiasMascotas.OtrosAnimales.data?has_content || AsturiasMascotas.DetalleNormas?? && AsturiasMascotas.DetalleNormas.data?has_content> 
1241							<div class="list-unstyled"> 
1242								<div class="list-iconos"> 
1243									<#if AsturiasMascotas.SuplementoMascota.data?has_content>									 
1244										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono">										 
1245											<#if AsturiasMascotas.SuplementoMascota.getData() == "Si"> 
1246												<#assign SuplementoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Suplemento por mascota")/>	 
1247												<div ><img src="${SuplementoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-con-suplemento')}"/></div> 
1248												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-con-suplemento')}</span>											 
1249											<#elseif AsturiasMascotas.SuplementoMascota.getData() == "No"> 
1250												<#assign SinSuplementoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Sin suplemento por mascota")/>	 
1251												<div ><img src="${SinSuplementoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-no-suplemento')}"/></div> 
1252												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-no-suplemento')}</span>														 
1253											</#if>									 
1254										</div>									 
1255									</#if>	 
1256									<#if AsturiasMascotas.LimitacionPeso.data?has_content> 
1257										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1258											<#assign LimitacionPesoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Limitación de tamaño")/> 
1259											<div><img src="${LimitacionPesoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-peso')}"/><span class="value">${AsturiasMascotas.LimitacionPeso.data}</span></div> 
1260											<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-peso')}</span>																	 
1261										</div> 
1262									</#if>	 
1263									<#if AsturiasMascotas.NumeroMaximoAlojamiento??> 
1264										<#if AsturiasMascotas.NumeroMaximoAlojamiento.data?has_content> 
1265											<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1266												<#assign NumeroMaximoAlojamientoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros en el alojamiento")/> 
1267												<div><img src="${NumeroMaximoAlojamientoImage[0]}" alt="${languageUtil.get(request,'infoasturias-mascotas-maximo-establecimiento')}"/><span class="value-icono">${AsturiasMascotas.NumeroMaximoAlojamiento.data}</span></div> 
1268												<span class="text-value">${languageUtil.get(request,'infoasturias-mascotas-maximo-establecimiento')}</span>																	 
1269											</div> 
1270										</#if> 
1271									</#if> 
1272									<#if AsturiasMascotas.NumeroMaximo.data?has_content> 
1273										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono"> 
1274											<#assign NumeroMaximoImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Número máximo de perros por reserva")/> 
1275											<div><img src="${NumeroMaximoImage[0]}" alt="${languageUtil.get(request,'infoasturias-maximo-habitacion')}"/><span class="value-icono">${AsturiasMascotas.NumeroMaximo.data}</span></div> 
1276											<span class="text-value">${languageUtil.get(request,'infoasturias-maximo-habitacion')}</span>																	 
1277										</div> 
1278									</#if>															 
1279									<#if AsturiasMascotas.SolosHabitacion.data?has_content>									 
1280										<div class="col-xl-2 col-sm-6 col-xs-12 text-center list-inline-item icono">										 
1281											<#if AsturiasMascotas.SolosHabitacion.getData() == "Si"> 
1282												<#assign SolosHabitacionImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "Se permite dejar el perro solo en la habitación")/>	 
1283												<div ><img src="${SolosHabitacionImage[0]}" alt="${languageUtil.get(request,'infoasturias-solas-habitacion')}"/></div> 
1284												<span class="text-value">${languageUtil.get(request,'infoasturias-solas-habitacion')}</span>											 
1285											<#else> 
1286												<#assign NoSolosHabitacionImage = assetCategoryTool.getImagesByVocabularyCategoryName(groupId, "Mascotas", "No se permite dejar el perro solo en la habitación")/>	 
1287												<div><img src="${NoSolosHabitacionImage[0]}" alt="${languageUtil.get(request,'infoasturias-no-solas-habitacion')}"/></div> 
1288												<span class="text-value">${languageUtil.get(request,'infoasturias-no-solas-habitacion')}</span>														 
1289											</#if>									 
1290										</div>									 
1291									</#if>	 
1292								</div> 
1293								<div class="article-info-table">	 
1294									<div class="mb-4 title-normas article-info-border">${languageUtil.get(request,'infoasturias-normas-mascotas')}</div>	 
1295									<ul class="list-unstyled"> 
1296										<#if AsturiasMascotas.AdmitePPP.data?has_content> 
1297											<li class="fas d-block track">									 
1298												<#if AsturiasMascotas.AdmitePPP.getData() == "Si"> 
1299													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-ppp')}.</span>	 
1300												<#else> 
1301													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-ppp')}.</span> 
1302												</#if>										 
1303											</li> 
1304										</#if>	 
1305										<#if AsturiasMascotas.ZonasComunesDetalle ??>										 
1306											<#if AsturiasMascotas.ZonasComunes?? && AsturiasMascotas.ZonasComunes.data?has_content || AsturiasMascotas.ZonasComunesDetalle?? && AsturiasMascotas.ZonasComunesDetalle.data?has_content> 
1307																				 
1308												<#if AsturiasMascotas.ZonasComunes.getData() == "Si"> 
1309													<li class="fas d-block track">	 
1310														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-zonas-comunes')}.</span> 
1311													</li> 
1312												<#elseif AsturiasMascotas.ZonasComunes.getData() == "No"> 
1313													<li class="fas d-block track">	 
1314														<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-zonas-comunes')}.</span> 
1315													</li> 
1316												<#elseif validator.isNotNull(AsturiasMascotas.ZonasComunesDetalle.data)> 
1317													<li class="fas d-block track">	 
1318														<span class="text-rule">${AsturiasMascotas.ZonasComunesDetalle.data}</span>	 
1319													</li> 
1320												</#if> 
1321											 
1322											</#if>	 
1323										</#if>										 
1324										<#if AsturiasMascotas.Cama.data?has_content> 
1325											<li class="fas d-block track">									 
1326												<#if AsturiasMascotas.Cama.getData() == "Si"> 
1327													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-cama')}.</span>	 
1328												<#else> 
1329													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-mascotas-cama')}.</span>												 
1330												</#if>										 
1331											</li> 
1332										</#if>								 
1333										<#if AsturiasMascotas.Comedero.data?has_content> 
1334											<li class="fas d-block track">									 
1335												<#if AsturiasMascotas.Comedero.getData() == "Si"> 
1336													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-comedero')}.</span>	 
1337												<#else> 
1338													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-no-comedero')}.</span>												 
1339												</#if>											 
1340											</li> 
1341										</#if>			 
1342										<#if AsturiasMascotas.Guarderia.data?has_content> 
1343											<li class="fas d-block track">									 
1344												<#if AsturiasMascotas.Guarderia.getData() == "Si"> 
1345													<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-guarderia')}.</span>	 
1346												<#else> 
1347													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-mascotas-guarderia')}.</span>												 
1348												</#if>									 
1349											</li> 
1350										</#if>		 
1351										<#if AsturiasMascotas.OtrasMascotas?? && AsturiasMascotas.OtrasMascotas.data?has_content || AsturiasMascotas.OtrosAnimales?? && AsturiasMascotas.OtrosAnimales.data?has_content> 
1352											<li class="fas d-block track">									 
1353												<#if AsturiasMascotas.OtrasMascotas.getData() == "Si"> 
1354													<span class="text-rule">${languageUtil.get(request,'infoasturias-otras-mascotas')}:</span> 
1355													<span class="text-rule">${AsturiasMascotas.OtrosAnimales.data}</span> 
1356												<#else> 
1357													<span class="text-rule">${languageUtil.get(request,'infoasturias-no-otras-mascotas')}</span> 
1358												</#if>										 
1359											</li> 
1360										</#if>									 
1361										<#if AsturiasMascotas.PrecioSuplemento?? && AsturiasMascotas.PrecioSuplemento.data?has_content> 
1362											<li class="fas d-block track mt-2"> 
1363												<span class="text-rule">${languageUtil.get(request,'infoasturias-mascotas-suplemento')}: ${AsturiasMascotas.PrecioSuplemento.data}</span>											 
1364											</li> 
1365										</#if>											 
1366									</ul> 
1367									<#if AsturiasMascotas.DetalleNormas.data?has_content>						 
1368										<div class="rules"> 
1369											<#assign iconSPAN = AsturiasMascotas.DetalleNormas.data?replace('<p>','<p><span class="fas"></span>')/> 
1370											${iconSPAN} 
1371										</div> 
1372									</#if> 
1373								</div> 
1374							</div> 
1375						</#if> 
1376					</div> 
1377				</div> 
1378				<#assign showFirstTab = false> 
1379			</#if> 
1380 
1381		</div> 
1382		<div class="article-border"> 
1383			<#if Observaciones.Observacion.data?has_content> 
1384				${Observaciones.Observacion.data} 
1385			</#if> 
1386			 
1387			<#if stringUtil.matches(Observaciones.MasInformacion.data, "//") && Contacto.MasInformacion?? > 
1388				<a class="" href="${Contacto.MasInformacion.data}" title="${languageUtil.format(request,'go-to-x', 'link')}">${Contacto.MasInformacion.data} 
1389			<#elseif validator.isNotNull(Observaciones.MasInformacion.data)> 
1390				<span class="">${Observaciones.MasInformacion.data}</span> 
1391			</#if> 
1392 
1393			<#if OtrosDatos.DatosFacilitadosPor?has_content> 
1394				<div class="datos-facilitados"> 
1395					<span class="important mr-1">${languageUtil.get(request,'infoasturias-datos-facilitados-por')}:</span><span class="text-wrapper">${OtrosDatos.DatosFacilitadosPor.data}.</span> 
1396				</div> 
1397			</#if> 
1398			 
1399			<#if CodigoDGT.data?has_content> 
1400				<div> 
1401					<span class="text-wrapper mr-1">${languageUtil.get(request,'infoasturias-establecimiento-inscrito-en-registro')} </span><span class="important">${CodigoDGT.data}.</span> 
1402				</div> 
1403			</#if> 
1404			<#if precioOrientativo>			 
1405					<div class="text-wrapper">${languageUtil.get(request,'infoasturias-precios-orientativos')}.</div> 
1406			</#if> 
1407		</div> 
1408		<div class="row mt-5"> 
1409			<div class="col-xl-6 col-sm-6 col-xs-12 mb-3"> 
1410				<div class="text-center"> 
1411					<#if Contacto.Email.data?has_content> 
1412						<a href="mailto:${Contacto.Email.data}?Subject=${htmlUtil.escapeURL(title)}:%20${languageUtil.get(request,'infoasturias-more-info')}" class="btn btn-default text-center text-uppercase" aria-label="${languageUtil.get(request,'infoasturias-contacto-alojamiento')}: ${Contacto.Email.data}"> 
1413							<span class="far fa-envelope mr-2" aria-hidden="true"></span> 
1414							<span class="btn-default">${languageUtil.get(request,'infoasturias-contacto-alojamiento')}</span> 
1415						</a> 
1416					</#if>					 
1417				</div>	 
1418			</div> 
1419			<div class="col-xl-6 col-sm-6 col-xs-12"> 
1420				<div class="text-center">         
1421					<#if Peregrinos ??> 
1422						<#if getterUtil.getBoolean(Peregrinos.AdmiteReservas.getData())> 
1423							<#assign showReservaButton = false/> 
1424						</#if>     
1425						<#if Peregrinos.BookingWeb?? && Peregrinos.BookingWeb.data?has_content> 
1426							<#assign UrlBooking = Peregrinos.BookingWeb.getData() /> 
1427							<#assign isExternalLink = !UrlBooking?starts_with("/") && !UrlBooking?contains(themeDisplay.getPortalURL()) /> 
1428							<a href="${htmlUtil.escapeHREF(UrlBooking)}" class="btn btn-primary btn-small text-center text-uppercase" 
1429								<#if isExternalLink> 
1430									target="_blank"  
1431									rel="noopener noreferrer" 
1432									aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')} (${languageUtil.get(request,'opens-new-window')})" 
1433								</#if>> 
1434								<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"/> 
1435								<span class="btn-text"> 
1436									${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1437								</span> 
1438							</a>                                                 
1439							<#assign showReservaButton = false/> 
1440						</#if> 
1441					</#if> 
1442					<#if Contacto.Email.data?has_content || CodigoDGT.data?has_content> 
1443						<#if showReservaButton> 
1444							<div class="article-info-table-cell align-middle"> 
1445								<#if Contacto.Email.data?has_content> 
1446									<#assign params = {"displayStyle": "ddmTemplate_441008", "portletId": portletTool.getPortletId(request), "articleId": "${articleId}"}> 
1447									<#assign portletURL = portletTool.createURL(request, "as_asac_adtvisor_portlet_AdtVisorDialogPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", params) /> 
1448									<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-availability-request" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${portletURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '', '','formularioReserva', 'formularioReservaIframe');"> 
1449										<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="${languageUtil.format(request,'go-to-x', 'infoasturias-reservar-ahora')}" aria-hidden="true" role="presentation"> 
1450										${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1451									</button> 
1452								</#if> 
1453								<#if CodigoDGT.data?has_content> 
1454									<#assign paramsMap = {"accommodationCode": CodigoDGT.data, "jspPage": "/html/results/accommodation/accommodation.jsp"} /> 
1455									<#assign bookingURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingResultsPortlet", themeDisplay.getPlid(), themeDisplay.getLifecycle(), "pop_up", paramsMap) /> 
1456									<button type="button" class="btn btn-primary btn-small text-center text-uppercase hide btn-accommodation-booking" aria-label="${languageUtil.get(request,'infoasturias-reservar-ahora')}" onclick="event.preventDefault(); showDialogIframe('${bookingURL}','${languageUtil.get(request,'infoasturias-solicitud-reserva')}', '800px', '','formularioReserva', 'formularioReservaIframe');"> 
1457										<img src="/o/turismo-asturias-theme/images/icons/tickets.png" alt="" aria-hidden="true" role="presentation"> 
1458										${languageUtil.get(request,'infoasturias-reservar-ahora')} 
1459									</button> 
1460								</#if> 
1461							</div> 
1462						</#if> 
1463					</#if> 
1464				</div> 
1465			</div> 
1466		</div> 
1467		 
1468	<#-- Related --> 
1469	<#assign relatedJournalArticles = assetTool.getRelatedJournalArticlesApproved(assetEntry)/> 
1470	<#if validator.isNotNull(relatedJournalArticles) && relatedJournalArticles?size gt 0> 
1471		<div class="article-related portlet-background-grey-container"> 
1472			<div class="container"> 
1473				<h3 class="title-section">${languageUtil.get(request,'related-assets')}</h3> 
1474				<div class="slick article-related-slick"> 
1475					<#list relatedJournalArticles as currentJournalArticle> 
1476						<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
1477							<div class="slide"> 
1478								<a class="card background card-background-9-14"  href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
1479									<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
1480										<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
1481										<span class="card-body"> 
1482											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
1483										</span> 
1484									</span> 
1485								</a> 
1486							</div> 
1487					</#list> 
1488				</div> 
1489			</div> 
1490		</div> 
1491	</#if> 
1492	 
1493	<#-- Nearby --> 
1494	<#assign classTypeIds = [598853,582814,584415,625593,623117,609431,593783]> 
1495	<#if themeDisplay.getScopeGroupId()==assetEntry.getGroupId()> 
1496		<#assign assetsNearJournalArticles = assetNearTool.getNearJournalArticles(themeDisplay.getScopeGroupId(), assetEntry.getEntryId(), 50.0, classTypeIds, 25)! /> 
1497		<#if validator.isNotNull(assetsNearJournalArticles) && assetsNearJournalArticles?size gt 0> 
1498			<div class="article-nearby portlet-container-margin"> 
1499				<div class="container"> 
1500					<div class="article-nearby-container"> 
1501						<h3 class="title-section">${languageUtil.get(request,'infoasturias-near-here')}</h3> 
1502						<div class="slick article-nearby-slick"> 
1503							<#list assetsNearJournalArticles as currentJournalArticle> 
1504								<#assign viewURL = journalTool.getDisplayPage(currentJournalArticle, themeDisplay, true)/> 
1505								<div class="slide"> 
1506									<a class="card" href="${viewURL}" title="${languageUtil.format(request, 'go-to-x', currentJournalArticle.getTitle(locale))}"> 
1507										<span class="d-block image-wrapper aspect-ratio-bg-cover aspect-ratio-4-to-3" style="background-image: url('${currentJournalArticle.getSmallImageURL()}');"> 
1508											<img class="hide-accessible" src="${currentJournalArticle.getSmallImageURL()}" alt="${currentJournalArticle.getTitle(locale)}"> 
1509											<span class="card-hover"> 
1510												<span class="card-text">${currentJournalArticle.getDescription(locale)}</span> 
1511											</span> 
1512										</span> 
1513										<span class="card-body"> 
1514											<span class="card-title">${currentJournalArticle.getTitle(locale)}</span> 
1515											<span class="card-subtitle"> 
1516												<span class="d-block">${currentJournalArticle.getVersion()} Kms</span> 
1517												<span class="d-block">${journalTool.getCategoriesNames(groupId, currentJournalArticle.getArticleId(), locale, ["Concejos"])}</span> 
1518											</span> 
1519										</span> 
1520									</a> 
1521								</div> 
1522							</#list> 
1523						</div> 
1524					</div> 
1525				</div> 
1526			</div> 
1527		</#if> 
1528	</#if> 
1529	 
1530	 
1531</article> 
1532<#assign params = {}> 
1533<#assign resourceURL = portletTool.createURL(request, "as_asac_accommodationbooking_AccommodationBookingSearchPortlet", themeDisplay.getPlid(), "RESOURCE_PHASE", "normal", params) /> 
1534<#assign resourceURL = httpUtil.addParameter(resourceURL,"p_p_resource_id","hasCentralReservation") /> 
1535 
1536<@liferay_aui["script"] use="aui-base,liferay-portlet-url,aui-io-request-deprecated,aui-io-plugin-deprecated"> 
1537 
1538	Liferay.provide(window,'<@portlet.namespace/>refreshPortlet', function(uri) { 
1539		location.href = uri; 
1540	}); 
1541 
1542	function checkCentralReservation() { 
1543		A.io.request('${resourceURL}', { 
1544			data: { 
1545				_as_asac_accommodationbooking_AccommodationBookingSearchPortlet_articleId: "${articleId}" 
1546			}, 
1547			dataType: 'JSON', 
1548			method: 'GET', 
1549			on: { 
1550				success: function(){ 
1551					var response = this.get("responseData"); 
1552					var aniadido = parseInt(response.results); 
1553					var allAvailabilityButtons = A.all('.btn-availability-request'); 
1554					var allAccommodationButtons = A.all('.btn-accommodation-booking'); 
1555					 
1556					var availabilityButtons = allAvailabilityButtons.filter(function(node) { 
1557						var isInModal = node.ancestor('.modal, .dialog-iframe-modal, .yui3-widget-modal, [role="dialog"]'); 
1558						return !isInModal; 
1559					}); 
1560					 
1561					var accommodationButtons = allAccommodationButtons.filter(function(node) { 
1562						var isInModal = node.ancestor('.modal, .dialog-iframe-modal, .yui3-widget-modal, [role="dialog"]'); 
1563						return !isInModal; 
1564					}); 
1565					 
1566					if(aniadido > 0){ 
1567						availabilityButtons.hide(); 
1568						accommodationButtons.show(); 
1569					} else { 
1570						accommodationButtons.hide(); 
1571						availabilityButtons.show(); 
1572
1573				}, 
1574				error: function(){ 
1575					console.log('Error verificando central de reservas'); 
1576
1577
1578		}); 
1579
1580 
1581	A.on('domready', function() { 
1582		checkCentralReservation(); 
1583	}); 
1584	 
1585	//Show as_asac_accommodationbooking_AccommodationBookingResultsPortlet 
1586	<#if validator.isNotNull(cmd) && cmd == "search" > 
1587 
1588		function loadAccommodationOffers(){ 
1589			var href = "${roomsURL}"; 
1590			console.log("loadAccommodationOffers"); 
1591			console.log(href); 
1592			var node = A.one('#bookings-${articleId}'); 
1593			if(node){ 
1594				console.log("io-request"); 
1595				node.show();	 
1596				node.plug(A.Plugin.IO, {                                                      
1597					showLoading: true, 
1598					method: 'GET', 
1599					uri: href                                               
1600				}); 
1601
1602
1603		A.on('domready', function() { 
1604			loadAccommodationOffers(); 
1605		}); 
1606	</#if> 
1607</@>