(function (win) { var baseSettings = { version: '1.0', backend: 'https://www.flibzee.com/vxpay/createUser', form: null, host: null, handler: function() { return true; }, 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 < 5) { baseSettings.alerter({username: ['Bitte mindestens 5 Zeichen eingeben']}); return false; } if (name.length > 12) { baseSettings.alerter({username: ['Bitte maximal 12 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 < 6) { baseSettings.alerter({password: ['Bitte mindestens 6 Zeichen eingeben.']}); return false; } else if (pass.length > 32) { baseSettings.alerter({password: ['Bitte maximal 32 Zeichen eingeben.']}); return false; } return true; } function _submitCheck(user, mail, password) { if (_checkUser(user) && _checkEmail(mail) && _checkPassword(password)) { var su = document.createElement('script'); su.type = 'text/javascript'; su.async = false; su.src = baseSettings.backend + '?username=' + encodeURIComponent(user) + '&email=' + encodeURIComponent(mail) + '&password=' + encodeURIComponent(password) + '&jsonp=window.vxApi.signupResult' + '&w=8354&ws=2210001&wt=&pfm=751&target=DE'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(su, s); } return false; } win.vxApi = { 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); }, signupResult: function (resultId, messages, alternativeName) { if (resultId != 0) { var doAlert = baseSettings.handler(resultId, messages, alternativeName); if (doAlert) { baseSettings.alerter(messages); } } else { var location = messages['success']; if (baseSettings.host !== null) { location += '&s=' + baseSettings.host; } window.location = location; } }, setHandler: function (callable) { baseSettings.handler = callable; }, setAlert: function (callable) { baseSettings.alerter = callable; } } })(window);