");vwo_$('head').append(_vwo_sel);return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("HEAD")}}, R_722219_759_1_2_0:{ fn:function(log,nonce=''){return (function(x) {
if(!vwo_$.fn.vwoRevertHtml){
return;
};
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1733126851444"]');
el.revertContentOp().remove();})("HEAD")}}, C_722219_759_1_2_1:{ fn:function(log,nonce=''){return (function(x) {})(".leo-col-6")}}, R_722219_759_1_2_1:{ fn:function(log,nonce=''){return (function(x) {
if(!vwo_$.fn.vwoRevertHtml){
return;
};
})(".leo-col-6")}}, ct759_16048c03a9b024888f00d49e44c4bca2:{ fn:function(executeTrigger, vwo_$) {
(//Visited PDP audience trigger for VWO
function() {
// ----------------------------------
// ----- Personalization config -----
// ----------------------------------
var productsViewedMaxItems = 3; // Max number of recommended products
/*
Product master infos:
- name = Master product name. Ensure that this matches the master mapping (eg. data layer values)
*/
var productsViewedCTAArr = [
{
"name": "GREAT CareShield"
},
{
"name": "GoGreat Term Life"
},
{
"name": "TravelSmart Premier"
},
{
"name": "HomeGR8 Plus"
},
{
"name": "GREAT Protector Active"
},
{
"name": "Essential Protector Plus"
},
{
"name": "GREAT Junior Protector"
},
{
"name": "Drive and Save Plus"
},
{
"name": "GREAT Maid Protect"
},
{
"name": "GREAT Critical Cover Series"
},
{
"name": "GREAT Prime Rewards"
},
{
"name": "GREAT SP"
},
{
"name": "GREAT Golden Protector"
},
{
"name": "GREAT Term"
},
{
"name": "GREAT EV Protect"
},
{
"name": "GREAT Hospital Cash "
},
{
"name": "GREAT Cancer Guard"
},
{
"name": "PA Supreme"
},
{
"name": "GREAT Home Protect"
}
];
// -----------------------------------------
// ----- System config (Do not change) -----
// -----------------------------------------
var productsViewedCookieName = "personalization_products_viewed";
var productsPurchasedCookieName = "personalization_products_purchased";
// -------------------------------
// ----- Get cookie function -----
// -------------------------------
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// ------------------------------------------------
// ----- Check last viewed/purchased products -----
// ------------------------------------------------
// Read cookies
var productsViewedArr = []; // Default empty array
var productsViewedStr = getCookie(productsViewedCookieName);
var productsPurchasedArr = []; // Default empty array
var productsPurchasedStr = getCookie(productsPurchasedCookieName);
// If cookies are not empty, read the unstringified values
if(productsViewedStr != "") {productsViewedArr = JSON.parse(productsViewedStr);}
if(productsPurchasedStr != "") {productsPurchasedArr = JSON.parse(productsPurchasedStr);}
// Remove purchased products from last viewed products
productsViewedArr = productsViewedArr.filter(function (a) {
return typeof productsPurchasedArr.find(function (b) {
return b.name == a.name;
}) == "undefined";
});
// Cross check master product infos
productsViewedArr = productsViewedArr.filter(function (a) {
return typeof productsViewedCTAArr.find(function (b) {
return b.name == a.name;
}) != "undefined";
});
// Reduce to the latest X array items
productsViewedArr = productsViewedArr.slice(-productsViewedMaxItems);
// If there are last products viewed, run VWO campaign
if(productsViewedArr.length) {
executeTrigger();
}
})()
}}, C_722219_736_1_2_0:{ fn:function(log,nonce=''){return (function(x) {try{!function(){var e=window.location.pathname,t=[{name:"GREAT CareShield",productCategory:"health-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/health-insurance/great-careshield.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/health-insurance/220402/get-quotation.html",bulletPoints:["Disability financial support starts from the inability to perform any ADL","Get up to 90% more in monthly benefits for caregiver's and children's expenses","Utilise your MediSave funds4 for enhanced coverage"]},{name:"GREAT Critical Cover Series",productCategory:"health-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/health-insurance/great-critical-cover.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/life-insurance/220303/get-quotation.html",bulletPoints:["100% payout for every critical illness claim","Coverage continues over and over again, even after the first critical illness claim","Flexibility in choice of coverage"]},{name:"GoGreat Term Life",productCategory:"life-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/life-insurance/gogreat-term-life.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/life-insurance/210301/get-quotation.html",bulletPoints:["Complete your protection needs from just S$0.21* a day","All-round protection till age 65","Hassle-free application"]},{name:"GREAT Protector Active",productCategory:"personal-accident-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/personal-accident-insurance/great-protector-active.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/personal-accident-insurance/200201/get-quotation.html",bulletPoints:["Get up to S$3 million in coverage against accidents","Boost coverage by up to 1.5 times with Benefit Booster4","High medical expenses reimbursement"]},{name:"Essential Protector Plus",productCategory:"personal-accident-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/personal-accident-insurance/essential-protector-plus.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/personal-accident-insurance/200204/get-quotation.html",bulletPoints:["Reimbursement of up to S$15,000 for medical expenses","Get daily income upon hospitalisation","Extra payout of up to S$8,000 for accidental injuries","Additional 20% coverage for ladies"]},{name:"GREAT Junior Protector",productCategory:"personal-accident-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/personal-accident-insurance/great-junior-protector.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/personal-accident-insurance/200202/get-quotation.html",bulletPoints:["Up to 3 times payout upon Accidental Death and Permanent Disablement","Daily hospital cash benefit for up to 41 Infectious Diseases","Reimbursement of up to S$9,000 for Accidental Medical Expenses"]},{name:"GREAT Prime Rewards",productCategory:"wealth-accumulation",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/wealth-accumulation/great-prime-rewards.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/life-insurance/220105/get-quotation.html",bulletPoints:["Receive regular income stream to suit your retirement needs","Boost your annual payouts by up to 1.82X†","Your capital is guaranteed1","Maximise retirement planning with SRS"]},{name:"GREAT Hospital Cash",productCategory:"health-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/health-insurance/great-hospital-cash.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/health-insurance/230401/get-quotation.html",bulletPoints:["Assurance of hospital cash payouts after 12 hours^","Enjoy up to a lifetime of hospitalisation coverage","Enjoy more discounts on your premiums","Sign up online and start your coverage with ease"]},{name:"GREAT Golden Protector",productCategory:"personal-accident-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/personal-accident-insurance/great-golden-protector.html",cta2Text:"Buy now",cta2Url:"//buy.greateasternlife.com/sg/en/personal-accident-insurance/200203/get-quotation.html",bulletPoints:["Up to 300% payout and up to S$200 daily hospital cash benefit","Comprehensive post-accident benefits","Payouts of up to S$25,000 for fractures, dislocations or burns","Get 25% off premiums on 2nd life assured"]},{name:"PA Supreme",productCategory:"personal-accident-insurance",cta1Text:"Learn more",cta1Url:"/sg/en/personal-insurance/our-products/personal-accident-insurance/pa-supreme.html",cta2Text:"Buy now",cta2Url:"//greateasternlife.com/psu",bulletPoints:["High payout in an unfortunate event","Financial support for a swift recovery","Assurance of emergency support that counts"]}],a=`\n \n \n
\n ';b+=h.map((function(e){return n.replace(/\{bulletPoint\}/g,e)})).join(""),b=(b=(b=(b=(b=(b=(b=(b+=a).replace(/\{productName\}/g,p)).replace(/\{cta1Text\}/g,d)).replace(/\{cta1Url\}/g,m)).replace(/\{cta2Text\}/g,g)).replace(/\{cta2Url\}/g,f)).replace(/\{gaEventLabel_Cta1\}/g,("[vwo_ce_rtg] product cat thumbnail - "+p+" - "+d).toLowerCase())).replace(/\{gaEventLabel_Cta2\}/g,("[vwo_ce_rtg] product cat thumbnail - "+p+" - "+g).toLowerCase()),document.querySelector(".featuredArticle .leo-container .leo-row .leo-col-8").classList.replace("leo-col-8","leo-col-6"),document.querySelector(".featuredArticle .leo-container .leo-row").insertAdjacentHTML("beforeend",b)}}}),1e3)}();}catch(e){} ;var _vwo_sel=vwo_$("");vwo_$('head').append(_vwo_sel);return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("HEAD")}}, C_722219_1027_1_2_0:{ fn:function(){return (function(x) { try{
var _vwo_sel = vwo_$("");
!vwo_$("head").find("#1739333374834").length && vwo_$('head').append(_vwo_sel);
// Start variation JS
void (function loadVariation(timeInFuture) {
// Main Test object
const test = {
// Some test specific global letiables
id: "EXP-10-V1",
// Test init
init: function () {
// Add a test specific classname to the body element
document.body.classList.add(test.id);
// Below function calls order is important
test.mainJS();
},
// Main JS
mainJS: function () {
/* ---- LOGO ---- */
const quizLogo = `
`;
const crossIcon = `
`;
const newCrossIcon = `
`;
/* ---- DATA ---- */
// quiz data
const collections = [
{
quizName: "Healthy heart, Happy life - Quiz 1",
quizNumber: "quiz 1",
className: "healthy-heart-quiz-one",
image: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
coverImage: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
url: "https://www.greateasternlife.com/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/heart-health-and-you-quiz-1.html",
header: "Healthy heart, Happy life - Quiz 1",
quizDate: "Jan 06, 2025",
promoCopy: "Answer 3 simple questions and win an exclusive prize from Eu Yan Sang worth $15!",
questionOne: [
"1. One should see a ____________ if he/she is experiencing chest pain and shortness of breath as it could be a possible sign of heart disease and heart failure.",
["Cardiologist", "Dentist", "Gastroenterologist"]
],
questionTwo: [
"2. These chronic conditions – diabetes, high blood pressure, and high ___________ (also known as the “Three Highs”), are usually asymptomatic and may be unnoticed. It has been observed that patients are also developing these conditions at an increasingly earlier age.",
["Blood count", "Cholesterol", "Fever"]
]
},
{
quizName: "Healthy heart, Happy life - Quiz 2",
quizNumber: "quiz 2",
className: "healthy-heart-quiz-two",
image: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2.jpg",
coverImage: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2-thumbnail.jpg",
url: "https://www.greateasternlife.com/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/huat-the-heart-wants-quiz-2.html",
header: "Healthy heart, Happy life - Quiz 2",
quizDate: "Jan 20, 2025",
promoCopy: "Answer 3 simple questions and win an exclusive prize from Fitness First worth $60!",
questionOne: [
"1. Even though pineapple tarts are everywhere for the festive season, I should limit my intake to ____ pieces because it is equivalent to 7 teaspoons of sugar, which is within our recommended daily intake of 10 teaspoons.",
["2", "4", "6"]
],
questionTwo: [
"2. Nian gao, nian gao, in the box… which is the most calorie-loaded of them all?",
["Steamed", "Fried"]
]
},
];
// quiz image links
const imageUrls = [
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2.jpg",
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2-thumbnail.jpg"
];
// array of quiz pages
const quizPages = [
'/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/heart-health-and-you-quiz-1.html',
'/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/huat-the-heart-wants-quiz-2.html',
];
// array of pages to show quiz logo
const variationPages = [
'/sg/en/personal-insurance/lifepedia.html',
'/sg/en/personal-insurance/lifepedia/medical-coverage.html',
'/sg/en/personal-insurance/lifepedia/life-protection.html',
'/sg/en/personal-insurance/lifepedia/lifestyle-protection.html',
'/sg/en/personal-insurance/lifepedia/savings-and-investment.html',
'/sg/en/personal-insurance/lifepedia/retirement-income.html',
'/sg/en/personal-insurance/lifepedia/career.html',
'/sg/en/personal-insurance/rewards-and-promotions.html'
];
/* ---- Utility Functions ---- */
// // image preload function
function preloadImages(imageUrls) {
imageUrls.forEach(url => {
const img = new Image();
img.src = url;
});
}
// function to validate and process quiz data
function validationAndProcessQuizData(quizUrl, quizNumber) {
// Cache form elements
const formSection = document.querySelector('.form-section');
const questionOneInput = document.querySelectorAll('.form-group-one .radio-item input:checked')[0];
const questionTwoInput = document.querySelectorAll('.form-group-two .radio-item input:checked')[0];
// Validation: Check if questions are answered
const isEmpty = !(questionOneInput?.value) || !(questionTwoInput?.value.trim());
const existingError = formSection.querySelector('.error-copy');
const errorHtml = `
Please complete the questions.
`
if (isEmpty) {
// Add error message if it doesn't exist
if (!existingError) {
formSection.insertAdjacentHTML('beforeend', errorHtml);
formSection.classList.add('form-error');
return; // Exit the function
}
return;
}
// Remove error if validation passes
if (existingError) {
existingError.remove();
}
formSection.classList.remove('form-error');
// Prepare quiz data
const quizData = [
quizUrl.trim(),
questionOneInput.value.trim(),
questionTwoInput.value.trim(),
];
// Store the data in session storage
sessionStorage.setItem('quizData', JSON.stringify(quizData));
// step 3 - continue CTA click
let quizName = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - static`;
let eventJourneyCTA = `vworq-hh-3-${quizName}-static`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
// Redirect to the quiz URL
window.location.href = quizUrl;
}
// function to trigger GA events
function gaEventTrigger(eventAction, eventLabel, eventJourneyCTA = '') {
dataLayer.push({
event: "vwoEvent",
eventDetails: {
category: "[vwo] sticky icon",
action: eventAction,
label: eventLabel
},
contentSubcategory: "healthy heart quiz",
...(eventJourneyCTA ? { journeyCta: eventJourneyCTA } : {})
});
};
// fuction to detect touch device
const isTouchDevice = () => {
return (
'ontouchstart' in window || // Check for touch events
navigator.maxTouchPoints > 0 || // Check for touch points
navigator.msMaxTouchPoints > 0 // Microsoft-specific touch points
);
};
/* ---- HTML Templates Markup and Functions ---- */
// create Quiz cards markup
const createQuizCard = (className, coverImage, header, quizDate) => {
return (`
`;
// function to create inner content for modal level two
let modalTwoInnerContent = (className, title, promoCopy) => (`
${title}
${promoCopy}
Start now
`);
//function to generate radio buttons
function generateRadioButtons(options, groupName) {
// Helper function to generate a single radio item
const createRadioItem = (option, index) => {
const id = `${groupName}-option-${index + 1}`; // Unique ID for each option
return `
`;
};
// Generate all radio items
const radioItems = options.map((option, index) => createRadioItem(option, index)).join("");
// Wrap the radio items in the section structure
return `
${radioItems}
`;
}
// function to create inner content for modal level two
let modalThreeInnerContent = (className, questionOne, questionTwo) => (`
`);
// function to create markup for modals on level two and three
let quizModalfn = (className, quizName, image, modalInnerHtml, modalClassNameOne, modalClassNametwo) => (`
${quizCrossButton}
${quizCrossButton}
${modalInnerHtml}
`);
// markup for quiz modal level one
let quizModalLV1 = `
${quizCrossButton}
Take our simple quizzes and win instant rewards today!
Take part in our simple quizzes and win instant rewards today!
${QuizCards}
`;
// function to create the initial modal markup
let modalMarkup = () => (`
${quizModalLV1}
`);
/* ---- DOM Manipulation ---- */
// current url path
const currentPath = window.location.pathname;
// Dom manipulation for quiz variation
if (variationPages.includes(currentPath)) {
// preload images
preloadImages(imageUrls);
// insert quiz icon
if (document.querySelector('.quiz-icon-container')) return;
document.querySelector('main.container .cmp-container > .aem-Grid').insertAdjacentHTML('beforeend', quizIconHtml);
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - static';
gaEventTrigger('impression', eventLabel);
// insert modal markup
document.querySelectorAll('main.container .cmp-container > .aem-Grid')[0].insertAdjacentHTML('beforeend', modalMarkup())
// click handler function for variation pages
function clickHandler(event) {
const { target } = event;
//console.log('target: ', target);
// Utility: Toggle modal visibility
const toggleModal = (selector, addClass, removeClass) => {
const modal = document.querySelector(selector);
if (modal) {
if (addClass !== null) modal.classList.add(addClass);
if (removeClass !== null) modal.classList.remove(removeClass);
}
};
// Utility: Map class names to modal numbers
const getModalNum = () => {
if (target.closest('.healthy-heart-quiz-one')) return 0;
if (target.closest('.healthy-heart-quiz-two')) return 1;
if (target.closest('.word-search-edition-three')) return 2;
return null; // Default if no match found
};
// Utility: Clear form errors
const clearFormErrors = () => {
document.querySelector('.form-section .error-copy')?.remove();
document.querySelector('.form-section.form-error')?.classList.remove('form-error');
};
// Handle: Quiz icon click (open modal)
if (target.closest('.quiz-icon-container .quiz-icon')) {
toggleModal('.quiz-modal-container', 'modal--visible', 'modal--hidden');
// click on quiz icon
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - static';
let eventJourneyCTA = 'vworq-hh-win prizes-static';
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
// Handle: Quiz cross icon click (cross icon)
if (target.closest('.quiz-icon-container .cross-icon')) {
document.querySelector('.quiz-icon-container').classList.add('hide-quiz-icon');
// hide quiz icon
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - static';
gaEventTrigger('close', eventLabel);
return;
}
// Handle: Close modal
if (
target.closest('.modal-cross-button .cross-icon') ||
target.classList.contains('modal--visible')
) {
// step 1 modal - close
if (target.closest('.quiz-modal-content.quiz-level-one .modal-cross-button .cross-icon')) {
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - static`;
gaEventTrigger('close', eventLabel);
}
// step 2 modal - close
if (target.closest('.quiz-modal-content.quiz-level-two .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-two')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizName} - static`;
gaEventTrigger('close', eventLabel);
}
// step 3 - close
if (target.closest('.quiz-modal-content.quiz-level-three .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-three')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - static`;
gaEventTrigger('close', eventLabel);
}
toggleModal('.quiz-modal-container', 'modal--hidden', 'modal--visible');
document.querySelectorAll('.quiz-modal.quiz-modal-three, .quiz-modal.quiz-modal-two').forEach(modal => modal.remove());
toggleModal('.quiz-modal.quiz-modal-one', null, 'hide-modal'); // Unhide modal one
return;
}
// Handle: Click on modal cards
if (target.closest('.quiz-modal-one .quiz-card')) {
const modalNum = getModalNum();
if (modalNum !== null) {
const { quizName, quizNumber, className, image, promoCopy, details } = collections[modalNum];
const modalTwoInnerHtml = modalTwoInnerContent(className, quizName, promoCopy, details);
const modalTwoMarkup = quizModalfn(className, quizName, image, modalTwoInnerHtml, 'quiz-modal-two', 'quiz-level-two');
document.querySelector('.quiz-modal.quiz-modal-one').insertAdjacentHTML('afterend', modalTwoMarkup);
toggleModal('.quiz-modal.quiz-modal-one', 'hide-modal', null);
// step 1 - popup card click
let quizTitle = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - ${quizTitle} - static`;
let eventJourneyCTA = `vworq-hh-1-${quizTitle}-static`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
return;
}
// Handle: Click on quiz start button in modal two
if (target.closest('.quiz-modal.quiz-modal-two .quiz-button')) {
const questionModalNum = getModalNum();
if (questionModalNum !== null) {
const { quizName, quizNumber, className, image, questionOne, questionTwo } = collections[questionModalNum];
const modalThreeInnerHtml = modalThreeInnerContent(className, questionOne, questionTwo);
const modalThreeMarkup = quizModalfn(className, quizName, image, modalThreeInnerHtml, 'quiz-modal-three', 'quiz-level-three');
document.querySelector('.quiz-modal.quiz-modal-one').insertAdjacentHTML('afterend', modalThreeMarkup);
toggleModal('.quiz-modal.quiz-modal-two', 'hide-modal', null);
// step 2 - start now CTA click
let quizTitle = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizTitle} - static`;
let eventJourneyCTA = `vworq-hh-2-${quizTitle}-static`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
return;
}
// Handle: Click on quiz button in modal three (final action)
if (target.closest('.quiz-modal.quiz-modal-three .quiz-button')) {
const questionModalNum = getModalNum();
if (questionModalNum !== null) {
const { url, quizNumber } = collections[questionModalNum];
// Validate input and process quiz data
validationAndProcessQuizData(url, quizNumber);
}
return;
}
// Handle: Input focus (clear errors)
if (target.closest('input#form-quiestion-one') || target.closest('input#form-quiestion-two')) {
clearFormErrors();
return;
}
}
// Attach click handler to the document
document.body.addEventListener('click', clickHandler);
function touchStartEventHandler(event) {
const { target } = event;
//console.log('target touch: ', target);
// Utility: Toggle modal visibility
const toggleModal = (selector, addClass, removeClass) => {
const modal = document.querySelector(selector);
if (modal) {
modal.classList.add(addClass);
modal.classList.remove(removeClass);
}
};
// Handle: Close modal
if (
target.closest('.modal-cross-button .cross-icon') ||
target.classList.contains('modal--visible')
) {
// step 1 - close
if (target.closest('.quiz-modal-content.quiz-level-one .modal-cross-button .cross-icon')) {
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - static`;
gaEventTrigger('close', eventLabel);
}
// step 2 - close
if (target.closest('.quiz-modal-content.quiz-level-two .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-two')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizName} - static`;
gaEventTrigger('close', eventLabel);
}
// step 3 - close
if (target.closest('.quiz-modal-content.quiz-level-three .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-three')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - static`;
gaEventTrigger('close', eventLabel);
}
toggleModal('.quiz-modal-container', 'modal--hidden', 'modal--visible');
document.querySelectorAll('.quiz-modal.quiz-modal-three, .quiz-modal.quiz-modal-two').forEach(modal => modal.remove());
toggleModal('.quiz-modal.quiz-modal-one', null, 'hide-modal'); // Unhide modal one
return;
}
}
if (isTouchDevice()) {
document.body.addEventListener('touchstart', touchStartEventHandler)
}
}
// Dom manipulation to populate the quiz modal
if (quizPages.includes(currentPath)) {
// Retrieve and parse quiz data from sessionStorage
const quizData = sessionStorage.getItem('quizData');
if (quizData) {
try {
const [url, answerOne, answerTwo] = JSON.parse(quizData);
const currentUrl = window.location.href;
// Check if the current URL matches the stored URL
if (currentUrl.includes(url)) {
document.querySelectorAll(`.cmp-form .leo-radio__input input[value="${answerOne}"]`)[0].click();
document.querySelectorAll(`.cmp-form .leo-radio__input input[value="${answerTwo}"]`)[0].click();
}
} catch (error) {
//console.error('Failed to parse quiz data from sessionStorage:', error);
}
}
}
},
};
// Return if the test ran already!
if (document.querySelector(`.${test.id}`)) return;
// Polling conditions
if (document.querySelector('main.container .cmp-container > .aem-Grid')) {
try {
// Activate test
setTimeout(function () { test.init() }, 1000)
// Success log
console.log('Vertis Digital: EXP-10: V: 1:05');
} catch (error) {
// Error log
console.log(`Initialization Error:`, error);
}
} else {
Date.now() < timeInFuture
? setTimeout(loadVariation.bind({}, timeInFuture), 25)
: console.log("loadVariation timed out!");
}
})(Date.now() + 60000);
// End variation JS
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, R_722219_1027_1_2_0:{ fn:function(){return (function(x) { try{
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1739333374770"]')).remove();
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1739333374834"]');
el.revertContentOp().remove();
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, C_722219_1027_1_3_0:{ fn:function(){return (function(x) { try{
var _vwo_sel = vwo_$("");
!vwo_$("head").find("#1739333374787").length && vwo_$('head').append(_vwo_sel);
// Start variation JS
void (function loadVariation(timeInFuture) {
// Main Test object
const test = {
// Some test specific global letiables
id: "EXP-10-V2",
// Test init
init: function () {
// Add a test specific classname to the body element
document.body.classList.add(test.id);
// Below function calls order is important
test.mainJS();
},
// Main JS
mainJS: function () {
/* ---- LOGO ---- */
const crossIcon = `
`;
const newCrossIcon = `
`;
/* ---- DATA ---- */
// quiz data
const collections = [
{
quizName: "Healthy heart, Happy life - Quiz 1",
quizNumber: "quiz 1",
className: "healthy-heart-quiz-one",
image: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
coverImage: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
url: "https://www.greateasternlife.com/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/heart-health-and-you-quiz-1.html",
header: "Healthy heart, Happy life - Quiz 1",
quizDate: "Jan 06, 2025",
promoCopy: "Answer 3 simple questions and win an exclusive prize from Eu Yan Sang worth $15!",
questionOne: [
"1. One should see a ____________ if he/she is experiencing chest pain and shortness of breath as it could be a possible sign of heart disease and heart failure.",
["Cardiologist", "Dentist", "Gastroenterologist"]
],
questionTwo: [
"2. These chronic conditions – diabetes, high blood pressure, and high ___________ (also known as the “Three Highs”), are usually asymptomatic and may be unnoticed. It has been observed that patients are also developing these conditions at an increasingly earlier age.",
["Blood count", "Cholesterol", "Fever"]
]
},
{
quizName: "Healthy heart, Happy life - Quiz 2",
quizNumber: "quiz 2",
className: "healthy-heart-quiz-two",
image: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2.jpg",
coverImage: "https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2-thumbnail.jpg",
url: "https://www.greateasternlife.com/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/huat-the-heart-wants-quiz-2.html",
header: "Healthy heart, Happy life - Quiz 2",
quizDate: "Jan 20, 2025",
promoCopy: "Answer 3 simple questions and win an exclusive prize from Fitness First worth $60!",
questionOne: [
"1. Even though pineapple tarts are everywhere for the festive season, I should limit my intake to ____ pieces because it is equivalent to 7 teaspoons of sugar, which is within our recommended daily intake of 10 teaspoons.",
["2", "4", "6"]
],
questionTwo: [
"2. Nian gao, nian gao, in the box… which is the most calorie-loaded of them all?",
["Steamed", "Fried"]
]
},
];
// quiz icon links
const animatedIcon = "https://useruploads.visualwebsiteoptimizer.com/useruploads/722219/images/7a172faba185610e9d0a41c2db03373b_quizicon01.gif";
// quiz image links
const imageUrls = [
"https://useruploads.visualwebsiteoptimizer.com/useruploads/722219/images/2ec24e2a92a520a5701a7de9c9df9671_quizicon01hover.gif",
"https://useruploads.visualwebsiteoptimizer.com/useruploads/722219/images/7a172faba185610e9d0a41c2db03373b_quizicon01.gif",
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-1.jpg",
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2.jpg",
"https://www.greateasternlife.com/content/dam/corp-site/great-eastern/sg/gels-dme-rewards/health-programme/heart-health/gels-dme-rewards-heart-health-quiz-2-thumbnail.jpg"
];
// array of quiz pages
const quizPages = [
'/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/heart-health-and-you-quiz-1.html',
'/sg/en/personal-insurance/lifepedia/healthy-heart-happy-life/huat-the-heart-wants-quiz-2.html',
];
// array of pages to show quiz logo
const variationPages = [
'/sg/en/personal-insurance/lifepedia.html',
'/sg/en/personal-insurance/lifepedia/medical-coverage.html',
'/sg/en/personal-insurance/lifepedia/life-protection.html',
'/sg/en/personal-insurance/lifepedia/lifestyle-protection.html',
'/sg/en/personal-insurance/lifepedia/savings-and-investment.html',
'/sg/en/personal-insurance/lifepedia/retirement-income.html',
'/sg/en/personal-insurance/lifepedia/career.html',
'/sg/en/personal-insurance/rewards-and-promotions.html'
];
/* ---- Utility Functions ---- */
// // image preload function
function preloadImages(imageUrls) {
imageUrls.forEach(url => {
const img = new Image();
img.src = url;
});
}
// function to validate and process quiz data
function validationAndProcessQuizData(quizUrl, quizNumber) {
// Cache form elements
const formSection = document.querySelector('.form-section');
const questionOneInput = document.querySelectorAll('.form-group-one .radio-item input:checked')[0];
const questionTwoInput = document.querySelectorAll('.form-group-two .radio-item input:checked')[0];
// Validation: Check if questions are answered
const isEmpty = !(questionOneInput?.value) || !(questionTwoInput?.value.trim());
const existingError = formSection.querySelector('.error-copy');
const errorHtml = `
Please complete the questions.
`
if (isEmpty) {
// Add error message if it doesn't exist
if (!existingError) {
formSection.insertAdjacentHTML('beforeend', errorHtml);
formSection.classList.add('form-error');
return; // Exit the function
}
return;
}
// Remove error if validation passes
if (existingError) {
existingError.remove();
}
formSection.classList.remove('form-error');
// Prepare quiz data
const quizData = [
quizUrl.trim(),
questionOneInput.value.trim(),
questionTwoInput.value.trim(),
];
// Store the data in session storage
sessionStorage.setItem('quizData', JSON.stringify(quizData));
// step 3 - continue CTA click
let quizName = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - animated`;
let eventJourneyCTA = `vworq-hh-3-${quizName}-animated`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
// Redirect to the quiz URL
window.location.href = quizUrl;
}
// function to trigger GA events
function gaEventTrigger(eventAction, eventLabel, eventJourneyCTA = '') {
dataLayer.push({
event: "vwoEvent",
eventDetails: {
category: "[vwo] sticky icon",
action: eventAction,
label: eventLabel
},
contentSubcategory: "healthy heart quiz",
...(eventJourneyCTA ? { journeyCta: eventJourneyCTA } : {})
});
};
// fuction to detect touch device
const isTouchDevice = () => {
return (
'ontouchstart' in window || // Check for touch events
navigator.maxTouchPoints > 0 || // Check for touch points
navigator.msMaxTouchPoints > 0 // Microsoft-specific touch points
);
};
/* ---- HTML Templates Markup and Functions ---- */
// create Quiz cards markup
const createQuizCard = (className, coverImage, header, quizDate) => {
return (`
`;
// function to create inner content for modal level two
let modalTwoInnerContent = (className, title, promoCopy) => (`
${title}
${promoCopy}
Start now
`);
//function to generate radio buttons
function generateRadioButtons(options, groupName) {
// Helper function to generate a single radio item
const createRadioItem = (option, index) => {
const id = `${groupName}-option-${index + 1}`; // Unique ID for each option
return `
`;
};
// Generate all radio items
const radioItems = options.map((option, index) => createRadioItem(option, index)).join("");
// Wrap the radio items in the section structure
return `
${radioItems}
`;
}
// function to create inner content for modal level two
let modalThreeInnerContent = (className, questionOne, questionTwo) => (`
`);
// function to create markup for modals on level two and three
let quizModalfn = (className, quizName, image, modalInnerHtml, modalClassNameOne, modalClassNametwo) => (`
${quizCrossButton}
${quizCrossButton}
${modalInnerHtml}
`);
// markup for quiz modal level one
let quizModalLV1 = `
${quizCrossButton}
Take our simple quizzes and win instant rewards today!
Take part in our simple quizzes and win instant rewards today!
${QuizCards}
`;
// function to create the initial modal markup
let modalMarkup = () => (`
${quizModalLV1}
`);
/* ---- DOM Manipulation ---- */
// current url path
const currentPath = window.location.pathname;
// Dom manipulation for quiz variation
if (variationPages.includes(currentPath)) {
// preload images
preloadImages(imageUrls);
// insert quiz icon
if (document.querySelector('.quiz-icon-container')) return;
document.querySelector('main.container .cmp-container > .aem-Grid').insertAdjacentHTML('beforeend', quizIconHtml);
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - animated';
gaEventTrigger('impression', eventLabel);
// insert modal markup
document.querySelectorAll('main.container .cmp-container > .aem-Grid')[0].insertAdjacentHTML('beforeend', modalMarkup())
// click handler function for variation pages
function clickHandler(event) {
const { target } = event;
//console.log('target: ', target);
// Utility: Toggle modal visibility
const toggleModal = (selector, addClass, removeClass) => {
const modal = document.querySelector(selector);
if (modal) {
if (addClass !== null) modal.classList.add(addClass);
if (removeClass !== null) modal.classList.remove(removeClass);
}
};
// Utility: Map class names to modal numbers
const getModalNum = () => {
if (target.closest('.healthy-heart-quiz-one')) return 0;
if (target.closest('.healthy-heart-quiz-two')) return 1;
if (target.closest('.word-search-edition-three')) return 2;
return null; // Default if no match found
};
// Utility: Clear form errors
const clearFormErrors = () => {
document.querySelector('.form-section .error-copy')?.remove();
document.querySelector('.form-section.form-error')?.classList.remove('form-error');
};
// Handle: Quiz icon click (open modal)
if (target.closest('.quiz-icon-container .quiz-icon')) {
toggleModal('.quiz-modal-container', 'modal--visible', 'modal--hidden');
// click on quiz icon
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - animated';
let eventJourneyCTA = 'vworq-hh-win prizes-animated';
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
// Handle: Quiz cross icon click (cross icon)
if (target.closest('.quiz-icon-container .cross-icon')) {
document.querySelector('.quiz-icon-container').classList.add('hide-quiz-icon');
// hide quiz icon
let eventLabel = '[vwo_ce_rtg] rewards quiz - healthy heart - win prizes - animated';
gaEventTrigger('close', eventLabel);
return;
}
// Handle: Close modal
if (
target.closest('.modal-cross-button .cross-icon') ||
target.classList.contains('modal--visible')
) {
// step 1 modal - close
if (target.closest('.quiz-modal-content.quiz-level-one .modal-cross-button .cross-icon')) {
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - animated`;
gaEventTrigger('close', eventLabel);
}
// step 2 modal - close
if (target.closest('.quiz-modal-content.quiz-level-two .modal-cross-button .cross-icon')) {
//let quizName = document.querySelector('.quiz-modal.quiz-modal-two')?.getAttribute('quiz-name')?.toLowerCase();
let quizName = document.querySelector('.quiz-modal.quiz-modal-two')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizName} - animated`;
gaEventTrigger('close', eventLabel);
}
// step 3 - close
if (target.closest('.quiz-modal-content.quiz-level-three .modal-cross-button .cross-icon')) {
//let quizName = document.querySelector('.quiz-modal.quiz-modal-three')?.getAttribute('quiz-name')?.toLowerCase();
let quizName = document.querySelector('.quiz-modal.quiz-modal-three')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - animated`;
gaEventTrigger('close', eventLabel);
}
toggleModal('.quiz-modal-container', 'modal--hidden', 'modal--visible');
document.querySelectorAll('.quiz-modal.quiz-modal-three, .quiz-modal.quiz-modal-two').forEach(modal => modal.remove());
toggleModal('.quiz-modal.quiz-modal-one', null, 'hide-modal'); // Unhide modal one
return;
}
// Handle: Click on modal cards
if (target.closest('.quiz-modal-one .quiz-card')) {
const modalNum = getModalNum();
if (modalNum !== null) {
const { quizName, quizNumber, className, image, promoCopy, details } = collections[modalNum];
const modalTwoInnerHtml = modalTwoInnerContent(className, quizName, promoCopy, details);
const modalTwoMarkup = quizModalfn(className, quizName, image, modalTwoInnerHtml, 'quiz-modal-two', 'quiz-level-two');
document.querySelector('.quiz-modal.quiz-modal-one').insertAdjacentHTML('afterend', modalTwoMarkup);
toggleModal('.quiz-modal.quiz-modal-one', 'hide-modal', null);
// step 1 - popup card click
let quizTitle = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - ${quizTitle} - animated`;
let eventJourneyCTA = `vworq-hh-1-${quizTitle}-animated`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
return;
}
// Handle: Click on quiz start button in modal two
if (target.closest('.quiz-modal.quiz-modal-two .quiz-button')) {
const questionModalNum = getModalNum();
if (questionModalNum !== null) {
const { quizName, quizNumber, className, image, questionOne, questionTwo } = collections[questionModalNum];
const modalThreeInnerHtml = modalThreeInnerContent(className, questionOne, questionTwo);
const modalThreeMarkup = quizModalfn(className, quizName, image, modalThreeInnerHtml, 'quiz-modal-three', 'quiz-level-three');
document.querySelector('.quiz-modal.quiz-modal-one').insertAdjacentHTML('afterend', modalThreeMarkup);
toggleModal('.quiz-modal.quiz-modal-two', 'hide-modal', null);
// step 2 - start now CTA click
let quizTitle = quizNumber.toLowerCase();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizTitle} - animated`;
let eventJourneyCTA = `vworq-hh-2-${quizTitle}-animated`;
gaEventTrigger('click', eventLabel, eventJourneyCTA);
}
return;
}
// Handle: Click on quiz button in modal three (final action)
if (target.closest('.quiz-modal.quiz-modal-three .quiz-button')) {
const questionModalNum = getModalNum();
if (questionModalNum !== null) {
const { url, quizNumber } = collections[questionModalNum];
// Validate input and process quiz data
validationAndProcessQuizData(url, quizNumber);
}
return;
}
// Handle: Input focus (clear errors)
if (target.closest('input#form-quiestion-one') || target.closest('input#form-quiestion-two')) {
clearFormErrors();
return;
}
}
// Attach click handler to the document
document.body.addEventListener('click', clickHandler);
function touchStartEventHandler(event) {
const { target } = event;
//console.log('target touch: ', target);
// Utility: Toggle modal visibility
const toggleModal = (selector, addClass, removeClass) => {
const modal = document.querySelector(selector);
if (modal) {
modal.classList.add(addClass);
modal.classList.remove(removeClass);
}
};
// Handle: Close modal
if (
target.closest('.modal-cross-button .cross-icon') ||
target.classList.contains('modal--visible')
) {
// step 1 - close
if (target.closest('.quiz-modal-content.quiz-level-one .modal-cross-button .cross-icon')) {
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 1 - select quiz - animated`;
gaEventTrigger('close', eventLabel);
}
// step 2 - close
if (target.closest('.quiz-modal-content.quiz-level-two .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-two')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 2 - start now - ${quizName} - animated`;
gaEventTrigger('close', eventLabel);
}
// step 3 - close
if (target.closest('.quiz-modal-content.quiz-level-three .modal-cross-button .cross-icon')) {
let quizName = document.querySelector('.quiz-modal.quiz-modal-three')?.getAttribute('quiz-name').split('-')[1].toLowerCase().trim();
let eventLabel = `[vwo_ce_rtg] rewards quiz - healthy heart - step 3 - continue - ${quizName} - animated`;
gaEventTrigger('close', eventLabel);
}
toggleModal('.quiz-modal-container', 'modal--hidden', 'modal--visible');
document.querySelectorAll('.quiz-modal.quiz-modal-three, .quiz-modal.quiz-modal-two').forEach(modal => modal.remove());
toggleModal('.quiz-modal.quiz-modal-one', null, 'hide-modal'); // Unhide modal one
return;
}
}
if (isTouchDevice()) {
document.body.addEventListener('touchstart', touchStartEventHandler)
}
}
// Dom manipulation to populate the quiz modal
if (quizPages.includes(currentPath)) {
// Retrieve and parse quiz data from sessionStorage
const quizData = sessionStorage.getItem('quizData');
if (quizData) {
try {
const [url, answerOne, answerTwo] = JSON.parse(quizData);
const currentUrl = window.location.href;
// Check if the current URL matches the stored URL
if (currentUrl.includes(url)) {
document.querySelectorAll(`.cmp-form .leo-radio__input input[value="${answerOne}"]`)[0].click();
document.querySelectorAll(`.cmp-form .leo-radio__input input[value="${answerTwo}"]`)[0].click();
}
} catch (error) {
//console.error('Failed to parse quiz data from sessionStorage:', error);
}
}
}
},
};
// Return if the test ran already!
if (document.querySelector(`.${test.id}`)) return;
// Polling conditions
if (document.querySelector('main.container .cmp-container > .aem-Grid')) {
try {
// Activate test
setTimeout(function () { test.init() }, 1000)
// Success log
console.log('Vertis Digital: EXP-10: V: 2:05');
} catch (error) {
// Error log
console.log(`Initialization Error:`, error);
}
} else {
Date.now() < timeInFuture
? setTimeout(loadVariation.bind({}, timeInFuture), 25)
: console.log("loadVariation timed out!");
}
})(Date.now() + 60000);
// End variation JS
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, R_722219_1027_1_3_0:{ fn:function(){return (function(x) { try{
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1739333374850"]')).remove();
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1739333374787"]');
el.revertContentOp().remove();
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, C_722219_985_1_2_0:{ fn:function(){return (function(x) { try{
function setCookie(e,t,o){const i=new Date;i.setTime(i.getTime()+24*o*60*60*1e3);const n="expires="+i.toUTCString();document.cookie=e+"="+t+";"+n+";path=/; domain=.greateasternlife.com"}setCookie("lastPageVisited","product",180);
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, C_722219_763_1_2_0:{ fn:function(log,nonce=''){return (function(x) {var el,ctx=vwo_$(x);
/*vwo_debug log("remove",".cmp-marquee-promotion"); vwo_debug*/(el=vwo_$(".cmp-marquee-promotion")).vwoCss({display:"none !important"});})(".cmp-marquee-promotion")}}, ct998_7968865b609e3fc27b943d00b3dd1b98:{ fn:function(executeTrigger, vwo_$) {
(function () {
if (location.pathname !== '/sg/en/personal-insurance.html') return false;
const cookieName = "quotationData";
const productsPurchasedCookieName = "personalization_products_purchased";
// Function to get cookie
function getCookie(cname) {
const name = cname + "=";
const decodedCookie = decodeURIComponent(document.cookie);
const cookies = decodedCookie.split(';');
for (const cookie of cookies) {
const c = cookie.trim();
if (c.indexOf(name) === 0) {
return c.substring(name.length);
}
}
return "";
}
const existingCookie = getCookie(cookieName);
const productsPurchasedStr = getCookie(productsPurchasedCookieName);
const productData = existingCookie ? JSON.parse(existingCookie) : {};
const productPurchaseData = productsPurchasedStr ? JSON.parse(productsPurchasedStr) : [];
const productsViewedCTAArr = [
{ "name": "GREAT Protector Active" }
];
// Check if any product from productsViewedCTAArr is in productPurchaseData
const hasMatchingProduct = productsViewedCTAArr.some(viewedProduct =>
productPurchaseData.some(purchasedProduct => purchasedProduct.name === viewedProduct.name)
);
let bannerCount = localStorage.getItem('bannerViewCount');
if (
!hasMatchingProduct &&
productData &&
productData.productJourney &&
(bannerCount === null || (bannerCount && parseInt(bannerCount, 10) < 3))
) {
//alert('activate');
executeTrigger();
}
})()
}}, C_722219_998_1_3_0:{ fn:function(){return (function(x) { try{
// Start variation JS
void (function loadVariation(timeInFuture) {
// Main Test object
const test = {
// Some test specific global letiables
id: "EXP-1-control",
// Test init
init: function () {
// Add a test specific classname to the body element
document.body.classList.add(test.id);
// Below function calls order is important
test.mainJS();
},
// Main JS
mainJS: function () {
const cookieName = "quotationData";
// Function to get cookie
function getCookie(cname) {
const name = cname + "=";
const decodedCookie = decodeURIComponent(document.cookie);
const cookies = decodedCookie.split(';');
for (const cookie of cookies) {
const c = cookie.trim();
if (c.indexOf(name) === 0) {
return c.substring(name.length);
}
}
return "";
}
// function to trigger GA events
function gaEventTrigger(eventAction, eventLabel, eventSubCategory = '', eventJourneyCTA = '') {
dataLayer.push({
event: "vwoEvent",
eventDetails: {
category: "[vwo] floating banner - ab test - control",
action: eventAction,
label: eventLabel
},
...(eventSubCategory ? { contentSubcategory: eventSubCategory } : {}),
...(eventJourneyCTA ? { journeyCta: eventJourneyCTA } : {})
});
};
const existingCookie = getCookie(cookieName);
const productData = existingCookie ? JSON.parse(existingCookie) : {};
let productName = productData?.productJourney;
// Retrieve banner view count from localStorage or default to 0
let bannerViewCount = parseInt(localStorage.getItem('bannerViewCount') || '0', 10);
// Check session storage for the 'viewInSession' flag, defaulting to 'show'
const viewInSession = sessionStorage.getItem('viewInSession') || 'show';
// Update session storage if not already set
if (viewInSession === 'show') {
sessionStorage.setItem('viewInSession', 'show');
// Increment and update banner view count in localStorage
bannerViewCount += 1;
localStorage.setItem('bannerViewCount', bannerViewCount);
}
if (
productData &&
productData.productJourney &&
location.pathname === '/sg/en/personal-insurance.html' &&
bannerViewCount <= 2 &&
viewInSession !== 'dont show'
) {
// trigger impression event
let eventLabel = (`[vwo_ce_rtg] resume orion journey floating banner - ${productName}`).toLowerCase();
let eventSubCategory = productName.toLowerCase();
gaEventTrigger('impression', eventLabel, eventSubCategory);
// set banner view count to session & local storage
sessionStorage.setItem('viewInSession', 'seen');
}
},
};
// Return if the test ran already!
if (document.querySelector(`.${test.id}`)) return;
// Polling conditions
if (document.readyState === 'complete') {
try {
// Activate test
test.init();
// Success log
console.log('Vertis Digital: Control: EXP-1: V: 1:01');
} catch (error) {
// Error log
console.log(`Initialization Error:`, error);
}
} else {
Date.now() < timeInFuture
? setTimeout(loadVariation.bind({}, timeInFuture), 25)
: console.log("loadVariation timed out!");
}
})(Date.now() + 60000);
// End variation JS
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, R_722219_998_1_2_0:{ fn:function(){return (function(x) { try{
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1736837447632"]')).remove();
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1736837447668"]');
el.revertContentOp().remove();
return vwo_$('head')[0] && vwo_$('head')[0].lastChild; } catch(e) {} })("HEAD")}}, C_722219_998_1_2_0:{ fn:function(){return (function(x) { try{
var _vwo_sel = vwo_$("");
!vwo_$("head").find("#1736837447668").length && vwo_$('head').append(_vwo_sel);
// Start variation JS
void (function loadVariation(timeInFuture) {
// Main Test object
const test = {
// Some test specific global letiables
id: "EXP-1-Home",
// Test init
init: function () {
// Add a test specific classname to the body element
document.body.classList.add(test.id);
// Below function calls order is important
test.mainJS();
},
// Main JS
mainJS: function () {
const cookieName = "quotationData";
const dataPopulationCookieName = "data-population-cookie";
// Function to get cookie
function getCookie(cname) {
const name = cname + "=";
const decodedCookie = decodeURIComponent(document.cookie);
const cookies = decodedCookie.split(';');
for (const cookie of cookies) {
const c = cookie.trim();
if (c.indexOf(name) === 0) {
return c.substring(name.length);
}
}
return "";
}
// Utility function to Function to set cookie
function setCookie(cname, cvalue, exmin) {
const d = new Date();
d.setTime(d.getTime() + (exmin * 60 * 1000));
const expires = `expires=${d.toUTCString()}`;
document.cookie = `${cname}=${cvalue}; ${expires}; path=/; domain=.greateasternlife.com`;
};
// function to trigger GA events
function gaEventTrigger(eventAction, eventLabel, eventSubCategory = '', eventJourneyCTA = '') {
dataLayer.push({
event: "vwoEvent",
eventDetails: {
category: "[vwo] floating banner - ab test - expose",
action: eventAction,
label: eventLabel
},
...(eventSubCategory ? { contentSubcategory: eventSubCategory } : {}),
...(eventJourneyCTA ? { journeyCta: eventJourneyCTA } : {})
});
};
const existingCookie = getCookie(cookieName);
const productData = existingCookie ? JSON.parse(existingCookie) : {};
const productLinks = {
'GREAT Protector Active': 'https://buy-uat-greateasternlife.adobecqms.net/sg/en/personal-accident-insurance/200201/get-quotation.html'
}
let productName = productData?.productJourney;
let productRedirect = productLinks[productData?.productJourney];
const crossIcon = `
`;
const createBanner = (productName) => (`
${crossIcon}
Ready to complete your purchase for ${productName}?
The Common Reporting Standard (CRS) requires financial institutions around the world to determine where their customers are tax resident and report that information to the government.
CRS may affect you as an individual or business customer if you purchase or hold a policy that is within the CRS scope.
We will contact you to make a declaration regarding your tax residency if you are affected.
The following information regarding CRS terms may be useful.
CRS Terms
Reportable information
The following will be reported to the local tax authority:
Personal information on the reportable person, i.e. name, address, Tax Identification Number (TIN), date of birth.
Financial account information, i.e. account number, balance, interest, dividends, other income and gross proceeds.
Legal enforcement of Automatic Exchange Of Information (AEOI)
Each jurisdiction is able to decide whether it will implement AEOI or not. Consequently, AEOI is implemented on a country-by-country basis.
In addition, in order for two jurisdictions to be able to exchange information, they must have an intergovernmental agreement – a so-called Competent Authority Agreement (CAA) – in place.
Status of commitments
More than 100 jurisdictions have committed to the implementation of AEOI. However, the enforcement is subject to local law and needs to be enacted by every single jurisdiction.
The list with current status of commitments can be found here.
Effective date
Jurisdictions committed to undertake first exchanges by 2017 (early adopter jurisdictions) are expected to implement the due diligence procedures as of 1 January 2016.
Jurisdictions committed to undertake first exchanges by 2018 (late adopter jurisdictions) are expected to implement the due diligence procedures as of 1 January 2017.
For more information on CRS, please refer to the FAQs below.
The Foreign Account Tax Compliance Act (FATCA) requires all financial institutions (FIs) outside of the United States (U.S.) to report account information belonging to U.S. persons to the U.S. Internal Revenue Service (U.S. IRS).
FATCA may affect you as an Individual or Entity Account Holder if you purchase or hold a policy with Great Eastern that falls within the scope of FATCA requirements. We will contact you to obtain the necessary self-certification form, U.S. IRS W series form and supporting documents (where applicable) if you are affected.
For more information on FATCA, please refer to the FAQs below.
You can also refer to the IRAS FAQs. Additional information is also available via the IRAS website.
How to submit tax declaration
Great Eastern App
How to submit tax declaration
Great Eastern App
Email and post
Great Eastern App
1
Sign in to the Great Eastern App using your Great ID or Singpass.
2
Tap Services from the navigation bar.
3
Tap Personal particulars.
4
Tap Update tax residency.
5
Check that your personal information is up to date and tap Yes. Otherwise, tap No, update with Singpass Myinfo.
6
Select the Country(ies), key in the corresponding Tax Identification Number (TIN), and tap Next.
7
If TIN is not available, indicate reasons and tap Next.
8
Provide additional details and supporting documentation if required, then tap Next.
9
Confirm that the information is correct and tap Next.
10
Check the box after you have read and agreed to the declaration and terms and conditions, then tap Submit.
11
You will be notified when your request has been processed.
Download the Great Eastern App today!
1. Download Documents
To make tax declaration, we'll require you to complete and submit the relevant form:
You can visit any of our Customer Service Centres, or send the completed application form and supporting documents to us by post.
Attention to: Customer Service Department
The Great Eastern Life Assurance Company Limited
1 Pickering Street
Great Eastern Centre #01-01
Singapore 048659
Questions and Answers
Common Reporting Standard (CRS)
CRS is designed to mitigate offshore tax evasion. It provides participating countries transparency on the financial assets held offshore by their tax residents. CRS is a reporting regime and is not designed with the objective of imposing additional taxes.
CRS requires financial institutions based in CRS participating countries to identify customer tax residencies and report financial accounts held directly or indirectly by foreign tax residents to the local tax authorities in the jurisdiction where the financial institutions are based. The local tax authorities (in participating countries) are expected to exchange this information with the relevant tax authority in a participating country.
We will request that impacted customers to complete a self-certification form that includes a declaration of their tax residency.
Under the CRS requirements, we will be asking for these information:
Name
Address
Place of birth* (for Individual and Controlling Persons)
Date of birth*(for Individual and Controlling Persons)
Country(ies) of tax residence
Taxpayer identification number(s)*
Place of registration/incorporation (for Entities)
Entity Type (for Entities)
Controlling Person Type for certain Entity Types (for Controlling Persons)* this does not apply in all participating countries and is subject to local law requirements
Tax residency refers to where you are resident for tax purposes and each country has its own criteria to determine it. Please consult your tax advisor or the OECD website for more information.
If you do not provide the requested information / certification, regardless of you being an existing customer of Great Eastern or not, Great Eastern may not be able to issue certain policies to you.
If there is any change in the information provided to Great Eastern, you are required to inform Great Eastern immediately so that we can advise you of further documentation required, if any.
Regretfully, Great Eastern is unable to provide professional tax advice. Please refer to the OECD website or seek advice from a tax advisor.
By regulation, there are only 2 circumstances in which a TIN is not required to be collected or reported:
a TIN is not issued by the relevant Reportable Jurisdiction; or
the domestic law of the relevant Reportable Jurisdiction does not require the collection of the TIN issued by such Reportable Jurisdiction.
However, in certain circumstances, you might not have a TIN temporarily or due to personal circumstances. In such instances, you would need to justify the absence of TIN.
No, all financial institutions in CRS participating countries are required to collect and report account holder information.
Your data and privacy are important to us. For more information please view our Privacy Statement to find out how we collect and handle your personal data.
Additional information for the CRS is still required to be provided even if you have already provided information under the United States government's Foreign Account Tax Compliance Act (FATCA) as these are different regulations with different requirements.
Foreign Account Tax Compliance Act (FATCA)
FATCA is a regulation enacted by the U.S. in March 2010 to deter and detect U.S. tax evasion by U.S. persons through the use of foreign financial accounts. FATCA requires all FIs outside the U.S. to report, on a regular basis, information about financial accounts held by U.S. persons to the U.S. IRS.
In 2014, Singapore entered into a Model 1 Intergovernmental Agreement (IGA) with the U.S. to facilitate compliance with the U.S. FATCA by Singapore-based Financial Institutions (SGFIs). Under the IGA, reporting SGFIs are required to perform due diligence to identify financial accounts held by Specified U.S. persons and report such financial account information to the Inland Revenue Authority of Singapore (IRAS). IRAS will in turn share this information with the U.S. IRS.
As a reporting Singapore FI, Great Eastern is required to collect and submit information on financial accounts held by Specified U.S. persons to IRAS.
FATCA was established to deter and combat U.S. tax evasion by U.S. persons whereas the CRS is intended to deter and combat tax invasion on a global level.
While the FATCA only requires SGFIs to identify and report account information of specified U.S. persons to IRAS, the CRS will require SGFIs to establish the tax residence(s) of all their customers and report to IRAS the financial account information of customers who are tax residents of jurisdictions where Singapore has a Competent Authority Agreement (CAA) based on CRS to exchange the information with.
A U.S. person refers to:
a. an individual who is a U.S. citizen or U.S resident (including U.S green card holder); or
b. a partnership or corporation organised in the U.S. or under the laws of the U.S. or any State thereof, a trust if:
a court within the U.S. would have authority under applicable law to render orders or judgments concerning substantially all issues regarding administration of the trust; and
one or more U.S. persons have the authority to control all substantial decisions of the trust, or an estate of a decedent that is a citizen or resident of the U.S.
We may not be able to issue certain policies to you. For existing policyholders, we may need to report your account information to the IRAS.
If there is any change to the information provided to us previously, please update your information immediately with us and submit the relevant forms. We may approach you for further requirements or clarifications, if any.
Your data and privacy is important to us. Customer details are secured by a strict protocol. For more information, please view our Privacy Statement to find out how we collect and handle your personal data. We safeguard your personal data in accordance with our guidelines.
Yes. You will need to submit a CRS self-certification form and FATCA W series form (if applicable) which can be found on the Great Eastern website. We may reach out to you for supporting documents, if required.
Generally, personal information such as name, address, date of birth, country(ies) of tax residence, U.S. TIN, and financial account information such as account balance will be submitted to IRAS.
For general questions on FATCA, please feel free to contact your agent or refer to the IRAS website for more information. However, we are unable to provide any tax advice. For questions on your tax residency, please refer to the IRAS website or seek advice from your tax advisor.
In general, customers should provide the details by the stipulated date as indicated in our notification requests such as email, SMS, or letter.