Artikkel
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 8, column 17 in 10153#10191#5883698.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
5<#assign url404 = '/error/404.html'>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7
8<#assign bCode= qstringmap["bankercode"]?first>
9<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
10<#list bData as b>
11 <#assign lc = b.locationcode >
12 <#assign rLC = b.reallocationcode >
13 <#assign mappedLC = b.mappedLocationCode >
14</#list>
15<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
16 <#assign ameriprise = true>
17<#else>
18 <#assign ameriprise = false>
19</#if>
20
21<#if mappedLC?has_content && !ameriprise>
22 <#assign lc = mappedLC >
23</#if>
24
25<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedAppSql','0&'+bCode)>
26<#if fiData?first?has_content>
27 <#assign fi = fiData?first>
28 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
29 <#assign subbu_special = fi.offerId>
30 </#if>
31</#if>
32
33
34<#if lc?has_content>
35 <#assign prefix = "00000" >
36 <#assign lcWithPrefix = prefix + lc>
37 <#assign withPrefixLength = lcWithPrefix?length >
38 <#assign startHere = withPrefixLength - 5>
39 <#assign lc = lcWithPrefix?substring(startHere)>
40 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
41 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
42
43 <#assign clientProfile = clientProfileList?first>
44 <#assign partnerName = clientProfile.getMarketingNameLong()>
45 <#assign pbu = clientProfile.getPbu()>
46 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
47 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
48 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
49 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
50 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
51 <#assign partnerUrl = 'https://' + partnerUrl>
52 </#if>
53
54 <!-- <#assign clientdataList = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
55 <#if clientdataList?has_content >
56 <#assign clientdata = clientdataList?first >
57 <#assign backgroundHexColor = clientdata["backgroundHexColor"] >
58 <#assign backgroundImage = clientdata["backgroundImage"] >
59 <#assign buttonHexColor = clientdata["buttonHexColor"] >
60 <#assign AprMin = clientdata["AprMin"] >
61 <#assign AprMax = clientdata["AprMax"] >
62 <#assign cashAdvanceRate = clientdata["cashAdvanceRate"] >
63 <#assign BillingCycles = clientdata["BillingCycles"] >
64 <#assign textHexColor = clientdata["textHexColor"] >
65 <#assign linkHexColor = clientdata["linkHexColor"] >
66 <#assign hoverColor = clientdata["hoverColor"] >
67 <#assign secondaryBackgroundImage = clientdata["secondaryBackgroundImage"] >
68 <#assign transparency = clientdata["transparency"] >
69 <#assign businessBackgroundImageLarge = clientdata["businessBackgroundImageLarge"] >
70 <#assign businessBackgroundImageSmall = clientdata["businessBackgroundImageSmall"] >
71 <#assign businessTransparency = clientdata["businessTransparency"] >
72 <#assign dmaBackgroundImage = clientdata["dmaBackgroundImage"] >
73 <#assign secondaryDmaBackgroundImage = clientdata["secondaryDmaBackgroundImage"] >
74 </#if> -->
75
76 <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case>
77 <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')>
78 <script>
79 console.log('logo url', '${cdnLogoUrl}${logoFileName}');
80 </script>
81 <#if pbu == "0864054">
82 <#assign override = "berkshire">
83 <#else>
84 <#assign override = " ">
85 </#if>
86 <#-- this one should be delete for prod -->
87
88 <#-- <#assign cdnLogoUrl = "https://4f61efb10f32ceb57895-3733e103896f37259213d6ad72acbe68.ssl.cf2.rackcdn.com">
89 <#assign logoFileName = pbu + "-" + subbu + ".png">-->
90
91 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
92 <#if (subbu_special?has_content)>
93 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
94 <script>
95 console.log('new subbu', '${subbu_special!''}');
96 </script>
97 <#else>
98 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
99 </#if>
100 <#assign temp = []>
101 <#assign consumerCards = []>
102 <#assign businessCards = []>
103 <#assign offerTypeList = []>
104 <#assign index = 0>
105 <#assign ameriprise_cards= []>
106 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115']>
107 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
108 <#list fiCardsData as fib>
109 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
110 <#assign offerTypeList = offerTypeList + [fib.offerType]>
111 <#assign temp = temp + fiCardsData[index..index]>
112 <#if ameriprise>
113 <#if (fib.offerType == "101" || fib.offerType == "103")>
114 <#assign ameriprise_cards= ameriprise_cards + fiCardsData[index..index]>
115 </#if>
116 <#else>
117 <#if consumerOfferTypes?seq_contains(fib.offerType)>
118 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
119 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
120 <#assign businessCards = businessCards + fiCardsData[index..index]>
121 </#if>
122 </#if>
123 </#if>
124 <#assign index = index + 1>
125
126 </#list>
127 <#assign fiCardsData = temp>
128 <#if ameriprise>
129 <#assign consumerCards = ameriprise_cards?sort_by("offerType")>
130 </#if>
131
132 <#if (fiCardsData?size > 0)>
133 <#if (subbu_special?has_content)>
134 <#assign lc_used = fiCardsData?first.WebLocationCode>
135 <#else>
136 <#if ameriprise>
137 <#assign lc_used = mappedLC>
138 <#else>
139 <#assign lc_used = lc>
140 </#if>
141 </#if>
142 <#assign offerId = "">
143 <#assign sourceCode = "">
144 <#assign cardArtImage = "">
145 <#assign productUrl = "">
146 <#assign product = "">
147 <#assign preparerType = "customer">
148 <#assign apr = "">
149 <#assign cardIndex = 0>
150 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
151 <#if (offerTypeList?seq_contains("101")) || (offerTypeList?seq_contains("103")) >
152 <#list consumerCards as card>
153 <#if (card.offerType=="101" || card.offerType=="103") >
154 <#assign offerId = card.offerId>
155 <#assign sourceCode = card.sourceCode>
156 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
157 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
158
159 <#assign productUrl="consumer-edr2112">
160 <#assign product="Everyday Rewards+">
161 <#assign cardIndex = 1>
162
163 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
164 <#if (scrapedData?size > 0)>
165 <#list scrapedData as sItem>
166 <script>
167 console.log("scrapped item", "${sItem.scrapedLabel}");
168 </script>
169 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
170 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
171 <#break>
172 </#if>
173 </#list>
174 <script>
175 $(document).ready(function () {
176 var aprText = "${apr}";
177 if (aprText) {
178 console.log("apr: " + aprText);
179 try {
180 $(".apr-full-text").html(aprText);
181 var matches= aprText.match(/\d+(\.\d+)?%?/g);
182 var billing_cycle = matches[1];
183 var apr_min = apr_min = matches[2];
184 var apr_max = apr_max = matches[3];
185 if (billing_cycle) {
186 $(".scraped-billing-cycle").html(billing_cycle);
187 }
188 if (apr_min) {
189 $(".scraped-apr-min").html(apr_min);
190 }
191 if (apr_max) {
192 $('.scraped-apr-max').html(apr_max);
193 }
194
195 } catch (e) {
196 console.log(e);
197 }
198 } else {
199 $(".apr-full-text").html('');
200 }
201 });
202 </script>
203 </#if>
204 <script>
205 var product = "${product}";
206 var partnerName = "${partnerName}";
207 $(document).ready(function () {
208 $(".see-terms").replaceWith('<a href="${oadURL_TC}?step=display&offerId=${offerId}&locationCode=${lc_used}" target="_blank"><span class="screen-reader-only">' + partnerName + ' ' + product + ' Card</span>See terms & conditions</a>');
209 });
210 </script>
211 </#if>
212 </#list>
213 <#else>
214 <#assign displayedCard = consumerCards[0]>
215 <script>
216 console.log('dispalyed card:','${displayedCard.offerType}');
217 </script>
218 <#assign offerId = displayedCard.offerId>
219 <#assign sourceCode = displayedCard.sourceCode>
220 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
221 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
222 <#if ameriprise>
223 <#if (displayedCard.offerType == "101")>
224 <#assign productUrl="ameriprise-premier-visa-signature">
225 <#assign product="Premier Visa Signature">
226 <#assign cardIndex = 0>
227 <#elseif (displayedCard.offerType == "103")>
228 <#assign productUrl = "ameriprise-visa-signature">
229 <#assign product="Visa Signature">
230 <#assign cardIndex = 1>
231 </#if>
232 <#else>
233 <#if (displayedCard.offerType == "101" || displayedCard.offerType == "103")>
234 <#assign productUrl="consumer-edr2112">
235 <#assign product="Everyday Rewards+">
236 <#assign cardIndex = 1>
237 <#elseif (displayedCard.offerType == "108" || displayedCard.offerType == "109")>
238 <#assign productUrl = "consumer-platinum2103">
239 <#assign product="Platinum">
240 <#assign cardIndex = 5>
241 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
242 <#if (scrapedData?size > 0)>
243 <#list scrapedData as sItem>
244 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
245 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
246 <#break>
247 </#if>
248 </#list>
249 <script>
250 console.log("apr");
251 $(document).ready(function () {
252 var aprText = "${apr}";
253 if (aprText) {
254 console.log("apr:" + aprText);
255 try {
256 $(".apr-full-text").html(aprText);
257 var matches= aprText.match(/\d+(\.\d+)?%?/g);
258 var billing_cycle = matches[1];
259 var apr_min = apr_min = matches[2];
260 var apr_max = apr_max = matches[3];
261 if (billing_cycle) {
262 $(".scraped-billing-cycle").html(billing_cycle);
263 }
264 if (apr_min) {
265 $(".scraped-apr-min").html(apr_min);
266 }
267 if (apr_max) {
268 $('.scraped-apr-max').html(apr_max);
269 }
270
271 } catch (e) {
272 console.log(e);
273 }
274 } else {
275 $(".apr-full-text").html('');
276 }
277 });
278 </script>
279 </#if>
280 <#elseif (displayedCard.offerType == "115")>
281 <#assign productUrl = "secured">
282 <#assign product="Secured">
283 <#assign cardIndex = 4>
284 </#if>
285 </#if>
286 </#if>
287 </#if>
288 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
289 <#if (offerTypeList?seq_contains("128")) >
290 <#list businessCards as card>
291 <#if (card.offerType=="128")>
292 <#assign offerId = card.offerId>
293 <#assign sourceCode = card.sourceCode>
294 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
295 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
296 <#assign productUrl = "business-cash-preferred">
297 <#assign product="Business Cash Preferred">
298 <#assign cardIndex = 0>
299 </#if>
300 </#list>
301 <#else>
302 <#assign displayedCard = businessCards[0]>
303 <#assign offerId = displayedCard.offerId>
304 <#assign sourceCode = displayedCard.sourceCode>
305 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
306 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
307
308 <#if (displayedCard.offerType=="143")>
309 <#assign productUrl="business-real-rewards">
310 <#assign product="Business Real Rewards">
311 <#assign cardIndex = 0>
312 <#elseif (displayedCard.offerType=="128")>
313 <#assign productUrl = "business-cash-preferred">
314 <#assign product="Business Cash Preferred">
315 <#assign cardIndex = 1>
316 <#elseif (displayedCard.offerType=="121")>
317 <#assign productUrl = "business-platinum2103">
318 <#assign product="Visa Business">
319 <#assign cardIndex = 3>
320 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
321 <#if (scrapedData?size > 0)>
322 <#list scrapedData as sItem>
323 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
324 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
325 <#break>
326 </#if>
327 </#list>
328 <script>
329 console.log("apr");
330 $(document).ready(function () {
331 var aprText = "${apr}";
332 if (aprText) {
333 console.log("apr: " + aprText);
334 try {
335 $(".apr-full-text").html(aprText);
336 var matches= aprText.match(/\d+(\.\d+)?%?/g);
337 var billing_cycle = matches[1];
338 var apr_min = apr_min = matches[2];
339 var apr_max = apr_max = matches[3];
340 if (billing_cycle) {
341 $(".scraped-billing-cycle").html(billing_cycle);
342 }
343 if (apr_min) {
344 $(".scraped-apr-min").html(apr_min);
345 }
346 if (apr_max) {
347 $('.scraped-apr-max').html(apr_max);
348 }
349
350 } catch (e) {
351 console.log(e);
352 }
353 } else {
354 $(".apr-full-text").html('');
355 }
356 });
357 </script>
358 </#if>
359 </#if>
360 </#if>
361 </#if>
362 <#if product != "">
363 <#if ameriprise>
364 <#assign card_art_alt = partnerName + " " + product + " Card">
365 <#assign rollover_text = partnerName + " " + product + " Card">
366 <#else>
367 <#assign card_art_alt = partnerName + " " + product + " Card">
368 <#assign rollover_text = partnerName + " " + product + " Credit Card">
369 <#assign card_text = product + " Card">
370 </#if>
371 </#if>
372 <div class="jn-hero-container product-${productUrl} tier1-hero-${class.getData()}" title="${rollover_text!''}">
373 <div class="hero-main">
374 <div class="hero-main-logo">
375 <#if partnerUrl?has_content>
376 <a href="${partnerUrl!''}" title="${partnerName!''} Logo"><img src="${cdnLogoUrl!''}/${logoFileName!''}" title="${partnerName!''} Logo" alt="${partnerName!''} Logo"></a>
377 <#else>
378 <a title="${partnerName!''} Logo"><img src="${cdnLogoUrl!''}/${logoFileName!''}" title="${partnerName!''} Logo" alt="${partnerName!''} Logo"></a>
379 </#if>
380 </div>
381 <div class="hero-main-container">
382 <div class="hero-main-offer bg-color-white">
383 <div class="offer-detail">
384
385 <div class="offer-detail-cardArt cardArtImg">
386 <img src="${cardArtImage!''}" alt="${card_art_alt!''}" srcset="" title="${card_art_alt!''}" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
387 <p>${card_text!''}</p>
388 </div>
389 <div class="offer-detail-text text-color-default hide-desktop">
390 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
391 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
392 </div>
393
394 <#if ameriprise>
395 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white hide-desktop" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
396 <#else>
397 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm hide-desktop">
398 <label for="appDataBAAMobile-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
399 <textarea rows="20" cols="100" name="applicationData" id="appDataBAAMobile-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
400 <button
401 type="submit"
402 data-button-name="cta-button-top"
403 data-product-name="${productUrl!''}"
404 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white"
405 disabled
406 >
407 ${productTitle.getSiblings()[cardIndex].ctaText.getData()} <span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card</span>
408 </button>
409 </form>
410 </#if>
411 </div>
412
413 <div class="offer-header">
414 <div class="offer-text-top">
415 <div class="offer-title">${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}</div>
416 <h1 class="offer-subtitle">${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}</h1>
417 </div>
418 <div class="offer-text-bottom hide-mobile">
419 <div class="offer-detail-text text-color-default">
420 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
421 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
422 </div>
423
424 <#if ameriprise>
425 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
426 <#else>
427 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm">
428 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
429 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
430 <button
431 type="submit"
432 data-button-name="cta-button-top"
433 data-product-name="${productUrl!''}"
434 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white"
435 disabled
436 >
437 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card</span>
438 </button>
439 </form>
440 </#if>
441 </div>
442 </div>
443 </div>
444 </div>
445 </div>
446 </div>
447
448 </#if>
449</#if>
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 8, column 17 in 10153#10191#5883698.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
5<#assign url404 = '/error/404.html'>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7
8<#assign bCode= qstringmap["bankercode"]?first>
9<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
10<#list bData as b>
11 <#assign lc = b.locationcode >
12 <#assign rLC = b.reallocationcode >
13 <#assign mappedLC = b.mappedLocationCode >
14</#list>
15<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
16 <#assign ameriprise = true>
17<#else>
18 <#assign ameriprise = false>
19</#if>
20
21<#if mappedLC?has_content && !ameriprise>
22 <#assign lc = mappedLC >
23</#if>
24
25<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedAppSql','0&'+bCode)>
26<#if fiData?first?has_content>
27 <#assign fi = fiData?first>
28 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
29 <#assign subbu_special = fi.offerId>
30 </#if>
31</#if>
32
33
34<#if lc?has_content>
35 <#assign prefix = "00000" >
36 <#assign lcWithPrefix = prefix + lc>
37 <#assign withPrefixLength = lcWithPrefix?length >
38 <#assign startHere = withPrefixLength - 5>
39 <#assign lc = lcWithPrefix?substring(startHere)>
40 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
41 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
42
43 <#assign clientProfile = clientProfileList?first>
44 <#assign partnerName = clientProfile.getMarketingNameLong()>
45 <#assign pbu = clientProfile.getPbu()>
46 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
47 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
48 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
49 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
50 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
51 <#assign partnerUrl = 'https://' + partnerUrl>
52 </#if>
53
54 <!-- <#assign clientdataList = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
55 <#if clientdataList?has_content >
56 <#assign clientdata = clientdataList?first >
57 <#assign backgroundHexColor = clientdata["backgroundHexColor"] >
58 <#assign backgroundImage = clientdata["backgroundImage"] >
59 <#assign buttonHexColor = clientdata["buttonHexColor"] >
60 <#assign AprMin = clientdata["AprMin"] >
61 <#assign AprMax = clientdata["AprMax"] >
62 <#assign cashAdvanceRate = clientdata["cashAdvanceRate"] >
63 <#assign BillingCycles = clientdata["BillingCycles"] >
64 <#assign textHexColor = clientdata["textHexColor"] >
65 <#assign linkHexColor = clientdata["linkHexColor"] >
66 <#assign hoverColor = clientdata["hoverColor"] >
67 <#assign secondaryBackgroundImage = clientdata["secondaryBackgroundImage"] >
68 <#assign transparency = clientdata["transparency"] >
69 <#assign businessBackgroundImageLarge = clientdata["businessBackgroundImageLarge"] >
70 <#assign businessBackgroundImageSmall = clientdata["businessBackgroundImageSmall"] >
71 <#assign businessTransparency = clientdata["businessTransparency"] >
72 <#assign dmaBackgroundImage = clientdata["dmaBackgroundImage"] >
73 <#assign secondaryDmaBackgroundImage = clientdata["secondaryDmaBackgroundImage"] >
74 </#if> -->
75
76 <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case>
77 <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')>
78 <script>
79 console.log('logo url', '${cdnLogoUrl}${logoFileName}');
80 </script>
81 <#if pbu == "0864054">
82 <#assign override = "berkshire">
83 <#else>
84 <#assign override = " ">
85 </#if>
86 <#-- this one should be delete for prod -->
87
88 <#-- <#assign cdnLogoUrl = "https://4f61efb10f32ceb57895-3733e103896f37259213d6ad72acbe68.ssl.cf2.rackcdn.com">
89 <#assign logoFileName = pbu + "-" + subbu + ".png">-->
90
91 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
92 <#if (subbu_special?has_content)>
93 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
94 <script>
95 console.log('new subbu', '${subbu_special!''}');
96 </script>
97 <#else>
98 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
99 </#if>
100 <#assign temp = []>
101 <#assign consumerCards = []>
102 <#assign businessCards = []>
103 <#assign offerTypeList = []>
104 <#assign index = 0>
105 <#assign ameriprise_cards= []>
106 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115']>
107 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
108 <#list fiCardsData as fib>
109 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
110 <#assign offerTypeList = offerTypeList + [fib.offerType]>
111 <#assign temp = temp + fiCardsData[index..index]>
112 <#if ameriprise>
113 <#if (fib.offerType == "101" || fib.offerType == "103")>
114 <#assign ameriprise_cards= ameriprise_cards + fiCardsData[index..index]>
115 </#if>
116 <#else>
117 <#if consumerOfferTypes?seq_contains(fib.offerType)>
118 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
119 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
120 <#assign businessCards = businessCards + fiCardsData[index..index]>
121 </#if>
122 </#if>
123 </#if>
124 <#assign index = index + 1>
125
126 </#list>
127 <#assign fiCardsData = temp>
128 <#if ameriprise>
129 <#assign consumerCards = ameriprise_cards?sort_by("offerType")>
130 </#if>
131
132 <#if (fiCardsData?size > 0)>
133 <#if (subbu_special?has_content)>
134 <#assign lc_used = fiCardsData?first.WebLocationCode>
135 <#else>
136 <#if ameriprise>
137 <#assign lc_used = mappedLC>
138 <#else>
139 <#assign lc_used = lc>
140 </#if>
141 </#if>
142 <#assign offerId = "">
143 <#assign sourceCode = "">
144 <#assign cardArtImage = "">
145 <#assign productUrl = "">
146 <#assign product = "">
147 <#assign preparerType = "customer">
148 <#assign apr = "">
149 <#assign cardIndex = 0>
150 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
151 <#if (offerTypeList?seq_contains("101")) || (offerTypeList?seq_contains("103")) >
152 <#list consumerCards as card>
153 <#if (card.offerType=="101" || card.offerType=="103") >
154 <#assign offerId = card.offerId>
155 <#assign sourceCode = card.sourceCode>
156 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
157 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
158
159 <#assign productUrl="consumer-edr2112">
160 <#assign product="Everyday Rewards+">
161 <#assign cardIndex = 1>
162
163 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
164 <#if (scrapedData?size > 0)>
165 <#list scrapedData as sItem>
166 <script>
167 console.log("scrapped item", "${sItem.scrapedLabel}");
168 </script>
169 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
170 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
171 <#break>
172 </#if>
173 </#list>
174 <script>
175 $(document).ready(function () {
176 var aprText = "${apr}";
177 if (aprText) {
178 console.log("apr: " + aprText);
179 try {
180 $(".apr-full-text").html(aprText);
181 var matches= aprText.match(/\d+(\.\d+)?%?/g);
182 var billing_cycle = matches[1];
183 var apr_min = apr_min = matches[2];
184 var apr_max = apr_max = matches[3];
185 if (billing_cycle) {
186 $(".scraped-billing-cycle").html(billing_cycle);
187 }
188 if (apr_min) {
189 $(".scraped-apr-min").html(apr_min);
190 }
191 if (apr_max) {
192 $('.scraped-apr-max').html(apr_max);
193 }
194
195 } catch (e) {
196 console.log(e);
197 }
198 } else {
199 $(".apr-full-text").html('');
200 }
201 });
202 </script>
203 </#if>
204 <script>
205 var product = "${product}";
206 var partnerName = "${partnerName}";
207 $(document).ready(function () {
208 $(".see-terms").replaceWith('<a href="${oadURL_TC}?step=display&offerId=${offerId}&locationCode=${lc_used}" target="_blank"><span class="screen-reader-only">' + partnerName + ' ' + product + ' Card</span>See terms & conditions</a>');
209 });
210 </script>
211 </#if>
212 </#list>
213 <#else>
214 <#assign displayedCard = consumerCards[0]>
215 <script>
216 console.log('dispalyed card:','${displayedCard.offerType}');
217 </script>
218 <#assign offerId = displayedCard.offerId>
219 <#assign sourceCode = displayedCard.sourceCode>
220 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
221 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
222 <#if ameriprise>
223 <#if (displayedCard.offerType == "101")>
224 <#assign productUrl="ameriprise-premier-visa-signature">
225 <#assign product="Premier Visa Signature">
226 <#assign cardIndex = 0>
227 <#elseif (displayedCard.offerType == "103")>
228 <#assign productUrl = "ameriprise-visa-signature">
229 <#assign product="Visa Signature">
230 <#assign cardIndex = 1>
231 </#if>
232 <#else>
233 <#if (displayedCard.offerType == "101" || displayedCard.offerType == "103")>
234 <#assign productUrl="consumer-edr2112">
235 <#assign product="Everyday Rewards+">
236 <#assign cardIndex = 1>
237 <#elseif (displayedCard.offerType == "108" || displayedCard.offerType == "109")>
238 <#assign productUrl = "consumer-platinum2103">
239 <#assign product="Platinum">
240 <#assign cardIndex = 5>
241 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
242 <#if (scrapedData?size > 0)>
243 <#list scrapedData as sItem>
244 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
245 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
246 <#break>
247 </#if>
248 </#list>
249 <script>
250 console.log("apr");
251 $(document).ready(function () {
252 var aprText = "${apr}";
253 if (aprText) {
254 console.log("apr:" + aprText);
255 try {
256 $(".apr-full-text").html(aprText);
257 var matches= aprText.match(/\d+(\.\d+)?%?/g);
258 var billing_cycle = matches[1];
259 var apr_min = apr_min = matches[2];
260 var apr_max = apr_max = matches[3];
261 if (billing_cycle) {
262 $(".scraped-billing-cycle").html(billing_cycle);
263 }
264 if (apr_min) {
265 $(".scraped-apr-min").html(apr_min);
266 }
267 if (apr_max) {
268 $('.scraped-apr-max').html(apr_max);
269 }
270
271 } catch (e) {
272 console.log(e);
273 }
274 } else {
275 $(".apr-full-text").html('');
276 }
277 });
278 </script>
279 </#if>
280 <#elseif (displayedCard.offerType == "115")>
281 <#assign productUrl = "secured">
282 <#assign product="Secured">
283 <#assign cardIndex = 4>
284 </#if>
285 </#if>
286 </#if>
287 </#if>
288 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
289 <#if (offerTypeList?seq_contains("128")) >
290 <#list businessCards as card>
291 <#if (card.offerType=="128")>
292 <#assign offerId = card.offerId>
293 <#assign sourceCode = card.sourceCode>
294 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
295 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
296 <#assign productUrl = "business-cash-preferred">
297 <#assign product="Business Cash Preferred">
298 <#assign cardIndex = 0>
299 </#if>
300 </#list>
301 <#else>
302 <#assign displayedCard = businessCards[0]>
303 <#assign offerId = displayedCard.offerId>
304 <#assign sourceCode = displayedCard.sourceCode>
305 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
306 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
307
308 <#if (displayedCard.offerType=="143")>
309 <#assign productUrl="business-real-rewards">
310 <#assign product="Business Real Rewards">
311 <#assign cardIndex = 0>
312 <#elseif (displayedCard.offerType=="128")>
313 <#assign productUrl = "business-cash-preferred">
314 <#assign product="Business Cash Preferred">
315 <#assign cardIndex = 1>
316 <#elseif (displayedCard.offerType=="121")>
317 <#assign productUrl = "business-platinum2103">
318 <#assign product="Visa Business">
319 <#assign cardIndex = 3>
320 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
321 <#if (scrapedData?size > 0)>
322 <#list scrapedData as sItem>
323 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
324 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
325 <#break>
326 </#if>
327 </#list>
328 <script>
329 console.log("apr");
330 $(document).ready(function () {
331 var aprText = "${apr}";
332 if (aprText) {
333 console.log("apr: " + aprText);
334 try {
335 $(".apr-full-text").html(aprText);
336 var matches= aprText.match(/\d+(\.\d+)?%?/g);
337 var billing_cycle = matches[1];
338 var apr_min = apr_min = matches[2];
339 var apr_max = apr_max = matches[3];
340 if (billing_cycle) {
341 $(".scraped-billing-cycle").html(billing_cycle);
342 }
343 if (apr_min) {
344 $(".scraped-apr-min").html(apr_min);
345 }
346 if (apr_max) {
347 $('.scraped-apr-max').html(apr_max);
348 }
349
350 } catch (e) {
351 console.log(e);
352 }
353 } else {
354 $(".apr-full-text").html('');
355 }
356 });
357 </script>
358 </#if>
359 </#if>
360 </#if>
361 </#if>
362 <#if product != "">
363 <#if ameriprise>
364 <#assign card_art_alt = partnerName + " " + product + " Card">
365 <#assign rollover_text = partnerName + " " + product + " Card">
366 <#else>
367 <#assign card_art_alt = partnerName + " " + product + " Card">
368 <#assign rollover_text = partnerName + " " + product + " Credit Card">
369 <#assign card_text = product + " Card">
370 </#if>
371 </#if>
372 <div class="jn-hero-container product-${productUrl} tier1-hero-${class.getData()}" title="${rollover_text!''}">
373 <div class="hero-main">
374 <div class="hero-main-logo">
375 <#if partnerUrl?has_content>
376 <a href="${partnerUrl!''}" title="${partnerName!''} Logo"><img src="${cdnLogoUrl!''}/${logoFileName!''}" title="${partnerName!''} Logo" alt="${partnerName!''} Logo"></a>
377 <#else>
378 <a title="${partnerName!''} Logo"><img src="${cdnLogoUrl!''}/${logoFileName!''}" title="${partnerName!''} Logo" alt="${partnerName!''} Logo"></a>
379 </#if>
380 </div>
381 <div class="hero-main-container">
382 <div class="hero-main-offer bg-color-white">
383 <div class="offer-detail">
384
385 <div class="offer-detail-cardArt cardArtImg">
386 <img src="${cardArtImage!''}" alt="${card_art_alt!''}" srcset="" title="${card_art_alt!''}" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
387 <p>${card_text!''}</p>
388 </div>
389 <div class="offer-detail-text text-color-default hide-desktop">
390 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
391 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
392 </div>
393
394 <#if ameriprise>
395 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white hide-desktop" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
396 <#else>
397 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm hide-desktop">
398 <label for="appDataBAAMobile-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
399 <textarea rows="20" cols="100" name="applicationData" id="appDataBAAMobile-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
400 <button
401 type="submit"
402 data-button-name="cta-button-top"
403 data-product-name="${productUrl!''}"
404 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white"
405 disabled
406 >
407 ${productTitle.getSiblings()[cardIndex].ctaText.getData()} <span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card</span>
408 </button>
409 </form>
410 </#if>
411 </div>
412
413 <div class="offer-header">
414 <div class="offer-text-top">
415 <div class="offer-title">${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}</div>
416 <h1 class="offer-subtitle">${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}</h1>
417 </div>
418 <div class="offer-text-bottom hide-mobile">
419 <div class="offer-detail-text text-color-default">
420 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
421 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
422 </div>
423
424 <#if ameriprise>
425 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
426 <#else>
427 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm">
428 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
429 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
430 <button
431 type="submit"
432 data-button-name="cta-button-top"
433 data-product-name="${productUrl!''}"
434 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white"
435 disabled
436 >
437 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card</span>
438 </button>
439 </form>
440 </#if>
441 </div>
442 </div>
443 </div>
444 </div>
445 </div>
446 </div>
447
448 </#if>
449</#if>
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 32, column 17 in 10153#10191#5843849.
1<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService") >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign url = request.attributes.CURRENT_URL >
4<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
5<#-- <#assign url404 = '/error/404.html'> -->
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7<#assign environment = url?replace('/index.*','','r')>
8
9
10<#assign text_to_apply_source = "vanity url" >
11<#if qstringmap["sms"]?has_content>
12 <#assign sms = 1 >
13 <#assign text_to_apply_source = "sms" >
14</#if>
15<#if qstringmap["qrCode"]?has_content>
16 <#assign text_to_apply_source = "qr code" >
17</#if>
18
19<#if qstringmap["ecid"]?has_content>
20 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
21 <#assign campaignId = qstringmap["ecid"]?first >
22<#else>
23 <#assign ecidExt="">
24 <#assign campaignId = "" >
25</#if>
26<#-- check bankercode validity -->
27<#if oadURL?contains("uat-")>
28 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
29<#else>
30 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
31</#if>
32<#assign bCode= qstringmap["bankercode"]?first>
33
34<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedAppSql','0&'+bCode)>
35<#if fiData?first?has_content>
36 <#assign fi = fiData?first>
37 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
38 <#assign subbu_special = fi.offerId>
39 </#if>
40</#if>
41
42<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
43<#list bData as b>
44 <#assign lc = b.locationcode >
45 <#assign bName = b.branch >
46 <#assign bPhone = b.businessphone >
47 <#assign boeid = b.oeid >
48 <#assign fName = b.firstname?trim >
49 <#assign lName = b.lastname?trim >
50 <#assign rLC = b.reallocationcode >
51 <#assign mappedLC = b.mappedLocationCode >
52</#list>
53
54<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
55 <#assign ameriprise = true>
56<#else>
57 <#assign ameriprise = false>
58</#if>
59<#if mappedLC?has_content && !ameriprise>
60 <#assign lc = mappedLC >
61</#if>
62
63
64<#if lc?has_content>
65 <#assign firstNameLength = fName?length >
66 <#assign lastNameLength = lName?length >
67 <#if firstNameLength + lastNameLength > 19 >
68 <#if lastNameLength > 18 >
69 <#assign bLName = lName?substring(0,18)>
70 <#else>
71 <#assign bLName = lName>
72 </#if>
73 <#assign maxFirstName = 19 - bLName?length >
74 <#if firstNameLength > maxFirstName >
75 <#assign bFName = fName?substring(0,maxFirstName)>
76 <#else>
77 <#assign bFName = fName>
78 </#if>
79 <#else>
80 <#assign bFName = fName>
81 <#assign bLName = lName>
82 </#if>
83
84 <#assign prefix = "00000" >
85 <#assign lcWithPrefix = prefix + lc >
86 <#assign withPrefixLength = lcWithPrefix?length >
87 <#assign startHere = withPrefixLength - 5>
88 <#assign lc = lcWithPrefix?substring(startHere)>
89 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
90 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
91 <#if (clientProfileList?first?has_content)>
92 <#assign clientProfile = clientProfileList?first>
93 <#assign partnerName = clientProfile.getMarketingNameLong()>
94 <#assign pbu = clientProfile.getPbu()>
95 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
96 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
97 <#if (subbu_special?has_content)>
98 <script>
99 console.log("special subbu:", '${subbu_special}');
100 </script>
101 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
102 <#else>
103 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
104 <script>
105 console.log("subbu:", '${subbu}');
106 </script>
107 </#if>
108
109 <#-- Begin: filter cards by sourceCode and offerId and remove duplicated cards-->
110 <#assign temp = []>
111 <#assign consumerCards = []>
112 <#assign businessCards = []>
113 <#assign offerTypeList = []>
114 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115', '141', '147']>
115 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
116 <#assign index = 0>
117 <#list fiCardsData as fib>
118 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
119 <#assign offerTypeList = offerTypeList + [fib.offerType]>
120 <#assign temp = temp + fiCardsData[index..index]>
121 <#if consumerOfferTypes?seq_contains(fib.offerType)>
122 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
123 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
124 <#assign businessCards = businessCards + fiCardsData[index..index]>
125 </#if>
126 </#if>
127 <#assign index = index + 1>
128 </#list>
129
130
131 <#assign fiCardsData = temp>
132
133 <#if (fiCardsData?size > 0)>
134 <#if (subbu_special?has_content)>
135 <#assign lc_used = fiCardsData?first.WebLocationCode>
136 <#else>
137 <#if ameriprise>
138 <#assign lc_used = mappedLC>
139 <#else>
140 <#assign lc_used = lc>
141 </#if>
142 </#if>
143 </#if>
144
145 <#if (consumerCards?size > 0 || businessCards?size > 0)>
146
147 <div class="content-container content-container-main jn-consumer-content" id="product-display">
148 <#if ((consumerCards?size > 0) && (businessCards?size > 0))>
149 <nav class="jn-primary-nav two-tabs">
150 <ul>
151 <li title="${partnerName!''} - Personal products">
152 <a href="#" class="tab-nav active" id="consumerTab"><span>Personal</span></a>
153 </li>
154 <li title="${partnerName!''} - Business products">
155 <a href="#" class="tab-nav" id="businessTab"><span>Business</span></a>
156 </li>
157 </ul>
158 </nav>
159 <#else>
160 <#if (consumerCards?size > 0)>
161 <nav class="jn-primary-nav" title="${partnerName!''} - Personal products">
162 <ul>
163 <li>
164 <p class="tab-nav" id="consumerTab"><span>Personal</span></p>
165 </li>
166 </ul>
167 </nav>
168 </#if>
169 <#if (businessCards?size > 0)>
170 <nav class="jn-primary-nav" title="${partnerName!''} - Business products">
171 <ul>
172 <li>
173 <p class="tab-nav" id="businessTab"><span>Business</span></p>
174 </li>
175 </ul>
176 </nav>
177 </#if>
178 </#if>
179 <#if (consumerCards?size > 0)>
180 <div class="tab-more-wrapper">
181 <div class="jn-consumer-content-wrapper jn-tab-content active transition-start" data-id="consumerTab" title="${partnerName!''} - Personal products">
182 <#list consumerCards as fib>
183 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png" >
184 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">
185 <#if ameriprise>
186 <#if (fib.offerType == "101")>
187 <#assign productName = "premier-visa-signature">
188 <#assign product="Premier Visa Signature">
189 <#assign cardIndex = 0>
190 <#elseif (fib.offerType == "103")>
191 <#assign productName = "visa-signature">
192 <#assign product="Visa Signature">
193 <#assign cardIndex = 1>
194 </#if>
195 <#assign titleText = consumerTitle.getSiblings()[cardIndex].Title.getData()>
196 <#assign titleText = titleText?replace('<[^>]+>','','r')>
197 <#else>
198 <#switch fib.offerType>
199 <#case "101">
200 <#assign productName = "consumer-edr2112">
201 <#assign product="Everyday Rewards+">
202 <#assign cardIndex = 0>
203 <#break>
204 <#case "108">
205 <#assign productName = "consumer-platinum2103">
206 <#assign product="Platinum">
207 <#assign cardIndex = 2>
208 <#break>
209 <#case "109">
210 <#assign productName = "consumer-platinum2103">
211 <#assign product="Platinum">
212 <#assign cardIndex = 2>
213 <#break>
214 <#case "115">
215 <#assign productName = "secured">
216 <#assign product="Secured">
217 <#assign cardIndex = 5>
218 <#break>
219 <#case "104">
220 <#assign productName = "max-cash">
221 <#assign product="Max Cash Preferred">
222 <#assign cardIndex = 1>
223 <#break>
224 <#case "147">
225 <#assign productName = "max-cash-secured">
226 <#assign product="Max Cash Secured">
227 <#assign cardIndex = 4>
228 <#break>
229 <#case "141">
230 <#assign productName = "college-real-rewards">
231 <#assign product="College Real Rewards">
232 <#assign cardIndex = 3>
233 <#break>
234 <#default>
235 </#switch>
236
237 <#assign titleText = consumerTitle.getSiblings()[cardIndex].Title.getData()>
238 <#assign titleText = titleText?replace('<[^>]+>','','r')>
239
240
241 <#assign APR="">
242 <#assign AMF="">
243 <#assign BAL="">
244 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
245 <#if (scrapedData?size > 0)>
246 <#list scrapedData as sItem>
247 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
248 <#assign APR = sItem.scrapedValue>
249 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
250 <#assign AMF = sItem.scrapedValue>
251 <#elseif ((sItem.scrapedLabel?contains("APR for Balance Transfers")) && (sItem.scrapedValue?has_content)) >
252 <#assign BAL = sItem.scrapedValue>
253 </#if>
254 <#if (APR?has_content && AMF?has_content && BAL?has_content)>
255 <#break>
256 </#if>
257 </#list>
258 </#if>
259 </#if>
260 <#if ameriprise>
261 <#assign rollover_text = partnerName + " " + product + " " + " Card">
262 <#else>
263 <#assign rollover_text = partnerName + " " + product + " " + " Credit Card">
264 </#if>
265 <div class="jn-consumer-item item-${fib.offerType}" title="${rollover_text!''}">
266 <div class="consumer-card-heading hide-desktop">
267 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
268 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
269 </div>
270 <div class="jn-consumer-card-image">
271 <img src="${cardArtImage!''}" alt="${rollover_text!''}" class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
272 <#if (consumerTitle.getSiblings()[cardIndex].cardArtDescription?has_content) >
273 <p class="jn-card-art-description">${consumerTitle.getSiblings()[cardIndex].cardArtDescription.getData()}</p>
274 </#if>
275 </div>
276
277 <div class="jn-consumer-card-info">
278 <div class="consumer-card-heading hide-mobile">
279 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
280 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
281 </div>
282 <div class="jn-additional">
283 <ul class="${fib.offerType}">
284 <#if !ameriprise>
285 <#if (fib.offerType == "104")>
286 <li class="${fib.offerType}">
287 <p>
288 <strong>APR for Purchases: </strong>
289 ${APR!''}
290 </p>
291
292 </li>
293 <li class="${fib.offerType}">
294 <p>
295 <strong>Intro APR<sup>*</sup> for Balance Transfers: </strong>
296 ${BAL!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
297 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
298 </a>
299 </p>
300 </li>
301 <#elseif (fib.offerType == "147")>
302 <li class="${fib.offerType}">
303 <p>
304 <strong>APR for Purchases and Balance Transfers: </strong>
305 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
306 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
307 </a>
308 </p>
309 </li>
310 <#elseif (fib.offerType== "115")>
311 <li class="${fib.offerType}">
312 <p>
313 <strong>APR for Purchases and Balance Transfers: </strong>
314 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
315 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
316 </a>
317 </p>
318 </li>
319 <#elseif (fib.offerType== "101")>
320 <li class="${fib.offerType}">
321 <p>
322 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
323 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
324 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
325 </a>
326 </p>
327 </li>
328 <#else>
329 <li class="${fib.offerType}">
330 <p>
331 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
332 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
333 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
334 </a>
335 </p>
336 </li>
337 </#if>
338 </#if>
339 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
340 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
341 <li>${marketingInfo.getData()}</li>
342 </#list>
343 </#if>
344 <#if !ameriprise>
345 <li>
346 <p>
347 Annual Fee: ${AMF!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
348 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
349 </a>
350 </p>
351 </li>
352 </#if>
353 </ul>
354 </div>
355 <ul class="actions">
356 <li>
357 <form action="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}" method="post" class="BAAForm">
358 <label for="appDataBAA-${fib.offerId}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
359 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${fib.offerId}" class="appDataBAA" style="display:none;" title="application data"></textarea>
360 <a
361 class="applyNowLink apply-now-button"
362 href="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}"
363 data-button-name="apply-now-link"
364 data-product-name="${productName}"
365 >
366 ${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card </span>
367 </a>
368 </form>
369 </li>
370 <li>
371 <#if ameriprise>
372 <a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc_used}${ecidExt}">
373 ${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}<span class="screen-reader-only"> about ${partnerName!''} ${product!''} Card </span>
374 </a>
375 <#else>
376 <a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc}${ecidExt}">
377 ${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}<span class="screen-reader-only">about ${partnerName!''} ${product!''} Card </span>
378 </a>
379 </#if>
380 </li>
381 </ul>
382 </div>
383
384
385
386
387 </div>
388 </#list>
389 </div>
390 </div>
391
392 </#if>
393 <#if (businessCards?size > 0)>
394 <div class="tab-more-wrapper">
395 <div class="jn-consumer-content-wrapper jn-tab-content transition-start" data-id="businessTab" title="${partnerName!''} - Business products">
396
397 <#list businessCards as fib>
398 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png">
399 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">
400 <#switch fib.offerType>
401 <#case "144">
402 <#assign productName = "smart-business-rewards">
403 <#assign product="Smart Business Rewards">
404 <#assign cardIndex = 8>
405 <#break>
406 <#case "128">
407 <#assign productName = "business-cash-preferred">
408 <#assign product="Business Cash Preferred">
409 <#assign cardIndex = 6>
410 <#break>
411 <#case "143">
412 <#assign productName = "business-real-rewards">
413 <#assign product="Business Real Rewards">
414 <#assign cardIndex = 9>
415 <#break>
416 <#case "121">
417 <#assign productName = "business-platinum2103">
418 <#assign product="Business Card">
419 <#assign cardIndex = 7>
420 <#break>
421 <#default>
422 </#switch>
423 <#assign APR="">
424 <#assign AMF="">
425 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
426 <#if (scrapedData?size > 0)>
427 <#list scrapedData as sItem>
428 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
429 <#assign APR = sItem.scrapedValue>
430 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
431 <#assign AMF = sItem.scrapedValue>
432 </#if>
433 <#if (APR?has_content && AMF?has_content)>
434 <#break>
435 </#if>
436 </#list>
437 </#if>
438
439 <div class="jn-consumer-item item-${fib.offerType}" title="${partnerName!''} ${product!''} Credit Card">
440 <div class="consumer-card-heading hide-desktop">
441 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
442 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
443 </div>
444 <div class="jn-consumer-card-image">
445 <img src="${cardArtImage!''}" alt="${rollover_text!''}" class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
446 <#if (consumerTitle.getSiblings()[cardIndex].cardArtDescription?has_content) >
447 <p class="jn-card-art-description">${consumerTitle.getSiblings()[cardIndex].cardArtDescription.getData()}</p>
448 </#if>
449 </div>
450
451 <div class="jn-consumer-card-info">
452 <div class="consumer-card-heading hide-mobile">
453 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
454 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
455 </div>
456 <div class="jn-additional">
457 <ul>
458 <#if (fib.offerType == "144")>
459 <li>
460 <p>
461 <strong>APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
462 ${APR!''}
463 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
464 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
465 </a>
466 </p>
467 </li>
468 <#else>
469 <li>
470 <p>
471 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
472 ${APR!''}
473 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
474 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
475 </a>
476 </p>
477 </li>
478 </#if>
479 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
480 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
481 <li>${marketingInfo.getData()}</li>
482 </#list>
483 </#if>
484 <li>
485 <p>
486 Annual Fee: ${AMF!''} <a
487 href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">
488 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
489 </a>
490 </p>
491 </li>
492 </ul>
493 </div>
494 <ul class="actions">
495 <li>
496 <form action="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}" method="post" class="BAAForm">
497 <label for="appDataBAA-${fib.offerId}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
498 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${fib.offerId}" class="appDataBAA" style="display:none;" title="application data"></textarea>
499 <a
500 class="applyNowLink apply-now-button"
501 href="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}"
502 data-button-name="apply-now-link"
503 data-product-name="${productName}"
504 >
505 ${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}
506 <span class="screen-reader-only"> for ${partnerName!''} ${product!''} Card </span>
507 </a>
508 </form>
509 </li>
510 <li>
511 <a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc}${ecidExt}">
512 ${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}<span class="screen-reader-only">about ${partnerName!''} ${product!''} Card </span>
513 </a>
514 </li>
515 </ul>
516 </div>
517 </div>
518
519 </#list>
520
521 </div>
522 </div>
523 </#if>
524 </div>
525 <script>
526 var consumerSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="consumerTab"]';
527 var businessSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="businessTab"]';
528 $(document).ready(function () {
529 var banker_code = "${bCode!''}";
530 var tabs=$('.tab-nav');
531 var slideDiv = $('.jn-tab-content.active');
532 var screenWidthMobile = 768;
533 var screenWidth = window.innerWidth;
534
535 if (tabs.length == 1) {
536 if ($(consumerSelector).length > 0) {
537 if(banker_code && (banker_code.indexOf("amp") == 0) && (banker_code.length > 6)) {
538 $("nav.jn-primary-nav").hide();
539 changeCardLayout(consumerSelector);
540 createMetaTag("consumer");
541 } else {
542 hideHeroAndDisclaimer('business');
543 showHeroAndDisclaimer('consumer');
544 changeCardLayout(consumerSelector);
545 renumberFootnote("consumer");
546 createMetaTag("consumer");
547 }
548 }
549 if ($(businessSelector).length > 0) {
550 $(businessSelector).addClass('active');
551 hideHeroAndDisclaimer('consumer');
552 showHeroAndDisclaimer('business');
553 changeCardLayout(businessSelector);
554 renumberFootnote("business");
555 createMetaTag("business");
556 }
557 }
558 if (tabs.length == 2) {
559 renumberFootnote("consumer");
560 renumberFootnote("business");
561 createMetaTag("consumer");
562 if ($(consumerSelector + ' .jn-consumer-item').length < 3) {
563 changeCardLayout(consumerSelector);
564 }
565 if ($(businessSelector + ' .jn-consumer-item').length < 3) {
566 changeCardLayout(businessSelector);
567 }
568
569 var tabsNav = document.querySelectorAll('.tab-nav');
570 togglePrimaryNav(tabsNav);
571
572 if(window.location.href.indexOf('#business') > -1 ) {
573 $(consumerSelector).removeClass('active');
574 $(businessSelector).addClass('active');
575 $('#consumerTab').removeClass('active');
576 $('#businessTab').addClass('active');
577 hideHeroAndDisclaimer('consumer');
578 showHeroAndDisclaimer('business');
579 changeCardLayout(businessSelector);
580 renumberFootnote("business");
581 createMetaTag("business");
582
583 $(tabs).click(function(){
584 if ($(this).attr('id') === "consumerTab") {
585 var newUrl = window.location.toString();
586 window.location = newUrl.replace(/#business/, '#consumer');
587 }
588 if ($(this).attr('id') === "businessTab") {
589 var url = window.location.toString();
590 window.location = url.replace(/#consumer/, '#business');
591 }
592 });
593 }
594 }
595
596 });
597 // Primary Nav function
598
599 function togglePrimaryNav(elem) {
600 for (var i = 0; i < elem.length; i++) {
601 elem[i].addEventListener("click", function(e) {
602
603 var current = this,
604 allSections = document.querySelectorAll('[data-id]'),
605 section = document.querySelector("[data-id='"+ current.id +"']");
606
607 for (var a = 0; a < allSections.length; a++) {
608 allSections[a].classList.remove('active');
609 }
610 for (var c = 0; c < elem.length; c++) {
611 if (current != elem[c]) {
612 elem[c].classList.remove('active');
613 } else {
614 current.classList.add('active');
615 section.classList.add('active');
616 hideHeroAndDisclaimer('consumer');
617 hideHeroAndDisclaimer('business');
618 if(current.getAttribute('id') === "consumerTab"){
619 showHeroAndDisclaimer('consumer');
620 } else if(current.getAttribute('id') === "businessTab"){
621 showHeroAndDisclaimer('business');
622 }
623 }
624 }
625 e.preventDefault();
626 });
627 }
628 }
629
630 function renumberFootnote(type) {
631 var discriptionSelector = '.jn-consumer-content-wrapper.jn-tab-content' + '[data-id="' + type + 'Tab"]';
632 var disclaimerSelector = '.tier1-disclaimer-landing-' + type;
633 var heroSelector = '.tier1-hero-landing-' + type;
634 var numOfFootnote = $(disclaimerSelector + ' sup').length;
635 var showList = [];
636 var hideList=[];
637 for (var i = 1; i <= numOfFootnote; i++) {
638 var cssClass="tag-" + i;
639 if ($(discriptionSelector + ' sup').hasClass(cssClass) || $(heroSelector + ' sup').hasClass(cssClass)) {
640 showList.push(i);
641 } else {
642 hideList.push(i);
643 }
644 }
645 /*
646 for (var i = 1; i < showList.length + 1; i++) {
647 if(showList[i-1] != i) {
648 var className="tag-" + showList[i-1];
649 $(heroSelector).find("." + className).html(i);
650 // $(discriptionSelector).find("." + className).html(i);
651 $(disclaimerSelector).find("." + className).html(i);
652 }
653 }
654 */
655 for (var i = 0; i <hideList.length; i++) {
656 var cname="tag-" + hideList[i];
657 $(disclaimerSelector).find("." + cname).parent().hide();
658 }
659 }
660
661 function changeCardLayout(cssSelector) {
662 var numOfCards = $(cssSelector + ' .jn-consumer-item').length;
663 if(numOfCards == 1) {
664 $(cssSelector).addClass('one-card');
665 } else if (numOfCards == 2) {
666 $(cssSelector).addClass('two-card');
667 }
668 }
669 function hideHeroAndDisclaimer(type) {
670 try {
671 document.querySelector('.tier1-hero-landing-'+ type).classList.remove('show');
672 document.querySelector('.tier1-hero-landing-'+ type).classList.add('hide');
673 } catch (e) {
674 console.log(e);
675 }
676
677 try {
678 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.remove('show');
679 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.add('hide');
680 } catch (e) {
681 console.log(e);
682 }
683
684 }
685 function showHeroAndDisclaimer(type) {
686 try {
687 document.querySelector('.tier1-hero-landing-'+ type).classList.add('show');
688 document.querySelector('.tier1-hero-landing-'+ type).classList.remove('hide');
689 } catch (e) {
690 console.log(e);
691 }
692
693 try {
694 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.add('show');
695 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.remove('hide');
696 } catch (e) {
697 console.log(e);
698 }
699
700 }
701 function createMetaTag(type) {
702 var partnerName = "${partnerName!0}";
703 var product_name = $('.jn-hero-container .jn-button').data('product-name');
704 var metaDesc = "";
705 if (type == "consumer") {
706 if(location.pathname.indexOf("11t1m") != -1) {
707 metaDesc = "Apply Today for an Ameriprise Financial Credit Card. Earn Rewards Points worth $375 cash value when deposited into an eligible account after spending $3,000 in eligible net purchases within the first 90 days of account opening."
708 } else {
709 if(product_name == "consumer-platinum2103") {
710 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Limited Time Offer. 0% Intro APR on Purchases and Balance Transfers for 20 Billing Cycles Consolidate your Balances with the "+partnerName+" Intro APR Card.";
711 } else if(product_name == "real-rewards") {
712 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Take home 2,500 bonus points after your first purchase.";
713 } else if(product_name == "secured") {
714 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Use this card as a solid foundation to build your credit.";
715 } else if(product_name == "max-cash") {
716 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn a $150 Bonus and 5% cash back on the two categories you select.";
717 }
718 }
719
720 } else if (type == "business") {
721 if(product_name == "business-cashback") {
722 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn Cash back on common business expenses.";
723 } else if(product_name == "business-real-rewards") {
724 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Get more rewards in the categories you spend the most on.";
725 } else if(product_name == "business-visa") {
726 metaDesc = "Apply Today for a "+partnerName+" Business Card. 0% Intro APR on Purchases and Balance Transfers for 15 Billing Cycles";
727 } else if(product_name == "smart-business-rewards") {
728 metaDesc = "Apply Today for a "+partnerName+" Credit Card. More choices. More value for your business. Earn a $200 Bonus and 2x Rewards on your top 2 spend categories each month with the "+partnerName+" Credit Card.";
729 }
730 }
731 var m = document.createElement('meta');
732 m.name = 'description';
733 m.content = metaDesc;
734 document.head.appendChild(m);
735 }
736 function goToByScroll(id) {
737 var element = document.getElementById(id);
738 element.scrollIntoView(true);
739 }
740
741 </script>
742 <script>
743 var reportingData = window.reportingData || {};
744 document.addEventListener('DOMContentLoaded', function() {
745 console.log('inside ready');
746 var page = location.pathname.split('/')[location.pathname.split('/').length-1];
747 var hostName = location.hostname;
748 function getDomainFromHostname(hostname) {
749 var parts = hostname.split('.');
750 return parts.length === 3 ? parts[1] : parts[0];
751 }
752 var domain = getDomainFromHostname(hostName);
753 var partnerName = "${partnerName!0}";
754 var ameriprise = '${ameriprise?string("yes", "no")}';
755 var locationCode = "${rLC!lc}";
756 var eidAmp = "";
757 var heroCardImgs = document.querySelectorAll('.jn-consumer-card-image img, .cardArtImg img');
758 for (var index = 0; index < heroCardImgs.length; index++) {
759 var heroCardImg = heroCardImgs[index];
760 var heroCardSrc = heroCardImg.getAttribute("src");
761 if(heroCardSrc != "") {
762 resizeImg(heroCardImg);
763 }
764 }
765 if (ameriprise == "yes") {
766 var bankercode_amp = '${bCode}';
767 eidAmp = bankercode_amp.substring(3);
768 locationCode ="";
769 document.title = "Ameriprise Financial Credit Card Overview Page";
770 } else {
771 document.title = partnerName + " Credit Card Index Page";
772 }
773
774 var lc = '${lc!0}';
775
776 var regex = /\d+/g;
777 var bdNumber = "${bPhone!''}";
778 var phoneNum = bdNumber.match(regex);
779 var areaCode = "";
780 var exchangeCode = "";
781 var num = "";
782 if(phoneNum != null) {
783 phoneNum = phoneNum.join("");
784 areaCode = phoneNum.substring(0,3);
785 exchangeCode = phoneNum.substring(3,6);
786 num = phoneNum.substring(6,10);
787 }
788
789 /* update SiteCatalyst data object */
790 reportingData.current_page = "microsite:${partnerName}:" + domain + ':' + page.replace('-',' ');
791 reportingData.page_type = 'product';
792 reportingData.site_section = 'credit cards';
793 reportingData.platform = 'microsite';
794 reportingData.campaign_id = '${campaignId}';
795 reportingData.location_code = '${rLC!0}';
796 reportingData.partner_name = "${partnerName}";
797 reportingData.product = 'All Cards';
798 reportingData.text_to_apply_source = '${text_to_apply_source}';
799 reportingData.visitor_type = 'prospect';
800 reportingData.Banker_id = '${boeid}';
801 reportingData.Banker_code = '${bCode}';
802
803
804 /* SiteCatalyst pageView tracking */
805 AUI().ready(function() {
806 if (window.publisherFW) {
807 //console.log('reportingData', reportingData);
808 window.publisherFW.publishEvent("pageView", reportingData);
809 }
810 });
811
812
813 $('.jn-button').removeAttr('disabled');
814 $('.jn-button').removeClass('jn-disabled');
815
816 jQuery('.applyNowLink').on('click', function(e){
817 $(this).closest('.BAAForm').submit();
818 ga("send", {
819 hitType: "event",
820 eventAction: "ApplyNow",
821 eventCategory: "click",
822 eventLabel: "BottomButton"
823 });
824 return false;
825 });
826 jQuery(".BAAForm").on("submit", function(e){
827 e.preventDefault();
828 console.log("in custom submit");
829 var xmlData;
830 if(ameriprise == "yes") {
831 xmlData = '<?xml version="1.0"?>'+
832 "<prefillData>"+
833 "<versionNumber>1.0</versionNumber>"+
834 "<applicationData>"+
835 "<referral>" +
836 "<employeeId>" + eidAmp + "</employeeId>" +
837 "<storeNumber>"+"${bName!'0'}"+"</storeNumber>"+
838 "<divisionNumber></divisionNumber>"+
839 "</referral>" +
840 "<bankerInformation>"+
841 "<locationCode>" + locationCode + "</locationCode>"+
842 "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+
843 "<employeeID>${boeid!0}</employeeID>"+
844 "<name>" +
845 "<first>${bFName!'0'}</first>" +
846 "<last>${bLName!'0'}</last>" +
847 "</name>"+
848 "<phone>"+
849 "<areaCode>"+areaCode+"</areaCode>"+
850 "<exchange>"+exchangeCode+"</exchange>"+
851 "<number>"+num+"</number>"+
852 "</phone>"+
853 "</bankerInformation>"+
854 "</applicationData>"+
855 "</prefillData>"
856 } else {
857 xmlData = '<?xml version="1.0"?>'+
858 "<prefillData>"+
859 "<versionNumber>1.0</versionNumber>"+
860 "<applicationData>"+
861 "<bankerInformation>"+
862 "<locationCode>" + locationCode + "</locationCode>"+
863 "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+
864 "<employeeID>${boeid!0}</employeeID>"+
865 "<name>" +
866 "<first>${bFName!'0'}</first>" +
867 "<last>${bLName!'0'}</last>" +
868 "</name>"+
869 "<phone>"+
870 "<areaCode>"+areaCode+"</areaCode>"+
871 "<exchange>"+exchangeCode+"</exchange>"+
872 "<number>"+num+"</number>"+
873 "</phone>"+
874 "</bankerInformation>"+
875 "</applicationData>"+
876 "</prefillData>"
877 }
878 $(this).children(".appDataBAA").val(xmlData);
879 var buttonName = $(this).find(".apply-now-button").data("button-name");
880 var productName = $(this).find(".apply-now-button").data("product-name");
881 /* SiteCatalyst onClick tracking */
882 reportingData.apply_button = buttonName;
883 reportingData.product = productName;
884
885 if (window.publisherFW) {
886 console.log('clicked', reportingData);
887 window.publisherFW.publishEvent("onClick", reportingData);
888 }
889
890 this.submit();
891 });
892
893
894 });
895 function resizeImg(img) {
896 img.addEventListener("load", function() {
897 var cardImgWidth = img.width;
898 var cardImgHeight = img.height;
899 console.log('width', cardImgWidth);
900 console.log('height', cardImgHeight);
901 if(cardImgWidth > cardImgHeight) {
902 img.style.width = "285px";
903 } else {
904 img.style.width = "150px";
905 }
906 });
907 }
908 </script>
909
910 </#if>
911 </#if>
912</#if>
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 5, column 17 in 10153#10191#5843858.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4
5<#assign bCode= qstringmap["bankercode"]?first>
6<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
7<#list bData as b>
8 <#assign lc = b.locationcode >
9 <#assign rLC = b.reallocationcode >
10 <#assign mappedLC = b.mappedLocationCode >
11</#list>
12<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
13 <#assign ameriprise = true>
14<#else>
15 <#assign ameriprise = false>
16</#if>
17<#if mappedLC?has_content && !ameriprise>
18 <#assign lc = mappedLC >
19</#if>
20
21
22<#if lc?has_content>
23 <#assign prefix = "00000" >
24 <#assign lcWithPrefix = prefix + lc >
25 <#assign withPrefixLength = lcWithPrefix?length >
26 <#assign startHere = withPrefixLength - 5>
27 <#assign lc = lcWithPrefix?substring(startHere)>
28 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
29 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
30
31 <#assign clientProfile = clientProfileList?first>
32 <#assign partnerName=clientProfile.getMarketingNameLong()>
33
34 <#assign pbu = clientProfile.getPbu()>
35 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
36 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu +'&'+subbu)>
37 <#assign cardProvider = utilServ.makeCall('crcDDCGetMcOrVisa', fiCardsData[0].offerType + '&' + lc)>
38
39 <#if (cardProvider?size > 0)>
40 <#-- This will be V for visa or M for mastercard. -->
41 <#assign cardProviderAbbreviated = cardProvider[0].cardType>
42 <#else>
43 <script>
44 console.log("No card provider(Visa/Master Card) found for disclaimer");
45 </script>
46 </#if>
47
48
49 <div class="jn-disclaimer tier1-disclaimer-${class.getData()}" title="${partnerName} - Disclaimer">
50 <div class="disclaimer" >
51 <#if (disclaimersVisa?has_content && cardProviderAbbreviated?contains("V"))>
52 ${disclaimersVisa.getData()}
53 </#if>
54 <#if (disclaimersMasterCard?has_content && cardProviderAbbreviated?contains("M")) >
55 ${disclaimersMasterCard.getData()}
56 </#if>
57 </div>
58 </div>
59<#else>
60 <script>
61 console.log("No lc for disclaimer");
62 </script>
63</#if>
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 5, column 17 in 10153#10191#5843858.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4
5<#assign bCode= qstringmap["bankercode"]?first>
6<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
7<#list bData as b>
8 <#assign lc = b.locationcode >
9 <#assign rLC = b.reallocationcode >
10 <#assign mappedLC = b.mappedLocationCode >
11</#list>
12<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
13 <#assign ameriprise = true>
14<#else>
15 <#assign ameriprise = false>
16</#if>
17<#if mappedLC?has_content && !ameriprise>
18 <#assign lc = mappedLC >
19</#if>
20
21
22<#if lc?has_content>
23 <#assign prefix = "00000" >
24 <#assign lcWithPrefix = prefix + lc >
25 <#assign withPrefixLength = lcWithPrefix?length >
26 <#assign startHere = withPrefixLength - 5>
27 <#assign lc = lcWithPrefix?substring(startHere)>
28 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
29 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
30
31 <#assign clientProfile = clientProfileList?first>
32 <#assign partnerName=clientProfile.getMarketingNameLong()>
33
34 <#assign pbu = clientProfile.getPbu()>
35 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
36 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu +'&'+subbu)>
37 <#assign cardProvider = utilServ.makeCall('crcDDCGetMcOrVisa', fiCardsData[0].offerType + '&' + lc)>
38
39 <#if (cardProvider?size > 0)>
40 <#-- This will be V for visa or M for mastercard. -->
41 <#assign cardProviderAbbreviated = cardProvider[0].cardType>
42 <#else>
43 <script>
44 console.log("No card provider(Visa/Master Card) found for disclaimer");
45 </script>
46 </#if>
47
48
49 <div class="jn-disclaimer tier1-disclaimer-${class.getData()}" title="${partnerName} - Disclaimer">
50 <div class="disclaimer" >
51 <#if (disclaimersVisa?has_content && cardProviderAbbreviated?contains("V"))>
52 ${disclaimersVisa.getData()}
53 </#if>
54 <#if (disclaimersMasterCard?has_content && cardProviderAbbreviated?contains("M")) >
55 ${disclaimersMasterCard.getData()}
56 </#if>
57 </div>
58 </div>
59<#else>
60 <script>
61 console.log("No lc for disclaimer");
62 </script>
63</#if>
Artikkel
En feil oppsto under behandling av visningsmalen.
Expression qstringmap["bankercode"] is undefined on line 6, column 17 in 10153#10191#6590080.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4<#assign url404 = '/error/404.html'>
5
6<#assign bCode= qstringmap["bankercode"]?first>
7<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetailSql','0&'+bCode)>
8<#list bData as b>
9 <#assign lc = b.locationcode >
10 <#assign rLC = b.reallocationcode >
11 <#assign mappedLC = b.mappedLocationCode >
12</#list>
13
14<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
15 <#assign ameriprise = true>
16<#else>
17 <#assign ameriprise = false>
18</#if>
19<#if mappedLC?has_content && !ameriprise>
20 <#assign lc = mappedLC >
21</#if>
22
23<#if lc?has_content>
24
25 <#assign prefix = "00000" >
26 <#assign lcWithPrefix = prefix + lc >
27 <#assign withPrefixLength = lcWithPrefix?length >
28 <#assign startHere = withPrefixLength - 5>
29 <#assign lc = lcWithPrefix?substring(startHere)>
30 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
31 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
32
33 <#assign clientProfile = clientProfileList?first>
34 <#assign pbu = clientProfile.getPbu()>
35 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
36 <#assign partnerName=clientProfile.getMarketingNameLong()>
37 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
38 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
39 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
40 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
41 <#-- add protocal if missing -->
42 <#assign partnerUrl = 'https://' + partnerUrl>
43 </#if>
44 <footer class="footer bg-color-black text-color-white">
45 ${footerContent.getData()}
46 </footer>
47 <#if url?contains("11t1m")>
48 <script>
49 document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright");
50 document.querySelector('.footer .fdic').innerHTML='<a class="text-color-white" href="https://login.elancreditcard.com/onlineCard/publicPrivacyPolicy.do?loc=18598" target="_blank">Privacy and Security</a>';
51 </script>
52 <#else>
53 <script>
54 document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright");
55 document.querySelector('.footer .fdic').innerHTML='<a class="text-color-white" href="https://www.myaccountaccess.com/onlineCard/publicPrivacyPolicy.do?loc=${lc!0}" target="_blank">Privacy and Security</a>';
56 var newNode = document.createElement("div");
57 newNode.classList.add("member-agreement");
58 newNode.innerHTML='<a class="text-color-white" href="https://online1.elancard.com/oad/cmas.controller?locationCode=${lc!0}&preparerType=customer&isNewRequest=false" target="_blank">Cardmember Agreements</a>';
59 var fdicNode = document.querySelector('.footer .fdic');
60 var parent = fdicNode.parentNode;
61 parent.insertBefore(newNode, fdicNode);
62 </script>
63 </#if>
64
65 <#if partnerUrl?has_content>
66 <script>
67 document.querySelector('.copyright .homelink').innerHTML="<a class='text-color-white' href='${partnerUrl!''}' title='${partnerName!''}' target='_blank'>Home</a>";
68 </script>
69 </#if>
70</#if>