﻿
function ajaxFormValidation(myForm) {
    var isValid = true;

    // E-Mail-Adresse
    function email(value) {
        var regExEmail = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$");
        return regExEmail.test(value);
    }

    // Nicht leer
    function required(value) {
        return (value != "");
    }

    $(myForm + " input.required," + myForm + " textarea.required").each(function () {
        if (required($(this).val())) {
            $(this).removeClass("active");
        } else {
            $(this).addClass("active");
            isValid = false;
        }
    });

    $(myForm + " input.email").each(function () {
        if (email($(this).val())) {
            $(this).removeClass("active");
        } else {
            $(this).addClass("active");
            isValid = false;
        }
    });

    return isValid;
}

// .net Formular via Ajax absenden
function submitFormViaAjax(myForm,eventArg) {
    if (ajaxFormValidation(myForm)) {
        // Event-Target manuell setzen (ID des Senden-Linkbuttons)
        $("#__EVENTTARGET").val(eventArg);
        // Action
        var url = $(myForm).attr("action");
        // Input Values serialisieren
        var params = $(myForm).serialize();
        // Postback via Ajax
        $.ajax({
            type: 'POST',
            url: url,
            data: params,
            success: function (data) {
                $("#content").html("");
                var content = $(data).filter("#content").html();
                $("#content").html(content).fadeIn(300, function () {
                    sidebar();
                    $("#content a").each(function () {
                        var cHref = $(this).attr("href");
                        if (cHref != undefined) {
                            if ((cHref.indexOf("/") == 0 && cHref.indexOf(".aspx") > -1) || (cHref.indexOf(location.hostname) > -1 && cHref.indexOf(".aspx") > -1)) {
                                makeItAjax($(this));
                            }
                            if (cHref.indexOf("http") > -1 && cHref.indexOf(location.hostname) < 0) {
                                makeItIFrame($(this));
                            }
                        }
                    });
                });

            }, error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });
    }
}


