
/// Standaard validatie functies
function formValidateRequiredTextBox(source, args) {

    if (source.isrequired && args.Value.replace(/\s+$/, "").length == 0) {

        args.IsValid = false;
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function formValidateRequiredDropDownList(source, args) {

    var control = document.getElementById(source.controltovalidate);

    if (source.isrequired) {

        var minIndex = parseInt(source.minindex);
        args.IsValid = (!isNaN(minIndex) && control.selectedIndex >= minIndex);
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function formValidateRequiredCheckBox(source, args) {

    if (source.isrequired) {

        var control = document.getElementById(source.controltovalidate);
        args.IsValid = control.checked;
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function formValidateRequiredRadioButtonList(source, args) {

    if (source.isrequired) {

        var control = document.getElementById(source.controltovalidate);
        args.IsValid = control.checked;
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function formValidateDate(input) {

    var validformat = /^\d{1,2}\-\d{1,2}\-\d{4}$/

    if (!validformat.test(input.value)) {
        return false;
    }
    
    var monthfield = input.value.split("/")[0]
    var dayfield = input.value.split("/")[1]
    var yearfield = input.value.split("/")[2]

    return formValidateDate(dayfield, monthfield, yearfield);
}

function formValidateDate(day, month, year) {

    var isValid = false;
    var date = new Date(year, month - 1, day)

    if (Object.prototype.toString.call(date) === "[object Date]") {

        if (!isNaN(date.getTime())) {
            isValid = true;
        }
    }

    return isValid;
}

function ToggleErrorClass(controlId, isValid) {
    var control = document.getElementById(controlId);
    if (isValid)
        $(control).removeClass('error');
    else 
		$(control).addClass('error');
}

function CleanStyleAttribute(controlId) {

    var control = document.getElementById(controlId);
    $(control).removeAttr('style');
}

function F76_Bel_me_terug_formValidateRequiredBelMijSelection(source, args) {

    var control = document.getElementById(source.controltovalidate);
    var referenceControl = document.getElementById("rbBelMijBinnen30Minuten");
    var referenceControlChecked = false;

    if (referenceControl)
        referenceControlChecked = referenceControl.checked;

    if (source.isrequired && !referenceControlChecked) {

        var minIndex = parseInt(source.minindex);
        var selectedIndex = control.selectedIndex;
        args.IsValid = (!isNaN(minIndex) && selectedIndex >= minIndex);
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function F76_Bel_me_terug_formValidateRequiredAanhef(source, args) {

    var man = document.getElementById("rbAanhefMan");
    var vrouw = document.getElementById("rbAanhefVrouw");

    args.IsValid = (man.checked || vrouw.checked);

    if (!args.IsValid) {

        CleanStyleAttribute(source.id);
    }
}

function F76_Advies_van_financieel_adviseur_formValidateRequiredAdviseurSelection(source, args) {

    var control = document.getElementById(source.controltovalidate);
    var referenceControl = document.getElementById("rbIkHebEenAdviseur");

    if (source.isrequired && referenceControl.checked) {

        if (args.Value.replace(/\s+$/, "").length == 0) {

            args.IsValid = false;
        }
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}


function F38_Valideer_Geboortedatum(source, args) {
    
    var dag = document.getElementById("txtDag");
    var maand = document.getElementById("txtMaand");
    var jaar = document.getElementById("txtJaar");

    var needValidation = ((dag.title != dag.value) || (maand.title != maand.value) || (jaar.title != jaar.value));

    if (needValidation) {

        args.IsValid = formValidateDate(dag.value, maand.value, jaar.value); ;
    }

    ToggleErrorClass('txtDag', args.IsValid);
    ToggleErrorClass('txtMaand', args.IsValid);
    ToggleErrorClass('txtJaar', args.IsValid);

    if (!args.IsValid) {

        CleanStyleAttribute(source.id);
    }
}

function F38_ValideerTextLengte(source, args) {

    var control = document.getElementById(source.controltovalidate);

    if (control && control.value.length > 0) {

        args.IsValid = (control.value.length <= source.maxlength);
    }

    ToggleErrorClass(source.controltovalidate, args.IsValid);
}

function F80_Brochures_aanvragen_formValidateRequiredAanhef(source, args) {

    var man = document.getElementById("main_1_middle_0_rblAanhef_0"); // rbMan
    var vrouw = document.getElementById("main_1_middle_0_rblAanhef_1"); // rbVrouw

    args.IsValid = (man.checked || vrouw.checked);

    if (!args.IsValid) {

        CleanStyleAttribute(source.id);
    }
}
