/*
Auteur : Killian KOPP
Mail : killian.kopp@fwi-informatique.com
Date : 20.06.2007
Version : 1.0
*/
function controle_formulaire_date_bornes_autocorrection () {
	var date = this.value;
	
	if(date != "") {
		var date_taille = date.length;
		
		var reg = new RegExp("[\\.,;: _\\-/\\\\]", "g");
		
		var tableau_date = date.split(reg);
		var tableau_date_taille = tableau_date.length;
		
		var tableau_mois_nb_jour = new Array('',31,28,31,30,31,30,31,31,30,31,30,31);
		
		if(tableau_date_taille == 1 && date_taille == 8) {
			tableau_date[0] = date.substr(0,2);
			tableau_date[1] = date.substr(2,2);
			tableau_date[2] = date.substr(4,4);
		} // fin de si la taille est 0
		
		if(tableau_date_taille == 3 && tableau_date[2].length == 4) {
			if(tableau_date[0].length == 1) { tableau_date[0] = '0' + tableau_date[0]; }
			if(tableau_date[1].length == 1) { tableau_date[1] = '0' + tableau_date[1]; }
		} // fin de si le tableau a 3 éléments
		
		tableau_date[4] = tableau_date[0] * 1;
		tableau_date[5] = tableau_date[1] * 1;
		tableau_date[6] = tableau_date[2] * 1;
		
		if (tableau_date[5] != '' && (tableau_date[5] % 4 == 0 && tableau_date[5] % 100 > 0 || tableau_date[5] % 400 == 0)) {
			tableau_mois_nb_jour[2] = 29;
		} // fin de si c'est une année bissextile
		
		var mois_nb_jour_maxi =  tableau_date[5];
		mois_nb_jour_maxi =  tableau_mois_nb_jour[mois_nb_jour_maxi];
		
		if(tableau_date[0] != '' && tableau_date[1] != '' && tableau_date[2] != '' 
		&& isNaN(tableau_date[4]) == false && isNaN(tableau_date[5]) == false && isNaN(tableau_date[6]) == false 
		&& tableau_date[5] > 0 && tableau_date[5] < 13 && tableau_date[4] > 0 && tableau_date[4] <= mois_nb_jour_maxi && tableau_date[2].length == 4) {
			date = tableau_date[0] + '/' + tableau_date[1] + '/' + tableau_date[2];
			this.value = date;
			
			
			// recherche de la date mini
			var champ_mini = this.id + '_ctrl_mini';
			var date_mini = document.getElementById(champ_mini).value;
			
			if(date_mini != '') {
				var date_mini_jour = date_mini.substring(0,2);
				var date_mini_mois = date_mini.substring(3,5);
				var date_mini_annee = date_mini.substring(6,10);
				
				var date_mini_inverse = '';
				date_mini_inverse += date_mini_annee;
				date_mini_inverse += date_mini_mois;
				date_mini_inverse += date_mini_jour;
			} // fin de si la date mini n'est pas vide
			
			
			// recherche de la date maxi
			var champ_maxi = this.id + '_ctrl_maxi';
			var date_maxi = document.getElementById(champ_maxi).value;
			
			if(date_maxi != '') {
				var date_maxi_jour = date_maxi.substring(0,2);
				var date_maxi_mois = date_maxi.substring(3,5);
				var date_maxi_annee = date_maxi.substring(6,10);
				
				var date_maxi_inverse = '';
				date_maxi_inverse += date_maxi_annee;
				date_maxi_inverse += date_maxi_mois;
				date_maxi_inverse += date_maxi_jour;
			} // fin de si la date maxi n'est pas vide
			
			
			if(date_mini != '' || date_maxi != '') {
				var erreur = '';
				
				var date_saisi_jour = date.substring(0,2);
				var date_saisi_mois = date.substring(3,5);
				var date_saisi_annee = date.substring(6,10);
				
				var date_saisi_inverse = '';
				date_saisi_inverse += date_saisi_annee;
				date_saisi_inverse += date_saisi_mois;
				date_saisi_inverse += date_saisi_jour;
				
				if(date_saisi_inverse < date_mini_inverse) { erreur += '\n - supérieure au ' + date_mini; }
				if(date_saisi_inverse > date_maxi_inverse) { erreur += '\n - inférieure au ' + date_maxi; }
				
				if(erreur != '') {
					alert('La date doit être :' + erreur);
					this.value = '';
				} // fin de si il y a une erreur
			} // fin de si la date mini ou maxi n'est pas rien
		} // fin de si tableau existe
		else {
			this.value = '';
			alert('date non valide !' + '\n' + 'saisissez une date au format JJ/MM/AAAA !');
		} // fin de else de si tableau existe
	} // fin de si il y a une date
}