﻿function CheckRequiredTextBox(sender, args) {
    var JSONErrorMessageObject = eval('(' + sender.errormessage + ')');
    var watermarkValues = JSONErrorMessageObject.watermarkvalues.split(',');
    var hasWatermarkValue = false;

    for (var i = 0; i < watermarkValues.length; i++) {
        if (watermarkValues[i] == args.Value) {
            hasWatermarkValue = true;
        }
    }

    if (args.Value != '' && !hasWatermarkValue) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
    triggerErrorMessage(sender, args.IsValid);
}

function CheckEmailFormatTextBox(sender, args) {
    var JSONErrorMessageObject = eval('(' + sender.errormessage + ')');
    var watermarkValues = JSONErrorMessageObject.watermarkvalues.split(',');
    var hasWatermarkValue = false;

    for(var i = 0; i < watermarkValues.length; i++)
    {
        if(watermarkValues[i] == args.Value)
        {
            hasWatermarkValue = true;
        }
    }

    var arrMatch = new RegExp("^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[@][A-Za-z0-9][A-Za-z0-9-]+([.-][A-Za-z0-9-]+)*[.]([A-Za-z]){2,6}$").exec(args.Value);
    if (arrMatch && !hasWatermarkValue) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
    triggerErrorMessage(sender, args.IsValid);
}

function CheckRequiredPhoneTextBox(sender, args) {
    var JSONErrorMessageObject = eval('(' + sender.errormessage + ')');
    var watermarkValues = JSONErrorMessageObject.watermarkvalues.split(',');
    var hasWatermarkValue = false;

    for (var i = 0; i < watermarkValues.length; i++) {
        if (watermarkValues[i] == args.Value) {
            hasWatermarkValue = true;
        }
    }
    var arrMatch = new RegExp("^((((0031)|(\\+31))(\\-)?6(\\-)?[0-9]{8})|(06(\\-)?[0-9]{8})|(((0031)|(\\+31))(\\-)?[1-9]{1}(([0-9](\\-)?[0-9]{7})|([0-9]{2}(\\-)?[0-9]{6})))|([0]{1}[1-9]{1}(([0-9](\\-)?[0-9]{7})|([0-9]{2}(\\-)?[0-9]{6}))))$").exec(args.Value);

    if (args.Value != '' && arrMatch && !hasWatermarkValue) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
    
    triggerErrorMessage(sender, args.IsValid);
}


function CheckPreferredDateTextBox(sender, args) {
    if (args.valueOf == '')
        return;

    var date = new Date();
    var arrDate = args.Value.split("-");
    var JSONErrorMessageObject = eval('(' + sender.errormessage + ')');
    var watermarkValues = JSONErrorMessageObject.watermarkvalues.split(',');
    var hasWatermarkValue = false;

    for (var i = 0; i < watermarkValues.length; i++) {
        if (watermarkValues[i] == args.Value) {
            hasWatermarkValue = true;
        }
    }

    date.setFullYear(arrDate[2], arrDate[1]-1, arrDate[0]);

    // 6=zaterdag, 0=zondag
    if (date.getDay() != 6 && date.getDay() != 0 && !hasWatermarkValue) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
    triggerErrorMessage(sender, args.IsValid);
}

function triggerErrorMessage(sender, state) {
    var JSONErrorMessageObject = eval('(' + sender.errormessage + ')');
    var controlToValidate = $get(sender.controltovalidate);
    var toolTip = sender.title;

    switch (JSONErrorMessageObject.action) {
        case 'ContactValidation':
            if (state) {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                if (obj.children().length == 0) {
                    $get(JSONErrorMessageObject.diverrorbanner).style.display = 'none';
                }
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'hidden';
                $get(JSONErrorMessageObject.spanlabel).className = 'required';
                controlToValidate.className = 'textfield';
            }
            else {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                obj.append('<li>' + sender.title + '</li>');

                $get(JSONErrorMessageObject.diverrorbanner).style.display = 'block';
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'visible';
                $get(JSONErrorMessageObject.spanlabel).className = 'required-yellow';
                controlToValidate.className = 'textfield-error-yellow';
            }
            break;
        case 'NewsLetterValidation':
            if (state) {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                if (obj.children().length == 0) {
                    $get(JSONErrorMessageObject.diverrorbanner).style.display = 'none';
                }
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'hidden';
                $get(JSONErrorMessageObject.spanlabel).className = 'required';
                controlToValidate.className = 'textfield';
                $get(JSONErrorMessageObject.ulerrorsummary);
            }
            else {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                obj.append('<li>' + sender.title + '</li>');

                $get(JSONErrorMessageObject.diverrorbanner).style.display = 'block';
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'visible';
                $get(JSONErrorMessageObject.spanlabel).className = 'required-red';
                controlToValidate.className = 'textfield-error-red';
            }
            break;
        case 'IdeaValidation':
            if (state) {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                if (obj.children().length == 0) {
                    $get(JSONErrorMessageObject.diverrorbanner).style.display = 'none';
                }
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'hidden';
                $get(JSONErrorMessageObject.spanlabel).className = 'required';
                controlToValidate.className = 'textfield';
                $get(JSONErrorMessageObject.ulerrorsummary);
            }
            else {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                obj.append('<li>' + sender.title + '</li>');

                $get(JSONErrorMessageObject.diverrorbanner).style.display = 'block';
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'visible';
                $get(JSONErrorMessageObject.spanlabel).className = 'required-red';
                controlToValidate.className = 'textfield-error-red';
            }
            break;
        case 'MailAFriendPopupValidation':
            if (state) {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                if (obj.children().length == 0) {
                    $get(JSONErrorMessageObject.diverrorbanner).style.display = 'none';
                }
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'hidden';
                $get(JSONErrorMessageObject.spanlabel).className = 'required';
                controlToValidate.className = 'textfield';
                $get(JSONErrorMessageObject.ulerrorsummary);
            }
            else {
                var obj = $('#' + JSONErrorMessageObject.ulerrorsummary);
                obj.children().remove(":contains('" + sender.title + "')");
                obj.append('<li>' + sender.title + '</li>');

                $get(JSONErrorMessageObject.diverrorbanner).style.display = 'block';
                $get(JSONErrorMessageObject.diverroricon).style.visibility = 'visible';
                $get(JSONErrorMessageObject.spanlabel).className = 'required-red';
                controlToValidate.className = 'textfield-error-red';
            }
            break;            
    }
}
