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