Our Leadership

Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing:
==> homeLeaders  [in template "20099#20135#108037" at line 480, column 24]

----
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: #list homeLeaders as leader  [in template "20099#20135#108037" at line 480, column 17]
----
1<#assign 
2    DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
3    <#assign watermarkMap="/documents/20126/45625/worldMap.png/"> 
4 
5        <#if entries?has_content> 
6            <#assign homeLeaders=[] /> 
7            <#list entries as curEntry> 
8                <#assign journalArticle=curEntry.getAssetRenderer().getArticle() /> 
9                <#assign document=saxReaderUtil.read(journalArticle.getContent()) /> 
10                <#assign root=document.getRootElement() /> 
11                <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) /> 
12                <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
13 
14                <#assign leaderName="" /> 
15                <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null"> 
16                    <#assign leaderName=extractStringValue(elements.Name?first, locale) /> 
17                </#if> 
18 
19                <#assign leaderJob="" /> 
20                <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null"> 
21                    <#assign leaderJob=extractStringValue(elements.Job?first, locale) /> 
22                </#if> 
23 
24                <#assign leaderOffice="" /> 
25                <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null"> 
26                    <#assign leaderOffice=extractStringValue(elements.Office?first, locale) /> 
27                </#if> 
28 
29                <#assign leaderDescription="" /> 
30                <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null"> 
31                    <#assign leaderDescription=extractStringValue(elements.Description?first, locale) /> 
32                </#if> 
33 
34                <#assign leaderPhoto="" /> 
35                <#if extractStringValue(elements.Photo?first, locale) !="null"> 
36                    <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) /> 
37                </#if> 
38 
39                <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob 
40                    ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] /> 
41            </#list> 
42        </#if> 
43 
44        <style> 
45            .containerMeetOurGlobalLeadershipLeaderHome { 
46                padding-bottom: 60px; 
47
48 
49            .titleMeetOurGlobalLeadership { 
50                font-size: 32px; 
51                font-weight: bold; 
52                font-style: normal; 
53                font-stretch: normal; 
54                line-height: 1.25; 
55                letter-spacing: normal; 
56                text-align: center; 
57                color: #000000; 
58
59 
60            .descriptionMeetOurGlobalLeadership { 
61                font-size: 14px; 
62                font-weight: normal; 
63                font-style: normal; 
64                font-stretch: normal; 
65                line-height: 1.43; 
66                letter-spacing: normal; 
67                text-align: center; 
68                color: #000000; 
69
70 
71            .meetTeamLeaders { 
72                padding: 12px 24px; 
73                font-size: 18px; 
74                font-weight: bold; 
75                font-style: normal; 
76                font-stretch: normal; 
77                line-height: 1.33; 
78                letter-spacing: normal; 
79                color: #000000; 
80                border: 2px solid black; 
81
82 
83            .ceoImgLeader { 
84                height: 100%; 
85                background-repeat: no-repeat !important; 
86                background-position: center top !important; 
87
88 
89            .containerImgLeaderAbout { 
90                text-align: center; 
91                height: 340px; 
92                background-repeat: no-repeat; 
93                background-position: center top; 
94                transition: background-size .4s ease-in; 
95
96 
97            .containerInfoLeaderAbout { 
98                padding-left: 30px; 
99                padding-top: 15px; 
100
101 
102            .containerInfoLeaderAbout p { 
103                margin: 0px; 
104                font-size: 14px; 
105                font-weight: 300; 
106                font-style: normal; 
107                font-stretch: normal; 
108                line-height: normal; 
109                letter-spacing: normal; 
110                color: #000000; 
111
112 
113            .containerInfoLeaderAbout p:first-child { 
114                font-weight: bold; 
115
116 
117            .descriptionCeo { 
118                position: absolute; 
119                bottom: 85px; 
120                left: -195%; 
121                width: 200%; 
122                font-size: 14px; 
123                font-weight: normal; 
124                font-style: normal; 
125                font-stretch: normal; 
126                line-height: 1.43; 
127                letter-spacing: normal; 
128                color: #000000; 
129
130 
131            .infoCeo { 
132                position: absolute; 
133                top: 25px; 
134                left: -12%; 
135                width: 50%; 
136                text-align: right; 
137
138 
139            .infoCeo p { 
140                margin: 0px; 
141                font-size: 14px; 
142                font-weight: 300; 
143                font-style: normal; 
144                font-stretch: normal; 
145                line-height: normal; 
146                letter-spacing: normal; 
147                color: #000000; 
148
149 
150            .infoCeo p:first-child { 
151                font-weight: bold; 
152
153 
154            .containerButtonLeaderHome { 
155                text-align: center; 
156                padding-top: 20px; 
157
158 
159            .meetTeamLeaders:hover { 
160                text-shadow: currentcolor 0.8px 0px 0px; 
161                font-size: 18px; 
162                padding: 12px 24px; 
163                border: 2px solid black; 
164                cursor: pointer; 
165
166 
167            .rowContainerLeadersAbout { 
168                margin-bottom: 32px; 
169
170 
171            .rowContainerLeadersAbout.first-row { 
172                border-bottom: 1px solid #d1d3d4; 
173                padding-bottom: 32px; 
174
175 
176            .containerLeadersAbout { 
177                flex: 0 0 17%; 
178
179 
180            .containerLeadersAbout:hover { 
181                cursor: pointer; 
182
183 
184            .containerLeaderAboutPopup { 
185                background-color: #fff; 
186                color: black; 
187                text-align: center; 
188                position: fixed; 
189                top: 19%; 
190                bottom: 40%; 
191                left: 25%; 
192                right: 25%; 
193                content: ""; 
194                padding: 1% 5% 1% 5%; 
195
196 
197            .popuptext { 
198                visibility: hidden; 
199                background-color: #000000ad; 
200                width: 100%; 
201                position: fixed; 
202                height: 100%; 
203                top: 0; 
204                left: 0; 
205                z-index: 55; 
206                cursor: auto; 
207
208 
209            .show { 
210                visibility: visible; 
211                -webkit-animation: fadeIn 1s; 
212                animation: fadeIn 1s; 
213                z-index: 60; 
214
215 
216            .showWithoutTime { 
217                visibility: visible; 
218                animation: 0s; 
219                z-index: 60; 
220
221 
222            .popup .show { 
223                visibility: visible; 
224                -webkit-animation: fadeIn 1s; 
225                animation: fadeIn 1s; 
226
227 
228            @-webkit-keyframes fadeIn { 
229                from { 
230                    opacity: 0; 
231
232 
233                to { 
234                    opacity: 1; 
235
236
237 
238            @keyframes fadeIn { 
239                from { 
240                    opacity: 0; 
241
242 
243                to { 
244                    opacity: 1; 
245
246
247 
248            .rowFlexLeaderCenterAboutPopup { 
249                height: 100%; 
250                background-repeat: no-repeat !important; 
251                background-size: contain !important; 
252
253 
254            .rowFlexLeaderCenterAboutPopup div { 
255                height: 100%; 
256
257 
258            .flexLeaderCenterAboutPopup { 
259                display: flex; 
260                justify-content: center; 
261                align-items: center; 
262                height: 100%; 
263                display: flex; 
264                flex-wrap: nowrap; 
265                flex-flow: column; 
266                align-items: flex-start; 
267
268 
269            .flexLeaderCenterAbout { 
270                text-align: left; 
271
272 
273            .addrsLeaderAboutPopup { 
274                font-size: 14px; 
275                font-weight: normal; 
276                font-style: normal; 
277                font-stretch: normal; 
278                line-height: 1.14; 
279                letter-spacing: normal; 
280                color: #5f6569; 
281
282 
283            .jobLeaderAboutPopup { 
284                font-size: 14px; 
285                font-weight: normal; 
286                font-style: normal; 
287                font-stretch: normal; 
288                line-height: 1.14; 
289                letter-spacing: normal; 
290                color: #5f6569; 
291                padding-bottom: 25px; 
292
293 
294            .nameLeaderAboutPopup { 
295                font-size: 32px; 
296                font-weight: bold; 
297                font-style: normal; 
298                font-stretch: normal; 
299                line-height: 1.25; 
300                letter-spacing: normal; 
301                color: #000000; 
302
303 
304            .descriptionLeaderAboutPopup { 
305                font-size: 16px; 
306                font-weight: normal; 
307                font-style: normal; 
308                font-stretch: normal; 
309                line-height: 1.5; 
310                letter-spacing: normal; 
311                color: #000000; 
312
313 
314            .spanCloseDetailLeaderPopup { 
315                float: right; 
316                position: absolute; 
317                right: 3%; 
318                top: 5%; 
319                font-size: 23px; 
320                color: #989da1; 
321                z-index: 66; 
322
323 
324            .spanCloseDetailLeaderPopup:hover { 
325                cursor: pointer; 
326
327 
328            .imgLeaderAboutPopup { 
329                background-repeat: no-repeat !important; 
330                background-position: left !important; 
331                background-size: contain !important; 
332
333 
334            .containerBeforeLeaderAbout { 
335                float: left; 
336                position: absolute; 
337                left: 0; 
338                top: 0%; 
339                font-size: 23px; 
340                color: #989da1; 
341                z-index: 67; 
342                height: 100%; 
343                display: flex; 
344                align-items: center; 
345
346 
347            .containerBeforeLeaderAbout:hover { 
348                cursor: pointer; 
349
350 
351            .containerAfterLeaderAbout { 
352                float: right; 
353                position: absolute; 
354                right: 0; 
355                top: 0%; 
356                font-size: 23px; 
357                color: #989da1; 
358                z-index: 67; 
359                height: 100%; 
360                display: flex; 
361                align-items: center; 
362
363 
364            .containerAfterLeaderAbout:hover { 
365                cursor: pointer; 
366
367 
368            .beforeLeaderAbout { 
369                left: 0px; 
370                position: absolute; 
371                width: 40px; 
372                height: 80px; 
373                background: #f2f3f3; 
374                -moz-border-radius: 0 100px 100px 0; 
375                -webkit-border-radius: 0 100px 100px 0; 
376                border-radius: 0 100px 100px 0; 
377                display: flex; 
378                align-items: center; 
379                justify-content: center; 
380                cursor: point; 
381
382 
383            .afterLeaderAbout { 
384                right: 0px; 
385                position: absolute; 
386                width: 40px; 
387                height: 80px; 
388                background: #f2f3f3; 
389                -moz-border-radius: 0 100px 100px 0; 
390                -webkit-border-radius: 0 100px 100px 0; 
391                border-radius: 100px 0 0 100px; 
392                display: flex; 
393                align-items: center; 
394                justify-content: center; 
395                cursor: point; 
396
397 
398            .iconCloseDetailLeaderPopup { 
399                cursor: point; 
400
401 
402            @media only screen and (max-width: 994px) { 
403                .containerLeadersAbout { 
404                    flex: 0 0 33%; 
405
406
407 
408            @media only screen and (max-width: 600px) { 
409                .containerLeadersAbout { 
410                    flex: 0 0 100%; 
411
412 
413                .containerInfoLeaderAbout p { 
414                    font-size: 18px; 
415                    text-align: center; 
416
417 
418                .containerInfoLeaderAbout { 
419                    padding-left: 0px; 
420
421 
422                .containerMeetOurGlobalLeadershipLeaderHome { 
423                    padding: 0px 15px 20px; 
424 
425
426 
427                .containerLeaderAboutPopup { 
428                    top: 45px !important; 
429                    bottom: 0% !important; 
430                    left: 0% !important; 
431                    right: 0% !important; 
432
433 
434                .rowFlexLeaderCenterAboutPopup { 
435                    background: none !important; 
436
437 
438                .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup { 
439                    display: none; 
440
441 
442                .nameLeaderAboutPopup { 
443                    //margin-top: 1.8em; 
444
445 
446                .spanCloseDetailLeaderPopup.neo-hover { 
447                    //margin-top: 1em; 
448
449 
450                .descriptionLeaderAboutPopup { 
451                    padding: 10px; 
452                    font-size: 12px; 
453
454 
455                .jobLeaderAboutPopup { 
456                    padding-left: 10px; 
457                    padding-bottom: 5px; 
458
459 
460                .nameLeaderAboutPopup { 
461                    padding-left: 10px; 
462
463
464 
465            .beforeLeaderAbout { 
466                display: none; 
467
468 
469            .afterLeaderAbout { 
470                display: none; 
471
472            .containerInfoLeaderAbout img 
473
474            width: 100px !important; 
475
476        </style> 
477 
478        <script> 
479            if (typeof leaders !== 'undefined') { 
480                <#list homeLeaders as leader> 
481                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
482                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
483                    leaders.push('${nameLeader}'); 
484                </#list> 
485            } else { 
486                var leaders = []; 
487                <#list homeLeaders as leader> 
488                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
489                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
490                    leaders.push('${nameLeader}'); 
491                </#list> 
492
493 
494            var sizeLeaders = leaders.length; 
495            var currentLeader; 
496            var indexLeader; 
497 
498            function showPopup(nameLeader) { 
499                currentLeader = nameLeader; 
500                var popup = document.getElementById(nameLeader); 
501                popup.classList.toggle("show"); 
502 
503                if (currentLeader == leaders[0]) { 
504                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
505                } else { 
506                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
507
508 
509                if (currentLeader == leaders[leaders.length - 1]) { 
510                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
511                } else { 
512                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
513
514
515 
516            function closePopup(nameLeader) { 
517                var popup = document.getElementById(nameLeader); 
518                popup.classList.remove("show"); 
519                popup.classList.remove("showWithoutTime"); 
520
521 
522            function beforeLeaderPopup() { 
523                leaders.forEach(function (leader, index) { 
524                    if (leader == currentLeader) { 
525                        indexLeader = index - 1; 
526
527                }); 
528                closePopup(currentLeader); 
529                currentLeader = leaders[indexLeader]; 
530                var popupNext = document.getElementById(leaders[indexLeader]); 
531                popupNext.classList.toggle("showWithoutTime"); 
532                if (currentLeader == leaders[0]) { 
533                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
534                } else { 
535                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
536
537 
538                if (currentLeader == leaders[leaders.length - 1]) { 
539                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
540                } else { 
541                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
542
543
544 
545            function afterLeaderPopup() { 
546                leaders.forEach(function (leader, index) { 
547                    if (leader == currentLeader) { 
548                        indexLeader = index + 1; 
549
550                }); 
551                closePopup(currentLeader); 
552                currentLeader = leaders[indexLeader]; 
553                var popupNext = document.getElementById(leaders[indexLeader]); 
554                popupNext.classList.toggle("showWithoutTime"); 
555                if (currentLeader == leaders[0]) { 
556                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
557                } else { 
558                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
559
560 
561                if (currentLeader == leaders[leaders.length - 1]) { 
562                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
563                } else { 
564                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
565
566            }   
567        </script> 
568 
569        <div class="neo-main-width" style="padding: 10px 0 10px 0; 
570                                    border-bottom: 1px solid #d1d3d4; 
571                                    margin-bottom: 20px!important;"> 
572            <div class="row rowContainerLeadersAbout"> 
573                <#list homeLeaders as leader> 
574                    <div class="col-md-2 col-xs-12" 
575                        style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;"> 
576                        <@printLeader leader=leader /> 
577                    </div> 
578                </#list> 
579            </div> 
580        </div> 
581 
582        <#macro printLeader leader> 
583            <#assign nameLeader=leader.Name?replace(' ', ' _') /> 
584            <#assign nameLeader=nameLeader?replace('\"', '_' ) /> 
585            <div onclick="showPopup('${nameLeader}')"> 
586                <div class="containerInfoLeaderAbout"> 
587 
588                    <#assign leaderImage = "" />                     
589                    <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) /> 
590                    <#assign imageUUID = defImage.getString("uuid") /> 
591                    <#assign imageGroupID = defImage.getInt("groupId") /> 
592                    <#assign imageDescription = defImage.getString("alt") /> 
593                    <#assign imageFolderID =0 /> 
594                    <#if imageUUID!=""> 
595                        <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() /> 
596                        <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID /> 
597                    </#if> 
598                    <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'> 
599                    <p>${leader.Name}</p> 
600                    <p>${leader.Job}</p> 
601                    <p>${leader.Office}</p> 
602                </div> 
603            </div> 
604 
605            <div id="${nameLeader}" class="popuptext"> 
606                <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail"> 
607                    <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')" 
608                            id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span> 
609 
610                    <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader /> 
611                    <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader /> 
612 
613                    <div class="containerBeforeLeaderAbout neo-hover"> 
614                        <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i 
615                                class="icon-chevron-left"></i></div> 
616                    </div> 
617                    <div class="containerAfterLeaderAbout neo-hover"> 
618                        <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i 
619                                class="icon-chevron-right"></i></div> 
620                    </div> 
621 
622                    <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')"> 
623                        <div class="col-md-12 flexLeaderCenterAbout"> 
624                            <p class="nameLeaderAboutPopup">${leader.Name}</p> 
625                            <p class="jobLeaderAboutPopup">${leader.Job}</p> 
626                            <p class="descriptionLeaderAboutPopup">${leader.Description}</p> 
627                        </div> 
628                    </div> 
629                </div> 
630            </div> 
631        </#macro> 
632 
633        <#function initializeVariables rootElement variables> 
634            <#assign values={} /> 
635            <#list variables as key> 
636                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") /> 
637                <#assign value=[] /> 
638                <#if xPathSelector.selectSingleNode(rootElement)??> 
639                    <#assign nodes=xPathSelector.selectNodes(rootElement) /> 
640                    <#if nodes?size &gt; 1> 
641                        <#list nodes as node> 
642                            <#assign value=value + [node]> 
643                        </#list> 
644                        <#else> 
645                            <#assign value=[xPathSelector.selectSingleNode(rootElement)] /> 
646                    </#if> 
647                    <#else> 
648                        <#assign value=[] /> 
649                </#if> 
650                <#assign values=values + {"${key}" : value} /> 
651            </#list> 
652            <#return values /> 
653        </#function> 
654 
655        <#function extractStringValue node language> 
656            <#if node?? && node?is_hash> 
657                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}' 
658                    ]/text()") /> 
659                <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
660                <#if !string?? || string=="null"> 
661                    <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") /> 
662                    <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
663                </#if> 
664                <#return string.getStringValue() /> 
665                <#else> 
666                    <#return "null" /> 
667            </#if> 
668        </#function> 
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing:
==> homeLeaders  [in template "20099#20135#108037" at line 480, column 24]

----
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: #list homeLeaders as leader  [in template "20099#20135#108037" at line 480, column 17]
----
1<#assign 
2    DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
3    <#assign watermarkMap="/documents/20126/45625/worldMap.png/"> 
4 
5        <#if entries?has_content> 
6            <#assign homeLeaders=[] /> 
7            <#list entries as curEntry> 
8                <#assign journalArticle=curEntry.getAssetRenderer().getArticle() /> 
9                <#assign document=saxReaderUtil.read(journalArticle.getContent()) /> 
10                <#assign root=document.getRootElement() /> 
11                <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) /> 
12                <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
13 
14                <#assign leaderName="" /> 
15                <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null"> 
16                    <#assign leaderName=extractStringValue(elements.Name?first, locale) /> 
17                </#if> 
18 
19                <#assign leaderJob="" /> 
20                <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null"> 
21                    <#assign leaderJob=extractStringValue(elements.Job?first, locale) /> 
22                </#if> 
23 
24                <#assign leaderOffice="" /> 
25                <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null"> 
26                    <#assign leaderOffice=extractStringValue(elements.Office?first, locale) /> 
27                </#if> 
28 
29                <#assign leaderDescription="" /> 
30                <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null"> 
31                    <#assign leaderDescription=extractStringValue(elements.Description?first, locale) /> 
32                </#if> 
33 
34                <#assign leaderPhoto="" /> 
35                <#if extractStringValue(elements.Photo?first, locale) !="null"> 
36                    <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) /> 
37                </#if> 
38 
39                <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob 
40                    ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] /> 
41            </#list> 
42        </#if> 
43 
44        <style> 
45            .containerMeetOurGlobalLeadershipLeaderHome { 
46                padding-bottom: 60px; 
47
48 
49            .titleMeetOurGlobalLeadership { 
50                font-size: 32px; 
51                font-weight: bold; 
52                font-style: normal; 
53                font-stretch: normal; 
54                line-height: 1.25; 
55                letter-spacing: normal; 
56                text-align: center; 
57                color: #000000; 
58
59 
60            .descriptionMeetOurGlobalLeadership { 
61                font-size: 14px; 
62                font-weight: normal; 
63                font-style: normal; 
64                font-stretch: normal; 
65                line-height: 1.43; 
66                letter-spacing: normal; 
67                text-align: center; 
68                color: #000000; 
69
70 
71            .meetTeamLeaders { 
72                padding: 12px 24px; 
73                font-size: 18px; 
74                font-weight: bold; 
75                font-style: normal; 
76                font-stretch: normal; 
77                line-height: 1.33; 
78                letter-spacing: normal; 
79                color: #000000; 
80                border: 2px solid black; 
81
82 
83            .ceoImgLeader { 
84                height: 100%; 
85                background-repeat: no-repeat !important; 
86                background-position: center top !important; 
87
88 
89            .containerImgLeaderAbout { 
90                text-align: center; 
91                height: 340px; 
92                background-repeat: no-repeat; 
93                background-position: center top; 
94                transition: background-size .4s ease-in; 
95
96 
97            .containerInfoLeaderAbout { 
98                padding-left: 30px; 
99                padding-top: 15px; 
100
101 
102            .containerInfoLeaderAbout p { 
103                margin: 0px; 
104                font-size: 14px; 
105                font-weight: 300; 
106                font-style: normal; 
107                font-stretch: normal; 
108                line-height: normal; 
109                letter-spacing: normal; 
110                color: #000000; 
111
112 
113            .containerInfoLeaderAbout p:first-child { 
114                font-weight: bold; 
115
116 
117            .descriptionCeo { 
118                position: absolute; 
119                bottom: 85px; 
120                left: -195%; 
121                width: 200%; 
122                font-size: 14px; 
123                font-weight: normal; 
124                font-style: normal; 
125                font-stretch: normal; 
126                line-height: 1.43; 
127                letter-spacing: normal; 
128                color: #000000; 
129
130 
131            .infoCeo { 
132                position: absolute; 
133                top: 25px; 
134                left: -12%; 
135                width: 50%; 
136                text-align: right; 
137
138 
139            .infoCeo p { 
140                margin: 0px; 
141                font-size: 14px; 
142                font-weight: 300; 
143                font-style: normal; 
144                font-stretch: normal; 
145                line-height: normal; 
146                letter-spacing: normal; 
147                color: #000000; 
148
149 
150            .infoCeo p:first-child { 
151                font-weight: bold; 
152
153 
154            .containerButtonLeaderHome { 
155                text-align: center; 
156                padding-top: 20px; 
157
158 
159            .meetTeamLeaders:hover { 
160                text-shadow: currentcolor 0.8px 0px 0px; 
161                font-size: 18px; 
162                padding: 12px 24px; 
163                border: 2px solid black; 
164                cursor: pointer; 
165
166 
167            .rowContainerLeadersAbout { 
168                margin-bottom: 32px; 
169
170 
171            .rowContainerLeadersAbout.first-row { 
172                border-bottom: 1px solid #d1d3d4; 
173                padding-bottom: 32px; 
174
175 
176            .containerLeadersAbout { 
177                flex: 0 0 17%; 
178
179 
180            .containerLeadersAbout:hover { 
181                cursor: pointer; 
182
183 
184            .containerLeaderAboutPopup { 
185                background-color: #fff; 
186                color: black; 
187                text-align: center; 
188                position: fixed; 
189                top: 19%; 
190                bottom: 40%; 
191                left: 25%; 
192                right: 25%; 
193                content: ""; 
194                padding: 1% 5% 1% 5%; 
195
196 
197            .popuptext { 
198                visibility: hidden; 
199                background-color: #000000ad; 
200                width: 100%; 
201                position: fixed; 
202                height: 100%; 
203                top: 0; 
204                left: 0; 
205                z-index: 55; 
206                cursor: auto; 
207
208 
209            .show { 
210                visibility: visible; 
211                -webkit-animation: fadeIn 1s; 
212                animation: fadeIn 1s; 
213                z-index: 60; 
214
215 
216            .showWithoutTime { 
217                visibility: visible; 
218                animation: 0s; 
219                z-index: 60; 
220
221 
222            .popup .show { 
223                visibility: visible; 
224                -webkit-animation: fadeIn 1s; 
225                animation: fadeIn 1s; 
226
227 
228            @-webkit-keyframes fadeIn { 
229                from { 
230                    opacity: 0; 
231
232 
233                to { 
234                    opacity: 1; 
235
236
237 
238            @keyframes fadeIn { 
239                from { 
240                    opacity: 0; 
241
242 
243                to { 
244                    opacity: 1; 
245
246
247 
248            .rowFlexLeaderCenterAboutPopup { 
249                height: 100%; 
250                background-repeat: no-repeat !important; 
251                background-size: contain !important; 
252
253 
254            .rowFlexLeaderCenterAboutPopup div { 
255                height: 100%; 
256
257 
258            .flexLeaderCenterAboutPopup { 
259                display: flex; 
260                justify-content: center; 
261                align-items: center; 
262                height: 100%; 
263                display: flex; 
264                flex-wrap: nowrap; 
265                flex-flow: column; 
266                align-items: flex-start; 
267
268 
269            .flexLeaderCenterAbout { 
270                text-align: left; 
271
272 
273            .addrsLeaderAboutPopup { 
274                font-size: 14px; 
275                font-weight: normal; 
276                font-style: normal; 
277                font-stretch: normal; 
278                line-height: 1.14; 
279                letter-spacing: normal; 
280                color: #5f6569; 
281
282 
283            .jobLeaderAboutPopup { 
284                font-size: 14px; 
285                font-weight: normal; 
286                font-style: normal; 
287                font-stretch: normal; 
288                line-height: 1.14; 
289                letter-spacing: normal; 
290                color: #5f6569; 
291                padding-bottom: 25px; 
292
293 
294            .nameLeaderAboutPopup { 
295                font-size: 32px; 
296                font-weight: bold; 
297                font-style: normal; 
298                font-stretch: normal; 
299                line-height: 1.25; 
300                letter-spacing: normal; 
301                color: #000000; 
302
303 
304            .descriptionLeaderAboutPopup { 
305                font-size: 16px; 
306                font-weight: normal; 
307                font-style: normal; 
308                font-stretch: normal; 
309                line-height: 1.5; 
310                letter-spacing: normal; 
311                color: #000000; 
312
313 
314            .spanCloseDetailLeaderPopup { 
315                float: right; 
316                position: absolute; 
317                right: 3%; 
318                top: 5%; 
319                font-size: 23px; 
320                color: #989da1; 
321                z-index: 66; 
322
323 
324            .spanCloseDetailLeaderPopup:hover { 
325                cursor: pointer; 
326
327 
328            .imgLeaderAboutPopup { 
329                background-repeat: no-repeat !important; 
330                background-position: left !important; 
331                background-size: contain !important; 
332
333 
334            .containerBeforeLeaderAbout { 
335                float: left; 
336                position: absolute; 
337                left: 0; 
338                top: 0%; 
339                font-size: 23px; 
340                color: #989da1; 
341                z-index: 67; 
342                height: 100%; 
343                display: flex; 
344                align-items: center; 
345
346 
347            .containerBeforeLeaderAbout:hover { 
348                cursor: pointer; 
349
350 
351            .containerAfterLeaderAbout { 
352                float: right; 
353                position: absolute; 
354                right: 0; 
355                top: 0%; 
356                font-size: 23px; 
357                color: #989da1; 
358                z-index: 67; 
359                height: 100%; 
360                display: flex; 
361                align-items: center; 
362
363 
364            .containerAfterLeaderAbout:hover { 
365                cursor: pointer; 
366
367 
368            .beforeLeaderAbout { 
369                left: 0px; 
370                position: absolute; 
371                width: 40px; 
372                height: 80px; 
373                background: #f2f3f3; 
374                -moz-border-radius: 0 100px 100px 0; 
375                -webkit-border-radius: 0 100px 100px 0; 
376                border-radius: 0 100px 100px 0; 
377                display: flex; 
378                align-items: center; 
379                justify-content: center; 
380                cursor: point; 
381
382 
383            .afterLeaderAbout { 
384                right: 0px; 
385                position: absolute; 
386                width: 40px; 
387                height: 80px; 
388                background: #f2f3f3; 
389                -moz-border-radius: 0 100px 100px 0; 
390                -webkit-border-radius: 0 100px 100px 0; 
391                border-radius: 100px 0 0 100px; 
392                display: flex; 
393                align-items: center; 
394                justify-content: center; 
395                cursor: point; 
396
397 
398            .iconCloseDetailLeaderPopup { 
399                cursor: point; 
400
401 
402            @media only screen and (max-width: 994px) { 
403                .containerLeadersAbout { 
404                    flex: 0 0 33%; 
405
406
407 
408            @media only screen and (max-width: 600px) { 
409                .containerLeadersAbout { 
410                    flex: 0 0 100%; 
411
412 
413                .containerInfoLeaderAbout p { 
414                    font-size: 18px; 
415                    text-align: center; 
416
417 
418                .containerInfoLeaderAbout { 
419                    padding-left: 0px; 
420
421 
422                .containerMeetOurGlobalLeadershipLeaderHome { 
423                    padding: 0px 15px 20px; 
424 
425
426 
427                .containerLeaderAboutPopup { 
428                    top: 45px !important; 
429                    bottom: 0% !important; 
430                    left: 0% !important; 
431                    right: 0% !important; 
432
433 
434                .rowFlexLeaderCenterAboutPopup { 
435                    background: none !important; 
436
437 
438                .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup { 
439                    display: none; 
440
441 
442                .nameLeaderAboutPopup { 
443                    //margin-top: 1.8em; 
444
445 
446                .spanCloseDetailLeaderPopup.neo-hover { 
447                    //margin-top: 1em; 
448
449 
450                .descriptionLeaderAboutPopup { 
451                    padding: 10px; 
452                    font-size: 12px; 
453
454 
455                .jobLeaderAboutPopup { 
456                    padding-left: 10px; 
457                    padding-bottom: 5px; 
458
459 
460                .nameLeaderAboutPopup { 
461                    padding-left: 10px; 
462
463
464 
465            .beforeLeaderAbout { 
466                display: none; 
467
468 
469            .afterLeaderAbout { 
470                display: none; 
471
472            .containerInfoLeaderAbout img 
473
474            width: 100px !important; 
475
476        </style> 
477 
478        <script> 
479            if (typeof leaders !== 'undefined') { 
480                <#list homeLeaders as leader> 
481                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
482                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
483                    leaders.push('${nameLeader}'); 
484                </#list> 
485            } else { 
486                var leaders = []; 
487                <#list homeLeaders as leader> 
488                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
489                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
490                    leaders.push('${nameLeader}'); 
491                </#list> 
492
493 
494            var sizeLeaders = leaders.length; 
495            var currentLeader; 
496            var indexLeader; 
497 
498            function showPopup(nameLeader) { 
499                currentLeader = nameLeader; 
500                var popup = document.getElementById(nameLeader); 
501                popup.classList.toggle("show"); 
502 
503                if (currentLeader == leaders[0]) { 
504                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
505                } else { 
506                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
507
508 
509                if (currentLeader == leaders[leaders.length - 1]) { 
510                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
511                } else { 
512                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
513
514
515 
516            function closePopup(nameLeader) { 
517                var popup = document.getElementById(nameLeader); 
518                popup.classList.remove("show"); 
519                popup.classList.remove("showWithoutTime"); 
520
521 
522            function beforeLeaderPopup() { 
523                leaders.forEach(function (leader, index) { 
524                    if (leader == currentLeader) { 
525                        indexLeader = index - 1; 
526
527                }); 
528                closePopup(currentLeader); 
529                currentLeader = leaders[indexLeader]; 
530                var popupNext = document.getElementById(leaders[indexLeader]); 
531                popupNext.classList.toggle("showWithoutTime"); 
532                if (currentLeader == leaders[0]) { 
533                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
534                } else { 
535                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
536
537 
538                if (currentLeader == leaders[leaders.length - 1]) { 
539                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
540                } else { 
541                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
542
543
544 
545            function afterLeaderPopup() { 
546                leaders.forEach(function (leader, index) { 
547                    if (leader == currentLeader) { 
548                        indexLeader = index + 1; 
549
550                }); 
551                closePopup(currentLeader); 
552                currentLeader = leaders[indexLeader]; 
553                var popupNext = document.getElementById(leaders[indexLeader]); 
554                popupNext.classList.toggle("showWithoutTime"); 
555                if (currentLeader == leaders[0]) { 
556                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
557                } else { 
558                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
559
560 
561                if (currentLeader == leaders[leaders.length - 1]) { 
562                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
563                } else { 
564                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
565
566            }   
567        </script> 
568 
569        <div class="neo-main-width" style="padding: 10px 0 10px 0; 
570                                    border-bottom: 1px solid #d1d3d4; 
571                                    margin-bottom: 20px!important;"> 
572            <div class="row rowContainerLeadersAbout"> 
573                <#list homeLeaders as leader> 
574                    <div class="col-md-2 col-xs-12" 
575                        style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;"> 
576                        <@printLeader leader=leader /> 
577                    </div> 
578                </#list> 
579            </div> 
580        </div> 
581 
582        <#macro printLeader leader> 
583            <#assign nameLeader=leader.Name?replace(' ', ' _') /> 
584            <#assign nameLeader=nameLeader?replace('\"', '_' ) /> 
585            <div onclick="showPopup('${nameLeader}')"> 
586                <div class="containerInfoLeaderAbout"> 
587 
588                    <#assign leaderImage = "" />                     
589                    <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) /> 
590                    <#assign imageUUID = defImage.getString("uuid") /> 
591                    <#assign imageGroupID = defImage.getInt("groupId") /> 
592                    <#assign imageDescription = defImage.getString("alt") /> 
593                    <#assign imageFolderID =0 /> 
594                    <#if imageUUID!=""> 
595                        <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() /> 
596                        <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID /> 
597                    </#if> 
598                    <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'> 
599                    <p>${leader.Name}</p> 
600                    <p>${leader.Job}</p> 
601                    <p>${leader.Office}</p> 
602                </div> 
603            </div> 
604 
605            <div id="${nameLeader}" class="popuptext"> 
606                <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail"> 
607                    <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')" 
608                            id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span> 
609 
610                    <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader /> 
611                    <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader /> 
612 
613                    <div class="containerBeforeLeaderAbout neo-hover"> 
614                        <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i 
615                                class="icon-chevron-left"></i></div> 
616                    </div> 
617                    <div class="containerAfterLeaderAbout neo-hover"> 
618                        <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i 
619                                class="icon-chevron-right"></i></div> 
620                    </div> 
621 
622                    <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')"> 
623                        <div class="col-md-12 flexLeaderCenterAbout"> 
624                            <p class="nameLeaderAboutPopup">${leader.Name}</p> 
625                            <p class="jobLeaderAboutPopup">${leader.Job}</p> 
626                            <p class="descriptionLeaderAboutPopup">${leader.Description}</p> 
627                        </div> 
628                    </div> 
629                </div> 
630            </div> 
631        </#macro> 
632 
633        <#function initializeVariables rootElement variables> 
634            <#assign values={} /> 
635            <#list variables as key> 
636                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") /> 
637                <#assign value=[] /> 
638                <#if xPathSelector.selectSingleNode(rootElement)??> 
639                    <#assign nodes=xPathSelector.selectNodes(rootElement) /> 
640                    <#if nodes?size &gt; 1> 
641                        <#list nodes as node> 
642                            <#assign value=value + [node]> 
643                        </#list> 
644                        <#else> 
645                            <#assign value=[xPathSelector.selectSingleNode(rootElement)] /> 
646                    </#if> 
647                    <#else> 
648                        <#assign value=[] /> 
649                </#if> 
650                <#assign values=values + {"${key}" : value} /> 
651            </#list> 
652            <#return values /> 
653        </#function> 
654 
655        <#function extractStringValue node language> 
656            <#if node?? && node?is_hash> 
657                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}' 
658                    ]/text()") /> 
659                <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
660                <#if !string?? || string=="null"> 
661                    <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") /> 
662                    <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
663                </#if> 
664                <#return string.getStringValue() /> 
665                <#else> 
666                    <#return "null" /> 
667            </#if> 
668        </#function> 
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing:
==> homeLeaders  [in template "20099#20135#108037" at line 480, column 24]

----
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: #list homeLeaders as leader  [in template "20099#20135#108037" at line 480, column 17]
----
1<#assign 
2    DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
3    <#assign watermarkMap="/documents/20126/45625/worldMap.png/"> 
4 
5        <#if entries?has_content> 
6            <#assign homeLeaders=[] /> 
7            <#list entries as curEntry> 
8                <#assign journalArticle=curEntry.getAssetRenderer().getArticle() /> 
9                <#assign document=saxReaderUtil.read(journalArticle.getContent()) /> 
10                <#assign root=document.getRootElement() /> 
11                <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) /> 
12                <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
13 
14                <#assign leaderName="" /> 
15                <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null"> 
16                    <#assign leaderName=extractStringValue(elements.Name?first, locale) /> 
17                </#if> 
18 
19                <#assign leaderJob="" /> 
20                <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null"> 
21                    <#assign leaderJob=extractStringValue(elements.Job?first, locale) /> 
22                </#if> 
23 
24                <#assign leaderOffice="" /> 
25                <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null"> 
26                    <#assign leaderOffice=extractStringValue(elements.Office?first, locale) /> 
27                </#if> 
28 
29                <#assign leaderDescription="" /> 
30                <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null"> 
31                    <#assign leaderDescription=extractStringValue(elements.Description?first, locale) /> 
32                </#if> 
33 
34                <#assign leaderPhoto="" /> 
35                <#if extractStringValue(elements.Photo?first, locale) !="null"> 
36                    <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) /> 
37                </#if> 
38 
39                <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob 
40                    ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] /> 
41            </#list> 
42        </#if> 
43 
44        <style> 
45            .containerMeetOurGlobalLeadershipLeaderHome { 
46                padding-bottom: 60px; 
47
48 
49            .titleMeetOurGlobalLeadership { 
50                font-size: 32px; 
51                font-weight: bold; 
52                font-style: normal; 
53                font-stretch: normal; 
54                line-height: 1.25; 
55                letter-spacing: normal; 
56                text-align: center; 
57                color: #000000; 
58
59 
60            .descriptionMeetOurGlobalLeadership { 
61                font-size: 14px; 
62                font-weight: normal; 
63                font-style: normal; 
64                font-stretch: normal; 
65                line-height: 1.43; 
66                letter-spacing: normal; 
67                text-align: center; 
68                color: #000000; 
69
70 
71            .meetTeamLeaders { 
72                padding: 12px 24px; 
73                font-size: 18px; 
74                font-weight: bold; 
75                font-style: normal; 
76                font-stretch: normal; 
77                line-height: 1.33; 
78                letter-spacing: normal; 
79                color: #000000; 
80                border: 2px solid black; 
81
82 
83            .ceoImgLeader { 
84                height: 100%; 
85                background-repeat: no-repeat !important; 
86                background-position: center top !important; 
87
88 
89            .containerImgLeaderAbout { 
90                text-align: center; 
91                height: 340px; 
92                background-repeat: no-repeat; 
93                background-position: center top; 
94                transition: background-size .4s ease-in; 
95
96 
97            .containerInfoLeaderAbout { 
98                padding-left: 30px; 
99                padding-top: 15px; 
100
101 
102            .containerInfoLeaderAbout p { 
103                margin: 0px; 
104                font-size: 14px; 
105                font-weight: 300; 
106                font-style: normal; 
107                font-stretch: normal; 
108                line-height: normal; 
109                letter-spacing: normal; 
110                color: #000000; 
111
112 
113            .containerInfoLeaderAbout p:first-child { 
114                font-weight: bold; 
115
116 
117            .descriptionCeo { 
118                position: absolute; 
119                bottom: 85px; 
120                left: -195%; 
121                width: 200%; 
122                font-size: 14px; 
123                font-weight: normal; 
124                font-style: normal; 
125                font-stretch: normal; 
126                line-height: 1.43; 
127                letter-spacing: normal; 
128                color: #000000; 
129
130 
131            .infoCeo { 
132                position: absolute; 
133                top: 25px; 
134                left: -12%; 
135                width: 50%; 
136                text-align: right; 
137
138 
139            .infoCeo p { 
140                margin: 0px; 
141                font-size: 14px; 
142                font-weight: 300; 
143                font-style: normal; 
144                font-stretch: normal; 
145                line-height: normal; 
146                letter-spacing: normal; 
147                color: #000000; 
148
149 
150            .infoCeo p:first-child { 
151                font-weight: bold; 
152
153 
154            .containerButtonLeaderHome { 
155                text-align: center; 
156                padding-top: 20px; 
157
158 
159            .meetTeamLeaders:hover { 
160                text-shadow: currentcolor 0.8px 0px 0px; 
161                font-size: 18px; 
162                padding: 12px 24px; 
163                border: 2px solid black; 
164                cursor: pointer; 
165
166 
167            .rowContainerLeadersAbout { 
168                margin-bottom: 32px; 
169
170 
171            .rowContainerLeadersAbout.first-row { 
172                border-bottom: 1px solid #d1d3d4; 
173                padding-bottom: 32px; 
174
175 
176            .containerLeadersAbout { 
177                flex: 0 0 17%; 
178
179 
180            .containerLeadersAbout:hover { 
181                cursor: pointer; 
182
183 
184            .containerLeaderAboutPopup { 
185                background-color: #fff; 
186                color: black; 
187                text-align: center; 
188                position: fixed; 
189                top: 19%; 
190                bottom: 40%; 
191                left: 25%; 
192                right: 25%; 
193                content: ""; 
194                padding: 1% 5% 1% 5%; 
195
196 
197            .popuptext { 
198                visibility: hidden; 
199                background-color: #000000ad; 
200                width: 100%; 
201                position: fixed; 
202                height: 100%; 
203                top: 0; 
204                left: 0; 
205                z-index: 55; 
206                cursor: auto; 
207
208 
209            .show { 
210                visibility: visible; 
211                -webkit-animation: fadeIn 1s; 
212                animation: fadeIn 1s; 
213                z-index: 60; 
214
215 
216            .showWithoutTime { 
217                visibility: visible; 
218                animation: 0s; 
219                z-index: 60; 
220
221 
222            .popup .show { 
223                visibility: visible; 
224                -webkit-animation: fadeIn 1s; 
225                animation: fadeIn 1s; 
226
227 
228            @-webkit-keyframes fadeIn { 
229                from { 
230                    opacity: 0; 
231
232 
233                to { 
234                    opacity: 1; 
235
236
237 
238            @keyframes fadeIn { 
239                from { 
240                    opacity: 0; 
241
242 
243                to { 
244                    opacity: 1; 
245
246
247 
248            .rowFlexLeaderCenterAboutPopup { 
249                height: 100%; 
250                background-repeat: no-repeat !important; 
251                background-size: contain !important; 
252
253 
254            .rowFlexLeaderCenterAboutPopup div { 
255                height: 100%; 
256
257 
258            .flexLeaderCenterAboutPopup { 
259                display: flex; 
260                justify-content: center; 
261                align-items: center; 
262                height: 100%; 
263                display: flex; 
264                flex-wrap: nowrap; 
265                flex-flow: column; 
266                align-items: flex-start; 
267
268 
269            .flexLeaderCenterAbout { 
270                text-align: left; 
271
272 
273            .addrsLeaderAboutPopup { 
274                font-size: 14px; 
275                font-weight: normal; 
276                font-style: normal; 
277                font-stretch: normal; 
278                line-height: 1.14; 
279                letter-spacing: normal; 
280                color: #5f6569; 
281
282 
283            .jobLeaderAboutPopup { 
284                font-size: 14px; 
285                font-weight: normal; 
286                font-style: normal; 
287                font-stretch: normal; 
288                line-height: 1.14; 
289                letter-spacing: normal; 
290                color: #5f6569; 
291                padding-bottom: 25px; 
292
293 
294            .nameLeaderAboutPopup { 
295                font-size: 32px; 
296                font-weight: bold; 
297                font-style: normal; 
298                font-stretch: normal; 
299                line-height: 1.25; 
300                letter-spacing: normal; 
301                color: #000000; 
302
303 
304            .descriptionLeaderAboutPopup { 
305                font-size: 16px; 
306                font-weight: normal; 
307                font-style: normal; 
308                font-stretch: normal; 
309                line-height: 1.5; 
310                letter-spacing: normal; 
311                color: #000000; 
312
313 
314            .spanCloseDetailLeaderPopup { 
315                float: right; 
316                position: absolute; 
317                right: 3%; 
318                top: 5%; 
319                font-size: 23px; 
320                color: #989da1; 
321                z-index: 66; 
322
323 
324            .spanCloseDetailLeaderPopup:hover { 
325                cursor: pointer; 
326
327 
328            .imgLeaderAboutPopup { 
329                background-repeat: no-repeat !important; 
330                background-position: left !important; 
331                background-size: contain !important; 
332
333 
334            .containerBeforeLeaderAbout { 
335                float: left; 
336                position: absolute; 
337                left: 0; 
338                top: 0%; 
339                font-size: 23px; 
340                color: #989da1; 
341                z-index: 67; 
342                height: 100%; 
343                display: flex; 
344                align-items: center; 
345
346 
347            .containerBeforeLeaderAbout:hover { 
348                cursor: pointer; 
349
350 
351            .containerAfterLeaderAbout { 
352                float: right; 
353                position: absolute; 
354                right: 0; 
355                top: 0%; 
356                font-size: 23px; 
357                color: #989da1; 
358                z-index: 67; 
359                height: 100%; 
360                display: flex; 
361                align-items: center; 
362
363 
364            .containerAfterLeaderAbout:hover { 
365                cursor: pointer; 
366
367 
368            .beforeLeaderAbout { 
369                left: 0px; 
370                position: absolute; 
371                width: 40px; 
372                height: 80px; 
373                background: #f2f3f3; 
374                -moz-border-radius: 0 100px 100px 0; 
375                -webkit-border-radius: 0 100px 100px 0; 
376                border-radius: 0 100px 100px 0; 
377                display: flex; 
378                align-items: center; 
379                justify-content: center; 
380                cursor: point; 
381
382 
383            .afterLeaderAbout { 
384                right: 0px; 
385                position: absolute; 
386                width: 40px; 
387                height: 80px; 
388                background: #f2f3f3; 
389                -moz-border-radius: 0 100px 100px 0; 
390                -webkit-border-radius: 0 100px 100px 0; 
391                border-radius: 100px 0 0 100px; 
392                display: flex; 
393                align-items: center; 
394                justify-content: center; 
395                cursor: point; 
396
397 
398            .iconCloseDetailLeaderPopup { 
399                cursor: point; 
400
401 
402            @media only screen and (max-width: 994px) { 
403                .containerLeadersAbout { 
404                    flex: 0 0 33%; 
405
406
407 
408            @media only screen and (max-width: 600px) { 
409                .containerLeadersAbout { 
410                    flex: 0 0 100%; 
411
412 
413                .containerInfoLeaderAbout p { 
414                    font-size: 18px; 
415                    text-align: center; 
416
417 
418                .containerInfoLeaderAbout { 
419                    padding-left: 0px; 
420
421 
422                .containerMeetOurGlobalLeadershipLeaderHome { 
423                    padding: 0px 15px 20px; 
424 
425
426 
427                .containerLeaderAboutPopup { 
428                    top: 45px !important; 
429                    bottom: 0% !important; 
430                    left: 0% !important; 
431                    right: 0% !important; 
432
433 
434                .rowFlexLeaderCenterAboutPopup { 
435                    background: none !important; 
436
437 
438                .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup { 
439                    display: none; 
440
441 
442                .nameLeaderAboutPopup { 
443                    //margin-top: 1.8em; 
444
445 
446                .spanCloseDetailLeaderPopup.neo-hover { 
447                    //margin-top: 1em; 
448
449 
450                .descriptionLeaderAboutPopup { 
451                    padding: 10px; 
452                    font-size: 12px; 
453
454 
455                .jobLeaderAboutPopup { 
456                    padding-left: 10px; 
457                    padding-bottom: 5px; 
458
459 
460                .nameLeaderAboutPopup { 
461                    padding-left: 10px; 
462
463
464 
465            .beforeLeaderAbout { 
466                display: none; 
467
468 
469            .afterLeaderAbout { 
470                display: none; 
471
472            .containerInfoLeaderAbout img 
473
474            width: 100px !important; 
475
476        </style> 
477 
478        <script> 
479            if (typeof leaders !== 'undefined') { 
480                <#list homeLeaders as leader> 
481                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
482                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
483                    leaders.push('${nameLeader}'); 
484                </#list> 
485            } else { 
486                var leaders = []; 
487                <#list homeLeaders as leader> 
488                    <#assign nameLeader= leader.Name?replace(' ', '_') /> 
489                    <#assign nameLeader= nameLeader?replace('\"', '_') /> 
490                    leaders.push('${nameLeader}'); 
491                </#list> 
492
493 
494            var sizeLeaders = leaders.length; 
495            var currentLeader; 
496            var indexLeader; 
497 
498            function showPopup(nameLeader) { 
499                currentLeader = nameLeader; 
500                var popup = document.getElementById(nameLeader); 
501                popup.classList.toggle("show"); 
502 
503                if (currentLeader == leaders[0]) { 
504                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
505                } else { 
506                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
507
508 
509                if (currentLeader == leaders[leaders.length - 1]) { 
510                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
511                } else { 
512                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
513
514
515 
516            function closePopup(nameLeader) { 
517                var popup = document.getElementById(nameLeader); 
518                popup.classList.remove("show"); 
519                popup.classList.remove("showWithoutTime"); 
520
521 
522            function beforeLeaderPopup() { 
523                leaders.forEach(function (leader, index) { 
524                    if (leader == currentLeader) { 
525                        indexLeader = index - 1; 
526
527                }); 
528                closePopup(currentLeader); 
529                currentLeader = leaders[indexLeader]; 
530                var popupNext = document.getElementById(leaders[indexLeader]); 
531                popupNext.classList.toggle("showWithoutTime"); 
532                if (currentLeader == leaders[0]) { 
533                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
534                } else { 
535                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
536
537 
538                if (currentLeader == leaders[leaders.length - 1]) { 
539                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
540                } else { 
541                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
542
543
544 
545            function afterLeaderPopup() { 
546                leaders.forEach(function (leader, index) { 
547                    if (leader == currentLeader) { 
548                        indexLeader = index + 1; 
549
550                }); 
551                closePopup(currentLeader); 
552                currentLeader = leaders[indexLeader]; 
553                var popupNext = document.getElementById(leaders[indexLeader]); 
554                popupNext.classList.toggle("showWithoutTime"); 
555                if (currentLeader == leaders[0]) { 
556                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none"; 
557                } else { 
558                    document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex"; 
559
560 
561                if (currentLeader == leaders[leaders.length - 1]) { 
562                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none"; 
563                } else { 
564                    document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex"; 
565
566            }   
567        </script> 
568 
569        <div class="neo-main-width" style="padding: 10px 0 10px 0; 
570                                    border-bottom: 1px solid #d1d3d4; 
571                                    margin-bottom: 20px!important;"> 
572            <div class="row rowContainerLeadersAbout"> 
573                <#list homeLeaders as leader> 
574                    <div class="col-md-2 col-xs-12" 
575                        style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;"> 
576                        <@printLeader leader=leader /> 
577                    </div> 
578                </#list> 
579            </div> 
580        </div> 
581 
582        <#macro printLeader leader> 
583            <#assign nameLeader=leader.Name?replace(' ', ' _') /> 
584            <#assign nameLeader=nameLeader?replace('\"', '_' ) /> 
585            <div onclick="showPopup('${nameLeader}')"> 
586                <div class="containerInfoLeaderAbout"> 
587 
588                    <#assign leaderImage = "" />                     
589                    <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) /> 
590                    <#assign imageUUID = defImage.getString("uuid") /> 
591                    <#assign imageGroupID = defImage.getInt("groupId") /> 
592                    <#assign imageDescription = defImage.getString("alt") /> 
593                    <#assign imageFolderID =0 /> 
594                    <#if imageUUID!=""> 
595                        <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() /> 
596                        <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID /> 
597                    </#if> 
598                    <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'> 
599                    <p>${leader.Name}</p> 
600                    <p>${leader.Job}</p> 
601                    <p>${leader.Office}</p> 
602                </div> 
603            </div> 
604 
605            <div id="${nameLeader}" class="popuptext"> 
606                <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail"> 
607                    <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')" 
608                            id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span> 
609 
610                    <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader /> 
611                    <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader /> 
612 
613                    <div class="containerBeforeLeaderAbout neo-hover"> 
614                        <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i 
615                                class="icon-chevron-left"></i></div> 
616                    </div> 
617                    <div class="containerAfterLeaderAbout neo-hover"> 
618                        <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i 
619                                class="icon-chevron-right"></i></div> 
620                    </div> 
621 
622                    <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')"> 
623                        <div class="col-md-12 flexLeaderCenterAbout"> 
624                            <p class="nameLeaderAboutPopup">${leader.Name}</p> 
625                            <p class="jobLeaderAboutPopup">${leader.Job}</p> 
626                            <p class="descriptionLeaderAboutPopup">${leader.Description}</p> 
627                        </div> 
628                    </div> 
629                </div> 
630            </div> 
631        </#macro> 
632 
633        <#function initializeVariables rootElement variables> 
634            <#assign values={} /> 
635            <#list variables as key> 
636                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") /> 
637                <#assign value=[] /> 
638                <#if xPathSelector.selectSingleNode(rootElement)??> 
639                    <#assign nodes=xPathSelector.selectNodes(rootElement) /> 
640                    <#if nodes?size &gt; 1> 
641                        <#list nodes as node> 
642                            <#assign value=value + [node]> 
643                        </#list> 
644                        <#else> 
645                            <#assign value=[xPathSelector.selectSingleNode(rootElement)] /> 
646                    </#if> 
647                    <#else> 
648                        <#assign value=[] /> 
649                </#if> 
650                <#assign values=values + {"${key}" : value} /> 
651            </#list> 
652            <#return values /> 
653        </#function> 
654 
655        <#function extractStringValue node language> 
656            <#if node?? && node?is_hash> 
657                <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}' 
658                    ]/text()") /> 
659                <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
660                <#if !string?? || string=="null"> 
661                    <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") /> 
662                    <#assign string=xPathSelector.selectSingleNode(node)!"null" /> 
663                </#if> 
664                <#return string.getStringValue() /> 
665                <#else> 
666                    <#return "null" /> 
667            </#if> 
668        </#function>