var modalwin = { message: null, error: null, //Callback Funktion. wird aufgerufen, wenn das Modalfenster geöffnet wird open: function(dialog) { //Video ausblenden, da dies wegen Flash immer drüber liegt $('#video_teaser').hide(); //Alles ausbelnden (das schwarze außen) dialog.overlay.fadeIn(200, function () { //Anschließend Rest (Inahlt) einbelnden dialog.container.fadeIn(200); dialog.data.fadeIn(200); }); }, //Callback Funktion, wird aufgerufen, wenn sich der Password-Ändern Dialog zeigen soll showChangePasswordDialog: function(dialog) { //Gibt an was passieren soll, wenn "Absenden" gedrück wird $('#modalwin-container .modalwin-send').click(function (e) { e.preventDefault(); //Eingaben validieren if (modalwin.validate_change_password()) { //Password per "Ajax" ändern und auf Ausgabe warten $.getJSON('/webrpc/changepassword.php', $('#modalwin-container form').serialize() + '&action=send', function (data, textStatus) { // Prüfen ob passwortänderung erfolgreich war if (textStatus == "success"){ //Im Fehlerfall Fehlermeldung anzeigen if (data.success == "false") { modalwin.error = data.msg; modalwin.showError(); } else { //Bei Erfolg alle bisheringen Fehler ausblenden if ($('#modalwin-container .modalwin-error:visible').length > 0) { $('#modalwin-container .modalwin-error').fadeOut(200); } // und den Inhalt des Modalfensters ausblenden $('#modalwin-container form').fadeOut(200, function() { //Erfolgsmeldung einblenden modalwin.message = data.msg; modalwin.showMessage(); }); } } //Wenn verbindung fehlgeschlagen, dann Fehlermeldung else{ modalwin.throwException(textStatus); } }); } else { // Sind die eingaben inkorrekt, dann Fehler anzeigen modalwin.showError(); } }); }, validate_change_password: function () { modalwin.error = ''; var current_pw = $('#modalwin-container #chpw_current_pw').val(); if (!current_pw) { modalwin.error += 'Gib bitte dein aktuelles Passwort ein.' + '
'; } var new_pw = $('#modalwin-container #chpw_new_pw').val(); if (!new_pw) { modalwin.error += 'Gib bitte dein neues Passwort ein.' + '
'; } else { if (new_pw.length < 5) { modalwin.error += 'Das neue Passwort muss mindestens 5 Zeichen lang sein.' + '
'; } } var new_pw2 = $('#modalwin-container #chpw_new_pw2').val(); if (!new_pw2){ modalwin.error += 'Gib bitte dein neues Passwort nochmal zur Bestätigung ein.' + '
'; } else if (new_pw != new_pw2) { modalwin.error += 'Dein neues Passwort und die Bestätigung stimmen nicht überein.' + '
'; } if (current_pw == new_pw && current_pw == new_pw2){ modalwin.error += 'Gib bitte ein Passwort ein, das sich vom alten unterscheidet.' + '
'; } if (modalwin.error.length > 0) { return false; } else { return true; } }, //Callback Funktion, wird aufgerufen, wenn sich der Password-Ändern Dialog zeigen soll showRequestPasswordDialog: function(dialog) { //Gibt an was passieren soll, wenn "Absenden" gedrück wird $('#modalwin-container .modalwin-send').click(function (e) { e.preventDefault(); //Eingaben validieren if (modalwin.validateEmail($('#modalwin-container #current_email').val())) { //Password per "Ajax" ändern und auf Ausgabe warten $.getJSON('/webrpc/send_request_pw_mail.php', $('#modalwin-container form').serialize() + '&action=send', function (data, textStatus) { // Prüfen ob passwortänderung erfolgreich war if (textStatus == "success"){ //Im Fehlerfall Fehlermeldung anzeigen if (data.success == "false") { modalwin.error = data.msg; modalwin.showError(); } else { //Bei Erfolg alle bisheringen Fehler ausblenden if ($('#modalwin-container .modalwin-error:visible').length > 0) { $('#modalwin-container .modalwin-error').fadeOut(200); } // und den Inhalt des Modalfensters ausblenden $('#modalwin-container form').fadeOut(200, function() { //Erfolgsmeldung einblenden modalwin.message = data.msg; modalwin.showMessage(); }); } } //Wenn verbindung fehlgeschlagen, dann Fehlermeldung else{ modalwin.throwException(textStatus); } }); } else { // Sind die eingaben inkorrekt, dann Fehler anzeigen modalwin.error = 'Die angegebene E-Mail-Adresse ist fehlerhaft.'; modalwin.showError(); } }); }, validateEmail: function (email) { var at = email.lastIndexOf("@"); // Make sure the at (@) sybmol exists and // it is not the first or last character if (at < 1 || (at + 1) === email.length) return false; // Make sure there aren't multiple periods together if (/(\.{2,})/.test(email)) return false; // Break up the local and domain portions var local = email.substring(0, at); var domain = email.substring(at + 1); // Check lengths if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255) return false; // Make sure local and domain don't start with or end with a period if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain)) return false; // Check for quoted-string addresses // Since almost anything is allowed in a quoted-string address, // we're just going to let them go through if (!/^"(.+)"$/.test(local)) { // It's a dot-string address...check for valid characters if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local)) return false; } // Make sure domain contains only valid characters and at least one period if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1) return false; return true; }, close: function (dialog) { $.modal.close(); $('#video_teaser').show(); }, throwException: function (xhr) { alert(xhr); }, showMessage: function () { $('#modalwin-container .modalwin-message').append(modalwin.message).fadeIn(200); }, showError: function () { if ($('#modalwin-container .modalwin-error:visible').length > 0) { $('#modalwin-container .modalwin-error').fadeOut(200, function () { $('#modalwin-container .modalwin-error').empty(); $('#modalwin-container .modalwin-error').append(modalwin.error).fadeIn(200); }); } else { $('#modalwin-container .modalwin-error').animate({ height: '75px' }, function () { $('#modalwin-container .modalwin-error').append(modalwin.error).fadeIn(200); }); } } }