let zipCookie1 = $.cookie('pzn_postalCode'); let lobCookie = $.cookie('lobCookie'); var zipCardOrderFlag = false; var zipCardOrder = []; var arr = []; var orderArr = []; var lobArr = []; var lobOrderFlag = true; var dataKeysArr = []; document.addEventListener("DOMContentLoaded", () => { let wrapper = document.querySelector("#overlap-card-wrapper"); const homePagePersonalization = { documentReady: (fn) => { if (document.readyState != 'loading') { fn(); } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fn); } else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } }, getLobData: async () => { let res = await fetch('/bsca/bsc/wcm/connect/member/member_content_en/content%20root/homepage/homepage_personalization/lob_json?wcmitemid=07a3ad96-94fc-4121-86be-c15cf404b914&WCM_Page.ResetAll=TRUE&CACHE=NONE&CONTENTCACHE=NONE&CONNECTORCACHE=NONE&SRV=Page'); let lobRes = await res.json(); console.log(lobRes); return lobRes; }, getZipData: async () => { let res = await fetch('/bsca/bsc/wcm/connect/member/member_content_en/content%20root/homepage/homepage_personalization/zipcode_json?wcmitemid=b654086c-fdcb-45ba-b57c-60b7d031151f&WCM_Page.ResetAll=TRUE&CACHE=NONE&CONTENTCACHE=NONE&CONNECTORCACHE=NONE&SRV=Page'); let zipRes = await res.json(); console.log(zipRes); return zipRes; }, getDefault: async () => { let response = await fetch('/bsca/bsc/wcm/connect/member/member_content_en/content%20root/homepage/homepage_personalization/default?wcmitemid=8c3fae46-9eea-436b-a32f-a67422208986&WCM_Page.ResetAll=TRUE&CACHE=NONE&CONTENTCACHE=NONE&CONNECTORCACHE=NONE&SRV=Page'); let defaultRes = await response.json(); console.log(defaultRes); return defaultRes; }, // to display cards in default order getDefaultOrder (defaultData) { Object.keys(defaultData.default).forEach(function(data){ var defaultValue = defaultData.default[data]; // iterate and gets values for parameters in default object Object.values(defaultValue).forEach(function(defaultOrder){ console.log(defaultOrder); // appending id (as card order i.e card1 to cards div to display the cards in order by #ID wrapper.appendChild(document.getElementById(defaultOrder)); arr.push(defaultOrder); orderArr.push(defaultOrder); $("#overlap-card-wrapper #" + defaultOrder).removeClass("hide"); }); }); }, getLobOrder (lobData) { // iterate and read values(cards order) in lob object Object.values(lobData).forEach(function(lobCardOrder){ console.log(lobCardOrder); if (lobCardOrder !== 'lob' && arr.length === 0) { // appending ID (with cards order i.e card1, card2 to cards div to display the cards in order by #ID wrapper.appendChild(document.getElementById(lobCardOrder)); orderArr.push(lobCardOrder); $("#overlap-card-wrapper #" + lobCardOrder).removeClass("hide"); } }); }, getZipOrder (datakeys) { // iterate and read lob value from zipCode object Object.keys(datakeys.Zip).forEach(function(zip){ var lobName = zip; // when lob value in zip json equals to lob cookie enters the block if (lobName === lobCookie && arr.length === 0) { var zipValue = datakeys.Zip[zip]; // iterate and read object inside lob Object.keys(zipValue).forEach(function(zipLobKey){ if(arr.length === 0){ var zipLobValue = zipValue[zipLobKey]; // iterate and read list object values inside lob Object.keys(zipLobValue).forEach(function(zipKey){ zipCardOrder = zipLobValue[zipKey]; // checks for key name inside list object is "zipcodes" and zip cookie exisits in zipCodes list //if zip cookie contains in zip code list set lobOrderFlag as false if (zipKey == "zipcodes" && zipCardOrder.includes(zipCookie1)){ zipCardOrderFlag = true; lobOrderFlag = false; } if(zipCardOrderFlag && zipKey.startsWith("card")) { console.log(zipCardOrder); // appending ID (with cards order i.e card1, card2 to cards div to display the cards in order by #ID wrapper.appendChild(document.getElementById(zipCardOrder)); arr.push(zipCardOrder); orderArr.push(zipCardOrder); $("#overlap-card-wrapper #" + zipCardOrder).removeClass("hide"); } }); } zipCardOrderFlag = false; }); } else if (lobName === 'default' && typeof $.cookie('lobCookie') === 'undefined' || $.cookie('lobCookie') === "null" || $.cookie('lobCookie') === "" && arr.length === 0) { var zipValue = datakeys.Zip[zip]; // iterate and read object inside lob Object.keys(zipValue).forEach(function(zipLobKey){ if(arr.length === 0){ var zipLobValue = zipValue[zipLobKey]; // iterate and read list object values inside lob Object.keys(zipLobValue).forEach(function(zipKey){ zipCardOrder = zipLobValue[zipKey]; // checks for key name inside list object is "zipcodes" and zip cookie exisits in zipCodes list //if zip cookie contains in zip code list set lobOrderFlag as false if (zipKey == "zipcodes" && zipCardOrder.includes(zipCookie1)){ zipCardOrderFlag = true; lobOrderFlag = false; } if(zipCardOrderFlag && zipKey.startsWith("card")) { console.log(zipCardOrder); // appending ID (with cards order i.e card1, card2 to cards div to display the cards in order by #ID wrapper.appendChild(document.getElementById(zipCardOrder)); arr.push(zipCardOrder); orderArr.push(zipCardOrder); $("#overlap-card-wrapper #" + zipCardOrder).removeClass("hide"); } }); } zipCardOrderFlag = false; }); } }); //if zip cookie is empty / not contains in zip code list display cards in lob order if (lobOrderFlag && arr.length === 0) { homePagePersonalization.getDefault().then(defaultData => { homePagePersonalization.getDefaultOrder(defaultData); }); } } } homePagePersonalization.documentReady(() => { // display cards in default order for non members if((typeof $.cookie('lobCookie') === 'undefined' || $.cookie('lobCookie') === "null" || $.cookie('lobCookie') === "") && (typeof $.cookie('pzn_postalCode') !== 'undefined' || $.cookie('pzn_postalCode') !== "null" || $.cookie('pzn_postalCode') !== "")){ homePagePersonalization.getDefault().then(defaultData => { homePagePersonalization.getDefaultOrder(defaultData); }); } // read lob json to check priority homePagePersonalization.getLobData().then(datakeys => { var lobLength = Object.keys(datakeys.Lob).length; Object.keys(datakeys.Lob).forEach(function(lob){ var lobName = lob; lobArr.push(lobName); var lobValue = datakeys.Lob[lob]; dataKeysArr.push(lobValue); // iterate lob json object to check priority, when key is priority enters into if block and checks for priority value // if priority value is "lob", checks json lob name equals to lob cookie and checks lobcookie = 'IFP', if yes iterate lob json object to get cards order else display cards in default order // if priority value is "zip", checks zip cookie exist, iterate zip json object to get cards order // when lob cookie and zip cookie not exist display default order if (orderArr.length === 0 && typeof $.cookie('lobCookie') !== 'undefined' && $.cookie('lobCookie') !== "null" && $.cookie('lobCookie') !== "") { Object.keys(lobValue).forEach(function(key){ if (key = 'priority') { console.log(key); Object.values(lobValue).forEach(function(value){ if (orderArr.length === 0) { if(value === 'lob' && lobName === lobCookie){ if (lobCookie === 'IFP') { console.log(value); homePagePersonalization.getLobOrder(lobValue); return; } else { homePagePersonalization.getDefault().then(defaultData => { homePagePersonalization.getDefaultOrder(defaultData); }); } } else if (value === 'zip' && typeof $.cookie('pzn_postalCode') !== 'undefined' && $.cookie('pzn_postalCode') !== "null" && $.cookie('pzn_postalCode') !== ""){ homePagePersonalization.getZipData().then(zipdatakeys => { homePagePersonalization.getZipOrder(zipdatakeys); }); return; } else if(value === 'zip' && (typeof $.cookie('pzn_postalCode') === 'undefined' || $.cookie('pzn_postalCode') === "null" || $.cookie('pzn_postalCode') === "")){ homePagePersonalization.getDefault().then(defaultData => { homePagePersonalization.getDefaultOrder(defaultData); }); } } }); } }); } else if ((typeof $.cookie('lobCookie') === 'undefined' || $.cookie('lobCookie') === "null" || $.cookie('lobCookie') === "")){ homePagePersonalization.getZipData().then(zipdatakeys => { homePagePersonalization.getZipOrder(zipdatakeys); }); return; } }); }); }); });