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.