var userLang = navigator.language || navigator.userLanguage; var curr_lng=userLang.substr(0, 2); $.ajaxSetup({ dataType: "json", method: "POST", cache: false, complete: function() { $('.preloader').addClass('hide'); }, error: function(res) { $('.preloader').addClass('hide'); } }); $(document).ready(function() { loadLang(function(_langs) { $('.login_form .user').focus(); // default button clicks on enter $(document).keypress(function(e) { if (e.which == 13) { e.preventDefault(); $('.btn-default').trigger('click'); } }); $(".login_form .login").bind('click', function() { $.ajax({ url: "/login", data: { user: $('.login_form .user').val(), pass: $('.login_form .pass').val() }, success: function(res) { location.reload(); }, error: function(res) { $('.login_form .form .login.btn.btn-default').addClass('shakeX'); setTimeout(function() { $('.login_form .form .login.btn.btn-default').removeClass('shakeX'); }, 300); } }); }); $(".settings li a#logout").bind('click', function() { $.ajax({ url: "/logout", method: "GET", success: function(res) { location.reload(); } }); }); $(".settings li a#newPass").bind('click', function() { $(".settings li.newPassForm").toggleClass('hide'); $(".settings li input#newPass").focus(); $(".settings li input#newPass, .settings li input#newPassAgain").unbind().bind('keyup', function() { var newPass=$(".settings li input#newPass").val(); var newPassAgain=$(".settings li input#newPassAgain").val(); if (newPass.length>=6 && newPassAgain.length>=6) { $(".settings li button#changePass").attr('disabled',false).unbind().bind('click', function() { if (newPass!=newPassAgain) { alert(_langs.passNotMatch); } else { setUserData('','pass',newPass); $(".settings li.newPassForm").slideUp(); } }); } else { $(".settings li button#changePass").attr('disabled',true); } }); }); $(".settings li a.langs").bind('click', function() { var newLang=$(this).attr('id'); $.ajax({ url: "/api/v1/switchLang/"+newLang, cache: true, complete: function(res) { location.reload(); } }); }); }); }); function loadLang(callback) { $.ajax({ url: "/api/v1/getLang", cache: true, success: function(langs) { if (typeof callback==="function") { callback(langs); } } }); } function delay(callback, ms=500) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; } function validateEmail(email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,4}))$/; return re.test(String(email).toLowerCase()); } function validateUser(user) { var re=/^[a-zA-Z0-9\_]{6,255}$/; return re.test(String(user)); } function setUserData(userID,param,value,callback) { $.ajax({ url: "/api/v1/usersEdit", data: { userID : userID, param : param, value : value }, beforeSend: function(xhr) { if (!validateEmail(value) && param=="email") { xhr.abort(); $('.users table.usersTable tr#'+userID+' input.email').addClass('shakeX'); setTimeout(function() { $('.users table.usersTable tr#'+userID+' input.email').removeClass('shakeX').val($('.users table.usersTable tr#'+userID+' input.email').attr('alt')); }, 500); } }, success: function(res,xhr) { if (typeof callback==="function") { callback(); } if (param=="pass" && userID!="") { $('.users table.usersTable tr#'+userID+' button.resetPass').addClass('rot180'); } }, error: function() { if (param=="email") { $('.users table.usersTable tr#'+userID+' input.email').addClass('shakeX'); setTimeout(function() { $('.users table.usersTable tr#'+userID+' input.email').removeClass('shakeX').val($('.users table.usersTable tr#'+userID+' input.email').attr('alt')); }, 500); } } }); }