An error occurred while processing the template.
The following has evaluated to null or missing:
==> baneryData[0]  [in template "20096#20121#08-BANER" at line 73, column 36]

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

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if getterUtil.getBoolean(baneryData[...  [in template "20096#20121#08-BANER" at line 73, column 9]
----
1<#assign banery = FieldsetBaner.getSiblings()/>
 
2<#assign baneryData = []/>
 
3<#list banery as b>
 
4    <#if b.baner.getData()?has_content>
 
5        <#assign baneryData += [b]/>
 
6    </#if>
 
7</#list>
 
8
 
9<#assign ilosc = baneryData?size/>
 
10<#if ilosc == 1>
 
11    <#assign karuzela = false/>
 
12    <#assign ramka = "/image/image_gallery?uuid=b9538dbb-a81b-4245-9c02-785beb0c8ded&groupId=10172&t=1260294322990"/> <#-- TODO ustawić poprawną ścieżkę -->
 
13<#else>
 
14    <#assign karuzela = true/>
 
15    <#assign ramka = "https://portal.migracja.uj.edu.pl/documents/d/lift-theme-test/ramka_nawigacyjna?download=true"/> <#-- TODO ustawić poprawną ścieżkę -->
 
16</#if>
 
17
 
18<#assign plid = themeDisplay.getPortletDisplay().getInstanceId()/>
 
19<#assign plidFullName = "portlet_" + themeDisplay.getPortletDisplay().getId()/>
 
20<#assign widthCss = 25 * ilosc/>
 
21
 
22<#if karuzela>
 
23    <style type="text/css">
 
24        #${plidFullName} { margin: 0; }
 
25        .Baner${plid} ul.numerki {margin:0;padding:0;position:absolute;top:110px;left:95px;font-size:1px;width:${widthCss}px;}
 
26        .Baner${plid} ul.numerki li {color:#00519e;cursor:pointer;user-select:none;-moz-user-select: none;list-style-type:none;list-style-image:none;display:inline;float:left;background: rgba(0, 0, 0, 0.4);width:11px;height:11px;text-align:center;margin-right:4px; border: 1px #ccc solid;}
 
27        .Baner${plid} ul.numerki li:hover {background: rgba(255, 255, 255, 0.5);margin-right:4px; border: 1px #ccc solid;}
 
28        .gray .Baner${plid} ul.numerki li {color:#333;cursor:pointer;user-select:none;-moz-user-select: none;list-style-type:none;list-style-image:none;display:inline;float:left;background-color:#333; border: 1px #ccc solid;width:12px;height:12px;text-align:center;margin-right:8px;}
 
29        .gray .Baner${plid} ul.numerki li:hover {background-color:#666;margin-right:8px;}
 
30        .Baner${plid} ul.numerki li.active {position:relative; background: rgba(255, 255, 255, 0.5); border: 1px #ccc solid;}
 
31    </style>
 
32</#if>
 
33
 
34<div class="Baner${plid}" style="position:relative;left:-35px;height:151px;display:none;" >
 
35    <#assign ostatniZwykly = 0/>
 
36    <#assign ostatniHeadline = 0/>
 
37    <#list baneryData as obrazek>
 
38        <img class="baner baner${obrazek?counter}" style="position:absolute;top:0px;left:0px;display:none;" width="977" height="151" src="${obrazek.baner.getData()}" alt="${htmlUtil.escape(obrazek.opis.getData())}">
 
39        <#if getterUtil.getBoolean(obrazek.headline.getData())>
 
40            <#assign ostatniHeadline = obrazek?counter/>
 
41        <#else>
 
42            <#assign ostatniZwykly = obrazek?counter/>
 
43        </#if>
 
44    </#list>
 
45    <div style="position:absolute;top:0px;left:0px;height:151px">
 
46        <img class="png" width="977" height="150" src="${ramka}" usemap="#Baner${plid}mapa" alt="ramka nawigacyjna" />
 
47        <map name="Baner${plid}mapa">
 
48            <#if karuzela>
 
49                <area shape="poly" coords="83,16,83,130,34,128,16,100,12,76,16,46,36,18" href="#" onClick="Baner${plid}.poprzedni_z_reklama()" alt="Poprzedni baner"/>
 
50            </#if>
 
51            <area shape="poly" coords="83,16,500,9,895,16,895,130,500,138,84,130" href="#" onClick="Baner${plid}.otworz_lacze()" alt="Bieżący baner"/>
 
52            <#if karuzela>
 
53                <area shape="poly" coords="894,16,894,130,944,127,964,96,966,60,960,44,944,18" href="#" onClick="Baner${plid}.nastepny_z_reklama()" alt="Następny baner"/>
 
54            </#if>
 
55        </map>
 
56    </div>
 
57
 
58    <#if karuzela>
 
59        <ul class="numerki">
 
60            <#list baneryData as obrazek>
 
61                <#if !getterUtil.getBoolean(obrazek.headline.getData())>
 
62                    <li class="kwadrat${obrazek?counter}" onClick="Baner${plid}.przelacz_na(${obrazek?counter});"></li>
 
63                </#if>
 
64            </#list>
 
65        </ul>
 
66    </#if>
 
67</div>
 
68
 
69<script type="text/javascript">
 
70    Baner${plid} = {
 
71
 
72        _obecny: 1,
 
73        <#if getterUtil.getBoolean(baneryData[0].headline.getData())>
 
74        _zachowany: ${ostatniZwykly},
 
75        <#else>
 
76        _zachowany: ${ostatniHeadline},
 
77        </#if>
 
78
 
79        _flagi: [<#list baneryData as obrazek> ${obrazek.headline.getData()}, </#list>],
 
80        _lacza: [<#list baneryData as obrazek> '${obrazek.link.getData()}', </#list>],
 
81
 
82        otworz_lacze: function()
 
83        {
 
84            if (this._lacza[this._obecny-1]) top.location.href=this._lacza[this._obecny-1];
 
85        },
 
86
 
87        <#if karuzela>
 
88
 
89        _zegar: null,
 
90
 
91        pokaz: function()
 
92        {
 
93            elements = jQuery('.gray .Baner${plid} .baner')
 
94            if (elements.length) grayscaleIMGs(elements);
 
95
 
96            jQuery('.Baner${plid} .baner'+this._obecny).show();
 
97            jQuery('.Baner${plid} .kwadrat'+this._obecny).addClass("active");
 
98            jQuery('.Baner${plid}').show();
 
99            this._zegar= setTimeout('Baner${plid}.nastepny_z_reklama()',7000);
 
100        },
 
101
 
102        nastepny: function()
 
103        {
 
104            var numer=1+((this._obecny) % ${ilosc});
 
105            this.przelacz_na(numer);
 
106        },
 
107
 
108        poprzedni: function()
 
109        {
 
110            var numer=1+((this._obecny+${ilosc}-2) % ${ilosc});
 
111            this.przelacz_na(numer);
 
112        },
 
113
 
114        przelacz_na: function(numer)
 
115        {
 
116            clearTimeout(this._zegar);
 
117            if (this._flagi[this._obecny-1]!=this._flagi[numer-1])
 
118                this._zachowany=this._obecny;
 
119            if (this._obecny!=numer)
 
120            {
 
121                if (this._obecny<numer)
 
122                {
 
123                    jQuery('.Baner${plid} .baner'+numer).fadeIn('slow');
 
124                }
 
125                else
 
126                {
 
127                    jQuery('.Baner${plid} .baner'+numer).show();
 
128                    if (numer+1<this._obecny) for (i=numer+1;i<this._obecny;i++)
 
129                    {
 
130                        jQuery('.Baner${plid} .baner'+i).hide();
 
131                    }
 
132                    jQuery('.Baner${plid} .baner'+this._obecny).fadeOut('slow');
 
133                }
 
134                jQuery('.Baner${plid} .kwadrat'+numer).addClass("active");
 
135                jQuery('.Baner${plid} .kwadrat'+this._obecny).removeClass("active");
 
136                this._obecny=numer;
 
137            }
 
138            this._zegar= setTimeout('Baner${plid}.nastepny_z_reklama()',7000);
 
139        },
 
140
 
141        nastepny_z_reklama: function()
 
142        {
 
143            if (this._zachowany)
 
144            {
 
145                var numer=this._zachowany;
 
146                for (i=1;i<=${ilosc};i++)
 
147                {
 
148                    if (this._flagi[(numer-1+i) % ${ilosc}] == this._flagi[numer-1])
 
149                    {
 
150                        numer = 1+((numer-1+i) % ${ilosc});
 
151                        break;
 
152                    }
 
153                }
 
154                this.przelacz_na(numer);
 
155            }
 
156            else this.nastepny();
 
157        },
 
158
 
159        poprzedni_z_reklama: function()
 
160        {
 
161            if (this._zachowany)
 
162            {
 
163                var numer=this._zachowany;
 
164                for (i=1;i<=${ilosc};i++)
 
165                {
 
166                    if (this._flagi[(numer-1+${ilosc}-i) % ${ilosc}] == this._flagi[numer-1])
 
167                    {
 
168                        numer = 1+((numer-1+${ilosc}-i) % ${ilosc});
 
169                        break;
 
170                    }
 
171                }
 
172                this.przelacz_na(numer);
 
173            }
 
174            else this.poprzedni();
 
175        }
 
176
 
177        <#else>
 
178
 
179        pokaz: function()
 
180        {
 
181            elements = jQuery('.gray .Baner${plid} .baner')
 
182            if (elements.length) grayscaleIMGs(elements);
 
183
 
184            jQuery('.Baner${plid} .baner1').show();
 
185            jQuery('.Baner${plid}').show();
 
186        }
 
187
 
188        </#if>
 
189
 
190    }
 
191
 
192    <#-- Załaduj obrazki i pokaż baner: -->
 
193    var images${plid} = [ <#list baneryData as obrazek>'${obrazek.baner.getData()}',</#list> '${ramka}' ];
 
194    jQuery("<img />").load(function() {
 
195        if (images${plid}.length) {
 
196            this.src =images${plid}.shift()
 
197            if(this.complete) jQuery(this).trigger("load");
 
198        }
 
199        else Baner${plid}.pokaz();
 
200    }).trigger('load');
 
201
 
202</script>