<!--
// isDate()
// fonction qui teste une chaîne de caractères et retourne true si la chaîne
// représente une date de la forme "JJ/MM/AAAA"
// paramètre : la chaine de caractères à tester
function isDate(ps_str)
{
	var vi_nbr_slash;		// entier utilise pour compter le nombre de slash dans la chaine
	var vc_ch;				// caractere temporaire
	var vi_int_day;			// entier qui va contenir le jour
	var vi_int_month;		// entier qui va contenir le mois
	var vi_int_year;		// entier qui va contenir l'annee
	var vi_index1;			// entier temporaire
	var vi_index2;			// idem
	var va_month_tab;		// tableau contenant le nombre de jour de chaque mois

	// si la chaine est trop courte, ou contient un caractere non numerique
	// different du slash, retourne false
	if (ps_str.length < 6)
		return false;
	vb_empty = true;								// initialisation...
	vi_nbr_slash = 0;								// ... des variables
	for (var vi_i = 0;vi_i < ps_str.length;vi_i++)	// on boucle sur toute la chaine
	{
		vc_ch = ps_str.charAt(vi_i);				// on recupere chaque caractere
		if (vc_ch == '/')							// on compte le nombre...
			vi_nbr_slash++;							// ... de slash
		else if (vc_ch < '0' || vc_ch > '9')		// on retourne false si on trouve un...
			return false;							// ... caractere non numerique different du slash
	}
	if (vi_nbr_slash != 2)							// retourne false si le nombre
		return false;								// de slash est different de 2

	// on decoupe la chaine et on recupere les valeurs de jour, mois et annee
	vi_index1 = ps_str.indexOf('/');							// recupere l'index du 1er slash
	vi_index2 = ps_str.lastIndexOf('/');						// recupere l'index du 2e slash
	vi_int_day = parseInt(ps_str.substring(0,vi_index1),10);					// n° du jour
	vi_int_month = parseInt(ps_str.substring(vi_index1 + 1,vi_index2),10);		// n° du mois
	vi_int_year = parseInt(ps_str.substring(vi_index2 + 1,ps_str.length),10);	// n° de l'annee

	// controle du nombre de mois, et que le numero de jour n'est pas aberrant
	if (vi_int_month < 1 || vi_int_month > 12 || vi_int_day < 1 || vi_int_day > 31)
		return false;
		
	// on teste la validite de l'annee
	if (vi_int_year < 00 || vi_int_year > 9999)
		return false;
	
	// on cree le tableau des mois
	va_month_tab = new Array(12);
	va_month_tab[0] = 31;
	va_month_tab[2] = 31;
	va_month_tab[3] = 30;
	va_month_tab[4] = 31;
	va_month_tab[5] = 30;
	va_month_tab[6] = 31;
	va_month_tab[7] = 31;
	va_month_tab[8] = 30;
	va_month_tab[9] = 31;
	va_month_tab[10] = 30;
	va_month_tab[11] = 31;
	
	// teste si l'annee est bissextile
	if ((vi_int_year % 4 == 0) &&		// si l'annee est multiple de 4 et...
		((vi_int_year % 400 == 0) ||	// ... multiple de 400 ou...
		(vi_int_year % 100 != 0)))		// ... multiple de 100 ...
		va_month_tab[1] = 29;			// alors l'annee est bisextile
	else
		va_month_tab[1] = 28;

	// verification du nombre de jours en fonction du mois
	if (vi_int_day > va_month_tab[vi_int_month - 1])
		return false;

	return true;
}

// strToDate()
// fonction qui transforme une chaîne de caractères en objet Date
// paramètres :	- chaîne de caractères contenant la date (obligatoire)
//				- entier d'incrémentation du jour (optionnel)
function strToDate(ps_str,pi_inc)
{
	var vs_day;
	var vs_month;
	var vs_year;
	var vi_index_slash1;
	var vi_index_slash2;
	var vo_result_date;
	
	if (typeof(pi_inc) == "undefined")
		pi_inc = 0;
	vi_index_slash1 = ps_str.indexOf('/');
	vi_index_slash2 = ps_str.indexOf('/',vi_index_slash1 + 1);
	vs_day = parseInt(ps_str.substring(0,vi_index_slash1),10) + parseInt(pi_inc);
	vs_month = parseInt(ps_str.substring(vi_index_slash1 + 1,vi_index_slash2),10) - 1;
	vs_year = parseInt(ps_str.substring(vi_index_slash2 + 1,ps_str.length),10);
	vo_result_date = new Date(vs_year,vs_month,vs_day);
	return vo_result_date;
}

// dateToStr()
// fonction qui transforme un objet Date en chaîne de caractères contenant
// la date de la forme "JJ/MM/AAAA"
// paramètre : l'objet Date
function dateToStr(po_date)
{
	var vi_version
	var vi_day
	var vi_month
	var vi_year;
	var vs_str;
	
	vi_version = parseInt(navigator.appVersion.substring(0,2));
	vi_day = parseInt(po_date.getDate());
	vi_month = parseInt(po_date.getMonth()) + 1;
	vs_str = "";
	if (vi_version <= 2)
	{
		vi_year = parseInt(po_date.getYear());
		vi_year = vi_year + 1900;
	}
	else
		if (vi_version == 3)
		{
			vi_year = parseInt(po_date.getYear());
			if (vi_year >= 0 && vi_year <= 99)
				vi_year = vi_year + 1900;
		}
		else // version 4 ou supérieures
			vi_year = parseInt(po_date.getFullYear());
	if (vi_day < 10)
		vs_str = vs_str + "0" + vi_day + "/";
	else
		vs_str = vs_str + vi_day + "/";
	if (vi_month < 10)
		vs_str = vs_str + "0" + vi_month + "/";
	else
		vs_str = vs_str + vi_month + "/";
	vs_str = vs_str + vi_year;
	return vs_str;
}

//VerifCollectionDate
//Permet de vérifier pour un nombre de champ date donné la conformité de la date
//Pour cela, il faut passer en paramétre le nom du champ case à cocher
//qui doit être concaténé à un compteur partant de 1 (ex : c1,c2,c3,...) 
//le nom du champ date qui doit être également concaténé à un compteur qui prend
//pour valeur de début 1
//puis le nombre de champs
//et enfin le nom du formulaire

function VerifCollectionDate(ps_nomCaseCoche, ps_nomChamp, ps_nbreChamps, ps_nomForm)
	{
	var vi_ind, vs_caseCoche;
	
	for(vi_ind=1;vi_ind < ps_nbreChamps;vi_ind++)
		{
		if (eval("document." + ps_nomForm + "." + ps_nomCaseCoche + vi_ind + ".checked"))
			{
			if (isDate(eval("document." + ps_nomForm + "." + ps_nomChamp + vi_ind + ".value")) == false)
				{
				alert("Veuillez saisir des dates valides.");
				return false;
				}
			}
		}
		return true;
		}

//-->