PageSourceSearch

https://www.annevoie.be/wp-content/plugins/sitepress-multilingual-cms/res/js/browser-redirect.js?ver=3.9.3

js annevoie.be collected 2026-10-02 08:06:44 UTC 5,013 bytes, 162 lines download raw bytes

1/*globals wpml_browser_redirect_params, jQuery, ajaxurl, window */
2
3/** @namespace wpml_browser_redirect_params.pageLanguage */
4/** @namespace wpml_browser_redirect_params.expiration */
5/** @namespace wpml_browser_redirect_params.languageUrls */
6/** @namespace navigator.browserLanguage */
7
8var WPMLBrowserRedirect = function () {
9	"use strict";
10
11	var self = this;
12
13	self.getExpirationDate = function () {
14		var date = new Date();
15		var currentTime = date.getTime();
16		date.setTime(currentTime + (wpml_browser_redirect_params.cookie.expiration * 60 * 60 * 1000));
17		return date;
18	};
19
20    self.getRedirectUrl = function (browserLanguage) {
21        var redirectUrl = false;
22        var languageUrls = wpml_browser_redirect_params.languageUrls;
23        var languageFirstPart = browserLanguage.substr(0, 2);
24        var languageLastPart = browserLanguage.substr(3, 2);
25
26        if (languageUrls[browserLanguage] === undefined) {
27            if (languageUrls[languageLastPart] !== undefined) {
28                redirectUrl = languageUrls[languageLastPart];
29            } else if (languageUrls[languageFirstPart] !== undefined) {
30                redirectUrl = languageUrls[languageFirstPart];
31            }
32        } else {
33            redirectUrl = languageUrls[browserLanguage];
34        }
35        if ( window.location.href === redirectUrl ) {
36            return false;
37        } else {
38            return redirectUrl;
39        }
40    };
41
42	self.init = function () {
43
44		if (self.cookiesAreEnabled() && !self.cookieExists()) {
45            self.getBrowserLanguage(function (browserLanguages) {
46				var redirectUrl;
47				var pageLanguage;
48                var browserLanguage;
49
50				pageLanguage = wpml_browser_redirect_params.pageLanguage.toLowerCase();
51
52                var browserLanguagesLength = browserLanguages.length;
53                for (var i = 0; i < browserLanguagesLength; i++) {
54                    browserLanguage = browserLanguages[i];
55
56					if ( pageLanguage === browserLanguage || self.referrerBelongsToSiteURLs()) {
57						self.setCookie(browserLanguage);
58						break;
59					} else {
60						redirectUrl = self.getRedirectUrl(browserLanguage);
61						if (false !== redirectUrl) {
62							self.setCookie(browserLanguage);
63							window.location = redirectUrl;
64							break;
65						}
66					}
67                }
68
69            });
70		}
71	};
72
73	self.cookieExists = function () {
74		var cookieParams = wpml_browser_redirect_params.cookie;
75		var cookieName = cookieParams.name;
76		return jQuery.cookie(cookieName);
77	};
78
79	self.referrerBelongsToSiteURLs = function () {
80		for(var languageCode in wpml_browser_redirect_params.languageUrls) {
81			if ( document.referrer === wpml_browser_redirect_params.languageUrls[languageCode]) {
82				return true;
83			}
84		}
85		return false;
86	};
87
88	self.setCookie = function (browserLanguage) {
89		var cookieOptions;
90		var cookieParams = wpml_browser_redirect_params.cookie;
91		var cookieName = cookieParams.name;
92		var path = '/';
93		var domain = '';
94
95		if (cookieParams.path) {
96			path = cookieParams.path;
97		}
98
99		if (cookieParams.domain) {
100			domain = cookieParams.domain;
101		}
102
103		cookieOptions = {
104			expires: self.getExpirationDate(),
105			path:    path,
106			domain:  domain
107		};
108		jQuery.cookie(cookieName, browserLanguage, cookieOptions);
109	};
110
111	self.getBrowserLanguage = function (success) {
112        var browserLanguages = [];
113
114        if (navigator.languages) {
115            browserLanguages = navigator.languages;
116        }
117        if (0 === browserLanguages.length && (navigator.language || navigator.userLanguage)) {
118            browserLanguages.push(navigator.language || navigator.userLanguage);
119        }
120        if (0 === browserLanguages.length && (navigator.browserLanguage || navigator.systemLanguage)) {
121            browserLanguages.push(navigator.browserLanguage || navigator.systemLanguage);
122		}
123
124        if (0 === browserLanguages.length) {
125            jQuery.ajax({
126                data: {
127                    icl_ajx_action: 'get_browser_language'
128                },
129                success: function (response) {
130                    if (response.success) {
131                        browserLanguages = response.data;
132                        if (success && "function" === typeof success) {
133							browserLanguages = browserLanguages.join('|').toLowerCase().split('|');
134                            success(browserLanguages);
135                        }
136                    }
137                }
138            });
139        } else {
140			browserLanguages = browserLanguages.join('|').toLowerCase().split('|');
141            success(browserLanguages);
142        }
143	};
144
145	self.cookiesAreEnabled = function () {
146		var result = (undefined !== jQuery.cookie);
147		if (result) {
148			jQuery.cookie('wpml_browser_redirect_test', 1);
149			result = '1' === jQuery.cookie('wpml_browser_redirect_test');
150			jQuery.cookie('wpml_browser_redirect_test', 0);
151		}
152		return result;
153	};
154};
155
156jQuery(document).ready(function () {
157	"use strict";
158
159	var wpmlBrowserRedirect = new WPMLBrowserRedirect();
160	wpmlBrowserRedirect.init();
161
vendor: 3 bytes, line 162
162});

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.