﻿//////////////////////////////////////////////////////
//          dynform scripts - DO NOT MODIFY!        //        
//////////////////////////////////////////////////////

function GetTodayString()
{
    var dToday = new Date();
    var today = dToday.getFullYear();
    if (((dToday.getMonth()+1)+"").length == 1)
		today = today + "0";
    
    today = String(today) + String((dToday.getMonth()+1));

    if (((dToday.getDate())+"").length == 1)
		today = today + "0";
    
    today = String(today) + String(dToday.getDate());
    
    return today;
}


function getDateString(value)
{
    var d = "";
    var sep = "-";                   
    
    if (value.indexOf("-") > -1)
        sep = "-";
    else if (value.indexOf("/") > -1)
        sep = "/";    
    else if (value.indexOf(".") > -1)
        sep = ".";
        
    var b = value.split(sep);
    
    if (value != "")
    {        
       
        if (format.toLowerCase().indexOf("d") < format.toLowerCase().indexOf("m"))
        {        
            // day comes before month
            d = b[2] + "";
            
            if (b[1].length == 1)
                d = d + "0";
            d = d + b[1];
            
            if (b[0].length == 1)
                d = d + "0";
            d = d + b[0];
            
        }
        else 
        {
            // day comes after month
            d = b[2] + "";
            
            if (b[0].length == 1)
                d = d + "0";
            d = d + b[0];
            
            if (b[1].length == 1)
                d = d + "0";
            d = d + b[1];
        }
    }
    
    return d;     
}

function checkDateNotFuture(sender, args)
{   
    if (args.Value != '') 
    {
        // eerst testen of het formaat geldig is
        // geldig zijn de formaten: dd-mm-yyyy, dd/mm/yyyy, ddmmyyyy
        var today = GetTodayString();

        var regExp = /^\d{1,2}\/\d{1,2}\/\d{4}$/;

        // test eerst op formaat dd/mm/yyyy
        if(regExp.test(args.Value)) 
        {
            args.IsValid = true;
        } 
        else 
        {
            // test daarna op dd-mm-yyyy
            regExp = /^\d{1,2}-\d{1,2}-\d{4}$/;
            if(regExp.test(args.Value))
            {
                args.IsValid = true;
            } 
            else 
            {
                //test op dd.mm.yyyy
                regExp = /^\d{1,2}.\d{1,2}.\d{4}$/;
                if (regExp.test(args.Value))
                {
                    args.IsValid = true;
                }
                else
                {
                    // test daarna op ddmmyyyy
                    regExp = /^\d{8}$/;
                
                    if(regExp.test(args.Value)) 
                    {
                        args.IsValid = true;
                    } 
                    else 
                    {
                        args.IsValid = false;
                    }
                }
            }
        }
        
        if (args.IsValid)
        {
            
            //  test of datum in de toekomst is
            args.IsValid = (getDateString(args.Value) <= today);
        }
    }
    else 
    {
        args.IsValid = true;
    }    
    
    checkFebruari(args);
    
    return;
}

function checkExpectedDate(sender, args)
{    
    var today = GetTodayString();
    
    if (args.Value != '') {
        //  test of datum in de toekomst is
        args.IsValid = (getDateString(args.Value) >= today);
    }
    else 
    {
        args.IsValid = true;
    }
    
    checkFebruari(args);
    
    return;
}

function checkFebruari(args)
{
    if( getDateString(args.Value).indexOf("0231") > -1 || getDateString(args.Value).indexOf("0230") > -1)
    {
        args.IsValid = false;
    }
    
    return;
}

function checkChildrenAmount(sender, args)
{
    if (args.Value > -1)
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
    
    return;
}
