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