﻿

function TestDatePicker(obj) {
    var MonReg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
    if (!MonReg.test(obj.value)) {
        return false;
    }
    else {
        return true;
    }
}
function DateForPicker(date1, mini, maxi) {

    var myDateMini = new Date();
    myDateMini.getYear() - mini;

    var myDateMaxi = new Date();
    myDateMaxi.getYear() - maxi;



    var datedujour = new Date();
    var tdate1 = date1.split('/');

    date1 = new Date(tdate1[2], parseInt(tdate1[1] - 1), tdate1[0]);

    if (date1 < myDateMaxi || date1 > myDateMini)
        return false;
    else
        return true;
}



function TestDate(obj, err, message) {
    var userDate = $get(obj).value;
    if (userDate.length == 8) {
        var temp = userDate;
        userDate = temp.substr(0, 2) + "/" + temp.substr(2, 2) + "/" + temp.substr(4, 4);
    }

    var MonReg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
    if (!MonReg.test(userDate)) {
        if (err != null) {
            if (message != null && message != '')
                $get(err).innerHTML = message;
            jQuery("#" + err).show();
        }
        return false;
    }
    else {
        if (err != null) jQuery("#" + err).hide();
        $get(obj).value = userDate;
        return true;
    }
}

function IsDateOk(obj) {
    var MonReg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
    if (!MonReg.test($get(obj).value)) {
        return false;
    }
    else {
        return true;
    }
}

function TestNumeroAdherent(obj, err) {
    var tel = $get(obj).value;
    if (tel.length != '') {
        if (!TestEntier(tel)) {
            jQuery("#" + err).html("Uniquement des chiffres").show().addClass('erreur');
            return false;
        }
        if (tel.length != 8) {
            jQuery("#" + err).html("Numéro sur 8 chiffres").show().addClass('erreur');
            return false;
        }
        jQuery("#" + err).html("").hide().removeClass('erreur');
        return true;
    }
    else {
        jQuery("#" + err).html("Veuillez saisir votre numéro adhérent").show().addClass('erreur');
        return false;
    }
}


function TestTelephone(obj, champ, err) {
    var tel = $get(obj).value;
    if (tel.length != '') {
        if (!TestEntier(tel)) {
            $get(err).innerHTML = "Uniquement des chiffres";
            jQuery("#" + err).show();
            jQuery("#" + champ).addClass('erreur');
            return false;
        }
        if (tel.length != 10) {
            $get(err).innerHTML = "Numéro sur 10 chiffres";
            jQuery("#" + champ).addClass('erreur');
            jQuery("#" + err).show();
            return false;
        }
        jQuery("#" + champ).removeClass('erreur');
        jQuery("#" + err).hide();
        return true;
    }
    else {
        jQuery("#" + champ).removeClass('erreur');
        jQuery("#" + err).hide();
        return true;
    }
}



function IsDateInferieure(date1, err, message) {

    var datedujour = new Date();
    var an = datedujour.getFullYear();
    var xmois = datedujour.getMonth() + 1;
    var date = Right('00' + datedujour.getDate(), 2);
    var mois = Right('00' + xmois, 2);
    var date2 = date + "/" + mois + "/" + an
    var tdate1 = date1.split('/');
    var tdate2 = date2.split('/');
    date1 = new Date(tdate1[2], tdate1[1], tdate1[0]);
    date2 = new Date(tdate2[2], tdate2[1], tdate2[0]);
    if (date1 > date2) {
        $get(err).innerHTML = message;
        jQuery("#" + err).show();
        return false;
    }
    else {
        jQuery("#" + err).hide();
        return true;
    }
}

