$(document).ready(function() { // Focus on email address field $('#email').select(); // Initialize events $('#login_form').submit(function(e) { // Kill default behaviour e.preventDefault(); doAjaxLogin($('#redirect').val()); }); $('#forgot_password_form').submit(function(e) { // Kill default behaviour e.preventDefault(); doAjaxForgot(); }); $('.show-forgot-password').click(function(e) { // Kill default behaviour e.preventDefault(); displayForgotPassword(); }); $('.show-login-form').click(function(e) { // Kill default behaviour e.preventDefault(); displayLogin(); }); }); function displayForgotPassword() { $('#error').hide(); $('#login_form').fadeOut('fast', function () { $("#forgot_password_form").fadeIn('fast'); // Focus on email address forgot field $('#email_forgot').select(); }); } function displayLogin() { $('#error').hide(); $('#forgot_password_form').fadeOut('fast', function () { $('#login_form').fadeIn('fast'); // Focus on email address field $('#email').select(); }); return false; } /** * Check user credentials * * @param string redirect name of the controller to redirect to after login (or null) */ function doAjaxLogin(redirect) { $('#error').hide(); $('#login_form .ajax-loader').fadeIn('slow', function() { $.ajax({ type: "POST", headers: { "cache-control": "no-cache" }, url: "ajax-tab.php" + '?rand=' + new Date().getTime(), async: true, dataType: "json", data: { ajax: "1", token: "", controller: "AdminLogin", submitLogin: "1", passwd: $('#passwd').val(), email: $('#email').val(), redirect: redirect }, success: function(jsonData) { if (jsonData.hasErrors) displayErrors(jsonData.errors); else window.location.assign(jsonData.redirect); }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#error').html('

TECHNICAL ERROR:

Details: Error thrown: ' + XMLHttpRequest + '

Text status: ' + textStatus + '

').show(); $('#login_form .ajax-loader').fadeOut('slow'); } }); }); } function doAjaxForgot() { $('#error').hide(); $('#forgot_password_form .ajax-loader').fadeIn('slow', function() { $.ajax({ type: "POST", headers: { "cache-control": "no-cache" }, url: "ajax-tab.php" + '?rand=' + new Date().getTime(), async: true, dataType: "json", data: { ajax: "1", token: "", controller: "AdminLogin", submitForgot: "1", email_forgot: $('#email_forgot').val() }, success: function(jsonData) { if (jsonData.hasErrors) displayErrors(jsonData.errors); else { alert(jsonData.confirm); $('#forgot_password_form .ajax-loader').hide(); displayLogin(); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { $('#error').html('

TECHNICAL ERROR:

Details: Error thrown: ' + XMLHttpRequest + '

Text status: ' + textStatus + '

').show(); $('#forgot_password_form .ajax-loader').fadeOut('slow'); } }); }); } function displayErrors(errors) { str_errors = '

' + (errors.length > 1 ? there_are : there_is) + ' ' + errors.length + ' ' + (errors.length > 1 ? label_errors : label_error) + '

    '; for (var error in errors) //IE6 bug fix if (error != 'indexOf') str_errors += '
  1. ' + errors[error] + '
  2. '; $('.ajax-loader').hide(); $('#error').html(str_errors + '
').fadeIn('slow'); $("#login").effect("shake", { times: 4 }, 100); }