(function (win) { var baseSettings = { version: '1.0', backend: 'https://www.pornme.pm/ajax.signup.php', isChecking: false, alerter: function (messages) { var message = ''; for (var m in messages) { if (messages.hasOwnProperty(m)) { message += messages[m].join("\n") + "\n" } } alert(message); } }; function _checkUser(name) { if (name.length < 4) { baseSettings.alerter({username: ['Bitte mindestens 4 Zeichen eingeben']}); return false; } if (name.length > 80) { baseSettings.alerter({username: ['Bitte maximal 80 Zeichen eingeben']}); 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 _checkPassword(pass) { if (pass.length < 5) { baseSettings.alerter({password: ['Bitte mindestens 5 Zeichen eingeben.']}); return false; } return true; } function _submitCheck(user, mail, password) { if (!baseSettings.isChecking && _checkUser(user) && _checkEmail(mail) && _checkPassword(password)) { baseSettings.isChecking = true; var request = new XMLHttpRequest(); var url = baseSettings.backend + '?signup_username=' + encodeURIComponent(user) + '&email=' + encodeURIComponent(mail) + '&signup_password=' + encodeURIComponent(password) + '&w=25792&ws=1810002&wt='; request.open('GET', url, true); request.onreadystatechange = function () { if (this.readyState === 4) { if (this.status >= 200 && this.status < 400) { // Success! var reply = JSON.parse(this.responseText); if (reply.hasOwnProperty('login_link')) { window.top.location = 'https://www.pornme.pm/' + reply.login_link; } else { if (reply.hasOwnProperty('message')) { var elem = document.createElement('textarea'); elem.innerHTML = reply.message; var decoded = elem.value; elem = null; baseSettings.alerter({'default': [decoded]}); } else { baseSettings.alerter({'default': ['Die Anmeldung war möglicherweise nicht erfolgreich. Bitte prüfen Sie Ihre E-Mails.']}); } baseSettings.isChecking = false; } } else { baseSettings.alerter({'default': ['Die Anmeldung war nicht erfolgreich. Bitte versuchen Sie es später noch einmal.']}); baseSettings.isChecking = false; } } }; request.send(); request = null; } return false; } win.pmApi = { checkUsername: function (username) { var user = document.getElementById(username).value; return _checkUser(user); }, checkEmail: function (email) { var mail = document.getElementById(email).value; return _checkEmail(mail); }, checkPassword: function (password) { var pass = document.getElementById(password).value; return _checkPassword(pass); }, checkSignup: function (username, email, password, form) { baseSettings.form = form; var user = document.getElementById(username).value; var mail = document.getElementById(email).value; var pass = document.getElementById(password).value; return _submitCheck(user, mail, pass); }, setAlert: function (callable) { baseSettings.alerter = callable; } } })(window);