function CalculAgeV3(date1, date2, mini, maxi, err, message) {
    var tdate1 = date1.split('/');
    var tdate2 = date2.split('/');
    date1 = new Date(tdate1[2], parseInt(tdate1[1]) - 1, tdate1[0]);
    date2 = new Date(tdate2[2], parseInt(tdate2[1]) - 1, tdate2[0]);
    var age = date2.getFullYear() - date1.getFullYear();

    if (age == mini && (parseInt(tdate2[1]) < parseInt(tdate1[1]))) {
        return false;
    }
    if (age == maxi && (parseInt(tdate2[1]) > parseInt(tdate1[1]))) {
        return false;
    }
    if (age < mini || age > maxi) {
        return false;
    }
    else {
        jQuery("#" + err).hide();
        return true;
    }
}


function CalculAgeV2(date1, date2, mini, maxi, err, message) {
    //date2 = date contrat)
    //    var datedujour = new Date();
    var tdate1 = date1.split('/');
    var tdate2 = date2.split('/');
    date1 = new Date(tdate1[2], parseInt(tdate1[1]) - 1, tdate1[0]);
    date2 = new Date(tdate2[2], parseInt(tdate2[1]) - 1, tdate2[0]);
    var age = date2.getFullYear() - date1.getFullYear();
    if (age == mini && (parseInt(tdate2[1]) < parseInt(tdate1[1]))) {
        $get(err).innerHTML = message;
        jQuery("#" + err).show();
        return false;
    }


    if (age == maxi && (parseInt(tdate1[1]) > parseInt(tdate2[1]))) {
        $get(err).innerHTML = message;
        jQuery("#" + err).show();
        return false;
    }
    if (age < mini || age > maxi) {
        $get(err).innerHTML = message;
        jQuery("#" + err).show();
        return false;
    }
    else {
        jQuery("#" + err).hide();
        return true;
    }
}


function CalculAge(date1, mois, annee, mini, maxi, err, message) {
    var datedujour = new Date();
    var tdate1 = date1.split('/');
    if (mois == '' && annee == datedujour.getFullYear())
        date2 = GetMoisSuivant();
    else
        date2 = '01/01/' + annee;
    var tdate2 = date2.split('/');
    date1 = new Date(tdate1[2], tdate1[1], tdate1[0]);
    date2 = new Date(tdate2[2], tdate2[1], tdate2[0]);
    var age = date2.getFullYear() - date1.getFullYear();
    date1.setFullYear(date2.getFullYear());
    if (date1 > date2) age--;
    if (age < mini || age > maxi) {
        $get(err).innerHTML = message;
        jQuery("#" + err).show();
        return false;
    }
    else {
        jQuery("#" + err).hide();
        return true;
    }
}


