try { var alt_url = window.location.href; var alt_url_en = encodeURIComponent(alt_url); var alt_pathname = document.location.pathname.replace(/\/$/,""); var alt_dynamic_url = '//track.agentleads.sg/'; var alt_datajs = 'data.js.php'; var alt_sid = 0; var alt_server_uid = false; var alt_uid = false; var alt_sess = 0; var alt_sess_pv = 0; var alt_date = new Date(); var alt_page_url = alt_url; var alt_page_title = ""; var alt_referrer = document.referrer; var alt_ready_bound = false; var alt_is_ready = false; var alt_debug = 1; var alt_already_run_flag = false; var alt_cookiedomain = ''; var alt_ro = 1; var alt_use_cookies = true; var alt_live = 0; var alt_live_filter_products = false; var alt_abk_wg = 0; var alt_browser_detect = { init: function() { this.browser = this.search_string(this.data_browser) || 'An unknown browser'; this.version = this.search_version(navigator.userAgent) || this.search_version(navigator.appVersion) || "an unknown version"; this.OS = this.search_string(this.dataOS) || "an unknown OS"; if (this.OS == 'iPhone') { if (navigator.appVersion.indexOf('CriOS') > -1) { this.browser = 'Chrome'; } if (navigator.appVersion.indexOf('FxiOS') > -1) { this.browser = 'Firefox'; } } }, search_string: function(data) { for (var i = 0; i < data.length; i++) { var data_string = data[i].string; var data_prop = data[i].prop; this.version_search_string = data[i].version_search || data[i].identity; if (data_string) { if (data_string.indexOf(data[i].sub_string) != -1) { return data[i].identity; } } else if (data_prop) { return data[i].identity; } } }, search_version: function(data_string) { var index = data_string.indexOf(this.version_search_string); if (index == -1) { return; } return parseFloat(data_string.substring(index + this.version_search_string.length + 1)); }, data_browser: [ { string: navigator.userAgent, sub_string: "Edge", identity: "Edge" }, { string: navigator.userAgent, sub_string: "Chrome", identity: "Chrome" }, { string: navigator.userAgent, sub_string: "OmniWeb", version_search: "OmniWeb/", identity: "OmniWeb" }, { string: navigator.vendor, sub_string: "Apple", identity: "Safari", version_search: "Version" }, { prop: window.opera, identity: "Opera", version_search: "Version" }, { string: navigator.vendor, sub_string: "iCab", identity: "iCab" }, { string: navigator.vendor, sub_string: "KDE", identity: "Konqueror" }, { string: navigator.userAgent, sub_string: "Firefox", identity: "Firefox" }, { string: navigator.vendor, sub_string: "Camino", identity: "Camino" }, { // for newer Netscapes (6+) string: navigator.userAgent, sub_string: "Netscape", identity: "Netscape" }, { string: navigator.userAgent, sub_string: "MSIE", identity: "Explorer", version_search: "MSIE" }, { //#131124 string: navigator.userAgent, sub_string: "Trident", identity: "Explorer", version_search: "rv" }, { string: navigator.userAgent, sub_string: "Gecko", identity: "Mozilla", version_search: "rv" }, { // for older Netscapes (4-) string: navigator.userAgent, sub_string: "Mozilla", identity: "Netscape", version_search: "Mozilla" } ], dataOS : [ { string: navigator.userAgent, sub_string: "Android", identity: "Android" }, { string: navigator.platform, sub_string: "Win", identity: "Windows" }, { string: navigator.platform, sub_string: "Mac", identity: "Mac" }, { string: navigator.userAgent, sub_string: "iPhone", identity: "iPhone" // also ipod }, { string: navigator.userAgent, sub_string: "iPad", identity: "iPad" }, { string: navigator.platform, sub_string: "Linux", identity: "Linux" } ] }; var alt_load_file = function(file_name, file_type) { if( file_type == 'js' ) { var file_ref = document.createElement('script'); file_ref.setAttribute('type', 'text/javascript'); file_ref.setAttribute('src', file_name); } else if ( file_type === 'css' ) { var file_ref = document.createElement('link'); file_ref.setAttribute('rel', 'stylesheet'); file_ref.setAttribute('type', 'text/css'); file_ref.setAttribute('href', file_name); } if (typeof file_ref !== 'undefined') { document.getElementsByTagName('head')[0].appendChild(file_ref); } } var alt_load_data = function (params, raw_data) { var params_arr = []; var custom = raw_data || ''; if (custom !== '' && custom[0] !== '&') { custom = '&' + custom; } for (var key in params) { if (!params.hasOwnProperty(key)) { continue; } params_arr.push(key + '=' + params[key]); } params_arr.push('ts=' + Math.ceil(10000 * Math.random())); alt_load_file(alt_dynamic_url + alt_datajs + '?' + params_arr.join('&') + custom, 'js'); } function alt_log_error(msg) { alt_uid = alt_read_cookie('alt_uid'); alt_load_file(alt_dynamic_url + 'logger.js.php?sid=' + alt_sid + '&uid=' + alt_uid + '&elo=' + encodeURIComponent(msg) + '&url=' + encodeURIComponent(window.location.href) + '&browser=' + encodeURIComponent(navigator.appCodeName + ' ' + navigator.appVersion), 'js'); } function alt_log_console(msg) { if (alt_debug == 0) { return; } window.console && console.log(msg); } function alt_create_cookie(name, value, days) { if(alt_use_cookies) { var expires = ''; if (typeof days !== 'undefined') { var date = new Date(); date.setTime(date.getTime() + parseInt(days * 24 * 60 * 60 * 1000)); if (days != 0) { expires = '; expires=' + date.toGMTString(); } } document.cookie = name + '=' + value + expires + '; path=/; domain=' + alt_cookiedomain + '; secure; SameSite=Lax'; } else { document.cookie = name + '=0;expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=' + alt_cookiedomain + '; secure; SameSite=Lax'; if (days==0) { alt_create_storage_value(name, value, parseInt(30 * 60)); } else { alt_create_storage_value(name, value, parseInt(days * 24 * 60 * 60)); } } } function alt_read_cookie(name) { var alt_read_real_cookie = function (name){ var nameEQ = name + '='; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1,c.length); } if (c.indexOf(nameEQ) == 0) { return c.substring(nameEQ.length,c.length); } } return null; }; if(alt_use_cookies == true){ var cookie = alt_read_real_cookie(name); if(cookie != null){ return cookie; } } var item = alt_read_storage_value_all(name); if (item !== null) { if(alt_use_cookies ==true){ var expireDays=parseInt((item.expire-(new Date().getTime()/1000))/24 / 60 / 60); alt_create_cookie(name, item.value, expireDays); } return item.value; } item = alt_read_session_value(name); if (item !== null) { if(alt_use_cookies ==true){ alt_create_cookie(name,item, 0); } return item; } return alt_read_real_cookie(name); } //Storage module (function() { function _create_storage_value(storage_object, key, val) { storage_object.setItem(key, JSON.stringify(val)); } function _read_storage_value(storage_object, key, default_value) { var val = storage_object.getItem(key); if (val === null) { if (typeof default_value !== 'undefined') { val = default_value; } } else { val = JSON.parse(val); } return val; } function _delete_storage_value(storage_object, key) { storage_object.removeItem(key); } window.alt_create_storage_value = function(key, val, expire_time) { var expire_time = expire_time || 0; return _create_storage_value(localStorage, key, { expire: expire_time > 0 ? parseInt(Date.now() / 1000) + expire_time : expire_time, value: val }); }; window.alt_read_storage_value_all = function(key, default_value) { var val = _read_storage_value(localStorage, key); if (val !== null) { if (val.expire == 0 || (!val.expire < parseInt(Date.now() / 1000))) { return val; } } return null; }; window.alt_read_storage_value = function(key, default_value) { var val = alt_read_storage_value_all(key); if (val !== null) { val = val.value; }else if (typeof default_value !== 'undefined') { val = default_value; } return val; }; window.alt_delete_storage_value = function(key) { return _delete_storage_value(localStorage, key); }; window.alt_create_session_value = function(key, val) { return _create_storage_value(sessionStorage, key, val); }; window.alt_read_session_value = function(key, default_value) { return _read_storage_value(sessionStorage, key, default_value); }; window.alt_delete_session_value = function(key) { return _delete_storage_value(sessionStorage, key); }; })(); function alt_listen(evnt, elem, func) { elem.addEventListener(evnt, func, false); return false; } function alt_in_array(item, array) { var o = {}; for (var i = 0; i < array.length; i++) { o[array[i]] = ''; } return (item in o); } function alt_bind_ready() { if (alt_ready_bound) { return; } alt_ready_bound = true; // Mozilla, Opera and webkit nightlies currently support this event if (document.addEventListener) { // Use the handy event callback document.addEventListener('DOMContentLoaded', function() { document.removeEventListener('DOMContentLoaded', arguments.callee, false); alt_dom_ready(); }, false); } else if (document.attachEvent) { // If IE event model is used // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent('onreadystatechange', function() { if (document.readyState === 'complete') { document.detachEvent('onreadystatechange', arguments.callee); alt_dom_ready(); } }); // If IE and not an iframe // continually check to see if the document is ready if (document.documentElement.doScroll && window == window.top) { (function(){ if (alt_is_ready) { return; } try { // If IE is used, use the trick by Diego Perini // http://javascript.nwbox.com/IEContentLoaded/ document.documentElement.doScroll('left'); } catch(error) { setTimeout(arguments.callee, 0); return; } // and execute any waiting functions alt_dom_ready(); })(); } } // A fallback to window.onload, that will always work alt_listen('load', window, alt_dom_ready); } function alt_gup(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.href); if (results == null) { return ''; } else { return results[1]; } } var decorate_links_with_aluid = function(altuid) { var host = document.location.host.toLowerCase(); var all_links = document.getElementsByTagName("a"); for(var i=0; i 1 ) { delimiter = "&"; } var new_url = url+""+delimiter+"altu="+altuid; link_element.href = new_url; } } } } function alt_start() { try { var wait = false; if( typeof(alt_hold_execution) == "function" ) { wait = alt_hold_execution(); } if (wait) { alt_log_console('alt wait'); window.setTimeout(function(){ alt_start(); }, 500); return; } if (alt_already_run_flag) { return; } alt_already_run_flag = true; // cookie domain (starts with dot) if (!alt_cookiedomain) { if (document.location.host.substring(0, 4) === 'www.') { alt_cookiedomain = '.' + document.location.host.substring(4); } else { alt_cookiedomain = '.' + document.location.host; } } alt_browser_detect.init(); // bots if (typeof navigator.userAgent !== 'undefined') { if (navigator.userAgent.search('Googlebot') > -1) { return; } if (navigator.userAgent.search('BrowserMob') > -1) { return; } } // if unsupported browser if (!alt_in_array(alt_browser_detect.browser, ['Explorer', 'Safari', 'Firefox', 'Chrome', 'Mozilla', 'Opera', 'Edge'])) { return; } // Opera allowed only on android if ((alt_browser_detect.browser === 'Opera') && (alt_browser_detect.OS !== 'Android')) { return; } alt_sid = "61223"; alt_cookiedomain = ".yasserkhan.sg"; alt_ro = 0; if( document.location.hostname.replace(/^www./,'') != "yasserkhan.sg" ) { alt_ro = 1; } if( alt_pathname == "/coaching/mastery-coaching" ) { alt_live = 1; alt_live_filter_products = "2493459,3243139"; } // check for user cookie alt_uid = alt_read_cookie('alt_uid'); if (alt_uid == null) { // check if altu is available in URL, take that and set in cookie alt_uid = alt_gup("altu"); if( alt_uid == "" ) { alt_uid = Math.ceil((10000000000000 * Math.random()) + alt_date.getTime()); alt_create_cookie('alt_uid', alt_uid, 365); // check cookies support alt_uid = alt_read_cookie('alt_uid'); if ((typeof alt_uid === 'undefined') || alt_uid == null || isNaN(alt_uid)) { alt_log_console('alt cookies disabled or cookiedomain problem'); return; } } else { alt_uid = parseInt(alt_uid); alt_create_cookie('alt_uid', alt_uid, 365); // refresh } } else { alt_create_cookie('alt_uid', alt_uid, 365); // refresh } /* add altuid to external urls to track cross domains */ decorate_links_with_aluid(alt_uid); var alt_str = ''; alt_str += '&lv=' + alt_live; alt_str += '&abkw=' + alt_abk_wg; if( typeof(alt_live_filter_products) == "string" && alt_live_filter_products != "" ) { alt_str += '&lv_fl_pd=' + alt_live_filter_products; } alt_str += '&ro=' + alt_ro; var alt_lvt = alt_read_cookie('alt_lvt'); alt_str += '&lvt=' + alt_lvt; var usertime = Math.round(alt_date.getTime() / 1000); alt_create_cookie('alt_lvt', usertime, 365); alt_str += '&ut=' + usertime; var new_session = false; var session_reset = false; if (alt_lvt != null && (usertime - parseInt(alt_lvt)) > 3600) { session_reset = true; } alt_sess = alt_read_cookie('alt_sess'); if ((alt_sess == null) || (null == alt_read_cookie('alt_sess_pv')) || session_reset) { if (alt_sess == null) { alt_sess = 0; } new_session = true; alt_sess = parseInt(alt_sess) + 1; alt_create_cookie('alt_sess', alt_sess, 365); } alt_str += '&ses=' + alt_sess; alt_sess_pv = parseInt(alt_read_cookie('alt_sess_pv')); if (isNaN(alt_sess_pv) || session_reset) { alt_sess_pv = 1; } alt_create_cookie('alt_sess_pv', alt_sess_pv + 1, 0); alt_str += '&spv=' + alt_sess_pv; alt_str += '&snew=' + new_session; alt_str += '&pti=' + encodeURIComponent(document.title); alt_str += '&ref=' + encodeURIComponent(document.referrer); alt_str += "&br=" + alt_browser_detect.browser + "&v=" + alt_browser_detect.version + "&os=" + alt_browser_detect.OS; alt_str += "&th=" + alt_date.getHours(); alt_str += "&tdw=" + alt_date.getDay(); alt_str += "&tdm=" + alt_date.getDate(); alt_load_data({ a: 'pv', sid: alt_sid, uid: alt_uid, pt: 'pv', url: alt_url_en }, alt_str); } catch(err) { console.log(err.message); } } // call alt_start - this must be after alt_start definition due to FF issue function alt_dom_ready() { if (!alt_is_ready) { alt_is_ready = true; alt_start(); } } // end startearly code alt_bind_ready(); } catch(err) { // allow page to finish loading before reporting. setTimeout(function() { alt_log_error('alt error: ' + err.message + err.stack); }, 8000); }