(function (win) { var baseSettings = { version: '1.0', backend: 'https://www.flibzee.com/labackend/check', form: null, handler: function () { return true; }, alerter: function (messages) { var message = ''; for (var key in messages) { if (messages.hasOwnProperty(key)) { message = messages[key].join("\n"); } } alert(message); } }; function _checkUser(name) { if (name.length < 6) { baseSettings.alerter({username: ['Bitte mindestens 6 Zeichen eingeben']}); return false; } if (name.length > 12) { baseSettings.alerter({username: ['Bitte maximal 12 Zeichen eingeben']}); return false; } if (/[^a-zA-Z0-9]/.test(name)) { baseSettings.alerter({username: ['Es sind keine Sonderzeichen im Username erlaubt!']}); return false; } return true; } function _checkEmail(mail) { if (!mail.match(/.+@.+\..+/)) { baseSettings.alerter({email: ['Bitte geben Sie eine gültige E-Mail Adresse ein.']}); return false; } return true; } function _submitCheck(user, mail) { if (_checkUser(user) && _checkEmail(mail)) { var su = document.createElement('script'); su.type = 'text/javascript'; su.async = false; su.src = baseSettings.backend + '?username=' + encodeURIComponent(user) + '&email=' + encodeURIComponent(mail) + '&jsonp=window.laApi.signupResult'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(su, s); } return false; } win.laApi = { checkUsername: function (username) { var user = document.getElementById(username).value; return _checkUser(user); }, checkEmail: function (email) { var mail = document.getElementById(email).value; return _checkEmail(mail); }, checkSignup: function (username, email, form) { baseSettings.form = form; var user = document.getElementById(username).value; var mail = document.getElementById(email).value; return _submitCheck(user, mail); }, signupResult: function (resultId, messages, alternativeNames) { if (resultId != 0) { var doAlert = baseSettings.handler(resultId, messages, alternativeNames); if (doAlert) { baseSettings.alerter(messages); } } else { baseSettings.form.submit(); } }, setAlert: function (callable) { baseSettings.alerter = callable; } } })(window);