﻿function dateChange(src, dstID, e) {

    var e = window.event || e;
    var keyunicode = e.charCode || e.keyCode;
    if (keyunicode == 111) { // '/'
        src.value = src.value.substr(0, src.value.length - 1);
        
    } else if (dstID.length > 0) {
        var maxlength = src.getAttribute('maxlength');
        if (maxlength == src.value.length) {
            var dst = document.getElementById(dstID);
            if (dst.value.length < 2) {
                dst.focus();
            }
        }
    }
    return false;
}
function dateNaiss_Validate(sender, args) {

    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    var j = parseInt($get(id + '_LeJour').value, 10);
    var m = parseInt($get(id + '_LeMois').value, 10) - 1;
    var a = parseInt($get(id + '_LAnnee').value, 10);
    
    var today = new Date();
    var tj = today.getDate();
    var tm = today.getMonth();
    var ta = today.getFullYear();

    args.IsValid = (ta - a > 18 || ((ta - a == 18) && ((m < tm) || ((m == tm) && (j <= tj)))));
}
function dateNaissEnfant_Validate(sender, args) {
    var ageMaxEnfant = 28; // strictement inférieur

    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    var j;
    if ($get(id + '_LeJour') != null) {
        j = parseInt($get(id + '_LeJour').value, 10);
    }
    else {
        j = 1;
    }
    var m;
    if ($get(id + '_LeMois') != null) {
        m = parseInt($get(id + '_LeMois').value, 10) - 1;
    }
    else {
        m = 1;
    }
    var a = parseInt($get(id + '_LAnnee').value, 10);

    var today = new Date();
    var tj = today.getDate();
    var tm = today.getMonth();
    var ta = today.getFullYear();

    args.IsValid = (ta - a < ageMaxEnfant || ((ta - a == ageMaxEnfant) && ((m > tm) || ((m == tm) && (j > tj)))));
}

function dateContrat_Validate(sender, args) {
    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    var j = parseInt($get(id + '_LeJour').value, 10);
    var m = parseInt($get(id + '_LeMois').value, 10);
    var a = parseInt($get(id + '_LAnnee').value, 10);
    var dateContrat = new Date(a, m - 1, j, 23, 59, 59, 999);
    var today = new Date();
    args.IsValid = ((dateContrat - today) >= 0);
}

function datePassee_Validate(sender, args) {
    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    var j = parseInt($get(id + '_LeJour').value, 10);
    var m = parseInt($get(id + '_LeMois').value, 10);
    var a = parseInt($get(id + '_LAnnee').value, 10);
    var dateContrat = new Date(a, m - 1, j, 23, 59, 59, 999);
    var today = new Date();
    args.IsValid = ((today - dateContrat) >= 0);
}

function dateMois36_Validate(sender, args) {
    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    if ($get(id + '_LeJour').value == '' || $get(id + '_LeMois').value == '' || $get(id + '_LAnnee').value == '')
        args.isvalid = false;
        
    var j = parseInt($get(id + '_LeJour').value, 10);
    var m = parseInt($get(id + '_LeMois').value, 10);
    var a = parseInt($get(id + '_LAnnee').value, 10);
    var dateATester = new Date(a, m-1, j, 0, 0, 0, 0);
    var today = new Date();

    var tj = today.getDate();
    var tm = today.getMonth();
    var ta = today.getFullYear();
    
    var dateMois36 = new Date(ta-3, tm, tj, 0, 0, 0, 0);

    if ((dateATester <= today) && (dateATester >= dateMois36)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
}

function dateMois60_Validate(sender, args) {
    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));
    var j = parseInt($get(id + '_LeJour').value, 10);
    var m = parseInt($get(id + '_LeMois').value, 10);
    var a = parseInt($get(id + '_LAnnee').value, 10);
    var dateATester = new Date(a, m - 1, j, 0, 0, 0, 0);
    var today = new Date();

    var tj = today.getDate();
    var tm = today.getMonth();
    var ta = today.getFullYear();

    var dateMois60 = new Date(ta - 5, tm, tj, 0, 0, 0, 0);

    if ((dateATester <= today) && (dateATester >= dateMois60)) {
        args.IsValid = true;
    }
    else {
        args.IsValid = false;
    }
}

function dateCalendrier_Validate(sender, args) {
    var id = sender.controltovalidate.substr(0, sender.controltovalidate.indexOf('_LAnnee'));

    var j;
    if ($get(id + '_LeJour') != null) {
        j = parseInt($get(id + '_LeJour').value, 10);
    }
    else {
        j = 1;
    }
    var m;
    if ($get(id + '_LeMois') != null) {
        m = parseInt($get(id + '_LeMois').value, 10);
    }
    else {
        m = 1;
    }
    
    var a = parseInt($get(id + '_LAnnee').value, 10);
    var date = new Date(a, m - 1, j);
    
    args.IsValid = (a == date.getFullYear()) && (m - 1 == date.getMonth()) && (j == date.getDate());
}
