

function vider_espaces_extremites(chaine) {
    ch = new String (chaine);
    ch=ch.replace(/^\s+/,"");
    ch=ch.replace(/\s+$/,"");
    return ch;
}
function reduction(red,text_alert) {
    alerte='';
    if(red>100 || red<1){
        alerte=text_alert+ "\n";
    }
    return alerte;
}
function alert_text(champ,type_alert,text_alert,lmin,obligatoire) {
    var alerte='';
    champ.value=vider_espaces_extremites(champ.value);
    chaine=champ.value;
    l=chaine.length;
    if (type_alert=="texte") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0 && l<lmin) {
                alerte = text_alert + "\n";
            }
        }
    }
    if (type_alert=="entier") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0)
            {
                exp=/^[0-9]{1,}$/;
                if (l < lmin || !(exp.test(chaine))) {
                    alerte = text_alert + "\n";
                }
            }
			
        }
    }
    if (type_alert=="decimal") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0)
            {
                exp=/^[0-9]{1,}(\.[0-9]+)?$/;
                if (l < lmin || !(exp.test(chaine))) {
                    alerte = text_alert + "\n";
                }
            }
        }
    }
    if (type_alert=="url") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0)
            {
                exp1=/^http:\/\/.{3}/;
                exp2=/^https:\/\/.{3}/;
                if (l<lmin || (!(exp1.test(chaine)) && !(exp2.test(chaine)))){
                    alerte = text_alert + "\n";
                }
            }
        }
    }
    if (type_alert=="mail") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0)
            {
                exp=/^([_a-zA-Z0-9-]|\.){1,}@([_a-zA-Z0-9-]|\.){2,}\.[a-zA-Z0-9]{1,}$/;
                if (l<lmin || !(exp.test(chaine))){
                    alerte = text_alert + "\n";
                }
            }

        }
    }

    if (type_alert=="date") {
        if (obligatoire && l==0){
            alerte = text_alert + "\n";
        }
        else {
            if (l>0)
            {
                exp=/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;
                if (l<lmin || !(exp.test(chaine))){
                    alerte = text_alert + "\n";
                } else {
                    var tableau = exp.exec(chaine);
                    var unedate = new Date(tableau[3],tableau[2]-1,tableau[1]);
                    if (unedate.getDate()!=eval(tableau[1]) || unedate.getMonth()!= eval(tableau[2])-1 || (unedate.getYear() != eval(tableau[3]) && (unedate.getYear()+1900) != eval(tableau[3])))
                    {
                        alerte = text_alert + "\n";
                    }
                }
            }
        }
    }

	

    return alerte;
}


function isDate(d) {
    var resultat=1;
    exp=/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;
    if (!(exp.test(d))){
        resultat=0;
    }
    return resultat;
}

function compareDates(dd,df){
    resultat='1';
    // On teste si les dates de début et de fin ne sont pas vides et instancie les objets date_debut et date_fin
    var EngMonthNames	= new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    if (isDate(dd)) {
        var ch_dd		= new String(dd);
        var tb_dd		= new Array(3);
        tb_dd			= ch_dd.split('/');
        var date_debut	= new Date();
        tb_dd[1] = tb_dd[1].charAt(0) == '0' ? tb_dd[1].charAt(1) : tb_dd[1];
        ts_dd = Date.parse(EngMonthNames[tb_dd[1]-1]+', '+tb_dd[0]+' '+tb_dd[2]+' 01:00:00');
    } else {
        resultat='';
    }

    if (isDate(df)) {
        var ch_df		= new String(df);
        var tb_df		= ch_df.split('/');
        var date_fin	= new Date();
        tb_df[1] = tb_df[1].charAt(0) == '0' ? tb_df[1].charAt(1) : tb_df[1];
        ts_df = Date.parse(EngMonthNames[tb_df[1]-1]+', '+tb_df[0]+' '+tb_df[2]+' 01:00:00');
    } else {
        resultat='';
    }

    // On teste si les dates de début est supérieure à la date de fin sont des vrais dates
    if (resultat=='1')
    {
        if (ts_dd == ts_df) {
            resultat='0';
        }
        if (ts_dd < ts_df) {
            resultat='-1';
        }
    }
    return resultat;
}

function assigner(champ,valeur){
    champ.value=valeur;
}

function soumettre(formulaire,url){
    formulaire.action=url;
    formulaire.submit();
}

function date_fr_to_eng(date_fr){
    exp=/^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;
    if ((exp.test(date_fr))) {
        var tableau = exp.exec(date_fr);
        date_eng = tableau[3]+'-'+tableau[2]+'-'+tableau[1];
    } else {
        date_eng = '2000-01-01';
    }
    return date_eng;
}


