/**
 * Wird ausgeführt wenn die Seite fertig geladen ist.
 * 
 * @method ready()
 */
$(document).ready(function() {
    $.validator.addMethod(
        "noSpecialChars", 
        function(value, element) { 
            return this.optional(element) || /^[a-zA-Z0-9\_\-\.\ü\ä\ö\Ü\Ä\Ö]+$/i.test(value);
        }, 
        "Es sind nur Nummern, Zahlen, Buchstaben, Punkte, Bindestriche und Unterstriche erlaubt."
        );
	
    $("#registrationbox").validate({ //Validieren der Registrationsbox VOR Abschicken der Form
        errorPlacement: function(error, element) {	
            if (element)
            {
                if ($(element).attr('id') == "signup_user_name")
                {
                    if ($('#usr_name').val()==null)
                    {
                        showError('signup_user_name');
                    }
                } else if ($(element.attr('id') == "signup_user_mail"))
{
                    if ($('#usr_mail').val()==null)
                    {
                        showError('signup_user_mail');
                    }
                }
            }
        },
        rules: {
            'signup[user_name]': { //Benutzername prüfen
                required: true,
                minlength: 3,
                maxlength: 16
            },
            'signup[user_mail]': { //Email prüfen
                required: true,
                email: true
            }
        }
    });
});

/**
 * Prüft ob ein Benutzername bereits vorhanden ist in der Datenbank
 * 
 * @method checkUsername()
 * @return
 */
function checkUsername() {
    var usr_name = $('#signup_user_name').val();
    if (usr_name) {
        if ($('#signup_user_name').valid() && ($('#signup_user_name').val().length >= 3)) {
            var url = $('#check_url').val();
            $.getJSON(url, {
                user_name : usr_name
            }, function(json) {
                if (json.username_status == 1) {
                    showWarning('signup_user_name');
                    return;
                }
                if (json.username_status == 0) {
                    showSuccess('signup_user_name');
                    return;
                }
                if (json.username_status == -1) {
                    showUnknown('signup_user_name');
                    return;
                }
                if (json.username_status == 2) {
                    showError('signup_user_name');
                    return;
                }
            });
        } else {
            //			showDescription('signup_user_name');
            return;
        }
    }
    return;
}
/**
 * Prüft ob eine E-Mail Adresse bereits vorhanden ist in der Datenbank
 * 
 * @method checkUserMail()
 * @return
 */
function checkUsermail() {
    var usr_mail = $('#signup_user_mail').val();
    if (usr_mail && usr_mail.length>0) {
        if ($('#signup_user_mail').valid() && ($('#signup_user_mail').val().length >= 5)) {
            var url = $('#check_url').val();
            $.getJSON(url, {
                user_mail : usr_mail
            }, function(json) {
                if (json.usermail_status == 1) {
                    showWarning('signup_user_mail');
                    return;
                }
                if (json.usermail_status == 0) {
                    showSuccess('signup_user_mail');
                    return;
                }
                if (json.usermail_status == -1) {
                    showWarning('signup_user_mail');
                    return;
                }
                if (json.usermail_status == 2) {
                    showError('signup_user_mail');
                    return;
                }
            });
        } else {
            showError('signup_user_mail');
            return;
        }
    } else
{
        showError('signup_user_mail');
        return;
    }
    return;
}
