1jQuery(function ($) 2{ 3 $(document).on('submit', '.login_form_email', function (e) 4 { 5 e.preventDefault(); 6 7 // Just for the safety, If by chance open login popup or page in webview and we can click on submit login form from webview, we can call handler for mobile native login page redirect 8 if( setting.isMobileWebView ) { 9 const args = { 10 login: false 11 }; 12 window.flutter_inappwebview.callHandler('loginHandler', args); 13 return false; 14 } 15 16 var $form = $(this); 17 18 if ($form.data('event_ref_id')) 19 { 20 $form.find('input[name="event_ref_id"]').remove(); 21 $('<input type="hidden" name="event_ref_id" />').val($form.data('event_ref_id')).appendTo($form); 22 } 23 if ($form.data('scroll_to')) 24 { 25 $form.find('input[name="scroll_to"]').remove(); 26 $('<input type="hidden" name="scroll_to" />').val($form.data('scroll_to')).appendTo($form); 27 } 28 29 var errorEL = $form.find('.popup_error'); 30 errorEL.html(''); 31 32 $.ajax({ 33 url: $form.attr('action'), 34 type: 'POST', 35 data: $form.serialize(), 36 dataType: 'JSON', 37 success: handleLoginFunc = function (res) 38 { 39 if (typeof res.error !== 'undefined') 40 { 41 errorEL.html(res.error); 42 $form.find("[autofocus]").focus().select(); 43 } else 44 { 45 if (res.next) 46 { 47 $form.closest(".modal").data("hasChanged", 1); 48 if (typeof res.source !== 'undefined') 49 { 50 switch (res.source) 51 { 52 case "widget": 53 var componentMap = { 54 login: "userLoginPassword", 55 register: "userRegisterPassword", 56 }; 57 var component = componentMap["login"]; 58 if (typeof res.componentParams.component !== 'undefined' && typeof componentMap[res.componentParams.component] !== 'undefined') 59 { 60 component = componentMap[res.componentParams.component]; 61 } 62 window.parent.postMessage({BSQMessageType: "popupTemplate", popupTemplate: $.extend({ 63 type: component, 64 event_ref_id: $form.data('event_ref_id') 65 }, res.componentParams)}, '*'); 66 break; 67 } 68 } else 69 { 70 var $resNext = $(res.next); 71 $form.closest(".login_form_page").html("").append($resNext); 72 setTimeout(function() // A little pause to avoide possible race condition 73 { 74 $resNext.find("[autofocus]").focus().select(); 75 }, 100); 76 } 77 } 78 } 79 }, 80 statusCode: { 81 // 401 doesn't get success function call so call it here manually 82 401: function (event, xhr) { 83 console.log('401', event); 84 handleLoginFunc(event.responseJSON ? event.responseJSON : {error: 'Login failed. Please try again or contact support.'}); 85 } 86 }, 87 error: function (event, xhr) 88 { 89 errorEL.append('Login failed. Please try again or contact support.').show(); 90 } 91 }); 92 93 }); 94 95 $(document).on('click','.login_form_email .show-registration-popup,.login_form_password .show-registration-popup',function(e){ 96 var $registrationPopupType = 'registration'; 97 98 var $theRegistrationOpener = $(this); 99 var $closestForm = $theRegistrationOpener.closest('form'); 100 101 var doRegistrationCallback = function () 102 { 103 showHidePopup('login',false); 104 showHidePopup('forgot_pwd',false); 105 showHidePopup($registrationPopupType, true); 106 }; 107 108 if ($closestForm.find('input[name="email_address"]').val()) 109 { 110 var $registrationPopupObject = getPopupObject($registrationPopupType); 111 var $registrationPopupForm = $registrationPopupObject.find('form'); 112 113 if (typeof $closestForm.data('event_ref_id') !== 'undefined') 114 { 115 $registrationPopupForm.data('event_ref_id', $closestForm.data('event_ref_id')); 116 } 117 if (typeof $closestForm.data('scroll_to') !== 'undefined') 118 { 119 $registrationPopupForm.data('scroll_to', $closestForm.data('scroll_to')); 120 } 121 122 $registrationPopupForm.find('[name="email"]').val($closestForm.find('[name="email_address"]').val()); 123 $registrationPopupForm.attr('action', getUrl("/user/register/email")); 124 125 $(window).off("on.submitSuccess").on("on.submitSuccess", doRegistrationCallback); 126 127 $registrationPopupForm.submit(); 128 } else doRegistrationCallback.call(); 129 }); 130 131 $(document).on('click','.login_form_password .show-forgot-pwd',function(e){ 132 var $forgotPasswordPopupType = "forgot_pwd"; 133 var $thePopupOpener = $(this); 134 var $closestForm = $thePopupOpener.closest('form'); 135 136 var doForgotPasswordOpnerCallback = function () 137 { 138 showHidePopup('forgot_pwd',true); 139 showHidePopup('login',false); 140 showHidePopup('registration',false); 141 }; 142 143 if ($closestForm.find('input[name="email_address"]').val()) 144 { 145 var $forgotPasswordPopupObject = getPopupObject($forgotPasswordPopupType); 146 147 if ($forgotPasswordPopupObject) { 148 $forgotPasswordPopupObject.find('[name="email"]').val($closestForm.find('[name="email_address"]').val()); 149 150 $forgotPasswordPopupObject.find(".fp-modify-field section-email").html($closestForm.find('[name="email_address"]').val()); 151 $forgotPasswordPopupObject.find(".fp-modify-field").removeClass("hide_div"); 152 $forgotPasswordPopupObject.find(".fp-original-field").addClass("hide_div"); 153 } 154 } 155 156 doForgotPasswordOpnerCallback.call(); 157 158 }); 159 160 $(document).on('submit', '.login_form_password', function (e) 161 { 162 e.preventDefault(); 163 164 var $this = $(this); 165 var $form = $this; 166 167 var errorEL = $form.find('.popup_error'); 168 errorEL.html(''); 169 170 if ($form.data('event_ref_id')) 171 { 172 $form.find('input[name="event_ref_id"]').remove(); 173 $('<input type="hidden" name="event_ref_id" />').val($form.data('event_ref_id')).appendTo($form); 174 } 175 if ($form.data('scroll_to')) 176 { 177 $form.find('input[name="scroll_to"]').remove(); 178 $('<input type="hidden" name="scroll_to" />').val($form.data('scroll_to')).appendTo($form); 179 } 180 181 var $redirectUrlHiddenField = $form.find('redirect_url'); 182 if ($redirectUrlHiddenField.length > 0) 183 { 184 if ($redirectUrlHiddenField.val() === '/' || $redirectUrlHiddenField.val() === "") 185 { 186 $redirectUrlHiddenField.val(window.location.href); // Set the redirect Url to the current page 187 } 188 } else 189 { 190 $('<input type="hidden" name="redirect_url" />').val(window.location.href).appendTo($form); 191 } 192 193 $.ajax({ 194 url: $form.attr('action'), 195 type: 'POST', 196 data: $form.serialize(), 197 dataType: 'JSON', 198 beforeSend: function() 199 { 200 $form.find('[type=button].btn').prop('disabled', true); 201 }, 202 success: handleLoginFunc = function (res) 203 { 204 if (typeof res.error !== 'undefined') 205 { 206 errorEL.html(res.error); 207 $form.find("[autofocus]").focus().select(); 208 209 } else 210 { 211 if (typeof res.forcePasswordReset !== 'undefined' && res.forcePasswordReset) 212 { 213 if (typeof res.source !== 'undefined') 214 { 215 switch (res.source) 216 { 217 case "widget": 218 var userForgotPassUrl = getUrl('/user/session/forgotpass?source=widget&reset_password=1'); 219 if ($form.find('[name="email_address"]').val() !== "") 220 { 221 userForgotPassUrl += "&user_email_address=" + encodeURIComponent($form.find('[name="email_address"]').val()); 222 } 223 if (res.forcePasswordResetMsg !== "") 224 { 225 userForgotPassUrl += "&secutiry_message=" + encodeURIComponent(res.forcePasswordResetMsg); 226 } 227 window.parent.postMessage({BSQMessageType: "popupTemplate", popupTemplate: {type: "userForgotPass", url: userForgotPassUrl}}, '*'); 228 break; 229 } 230 } else 231 { 232 var $fpForm = getPopupObject("forgot_pwd"); 233 if (typeof res.forcePasswordReset !== 'undefined' && res.forcePasswordReset && res.forcePasswordResetMsg !== "") 234 { 235 if ($fpForm) { 236 $fpForm.find('.security_msg').html(res.forcePasswordResetMsg).removeClass("hide_div");
237 $fpForm.find(".modal-heading").addClass("hide_div"); 238 $fpForm.find(".reset-heading").removeClass("hide_div"); 239 } 240 } 241 $this.find(".show-forgot-pwd").click(); 242 } 243 } else 244 { 245 if (typeof res.source !== 'undefined') 246 { 247 switch (res.source) 248 { 249 case "widget": 250 window.parent.postMessage({BSQMessageType: "reloadParent", reloadParent: {type: "userLogin", success: true, reload: true}}, '*'); 251 break; 252 } 253 } else 254 { 255 redirectTo((typeof res.redirectTo !== 'undefined' ? res.redirectTo : "")); 256 } 257 } 258 } 259 }, 260 statusCode: { 261 // 401 doesn't get success function call so call it here manually 262 401: function (event, xhr) { 263 handleLoginFunc(event.responseJSON ? event.responseJSON : {error: 'Login failed. Please try again or contact support.'}); 264 } 265 }, 266 error: function (event, xhr) 267 { 268 errorEL.append('Login failed. Please try again or contact support.').show(); 269 } 270 }); 271 272 }); 273 274 $(document).on('submit', '.register_form_email', function (e) 275 { 276 e.preventDefault(); 277 278 var $form = $(this); 279 280 var errorEL = $form.find('.popup_error'); 281 errorEL.html(''); 282 283 if ($form.data('event_ref_id')) 284 { 285 $form.find('input[name="event_ref_id"]').remove(); 286 $('<input type="hidden" name="event_ref_id" />').val($form.data('event_ref_id')).appendTo($form); 287 } 288 if ($form.data('scroll_to')) 289 { 290 $form.find('input[name="scroll_to"]').remove(); 291 $('<input type="hidden" name="scroll_to" />').val($form.data('scroll_to')).appendTo($form); 292 } 293 294 $.ajax({ 295 url: $form.attr('action'), 296 type: 'POST', 297 data: $form.serialize(), 298 dataType: 'JSON', 299 success: handleRegisterFunc = function (res) 300 { 301 if (typeof res.error !== 'undefined') 302 { 303 errorEL.html(res.error); 304 $form.find("[autofocus]").focus().select(); 305 } else 306 { 307 if (res.next) 308 { 309 $form.closest(".modal").data("hasChanged", 1); 310 if (typeof res.source !== 'undefined') 311 { 312 switch (res.source) 313 { 314 case "widget": 315 var componentMap = { 316 login: "userLoginPassword", 317 register: "userRegisterPassword", 318 }; 319 var component = componentMap["register"]; 320 if (typeof res.componentParams.component !== 'undefined' && typeof componentMap[res.componentParams.component] !== 'undefined') 321 { 322 component = componentMap[res.componentParams.component]; 323 } 324 window.parent.postMessage({BSQMessageType: "popupTemplate", popupTemplate: $.extend({ 325 type: component, 326 event_ref_id: $form.data('event_ref_id') 327 }, res.componentParams)}, '*'); 328 break; 329 } 330 } else 331 { 332 var $resNext = $(res.next); 333 $form.closest(".register_form_page").html("").append($resNext); 334 $(window).trigger('on.submitSuccess'); 335 setTimeout(function() // A little pause to avoide possible race condition 336 { 337 $resNext.find("[autofocus]").focus().select(); 338 }, 100); 339 } 340 } 341 } 342 }, 343 statusCode: { 344 // 401 doesn't get success function call so call it here manually 345 401: function (event, xhr) { 346 handleRegisterFunc(event.responseJSON ? event.responseJSON : {error: 'Registration failed. Please try again or c
346ontact support.'}); 347 } 348 }, 349 error: function (event, xhr) 350 { 351 errorEL.append('Registration failed. Please try again or contact support.').show(); 352 } 353 }); 354 355 }); 356 357 $(document).on('submit', '.register_form_password', function (e) 358 { 359 e.preventDefault(); 360 361 var $form = $(this); 362 363 var errorEL = $form.find('.popup_error'); 364 errorEL.html(''); 365 366 var $redirectUrlHiddenField = $form.find('redirect_url'); 367 if ($redirectUrlHiddenField.length > 0) 368 { 369 if ($redirectUrlHiddenField.val() === '/' || $redirectUrlHiddenField.val() === "") 370 { 371 $redirectUrlHiddenField.val(window.location.href); // Set the redirect Url to the current page 372 } 373 } else 374 { 375 $('<input type="hidden" name="redirect_url" />').val(window.location.href).appendTo($form); 376 } 377 378 reCaptchaExecute({ 379 action: "registration", 380 successCallback: function (token) 381 { 382 if ($form.find('input[name="grecaptcha_token"]').length == 0) { 383 $form.prepend('<input type="hidden" name="grecaptcha_token" value="' + token + '">'); 384 } 385 $form.find('input[name="grecaptcha_token"]').val(token); 386 387 $.ajax({ 388 url: $form.attr('action'), 389 type: 'POST', 390 data: $form.serialize(), 391 dataType: 'JSON', 392 beforeSend: function() 393 { 394 $form.find('[type="submit"].btn').prop('disabled', true); 395 }, 396 success: handleRegisterFunc = function (res) 397 { 398 if (typeof res.error !== 'undefined') 399 { 400 errorEL.html(res.error); 401 $form.find("[autofocus]").focus().select(); 402 if (typeof res.source !== 'undefined') 403 { 404 switch (res.source) 405 { 406 case "widget": 407 $form.find('[type="submit"].btn').prop('disabled', false).html(i18nTranslate("Create account")); 408 break; 409 } 410 } else $form.find('[type="submit"].btn').prop('disabled', false); 411 } else 412 { 413 if (typeof res.source !== 'undefined') 414 { 415 switch (res.source) 416 { 417 case "widget": 418 window.parent.postMessage({BSQMessageType: "reloadParent", reloadParent: {type: "userLogin", success: true, reload: true}}, '*'); 419 break; 420 } 421 } else 422 { 423 var redirectUrl = (typeof res.redirectTo !== 'undefined' ? res.redirectTo : ""); 424 if (typeof window.dataLayer !== 'undefined') { 425 var _redirectRan = false; 426 var _redirectCB = function () { 427 if (_redirectRan) return; 428 _redirectRan = true; 429 clearTimeout(_redirectTimeout); 430 redirectTo(redirectUrl); 431 }; 432 var _redirectTimeout = setTimeout(_redirectCB, 2000); 433 window.dataLayer.push({ 434 'event': 'form_submit', 435 'form_id': $form.attr('id') || 'register-form', 436 'form_name': 'register_form_password', 437 'eventCallback': _redirectCB 438 }); 439 } else { 440 redirectTo(redirectUrl); 441 } 442 } 443 } 444 }, 445 statusCode: { 446 // 401 doesn't get success function call so call it here manually 447 401: function (event, xhr) { 448 handleRegisterFunc(event.responseJSON ? event.responseJSON : {error: 'Registration failed. Please try again or c
448ontact support.'}); 449 } 450 }, 451 error: function (event, xhr) 452 { 453 errorEL.append('Registration failed. Please try again or contact support.').show(); 454 } 455 }); 456 } 457 }); 458 }); 459 460 $(document).on('click', 'a.reset-email-addr', function (e) 461 { 462 e.preventDefault(); 463 464 var useDifferentEmailButton = $(this); 465 466 var $form = useDifferentEmailButton.closest('form'); 467 468 var useDifferentEmailFor = $(this).data("udef"); 469 var isWidget = $(this).data("isw"); 470 471 var event_ref_id = ""; 472 if (typeof $form.data('event_ref_id') !== 'undefined') 473 { 474 event_ref_id = $form.data('event_ref_id'); 475 } else 476 { 477 if (typeof $form.find("input[name=event_ref_id]") !== 'undefined') 478 { 479 event_ref_id = $form.find("input[name=event_ref_id]").val(); 480 } 481 } 482 483 switch (useDifferentEmailFor) 484 { 485 case "login": 486 case "register": 487 if (isWidget === 'w') 488 { 489 var templateType = "userLogin"; 490 if (useDifferentEmailFor === "register") 491 { 492 templateType = "userRegisterEmail"; 493 } 494 495 window.parent.postMessage({BSQMessageType: "popupTemplate", popupTemplate: { 496 type: templateType, 497 event_ref_id: event_ref_id, 498 }}, '*'); 499 } 500 if (isWidget === 'nw') 501 { 502 $.post(getUrl("/user/session/useDifferentEmail"), { 503 use_different_email_for: useDifferentEmailFor, 504 event_ref_id: event_ref_id, 505 },function (res) 506 { 507 if (typeof res.previous !== 'undefined') 508 { 509 var $resPrevious = $(res.previous); 510 var $closestForm = useDifferentEmailButton.closest("." + useDifferentEmailFor + "_form_page"); 511 $closestForm.html("").append($resPrevious); 512 513 // We can get away without this timeout 514 // But like to give some time to load to the DOM before we are actually try to focus 515 // This delay will not be noticable even with a slower system / network 516 setTimeout(function() 517 { 518 $resPrevious.find("[autofocus]").focus().select(); 519 }, 100); 520 } 521 }); 522 } 523 break; 524 525 case "forgot_password": 526 $form.find(".fp-modify-field").addClass("hide_div"); 527 $form.find(".fp-original-field").find("input").val(''); 528 $form.find(".fp-original-field").removeClass("hide_div"); 529 break; 530 531 default: 532 // Not doing anything by default 533 break; 534 } 535 }); 536 537 $(document).on('submit', '.complete_profile', function (e) 538 { 539 e.preventDefault(); 540 541 var $form = $(this); 542 543 var errorEL = $form.find('.popup_error'); 544 errorEL.html(''); 545 546 if ($form.data('event_ref_id')) 547 { 548 $form.find('input[name="event_ref_id"]').remove(); 549 $('<input type="hidden" name="event_ref_id" />').val($form.data('event_ref_id')).appendTo($form); 550 } 551 552 reCaptchaExecute({ 553 action: "registerProfile", 554 successCallback: function (token) 555 { 556 if ($form.find('input[name="grecaptcha_token"]').length == 0) { 557 $form.prepend('<input type="hidden" name="grecaptcha_token" value="' + token + '">'); 558 } 559 $form.find('input[name="grecaptcha_token"]').val(token); 560 561 $.ajax({ 562 url: $form.attr('action'), 563 type: 'POST', 564 data: $form.serialize(), 565 dataType: 'JSON', 566 beforeSend: function() 567 { 568 $form.find('[type="submit"]').prop('disabled', true); 569 }, 570 success: handleRegisterFunc = function (res) 571 { 572 if (typeof res.error !== 'undefined') 573 { 574 errorEL.html(res.error); 575 576 // Render the error message by replacing the actual form with the form from the response 577 if (typeof res.replaceWithHtml !== 'undefined') 578 { 579 var $replaceHtml = $(res.replaceWithHtml); 580 var resForm = $replaceHtml.find('form'); 581 resForm.find(".popup_error").html(res.error).show(); 582 $form.replaceWith(resForm); 583 } 584 } else 585 { 586 if (typeof res.source !== 'undefined') 587 { 588 switch (res.source) 589 { 590 case "widget": 591 window.parent.postMessage({BSQMessageType: "reloadParent", reloadParent: {type: "userRegisterCompleteProfileSuccess", success: true, reload: true}}, '*'); 592 break; 593 } 594 } else 595 { 596 redirectTo((typeof res.redirectTo !== 'undefined' ? res.redirectTo : "")); 597 } 598 } 599 }, 600 statusCode: { 601 // 401 doesn't get success function call so call it here manually 602 401: function (event, xhr) { 603 console.log('401', event); 604 handleRegisterFunc(event.responseJSON ? event.responseJSON : {error: 'Registration failed. Please try again or c
604ontact support.'}); 605 } 606 }, 607 error: function (event, xhr) 608 { 609 errorEL.append('Registration failed. Please try again or contact support.').show(); 610 } 611 }); 612 } 613 }); 614 615 }); 616 617 $(document).on('click', '.registation_direct a, #registation_direct a', function(e) { 618 var eventRefId = $(this).data('event_ref_id'); 619 if (eventRefId) { 620 e.preventDefault(); 621 var $form = $('<form method="GET" />').attr('action', $(this).attr('href')); 622 $('<input type=hidden name="event_ref_id" />').val(eventRefId).appendTo($form); 623 $('<input type=hidden name="redirect_url" />').val(window.location.href).appendTo($form); 624 $(this).after($form.hide()); 625 $form.submit(); 626 } 627 }); 628 629 $(document).on('submit', '.request_setup_form, #forgot-form, #resend-form, .resend_email_form', function (e) 630 { 631 e.preventDefault(); 632 633 var errorEL= $(this).find('.popup_error'); 634 errorEL.removeClass('success-msg'); 635 errorEL.html(''); 636 637 var $form = $(this); 638 $form.find('button').prop('disabled', true); 639 $form.find('input[type="submit"]').prop('disabled', true); 640 641 $.ajax({ 642 url : $form.attr('action'), 643 type : 'POST', 644 data : $form.serialize(), 645 dataType : 'JSON', 646 success : function(res) { 647 if (typeof res.arrMessage.error !== 'undefined') 648 { 649 $.each(res.arrMessage.error,function(i,val){ 650 errorEL.append(val); 651 }); 652 $form.find('button').prop('disabled', false); 653 $form.find('input[type="submit"]').prop('disabled', false); 654 } else 655 { 656 if (res.next) 657 { 658 $form.closest(".forgotpass-form-container").html("").append(res.next); 659 } 660 } 661 }, 662 error : function(event, xhr) { 663 errorEL.append('Password Request failed. Please try again or contact support.').show(); 664 } 665 }); 666 }); 667});
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.