﻿// E-Mail-Adresse überprüfen
function validateEmail(email) {
    var regExEmail = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$");
    return regExEmail.test(email);
}

// Klassen anpassen
function ValChangeClasses(sValid, controltovalidate, labels) {
    // Klassen ändern
    var sLabels = labels.split(",");

    if (sValid) {
        $("#" + controltovalidate).removeClass("active");
        for (i = 0; i < sLabels.length; i++) {
            if (document.getElementById(sLabels[i]) != null) {
                $("#" + sLabels[i]).removeClass("active");
            }
        }
    } else {
        $("#" + controltovalidate).addClass("active");
        for (i = 0; i < sLabels.length; i++) {
            if (document.getElementById(sLabels[i]) != null) {
                $("#" + sLabels[i]).addClass("active");
            }
        }
    }
}

// Required
function RequiredEvaluateIsValid(val) {
    // Überprüfung
    var sValid = false;
    var sValue = ValidatorGetValue(val.controltovalidate);
    if (sValue.length > 0 && sValue != val.initialvalue) {
        sValid = true;
    }

    // Ausgabe
    ValChangeClasses(sValid, val.controltovalidate, val.labels);
    return sValid;
}

// E-Mail
function MailEvaluateIsValid(val) {
    // Überprüfung
    var sValid = false;
    var sValue = ValidatorGetValue(val.controltovalidate);
    if (sValue == val.initialvalue) {
        sValid = true
    } else {
        sValid = validateEmail(sValue);
    }

    // Ausgabe
    ValChangeClasses(sValid, val.controltovalidate, val.labels);
    return sValid;
}

// Equals
function EqualsEvaluateIsValid(val) {
    // Überprüfung
    var sValid = false;
    var sValue = ValidatorGetValue(val.controltovalidate);
    var sCValue = ValidatorGetValue(val.controltocompare);
    if (sValue.length > 0 && sCValue.length > 0) {
        if (sValue == sCValue) {
            sValid = true;
        }

        // Ausgabe
        ValChangeClasses(sValid, val.controltovalidate, val.labels);
        return sValid;
    } else {
        return true;
    }
}

// NotEquals
function NotEqualsEvaluateIsValid(val) {
    // Überprüfung
    var sValid = false;
    var sValue = ValidatorGetValue(val.controltovalidate);
    var sCValue = ValidatorGetValue(val.controltocompare);
    if (sValue.length > 0 && sCValue.length > 0) {
        if (sValue != sCValue) {
            sValid = true;
        }

        // Ausgabe
        ValChangeClasses(sValid, val.controltovalidate, val.labels);
        return sValid;
    } else {
        return true;
    }
}

// Number
function NumberEvaluateIsValid(val) {
    // Überprüfung
    var sValid = true;
    var sValue = ValidatorGetValue(val.controltovalidate);
    var sValueChars = "0123456789";
    if (sValue.length > 0) {
        for (i = 0; i < sValue.length; i++) {
            Char = sValue.charAt(i);
            if (sValueChars.indexOf(Char) == -1) {
                sValid = false;
            }
        }
    } else {
        sValid = false;
    }

    // Ausgabe
    ValChangeClasses(sValid, val.controltovalidate, val.labels);
    return sValid;
}

// RegularExpression
function RegExEvaluateIsValid(val) {
    // Überprüfung
    var sValue = ValidatorGetValue(val.controltovalidate);
    var sRegEx = new RegExp(val.validationexpression);
    var sValid = sRegEx.test(sValue);

    // Ausgabe
    ValChangeClasses(sValid, val.controltovalidate, val.labels);
    return sValid;
}