function intellidate(userdate, annee_n, annee_min, mois_n)
{
if (userdate=="") return "";
else
{
longueur = userdate.length;


//initialisation variables date courante
maintenant = new Date;
cejour = maintenant.getDate();
if (cejour<10) cejour = "0"+cejour;
cemois = maintenant.getMonth()+1;
if (cemois<10) cemois = "0"+cemois;
cetteannee = maintenant.getFullYear();

if (!annee_min) annee_min = cetteannee;
if (!annee_n) annee_n = 0;
if (!mois_n) mois_n = 0;

//mode jour seul
if (longueur<3)
{
userjour=userdate;
usermois=cemois;
userannee=cetteannee;

if (isNaN(userjour) || userjour<1 || userjour>31)
    {
    window.alert("Format incorrect. La date doit être au format JJ/MM/AAAA - Erreur 3");
    return cejour+"/"+cemois+"/"+cetteannee;
    }
if (userjour<10 && userjour.indexOf('0') == -1) userjour="0"+userjour;

// si jour inferieur au jour courant => c'est le jour du mois suivant
if(userjour<cejour)
{
	usermois = maintenant.getMonth()+1+mois_n;
	// cela entraine un changement d'année
	if(usermois>12) { usermois = usermois-12; userannee = maintenant.getFullYear()+1; }
	if (usermois<10) usermois = "0"+usermois;
}

return userjour+"/"+usermois+"/"+userannee;
}


if (userdate.indexOf('/')==-1 && userdate.indexOf('-')==-1)
{
if (longueur<7) userdate = userdate.substr(0,2) + "/" + userdate.substr(2,2) + "/" + userdate.substr(4,2);
else userdate = userdate.substr(0,2) + "/" + userdate.substr(2,2) + "/" + userdate.substr(4,4);
}

//détection du séparateur
if (userdate.indexOf('/')!=-1) separateur = "/";
else if (userdate.indexOf('-')!=-1) separateur = "-";
else {
    // ajout séparateur
    window.alert("Format incorrect. La date doit être au format JJ/MM/AAAA - Erreur 0");
    return cejour+"/"+cemois+"/"+cetteannee;
    }


separateur1 = userdate.indexOf(separateur);
separateur2 = userdate.lastIndexOf(separateur);


//récupération jour/mois/annee
//annee
if (separateur1==separateur2) //mode jour/mois seul
    {
    usermois = userdate.substr(parseInt(separateur1)+1,2);
    if (usermois.indexOf(separateur)!=-1 || usermois.length==1) usermois = "0"+usermois.substr(0,1); //test si mois sur 1 chiffre
    if (usermois<cemois) userannee = cetteannee+annee_n;
    else userannee = cetteannee;
    }
else
{
	userannee = userdate.substr(separateur2+1);
	if (userannee.length==2)//teste si année sur 2 chiffres
		{
		siecle = Math.floor(annee_min/100);

		if(siecle+userannee>=annee_min)
			userannee = siecle+userannee;
		else
			userannee = (siecle+1)+userannee;
		}
}
//mois
usermois = userdate.substr(parseInt(separateur1)+1,2);
if (usermois.indexOf(separateur)!=-1 || usermois.length==1) usermois = "0"+usermois.substr(0,1); //test si mois sur 1 chiffre
//jour
userjour = userdate.substr(0,2);
if (userjour.indexOf(separateur)!=-1 || userjour.length==1) userjour="0"+userjour.substr(0,1); //test si jour sur 1 chiffre


//TESTS DE CONTROLE
if (isNaN(userannee) || isNaN(usermois) || isNaN(userjour))
{
window.alert("Format incorrect. La date doit être au format JJ/MM/AAAA - Erreur 1");
    return cejour+"/"+cemois+"/"+cetteannee;
}
if (userjour<1 || userjour>31 || usermois<1 || usermois>12 || userannee<annee_min)
{
window.alert("Format incorrect. La date doit être au format JJ/MM/AAAA - Erreur 2");
    return cejour+"/"+cemois+"/"+cetteannee;
}


return userjour+"/"+usermois+"/"+userannee;
}
}


function intellitime(heure)
{
if (heure.indexOf(':')!=-1)
    {
    return heure;
    }
else if (heure.length==3)
    {
    if (heure.substr(1,2)>59)
        {
        alert("Format Incorrect 1");
        return "";
        }
    heureFormattee = heure.substr(0,1)+":"+heure.substr(1,2);
    return heureFormattee;
    }
else
    {
    if (heure.substr(0,2)>24)
        {
        alert("Format Incorrect 2");
        return "";
        }
    else if (heure.substr(2,2)>59)
        {
        alert("Format Incorrect 3");
        return "";
        }
    heureFormattee = heure.substr(0,2)+":"+heure.substr(2,2);
    return heureFormattee;
    }
}
