PageSourceSearch

https://www.moneymarketing.co.uk/content/plugins/yeloni-free-exit-popup/common/loader.js?ver=6.8.1

js moneymarketing.co.uk collected 2026-09-24 18:34:43 UTC 8,165 bytes, 250 lines download raw bytes

1//console.log('inside loader.js');
2
3
4window.defineYetience = function(yetience_callback) {
5    if (!window.yetience) {
6        //console.log('window.yetience was not defined. initializing')
7        window.yetience = {}
8    };
9
10    window.yetience.fileLoader = {
11        script: function(src, callback) {
12            var s = document.createElement('script');
13            s.setAttribute('src', src);
14            s.onload = window.yetience.callBackAfterDelay(callback);
15            document.body.appendChild(s);
16        },
17        style: function(href, callback) {
18            var styles = document.createElement('link');
19            styles.rel = 'stylesheet';
20            styles.type = 'text/css';
21            styles.media = 'screen';
22            styles.href = href;
23            document.getElementsByTagName('head')[0].appendChild(styles);
24
25            styles.onload = window.yetience.callBackAfterDelay(callback);
26            //document.body.appendChild(styles);
27        }
28    };
29
30    window.yetience.callBackAfterDelay = function(cb) {
31        return function() {
32            setTimeout(function() {
33                cb()
34            }, 0)
35        }
36
37    };
38
39    window.yetience.fileSuffix = {
40        script: '.js',
41        style: '.css'
42    };
43
44    window.yetience.loadApp = function(prefix, callback) {
45        window.yetience.loadGroups(prefix, window.yetience.scripts, 'script', function() {
46            window.yetience.loadGroups(prefix, window.yetience.styles, 'style', function() {
47
48                callback()
49                if (typeof Autience != 'undefined' && Autience) {
50                    Autience.utils.emitAutienceEvent('load')
51                }
52
53            })
54        })
55    };
56
57
58    window.yetience.loadGroups = function(prefix, script_groups, type, done) {
59        if(script_groups && script_groups.length > 0){
60            addGroup(0)
61        }else{
62            done()
63        }
64        
65
66
67        function addGroup(group_i) {
68
69            loadScriptGroup(script_groups[group_i], function() {
70                if (group_i < script_groups.length - 1) {
71
72                    addGroup(group_i + 1)
73                } else {
74
75                    done()
76                }
77            })
78        };
79
80        function loadScriptGroup(group, group_callback) {
81
82            if (group) {
83                addItem(0)
84            } else {
85                group_callback()
86            }
87
88
89            function addItem(script_i) {
90
91                var src = prefix + group.base + '/' + group.items[script_i] + window.yetience.valueOrBlank(group.suffix) + window.yetience.fileSuffix[type]
92
93                window.yetience.fileLoader[type](src, function() {
94
95                    if (script_i < group.items.length - 1) {
96                        addItem(script_i + 1)
97                    } else {
98                        group_callback()
99                    }
100                })
101
102            }
103        }
104    };
105
106    window.yetience.valueOrBlank = function(value) {
107        if (value)
108            return value
109        else
110            return ''
111    };
112
113    window.yetience.ajax = function(url, method, data, success, failure) {
114        if (!this.xhr) {
115            this.xhr = window.ActiveX ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
116        }
117        var self = this.xhr
118
119        self.onreadystatechange = function() {
120            if (self.readyState === 4 && self.status === 200) {
121                // the request is complete, parse data and call callback
122                if (success) {
123                    success(self.responseText)
124                }
125
126            } else if (self.readyState === 4) {
127                // something went wrong but complete
128                if (failure) {
129                    failure()
130                }
131
132            }
133        }
134
135        this.xhr.open(method, url, true)
136        this.xhr.setRequestHeader("Content-Type", "application/json")
137
138        if (data) {
139            this.xhr.send(JSON.stringify(data))
140        } else {
141            this.xhr.send()
142        }
143
144    };
145
146    window.yetience.browserVersion = function() {
147        //finding OS
148        var browser_data = {}
149        var OSName = "Unknown OS";
150        if (navigator.appVersion.indexOf("Win") != -1) OSName = "Windows";
151        if (navigator.appVersion.indexOf("Mac") != -1) OSName = "MacOS";
152        if (navigator.appVersion.indexOf("X11") != -1) OSName = "UNIX";
153        if (navigator.appVersion.indexOf("Linux") != -1) OSName = "Linux";
154        browser_data.OS = OSName;
155
156        // finding browser version
157        navigator.sayswho = (function() {
158            var N = navigator.appName,
159                ua = navigator.userAgent,
160                tem;
161            var M = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
162            if (M && (tem = ua.match(/version\/([\.\d]+)/i)) != null) M[2] = tem[1];
163            M = M ? [M[1], M[2]] : [N, navigator.appVersion, '-?'];
164            return M;
165        })();
166
167        browser_data.browser_version = navigator.sayswho;
168        return browser_data;
169    };
170
171    window.yetience.sendEvent = function(event, website_id, data) {
172        //console.log("In yetience sendEvent")
173        if (!data) {
174            data = {}
175        }
176        data.source = "browser"
177        data.version = window.yetience.version
178        //console.log('Plugin version = '+data.version)
179        data.path = window.location.href
180        data.wordpress_version = window.yetience.wordpress_version;
181
182        var browser_data = window.yetience.browserVersion()
183        data.browser_version = browser_data.browser_version;
184        data.OS = browser_data.OS
185
186        if (!website_id) {
187            var setup = window.yetience.readFromPlatform()
188            website_id = setup.id
189        }
190
191
192        if (!website_id) {
193            //console.log('There is no website_id to send the event')
194            return false
195        }
196
197    
198        var img = document.createElement("img");
199        var image_url = window.yetience.server + '/track/api/EventLogs/image?event=' + event + '&client_id=' + website_id;
200        image_url = image_url + '&time=' + Date.now()
201        if (window.btoa) {
202            var encoded_data = window.btoa(JSON.stringify(data))
203            image_url = image_url + '&data=' + encoded_data
204        }
205        img.src = image_url
206        img.style.visibility = 'hidden'
207        document.body.appendChild(img);
208        //console.log("Appended image")
209    };
210
211    //sending error event if there is any error in the client or admin scripts
212    window.onerror = function(message, source, lineno, colno, error) {
213        if (source.indexOf('client.min.js') >= 0 || source.indexOf('admin.min.js') >= 0) {
214            data = {}
215            data.message = message
216            data.source = source
217            data.lineno = lineno
218            data.colno = colno
219            data.error = error
220                //log error even without client id
221            var website_id = 'X',
222                send_event = true
223            if (typeof Autience !== 'undefined' && Autience && Autience.setup && Autience.setup.id) {
224                website_id = Autience.setup.id
225
226                //send client error events for only one hour after popup creation
227                var now = Math.round(new Date().getTime() / 1000);
228                // var one_hour = 3600
229                var six_hours =  6 * 60 * 60
230                var created = Autience.utils.nestedValue(Autience, ['setup', 'first_widget_time']);
231                var time_gap = now - created
232
233                if (created && time_gap > 0 && time_gap < six_hours) {
234                    send_event = true
235                } else {
236                    send_event = false
237                }
238            }
239            if (send_event) {
240                window.yetience.sendEvent('d_client_error', website_id, data);
241            }
242
243        }
244    };
245
246    if(yetience_callback){
247        yetience_callback()
248    };
249
250};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.