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);
});
}
}
}