﻿function CustomValidator_ValidateDate(sender, args){
    var value = constructFullValidDate(args.Value);
    
    if ($get(sender.controltovalidate).value != value)
        $get(sender.controltovalidate).value = value;
                
    args.IsValid = true;
}

function constructFullValidDate(value){
    var separator = '/';
    var vals = value.split(separator);
            
    if (vals.length == 1){
        separator = '.';
        vals = value.split(separator);
                
        if (vals.length == 1){
            separator = '-';
            vals = value.split(separator);
                    
            if (vals.length == 1){
                return value;
            }
        }
    }
            
    if (vals[1].length == 0){
        return value;
    }
            
    var newValue = '' + parseInt(vals[0],10) + separator + parseInt(vals[1],10) + separator;
    if (vals.length > 2){
        var y = parseInt(vals[2],10);
        if (y < 30)
            y += 2000;
        else if (y < 100)
            y += 1900;
        else if (y>1900)
            y = y;    
        else {
            var d = new Date();
            y = d.getFullYear();
        }    
                        
        newValue += y;
    }
    else {
        var d = new Date();
        newValue += d.getFullYear();
    }
            
    return newValue;
}