Do you know what we use cookies for? We collect data on your browsing behaviour using our own and third-party cookies, which we will use to analyse your browsing in order to improve both the website's features and the products and services we offer you, to manage the advertising spaces, and to customise our range of products and services, based on your browsing habits and the contents viewed. Read all the information on how we use cookies in our Cookie policy.
Encuentra el Carnet Joven
de tu comunidad
Interactura con las regiones para encontrar tu carnet joven en el mapa
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
Has seleccionado:
Listado de comunidades:
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
-
An error occurred while processing the template.
The following has evaluated to null or missing: ==> damImagenCard.getAttribute("alt") [in template "554383#554429#" at line 10, column 25] ---- 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: ${damImagenCard.getAttribute("alt")} [in template "554383#554429#" at line 10, column 23] ----
1<#if (htmlTitulo?? && htmlTitulo.getData()?has_content) || (damImagenCard?? && damImagenCard.getData()?has_content) || (CTA.txtTexto?? && CTA.txtTexto.getData()?has_content)>
2<div class="popup-card">
3
4 <#if htmlTitulo.getData() != ''>
5 <div class="title">${htmlTitulo.getData()}</div>
6 </#if>
7
8 <#if damImagenCard.getData() != ''>
9 <div class="imagen">
10 <img alt="${damImagenCard.getAttribute("alt")}" src="${damImagenCard.getData()}">
11 </div>
12 </#if>
13
14 <#if CTA.txtTexto.getData() != ''>
15 <div class="cta row justify-content-center">
16 <#assign itemId = 'tealium-id' + randomizer.nextInt() />
17 <input id="${itemId}" type="submit" name="submit" class="body-bold btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" value="${CTA.txtTexto.getData()}">
18 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
19 </div>
20 </#if>
21
22</div>
23</#if>
An error occurred while processing the template.
The following has evaluated to null or missing: ==> ImagenHotspot.getAttribute("alt") [in template "554383#554429#943026" at line 269, column 25] ---- 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: ${ImagenHotspot.getAttribute("alt")} [in template "554383#554429#943026" at line 269, column 23] ----
1<style>
2/**Taken from https://github.com/animate-css/animate.css/blob/main/source/attention_seekers/shakeX.css **/
3@keyframes headShake {
4 0% {
5 transform: translateX(0);
6 }
7
8 6.5% {
9 transform: translateX(-6px) rotateY(-9deg);
10 }
11
12 18.5% {
13 transform: translateX(5px) rotateY(7deg);
14 }
15
16 31.5% {
17 transform: translateX(-3px) rotateY(-5deg);
18 }
19
20 43.5% {
21 transform: translateX(2px) rotateY(3deg);
22 }
23
24 50% {
25 transform: translateX(0);
26 }
27}
28
29
30 .headShake {
31 animation-timing-function: ease-in-out;
32 animation-name: headShake;
33 animation-duration: 1s;
34 }
35
36 .d2 {
37 padding-top:68px;
38 padding-bottom: 32px;
39 }
40
41 .hotspot {
42 font-family: Roboto;
43 scroll-snap-type: x mandatory;
44 overflow-x: scroll;
45 }
46
47 .hotspot * {
48 box-sizing:border-box;
49 }
50
51 .hotspot h3 {
52 padding: 0px;
53 margin: 10px 0px;
54 border-bottom: solid 2px #00fc7b;
55 }
56
57 .hotspot p {
58 padding: 0px;
59 margin: 10px 0px;
60 }
61
62 .hotspot > .map {
63 position: relative;
64 width:200%;
65 }
66
67 .hotspot > .map > ul {
68 position: absolute;
69 top: 0;
70 left: 0;
71 width:100%;
72 height:100%;
73 list-style: none;
74 }
75
76 .hotspot > .map > ul > li {
77 position:absolute;
78 transform: translate(-50%, -100%);
79 max-width: 300px;
80 padding: 2px;
81 }
82
83 .hotspot > .map > ul > li > .wrapper {
84 background-color: white;
85 margin: 1rem;
86 }
87
88 .hotspot > .map > ul > li > .wrapper > a {
89 color: #5e5e5e;
90 }
91
92 .hotspot > .map > ul > li > .wrapper > a > p {
93 display:none;
94 color: #5e5e5e;
95 }
96
97 .hotspot > .map > ul > li > .wrapper > a:after {
98 visibility:visible;
99 content: '+';
100 position: absolute;
101 left: 50%;
102 border-radius: 100%;
103 transform: translate(-50%, -50%);
104 width: 32px;
105 height: 32px;
106 font-weight: bold;
107 top: 100%;
108 border-width: 4px;
109 text-align: center;
110 vertical-align: center;
111 color: white;
112 background:linear-gradient(to left, #00fc7b, #36fff0);
113 font-size:32px;
114 line-height:30px;
115 }
116
117 .hotspot > .map > ul > li.active > .wrapper > a > p, .hotspot > .map > ul > li.active > .wrapper > a > p{
118 display:block;
119 background-color:white;
120 width: 100%;
121 height:100%;
122 }
123
124 .hotspot > .map > ul > li.active > .wrapper > a:after, .hotspot > .map > ul > li.active > .wrapper > a:after {
125 content: '\2212';
126 }
127
128 .hotspot .box {
129 position: absolute;
130 border-style:solid;
131 box-shadow: 2px 2px 2px #F5F5F5;
132 border-image: url('${CajaDeTexto.getData()}') 33% / 15px / 0px;
133 width: 100%;
134 height: calc(100%);
135 background-color: white;
136 z-index: -1;
137 border-radius:6px;
138 border-width:0;
139 }
140
141 .hotspot .box.top-left {
142 transform: rotateX(180deg);
143 }
144
145 .hotspot .box.top-right {
146 transform: rotateZ(180deg);
147 }
148
149 .hotspot .box.bottom-right {
150 transform: rotateY(180deg);
151 }
152
153 @media (min-width: 768px) {
154 .hotspot {
155 overflow-x:unset;
156 }
157
158 .hotspot > .map {
159 width: 100%;
160 position:relative;
161 margin: initial;
162 }
163
164 .hotspot > .map > ul > li {
165 max-width: 300px;
166 }
167 }
168
169</style>
170
171<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
172
173<#if selColorDeFondo?? && (selColorDeFondo.getData() != "" || damImagenFondo.getData() != "")>
174
175 <#assign backgroundStyle = ""
176 imagePath = ""
177 backgroundColor = ""
178 repeatable = ""
179 backgroundSize = ""
180 backgroundPosition = ""
181 />
182
183 <#if damImagenFondo.getData() != "">
184 <#assign imagePath = "url('" + damImagenFondo.getData() + "')">
185 </#if>
186
187 <#if selColorDeFondo.getData() != "">
188 <#if selColorDeFondo.getData() == 'white'>
189 <#assign backgroundColor = "#FFFFFF">
190 </#if>
191 <#if selColorDeFondo.getData() == 'gray-10'>
192 <#assign backgroundColor = "#F5F5F5">
193 </#if>
194 <#if selColorDeFondo.getData() == 'gray-gradient'>
195 <#assign backgroundColor = "linear-gradient(180deg, #E0E0E0 0%, #FFFFFF 100%)">
196 </#if>
197 <#if selColorDeFondo.getData() == 'green-gradient'>
198 <#assign backgroundColor = "linear-gradient(90deg, #00EABF 0%, #00F198 100%)">
199 </#if>
200 <#if selColorDeFondo.getData() == 'seabin'>
201 <#assign backgroundColor = "#e0f7fe">
202 </#if>
203 </#if>
204
205 <#if damImagenFondo.txtImagenFondoRepetible.getData() != "">
206 <#assign repeatable = "background-repeat:" + damImagenFondo.txtImagenFondoRepetible.getData()/>
207 </#if>
208
209 <#if damImagenFondo.txtImagenFondoAncho.getData() != "" || damImagenFondo.txtImagenFondoAlto.getData() != "">
210 <#assign backgroundSize = "background-size:" + damImagenFondo.txtImagenFondoAncho.getData() + " " + damImagenFondo.txtImagenFondoAlto.getData()/>
211 </#if>
212
213 <#if damImagenFondo.txtImagenFondoPosicionHorizontal.getData() != "" || damImagenFondo.txtImagenFondoPosicionVertical.getData() != "">
214 <#assign backgroundPosition = "background-position:" + damImagenFondo.txtImagenFondoPosicionHorizontal.getData() + " " + damImagenFondo.txtImagenFondoPosicionVertical.getData()/>
215 </#if>
216
217 <#if imagePath != "" && backgroundColor != "">
218
219 <#assign backgroundStyle = "background: " + imagePath + "," + backgroundColor/>
220
221 <#elseif imagePath == "" && backgroundColor != "">
222
223 <#assign backgroundStyle = "background: " + backgroundColor/>
224
225 <#elseif imagePath != "" && backgroundColor == "">
226
227 <#assign backgroundStyle = "background: " + imagePath/>
228
229 </#if>
230
231 <#assign style = [backgroundStyle, repeatable, backgroundSize, backgroundPosition]?join(";")>
232</#if>
233
234<#assign thereIsIntersection = damSvgIntersection?? && damSvgIntersection.getData() != ''>
235
236<div class="d2 container-fluid ${thereIsIntersection?then('pb-0', '')}" style="${style}">
237
238 <div class="container">
239 <#if htmlTitulo?? && htmlTitulo.getData() != "">
240 <div class="row">
241 <div class="col-12 px-0 text-${htmlTitulo.selTitleAlineacion.getData()}">
242 ${htmlTitulo.getData()}
243 </div>
244 </div>
245 </#if>
246
247 <#if txtDescripcion?? && txtDescripcion.getData()?has_content>
248 <div class="row">
249 <#assign cssClass = "">
250 <#if txtDescripcion.selDescripcionAlineacion.getData() == "left">
251 <#assign cssClass></#assign>
252 <#elseif txtDescripcion.selDescripcionAlineacion.getData() == "center">
253 <#assign cssClass>offset-sm-3</#assign>
254 <#elseif txtDescripcion.selDescripcionAlineacion.getData() == "right">
255 <#assign cssClass>offset-sm-6</#assign>
256 </#if>
257 <div class="col-12 col-sm-6 d-sm-block body-lg my-3 text-${txtDescripcion.selDescripcionAlineacion.getData()} ${cssClass}">
258 <#if txtDescripcion.getData() != "">
259 ${txtDescripcion.getData()}
260 </#if>
261 </div>
262 </div>
263 </#if>
264 </div>
265
266 <div class="hotspot container-fluid">
267
268 <div class="map">
269 <img alt="${ImagenHotspot.getAttribute("alt")}" src="${ImagenHotspot.getData()}" >
270
271 <#list Spot.getSiblings()>
272
273 <ul>
274
275 <#items as spot>
276 <#if (spot.Titulo?? && spot.Titulo.getData()?has_content) || (spot.Texto?? && spot.Texto.getData()?has_content) >
277 <li style="left:${spot.Izquierda.getData()}%;top:${spot.Arriba.getData()}%;">
278 <div class="box ${spot.OrientaciónTriangulo.getData()!''}"></div>
279 <div class="wrapper">
280 <#assign itemId = 'tealium-id' + random.nextInt() >
281 <a id="${itemId}" href="javascript:void(0);"><h3 class="h5">${spot.Titulo.getData()}</h3>${spot.Texto.getData()}</a>
282
283 <#if spot.Tealium.getData()?has_content>
284 <script>$("#${itemId}").on('click', function() {${spot.Tealium.getData()}});</script>
285 </#if>
286
287 </div>
288 </li>
289 </#if>
290 </#items>
291
292 <!--li style="left:50%; top:75%">
293 <img style="width:100%; height:100%;" src="${CajaDeTexto.getData()}">
294 <div padding="1rem">
295 <h3>Esta es una frase larga que ha de ocupar almenos dos lineas</h3>
296 <p>Esto es un paragrafo largo que almenos ha de ocupar un par o tres de líneas. Esto es un paragrafo largo que almenos ha de ocupar un par o tres de líneas.</p>
297 </div>
298 </li-->
299 </ul>
300
301 </#list>
302 </div>
303
304 </div>
305
306 <#if CTA.txtEnlace?? && CTA.txtEnlace.getData() != ""><#-- Tiene posicionado absoluto -->
307 <div class="container">
308 <div class="cta">
309 <#assign itemId = 'tealium-id' + random.nextInt() >
310 <a id="${itemId}" class="alternative btn btn-${CTA.selTipoEnlace.getData()} btn-color-${CTA.selColor.getData()}" style="width:fit-content; font-weight:bold; margin-left:auto; margin-right:auto;" href="${CTA.txtEnlace.getData()}" ${(CTA.chkNuevaVentana.getData() == 'true')?string('target="_blank"', '')}>${CTA.txtTexto.getData()}</a>
311 <#if CTA.txtTealium.getData() != ""><script>$("#${itemId}").on('click', function() {${CTA.txtTealium.getData()}});</script></#if>
312 </div>
313 </div>
314 </#if>
315</div>
316
317 <script>
318
319window.mobileCheck = function() {
320 let check = false;
321 (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
322 return check;
323};
324
325 window.addEventListener("load", function(event) {
326
327 if(mobileCheck()) {
328
329 try {
330 let observer = new IntersectionObserver(
331 function(entries, observer) {
332
333 entries.forEach(function(entry) {
334
335 if(entry.isIntersecting) {
336
337 $(entry.target).addClass('headShake');
338
339 observer.unobserve(entry.target);
340 }
341 });
342 },
343 {rootMargin: "0px 0px 0px 0px"},
344 {threshold : 0}
345 );
346
347 document.querySelectorAll('.hotspot').forEach(function(sect) { observer.observe(sect); });
348 } catch(error) {
349 console.error(error);
350 }
351
352 $(".hotspot").on('click touch', function (e) {
353 if($(e.target).is($(".hotspot ul"))) {
354 $(".hotspot li.active").removeClass('active');
355 }
356 });
357
358 $(".hotspot li").on('click touch', function (e) {
359 $(this).toggleClass('active');
360 });
361
362 } else {
363
364 $(".hotspot li").hover(function (e) {
365 $(this).toggleClass('active');
366 });
367
368 $(".hotspot li").blur(function (e) {
369 $(this).toggleClass('active');
370 });
371 }
372
373 }, false);
374
375 </script>