Web Content Display
An error occurred while processing the template.
Error on line 23, column 1 in 10154#10192#152860842 clientProfileList?first is undefined. It cannot be assigned to clientProfile
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<#-- check location id validity -->
7<#if qstringmap["ecdma-lc"]?has_content>
8 <#assign lc= qstringmap["ecdma-lc"]?first>
9 <#assign prefix = "00000" >
10 <#assign lcWithPrefix = prefix + lc >
11 <#assign withPrefixLength = lcWithPrefix?length >
12 <#assign startHere = withPrefixLength - 5>
13 <#assign lc = lcWithPrefix?substring(startHere)>
14<#else>
15 <script>
16 console.log("location code missing");
17 location.href = '${url404}';
18 </script>
19</#if>
20
21<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
22<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
23<#assign clientProfile = clientProfileList?first>
24<#assign pbu = clientProfile.getPbu()>
25<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
26
27<#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
28 <#list clientdata as data>
29 <#assign backgroundColor=data.backgroundHexColor>
30 <#assign buttonColor=data.buttonHexColor>
31 <#assign textColor=data.textHexColor>
32 <#assign hoverColor=data.hoverColor>
33</#list>
34
35
36<#if lc?has_content>
37 <#assign clientProfileService=serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService")>
38 <#assign clientProfileList=clientProfileService.findByLocationCode(lc)>
39
40 <#if clientProfileList?first?has_content>
41 <#assign clientProfile=clientProfileList?first>
42 <#assign partnerName=clientProfile.getMarketingNameLong()>
43 <script>
44 /* tracking object for SiteCatalyst */
45 var reportingData = {};
46 var locationCodesOfferIds = {
47 // 1.Associated
48 '15302': 'QQ2VPB8968',
49 };
50
51 /* redirect if locationCode is unknown */
52 if (!locationCodesOfferIds['${lc!0}']) {
53 //location.href = '/web/elan/404';
54 }
55 var partnerName = "${partnerName!0}";
56 AUI().ready(function () {
57 var lc = '${lc!0}';
58 console.log(partnerName);
59 var page = location.pathname.split('/')[location.pathname.split('/').length - 1];
60 var product = lc === '24168' ? 'MC Platiunum Card' : 'Visa Platinum Card'; // hard coded for Pilot launch
61 var hostName = location.hostname;
62 var preparerType = 'customer';
63 var domain = getDomainFromHostname(hostName);
64 var sourceCode = '';
65
66 function getDomainFromHostname(hostname) {
67 var parts = hostname.split('.');
68 return parts.length === 3 ? parts[1] : parts[0];
69 }
70
71 switch (lc) {
72 // 1.Associated
73 case '15302':
74 sourceCode = '35360';
75 $('body').addClass('bg-gray associated');
76 $('.jn-button').addClass('btn-blue2');
77 break;
78 }
79
80 /* update SiteCatalyst data object */
81 reportingData.current_page = "microsite:${partnerName}:" + domain + ':' + page.replace('-',' ');
82 reportingData.page_type = 'product';
83 reportingData.site_section = 'credit cards';
84 reportingData.platform = 'microsite';
85 reportingData.location_code = lc;
86 reportingData.partner_name = partnerName;
87 reportingData.product = product;
88 reportingData.text_to_apply_source = 'vanity url';
89 reportingData.visitor_type = 'prospect';
90
91 /* CTA - button click handling */
92 jQuery('.jn-button').click(function () {
93 var buttonName = jQuery(this).data('button-name');
94
95 /* SiteCatalyst onClick tracking */
96 reportingData.applyButton = buttonName;
97 if (window.publisherFW) {
98 console.log('reportingData', reportingData);
99 window.publisherFW.publishEvent("onClick", reportingData);
100 }
101 });
102 /* SiteCatalyst pageView tracking */
103 if (window.publisherFW) {
104 console.log('reportingData', reportingData);
105 window.publisherFW.publishEvent("pageView", reportingData);
106 }
107 });
108
109 </script>
110 <#else>
111 <script>
112 //location.href = '${url404}';
113 console.log("client profile empty");
114 </script>
115 </#if>
116<#else>
117 <script>
118 console.log("location code empty");
119 //location.href = '${url404}';
120 </script>
121</#if>
122 <style>
123 .screen-reader-only {
124 clip: rect(0 0 0 0);
125 clip-path: inset(50%);
126 height: 1px;
127 overflow: hidden;
128 position: absolute;
129 white-space: nowrap;
130 width: 1px;
131 }
132 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
133 select::-ms-expand {
134 display: none;
135 }
136 }
137 h1, h2, h3, h4, h5, h6 {
138 font-weight: 400;
139 }
140 li {
141 list-style: none !important;
142 }
143 .tier3-hero-landing-business.hide,
144 .tier3-hero-landing-consumer.hide,
145 .tier3-disclaimer-landing-business.hide,
146 .tier3-disclaimer-landing-consumer.hide,
147 .tier3-hero-landing-business,
148 .tier3-disclaimer-landing-business {
149 display: none !important;
150 }
151
152 .tier3-hero-landing-business.show,
153 .tier3-hero-landing-consumer.show,
154 .tier3-disclaimer-landing-business.show,
155 .tier3-disclaimer-landing-consumer.show {
156 display: block !important;
157 }
158
159 /*----------------------- Common Styles ------------------------------ */
160 body {
161 background: no-repeat 0 0 fixed #FFFFFF;
162 background-size: cover;
163 }
164
165 body.bg-gray {
166 background: rgb(111, 111, 111);
167 background: linear-gradient(0deg, rgba(111, 111, 111, 1) 0%, rgba(152, 149, 149, 1) 58%, rgba(238, 238, 238, 1) 100%);
168 }
169
170 body.bg-green {
171 background: rgb(0, 51, 0);
172 background: linear-gradient(0deg, rgba(0, 51, 0, 1) 0%, rgba(98, 155, 98, 1) 58%, rgba(153, 204, 153, 1) 100%);
173 }
174
175 body.bg-red {
176 background: rgb(102, 0, 0);
177 background: linear-gradient(0deg, rgba(102, 0, 0, 1) 0%, rgba(169, 76, 76, 1) 58%, rgba(204, 127, 127, 1) 100%);
178 }
179
180 body.bg-blue {
181 background: rgb(12, 32, 116);
182 background: linear-gradient(0deg, rgba(12, 32, 116, 1) 0%, rgba(101, 128, 195, 1) 58%, rgba(153, 178, 229, 1) 100%);
183 }
184
185 .businessMoreLink, .less-link, .more-link {
186 display: none;
187 text-align: center;
188 }
189 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item sup{
190 font-size: 11px;
191 top: -.7em;
192 }
193
194 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading__subheading sup{
195 top: -1em;
196 font-size: 60%;
197 }
198
199 .more-link {
200 position: absolute;
201 right: -25px;
202 top: 250px;
203 }
204 .less-link {
205 position: absolute;
206 left: -25px;
207 top: 250px;
208 }
209 .more-link a, .less-link a {
210 display: flex;
211 align-items: center;
212 }
213 .more-caret, .less-caret {
214 position: relative;
215 height: 40px;
216 width: 20px;
217 }
218 .more-text {
219 margin-right: 10px;
220 }
221 .less-text {
222 margin-left: 15px;
223 }
224
225 .more-caret:before {
226 content: '';
227 position: absolute;
228 top: 0;
229 left: 0;
230 border-left: 20px solid #cccccc;
231 border-top: 20px solid transparent;
232 border-bottom: 20px solid transparent;
233 }
234
235 .more-caret:after {
236 content: '';
237 position: absolute;
238 left: 0;
239 top: 7px;
240 border-left: 13px solid #fff;
241 border-top: 13px solid transparent;
242 border-bottom: 13px solid transparent;
243 }
244
245 .less-caret:before {
246 content: '';
247 position: absolute;
248 top: 0;
249 left: 0;
250 border-right: 20px solid #cccccc;
251 border-top: 20px solid transparent;
252 border-bottom: 20px solid transparent;
253 }
254
255 .less-caret:after {
256 content: '';
257 position: absolute;
258 left: 7px;
259 top: 7px;
260 border-right: 13px solid #fff;
261 border-top: 13px solid transparent;
262 border-bottom: 13px solid transparent;
263 }
264
265 .secondary-color {
266 color: #19398a;
267 }
268
269 .jn-subhero h2 {
270 color: #19398a;
271 font-size: 22px;
272 }
273
274 .jn-subhero h2 sup {
275 font-size: 12px;
276 }
277
278 .jn-subhero p sup {
279 top: -.4em;
280 font-size: 10px;
281 }
282
283 .jn-banner article,
284 .jn-find article,
285 .jn-subhero ul,
286 .jn-hero-card .jn-hero-container .jn-hero-container-data article {
287 display: -webkit-box;
288 display: -webkit-flex;
289 display: -moz-flex;
290 display: -ms-flexbox;
291 display: flex;
292 -webkit-align-items: flex-start;
293 -moz-align-items: flex-start;
294 -ms-align-items: flex-start;
295 align-items: flex-start;
296 -webkit-flex-flow: column wrap;
297 -moz-flex-flow: column wrap;
298 -ms-flex-flow: column wrap;
299 flex-flow: column wrap;
300 }
301
302 .jn-banner article,
303 .jn-subhero ul {
304 -ms-flex-pack: space-around;
305 -webkit-justify-content: space-around;
306 -moz-justify-content: space-around;
307 -ms-justify-content: space-around;
308 justify-content: space-around;
309 }
310
311 .overpass {
312 font-family: 'Overpass', sans-serif;
313 }
314
315 @media screen and (min-width: 769px) {
316
317 .jn-banner article,
318 .jn-find article,
319 .jn-subhero ul,
320 .jn-hero-card .jn-hero-container .jn-hero-container-data article {
321 -webkit-flex-flow: row wrap;
322 -moz-flex-flow: row wrap;
323 -ms-flex-flow: row wrap;
324 flex-flow: row wrap;
325
326 }
327 }
328
329 /*----------------------- Wrapper Styles ------------------------------ */
330 .wrapper {
331 *zoom: 1;
332 text-rendering: optimizeLegibility;
333 -webkit-font-smoothing: antialiased;
334 -moz-osx-font-smoothing: grayscale;
335 image-rendering: -webkit-optimize-contrast;
336 margin: 0 auto;
337 position: relative;
338 font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
339 -webkit-font-smoothing: subpixel-antialiased;
340 }
341
342 .wrapper:before,
343 .wrapper:after {
344 content: " ";
345 display: table;
346 }
347
348 .wrapper:after {
349 clear: both;
350 }
351
352 .wrapper h1 {
353 font-size: 30px;
354 }
355
356 .wrapper h1,
357 .wrapper h2,
358 .wrapper h3,
359 .wrapper h4,
360 .wrapper h5,
361 .wrapper h6 {
362 margin: 0;
363 line-height: normal;
364 }
365
366 .wrapper a {
367 text-decoration: underline;
368 cursor: pointer;
369 color: #173989;
370 }
371 .jn-primary-nav a,
372 .actions a,
373 a.jn-button {
374 text-decoration: none;
375 }
376
377 .wrapper a:hover {
378 text-decoration: none;
379 cursor: pointer;
380 }
381 .wrapper a.t_c_link {
382 font-size: 17px;
383 text-decoration: underline;
384 }
385 .wrapper a.t_c_link:hover {
386 text-decoration: none;
387 }
388
389 .wrapper p {
390 font-size: 16px;
391 margin: 0;
392 line-height: 1.2;
393 color: #333333;
394 }
395
396 .wrapper ul {
397 padding: 0;
398 margin: 0;
399 }
400
401 .wrapper .jn-img-responsive {
402 max-width: 100%;
403 width: 100%;
404 height: auto;
405 }
406
407 .wrapper .content-container {
408 display: block;
409 max-width: 825px;
410 margin: 0 auto;
411 width: 100%;
412 }
413 @media (min-width: 769px) {
414 .wrapper .content-container {
415 max-width: 1336px;
416 }
417 }
418
419
420
421
422
423 /*----------------------- Header Styles ------------------------------ */
424 .jn-header {
425 display: flex;
426 padding: 20px 0;
427 justify-content: center;
428 min-height: 113px;
429 background: #fff;
430 }
431 @media (min-width:769px) {
432 .jn-header {
433 padding: 20px 8%;
434 justify-content: left;
435 margin: 0 auto;
436 }
437 }
438
439 .jn-header .header-logo {
440 max-width: 230px;
441 }
442 .jn-header .header-logo img {
443 width: 100%;
444 }
445
446 .jn-header .styled-select {
447 display: none;
448 background-color: #fff;
449 border: 1px solid #ccc;
450 min-width: 200px;
451 height: 34px;
452 overflow: hidden;
453 outline: none;
454 width: auto;
455 ;
456 }
457
458 .jn-header .styled-select:after {
459 border-bottom-style: solid;
460 border-bottom-width: 3px;
461 border-right-style: solid;
462 border-right-width: 3px;
463 content: '';
464 display: block;
465 height: 15px;
466 right: 12px;
467 position: absolute;
468 top: 5px;
469 width: 15px;
470 border-color: #99999F;
471 -moz-transform: rotate(45deg);
472 -ms-transform: rotate(45deg);
473 -webkit-transform: rotate(45deg);
474 transform: rotate(45deg);
475 }
476
477 .jn-header .styled-select select {
478 background: transparent;
479 font-family: Arial, Helvetica, sans-serif;
480 font-weight: bold;
481 font-size: 14px;
482 height: 34px;
483 width: 100%;
484 padding: 5px 35px 5px 5px;
485 text-transform: none;
486 line-height: 1.15;
487 margin: 0;
488 border: none;
489 color: #666666;
490 -webkit-box-sizing: border-box;
491 -moz-box-sizing: border-box;
492 box-sizing: border-box;
493 -webkit-appearance: none;
494 -moz-appearance: none;
495 }
496
497 .jn-header a {
498 font-size: 12px;
499 color: #1c348b;
500 }
501
502 .jn-header a:hover,
503 .jn-header a:focus,
504 .jn-header a:active {
505 color: #1c348b;
506 }
507
508 @media screen and (min-width: 769px) {
509 .jn-header .styled-select {
510 display: block;
511 position: absolute;
512 right: 16px;
513 top: 50px;
514 }
515 }
516
517 @media screen and (max-width: 350px) {
518 .jn-header img {
519 width: 200px;
520 }
521 }
522
523 /*----------------------- Hero Styles ------------------------------ */
524 .jn-hero-card {
525 background: rgba(204, 204, 204, .2);
526 }
527
528 .jn-hero-card .jn-hero-container .jn-hero-container-data article>div .jn-button {
529 margin: 20px auto;
530 width: 90%;
531 float: none;
532 display: block;
533 }
534
535 .jn-hero-card .jn-hero-container .jn-hero-container-data .feature-text p:last-child {
536 margin: 10px auto 0;
537 width: 240px;
538 }
539 .stripe-headline {
540 text-align: center;
541 }
542 .stripe-headline h1 {
543 font-size: 36px;
544 font-weight: 400;
545 }
546 .stripe-headline h3 {
547 font-size: 14px;
548 font-weight: 400;
549 margin-bottom: 15px;
550 text-transform: uppercase;
551 }
552 .stripe-headline__card {
553 display: block;
554 height: 100%;
555 width: 350px;
556 margin: -105px auto 0;
557 }
558 .stripe-headline__card img {
559 margin-bottom: 10px;
560 }
561 .stripe-headline__card p {
562 text-align: center;
563 text-transform: uppercase;
564 }
565 .stripe-headline__wrapper--lower {
566 width: 100%;
567 }
568 .stripe-headline__wrapper--lower .content-container > * {
569 display: inline-block;
570 }
571 .stripe-headline__wrapper--upper {
572 padding: 20px 0 110px;
573 width: 100%;
574 }
575
576
577
578 @media screen and (min-width: 769px) {
579 .stripe-headline {
580 text-align: left;
581 }
582 .stripe-headline__card {
583 margin: -110px 0 0;
584 padding-right: 45px;
585 }
586 .stripe-headline__heading {
587 padding-left: 350px;
588 }
589 .stripe-headline__wrapper--lower {
590 padding: 20px 0 40px;
591 }
592 .stripe-headline__wrapper--lower > .content-container {
593
594 }
595 .stripe-headline__wrapper--upper {
596 padding: 40px 0 20px;
597 }
598
599 .jn-hero-card .jn-hero-container .jn-hero-container-data article>div .jn-button {
600 margin: 30px auto 0;
601 display: inline-block;
602 width: auto;
603 }
604 }
605
606 @media screen and (min-width: 1200px) {
607 .jn-hero-card .jn-hero-container .jn-hero-container-data article>div:last-child>div.intro {
608 padding: 0 52px;
609 }
610 }
611
612 /*----------------------- Show card for specific bank if there no a background image ------------------------------ */
613 body.associated .jn-hero-card .jn-hero-container .jn-hero-container-data article>div img {
614 display: block;
615 }
616
617 /*----------------------- Subhero Styles ------------------------------ */
618 .jn-subhero {
619 margin: 0;
620 background: #ffffff;
621 }
622
623 .jn-subhero ul {
624 text-align: center;
625 padding: 30px 0;
626 -webkit-align-items: center;
627 -moz-align-items: center;
628 -ms-align-items: center;
629 align-items: center;
630 }
631
632 .jn-subhero ul li {
633 width: 100%;
634 margin-bottom: 20px;
635 }
636
637 .jn-subhero ul li p {
638 font-size: 14px;
639 }
640
641 @media screen and (min-width: 769px) {
642 .jn-subhero {
643 background: rgba(204, 204, 204, .2);
644 }
645
646 .jn-subhero ul li {
647 width: 31%;
648 margin: 0;
649 padding: 0;
650 }
651
652 .jn-subhero ul li:nth-child(2) {
653 width: 37%;
654 }
655
656 .jn-subhero.offer-type-115 ul li:first-child p {
657 width: 80%;
658 }
659
660 .jn-subhero ul li p {
661 margin: 0 auto;
662 }
663
664 .jn-subhero ul {
665 -webkit-align-items: flex-start;
666 -moz-align-items: flex-start;
667 -ms-align-items: flex-start;
668 align-items: flex-start;
669 }
670
671 .jn-subhero ul li:first-child p {
672 width: 70%;
673 }
674
675 .jn-subhero ul li:last-child p {
676 width: 75%;
677 }
678 }
679
680 /*----------------------- Find Styles ------------------------------ */
681 .jn-find {
682 padding: 0 18px 30px;
683 background-color: #ffffff;
684 }
685
686 .jn-find article {
687 padding: 0 15px;
688 }
689
690 .jn-find article sup {
691 top: -0.3em;
692 }
693
694 .jn-find .subtitle p {
695 font-size: 30px;
696 font-weight: bold;
697 color: #333333;
698 text-align: center;
699 margin-bottom: 20px;
700 }
701
702 .jn-find article>div {
703 width: 100%;
704 padding-right: 0;
705 }
706
707 .jn-find article>div p {
708 padding-bottom: 15px;
709 }
710
711 .jn-find article>div p:last-child {
712 padding-bottom: 0;
713 }
714
715 .jn-find article>div h3 {
716 font-size: 18px;
717 color: #19398a;
718 padding-bottom: 14px;
719 }
720
721 .jn-find article>div ul li {
722 padding-bottom: 14px;
723 }
724
725 .jn-find article>div:last-child {
726 padding-right: 0;
727 padding-left: 0;
728 }
729
730 @media screen and (min-width: 769px) {
731 .jn-find {
732 margin: 30px 0;
733 padding: 0 30px;
734 background-color: transparent;
735 }
736
737 .jn-find .subtitle p {
738 font-size: 24px;
739 }
740
741 .jn-find article>div {
742 width: 45%;
743 padding-right: 40px;
744 }
745
746 .jn-find article>div:last-child {
747 padding-right: 0;
748 padding-left: 68px;
749 }
750 }
751
752 @media screen and (min-width: 1200px) {
753 .jn-find .subtitle p {
754 font-size: 29px;
755 }
756 }
757
758 /*----------------------- Banner Styles ------------------------------ */
759 .jn-container-banner .jn-banner-wrapper {
760 padding: 20px 18px 30px;
761 background: #f3f3f3;
762 height: auto;
763 }
764
765 .jn-container-banner .jn-banner article {
766 padding: 30px 0 0;
767 }
768
769 .jn-container-banner .jn-banner article>div {
770 width: 100%;
771 }
772
773 .jn-container-banner .jn-banner article img.jn-img-responsive {
774 width: 200px;
775 margin: 0 auto;
776 display: block;
777 }
778
779 .jn-container-banner .jn-banner article>div:last-child {
780 width: 100%;
781 padding: 0;
782 }
783
784 .jn-container-banner .jn-banner article>div p {
785 margin-top: 0;
786 font-size: 29px;
787 text-align: center;
788 }
789
790 .jn-container-banner .jn-banner article>div p span {
791 font-weight: bold;
792 }
793
794 .jn-container-banner .jn-banner article>div p:first-child {
795 font-size: 26px;
796 padding: 0 30px;
797 line-height: normal;
798 margin-bottom: 20px;
799 }
800
801 .jn-container-banner .jn-banner article>div>p:nth-child(2) {
802 color: #666666;
803 font-size: 20px;
804 }
805
806 .jn-container-banner .jn-banner article>div .jn-button {
807 margin: 15px 0 0;
808 float: none;
809 width: 100%;
810 }
811
812 @media screen and (min-width: 769px) {
813 .jn-container-banner .jn-banner-wrapper {
814 margin-bottom: 10px;
815 padding: 0 30px;
816 background: #ffffff;
817 height: 232px;
818 background: -moz-linear-gradient(left, #ffffff 0%, #f3f3f3 98%);
819 background: -webkit-linear-gradient(left, #ffffff 0%, #f3f3f3 98%);
820 background: linear-gradient(to right, #ffffff 0%, #f3f3f3 98%);
821 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f3f3f3', GradientType=1);
822 }
823
824 .jn-container-banner .jn-banner article>div {
825 width: 37%;
826 }
827
828 .jn-container-banner .jn-banner article>div:last-child {
829 width: 60%;
830 padding: 0 0 0 15px;
831 }
832
833 .jn-container-banner .jn-banner article img.jn-img-responsive {
834 width: 100%;
835 }
836
837 .jn-container-banner .jn-banner article>div p {
838 text-align: left;
839 }
840
841 .jn-container-banner .jn-banner article>div p:first-child {
842 font-size: 36px;
843 padding: 0;
844 line-height: 40px;
845 }
846
847 .jn-container-banner .jn-banner article>div .jn-button {
848 margin: 25px 0 0;
849 float: right;
850 width: auto;
851 }
852 }
853
854 @media screen and (min-width: 1200px) {
855 .jn-container-banner .jn-banner article>div {
856 width: 25%;
857 }
858
859 .jn-container-banner .jn-banner article>div:last-child {
860 width: 75%;
861 padding: 0 0 0 40px;
862 }
863
864 .jn-container-banner .jn-banner-wrapper {
865 padding: 0 64px 0 18px;
866 }
867
868 .jn-container-banner .jn-banner article>div p:first-child {
869 font-size: 48px;
870 }
871
872 .jn-container-banner .jn-banner article>div>p:nth-child(2) {
873 font-size: 30px;
874 }
875 }
876
877 /*----------------------- Disclaimer Styles ------------------------------ */
878 .jn-disclaimer {
879 margin-top: 50px;
880 background-color: #f7f7f7;
881 }
882
883 .jn-disclaimer p {
884 font-size: 16px;
885 }
886
887 .jn-disclaimer ul li {
888 margin-bottom: 15px;
889 font-size: 16px;
890 }
891
892
893
894 .jn-disclaimer ul li sup {
895 margin: 0 2px 0 0;
896 top: -.3em;
897 font-size: 12px;
898 }
899 .jn-disclaimer .disclaimer {
900 padding: 20px 8%;
901 margin: 0 auto;
902 white-space: pre-wrap; /* CSS3 */
903 white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
904 white-space: -pre-wrap; /* Opera 4-6 */
905 white-space: -o-pre-wrap; /* Opera 7 */
906 word-wrap: break-word; /* Internet Explorer 5.5+ */
907 }
908
909 @media screen and (min-width: 769px) {
910 .jn-disclaimer .disclaimer {
911 padding: 20px 8.335%;
912 }
913 .jn-disclaimer ul {
914 margin: 0 0 0 35px;
915 }
916 }
917 @media (min-width: 1025px) {
918 .jn-disclaimer .disclaimer {
919 padding: 20px 8.825%;
920 max-width: 1363px;
921 }
922 }
923
924 /*----------------------- Footer Styles ------------------------------ */
925 .wrapper footer {
926 background-color: #000000;
927 min-height: 135px;
928 }
929
930 .wrapper footer article {
931 color: #FFFFFF;
932 font-weight: bold;
933 max-width: 1200px;
934 margin: 0 auto;
935 padding: 40px 30px;
936 text-align: right;
937 font-size: 12px;
938 }
939 .wrapper footer article .member-agreement {
940 display: inline-block;
941
942 }
943 .wrapper footer article .fdic {
944 display: inline-block;
945 margin-left: 100px;
946 }
947
948 .wrapper footer article a {
949 color: #fff;
950 text-transform: none;
951 }
952
953 .wrapper footer article a:hover,
954 .wrapper footer article a:focus,
955 .wrapper footer article a:active {
956 color: #fff;
957 text-transform: underline;
958 }
959
960
961 /*----------------------- Consumer Styles ------------------------------ */
962
963
964 .jn-consumer-content h2 {
965 font-size: 25px;
966 color: #333333;
967 font-weight: 400;
968 }
969
970 .jn-consumer-content .jn-consumer-content-wrapper {
971 display: -webkit-box;
972 display: -webkit-flex;
973 display: -moz-flex;
974 display: -ms-flexbox;
975 display: flex;
976 -webkit-align-items: flex-start;
977 -moz-align-items: flex-start;
978 -ms-align-items: flex-start;
979 align-items: flex-start;
980 -webkit-flex-flow: column wrap;
981 -moz-flex-flow: column wrap;
982 -ms-flex-flow: column wrap;
983 flex-flow: column wrap;
984 -ms-flex-pack: space-around;
985 -webkit-justify-content: space-around;
986 -moz-justify-content: space-around;
987 -ms-justify-content: space-around;
988 justify-content: space-around;
989 font-family: Arial, Helvetica, sans-serif;
990 }
991
992 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item {
993 display: flex;
994 flex-direction: column;
995 background-color: #fff;
996 justify-content: center;
997 padding: 50px 8%;
998 position: relative;
999 border-bottom: 1px solid #ccc;
1,000 }
1,001 @media (min-width: 769px) {
1,002 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item {
1,003 flex-direction: row;
1,004 border-radius: 10px;
1,005 -webkit-box-shadow: 0px 0px 7px 2px rgba(0, 0, 0, 0.2);
1,006 -moz-box-shadow: 0px 0px 7px 2px rgba(0, 0, 0, 0.2);
1,007 box-shadow: 0px 0px 7px 2px rgba(0, 0, 0, 0.2);
1,008 border-bottom: none;
1,009 margin: 20px;
1,010 padding: 50px 3%;
1,011 }
1,012 }
1,013
1,014 .jn-consumer-card-info {
1,015 width: 100%;
1,016 }
1,017 @media (min-width: 769px) {
1,018 .jn-consumer-card-info {
1,019 width: 60%;
1,020 margin-left: 5%;
1,021 }
1,022 }
1,023 @media (min-width: 830px) {
1,024 .jn-consumer-card-info {
1,025 margin-left: 5%;
1,026 }
1,027 }
1,028 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .tag-container {
1,029 display: none;
1,030 }
1,031 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item.with-new-tag .tag-container {
1,032 display: block;
1,033 width: 69px;
1,034 height: 78px;
1,035 position: absolute;
1,036 top: 0;
1,037 left: 0;
1,038 }
1,039 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item.with-new-tag .tag-corner {
1,040 display: block;
1,041 width: 69px;
1,042 height: 78px;
1,043 background-image: linear-gradient(to bottom right, ${buttonColor!'#173989'} 50%, transparent 0%);
1,044 background-size: 100% 100%;
1,045 background-repeat: no-repeat;
1,046 background-position: left;
1,047 position: relative;
1,048 }
1,049 @media (min-width: 769px) {
1,050 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item.with-new-tag .tag-corner {
1,051 border-radius: 10px 0 0 0;
1,052 }
1,053 }
1,054 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item.with-new-tag .tag-label {
1,055 font-weight: 700;
1,056 font-size: 15px;
1,057 line-height: 9px;
1,058 color: #FFFFFF;
1,059 position: absolute;
1,060 top: 28%;
1,061 left: 9%;
1,062 transform: rotate(-49.5deg);
1,063 }
1,064
1,065 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item p {
1,066 font-size: 12px;
1,067 }
1,068
1,069 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item img {
1,070 max-width: 285px;
1,071 max-height: 285px;
1,072 margin: 0 auto 20px;
1,073 display: block;
1,074 width: auto;
1,075 height: auto;
1,076 }
1,077
1,078 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading__subheading {
1,079 font-size: 15px;
1,080 font-weight: 300;
1,081 margin: 0 0 10px;
1,082 text-transform: uppercase;
1,083 }
1,084 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading {
1,085 text-align: center;
1,086 margin-bottom: 20px;
1,087 }
1,088
1,089 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading p {
1,090 font-size: 29px;
1,091 font-weight: 300;
1,092 margin: 10px 0;
1,093 }
1,094
1,095 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .jn-additional ul li {
1,096 list-style-type: none;
1,097 padding: 0 0 15px 0;
1,098 color: #333333;
1,099 font-size: 20px;
1,100 line-height: 1.2;
1,101 }
1,102 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .jn-additional .text-indent {
1,103 padding-left: 20px;
1,104 }
1,105 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .jn-additional ul li p.text-small {
1,106 font-size: 16px;
1,107 }
1,108
1,109 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .jn-additional ul li p,
1,110 .jn-consumer-item .jn-consumer-card-image p.tier3-tabs-card-art-description {
1,111 font-size: 20px;
1,112 line-height: 1.3;
1,113 }
1,114 .jn-consumer-item .jn-consumer-card-image p.tier3-tabs-card-art-description {
1,115 text-align: center;
1,116 }
1,117 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions {
1,118 display: -webkit-box;
1,119 display: -webkit-flex;
1,120 display: -moz-flex;
1,121 display: -ms-flexbox;
1,122 display: flex;
1,123 margin: 10px 0;
1,124 justify-content: center;
1,125 }
1,126 @media (min-width: 769px) {
1,127 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading {
1,128 min-height: 110px;
1,129 text-align: left;
1,130 }
1,131 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions {
1,132 justify-content: flex-start;
1,133 }
1,134 }
1,135 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .actions a {
1,136 display: block;
1,137 font-size: 14px;
1,138 font-weight: 400;
1,139 padding: 6px 45px;
1,140 text-transform: uppercase;
1,141 text-align: center;
1,142 }
1,143
1,144 @media (max-width: 768px) {
1,145 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .actions a {
1,146 padding: 6px 0;
1,147 width: 100%;
1,148 }
1,149 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .actions li {
1,150 width: 49%;
1,151 max-width: 180px;
1,152 }
1,153 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .actions li:first-child {
1,154 margin-right: 2%;
1,155 }
1,156 }
1,157
1,158 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions li:first-child a {
1,159 color: #fff;
1,160 margin-right: 7px;
1,161 position: relative;
1,162 }
1,163
1,164 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions li a:hover,
1,165 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions li a:focus,
1,166 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item ul.actions li a:active {
1,167 color: #fff;
1,168 }
1,169
1,170 @media screen and (min-width: 769px) {
1,171
1,172
1,173 .jn-consumer-content h2 {
1,174 font-size: 29px;
1,175 }
1,176
1,177 .jn-consumer-content .jn-consumer-content-wrapper {
1,178 -webkit-flex-flow: row wrap;
1,179 -moz-flex-flow: row wrap;
1,180 -ms-flex-flow: row wrap;
1,181 flex-flow: row wrap;
1,182 -ms-flex-pack: space-between;
1,183 -webkit-justify-content: space-between;
1,184 -moz-justify-content: space-between;
1,185 -ms-justify-content: space-between;
1,186 justify-content: space-between;
1,187 }
1,188 }
1,189
1,190 /*----------------------- Tab Styles ------------------------------ */
1,191 .jn-primary-nav {
1,192 margin: 50px auto;
1,193 display: block;
1,194 width: 80%;
1,195 }
1,196 @media screen and (min-width: 769px) {
1,197 .jn-primary-nav {
1,198 width: 100%;
1,199 max-width: 525px;
1,200 }
1,201 }
1,202
1,203
1,204 .jn-primary-nav ul {
1,205
1,206 display: -webkit-box;
1,207 display: -webkit-flex;
1,208 display: -moz-flex;
1,209 display: -ms-flexbox;
1,210 display: flex;
1,211 -webkit-align-items: center;
1,212 -moz-align-items: center;
1,213 -ms-align-items: center;
1,214 align-items: center;
1,215 -webkit-justify-content: center;
1,216 -moz-justify-content: center;
1,217 -ms-justify-content: center;
1,218 justify-content: center;
1,219 -ms-flex-pack: center;
1,220 width: 100%;
1,221 }
1,222
1,223
1,224 .jn-primary-nav ul li {
1,225 width: 50%;
1,226
1,227 }
1,228 .jn-primary-nav ul li a {
1,229 width: 100%;
1,230 padding: 8px 0;
1,231 }
1,232 .jn-primary-nav ul li a:hover,
1,233 .jn-primary-nav ul li a:focus {
1,234 color: #fff;
1,235 background-color: ${hoverColor!'#333333'};
1,236 }
1,237
1,238 .jn-primary-nav a, .jn-primary-nav p {
1,239 font-size: 16px;
1,240 font-weight: 400;
1,241 text-align: center;
1,242 display: block;
1,243 position: relative;
1,244 text-transform: uppercase;
1,245 }
1,246
1,247 .jn-primary-nav p:hover {
1,248 cursor: pointer;
1,249 }
1,250
1,251
1,252
1,253
1,254
1,255 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content {
1,256 display: none;
1,257 }
1,258
1,259 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active {
1,260 display: -webkit-box;
1,261 display: -webkit-flex;
1,262 display: -moz-flex;
1,263 display: -ms-flexbox;
1,264 display: flex;
1,265 }
1,266
1,267
1,268
1,269
1,270 @media screen and (min-width: 769px) {
1,271
1,272 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active {
1,273 display: block !important;
1,274 position: relative;
1,275 }
1,276 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active.one-card, .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active.two-card {
1,277 display: flex !important;
1,278 width: auto;
1,279 position: relative;
1,280 }
1,281 }
1,282 @media screen and (min-width: 769px) {
1,283 .tab-more-wrapper {
1,284 overflow: hidden;
1,285 }
1,286 }
1,287 @media (min-width: 1200px) {
1,288 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active {
1,289 display: block !important;
1,290 }
1,291 .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active.one-card, .jn-consumer-content .jn-consumer-content-wrapper.jn-tab-content.active.two-card {
1,292 display: flex !important;
1,293 width: auto;
1,294 }
1,295
1,296 .transition-start {
1,297 transform: translateX(0);
1,298 }
1,299 .transition-left {
1,300 transform: translateX(-999px);
1,301 }
1,302
1,303 }
1,304
1,305
1,306
1,307
1,308
1,309
1,310
1,311
1,312
1,313
1,314
1,315 /*customizations*/
1,316
1,317 .jn-consumer-content .jn-consumer-content-wrapper .jn-consumer-item .consumer-card-heading .consumer-card-heading__subheading {
1,318 color: ${textColor!'#173989'};
1,319 }
1,320 .wrapper ul.actions li a.applyNowLink {
1,321 background-color: ${buttonColor!'#173989'};
1,322 border: 1px solid ${buttonColor!'#173989'};
1,323 }
1,324 .wrapper ul.actions li a.applyNowLink:hover,
1,325 .wrapper ul.actions li a.applyNowLink:focus {
1,326 text-decoration: none;
1,327 color: #fff;
1,328 background-color: ${hoverColor!'#333333'};
1,329 }
1,330 .wrapper ul.actions li a:not(.applyNowLink) {
1,331 border: 1px solid ${textColor!'#173989'};
1,332 color: ${textColor!'#173989'};
1,333 }
1,334 .wrapper ul.actions li a:hover:not(.applyNowLink),
1,335 .wrapper ul.actions li a:focus:not(.applyNowLink) {
1,336 color: #fff;
1,337 background-color: ${hoverColor!'#333333'};
1,338 }
1,339 .wrapper .jn-button {
1,340 cursor: pointer;
1,341 border: none;
1,342 color: #fff;
1,343 padding: 15px 60px;
1,344 font-weight: normal;
1,345 text-transform: uppercase;
1,346 display: inline-block;
1,347 border-radius: 0!important;
1,348 font-size: 16px;
1,349 background-color: ${buttonColor!'#173989'};
1,350 }
1,351 .wrapper .jn-button:hover,
1,352 .wrapper .jn-button:active,
1,353 .wrapper .jn-button:focus {
1,354 background-color: ${hoverColor!'#333333'};
1,355 }
1,356 .tier3-hero-landing-business .jn-button {
1,357 background-color: #fff;
1,358 color: ${buttonColor!'#173989'};
1,359 }
1,360 .tier3-hero-landing-business .jn-button:hover,
1,361 .tier3-hero-landing-business .jn-button:focus {
1,362 color: #fff;
1,363 }
1,364 .tier3-hero-landing-consumer .jn-button {
1,365 color: #fff;
1,366 background-color: ${buttonColor!'#173989'};
1,367 }
1,368 .tier3-hero-landing-business .t_c_link {
1,369 color: #fff;
1,370 }
1,371
1,372 @media (max-width: 768px) {
1,373 .wrapper .jn-button {
1,374 margin: 0 auto;
1,375 max-width: 213px;
1,376 }
1,377 .offer-detail {
1,378 padding: 50px 8%;
1,379 padding-top: 10px;
1,380 margin-top: -1px;
1,381 }
1,382 .tier3-hero-landing-consumer .offer-detail {
1,383 background: -moz-linear-gradient(0deg, #f8f8f8 80%, ${backgroundColor!'#173989'} 80%);
1,384 background: -webkit-linear-gradient(0deg, #f8f8f8 80%, ${backgroundColor!'#173989'} 80%);
1,385 background: linear-gradient(0deg, #f8f8f8 80%, ${backgroundColor!'#173989'} 80%);
1,386 }
1,387 .tier3-hero-landing-consumer .offer-header {
1,388 background-color: ${backgroundColor!'#173989'};
1,389 }
1,390 .tier3-hero-landing-consumer .hero-primary-benefits {
1,391 background: -moz-linear-gradient(180deg, #f8f8f8 43%, #fff 43%);
1,392 background: -webkit-linear-gradient(180deg, #f8f8f8 43%, #fff 43%);
1,393 background: linear-gradient(180deg, #f8f8f8 43%, #fff 43%);
1,394 }
1,395 .tier3-hero-landing-business .offer-detail {
1,396 background: -moz-linear-gradient(180deg, rgba(255,255,255,1) 25%, ${backgroundColor!'#173989'} 25%);
1,397 background: -webkit-linear-gradient(180deg, rgba(255,255,255,1) 25%, ${backgroundColor!'#173989'} 25%);
1,398 background: linear-gradient(180deg, rgba(255,255,255,1) 25%, ${backgroundColor!'#173989'} 25%);
1,399 }
1,400 .tier3-hero-landing-business .offer-header {
1,401 background-color: #fff;
1,402 }
1,403 .tier3-hero-landing-business .hero-primary-benefits {
1,404 background: -moz-linear-gradient(180deg, ${backgroundColor!'#173989'} 43%, #fff 43%);
1,405 background: -webkit-linear-gradient(180deg, ${backgroundColor!'#173989'} 43%, #fff 43%);
1,406 background: linear-gradient(180deg, ${backgroundColor!'#173989'} 43%, #fff 43%);
1,407 margin-top: -1px;
1,408 }
1,409 }
1,410 .tier3-hero-landing-business .offer-title p, .tier3-hero-landing-business .offer-title {
1,411 color: ${textColor!'#173989'} !important;
1,412 }
1,413
1,414 .tier3-hero-landing-consumer .offer-title, .tier3-hero-landing-consumer .offer-subtitle, .tier3-hero-landing-consumer .offer-title p, .tier3-hero-landing-consumer .offer-subtitle p {
1,415 color: #fff;
1,416 }
1,417 @media (min-width: 769px) {
1,418 .tier3-hero-landing-consumer .hero-main-container {
1,419 background: -moz-linear-gradient(0deg, #f8f8f8 60.5%, ${backgroundColor!'#173989'} 60.5%);
1,420 background: -webkit-linear-gradient(0deg, #f8f8f8 60.5%, ${backgroundColor!'#173989'} 60.5%);
1,421 background: linear-gradient(0deg, #f8f8f8 60.5%, ${backgroundColor!'#173989'} 60.5%);
1,422
1,423 }
1,424 .tier3-hero-landing-business .hero-main-container{
1,425 background: -moz-linear-gradient(180deg, rgba(255,255,255,1) 35%, ${backgroundColor!'#173989'} 35%);
1,426 background: -webkit-linear-gradient(180deg, rgba(255,255,255,1) 35%, ${backgroundColor!'#173989'} 35%);
1,427 background: linear-gradient(180deg, rgba(255,255,255,1) 35%, ${backgroundColor!'#173989'} 35%);
1,428 }
1,429 }
1,430
1,431
1,432 .jn-primary-nav a:hover,
1,433 .jn-primary-nav a:focus,
1,434 .jn-primary-nav a.active,
1,435 .jn-primary-nav p:hover,
1,436 .jn-primary-nav p:focus,
1,437 .jn-primary-nav p.active {
1,438 background-color: ${backgroundColor!'#173989'};
1,439 border: 1px solid ${textColor!'#173989'};
1,440 color: #fff;
1,441 }
1,442 .jn-primary-nav a, .jn-primary-nav p {
1,443 color: ${textColor!'#173989'};
1,444 }
1,445 .jn-primary-nav ul {
1,446 border: 1px solid ${textColor!'#173989'};
1,447 }
1,448
1,449 /*HERO COMBINED*/
1,450
1,451
1,452
1,453 .hero-main-offer {
1,454 height: 100%;
1,455 width: 100%;
1,456 }
1,457
1,458 @media (min-width: 769px) {
1,459 .hero-main-offer {
1,460 padding: 50px 8% 120px 8%;
1,461 display: flex;
1,462 justify-content: center;
1,463 margin: 0 auto;
1,464 }
1,465 }
1,466
1,467 @media (min-width: 1024px) {
1,468 .hero-main-offer {
1,469 max-width: 1363px;
1,470 }
1,471 }
1,472
1,473 .hero-main-offer .offer-header {
1,474 padding: 50px 8%;
1,475 padding-top: 20px;
1,476 padding-bottom: 10px;
1,477 }
1,478
1,479 @media (min-width: 769px) {
1,480 .hero-main-offer .offer-header {
1,481 padding: 0 4%;
1,482 text-align: left;
1,483 justify-content: space-between;
1,484 display: flex;
1,485 flex-direction: column;
1,486 max-width: 70%;
1,487 }
1,488 .hero-main-offer .offer-header .offer-text-top, .hero-main-offer .offer-header .offer-text-bottom {
1,489 padding: 0 0 20px 0;
1,490 }
1,491 }
1,492
1,493 .hero-main-offer .offer-title, .hero-main-offer .offer-title p, .hero-main-offer .offer-title h1, .hero-main-offer .offer-title h2, .hero-main-offer .offer-title h3 {
1,494 margin: 0;
1,495 margin-bottom: 10px;
1,496 font-size: 14px;
1,497 text-transform: uppercase;
1,498 letter-spacing: 1.136px;
1,499 }
1,500 .hero-main-offer .offer-subtitle, .hero-main-offer .offer-subtitle p, .hero-main-offer .offer-subtitle h1, .hero-main-offer .offer-subtitle h2, .hero-main-offer .offer-subtitle h3 {
1,501 margin: 0;
1,502 font-size: 28px;
1,503 }
1,504 @media (min-width: 945px) {
1,505 .hero-main-offer .offer-subtitle, .hero-main-offer .offer-subtitle p, .hero-main-offer .offer-subtitle h1, .hero-main-offer .offer-subtitle h2, .hero-main-offer .offer-subtitle h3 {
1,506 font-size: 36px;
1,507 }
1,508 }
1,509
1,510 .hero-main-offer .offer-detail-cardArt {
1,511 min-height: 220px;
1,512 min-width: 285px;
1,513 }
1,514
1,515 .hero-main-offer .offer-detail-cardArt img {
1,516 max-width: 285px;
1,517 width: auto;
1,518 height: auto;
1,519 max-height: 285px;
1,520 }
1,521
1,522 .hero-main-offer .offer-detail-cardArt p {
1,523 margin: 20px 0;
1,524 color: #555555;
1,525 text-transform: uppercase;
1,526 letter-spacing: 1.136px;
1,527 }
1,528 @media screen and (min-width: 769px) {
1,529 .tier3-hero-landing-consumer .hero-main-offer .offer-detail-cardArt p {
1,530 margin: 45px 0 20px 0;
1,531 }
1,532 }
1,533 @media screen and (min-width: 815px) {
1,534 .tier3-hero-landing-consumer .hero-main-offer .offer-detail-cardArt p {
1,535 margin: 20px 0;
1,536 }
1,537 }
1,538
1,539 .hero-main-offer .offer-detail-text {
1,540 margin-bottom: 20px;
1,541 }
1,542
1,543 .hero-main-offer .offer-detail-text p {
1,544 color: #555555;
1,545 }
1,546
1,547 .tier3-hero-landing-business .offer-detail-cardArt p, .tier3-hero-landing-business .offer-detail-text p {
1,548 color: #fff;
1,549 }
1,550
1,551 .hero-main-logo a {
1,552 text-align: center;
1,553 }
1,554
1,555 .hero-main-logo-homelink a {
1,556 color: #ffffff;
1,557 font-weight: bold;
1,558 }
1,559 a.reward-calculator-link {
1,560 text-decoration: underline;
1,561 text-align: center;
1,562 display: block;
1,563 }
1,564
1,565 .hero-main-logo-homelink a:hover,
1,566 .hero-main-logo-homelink a:focus,
1,567 .hero-main-logo-homelink a:active {
1,568 text-decoration: none;
1,569 background-color: transparent;
1,570 }
1,571
1,572 .hero-main-container {
1,573 text-align: center;
1,574 }
1,575
1,576 .hero-main-container sup {
1,577 font-size: 13px !important;
1,578 }
1,579 .hide-mobile, .hide-desktop {
1,580 display: none !important;
1,581 }
1,582 @media (min-width: 769px) {
1,583 .hide-mobile {
1,584 display: block !important;
1,585 }
1,586 }
1,587 @media (max-width: 768px) {
1,588 .hide-desktop {
1,589 display: block !important;
1,590 }
1,591 }
1,592</style>
Web Content Display
An error occurred while processing the template.
Error on line 36, column 1 in 10154#10192#153417670 clientProfileList?first is undefined. It cannot be assigned to clientProfile
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 environment = url?replace('/11t3.*','','r')>
7
8<#assign text_to_apply_source = "vanity url" >
9<#if qstringmap["sms"]?has_content>
10 <#assign sms = 1 >
11 <#assign text_to_apply_source = "sms" >
12</#if>
13<#if qstringmap["qrCode"]?has_content>
14 <#assign text_to_apply_source = "qr code" >
15</#if>
16
17<#assign lc= qstringmap["ecdma-lc"]?first>
18<#assign prefix = "00000" >
19<#assign lcWithPrefix = prefix + lc >
20<#assign withPrefixLength = lcWithPrefix?length >
21<#assign startHere = withPrefixLength - 5>
22<#assign lc = lcWithPrefix?substring(startHere)>
23
24<#if qstringmap["ecid"]?has_content>
25 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
26 <#assign campaignId = qstringmap["ecid"]?first >
27<#else>
28 <#assign ecidExt="">
29 <#assign campaignId = "" >
30</#if>
31
32
33
34<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
35<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
36<#assign clientProfile = clientProfileList?first>
37<#assign partnerName = clientProfile.getMarketingNameLong()>
38<#assign pbu = clientProfile.getPbu()>
39<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
40
41<#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case>
42<#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')>
43<#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+pbu+'&'+subbu)>
44
45 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
46<#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
47<#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
48<script>
49//console.log('Partner URL', ${partnerUrl});
50</script>
51<#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*")>
52 <#assign partnerUrl = 'https://' + partnerUrl>
53</#if>
54<script>
55//console.log('Partner URL', ${partnerUrl});
56
57</script>
58<#-- Begin: filter duplicated cards-->
59<#assign temp = []>
60<#assign offerTypeList = []>
61<#if (fiCardsData?size > 0)>
62 <#assign index = 0>
63 <#list fiCardsData as fib>
64 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
65 <#assign offerTypeList = offerTypeList + [fib.offerType]>
66 <#assign temp = temp + fiCardsData[index..index]>
67 </#if>
68 <#assign index = index + 1>
69 </#list>
70 <#assign fiCardsData = temp>
71 <#if (fiCardsData?size > 0)>
72 <div class="content-container content-container-main" title="${partnerName!''}">
73 <#if url?contains("index")>
74 <#assign product="All Cards">
75 <header class="jn-header">
76 <div class="header-logo">
77
78 <#if partnerUrl?has_content>
79 <a href="${partnerUrl!''}" title="${partnerName!''}">
80 <img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''} Logo" title="${partnerName!''} Logo">
81 </a>
82 <#else>
83 <img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''} Logo" title="${partnerName!''} Logo">
84 </#if>
85 </div>
86 </header>
87 <#else>
88 <header class="jn-header">
89 <div class="back-overview hide-desktop">
90 <a href="${environment}/11t3/index?ecdma-lc=${lc}${ecidExt}">Home</a>
91 </div>
92
93 <div class="header-main-logo" title="${partnerName!''}">
94 <#if partnerUrl?has_content>
95 <a href="${partnerUrl!''}" title="${partnerName!''}">
96 <img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''} Logo" title="${partnerName!''} Logo">
97 </a>
98 <#else>
99 <img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''} Logo" title="${partnerName!''} Logo">
100 </#if>
101 </div>
102 <div class="styled-select slate">
103 <select>
104 <#list fiCardsData as fib>
105 <#if (fib.offerType=="108" || fib.offerType=="109")>
106 <#assign productURL="202208/consumer-platinum">
107 <#assign productName="Platinum Card">
108 <#elseif fib.offerType=="147">
109 <#assign productURL = "max-cash-secured">
110 <#assign productName = "Max Cash Secured Card" >
111 <#elseif fib.offerType=="104">
112 <#assign productURL = "max-cash">
113 <#assign productName = "Max Cash Preferred Card">
114 <#elseif (fib.offerType=="101" || fib.offerType=="103")>
115 <#assign productURL = "202208/consumer-edr">
116 <#assign productName = "Everyday Rewards+">
117 <#elseif fib.offerType == "115">
118 <#assign productURL = "secured">
119 <#assign productName = "Secured Card" >
120 <#elseif fib.offerType == "141">
121 <#assign productURL = "college-real-rewards">
122 <#assign productName = "College Real Rewards" >
123 <#elseif fib.offerType == "144">
124 <#assign productURL = "smart-business-rewards">
125 <#assign productName = "Smart Business Rewards Card" >
126 <#elseif fib.offerType == "128">
127 <#assign productURL = "business-cash-preferred">
128 <#assign productName = "Business Cash Preferred" >
129 <#elseif fib.offerType == "143">
130 <#assign productURL = "business-real-rewards">
131 <#assign productName = "Business Real Rewards Card" >
132 <#elseif fib.offerType == "121">
133 <#assign productURL = "202208/business-platinum">
134 <#assign productName = "Business Card" >
135 </#if>
136 <#if url?matches(".*/${productURL}.*")>
137 <#assign product = productURL>
138 <option value="${environment}/11t3/${productURL}?ecdma-lc=${lc}${ecidExt}" selected="selected">${productName}</option>
139 <#else>
140 <option value="${environment}/11t3/${productURL}?ecdma-lc=${lc}${ecidExt}">${productName}</option>
141 </#if>
142 </#list>
143 </select>
144 <nav class="styled-select__dropdown">
145 <div class="back-overview hide-mobile">
146 <a href="${environment}/11t3/index?ecdma-lc=${lc}${ecidExt}">Home</a>
147 </div>
148 <a href="javascript:void(0)" class="dropdown-select" aria-expanded="false">
149 <span class="selected-option"></span>
150 <div class="jn-arrow arrow arrow-right"></div>
151 </a>
152 <a href="javascript:void(0)" class="jn-hamburger hamburger" aria-expanded="false">
153 <div class="first-line transform transformed1"></div>
154 <div></div>
155 <div class="transform transformed2"></div>
156 <div></div>
157 </a>
158 <ul>
159 <#list fiCardsData as fib>
160 <#if (fib.offerType=="108" || fib.offerType=="109")>
161 <#assign productURL="202208/consumer-platinum">
162 <#assign productName="Platinum Card">
163 <#elseif fib.offerType=="147">
164 <#assign productURL = "max-cash-secured">
165 <#assign productName = "Max Cash Secured Card" >
166 <#elseif fib.offerType=="104">
167 <#assign productURL = "max-cash">
168 <#assign productName = "Max Cash Preferred Card">
169 <#elseif (fib.offerType=="101" || fib.offerType=="103")>
170 <#assign productURL = "202302/consumer-edr">
171 <#assign productName = "Everyday Rewards+">
172 <#elseif fib.offerType == "115">
173 <#assign productURL = "secured">
174 <#assign productName = "Secured Card" >
175 <#elseif fib.offerType == "141">
176 <#assign productURL = "college-real-rewards">
177 <#assign productName = "College Real Rewards" >
178 <#elseif fib.offerType == "144">
179 <#assign productURL = "smart-business-rewards">
180 <#assign productName = "Smart Business Rewards Card" >
181 <#elseif fib.offerType == "128">
182 <#assign productURL = "business-cash-preferred">
183 <#assign productName = "Business Cash Preferred" >
184 <#elseif fib.offerType == "143">
185 <#assign productURL = "business-real-rewards">
186 <#assign productName = "Business Real Rewards Card" >
187 <#elseif fib.offerType == "121">
188 <#assign productURL = "202208/business-platinum">
189 <#assign productName = "Business Card" >
190 </#if>
191 <#if url?matches(".*/${productURL}.*")>
192 <#assign product = productURL>
193 <#if (fib.offerType=="104" && url?contains("max-cash-secured"))>
194 <#-- prevent from max cash overiding max cash secured. -->
195 <li class="dropdown-item" data-value="${productName}">
196 <a href="${environment}/11t3/${productURL}?ecdma-lc=${lc}${ecidExt}">
197 ${productName}
198 </a>
199 </li>
200 <#else>
201 <li class="selected" data-value="${productName}" selected="selected"><a href="javascript:void(0)">${productName}</a></li>
202 </#if>
203 <#else>
204 <li class="dropdown-item" data-value="${productName}">
205 <a href="${environment}/11t3/${productURL}?ecdma-lc=${lc}${ecidExt}">
206 ${productName}
207 </a>
208 </li>
209 </#if>
210 </#list>
211 </ul>
212 </nav>
213
214 </div>
215 </header>
216 <script>
217 function toggleFlyOutMenu() {
218 $('.styled-select').toggleClass('show-select');
219 var ariaExpanded = $('.styled-select__dropdown .dropdown-select').attr('aria-expanded');
220 if(ariaExpanded !== null) {
221 var isAriaExpanded;
222 if(ariaExpanded === "true") {
223 isAriaExpanded = true;
224 } else {
225 isAriaExpanded = false
226 }
227 $('.styled-select__dropdown .dropdown-select').attr('aria-expanded', !isAriaExpanded);
228 $('.styled-select__dropdown .jn-hamburger').attr('aria-expanded', !isAriaExpanded);
229 }
230 }
231 document.addEventListener('DOMContentLoaded', function() {
232 var pageSelected = $('.selected').attr('data-value');
233 $('.jn-hamburger, .dropdown-select').click(function () {
234 toggleFlyOutMenu();
235 });
236 $('.styled-select__dropdown').keydown(function(event) {
237 var firstNavigationLink = $('.styled-select__dropdown ul li:visible a').first();
238 var lastNavigationLink = $('.styled-select__dropdown ul li:visible a').last();
239
240 if(event.keyCode === 9 ) {
241 // if they tab outside of the nav close the navigation
242 //shift + tab pressed
243 if(event.shiftKey && firstNavigationLink.is(document.activeElement)) {
244 toggleFlyOutMenu();
245 } else if(!event.shiftKey && lastNavigationLink.is(document.activeElement)) {
246 toggleFlyOutMenu();
247 }
248 }
249 });
250 $('.selected-option').text(pageSelected);
251 });
252 </script>
253 </#if>
254 </div>
255 <script>
256 var reportingData = {};
257
258 document.addEventListener('DOMContentLoaded', function() {
259 //console.log('inside ready');
260 var page = location.pathname.split('/')[location.pathname.split('/').length-1];
261 var hostName = location.hostname;
262 function getDomainFromHostname(hostname) {
263 var parts = hostname.split('.');
264 return parts.length === 3 ? parts[1] : parts[0];
265 }
266 var domain = getDomainFromHostname(hostName);
267 var partnerName = "${partnerName!''}";
268 var product = "All Cards";
269 switch(page) {
270 case "max-cash-secured":
271 product="Max Cash Secured Card"
272 break;
273 case "max-cash":
274 product="Max Cash Preferred Card"
275 break;
276 case "consumer-platinum":
277 product="Platinum Card"
278 break;
279 case "consumer-edr":
280 product="Everyday Rewards+"
281 break;
282 case "secured":
283 product="Secured Card"
284 break;
285 case "college-real-rewards":
286 product="College Real Rewards"
287 break;
288 case "smart-business-rewards":
289 product="Smart Business Rewards Card"
290 break;
291 case "business-cash-preferred":
292 product="Business Cash Preferred"
293 break;
294 case "business-real-rewards":
295 product="Business Real Rewards Card"
296 break;
297 case "visa-business":
298 product="Business Card"
299 break;
300 default:
301 product = "All Cards";
302 }
303 var lc = "${lc!'0'}";
304 var pageType = "product";
305 if (page == "index") {
306 document.title = partnerName + " Credit Card Index Page";
307 }
308 /* update SiteCatalyst data object */
309 reportingData.current_page = "microsite:${partnerName}:" + domain + ':' + page.replace('-',' ');
310 reportingData.page_type = 'product';
311 reportingData.site_section = 'credit cards';
312 reportingData.platform = 'microsite';
313 reportingData.campaign_id = '${campaignId}';
314 reportingData.location_code = lc;
315 reportingData.partner_name = partnerName;
316 reportingData.product = product;
317 reportingData.text_to_apply_source = '${text_to_apply_source}';
318 reportingData.visitor_type = 'prospect';
319 reportingData.Banker_id = '0';
320 reportingData.Banker_code = '0';
321
322
323 /* SiteCatalyst pageView tracking */
324 AUI().ready(function() {
325 if (window.publisherFW) {
326 //console.log("pageView");
327 window.publisherFW.publishEvent("pageView", reportingData);
328 }
329 });
330
331 jQuery('.jn-button, .applyNowLink').on('click', function(e){
332 var buttonName = $(this).data('button-name');
333 var productName = $(this).data('product-name');
334 /* SiteCatalyst onClick tracking */
335 reportingData.applyButton = buttonName;
336 reportingData.product = productName;
337
338 if (window.publisherFW) {
339 //console.log('clicked', reportingData);
340 window.publisherFW.publishEvent("onClick", reportingData);
341 }
342
343 });
344
345 jQuery('.applyNowLink').on('click', function(e){
346 ga("send", {
347 hitType: "event",
348 eventAction: "ApplyNow",
349 eventCategory: "click",
350 eventLabel: "BottomButton"
351 });
352 });
353
354 });
355 </script>
356 <#else>
357 <script>
358 console.log("Empty card list");
359 location.href = '${url404}';
360 </script>
361 </#if>
362<#else>
363 <script>
364 console.log("FI Cards Data empty", "pbu:", "${pbu}", ",subbu:","${subbu}");
365 location.href = '${url404}';
366 </script>
367</#if>
Web Content Display
An error occurred while processing the template.
Error on line 40, column 1 in 10154#10192#153417688 clientProfileList?first is undefined. It cannot be assigned to clientProfile
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<#assign currentEnvironment = 'prod' >
8
9<#assign lc= qstringmap["ecdma-lc"]?first>
10<#assign prefix = "00000" >
11<#assign lcWithPrefix = prefix + lc >
12<#assign withPrefixLength = lcWithPrefix?length >
13<#assign startHere = withPrefixLength - 5>
14<#assign lc = lcWithPrefix?substring(startHere)>
15
16
17<#if qstringmap["ecid"]?has_content>
18 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
19<#else>
20 <#assign ecidExt="">
21</#if>
22<#if oadURL?contains("uat-")>
23 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
24 <#assign currentEnvironment = 'uat' >
25<#else>
26 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
27</#if>
28 <script>
29 //console.log('%ccurrentEnvironment: ', 'font-weight: bold; color: green;', '${currentEnvironment}');
30 </script>
31<#assign campaignId = "" >
32<#assign ecidExt="">
33<#if qstringmap["ecid"]?has_content>
34 <#assign campaignId = qstringmap["ecid"]?first >
35 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
36</#if>
37
38<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
39<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
40<#assign clientProfile = clientProfileList?first>
41<#assign partnerName = clientProfile.getMarketingNameLong()>
42<#assign pbu = clientProfile.getPbu()>
43<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
44<#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
45
46<#assign fiCardsData=utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu + '&'+subbu)>
47<#assign temp = []>
48<#assign consumerCards = []>
49<#assign businessCards = []>
50<#assign offerTypeList = []>
51<#assign index = 0>
52<#assign consumerOfferTypes = ["101", "103", "108", "109", "115", "104", "141", "147"]>
53<#assign businessOfferTypes = ["128", "123", "121", "143", "144"]>
54<#list fiCardsData as fib>
55 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
56 <#assign offerTypeList = offerTypeList + [fib.offerType]>
57 <#if (consumerOfferTypes?seq_contains(fib.offerType))>
58 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
59 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
60 <#assign businessCards = businessCards + fiCardsData[index..index]>
61 </#if>
62 <#assign temp = temp + fiCardsData[index..index]>
63 </#if>
64 <#assign index = index + 1>
65</#list>
66
67<#assign fiCardsData = temp>
68 <script>
69 //console.log("fi card data count", ${fiCardsData?size})
70</script>
71
72<#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
73<#if (clientdata?size > 0)>
74 <#assign backgroundColor = clientdata[0].backgroundHexColor>
75</#if>
76
77<#if (fiCardsData?size > 0)>
78 <#if url?contains("index")>
79 <#assign offerId = "">
80 <#assign sourceCode = "">
81 <#assign cardArtImage = "">
82 <#assign productUrlHero = "">
83 <#assign product = "">
84 <#assign cardIndex = 0>
85 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
86 <#if (offerTypeList?seq_contains("101")) || (offerTypeList?seq_contains("103"))>
87 <#list consumerCards as card>
88 <#if (card.offerType=="101") || (card.offerType=="103")>
89 <#assign offerId = card.offerId>
90 <#assign sourceCode = card.sourceCode>
91 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
92 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
93
94 <#assign productUrlHero="consumer-edr">
95 <#assign product="Everyday Rewards+">
96 <#assign cardIndex = 3>
97 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&' + sourceCode)>
98 <#if (scrapedData?size > 0)>
99 <#list scrapedData as sItem>
100 <script>
101 console.log('Label: ${sItem.scrapedLabel!''}, Content: ${sItem.scrapedValue!''}');
102 </script>
103 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
104 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
105 <#break>
106 </#if>
107 </#list>
108 <script>
109 $(document).ready(function () {
110 var aprText = "${apr}";
111 console.log('aprText: ${aprText!''}');
112 if (aprText) {
113 $(".apr-full-text").html(aprText);
114 try {
115 var matches= aprText.match(/\d+(\.\d+)?%?/g);
116 var billing_cycle = matches[1];
117 var apr_min = apr_min = matches[2];
118 var apr_max = apr_max = matches[3];
119 //console.log('billing_cycle', billing_cycle);
120 //console.log('apr_min', apr_min);
121 //console.log('apr_max', apr_max);
122 if (billing_cycle) {
123 //console.log($(".scraped-billing-cycle"));
124 $(".scraped-billing-cycle").html(billing_cycle);
125 }
126 if (apr_min) {
127 $(".scraped-apr-min").html(apr_min);
128 }
129 if (apr_max) {
130 $('.scraped-apr-max').html(apr_max);
131 }
132
133 } catch (e) {
134 console.log(e);
135 }
136 }
137 });
138 </script>
139 </#if>
140 <script>
141 $(document).ready(function () {
142 $(".see-terms").replaceWith('<a href="${oadURL_TC}?step=display&offerId=${card.offerId}&locationCode=${lc}" target="_blank"><span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions</a>');
143 });
144 </script>
145 </#if>
146 </#list>
147 <#else>
148 <#assign displayedCard = consumerCards[0]>
149 <#assign offerId = displayedCard.offerId>
150 <#assign sourceCode = displayedCard.sourceCode>
151 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
152 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
153 <#if (displayedCard.offerType=="101" || displayedCard.offerType=="103")>
154 <#assign productUrlHero="consumer-edr">
155 <#assign product="Everyday Rewards+">
156 <#assign cardIndex = 3>
157 <#elseif (displayedCard.offerType=="104")>
158 <#assign productUrlHero = "max-cash">
159 <#assign product="Max Cash Preferred">
160 <#assign cardIndex = 0>
161 <#elseif (displayedCard.offerType=="115")>
162 <#assign productUrlHero = "secured">
163 <#assign product="Secured">
164 <#assign cardIndex = 2>
165 </#if>
166 </#if>
167 <#if product?? && product != "">
168 <#assign card_text = product + " Card">
169 </#if>
170 </#if>
171 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
172 <#if (offerTypeList?seq_contains("144")) >
173 <#list businessCards as card>
174 <#if (card.offerType=="128")>
175 <#assign offerId = card.offerId>
176 <#assign sourceCode = card.sourceCode>
177 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
178 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
179
180 <#assign productUrlHero="business-cash-preferred">
181 <#assign product="Business Cash Preferred">
182 <#assign cardIndex = 1>
183 </#if>
184 </#list>
185 <#else>
186 <#assign displayedCard = businessCards[0]>
187 <#assign offerId = displayedCard.offerId>
188 <#assign sourceCode = displayedCard.sourceCode>
189 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
190 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
191 <#if (displayedCard.offerType=="143")>
192 <#assign productUrlHero="business-real-rewards">
193 <#assign product="Business Real Rewards">
194 <#assign cardIndex = 2>
195 <#elseif (displayedCard.offerType=="128")>
196 <#assign productUrlHero="business-cash-preferred">
197 <#assign product="Business Cash Preferred">
198 <#assign cardIndex = 1>
199 <#elseif (displayedCard.offerType=="121")>
200 <#assign productUrlHero = "business-platinum">
201 <#assign product="Business">
202 <#assign cardIndex = 3>
203 </#if>
204 </#if>
205 <#if product?? && product != "">
206 <#assign card_text = product + " Card">
207 </#if>
208 </#if>
209
210
211 <div class="hero-container product-${productUrlHero} tier3-hero-${class.getData()}">
212 <div class="hero-main">
213 <div class="hero-main-container">
214 <div class="hero-main-offer">
215 <div class="offer-detail">
216 <div class="offer-detail-cardArt cardArtImg">
217 <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!''}"
218 class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
219 <#-- <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!'' }"
220 class="jn-img-responsive">-->
221 <p>${card_text!''}</p>
222 </div>
223 <div class="offer-detail-text text-color-default hide-desktop">
224 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
225 </div>
226 <a href="${oadURL}?locationCode=${lc}&offerId=${offerId}&preparerType=customer"
227 class="jn-button hide-desktop btn" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
228 >
229 ${productTitle.getSiblings() [cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
230 </a>
231 </div>
232 <div class="offer-header">
233 <div class="offer-text-top">
234 ${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}
235 </div>
236 <div class="offer-text-bottom hide-mobile">
237 <div class="offer-detail-text text-color-default ">
238 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
239 </div>
240 <a href="${oadURL}?locationCode=${lc}&offerId=${offerId}&preparerType=customer"
241 class="jn-button" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
242 >
243 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
244 </a>
245 </div>
246 </div>
247 </div>
248 </div>
249 </div>
250 </div>
251 <#else>
252 <#list fiCardsData as fib>
253
254 <#switch fib.offerType>
255 <#case "144">
256 <#assign cardIndex = 0 >
257 <#assign productUrlHero = "smart-business-rewards">
258 <#assign product="Smart Business Rewards">
259 <#break>
260 <#case "104">
261 <#assign cardIndex = 0 >
262 <#assign productUrlHero="max-cash">
263 <#assign product="Max Cash Preferred">
264 <#break>
265 <#case "128">
266 <#assign cardIndex = 1 >
267 <#assign productUrlHero = "business-cash-preferred">
268 <#assign product="Business Cash Preferred">
269 <#break>
270 <#case "108">
271 <#assign cardIndex = 1 >
272 <#assign productUrlHero = "consumer-platinum">
273 <#assign product="Platinum">
274 <#break>
275 <#case "109">
276 <#assign cardIndex = 1 >
277 <#assign productUrlHero = "consumer-platinum">
278 <#assign product="Platinum">
279 <#break>
280 <#case "143">
281 <#assign cardIndex = 2 >
282 <#assign productUrlHero = "business-real-rewards">
283 <#assign product="Business Real Rewards">
284 <#break>
285 <#case "101">
286 <#assign cardIndex = 3 >
287 <#assign productUrlHero = "consumer-edr">
288 <#assign product="Everyday Rewards+">
289 <#break>
290 <#case "141">
291 <#assign cardIndex = 4 >
292 <#assign productUrlHero = "college-real-rewards">
293 <#assign product = "College Real Rewards" >
294 <#break>
295 <#case "147">
296 <#assign cardIndex = 5 >
297 <#assign productUrlHero = "max-cash-secured">
298 <#assign product = "Max Cash Secured" >
299 <#break>
300 <#case "103">
301 <#assign cardIndex = 3 >
302 <#assign productUrlHero = "consumer-edr">
303 <#assign product="Everyday Rewards+">
304 <#break>
305 <#case "121">
306 <#assign cardIndex = 3 >
307 <#assign productUrlHero = "business-platinum">
308 <#assign product="Business">
309 <#break>
310 <#case "115">
311 <#assign cardIndex = 2 >
312 <#assign productUrlHero = "secured">
313 <#assign product="Secured">
314 <#break>
315 <#default>
316 </#switch>
317 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png">
318 <#assign cardArtImageAlt = cdnCardArtUrl + "/" + fib.filename + ".jpg">
319
320 <script>
321 console.log("offerType ${fib.offerType} productUrlHero ${productUrlHero}")
322 </script>
323
324
325 <#if fib.offerType == "104" && url?contains("max-cash-secured")>
326 <#-- For max cash securded card. so that max cash secured dose not get set to max cash header -->
327 <#elseif url?matches(".*/${productUrlHero}.*")>
328
329 <#if (fib.offerType=="108" || fib.offerType=="109" || fib.offerType == "121")>
330
331 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', '${fib.offerId}' + '&'+ '${fib.sourceCode}')>
332 <#if (scrapedData?size > 0)>
333 <#list scrapedData as sItem>
334 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
335 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
336 <#break>
337 </#if>
338
339 </#list>
340 <script>
341 </script>
342 <script>
343 $(document).ready(function () {
344 var aprText = "${apr}";
345 console.log('aprText',aprText);
346 if (aprText) {
347 $(".apr-full-text").html(aprText);
348 try {
349 var matches= aprText.match(/\d+(\.\d+)?%?/g);
350 var billing_cycle = matches[1];
351 var apr_min = apr_min = matches[2];
352 var apr_max = apr_max = matches[3];
353 //console.log('billing_cycle', billing_cycle);
354 //console.log('apr_min', apr_min);
355 //console.log('apr_max', apr_max);
356 if (billing_cycle) {
357 //console.log($(".scraped-billing-cycle"));
358 $(".scraped-billing-cycle").html(billing_cycle);
359 }
360 if (apr_min) {
361 $(".scraped-apr-min").html(apr_min);
362 }
363 if (apr_max) {
364 $('.scraped-apr-max').html(apr_max);
365 }
366
367 } catch (e) {
368 console.log(e);
369 }
370 }
371 });
372 </script>
373 </#if>
374 </#if>
375 <#if product?? && product != "">
376 <#assign card_text = product + " Card">
377 </#if>
378 <script>
379 console.log("offerType ${fib.offerType} productUrlHero ${productUrlHero}")
380 </script>
381 <div class="hero-container ${class.getData()}">
382 <div class="hero-main">
383 <div class="hero-main-container">
384 <div class="hero-main-offer">
385 <div class="offer-detail">
386 <div class="offer-detail-cardArt cardArtImg">
387 <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!''}"
388 onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'" class="jn-img-responsive">
389 <p>${card_text!''}</p>
390 </div>
391 <div class="offer-detail-text text-color-default hide-desktop">
392 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
393 <#-- allow for all except these url -->
394 <#if (!url?contains("business-real-rewards") && !url?contains("max-cash") && !url?contains("consumer-edr"))>
395 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank">
396 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
397 </a>
398 </#if>
399 <#-- Allow only for these url -->
400 <#if (url?contains("smart-business-rewards") || url?contains("business-real-rewards") || url?contains("max-cash") || url?contains("consumer-edr") || url?contains("business-cash-preferred"))>
401 <#if !url?contains("max-cash-secured")>
402 <a class="whiteLink" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' target="_blank" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
403 </#if>
404 </#if>
405 </div>
406 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
407 class="jn-button hide-desktop btn" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
408 >
409 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
410 </a>
411 </div>
412 <div class="offer-header">
413 <div class="offer-text-top">
414 ${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}
415 </div>
416 <div class="offer-text-bottom hide-mobile">
417 <div class="offer-detail-text text-color-default ">
418 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
419 <#-- allow for all except these url -->
420 <#if (!url?contains("business-real-rewards") && !url?contains("max-cash") && !url?contains("secured") && !url?contains("consumer-edr") && !url?contains("college-real-rewards") && !url?contains("business-cash-preferred"))>
421 <a class="whiteLink" href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank">
422 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
423 </a>
424 </#if>
425 </div>
426 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
427 class="jn-button" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}" >
428 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
429 </a>
430 <#-- Allow for these URLs-->
431 <#if (url?contains("smart-business-rewards") || url?contains("business-real-rewards") || url?contains("max-cash") || url?contains("consumer-edr") || url?contains("business-cash-preferred"))>
432 <#if !url?contains("max-cash-secured")>
433 <a class="whiteLink" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' target="_blank" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
434 </#if>
435 </#if>
436 </div>
437 </div>
438
439 </div>
440 </div>
441 </div>
442 </div>
443 <#break />
444 </#if>
445 </#list>
446
447 </#if>
448</#if>
449
450<script>
451 AUI().ready(function(){
452 //The below script is there to add vertical card art in UAT only so that QA has an easier time auditing. Note that the script only applies to FI SouthState (location code 20419) which is currently the only bank with vertical card art at the moment
453 var locationCodeParam = '${lc}';
454 var currentEnvironmentParam = '${currentEnvironment}';
455 if(locationCodeParam == '20419' && currentEnvironmentParam == 'uat'){
456 Array.prototype.slice.call(document.querySelectorAll('.cardArtImg')).map(function(e){e.firstElementChild.src = "https://39f6f821fa03de239594-9f1c16ccc3b26ce57656bb4af99947b6.ssl.cf2.rackcdn.com/f20cf80a-6aea-46ec-84fc-c2a6583773d9.png"})
457 }
458 });
459</script>
460<script>
461 // Makes the Header subtitle work if there is two lines of text
462 var consumerHeader = document.getElementsByClassName("landing-consumer")[0];
463 if(consumerHeader){
464 var consumerHeroContainer = consumerHeader.getElementsByClassName("hero-main-container")[0];
465 var consumerOfferHeader = consumerHeader.getElementsByClassName("offer-subtitle")[0];
466
467 if(consumerOfferHeader.innerText.length >= 31 && consumerOfferHeader.innerText.length < 48){
468 //not two lines but the header on tablet gose outside of allocated space.
469 consumerHeroContainer.style.background = "linear-gradient(0deg, #f8f8f8 60%, ${backgroundColor!'#173989'} 60%)";
470 } else if (consumerOfferHeader.innerText.length >= 48){
471 //two lines
472 document.querySelector('.offer-text-top').style.marginTop = '0px';
473 document.querySelector('.offer-text-bottom').style.marginTop = '8px';
474 //prevent button and text going into blue section
475 document.querySelector('.landing-consumer .offer-text-top h1').style.minHeight = "120px";
476 consumerHeroContainer.style.background = "linear-gradient(0deg, #f8f8f8 55%, ${backgroundColor!'#173989'} 55%)";
477 }
478 }
479
480 var buisnessHeader = document.getElementsByClassName("tier3-hero-landing-business")[0];
481 if(buisnessHeader) {
482 var buisnessHeroContainer = buisnessHeader.getElementsByClassName("hero-main-container")[0];
483 var buisnessOfferHeader = buisnessHeader.getElementsByClassName("offer-subtitle")[0];
484
485 if(buisnessOfferHeader.innerText.length >= 31 && buisnessOfferHeader.innerText.length < 48){
486 //not two lines but the header on tablet gose outside of allocated space.
487 buisnessHeroContainer.style.background = "linear-gradient(180deg, rgba(255,255,255,1) 40%, ${backgroundColor!'#173989'} 40%)";
488 } else if (buisnessOfferHeader.innerText.length >= 48){
489 //two lines
490 buisnessHeroContainer.style.background = "linear-gradient(180deg, rgba(255,255,255,1) 45%, ${backgroundColor!'#173989'} 45%)";
491 }
492 }
493</script>
Web Content Display
An error occurred while processing the template.
Error on line 40, column 1 in 10154#10192#153417688 clientProfileList?first is undefined. It cannot be assigned to clientProfile
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<#assign currentEnvironment = 'prod' >
8
9<#assign lc= qstringmap["ecdma-lc"]?first>
10<#assign prefix = "00000" >
11<#assign lcWithPrefix = prefix + lc >
12<#assign withPrefixLength = lcWithPrefix?length >
13<#assign startHere = withPrefixLength - 5>
14<#assign lc = lcWithPrefix?substring(startHere)>
15
16
17<#if qstringmap["ecid"]?has_content>
18 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
19<#else>
20 <#assign ecidExt="">
21</#if>
22<#if oadURL?contains("uat-")>
23 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
24 <#assign currentEnvironment = 'uat' >
25<#else>
26 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
27</#if>
28 <script>
29 //console.log('%ccurrentEnvironment: ', 'font-weight: bold; color: green;', '${currentEnvironment}');
30 </script>
31<#assign campaignId = "" >
32<#assign ecidExt="">
33<#if qstringmap["ecid"]?has_content>
34 <#assign campaignId = qstringmap["ecid"]?first >
35 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
36</#if>
37
38<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
39<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
40<#assign clientProfile = clientProfileList?first>
41<#assign partnerName = clientProfile.getMarketingNameLong()>
42<#assign pbu = clientProfile.getPbu()>
43<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
44<#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
45
46<#assign fiCardsData=utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu + '&'+subbu)>
47<#assign temp = []>
48<#assign consumerCards = []>
49<#assign businessCards = []>
50<#assign offerTypeList = []>
51<#assign index = 0>
52<#assign consumerOfferTypes = ["101", "103", "108", "109", "115", "104", "141", "147"]>
53<#assign businessOfferTypes = ["128", "123", "121", "143", "144"]>
54<#list fiCardsData as fib>
55 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
56 <#assign offerTypeList = offerTypeList + [fib.offerType]>
57 <#if (consumerOfferTypes?seq_contains(fib.offerType))>
58 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
59 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
60 <#assign businessCards = businessCards + fiCardsData[index..index]>
61 </#if>
62 <#assign temp = temp + fiCardsData[index..index]>
63 </#if>
64 <#assign index = index + 1>
65</#list>
66
67<#assign fiCardsData = temp>
68 <script>
69 //console.log("fi card data count", ${fiCardsData?size})
70</script>
71
72<#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
73<#if (clientdata?size > 0)>
74 <#assign backgroundColor = clientdata[0].backgroundHexColor>
75</#if>
76
77<#if (fiCardsData?size > 0)>
78 <#if url?contains("index")>
79 <#assign offerId = "">
80 <#assign sourceCode = "">
81 <#assign cardArtImage = "">
82 <#assign productUrlHero = "">
83 <#assign product = "">
84 <#assign cardIndex = 0>
85 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
86 <#if (offerTypeList?seq_contains("101")) || (offerTypeList?seq_contains("103"))>
87 <#list consumerCards as card>
88 <#if (card.offerType=="101") || (card.offerType=="103")>
89 <#assign offerId = card.offerId>
90 <#assign sourceCode = card.sourceCode>
91 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
92 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
93
94 <#assign productUrlHero="consumer-edr">
95 <#assign product="Everyday Rewards+">
96 <#assign cardIndex = 3>
97 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&' + sourceCode)>
98 <#if (scrapedData?size > 0)>
99 <#list scrapedData as sItem>
100 <script>
101 console.log('Label: ${sItem.scrapedLabel!''}, Content: ${sItem.scrapedValue!''}');
102 </script>
103 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
104 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
105 <#break>
106 </#if>
107 </#list>
108 <script>
109 $(document).ready(function () {
110 var aprText = "${apr}";
111 console.log('aprText: ${aprText!''}');
112 if (aprText) {
113 $(".apr-full-text").html(aprText);
114 try {
115 var matches= aprText.match(/\d+(\.\d+)?%?/g);
116 var billing_cycle = matches[1];
117 var apr_min = apr_min = matches[2];
118 var apr_max = apr_max = matches[3];
119 //console.log('billing_cycle', billing_cycle);
120 //console.log('apr_min', apr_min);
121 //console.log('apr_max', apr_max);
122 if (billing_cycle) {
123 //console.log($(".scraped-billing-cycle"));
124 $(".scraped-billing-cycle").html(billing_cycle);
125 }
126 if (apr_min) {
127 $(".scraped-apr-min").html(apr_min);
128 }
129 if (apr_max) {
130 $('.scraped-apr-max').html(apr_max);
131 }
132
133 } catch (e) {
134 console.log(e);
135 }
136 }
137 });
138 </script>
139 </#if>
140 <script>
141 $(document).ready(function () {
142 $(".see-terms").replaceWith('<a href="${oadURL_TC}?step=display&offerId=${card.offerId}&locationCode=${lc}" target="_blank"><span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions</a>');
143 });
144 </script>
145 </#if>
146 </#list>
147 <#else>
148 <#assign displayedCard = consumerCards[0]>
149 <#assign offerId = displayedCard.offerId>
150 <#assign sourceCode = displayedCard.sourceCode>
151 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
152 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
153 <#if (displayedCard.offerType=="101" || displayedCard.offerType=="103")>
154 <#assign productUrlHero="consumer-edr">
155 <#assign product="Everyday Rewards+">
156 <#assign cardIndex = 3>
157 <#elseif (displayedCard.offerType=="104")>
158 <#assign productUrlHero = "max-cash">
159 <#assign product="Max Cash Preferred">
160 <#assign cardIndex = 0>
161 <#elseif (displayedCard.offerType=="115")>
162 <#assign productUrlHero = "secured">
163 <#assign product="Secured">
164 <#assign cardIndex = 2>
165 </#if>
166 </#if>
167 <#if product?? && product != "">
168 <#assign card_text = product + " Card">
169 </#if>
170 </#if>
171 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
172 <#if (offerTypeList?seq_contains("144")) >
173 <#list businessCards as card>
174 <#if (card.offerType=="128")>
175 <#assign offerId = card.offerId>
176 <#assign sourceCode = card.sourceCode>
177 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
178 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
179
180 <#assign productUrlHero="business-cash-preferred">
181 <#assign product="Business Cash Preferred">
182 <#assign cardIndex = 1>
183 </#if>
184 </#list>
185 <#else>
186 <#assign displayedCard = businessCards[0]>
187 <#assign offerId = displayedCard.offerId>
188 <#assign sourceCode = displayedCard.sourceCode>
189 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
190 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
191 <#if (displayedCard.offerType=="143")>
192 <#assign productUrlHero="business-real-rewards">
193 <#assign product="Business Real Rewards">
194 <#assign cardIndex = 2>
195 <#elseif (displayedCard.offerType=="128")>
196 <#assign productUrlHero="business-cash-preferred">
197 <#assign product="Business Cash Preferred">
198 <#assign cardIndex = 1>
199 <#elseif (displayedCard.offerType=="121")>
200 <#assign productUrlHero = "business-platinum">
201 <#assign product="Business">
202 <#assign cardIndex = 3>
203 </#if>
204 </#if>
205 <#if product?? && product != "">
206 <#assign card_text = product + " Card">
207 </#if>
208 </#if>
209
210
211 <div class="hero-container product-${productUrlHero} tier3-hero-${class.getData()}">
212 <div class="hero-main">
213 <div class="hero-main-container">
214 <div class="hero-main-offer">
215 <div class="offer-detail">
216 <div class="offer-detail-cardArt cardArtImg">
217 <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!''}"
218 class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
219 <#-- <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!'' }"
220 class="jn-img-responsive">-->
221 <p>${card_text!''}</p>
222 </div>
223 <div class="offer-detail-text text-color-default hide-desktop">
224 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
225 </div>
226 <a href="${oadURL}?locationCode=${lc}&offerId=${offerId}&preparerType=customer"
227 class="jn-button hide-desktop btn" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
228 >
229 ${productTitle.getSiblings() [cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
230 </a>
231 </div>
232 <div class="offer-header">
233 <div class="offer-text-top">
234 ${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}
235 </div>
236 <div class="offer-text-bottom hide-mobile">
237 <div class="offer-detail-text text-color-default ">
238 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
239 </div>
240 <a href="${oadURL}?locationCode=${lc}&offerId=${offerId}&preparerType=customer"
241 class="jn-button" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
242 >
243 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
244 </a>
245 </div>
246 </div>
247 </div>
248 </div>
249 </div>
250 </div>
251 <#else>
252 <#list fiCardsData as fib>
253
254 <#switch fib.offerType>
255 <#case "144">
256 <#assign cardIndex = 0 >
257 <#assign productUrlHero = "smart-business-rewards">
258 <#assign product="Smart Business Rewards">
259 <#break>
260 <#case "104">
261 <#assign cardIndex = 0 >
262 <#assign productUrlHero="max-cash">
263 <#assign product="Max Cash Preferred">
264 <#break>
265 <#case "128">
266 <#assign cardIndex = 1 >
267 <#assign productUrlHero = "business-cash-preferred">
268 <#assign product="Business Cash Preferred">
269 <#break>
270 <#case "108">
271 <#assign cardIndex = 1 >
272 <#assign productUrlHero = "consumer-platinum">
273 <#assign product="Platinum">
274 <#break>
275 <#case "109">
276 <#assign cardIndex = 1 >
277 <#assign productUrlHero = "consumer-platinum">
278 <#assign product="Platinum">
279 <#break>
280 <#case "143">
281 <#assign cardIndex = 2 >
282 <#assign productUrlHero = "business-real-rewards">
283 <#assign product="Business Real Rewards">
284 <#break>
285 <#case "101">
286 <#assign cardIndex = 3 >
287 <#assign productUrlHero = "consumer-edr">
288 <#assign product="Everyday Rewards+">
289 <#break>
290 <#case "141">
291 <#assign cardIndex = 4 >
292 <#assign productUrlHero = "college-real-rewards">
293 <#assign product = "College Real Rewards" >
294 <#break>
295 <#case "147">
296 <#assign cardIndex = 5 >
297 <#assign productUrlHero = "max-cash-secured">
298 <#assign product = "Max Cash Secured" >
299 <#break>
300 <#case "103">
301 <#assign cardIndex = 3 >
302 <#assign productUrlHero = "consumer-edr">
303 <#assign product="Everyday Rewards+">
304 <#break>
305 <#case "121">
306 <#assign cardIndex = 3 >
307 <#assign productUrlHero = "business-platinum">
308 <#assign product="Business">
309 <#break>
310 <#case "115">
311 <#assign cardIndex = 2 >
312 <#assign productUrlHero = "secured">
313 <#assign product="Secured">
314 <#break>
315 <#default>
316 </#switch>
317 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png">
318 <#assign cardArtImageAlt = cdnCardArtUrl + "/" + fib.filename + ".jpg">
319
320 <script>
321 console.log("offerType ${fib.offerType} productUrlHero ${productUrlHero}")
322 </script>
323
324
325 <#if fib.offerType == "104" && url?contains("max-cash-secured")>
326 <#-- For max cash securded card. so that max cash secured dose not get set to max cash header -->
327 <#elseif url?matches(".*/${productUrlHero}.*")>
328
329 <#if (fib.offerType=="108" || fib.offerType=="109" || fib.offerType == "121")>
330
331 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', '${fib.offerId}' + '&'+ '${fib.sourceCode}')>
332 <#if (scrapedData?size > 0)>
333 <#list scrapedData as sItem>
334 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
335 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
336 <#break>
337 </#if>
338
339 </#list>
340 <script>
341 </script>
342 <script>
343 $(document).ready(function () {
344 var aprText = "${apr}";
345 console.log('aprText',aprText);
346 if (aprText) {
347 $(".apr-full-text").html(aprText);
348 try {
349 var matches= aprText.match(/\d+(\.\d+)?%?/g);
350 var billing_cycle = matches[1];
351 var apr_min = apr_min = matches[2];
352 var apr_max = apr_max = matches[3];
353 //console.log('billing_cycle', billing_cycle);
354 //console.log('apr_min', apr_min);
355 //console.log('apr_max', apr_max);
356 if (billing_cycle) {
357 //console.log($(".scraped-billing-cycle"));
358 $(".scraped-billing-cycle").html(billing_cycle);
359 }
360 if (apr_min) {
361 $(".scraped-apr-min").html(apr_min);
362 }
363 if (apr_max) {
364 $('.scraped-apr-max').html(apr_max);
365 }
366
367 } catch (e) {
368 console.log(e);
369 }
370 }
371 });
372 </script>
373 </#if>
374 </#if>
375 <#if product?? && product != "">
376 <#assign card_text = product + " Card">
377 </#if>
378 <script>
379 console.log("offerType ${fib.offerType} productUrlHero ${productUrlHero}")
380 </script>
381 <div class="hero-container ${class.getData()}">
382 <div class="hero-main">
383 <div class="hero-main-container">
384 <div class="hero-main-offer">
385 <div class="offer-detail">
386 <div class="offer-detail-cardArt cardArtImg">
387 <img src="${cardArtImage!''}" alt="${partnerName!''}" title="${partnerName!''}"
388 onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'" class="jn-img-responsive">
389 <p>${card_text!''}</p>
390 </div>
391 <div class="offer-detail-text text-color-default hide-desktop">
392 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
393 <#-- allow for all except these url -->
394 <#if (!url?contains("business-real-rewards") && !url?contains("max-cash") && !url?contains("consumer-edr"))>
395 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank">
396 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
397 </a>
398 </#if>
399 <#-- Allow only for these url -->
400 <#if (url?contains("smart-business-rewards") || url?contains("business-real-rewards") || url?contains("max-cash") || url?contains("consumer-edr") || url?contains("business-cash-preferred"))>
401 <#if !url?contains("max-cash-secured")>
402 <a class="whiteLink" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' target="_blank" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
403 </#if>
404 </#if>
405 </div>
406 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
407 class="jn-button hide-desktop btn" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}"
408 >
409 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
410 </a>
411 </div>
412 <div class="offer-header">
413 <div class="offer-text-top">
414 ${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}
415 </div>
416 <div class="offer-text-bottom hide-mobile">
417 <div class="offer-detail-text text-color-default ">
418 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}
419 <#-- allow for all except these url -->
420 <#if (!url?contains("business-real-rewards") && !url?contains("max-cash") && !url?contains("secured") && !url?contains("consumer-edr") && !url?contains("college-real-rewards") && !url?contains("business-cash-preferred"))>
421 <a class="whiteLink" href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank">
422 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions
423 </a>
424 </#if>
425 </div>
426 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
427 class="jn-button" data-button-name="cta-button-top" data-product-name="${productUrlHero!''}" >
428 ${productTitle.getSiblings()[cardIndex].ctaText.getData()}<span class="screen-reader-only"> for ${partnerName!''} ${product!''} Credit Card </span>
429 </a>
430 <#-- Allow for these URLs-->
431 <#if (url?contains("smart-business-rewards") || url?contains("business-real-rewards") || url?contains("max-cash") || url?contains("consumer-edr") || url?contains("business-cash-preferred"))>
432 <#if !url?contains("max-cash-secured")>
433 <a class="whiteLink" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' target="_blank" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
434 </#if>
435 </#if>
436 </div>
437 </div>
438
439 </div>
440 </div>
441 </div>
442 </div>
443 <#break />
444 </#if>
445 </#list>
446
447 </#if>
448</#if>
449
450<script>
451 AUI().ready(function(){
452 //The below script is there to add vertical card art in UAT only so that QA has an easier time auditing. Note that the script only applies to FI SouthState (location code 20419) which is currently the only bank with vertical card art at the moment
453 var locationCodeParam = '${lc}';
454 var currentEnvironmentParam = '${currentEnvironment}';
455 if(locationCodeParam == '20419' && currentEnvironmentParam == 'uat'){
456 Array.prototype.slice.call(document.querySelectorAll('.cardArtImg')).map(function(e){e.firstElementChild.src = "https://39f6f821fa03de239594-9f1c16ccc3b26ce57656bb4af99947b6.ssl.cf2.rackcdn.com/f20cf80a-6aea-46ec-84fc-c2a6583773d9.png"})
457 }
458 });
459</script>
460<script>
461 // Makes the Header subtitle work if there is two lines of text
462 var consumerHeader = document.getElementsByClassName("landing-consumer")[0];
463 if(consumerHeader){
464 var consumerHeroContainer = consumerHeader.getElementsByClassName("hero-main-container")[0];
465 var consumerOfferHeader = consumerHeader.getElementsByClassName("offer-subtitle")[0];
466
467 if(consumerOfferHeader.innerText.length >= 31 && consumerOfferHeader.innerText.length < 48){
468 //not two lines but the header on tablet gose outside of allocated space.
469 consumerHeroContainer.style.background = "linear-gradient(0deg, #f8f8f8 60%, ${backgroundColor!'#173989'} 60%)";
470 } else if (consumerOfferHeader.innerText.length >= 48){
471 //two lines
472 document.querySelector('.offer-text-top').style.marginTop = '0px';
473 document.querySelector('.offer-text-bottom').style.marginTop = '8px';
474 //prevent button and text going into blue section
475 document.querySelector('.landing-consumer .offer-text-top h1').style.minHeight = "120px";
476 consumerHeroContainer.style.background = "linear-gradient(0deg, #f8f8f8 55%, ${backgroundColor!'#173989'} 55%)";
477 }
478 }
479
480 var buisnessHeader = document.getElementsByClassName("tier3-hero-landing-business")[0];
481 if(buisnessHeader) {
482 var buisnessHeroContainer = buisnessHeader.getElementsByClassName("hero-main-container")[0];
483 var buisnessOfferHeader = buisnessHeader.getElementsByClassName("offer-subtitle")[0];
484
485 if(buisnessOfferHeader.innerText.length >= 31 && buisnessOfferHeader.innerText.length < 48){
486 //not two lines but the header on tablet gose outside of allocated space.
487 buisnessHeroContainer.style.background = "linear-gradient(180deg, rgba(255,255,255,1) 40%, ${backgroundColor!'#173989'} 40%)";
488 } else if (buisnessOfferHeader.innerText.length >= 48){
489 //two lines
490 buisnessHeroContainer.style.background = "linear-gradient(180deg, rgba(255,255,255,1) 45%, ${backgroundColor!'#173989'} 45%)";
491 }
492 }
493</script>
Web Content Display
An error occurred while processing the template.
Error on line 36, column 1 in 10154#10192#155407401 clientProfileList?first is undefined. It cannot be assigned to clientProfile
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 environment = url?replace('/index.*','','r')>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7
8<script>
9var currentUrl = '${url}';
10
11</script>
12
13<#assign lc= qstringmap["ecdma-lc"]?first>
14<#assign prefix = "00000" >
15<#assign lcWithPrefix = prefix + lc >
16<#assign withPrefixLength = lcWithPrefix?length >
17<#assign startHere = withPrefixLength - 5>
18<#assign lc = lcWithPrefix?substring(startHere)>
19
20
21<#if qstringmap["ecid"]?has_content>
22 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
23<#else>
24 <#assign ecidExt="">
25</#if>
26
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
33
34<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
35<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
36<#assign clientProfile = clientProfileList?first>
37<#assign partnerName = clientProfile.getMarketingNameLong()>
38<#assign pbu = clientProfile.getPbu()>
39<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
40<script>
41 //console.log('pbu:', "${pbu}", 'subbu:', '${subbu}');
42</script>
43<#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
44
45<#if qstringmap["ecid"]?has_content>
46 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
47 <#assign campaignId = qstringmap["ecid"]?first >
48<#else>
49 <#assign ecidExt="">
50 <#assign campaignId = "" >
51</#if>
52
53<#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu +'&'+subbu)>
54<#-- filter duplicated cards-->
55<#assign consumerCards = []>
56<#assign businessCards = []>
57<#assign offerTypeList = []>
58<#assign consumerOfferTypes =['104', '101', '108', '109', '115', '141','147']>
59<#assign businessOfferTypes =['144', '128', '143', '121', '123']>
60<#assign index = 0>
61<#list fiCardsData as fib>
62 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
63 <#assign offerTypeList = offerTypeList + [fib.offerType]>
64 <#if consumerOfferTypes?seq_contains(fib.offerType)>
65 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
66 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
67 <#assign businessCards = businessCards + fiCardsData[index..index]>
68 </#if>
69 </#if>
70 <#assign index = index + 1>
71</#list>
72
73<#if ((consumerCards?size > 0) || (businessCards?size > 0))>
74 <div class="content-container content-container-main jn-consumer-content">
75 <#if ((consumerCards?size > 0) && (businessCards?size > 0))>
76 <nav class="jn-primary-nav two-tabs">
77 <ul>
78 <li title="${partnerName!''} - Personal products">
79 <a href="#" class="tab-nav active" id="consumerTab"><span>Personal</span></a>
80 </li>
81 <li title="${partnerName!''} - Business products">
82 <a href="#" class="tab-nav" id="businessTab"><span>Business</span></a>
83 </li>
84 </ul>
85 </nav>
86 <#else>
87 <#if (consumerCards?size > 0)>
88 <nav class="jn-primary-nav" title="${partnerName!''} - Personal products">
89 <ul>
90 <li>
91 <p class="tab-nav" id="consumerTab"><span>Personal</span></p>
92 </li>
93 </ul>
94 </nav>
95 </#if>
96 <#if (businessCards?size > 0)>
97 <nav class="jn-primary-nav" title="${partnerName!''} - Business products">
98 <ul>
99 <li>
100 <p class="tab-nav" id="businessTab"><span>Business</span></p>
101 </li>
102 </ul>
103 </nav>
104 </#if>
105 </#if>
106 <#if (consumerCards?size > 0)>
107 <div class="tab-more-wrapper">
108 <div class="jn-consumer-content-wrapper jn-tab-content active transition-start" data-id="consumerTab" title="${partnerName!''} - Personal products">
109
110 <#list consumerCards as fib>
111 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png" >
112 <#assign cardArtImageAlt = cdnCardArtUrl + "/" + fib.filename + ".jpg" >
113 <#switch fib.offerType>
114 <#case "101">
115 <#assign productName = "consumer-edr">
116 <#assign productUrl = "202302/consumer-edr">
117 <#assign product="Everyday Rewards+">
118 <#assign cardIndex = 0>
119 <#break>
120 <#case "108">
121 <#assign productName = "consumer-platinum">
122 <#assign productUrl = "202208/consumer-platinum">
123 <#assign product="Platinum">
124 <#assign cardIndex = 2>
125 <#break>
126 <#case "109">
127 <#assign productName = "consumer-platinum">
128 <#assign productUrl = "202208/consumer-platinum">
129 <#assign product="Platinum">
130 <#assign cardIndex = 2>
131 <#break>
132 <#case "115">
133 <#assign productName = "secured">
134 <#assign productUrl = "secured">
135 <#assign product="Secured">
136 <#assign cardIndex = 5>
137 <#break>
138 <#case "104">
139 <#assign productName = "max-cash">
140 <#assign productUrl = "max-cash">
141 <#assign product="Max Cash Preferred">
142 <#assign cardIndex = 1>
143 <#break>
144 <#case "147">
145 <#assign productName = "max-cash-secured">
146 <#assign productUrl = "max-cash-secured">
147 <#assign product="Max Cash Secured">
148 <#assign cardIndex = 4>
149 <#break>
150 <#case "141">
151 <#assign productName = "college-real-rewards">
152 <#assign productUrl = "college-real-rewards">
153 <#assign product="College Real Rewards">
154 <#assign cardIndex = 3>
155 <#break>
156 <#default>
157 </#switch>
158 <#assign titleText = consumerTitle.getSiblings()[cardIndex].Title.getData()>
159 <#assign titleText = titleText?replace('<[^>]+>','','r')>
160 <#assign APR="">
161 <#assign AMF="">
162 <#assign BAL="">
163 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
164 <#if (scrapedData?size > 0)>
165 <#list scrapedData as sItem>
166 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
167 <#assign APR = sItem.scrapedValue>
168 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
169 <#assign AMF = sItem.scrapedValue>
170 <#elseif ((sItem.scrapedLabel?contains("APR for Balance Transfers")) && (sItem.scrapedValue?has_content)) >
171 <#assign BAL = sItem.scrapedValue>
172 </#if>
173 <#if (APR?has_content && AMF?has_content && BAL?has_content)>
174 <#break>
175 </#if>
176 </#list>
177 </#if>
178 <script>
179 // console.log("Product: ${product}, offerType: ${fib.offerType}, sourceCode ${fib.sourceCode}, offerId: ${fib.offerId}");
180 // console.log(`srcraped data: ${APR} `);
181 </script>
182 <div class="jn-consumer-item item-${fib.offerType}" title="${partnerName!''} ${product!''} Credit Card">
183 <div class="consumer-card-heading hide-desktop">
184 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
185 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
186 </div>
187 <div class="jn-consumer-card-image">
188 <img src="${cardArtImage!''}" alt="${partnerName!''} ${product!''} Card" class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
189 <#if (fib.offerType=="101" || fib.offerType=="104")>
190 <a class="reward-calculator-link" target="_blank" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' class="whiteLink" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
191 </#if>
192 <#if consumerTitle.getSiblings()[cardIndex].cardArtDescription?has_content>
193 <p class="tier3-tabs-card-art-description">${consumerTitle.getSiblings()[cardIndex].cardArtDescription.getData()}</p>
194 </#if>
195 </div>
196
197 <div class="jn-consumer-card-info">
198 <div class="consumer-card-heading hide-mobile">
199 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
200 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
201 </div>
202 <div class="jn-additional">
203 <ul class="${fib.offerType}">
204 <#if (fib.offerType == "104")>
205 <li class="${fib.offerType}">
206 <p>
207 <strong>APR for Purchases: </strong>
208 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
209 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
210 </a>
211 </p>
212 </li>
213 <li class="${fib.offerType}">
214 <p>
215 <strong>Intro APR<sup>*</sup> for Balance Transfers: </strong>
216 ${BAL!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
217 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
218 </a>
219 </p>
220 </li>
221 <#elseif (fib.offerType == "115")>
222 <li class="${fib.offerType}">
223 <p>
224 <strong>APR for Purchases and Balance Transfers: </strong>
225 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
226 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
227 </a>
228 </p>
229 </li>
230 <#elseif (fib.offerType == "101")>
231 <li class="${fib.offerType}">
232 <p>
233 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
234 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
235 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
236 </a>
237 </p>
238 </li>
239 <#elseif (fib.offerType == "147")>
240 <li class="${fib.offerType}">
241 <p>
242 <strong>APR for Purchases and Balance Transfers: </strong>
243 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
244 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
245 </a>
246 </p>
247 </li>
248 <#else>
249 <li class="${fib.offerType}">
250 <p>
251 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
252 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank">
253 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
254 </a>
255 </p>
256 </li>
257 </#if>
258
259 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
260 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
261 <li>${marketingInfo.getData()}</li>
262 </#list>
263 </#if>
264 <li>
265 <p>Annual Fee: ${AMF!''}
266 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link">
267 <span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.
268 </a>
269 </p>
270 </li>
271 </ul>
272 </div>
273 <ul class="actions">
274 <li>
275 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
276 class="applyNowLink" data-button-name="apply-now-link" data-product-name="${productName!''}"
277 >
278 ${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}<span class="screen-reader-only">for ${partnerName!''} ${product!''} Card </span>
279 </a>
280 </li>
281 <li><a href="${environment}/${productUrl}?ecdma-lc=${lc}${ecidExt}">${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}<span class="screen-reader-only"> about ${partnerName!''} ${product!''} Card </span></a>
282 </li>
283 </ul>
284 </div>
285 </div>
286 </#list>
287 </div>
288 </div>
289 </#if>
290 <#if (businessCards?size > 0)>
291 <div class="tab-more-wrapper">
292 <div class="jn-consumer-content-wrapper jn-tab-content transition-start" data-id="businessTab" title="${partnerName!''} - Business products">
293
294 <#list businessCards as fib>
295 <#assign cardArtImage = cdnCardArtUrl + "/"+fib.filename+".png">
296 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">
297 <#switch fib.offerType>
298 <#case "128">
299 <#assign productName = "business-cash-preferred">
300 <#assign productUrl = "business-cash-preferred">
301 <#assign product="Business Cash Preferred">
302 <#assign cardIndex = 6>
303 <#break>
304 <#case "121">
305 <#assign productName = "business-platinum">
306 <#assign productUrl = "202208/business-platinum">
307 <#assign product="Business Card">
308 <#assign cardIndex = 7>
309 <#break>
310 <#case "144">
311 <#assign productName = "smart-business-rewards">
312 <#assign productUrl = "smart-business-rewards">
313 <#assign product="Smart Business Rewards">
314 <#assign cardIndex = 8>
315 <#break>
316 <#case "143">
317 <#assign productName = "business-real-rewards">
318 <#assign productUrl = "business-real-rewards">
319 <#assign product="Business Real Rewards">
320 <#assign cardIndex = 9>
321 <#break>
322
323 <#default>
324 </#switch>
325
326 <#assign APR="">
327 <#assign AMF="">
328 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
329 <#if (scrapedData?size > 0)>
330 <#list scrapedData as sItem>
331 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
332 <#assign APR = sItem.scrapedValue>
333 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
334 <#assign AMF = sItem.scrapedValue>
335 </#if>
336 <#if (APR?has_content && AMF?has_content)>
337 <#break>
338 </#if>
339 </#list>
340 </#if>
341 <script>
342 // console.log("Product: ${product}, offerType: ${fib.offerType}, sourceCode ${fib.sourceCode}, offerId: ${fib.offerId}");
343 // console.log(`srcraped data: ${APR} `);
344 </script>
345 <div class="jn-consumer-item" title="${partnerName!''} ${product!''} Credit Card">
346 <div class="consumer-card-heading hide-desktop">
347 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
348 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
349 </div>
350 <div class="jn-consumer-card-image">
351
352 <img
353 src="${cardArtImage!''}"
354 alt="${partnerName!''} ${product!''} Card"
355 class="jn-img-responsive"
356 onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'"
357 >
358 <#if (fib.offerType=="144" ||fib.offerType=="143" || fib.offerType=="128")>
359 <a class="reward-calculator-link" target="_blank" onclick='ga("send", "event", "click", "Rewards Calculator", "Outbound Link");' class="whiteLink" href="http://www.myaccountbenefits.com/rewards-calculator?ecdma-lc=${lc}">Calculate Rewards</a>
360 </#if>
361 <#if consumerTitle.getSiblings()[cardIndex].cardArtDescription?has_content>
362 <p class="tier3-tabs-card-art-description">${consumerTitle.getSiblings()[cardIndex].cardArtDescription.getData()}</p>
363 </#if>
364 </div>
365 <div class="jn-consumer-card-info">
366 <div class="consumer-card-heading hide-mobile">
367 <div class="consumer-card-heading__subheading">${consumerTitle.getSiblings()[cardIndex].Title.getData()}</div>
368 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
369 </div>
370 <div class="jn-additional">
371 <ul>
372 <#if (fib.offerType == "144")>
373 <li>
374 <p>
375 <strong>APR for Purchases and Balance Transfers: </strong>
376 ${APR!''}
377 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link"><span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.</a>
378 </p>
379 </li>
380 <#else>
381 <li>
382 <p>
383 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
384 ${APR!''}
385 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link"><span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.</a>
386 </p>
387 </li>
388 </#if>
389 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
390 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
391 <li>${marketingInfo.getData()}</li>
392 </#list>
393 </#if>
394 <li><p>Annual Fee: ${AMF!''} <a
395 href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc}" target="_blank" class="t_c_link"><span class="screen-reader-only">${partnerName!''} ${product!''} Card </span>See terms & conditions.</a></p>
396 </li>
397 </ul>
398 </div>
399 <ul class="actions">
400 <li>
401 <a href="${oadURL}?locationCode=${lc}&offerId=${fib.offerId}&preparerType=customer"
402 class="applyNowLink" data-button-name="apply-now-link" data-product-name="${productName!''}"
403 >
404 ${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}<span class="screen-reader-only">for ${partnerName!''} ${product!''} Card </span>
405 </a>
406 </li>
407 <li><a href="${environment}/${productUrl}?ecdma-lc=${lc}${ecidExt}">${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}<span class="screen-reader-only"> about ${partnerName!''} ${product!''} Card </span></a></li>
408 </ul>
409 </div>
410 </div>
411
412 </#list>
413 </div>
414 </div>
415 </#if>
416 </div>
417
418 <script>
419 document.addEventListener('DOMContentLoaded', function() {
420 var tabs=$('.tab-nav');
421 var consumerSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="consumerTab"]';
422 var businessSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="businessTab"]';
423 var screenWidthMobile = 768;
424 var screenWidth = window.innerWidth;
425 var heroCardImgs = document.querySelectorAll('.jn-consumer-card-image img, .cardArtImg img');
426 for (var index = 0; index < heroCardImgs.length; index++) {
427 var heroCardImg = heroCardImgs[index];
428 var heroCardSrc = heroCardImg.getAttribute("src");
429 if(heroCardSrc != "") {
430 resizeImg(heroCardImg);
431 }
432 }
433
434 if (tabs.length == 1) {
435 $(tabs).parent().css('margin', '0');
436 if ($(consumerSelector).length > 0) {
437 hideHeroAndDisclaimer('business');
438 showHeroAndDisclaimer('consumer');
439 changeCardLayout(consumerSelector);
440 renumberFootnote("consumer");
441 createMetaTag("consumer");
442 }
443 if ($(businessSelector).length > 0) {
444 $(businessSelector).addClass('active');
445 hideHeroAndDisclaimer('consumer');
446 showHeroAndDisclaimer('business');
447 changeCardLayout(businessSelector);
448 renumberFootnote("business");
449 createMetaTag("business");
450 }
451 }
452 if (tabs.length == 2) {
453 renumberFootnote("consumer");
454 renumberFootnote("business");
455 createMetaTag("consumer");
456
457 if ($(consumerSelector + ' .jn-consumer-item').length < 3) {
458 changeCardLayout(consumerSelector);
459 }
460 if ($(businessSelector + ' .jn-consumer-item').length < 3) {
461 changeCardLayout(businessSelector);
462 }
463
464 var tabsNav = document.querySelectorAll('.tab-nav');
465 togglePrimaryNav(tabsNav);
466
467 if(window.location.href.indexOf('#business') > -1 ) {
468 //console.log('we are on a business url index page bro');
469 $(consumerSelector).removeClass('active');
470 $(businessSelector).addClass('active');
471 $('#consumerTab').removeClass('active');
472 $('#businessTab').addClass('active');
473 hideHeroAndDisclaimer('consumer');
474 showHeroAndDisclaimer('business');
475 changeCardLayout(businessSelector);
476 renumberFootnote("business");
477 createMetaTag("business");
478
479 $(tabs).click(function(){
480 if ($(this).attr('id') === "consumerTab") {
481 var newUrl = window.location.toString();
482 window.location = newUrl.replace(/#business/, '#consumer');
483 }
484 if ($(this).attr('id') === "businessTab") {
485 var url = window.location.toString();
486 window.location = url.replace(/#consumer/, '#business');
487 }
488 });
489 }
490
491 }
492 });
493 // Primary Nav function
494
495 function togglePrimaryNav(elem) {
496 for (var i = 0; i < elem.length; i++) {
497 elem[i].addEventListener("click", function(e) {
498
499 var current = this,
500 allSections = document.querySelectorAll('[data-id]'),
501 section = document.querySelector("[data-id='"+ current.id +"']");
502
503 for (var a = 0; a < allSections.length; a++) {
504 allSections[a].classList.remove('active');
505 }
506 for (var c = 0; c < elem.length; c++) {
507 if (current != elem[c]) {
508 elem[c].classList.remove('active');
509 } else {
510 current.classList.add('active');
511 //console.log('current: ', current);
512 //console.log('section: ', section);
513 section.classList.add('active');
514 hideHeroAndDisclaimer('consumer');
515 hideHeroAndDisclaimer('business');
516 if(current.getAttribute('id') === "consumerTab"){
517 showHeroAndDisclaimer('consumer');
518 } else if(current.getAttribute('id') === "businessTab"){
519 showHeroAndDisclaimer('business');
520 }
521 }
522 }
523 e.preventDefault();
524 });
525 }
526 }
527
528 function renumberFootnote(type) {
529 var discriptionSelector = '.jn-consumer-content-wrapper.jn-tab-content' + '[data-id="' + type + 'Tab"]';
530 var disclaimerSelector = '.tier3-disclaimer-landing-' + type;
531 var heroSelector = '.tier3-hero-landing-' + type;
532 var numOfFootnote = $(disclaimerSelector + ' sup').length;
533 var showList = [];
534 var hideList=[];
535 for (var i = 1; i <= numOfFootnote; i++) {
536 var cssClass="tag-" + i;
537 if ($(discriptionSelector + ' sup').hasClass(cssClass) || $(heroSelector + ' sup').hasClass(cssClass)) {
538 showList.push(i);
539 } else {
540 hideList.push(i);
541 }
542 }
543 /*
544 for (var i = 1; i < showList.length + 1; i++) {
545 if(showList[i-1] != i) {
546 var className="tag-" + showList[i-1];
547
548 //$(heroSelector).find("." + className).html(i);
549 // $(discriptionSelector).find("." + className).html(i);
550 //$(disclaimerSelector).find("." + className).html(i);
551 }
552 }
553 */
554 for (var i = 0; i <hideList.length; i++) {
555 var cname="tag-" + hideList[i];
556 $(disclaimerSelector).find("." + cname).parent().hide();
557 }
558 }
559
560 function changeCardLayout(cssSelector) {
561 var numOfCards = $(cssSelector + ' .jn-consumer-item').length;
562 //console.log('numofcards', numOfCards);
563 if(numOfCards == 1) {
564 $(cssSelector).addClass('one-card');
565 } else if (numOfCards == 2) {
566 $(cssSelector).addClass('two-card');
567 }
568 }
569 function hideHeroAndDisclaimer(type) {
570 try {
571 document.querySelector('.tier3-hero-landing-'+ type).classList.remove('show');
572 document.querySelector('.tier3-hero-landing-'+ type).classList.add('hide');
573 } catch (e) {
574 console.log(e);
575 }
576
577 try {
578 document.querySelector('.tier3-disclaimer-landing-'+ type).classList.remove('show');
579 document.querySelector('.tier3-disclaimer-landing-'+ type).classList.add('hide');
580 } catch (e) {
581 console.log(e);
582 }
583
584 }
585 function showHeroAndDisclaimer(type) {
586 try {
587 document.querySelector('.tier3-hero-landing-'+ type).classList.add('show');
588 document.querySelector('.tier3-hero-landing-'+ type).classList.remove('hide');
589 } catch (e) {
590 console.log(e);
591 }
592
593 try {
594 document.querySelector('.tier3-disclaimer-landing-'+ type).classList.add('show');
595 document.querySelector('.tier3-disclaimer-landing-'+ type).classList.remove('hide');
596 } catch (e) {
597 console.log(e);
598 }
599
600 }
601 function createMetaTag(type) {
602 var partnerName = "${partnerName!0}";
603 var product_name = $('.jn-hero-container .jn-button').data('product-name');
604 var metaDesc ="";
605 if (type == "consumer") {
606 if(product_name == "consumer-platinum") {
607 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.";
608 } else if(product_name == "real-rewards") {
609 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Take home 2,500 bonus points after your first purchase.";
610 } else if(product_name == "secured") {
611 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Use this card as a solid foundation to build your credit.";
612 } else if(product_name == "max-cash") {
613 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn a $150 Bonus.";
614 } else if(product_name == "max-cash-secured") {
615 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn more on the categories you pick.";
616 }
617
618 } else if (type == "business") {
619 if(product_name == "business-cashback") {
620 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn Cash back on common business expenses.";
621 } else if(product_name == "business-real-rewards") {
622 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Get more rewards in the categories you spend the most on.";
623 } else if(product_name == "business-platinum") {
624 metaDesc = "Apply Today for a "+partnerName+" Business Card. 0% Intro APR on Purchases and Balance Transfers for 15 Billing Cycles";
625 } else if(product_name == "smart-business-rewards") {
626 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.";
627 }
628 }
629 var m = document.createElement('meta');
630 m.name = 'description';
631 m.content = metaDesc;
632 document.head.appendChild(m);
633 }
634
635 function resizeImg(img) {
636 img.addEventListener("load", function() {
637 var cardImgWidth = img.width;
638 var cardImgHeight = img.height;
639 //console.log('width', cardImgWidth);
640 //console.log('height', cardImgHeight);
641 if(cardImgWidth > cardImgHeight) {
642 img.style.width = "285px";
643 } else {
644 img.style.width = "150px";
645 }
646 });
647 }
648 </script>
649</#if>
Web Content Display
An error occurred while processing the template.
Error on line 14, column 1 in 10154#10192#153417682 clientProfileList?first is undefined. It cannot be assigned to clientProfile
1<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService") >
2<#assign url = request.attributes.CURRENT_URL >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4
5<#assign lc= qstringmap["ecdma-lc"]?first>
6<#assign prefix = "00000" >
7<#assign lcWithPrefix = prefix + lc >
8<#assign withPrefixLength = lcWithPrefix?length >
9<#assign startHere = withPrefixLength - 5>
10<#assign lc = lcWithPrefix?substring(startHere)>
11
12<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
13<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
14<#assign clientProfile = clientProfileList?first>
15<#assign partnerName = clientProfile.getMarketingNameLong()>
16
17<#assign pbu = clientProfile.getPbu()>
18<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
19
20<#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu +'&'+subbu)>
21<#assign cardProvider = utilServ.makeCall('crcDDCGetMcOrVisa', fiCardsData[0].offerType + '&' + lc)>
22
23<#if (cardProvider?size > 0)>
24 <#-- This will be V for visa or M for mastercard. -->
25 <#assign cardProviderAbbreviated = cardProvider[0].cardType>
26<#else>
27 <script>
28 console.log("No card provider(Visa/Master Card) found for disclaimer");
29 </script>
30</#if>
31
32<div class="jn-disclaimer tier3-disclaimer-${class.getData()}" title="${partnerName!''} - Disclaimer">
33 <div class="disclaimer">
34 <#if (disclaimersVisa?has_content && cardProviderAbbreviated?contains("V"))>
35 ${disclaimersVisa.getData()}
36 </#if>
37 <#if (disclaimersMasterCard?has_content && cardProviderAbbreviated?contains("M")) >
38 ${disclaimersMasterCard.getData()}
39 </#if>
40 </div>
41</div>
Web Content Display
An error occurred while processing the template.
Error on line 14, column 1 in 10154#10192#153417682 clientProfileList?first is undefined. It cannot be assigned to clientProfile
1<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService") >
2<#assign url = request.attributes.CURRENT_URL >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4
5<#assign lc= qstringmap["ecdma-lc"]?first>
6<#assign prefix = "00000" >
7<#assign lcWithPrefix = prefix + lc >
8<#assign withPrefixLength = lcWithPrefix?length >
9<#assign startHere = withPrefixLength - 5>
10<#assign lc = lcWithPrefix?substring(startHere)>
11
12<#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
13<#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
14<#assign clientProfile = clientProfileList?first>
15<#assign partnerName = clientProfile.getMarketingNameLong()>
16
17<#assign pbu = clientProfile.getPbu()>
18<#assign subbu = clientProfile.getSUBBRANDBUNBR()>
19
20<#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&'+ pbu +'&'+subbu)>
21<#assign cardProvider = utilServ.makeCall('crcDDCGetMcOrVisa', fiCardsData[0].offerType + '&' + lc)>
22
23<#if (cardProvider?size > 0)>
24 <#-- This will be V for visa or M for mastercard. -->
25 <#assign cardProviderAbbreviated = cardProvider[0].cardType>
26<#else>
27 <script>
28 console.log("No card provider(Visa/Master Card) found for disclaimer");
29 </script>
30</#if>
31
32<div class="jn-disclaimer tier3-disclaimer-${class.getData()}" title="${partnerName!''} - Disclaimer">
33 <div class="disclaimer">
34 <#if (disclaimersVisa?has_content && cardProviderAbbreviated?contains("V"))>
35 ${disclaimersVisa.getData()}
36 </#if>
37 <#if (disclaimersMasterCard?has_content && cardProviderAbbreviated?contains("M")) >
38 ${disclaimersMasterCard.getData()}
39 </#if>
40 </div>
41</div>