var Login = function() { var k = null; var try_login = function() { window.setTimeout(function(){ if(k != null) { var url = '/customer_area/FR/login?op=t&k=' + k + '&x=' + Date.now(); url = url.replace(/ /g, '%20'); $.ajax( { url:url, dataType: "json", contentType: "application/json" }) .done(function(data) { if(data['r'] == true) { k = null; window.location.href = 'login?op=a'; } }) .fail(function() { }) .always(function() { try_login(); }); } }, 1000); } var open_remote_login_dialog = function() { var url = '/customer_area/FR/login?op=r&x=' + Date.now(); url = url.replace(/ /g, '%20'); $.ajax( { url:url, dataType: "json", contentType: "application/json" }) .done(function(data) { if(k == null) { try_login(); } k = data['key']; show_dialog('info_close', '

' + data['key'] + '

', null, 'Remote Access Private Key'); }) .fail(function() { }) .always(function() { }); } var init_globals = function() { $(window).on('hashchange', function() { var hash = window.location.hash; if(hash !== '') { switch(hash) { case '#remote': open_remote_login_dialog(); break; } location.hash = ''; } }); } var handleLogin = function() { $('.login-form').validate({ errorElement: 'span', //default input error message container errorClass: 'help-block', // default input error message class focusInvalid: false, // do not focus the last invalid input rules: { username: { required: true }, password: { required: true }, remember: { required: false } }, messages: { username: { required: "Username is required." }, password: { required: "Password is required." } }, invalidHandler: function(event, validator) { //display error alert on form submit $('.alert-danger', $('.login-form')).show(); }, highlight: function(element) { // hightlight error inputs $(element) .closest('.form-group').addClass('has-error'); // set error class to the control group }, success: function(label) { label.closest('.form-group').removeClass('has-error'); label.remove(); }, errorPlacement: function(error, element) { error.insertAfter(element.closest('.input-icon')); }, submitHandler: function(form) { form.submit(); // form validation success, call ajax form submit } }); $('.login-form input').keypress(function(e) { if (e.which == 13) { if ($('.login-form').validate().form()) { $('.login-form').submit(); //form validation success, call ajax form submit } return false; } }); } var handleForgetPassword = function() { $('.forget-form').validate({ errorElement: 'span', //default input error message container errorClass: 'help-block', // default input error message class focusInvalid: false, // do not focus the last invalid input ignore: "", rules: { email: { required: true, email: true } }, messages: { email: { required: "Email is required." } }, invalidHandler: function(event, validator) { //display error alert on form submit }, highlight: function(element) { // hightlight error inputs $(element) .closest('.form-group').addClass('has-error'); // set error class to the control group }, success: function(label) { label.closest('.form-group').removeClass('has-error'); label.remove(); }, errorPlacement: function(error, element) { error.insertAfter(element.closest('.input-icon')); }, submitHandler: function(form) { form.submit(); } }); $('.forget-form input').keypress(function(e) { if (e.which == 13) { if ($('.forget-form').validate().form()) { $('.forget-form').submit(); } return false; } }); jQuery('#forget-password').click(function() { jQuery('.login-form').hide(); jQuery('.forget-form').show(); }); jQuery('#back-btn').click(function() { jQuery('.login-form').show(); jQuery('.forget-form').hide(); }); } var handleRegister = function() { function format(state) { if (!state.id) return state.text; // optgroup return "  " + state.text; } if (jQuery().select2) { $("#select2_sample4").select2({ placeholder: ' Select a Country', allowClear: true, formatResult: format, formatSelection: format, escapeMarkup: function(m) { return m; } }); $('#select2_sample4').change(function() { $('.register-form').validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input }); } $('.register-form').validate({ errorElement: 'span', //default input error message container errorClass: 'help-block', // default input error message class focusInvalid: false, // do not focus the last invalid input ignore: "", rules: { fullname: { required: true }, email: { required: true, email: true }, address: { required: true }, city: { required: true }, country: { required: true }, username: { required: true }, password: { required: true }, rpassword: { equalTo: "#register_password" }, tnc: { required: true } }, messages: { // custom messages for radio buttons and checkboxes tnc: { required: "Please accept TNC first." } }, invalidHandler: function(event, validator) { //display error alert on form submit }, highlight: function(element) { // hightlight error inputs $(element) .closest('.form-group').addClass('has-error'); // set error class to the control group }, success: function(label) { label.closest('.form-group').removeClass('has-error'); label.remove(); }, errorPlacement: function(error, element) { if (element.attr("name") == "tnc") { // insert checkbox errors after the container error.insertAfter($('#register_tnc_error')); } else if (element.closest('.input-icon').size() === 1) { error.insertAfter(element.closest('.input-icon')); } else { error.insertAfter(element); } }, submitHandler: function(form) { form.submit(); } }); $('.register-form input').keypress(function(e) { if (e.which == 13) { if ($('.register-form').validate().form()) { $('.register-form').submit(); } return false; } }); jQuery('#register-btn').click(function() { jQuery('.login-form').hide(); jQuery('.register-form').show(); }); jQuery('#register-back-btn').click(function() { jQuery('.login-form').show(); jQuery('.register-form').hide(); }); } var handleCookiesInfo = function() { setTimeout(function () { $("#cookieConsent").fadeIn(200); }, 4000); $("#closeCookieConsent, .cookieConsentOK").click(function() { $("#cookieConsent").fadeOut(200); }); } return { //main function to initiate the module init: function() { handleLogin(); handleForgetPassword(); handleRegister(); init_globals(); handleCookiesInfo(); } }; }();