function Right(str, n) {
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else {
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}
function GetMoisSuivant() {
    var datedujour = new Date();
    var an = datedujour.getFullYear();
    var xmois = datedujour.getMonth() + 2;
    if (xmois == 13) { xmois = 1; an += 1; }
    //var date = Right('00' + datedujour.getDate(), 2);
    var date = '01';
    var mois = Right('00' + xmois, 2);

    return date + "/" + mois + "/" + an
}





function TestEmailLabel(obj, err) {
    var MonReg = /^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$/;
    if (!MonReg.test($get(obj).value)) {
        if (err != null) jQuery("#" + err).addClass('erreur');
        return false;
    }
    else {
        if (err != null) jQuery("#" + err).removeClass('erreur');
        return true;
    }
}
function TestDateLabel(obj, err) {
    var MonReg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
    if (!MonReg.test($get(obj).value)) {
        if (err != null) jQuery("#" + err).addClass('erreur');
        return false;
    }
    else {
        if (err != null) jQuery("#" + err).removeClass('erreur');
        return true;
    }
}
function TestChaineLabel(obj, err) {

    if ($get(obj).value == "") {
        if (err != null) jQuery("#" + err).addClass('erreur');
        return false;
    }
    else {
        if (err != null) jQuery("#" + err).removeClass('erreur');
        return true;
    }
}
function TestComboLabel(obj, err) {
    if ($get(obj).value == "0") {
        if (err != null) jQuery("#" + err).addClass('erreur');
        return false;
    }
    else {
        if (err != null) jQuery("#" + err).removeClass('erreur');
        return true;
    }
}

function TestDecimal(obj, nbdecimales, err) {
    var valeur = $get(obj).value.replace(',', '.');
    var MonReg = /^[0-9]*(\.)?[0-9]+$/;
    if (!MonReg.test(valeur)) {
        jQuery("#" + err).addClass("erreur");
        return false;
    }
    else {
        jQuery("#" + err).removeClass("erreur");
        $get(obj).value = parseFloat(valeur).toFixed(nbdecimales);
        return true;
    }
}

function TestEntier(valeur) {
    var MonReg = /^\d+$/;
    if (!MonReg.test(valeur)) {
        return false;
    }
    else {
        return true;
    }
}




function onWsOk(result, context, methodName) {
}
function onWsKo(erreur, context, methodName) {
    var erreurMessage = erreur.get_message();
    alert(erreurMessage)
}
function OnAjaxError(arg) { alert("erreur" + arg.get_message()) }
function HideShowTable(obj, table) {
    if (obj.checked)
        jQuery("#" + table).show();
    else
        jQuery("#" + table).hide();
}
function DropDownAjoute(id, obj, valeur, libelle, valeurvide, choixvide) {
    $get(id).length = 0;
    if (choixvide != "") {
        var opt = document.createElement('option');
        opt.value = valeurvide;
        opt.text = choixvide;
        try {
            $get(id).add(opt, null);
        }
        catch (ex) {
            $get(id).add(opt);
        }
    }

    if (obj) {
        for (var i = 0; i < obj.length; i++) {
            var opt = document.createElement('option');
            opt.value = obj[i][valeur];
            opt.text = obj[i][libelle];
            try {
                $get(id).add(opt, null);
            }
            catch (ex) {
                $get(id).add(opt);
            }
        }
    }
}
function DropDownVide(id, valeur, libelle) {
    $get(id).length = 0;
    var opt = document.createElement('option');
    opt.value = valeur;
    opt.text = libelle;
    try {
        $get(id).add(opt, null);
    }
    catch (ex) {
        $get(id).add(opt);
    }


}

function getVilleAdhesion(dep, cp, cb, valeur) {
    var cp = $get(dep).value + $get(cp).value;

    if (cp.length != 5) {
        DropDownVide(cb, "", "Veuillez saisir un code postal correct")
        return;
    }

    wsmetier.GetVilleByCodePostal(cp, onGetVille, OnAjaxError, cb + '|' + valeur);
}


function getVille(cp, cb, valeur) {
    var cp = $get(cp).value;
    if (cp.length != 5) {
        DropDownVide(cb, "", "Veuillez saisir un code postal correct")
        return;
    }

    wsmetier.GetVilleByCodePostal(cp, onGetVille, OnAjaxError, cb + '|' + valeur);
}
function onGetVille(arg, context, methodName) {
    var t = context.split('|');

    if (arg != null && arg != '')
        DropDownAjoute(t[0], arg, 'Key', 'Value', '', 'Choisissez une ville');
    else {
        DropDownVide(t[0], "", "Aucune ville pour ce code postal")
    }
    if (t[1] != '') {
        jQuery('#' + t[0]).val(t[1]);
    }
}
function SetVille(cb, ville) {
    $get(ville).value = $get(cb).value;
}


function CheckConcordanceEmail(email1, email2, lemail1, lemail2) {
    if (!TestEmailLabel(email1, lemail1)) return false;
    if (!TestEmailLabel(email2, lemail2)) return false;
    if ($get(email1).value != $get(email2).value) {
        jQuery("#" + lemail1).addClass('erreur');
        jQuery("#" + lemail2).addClass('erreur');
        return false;
    } else {
        jQuery("#" + lemail1).removeClass('erreur');
        jQuery("#" + lemail2).removeClass('erreur');
        return true;
    }
}

