function formatdate(chaine)
{
	var datecorrecte = false;
	var reg = new RegExp("[/\ \-]","gi");
	var cdate = chaine.split(reg);
	if (cdate.length != 3) return false;
	var jour = cdate[0];
	var mois = cdate[1].toLowerCase();
	var annee = cdate[2];
	var regannee = new RegExp("^(19|20)?[0-9]{2}$","g");
	if (regannee.test(annee))
	{
		var regjour = new RegExp("^(0?[1-9]|1[0-9]|2[0-9]|3[01])$","g");
		var regmois = new RegExp("^(0?[13578]|1[02]|jan|janvier|mar|mars|mai|juil|juillet|aou|aout|août|oct|octobre|dec|déc|decembre|décembre)$","gi");
		if (regjour.test(jour) && regmois.test(mois)) datecorrecte = true;
		regjour = new RegExp("^(0?[1-9]|1[0-9]|2[0-9]|30)$","g");
		regmois = new RegExp("^(0?[469]|11|avr|avril|jui|juin|sept|septembre|nov|novembre)$","gi");
		if (regjour.test(jour) && regmois.test(mois)) datecorrecte = true;
		regjour = new RegExp("^(0?[1-9]|1[0-9]|2[0-9])$","g");
		regmois = new RegExp("^(0?2|fev|fév|fevrier|février)$","gi");
		if (regjour.test(jour) && regmois.test(mois))
		{
			if (((jour == 29) && (!(annee % 4) && ((annee % 100) || !(annee % 400)))) || (jour < 29))
			datecorrecte =  true;
		}
	}
	return datecorrecte;
}

function formatdatemois(chaine)
{
	var datecorrecte = 0;
	var reg = new RegExp("[/\ \-]","gi");
	var cdate = chaine.split(reg);
	if (cdate.length != 2) return false;
	var mois = cdate[0].toLowerCase();
	var annee = cdate[1];
	var regannee = new RegExp("^(19|20)?[0-9]{2}$","g");
	if (regannee.test(annee))
	{
		var regmois = new RegExp("^(0?[1-9]|1[0-2]|jan|janvier|fev|fév|fevrier|février|mar|mars|avr|avril|mai|jui|juin|juil|juillet|aou|aout|août|sept|septembre|oct|octobre|nov|novembre|dec|déc|decembre|décembre)$","gi");
		if (regmois.test(mois)) datecorrecte = 1;
	}
	return datecorrecte;
}

function verifdate(chaine, nom)
{
	if (!formatdate(chaine))
	{
		alert(nom + " n'est pas valide");
		return false;
	}
	return true;
}

function verifdatemois(chaine,nom)
{
	if (!formatdatemois(chaine) && !formatdate(chaine))
	{
		alert(nom + " n'est pas valide");
		return false;
	}
	return true;
}

function timestamp(chaine)
{
	if (chaine == '') return 0;
	var regchaine = new RegExp("[/\ \-]","g");
	var cdate = String(chaine).split(regchaine);
	var i = 0;
	if (cdate.length < 3) return 0;
	if (cdate.length > 3) ++i;
	var jour = cdate[i++];
	var mois = cdate[i++].toLowerCase();
	var annee = cdate[i];
	
	if ((annee.length == 4) && ((annee < 1970) || (annee > 2037))) return 0;
	if (annee.length == 2)
	{
		if (annee > 37) return 0;
		annee = '20' + annee;
	}
	
	regchaine = RegExp("^[0-9]{2,4}$","g");
	if (regchaine.test(annee))
	{
		var regjour = new RegExp("^(0?[1-9]|1[0-9]|2[0-9]|3[0-1])$","g");
		var regmois = new RegExp("^(0?[13578]|1[02]|jan|janvier|mar|mars|mai|juil|juillet|aou|aout|août|oct|octobre|dec|déc|decembre|décembre)$","g");
		if (regjour.test(jour) && regmois.test(mois))
		{
			switch(mois)
			{
				case "jan":
				case "janvier": mois = 1; break;
				case "mar":
				case "mars": mois = 3; break;
				case "mai": mois = 5; break;
				case "juil":
				case "juillet": mois = 7; break;
				case "aou":
				case "aout":
				case "août": mois = 8; break;
				case "oct":
				case "octobre": mois = 10; break;
				case "dec":
				case "déc":
				case "decembre":
				case "décembre": mois = 12; break;
			}
			var timestamp = new Date();
			timestamp.setMonth(mois-1);
			timestamp.setFullYear(annee);
			timestamp.setHours(0);
			timestamp.setMinutes(0);
			timestamp.setSeconds(0);
			timestamp.setMilliseconds(0);
			timestamp.setDate(jour);
			return String(timestamp.getTime()).substring(0,String(timestamp.getTime()).length - 3);
		}
		
		regjour = RegExp("^(0?[1-9]|1[0-9]|2[0-9]|30)$","g");
		regmois = RegExp("^(0?[469]|11|avr|avril|jui|juin|sept|septembre|nov|novembre)$","g");
		if (regjour.test(jour) && regmois.test(mois))
		{
			switch(mois)
			{
				case "avr":
				case "avril": mois = 4; break;
				case "jui":
				case "juin": mois = 6; break;
				case "sept":
				case "septembre": mois = 9; break;
				case "nov":
				case "novembre": mois = 11; break;
			}
			var timestamp = new Date();
			timestamp.setFullYear(annee);
			timestamp.setHours(0);
			timestamp.setMinutes(0);
			timestamp.setSeconds(0);
			timestamp.setMilliseconds(0);
			timestamp.setDate(jour);
			timestamp.setMonth(mois - 1);
			return String(timestamp.getTime()).substring(0,String(timestamp.getTime()).length - 3);
		}
		
		regjour = RegExp("^(0?[1-9]|1[0-9]|2[0-9])$","g");
		regmois = RegExp("^(0?2|fev|fév|fevrier|février)$","g");
		if (regjour.test(jour) && regmois.test(mois))
		{
			if (((jour == 29) && (!(annee % 4)) && ((annee % 100) || !(annee % 400))) || (jour < 29))
			{
				var timestamp = new Date();
				timestamp.setMonth(1);
				timestamp.setFullYear(annee);
				timestamp.setHours(0);
				timestamp.setMinutes(0);
				timestamp.setSeconds(0);
				timestamp.setMilliseconds(0);
				timestamp.setDate(jour);
				return String(timestamp.getTime()).substring(0,String(timestamp.getTime()).length - 3);
			}
		}
	}
	return 0;
}

function ordredates(date1,date2)
{
	var td1 = timestamp(date1);
	var td2 = timestamp(date2);
	if ((td1 == 0) || (td2 == 0) || (parseInt(td1) > parseInt(td2)))
	{
		alert("La date de début doit être antérieure à la date de fin.");
		return false;
	}
	return true;
}