"use strict";
// Class Definition
var KTLoginGeneral = function() {
var login = $('#kt_login');
var showErrorMsg = function(form, type, msg) {
var alert = $('
\
\
\
');
form.find('.alert').remove();
alert.prependTo(form);
//alert.animateClass('fadeIn animated');
KTUtil.animateClass(alert[0], 'fadeIn animated');
alert.find('span').html(msg);
}
// Private Functions
var displaySignUpForm = function() {
login.removeClass('kt-login--forgot');
login.removeClass('kt-login--signin');
login.addClass('kt-login--signup');
KTUtil.animateClass(login.find('.kt-login__signup')[0], 'flipInX animated');
}
var displaySignInForm = function() {
login.removeClass('kt-login--forgot');
login.removeClass('kt-login--signup');
login.addClass('kt-login--signin');
KTUtil.animateClass(login.find('.kt-login__signin')[0], 'flipInX animated');
//login.find('.kt-login__signin').animateClass('flipInX animated');
}
var displayForgotForm = function() {
login.removeClass('kt-login--signin');
login.removeClass('kt-login--signup');
login.addClass('kt-login--forgot');
//login.find('.kt-login--forgot').animateClass('flipInX animated');
KTUtil.animateClass(login.find('.kt-login__forgot')[0], 'flipInX animated');
}
var handleFormSwitch = function() {
$('#kt_login_forgot').click(function(e) {
e.preventDefault();
displayForgotForm();
});
$('#kt_login_forgot_cancel').click(function(e) {
e.preventDefault();
displaySignInForm();
});
$('#kt_login_signup').click(function(e) {
e.preventDefault();
displaySignUpForm();
});
$('#kt_login_signup_cancel').click(function(e) {
e.preventDefault();
displaySignInForm();
});
}
var handleSignInFormSubmit = function() {
$('#kt_login_signin_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
email: {
required: true,
email: true
},
password: {
required: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', true);
form.ajaxSubmit({
dataType: 'json',
url: 'login',
success: function(response, status, xhr, $form) {
// similate 2s delay
console.log(response);
if (response.status=="success"){
document.location.href=response.data;
}
else {
setTimeout(function() {
btn.removeClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', false);
showErrorMsg(form, 'danger', 'Incorrect username or password. Please try again.');
}, 1000);
}
}
});
});
}
var handleSignUpFormSubmit = function() {
$('#kt_login_signup_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
fullname: {
required: true
},
email: {
required: true,
email: true
},
password: {
required: true
},
rpassword: {
required: true
},
agree: {
required: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', true);
form.ajaxSubmit({
url: 'register.php',
success: function(response, status, xhr, $form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', false);
form.clearForm();
form.validate().resetForm();
// display signup form
displaySignInForm();
var signInForm = login.find('.kt-login__signin form');
signInForm.clearForm();
signInForm.validate().resetForm();
if (response=='1'){
showErrorMsg(signInForm, 'success', 'Thank you. To complete your registration.');
}
else if (response=='2'){
showErrorMsg(signInForm, 'danger', 'Password not matched.');
}
else {
showErrorMsg(signInForm, 'danger', 'Your email already registered.');
}
}, 2000);
}
});
});
}
var handleForgotFormSubmit = function() {
$('#kt_login_forgot_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
email: {
required: true,
email: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', true);
form.ajaxSubmit({
url: '',
success: function(response, status, xhr, $form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass('kt-spinner kt-spinner--right kt-spinner--sm kt-spinner--light').attr('disabled', false); // remove
form.clearForm(); // clear form
form.validate().resetForm(); // reset validation states
// display signup form
displaySignInForm();
var signInForm = login.find('.kt-login__signin form');
signInForm.clearForm();
signInForm.validate().resetForm();
showErrorMsg(signInForm, 'success', 'Cool! Password recovery instruction has been sent to your email.');
}, 2000);
}
});
});
}
// Public Functions
return {
// public functions
init: function() {
handleFormSwitch();
handleSignInFormSubmit();
handleSignUpFormSubmit();
handleForgotFormSubmit();
}
};
}();
// Class Initialization
jQuery(document).ready(function() {
KTLoginGeneral.init();
});