PageSourceSearch

https://www.beijerelectronics.tw/static/js/authentication-client.js

js beijerelectronics.tw collected 2026-10-07 04:10:03 UTC 10,547 bytes, 287 lines download raw bytes

1(function (window) {
2    window.$auth = {};
3    var self = window.$auth;
4    self.authenticated = false;
5    self.eBusinessUser = false;
6    self.authUrl = '';
7    self.hasAddedAuthFrame = false;
8    self.authResolveData = '';
9    self.authResolveType = '';
10    self.registerLightboxUrl = '';
11    self.registerEBusinessLightboxUrl = '';
12    self.loginLightboxUrl = '';
13
14    $jq(window).ready(function () {
15        if (!self.authenticated)
16            self.ensureAuthFrame();
17
18        self.bindAuthCheck();
19        self.checkUrlForAuthResolve();
20        self.checkUrlForRegistration();
21        self.bindRegisterAndLogin();
22
23        $jq('.register-trigger').click(function (e) { e.preventDefault(); self.displayRegisterLightbox(true); });
24        $jq('.forgot-trigger').click(function (e) { e.preventDefault(); self.displayForgotLightbox(true); });
25
26    });
27
28    $jq(window).on('message', function (je) {
29        var event = je.originalEvent;
30        var data = event.data;
31
32        if (!data.success && data.message)
33        {
34            $jq('.auth-failed-message').html(data.message);
35            $jq('.auth-failed').show();
36            hideProgress();
37        }
38
39        if (event.origin != self.authUrl || !data.success)
40            return;
41
42        $jq.post('/api/clientauthvalidatetoken/', data, function (res) {
43            if (res.Success)
44                self.authenticated = true;
45
46            if (self.authenticated)
47            {
48                $jq.fancybox.close();
49                $jq('#login-wrapper').slideUp();
50                self.resolveAuthenticated(true);
51            }
52        });
53    });
54
55    self.checkUrlForRegistration = function () {
56        if (getQueryParameterByName('registerToken') != '' && window.location.host.indexOf("smartstore") == -1) {
57            $jq('#register-wrapper').slideDown();
58            $jq('#register-slide-down').slideDown();
59            
60            $jq('#do-register-button').click(function (e) {
61                e.preventDefault();
62                $jq.post('/api/register', $jq('#slide-down-register-form').serialize(), function (res) {
63                    if (res.Success)
64                        window.location = $auth.authUrl + '/api/sharedauthregistertoken/?token=' + res.Token;
65                    else
66                        $jq('#register-error').html(res.Message);
67                });
68            });
69        }
70    };
71
72    self.checkUrlForAuthResolve = function () {
73        var authQuery = getQueryParameterByName('authResolve');
74        var authSplit = authQuery.split(';');
75
76        if (authSplit.length == 3) {
77            self.authResolveType = authSplit[1];
78            self.authResolveData = authSplit[2];
79            self.resolveAuthenticated();
80        }
81    };
82
83    self.resolveAuthenticated = function (reload) {
84        if (reload) {
85            if (getQueryParameterByName('authResolve'))
86                window.location.reload();
87            else {
88                var delimiter = ((window.location + "").indexOf("?") > -1) ? "&" : "?";
89
90                window.location = window.location + delimiter + 'authResolve=' + encodeURIComponent(self.getAuthResolveUrl());
91            }
92        }
93        else {
94            switch (self.authResolveType) {
95                case 'url':
96                    window.location = self.authResolveData;
97                    break;
98                case 'js':
99                    eval(self.authResolveData);
100                    break;
101            }
102        }
103    };
104
105    self.getAuthResolveUrl = function () {
106        return window.location + ";" + self.authResolveType + ";" + self.authResolveData;
107    };
108
109    self.bindAuthCheck = function() {
110        $jq(document.body).on('click', '.auth-check', function (e) {
111            var elm = $jq(e.currentTarget);
112            e.preventDefault();
113
114            if (elm.data('authjs') != null) { // trigger javascript after
115                self.jsCheckAuth(elm.data('authjs'));
116            }
117            else { // go to url after
118                self.urlCheckAuth(e.currentTarget.href);
119            }
120        });
121    };
122
123    self.urlCheckAuth = function (resolveUrl) {
124        self.authResolveData = resolveUrl;
125        self.authResolveType = 'url';
126
127        if (!self.authenticated)
128            self.displayLoginLightbox();
129        else
130            self.resolveAuthenticated();
131    };
132
133    self.jsCheckAuth = function (resolveJsString) {
134        self.authResolveData = resolveJsString;
135        self.authResolveType = 'js';
136
137        if (!self.authenticated)
138            self.displayLoginLightbox();
139        else
140            self.resolveAuthenticated();
141    };
142
143    self.ensureAuthFrame = function () {
144        if (!self.hasAddedAuthFrame) {
145            var iframe = $jq('<iframe width="0" height="0" style="border: none" id="authframe" src="' + self.authUrl + '/api/sharedauthisauthenticated/"></iframe>')
146            $jq(document.body).append(iframe);
147            self.hasAddedAuthFrame = true;
148        }
149    };
150
151    self.displayLoginLightbox = function () {
152        showProgress();
153        $jq.get(self.loginLightboxUrl, null, function (html) {
154            hideProgress();
155            $jq.fancybox({ width: '600px', height: '300px', autoSize: false, content: html });
156            self.bindRegisterAndLogin();
157        }).fail(function () {
158            alert('Error occurred');
159        });
160    };
161
162    self.displayRegisterEBusinessLightbox = function () {
163        showProgress();
164        $jq.get(self.registerEBusinessLightboxUrl, null, function (html) {
165            hideProgress();
166            $jq.fancybox({ width: '600px', height: '300px', autoSize: false, content: html });
167            self.bindRegisterAndLogin();
168        }).fail(function () {
169            alert('Error occurred');
170        });
171    };
172
173    self.displayRegisterLightbox = function (hideLogin) {
174        showProgress();
175        var hideLoginQs = (hideLogin) ? "?hideLogin=1" : "?hideLogin=0";
176        $jq.get(self.registerLightboxUrl + hideLoginQs, null, function (html) {
177            hideProgress();
178            $jq.fancybox({ width: '600px', minHeight: '300px', autoSize: false, autoHeight: true, content: html });
179            self.bindRegisterAndLogin();
180        }).fail(function () {
181            alert('Error occurred');
182        });
183    };
184
185    self.displayForgotLightbox = function () {
186        showProgress();
187        $jq.get('/api/userheader/forgotpasswordlightbox', null, function (html) {
188            hideProgress();
189            $jq.fancybox({ width: '600px', height: '300px', autoSize: false, content: html });
190            self.bindRegisterAndLogin();
191        }).fail(function () {
192            alert('Error occurred');
193        });
194    };
195
196
197    self.bindRegisterAndLogin = function () {
198        // switch between login and register
199        $jq('a[href="' + self.registerLightboxUrl + '"]').click(function (e) {
200            e.preventDefault();
201            self.displayRegisterLightbox();
202        });
203        $jq('a[href="' + self.loginLightboxUrl + '"]').click(function (e) {
204            e.preventDefault();
205            self.displayLoginLightbox();
206        });
207        $jq('.do-forgot').click(function (e) {
208            e.preventDefault();
209            var form = $jq($jq(e.currentTarget).parents('form')[0]);
210            $jq.post('/api/userheader/forgotpasswordlightbox', form.serialize(), function (res) {
211                hideProgress();
212                if (res.Success)
213                    fancyAlert(res.Message);
214                else
215                    $jq('#forgot-password-error').html(res.Message);
216            });
217        });
218        $jq('.do-login').click(function (e) {
219            e.preventDefault();
220            var form = $jq($jq(e.currentTarget).parents('form')[0]);
221            if ($jq(form).find('input[name="password"]').val() && $jq(form).find('input[name="username"]').val())
222                {
223                self.login($jq(form).find('input[name="username"]').val(), $jq(form).find('input[name="password"]').val());
224            }
225            else {
226                $jq('.auth-failed-message').html("Please fill in username and password");
227                $jq('.auth-failed').show();
228            }
229        });
230        $jq('#apply-register').click(function () {
231            $jq('#register-lightbox-form input[name="resolve"]').val(self.getAuthResolveUrl());
232            showProgress();
233            $jq.post('/api/registerstart', $jq('#register-lightbox-form').serialize(), function (res) {
234                hideProgress();
235                if (res.Success)
236                    fancyAlert(res.Message);
237                else
238                    $jq('#registration-lightbox-error').html(res.Message);
239            });
240        });
241    };
242
243    self.login = function (username, password) {
244        showProgress();
245        $jq('.auth-failed').hide();
246        self.ensureAuthFrame();
247        $jq('#authframe')[0].contentWindow.postMessage({ type: 'login', username: username, password: password }, self.authUrl);
248    };
249})(window);
250
251/*$jq(window).ready(function () {
252    $jq(".subscribe-newsletter").click(function (e) { subscribeNewsletter($jq(e.currentTarget).data('id')) });
253    $jq(".unsubscribe-newsletter-x").click(function (e) {
254        unsubscribeNewsletter($jq(e.currentTarget).data('id'))
255        $jq(e.currentTarget).parent().remove();
256    });
257});*/
258
259function getQueryParameterByName(name) {
260    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
261    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
262        results = regex.exec(location.search);
263    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
264}
265
266function subscribeNewsletter(id) {
267    $jq.get('/api/newslettersubscribe/?id=' + id, null, function (res) {
268        fancyAlert(res.Message);
269        $jq.get('/api/NewslettersHeader/', null, function (html) {
270            $jq('#newsletter-container').html(html);
271        });
272    });
273}
274
275
276function unsubscribeNewsletter(id) {
277    $jq.get('/api/newsletterunsubscribe/?id=' + id, null, function (res) {
278        fancyAlert(res.Message);
279        $jq.get('/api/NewslettersHeader/', null, function (html) {
280            $jq('#newsletter-container').html(html);
281        });
282    });
283}
284
285function downloadFile(id) {
286    window.location.href = '/api/downloadfile/?id=' + id;
287}

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.