Title Top HTML Halloween Zone
Are brave enough to
explore our spooky offers?
explore our spooky offers?
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> offerArray[2] [in template "20116#20152#720355" at line 473, column 21] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign offerDay = offerArray[2]?number [in template "20116#20152#720355" at line 473, column 1] ----
1<style>
2
3
4.landing-paddings-home{
5 padding-left: 0;
6 padding-right: 0;
7}
8
9.landing-paddings{
10 padding-left: 0;
11 padding-right: 0;
12}
13 .taglib-social-bookmarks{
14 display: none;
15 }
16
17 .portlet-asset-publisher .portlet-title-text,
18 .portlet-asset-publisher .header-title,
19 .portlet-asset-publisher .h2 {
20 display: none;
21 }
22
23 .date_old{
24 filter: grayscale(1);
25 background-color: #545454 !important;
26 }
27 .img-container .url_old {
28 filter: grayscale(1);
29 background: transparent !important;
30 pointer-events: none;
31 cursor: default;
32 }
33
34
35 .old {
36 filter: grayscale(100%);
37 border-color: #545454 !important;
38 }
39
40 .old:after {
41 background: none;
42 background: none;
43 background: none;
44 filter: none;
45 }
46
47 .img-container .ribbon_old:before,
48 .img-container .ribbon_old:after{
49 filter: grayscale(1);
50 }
51
52 .img-container .external-urlOld {
53 padding: 5px 30px;
54 font-size: 18px;
55 display: block;
56 }
57
58
59
60 .img-container {
61 position: relative;
62 overflow: hidden;
63 width: 100%;
64 height: 470px;
65 background-position: center !important;
66 background-repeat: no-repeat !important;
67 font-family: 'SourceSansPro';
68 border-width: 4px;
69 border-color: rgb(201, 12, 18);
70 border-style: solid;
71 border-radius: 14px;
72 overflow: visible;
73 }
74
75 .img-container:after {
76 content:'';
77 position:absolute;
78 border-bottom-left-radius: 10px;
79 border-bottom-right-radius: 10px;
80 left:0;
81 top:0;
82 width:100%;
83 height:100%;
84 display:inline-block;
85 background: rgb(204,4,4);
86 background: -moz-linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
87 background: -webkit-linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
88 background: linear-gradient(0deg, rgba(204,4,4,1) 0%, rgba(188,72,72,0) 100%);
89 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#cc0404",endColorstr="#bc4848",GradientType=1);
90 }
91
92 .img-container .date-text {
93 font-family: 'SourceSansPro';
94 padding: 8px;
95 position: absolute;
96 z-index: 1;
97 top: -4px;
98 background: #c50016;
99 left: 50px;
100 text-align: center;
101 width: 70px;
102 height: 80px;
103 color: #fff;
104 font-weight: bold;
105 border-bottom-left-radius: 2px;
106 border-bottom-right-radius: 2px;
107 -webkit-box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
108 -moz-box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.2);
109 box-shadow: 1px 1px 1px 1px rgb(0 0 0 / 20%);
110 font-size: 14px;
111 text-shadow: 2px 2px rgb(0 0 0 / 20%);
112 }
113
114 .img-container .date-text .date-div {
115 font-size: 36px;
116 margin: -25% 0 -24% 0;
117 }
118
119 .img-container .offer-title {
120 font-family: 'SourceSansPro';
121 position: absolute;
122 top: 42%;
123 left: 50%;
124 border-radius: 5px;
125 -webkit-transform: translate(-50%, -40%);
126 -moz-transform: translate(-50%, -40%);
127 -ms-transform: translate(-50%, -40%);
128 -o-transform: translate(-50%, -40%);
129 transform: translate(-50%, -40%);
130 color: #fff;
131 font-weight: normal;
132 font-size: 48px;
133 z-index: 1;
134 width: fit-content;
135 width: 80%;
136 line-height: 1;
137 font-weight: bold;
138 padding: 5px 10px;
139 text-align: center;
140 text-shadow: 3px 2px black;
141 display: -webkit-box;
142 -webkit-line-clamp: 2;
143 line-clamp: 2;
144 -webkit-box-orient: vertical;
145 overflow: hidden;
146 text-overflow: ellipsis;
147 }
148
149 .img-container .offer-description {
150 font-family: 'SourceSansPro';
151 color: #fff;
152 font-weight: normal;
153 font-size: 30px;
154 z-index: 1;
155 max-width: 80%;
156 text-align: center;
157 text-shadow: 2px 2px rgb(0 0 0);
158 line-height: 32px;
159 margin: 0 auto 35px;
160 display: -webkit-box;
161 -webkit-line-clamp: 3;
162 line-clamp: 3;
163 -webkit-box-orient: vertical;
164 overflow: hidden;
165 text-overflow: ellipsis;
166 }
167
168 .img-container .desc-url-container {
169 position: absolute;
170 bottom: 30px;
171 left: 50%;
172 -webkit-transform: translateX(-50%);
173 -moz-transform: translateX(-50%);
174 -ms-transform: translateX(-50%);
175 -o-transform: translateX(-50%);
176 transform: translateX(-50%);
177 z-index: 1;
178 width: 100%;
179 text-align: center;
180 padding: 10px 0;
181 }
182
183
184 .img-container .external-url {
185 padding: 6px 36px;
186 border: 2px solid rgb(40, 167, 69);
187 z-index: 1;
188 color: #fff !important;
189 text-decoration: none !important;
190 font-family: 'SourceSansPro';
191 font-weight: bold;
192 font-size: 30px;
193 border-radius: 7px;
194 box-shadow: 1px 1px 2px black;
195 border-radius: 50px;
196 background-color: rgb(40, 167, 69);
197 }
198
199 .terms-container {
200 overflow: hidden;
201 margin-top: 15px;
202 color: #fff;
203 background-color: rgba(0,0,0,.6);
204 padding: 40px;
205 margin-bottom: 32px;
206 }
207
208 .terms-container .terms-title {
209 text-align: center;
210 font-weight: bold;
211 font-size: 32px;
212 margin-bottom: 40px;
213 }
214
215 .terms-container .terms-content {
216 overflow-y: auto;
217 max-height: 500px;
218 padding-right: 16px;
219 font-weight: 400;
220 line-height: 37px;
221 font-size: 20px;
222}
223
224
225 .terms-container ::-webkit-scrollbar {
226 width: 22px;
227 scrollbar-width: auto;
228 scrollbar-color: #000000 #ffffff;
229 }
230
231 /* Track */
232 .terms-container ::-webkit-scrollbar-track {
233 -webkit-box-shadow: inset 0 0 6px rgba(255,255,255,0.8);
234 border-radius: 10px;
235 background: #ffffff;
236 }
237
238 /* Handle */
239 .terms-container ::-webkit-scrollbar-thumb {
240 -webkit-border-radius: 10px;
241 border-radius: 10px;
242 background: rgba(0,2,16,1);
243 border: 4px solid #ffffff;
244 }
245
246 .terms-container ::-webkit-scrollbar-thumb:window-inactive {
247 background: rgba(0,2,16,1);
248 }
249
250 .terms-container .terms-content{
251 scrollbar-width: thin;
252 scrollbar-color: rgba(0,2,16,1) rgba(255,255,255,0.8);
253 }
254
255 .terms-container .read-more,
256 .show-more-terms{
257 display: none;
258 }
259
260 .back-link-row {
261 margin: 30px 0px 15px 35px;
262 }
263
264 .back-link-row a {
265 color: white;
266 text-shadow: 2px 2px 4px black !important;
267 font-weight: 400 !important;
268 }
269
270 .back-link-row a:hover {
271 color: #eb2627 !important;
272 }
273
274 .back-link-row a span {
275 margin-right: 5px;
276 font-size: 11px;
277 }
278
279 .img-container .corner-ribbon-image {
280 position: absolute;
281 z-index: 1;
282 top: -4px;
283 right: -4px;
284 }
285
286 abbr {
287 text-decoration: none !important;
288 border: none !important;
289 }
290
291 @media screen and (max-width: 1380px) {
292
293 .img-container .offer-title {
294 font-size: 36px;
295 }
296
297 .img-container .offer-description {
298 font-size: 25px;
299 }
300 }
301
302 // @media screen and (max-width: 1200px) {
303 // .back-link-row {
304 // margin: 20px 0px 15px 32px;
305 // }
306 // }
307
308 @media screen and (max-width: 767px) {
309 .back-link-row {
310 margin: 5px 0px 10px 5px;
311 }
312
313 .terms-container .terms-content {
314 line-height: 20px;
315 font-size: 16px;
316 }
317
318 .landing-paddings{
319 padding-left: 20px;
320 padding-right: 20px;
321 }
322
323 .img-container{
324 height: 370px;
325 border-width: 4px;
326 border-color: rgb(201, 12, 18);
327 border-style: solid;
328 border-radius: 14px;
329 }
330
331 .img-container:after {
332 background: none;
333 background: none;
334 background: none;
335 background: none;
336 filter: none;
337 }
338
339 .img-container .date-text {
340 padding: 2px 10px;
341 left: 15px;
342 font-size: 14px;
343 width: 75px;
344 height: 75px;
345 }
346
347 .img-container .date-text .date-div {
348 font-size: 36px;
349 margin: -20%
350 }
351
352 .img-container .offer-title {
353 font-size: 30px;
354 top: 23%;
355 width: 95%;
356 left: 15px;
357 -webkit-transform: none;
358 -moz-transform: none;
359 -ms-transform: none;
360 -o-transform: none;
361 transform: none;
362 text-align: left;
363 padding: 0;
364 display: -webkit-box;
365 -webkit-line-clamp: 4;
366 line-clamp: 4;
367 -webkit-box-orient: vertical;
368 overflow: hidden;
369 text-overflow: ellipsis;
370 }
371
372 .img-container .desc-url-container {
373 bottom: 0;
374 padding: 15px;
375 background: rgb(187, 30, 44);
376 width: 100.5%;
377 border-bottom-left-radius: 10px;
378 border-bottom-right-radius: 10px;
379 }
380
381 .img-container .offer-description {
382 font-size: 16px;
383 width: 100%;
384 margin: auto auto 15px auto;
385 max-width: 100%;
386 text-align: left;
387 line-height: 20px;
388 }
389
390 .img-container .external-url {
391 padding: 3px 30px;
392 font-size: 18px;
393 display: block;
394 border-radius: 12px;
395 }
396
397
398 .terms-container {
399 padding: 10px 15px;
400 margin-bottom: 35px;
401 margin-top: 5px;
402 }
403
404 .terms-container .terms-title {
405 text-align: left;
406 font-size: 18px;
407 margin-bottom: 20px;
408 padding-left: 9px;
409 }
410
411 .terms-container .terms-content {
412 overflow: hidden;
413 position: relative;
414 max-height: 246px;
415 padding-right: 0px;
416 -webkit-mask-image: -webkit-gradient(linear, left 50%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
417 -webkit-transition: all 0.3s ease-in;
418 -moz-transition: all 0.3s ease-in;
419 -o-transition: all 0.3s ease-in;
420 transition: all 0.3s ease-in;
421 }
422
423 .terms-content ol {
424 padding-left: 30px;
425 }
426
427 .terms-content li {
428 padding-left: 5px;
429 }
430
431 .terms-content b, strong {
432 overflow-wrap: break-word;
433 }
434
435 .show-more-terms {
436 display: block;
437 text-align: center;
438 padding: 1px 0;
439 border: 1px solid #fff;
440 margin: 15px 9px;
441 cursor: pointer;
442 border-radius: 5px;
443 font-weight: 400;
444 }
445 }
446
447</style>
448
449<#assign curLangId = themeDisplay.getLanguageId()>
450<#assign twoLettersLang = curLangId?split("_")[0]>
451<#assign backText = "Back to Home (Calendar)"/>
452<#assign externalUrlText = "CLICK HERE"/>
453<#assign termsTitle = "TERMS & CONDITIONS"/>
454<#assign termsButtonText = "SHOW ALL TERMS"/>
455<#if twoLettersLang = "el">
456 <#assign backText = "Επιστροφή στην Αρχική (Ημερολόγιο)"/>
457 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
458 <#assign termsTitle = "ΟΡΟΙ ΚΑΙ ΠΡΟΫΠΟΘΕΣΕΙΣ"/>
459 <#assign termsButtonText = "ΔΕΙΤΕ ΠΕΡΙΣΣΟΤΕΡΑ"/>
460</#if>
461
462<#assign aDateTime = .now>
463<#assign aDate = aDateTime?date?iso_local>
464<#assign dateFormat1 = "EEE"/>
465<#assign dateFormat1Full = "EEEEE"/>
466<#assign dateFormat2 = "dd" />
467<#assign dateFormat3 = "MMM" />
468<#assign dateFormat3Full = "MMMMM" />
469<#assign offerDate_Data = getterUtil.getString(offerDate.getData())>
470<#assign offerDay = offerDate_Data />
471<#assign todayDay = aDate />
472<#assign offerArray = offerDate_Data?split("-") />
473<#assign offerDay = offerArray[2]?number />
474<#assign offerMonth = offerArray[1]?number />
475<#assign offerYear = offerArray[0]?number />
476<#assign currentArray = aDate?split("-") />
477<#assign todayDay = currentArray[2]?number />
478<#assign todayMonth = currentArray[1]?number />
479<#assign todayYear = currentArray[0]?number />
480
481<div class="container-fluid-1280 landing-paddings-home">
482 <div class="row">
483 <div class="col-sm-12 back-link-row">
484 <a href="/easter-egg-hunt"><span class="glyphicon glyphicon-chevron-left"></span>${backText}</a>
485 </div>
486 </div>
487 <#if (offerYear > todayYear)>
488 <#assign containerClass = "img-container" />
489 <#assign dateClass = "date-text" />
490 <#assign externalClass = "external-url" />
491 <#assign ribbonClass = "corner-ribbon-image" />
492 <#if twoLettersLang = "el">
493 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
494 <#else>
495 <#assign externalUrlText = "CLICK HERE"/>
496 </#if>
497 <#elseif offerYear == todayYear>
498 <#if (offerMonth > todayMonth)>
499 <#assign containerClass = "img-container" />
500 <#assign dateClass = "date-text" />
501 <#assign externalClass = "external-url" />
502 <#assign ribbonClass = "corner-ribbon-image" />
503 <#if twoLettersLang = "el">
504 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
505 <#else>
506 <#assign externalUrlText = "CLICK HERE"/>
507 </#if>
508 <#elseif offerMonth == todayMonth>
509 <#if offerDay < todayDay>
510 <#assign containerClass = "img-container old" />
511 <#assign dateClass = "date-text date_old" />
512 <#assign externalClass = "external-url url_old" />
513 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
514 <#if twoLettersLang = "el">
515 <#assign externalUrlText = "ΕΛΗΞΕ"/>
516 <#else>
517 <#assign externalUrlText = "EXPIRED"/>
518 </#if>
519 <#else>
520 <#assign containerClass = "img-container" />
521 <#assign dateClass = "date-text" />
522 <#assign externalClass = "external-url" />
523 <#assign ribbonClass = "corner-ribbon-image" />
524 <#if twoLettersLang = "el">
525 <#assign externalUrlText = "ΠΑΤΗΣΕ ΕΔΩ"/>
526 <#else>
527 <#assign externalUrlText = "CLICK HERE"/>
528 </#if>
529 </#if>
530 <#else>
531 <#assign containerClass = "img-container old" />
532 <#assign dateClass = "date-text date_old" />
533 <#assign externalClass = "external-url url_old" />
534 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
535 <#if twoLettersLang = "el">
536 <#assign externalUrlText = "ΕΛΗΞΕ"/>
537 <#else>
538 <#assign externalUrlText = "EXPIRED"/>
539 </#if>
540 </#if>
541 <#else>
542 <#assign containerClass = "img-container old" />
543 <#assign dateClass = "date-text date_old" />
544 <#assign externalClass = "external-url url_old" />
545 <#assign ribbonClass = "corner-ribbon-image ribbon_old" />
546 <#if twoLettersLang = "el">
547 <#assign externalUrlText = "ΕΛΗΞΕ"/>
548 <#else>
549 <#assign externalUrlText = "EXPIRED"/>
550 </#if>
551 </#if>
552 <div class="row">
553 <div class="col-sm-12 landing-paddings">
554 <div class="${containerClass}" style="background: url('${landingPageImage.getData()}')">
555 <div class="${dateClass}">
556 <#if validator.isNotNull(offerDate_Data)>
557 <#assign offerDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", offerDate_Data, locale)>
558
559 <div class="day-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat1Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat1, locale)}</abbr></div>
560 <div class="date-div">${dateUtil.getDate(offerDate_DateObj, dateFormat2, locale)}</div>
561 <div class="month-div"><abbr title="${dateUtil.getDate(offerDate_DateObj, dateFormat3Full, locale)}">${dateUtil.getDate(offerDate_DateObj, dateFormat3, locale)}</abbr></div>
562 </#if>
563 </div>
564 <div class="offer-title">${offerTitle.getData()}</div>
565 <div class="desc-url-container">
566 <div class="offer-description">${offerDescription.getData()}</div>
567 <a href="#" class="${externalClass}" target="_self">${externalUrlText}</a>
568 </div>
569 </div>
570 <div class="terms-container" id="terms-container">
571 <div class="terms-title">${termsTitle}</div>
572 <div class="terms-content">
573 ${offerTerms.getData()}
574 </div>
575 <div class="show-more-terms">${termsButtonText}</div>
576 </div>
577 </div>
578 </div>
579</div>
580
581<script>
582 $(document).on('click', '.show-more-terms', function() {
583 $('.terms-content').css('-webkit-mask-image', 'unset');
584 $('.terms-content').css('max-height', '9999px');
585 $(this).hide();
586 })
587
588 $(document).on('click', '.external-url', function(e) {
589 e.preventDefault();
590 if (window.outerWidth >= 768) {
591 window.location = '${offerURL.getData()}';
592 }
593 else {
594 if ('${offerURLMobile.getData()}' !== '') {
595 window.location = '${offerURLMobile.getData()}';
596 }
597 else {
598 window.location = '${offerURL.getData()}';
599 }
600 }
601 })
602</script>